@instructure/canvas-rce 5.14.1 → 5.14.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 +5 -0
- package/DEVELOPMENT.md +1 -1
- package/README.md +0 -8
- package/__tests__/common/indicate.test.js +84 -0
- package/__tests__/common/mimeClass.test.js +85 -0
- package/__tests__/module/contentInsertionUtils.test.js +52 -0
- package/__tests__/module/indicatorRegion.test.js +75 -0
- package/__tests__/module/normalizeLocale.test.js +46 -0
- package/__tests__/module/normalizeProps.test.js +51 -0
- package/__tests__/module/sanitizePlugins.test.js +48 -0
- package/__tests__/module/wrapInitCb.test.js +56 -0
- package/__tests__/rcs/api.test.js +819 -0
- package/{mocha-reporter-config.js → __tests__/sidebar/actions/all_files.test.js} +10 -9
- package/__tests__/sidebar/actions/data.test.js +196 -0
- package/__tests__/sidebar/actions/utils.js +44 -0
- package/{es/rce/plugins/shared/__mocks__/screenfull.js → __tests__/sidebar/reducers/all_files.test.js} +10 -6
- package/babel.config.js +3 -1
- package/es/bridge/Bridge.js +8 -56
- package/es/bridge/index.js +1 -0
- package/es/canvasFileBrowser/FileBrowser.js +12 -59
- package/es/canvasFileBrowser/en-US.js +3 -6
- package/es/common/FlashAlert.js +7 -28
- package/es/common/browser.js +4 -2
- package/es/common/fileUrl.js +104 -59
- package/es/common/incremental-loading/LoadMoreButton.js +1 -0
- package/es/common/incremental-loading/LoadingIndicator.js +1 -2
- package/es/common/incremental-loading/LoadingStatus.js +1 -2
- package/es/common/incremental-loading/index.js +1 -0
- package/es/common/incremental-loading/useIncrementalLoading.js +1 -3
- package/es/common/indicate.js +15 -8
- package/es/common/mimeClass.js +3 -4
- package/es/common/natcompare.js +1 -4
- package/es/defaultTinymceConfig.js +5 -3
- package/es/elementDenylist.js +1 -0
- package/es/enhance-user-content/doc_previews.js +17 -28
- package/es/enhance-user-content/enhance_user_content.js +28 -60
- package/es/enhance-user-content/external_links.js +5 -8
- package/es/enhance-user-content/index.js +1 -0
- package/es/enhance-user-content/instructure_helper.js +12 -34
- package/es/enhance-user-content/jqueryish_funcs.js +8 -11
- package/es/enhance-user-content/mathml.js +35 -82
- package/es/enhance-user-content/media_comment_thumbnail.js +5 -17
- package/es/format-message.js +3 -4
- package/es/getThemeVars.js +8 -6
- package/es/getTranslations.js +1 -78
- package/es/index.js +3 -1
- package/es/rce/AlertMessageArea.js +1 -1
- package/es/rce/DraggingBlocker.js +4 -2
- package/es/rce/KeyboardShortcutModal.js +1 -0
- package/es/rce/RCE.js +12 -11
- package/es/rce/RCEGlobals.js +12 -10
- package/es/rce/RCEVariants.js +27 -10
- package/es/rce/RCEWrapper.js +167 -386
- package/es/rce/RCEWrapperProps.js +8 -3
- package/es/rce/RceHtmlEditor.js +5 -8
- package/es/rce/ResizeHandle.js +3 -8
- package/es/rce/RestoreAutoSaveModal.js +1 -2
- package/es/rce/ShowOnFocusButton/index.js +0 -6
- package/es/rce/StatusBar.js +8 -37
- package/es/rce/alertHandler.js +1 -4
- package/es/rce/contentInsertion.js +35 -57
- package/es/rce/contentInsertionUtils.js +6 -8
- package/es/rce/contentRendering.js +7 -12
- package/es/rce/customEvents.js +1 -0
- package/es/rce/editorLanguage.js +22 -10
- package/es/rce/indicatorRegion.js +6 -5
- package/es/rce/normalizeLocale.js +5 -3
- package/es/rce/normalizeProps.js +3 -1
- package/es/rce/plugins/instructure-ui-icons/plugin.js +21 -3
- package/es/rce/plugins/instructure_color/clickCallback.js +84 -0
- package/es/rce/plugins/instructure_color/components/ColorPicker.js +299 -0
- package/es/rce/plugins/instructure_color/components/ColorPopup.js +68 -0
- package/es/rce/plugins/instructure_color/components/colorUtils.js +60 -0
- package/es/rce/plugins/instructure_color/plugin.js +40 -0
- package/es/rce/plugins/instructure_condensed_buttons/core/ListUtils.js +10 -3
- package/es/rce/plugins/instructure_condensed_buttons/plugin.js +1 -0
- package/es/rce/plugins/instructure_condensed_buttons/ui/alignment-button.js +1 -2
- package/es/rce/plugins/instructure_condensed_buttons/ui/directionality-button.js +3 -2
- package/es/rce/plugins/instructure_condensed_buttons/ui/indent-outdent-button.js +1 -0
- package/es/rce/plugins/instructure_condensed_buttons/ui/list-button.js +22 -15
- package/es/rce/plugins/instructure_condensed_buttons/ui/subscript-superscript-button.js +1 -2
- package/es/rce/plugins/instructure_documents/clickCallback.js +1 -0
- package/es/rce/plugins/instructure_documents/components/DocumentsPanel.js +1 -9
- package/es/rce/plugins/instructure_documents/components/Link.js +3 -18
- package/es/rce/plugins/instructure_documents/plugin.js +7 -14
- package/es/rce/plugins/instructure_equation/EquationEditorModal/advancedOnlySyntax.js +4 -2
- package/es/rce/plugins/instructure_equation/EquationEditorModal/advancedPreference.js +1 -2
- package/es/rce/plugins/instructure_equation/EquationEditorModal/index.js +12 -29
- package/es/rce/plugins/instructure_equation/EquationEditorModal/latexTextareaUtil.js +11 -12
- package/es/rce/plugins/instructure_equation/EquationEditorModal/parseLatex.js +4 -3
- package/es/rce/plugins/instructure_equation/EquationEditorModal/styles.js +4 -2
- package/es/rce/plugins/instructure_equation/EquationEditorToolbar/buttons.js +13 -7
- package/es/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +4 -7
- package/es/rce/plugins/instructure_equation/MathIcon/index.js +1 -1
- package/es/rce/plugins/instructure_equation/MathIcon/svgs.js +1 -1
- package/es/rce/plugins/instructure_equation/clickCallback.js +2 -5
- package/es/rce/plugins/instructure_equation/mathlive/index.js +1 -1
- package/es/rce/plugins/instructure_equation/plugin.js +7 -10
- package/es/rce/plugins/instructure_fullscreen/plugin.js +3 -6
- package/es/rce/plugins/instructure_html_view/clickCallback.js +1 -0
- package/es/rce/plugins/instructure_html_view/plugin.js +5 -4
- package/es/rce/plugins/instructure_icon_maker/clickCallback.js +2 -4
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ColorSection.js +1 -2
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/CreateIconMakerForm.js +1 -0
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Footer.js +1 -0
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Group.js +1 -0
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +1 -2
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +25 -22
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +7 -11
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +27 -23
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ModeSelect.js +5 -4
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/MultiColor/index.js +11 -9
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/MultiColor/svg.js +1 -0
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +5 -4
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGThumbnail.js +1 -3
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SingleColor/index.js +7 -7
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SingleColor/svg.js +1 -0
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +27 -20
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/index.js +1 -0
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/propTypes.js +1 -0
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +1 -0
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Preview.js +4 -4
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ShapeSection.js +1 -2
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +1 -5
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/index.js +1 -0
- package/es/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +18 -33
- package/es/rce/plugins/instructure_icon_maker/components/SavedIconMakerList.js +4 -4
- package/es/rce/plugins/instructure_icon_maker/plugin.js +10 -14
- package/es/rce/plugins/instructure_icon_maker/reducers/imageSection.js +37 -38
- package/es/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +24 -24
- package/es/rce/plugins/instructure_icon_maker/registerEditToolbar.js +1 -3
- package/es/rce/plugins/instructure_icon_maker/svg/constants.js +4 -3
- package/es/rce/plugins/instructure_icon_maker/svg/font.js +3 -1
- package/es/rce/plugins/instructure_icon_maker/svg/image.js +69 -83
- package/es/rce/plugins/instructure_icon_maker/svg/index.js +11 -15
- package/es/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/es/rce/plugins/instructure_icon_maker/svg/settings.js +32 -39
- package/es/rce/plugins/instructure_icon_maker/svg/shape.js +1 -49
- package/es/rce/plugins/instructure_icon_maker/svg/text.js +7 -92
- package/es/rce/plugins/instructure_icon_maker/svg/utils.js +1 -7
- package/es/rce/plugins/instructure_icon_maker/utils/IconMakerClose.js +2 -6
- package/es/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +1 -15
- package/es/rce/plugins/instructure_icon_maker/utils/addIconMakerAttributes.js +3 -4
- package/es/rce/plugins/instructure_icon_maker/utils/iconValidation.js +1 -1
- package/es/rce/plugins/instructure_icon_maker/utils/iconsLabels.js +1 -0
- package/es/rce/plugins/instructure_icon_maker/utils/useDebouncedValue.js +12 -13
- package/es/rce/plugins/instructure_image/ImageEmbedOptions.js +6 -24
- package/es/rce/plugins/instructure_image/ImageList/Image.js +1 -6
- package/es/rce/plugins/instructure_image/ImageList/index.js +1 -2
- package/es/rce/plugins/instructure_image/ImageOptionsTray/TrayController.js +7 -27
- package/es/rce/plugins/instructure_image/ImageOptionsTray/index.js +3 -16
- package/es/rce/plugins/instructure_image/Images/index.js +1 -3
- package/es/rce/plugins/instructure_image/clickCallback.js +1 -0
- package/es/rce/plugins/instructure_image/plugin.js +13 -18
- package/es/rce/plugins/instructure_links/clickCallback.js +1 -0
- package/es/rce/plugins/instructure_links/components/AccordionSection.js +1 -0
- package/es/rce/plugins/instructure_links/components/CollectionPanel.js +1 -3
- package/es/rce/plugins/instructure_links/components/Link.js +7 -19
- package/es/rce/plugins/instructure_links/components/LinkOptionsDialog/LinkOptionsDialogController.js +1 -21
- package/es/rce/plugins/instructure_links/components/LinkOptionsDialog/index.js +1 -4
- package/es/rce/plugins/instructure_links/components/LinkOptionsTray/LinkOptionsTrayController.js +3 -20
- package/es/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +1 -12
- package/es/rce/plugins/instructure_links/components/LinkSet.js +4 -20
- package/es/rce/plugins/instructure_links/components/LinksPanel.js +1 -2
- package/es/rce/plugins/instructure_links/components/NavigationPanel.js +7 -9
- package/es/rce/plugins/instructure_links/components/NoResults.js +1 -7
- package/es/rce/plugins/instructure_links/plugin.js +17 -40
- package/es/rce/plugins/instructure_links/validateURL.js +81 -36
- package/es/rce/plugins/instructure_media_embed/clickCallback.js +2 -5
- package/es/rce/plugins/instructure_media_embed/components/Embed.js +1 -0
- package/es/rce/plugins/instructure_media_embed/plugin.js +7 -3
- package/es/rce/plugins/instructure_paste/pasteMenuCommand.js +1 -5
- package/es/rce/plugins/instructure_paste/plugin.js +27 -29
- package/es/rce/plugins/instructure_rce_external_tools/ExternalToolsEnv.js +14 -53
- package/es/rce/plugins/instructure_rce_external_tools/RceToolWrapper.js +21 -49
- package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialog.js +11 -42
- package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialogModal.js +1 -2
- package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialogTray.js +1 -1
- package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolSelectionDialog/ExternalToolSelectionDialog.js +2 -10
- package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolSelectionDialog/ExternalToolSelectionItem.js +1 -2
- package/es/rce/plugins/instructure_rce_external_tools/components/util/ExpandoText.js +1 -0
- package/es/rce/plugins/instructure_rce_external_tools/components/util/ToolLaunchIframe.js +2 -1
- package/es/rce/{__mocks__/_mockStudioPlayer.js → plugins/instructure_rce_external_tools/constants.js} +11 -3
- package/es/rce/plugins/instructure_rce_external_tools/dialog-helper.js +19 -4
- package/es/rce/plugins/instructure_rce_external_tools/helpers/tags.js +0 -2
- package/es/rce/plugins/instructure_rce_external_tools/jquery/jquery.dropdownList.js +130 -136
- package/es/rce/plugins/instructure_rce_external_tools/lti11-content-items/RceLti11ContentItem.js +100 -95
- package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/Lti13ContentItemJson.js +1 -0
- package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/RceLti13ContentItem.js +2 -19
- package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/BaseLinkContentItem.js +1 -14
- package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/HtmlFragmentContentItem.js +1 -6
- package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/ImageContentItem.js +1 -9
- package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/LinkContentItem.js +1 -1
- package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/ResourceLinkContentItem.js +3 -5
- package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/processEditorContentItems.js +18 -10
- package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/rceLti13ContentItemFromJson.js +4 -4
- package/es/rce/plugins/instructure_rce_external_tools/plugin.js +7 -16
- package/es/rce/plugins/instructure_rce_external_tools/util/addParentFrameContextToUrl.js +1 -1
- package/es/rce/plugins/instructure_record/AudioOptionsTray/TrayController.js +1 -25
- package/es/rce/plugins/instructure_record/AudioOptionsTray/index.js +1 -4
- package/es/rce/plugins/instructure_record/MediaPanel/index.js +1 -9
- package/es/rce/plugins/instructure_record/VideoOptionsTray/TrayController.js +8 -51
- package/es/rce/plugins/instructure_record/VideoOptionsTray/index.js +4 -17
- package/es/rce/plugins/instructure_record/clickCallback.js +7 -15
- package/es/rce/plugins/instructure_record/mediaTranslations.js +1 -0
- package/es/rce/plugins/instructure_record/plugin.js +11 -18
- package/es/rce/plugins/instructure_search_and_replace/clickCallback.js +2 -5
- package/es/rce/plugins/instructure_search_and_replace/components/FindReplaceTray.js +20 -35
- package/es/rce/plugins/instructure_search_and_replace/components/FindReplaceTrayController.js +3 -18
- package/es/rce/plugins/instructure_search_and_replace/getSelectionContext.js +2 -9
- package/es/rce/plugins/instructure_search_and_replace/plugin.js +1 -3
- package/es/rce/plugins/instructure_studio_media_options/plugin.js +1 -1
- package/es/rce/plugins/instructure_wordcount/clickCallback.js +2 -5
- package/es/rce/plugins/instructure_wordcount/components/WordCountModal.js +1 -4
- package/es/rce/plugins/instructure_wordcount/plugin.js +1 -0
- package/es/rce/plugins/instructure_wordcount/utils/countContent.js +1 -8
- package/es/rce/plugins/instructure_wordcount/utils/tableContent.js +1 -0
- package/es/rce/plugins/shared/CanvasContentTray.js +22 -49
- package/es/rce/plugins/shared/CheckerboardStyling.js +1 -1
- package/es/rce/plugins/shared/ColorInput.js +5 -14
- package/es/rce/plugins/shared/ConditionalTooltip.js +1 -0
- package/es/rce/plugins/shared/ContentSelection.js +17 -58
- package/es/rce/plugins/shared/DimensionUtils.js +1 -8
- package/es/rce/plugins/shared/DimensionsInput/DimensionInput.js +6 -6
- package/es/rce/plugins/shared/DimensionsInput/index.js +37 -15
- package/es/rce/plugins/shared/DimensionsInput/useDimensionsState.js +5 -29
- package/es/rce/plugins/shared/ErrorBoundary.js +2 -5
- package/es/rce/plugins/shared/EventUtils.js +1 -3
- package/es/rce/plugins/shared/Filter.js +8 -38
- package/es/rce/plugins/shared/FixedContentTray.js +3 -3
- package/es/rce/plugins/shared/ImageCropper/DirectionRegion.js +1 -8
- package/es/rce/plugins/shared/ImageCropper/Modal.js +4 -7
- package/es/rce/plugins/shared/ImageCropper/Preview.js +7 -11
- package/es/rce/plugins/shared/ImageCropper/constants.js +1 -0
- package/es/rce/plugins/shared/ImageCropper/controls/CustomNumberInput.js +2 -5
- package/es/rce/plugins/shared/ImageCropper/controls/ResetControls.js +1 -0
- package/es/rce/plugins/shared/ImageCropper/controls/RotationControls.js +1 -10
- package/es/rce/plugins/shared/ImageCropper/controls/ShapeControls.js +1 -0
- package/es/rce/plugins/shared/ImageCropper/controls/ZoomControls.js +1 -11
- package/es/rce/plugins/shared/ImageCropper/controls/index.js +1 -0
- package/es/rce/plugins/shared/ImageCropper/controls/useDebouncedNumericValue.js +3 -16
- package/es/rce/plugins/shared/ImageCropper/controls/utils.js +1 -2
- package/es/rce/plugins/shared/ImageCropper/imageCropUtils.js +1 -10
- package/es/rce/plugins/shared/ImageCropper/index.js +1 -0
- package/es/rce/plugins/shared/ImageCropper/propTypes.js +1 -0
- package/es/rce/plugins/shared/ImageCropper/reducers/imageCropper.js +15 -14
- package/es/rce/plugins/shared/ImageCropper/shape.js +1 -0
- package/es/rce/plugins/shared/ImageCropper/svg/index.js +1 -2
- package/es/rce/plugins/shared/ImageCropper/svg/shape.js +1 -17
- package/es/rce/plugins/shared/ImageCropper/svg/utils.js +1 -0
- package/es/rce/plugins/shared/ImageCropper/useKeyMouseEvents.js +19 -46
- package/es/rce/plugins/shared/ImageCropper/useMouseWheel.js +8 -10
- package/es/rce/plugins/shared/ImageOptionsForm.js +1 -2
- package/es/rce/plugins/shared/LinkDisplay.js +1 -2
- package/es/rce/plugins/shared/PreviewIcon.js +1 -6
- package/es/rce/plugins/shared/Previewable.js +1 -0
- package/es/rce/plugins/shared/RceFileBrowser.js +5 -7
- package/es/rce/plugins/shared/StoreContext.js +1 -2
- package/es/rce/plugins/shared/StudioLtiSupportUtils.js +10 -6
- package/es/rce/plugins/shared/UnknownFileTypePanel.js +1 -0
- package/es/rce/plugins/shared/Upload/CanvasContentPanel.js +13 -18
- package/es/rce/plugins/shared/Upload/CategoryProcessor.js +1 -1
- package/es/rce/plugins/shared/Upload/ComputerPanel.js +8 -26
- package/es/rce/plugins/shared/Upload/PanelFilter.js +3 -12
- package/es/rce/plugins/shared/Upload/SvgCategoryProcessor.js +4 -3
- package/es/rce/plugins/shared/Upload/UploadFile.js +15 -18
- package/es/rce/plugins/shared/Upload/UploadFileModal.js +9 -25
- package/es/rce/plugins/shared/Upload/UrlPanel.js +1 -0
- package/es/rce/plugins/shared/Upload/UsageRightsSelectBox.js +7 -12
- package/es/rce/plugins/shared/Upload/doFileUpload.js +4 -6
- package/es/rce/plugins/shared/Upload/index.js +1 -0
- package/es/rce/plugins/shared/ai_tools/AIResponseModal.js +1 -3
- package/es/rce/plugins/shared/ai_tools/AIToolsTray.js +6 -24
- package/es/rce/plugins/shared/ai_tools/aiicons.js +1 -0
- package/es/rce/plugins/shared/ai_tools/index.js +1 -0
- package/es/rce/plugins/shared/buildDownloadUrl.js +0 -2
- package/es/rce/plugins/shared/canvasContentUtils.js +6 -9
- package/es/rce/plugins/shared/compressionUtils.js +1 -8
- package/es/rce/plugins/shared/dateUtils.js +1 -1
- package/es/rce/plugins/shared/do-fetch-api-effect/defaultFetchOptions.js +4 -2
- package/es/rce/plugins/shared/do-fetch-api-effect/doFetchApi.js +7 -10
- package/es/rce/plugins/shared/do-fetch-api-effect/index.js +1 -0
- package/es/rce/plugins/shared/do-fetch-api-effect/parse-link-header.js +6 -20
- package/es/rce/plugins/shared/do-fetch-api-effect/query-string-encoding.js +5 -3
- package/es/rce/plugins/shared/fileShape.js +4 -9
- package/es/rce/plugins/shared/fileTypeUtils.js +32 -42
- package/es/rce/plugins/shared/fileUtils.js +1 -2
- package/es/rce/plugins/shared/linkUtils.js +1 -16
- package/es/rce/plugins/shared/round.js +1 -0
- package/es/rce/plugins/shared/trayUtils.js +4 -3
- package/es/rce/plugins/shared/useDataUrl.js +9 -9
- package/es/rce/plugins/shared/useFilterSettings.js +3 -3
- package/es/rce/plugins/tinymce-a11y-checker/components/ColorField.js +2 -6
- package/es/rce/plugins/tinymce-a11y-checker/components/checker.js +5 -63
- package/es/rce/plugins/tinymce-a11y-checker/components/color-picker.js +1 -2
- package/es/rce/plugins/tinymce-a11y-checker/components/placeholder-svg.js +1 -0
- package/es/rce/plugins/tinymce-a11y-checker/components/pointer.js +1 -0
- package/es/rce/plugins/tinymce-a11y-checker/node-checker.js +1 -6
- package/es/rce/plugins/tinymce-a11y-checker/plugin.js +4 -7
- package/es/rce/plugins/tinymce-a11y-checker/rules/adjacent-links.js +3 -26
- package/es/rce/plugins/tinymce-a11y-checker/rules/headings-sequence.js +9 -38
- package/es/rce/plugins/tinymce-a11y-checker/rules/headings-start-at-h2.js +1 -5
- package/es/rce/plugins/tinymce-a11y-checker/rules/img-alt-filename.js +1 -2
- package/es/rce/plugins/tinymce-a11y-checker/rules/img-alt-length.js +1 -1
- package/es/rce/plugins/tinymce-a11y-checker/rules/img-alt.js +1 -2
- package/es/rce/plugins/tinymce-a11y-checker/rules/index.js +1 -0
- package/es/rce/plugins/tinymce-a11y-checker/rules/large-text-contrast.js +1 -4
- package/es/rce/plugins/tinymce-a11y-checker/rules/list-structure.js +5 -24
- package/es/rce/plugins/tinymce-a11y-checker/rules/paragraphs-for-headings.js +1 -3
- package/es/rce/plugins/tinymce-a11y-checker/rules/small-text-contrast.js +1 -6
- package/es/rce/plugins/tinymce-a11y-checker/rules/table-caption.js +1 -3
- package/es/rce/plugins/tinymce-a11y-checker/rules/table-header-scope.js +1 -2
- package/es/rce/plugins/tinymce-a11y-checker/rules/table-header.js +1 -9
- package/es/rce/plugins/tinymce-a11y-checker/utils/colors.js +1 -0
- package/es/rce/plugins/tinymce-a11y-checker/utils/describe.js +1 -7
- package/es/rce/plugins/tinymce-a11y-checker/utils/dom.js +1 -26
- package/es/rce/plugins/tinymce-a11y-checker/utils/indicate.js +16 -15
- package/es/rce/plugins/tinymce-a11y-checker/utils/rgb-hex.js +7 -10
- package/es/rce/plugins/tinymce-a11y-checker/utils/strings.js +1 -4
- package/es/rce/root.js +9 -8
- package/es/rce/sanitizePlugins.js +1 -3
- package/es/rce/style.js +1 -4
- package/es/rce/tinyRCE.js +13 -9
- package/es/rce/tinymce.oxide.content.min.css.js +1 -0
- package/es/rce/tinymce.oxide.skin.min.css.js +1 -0
- package/es/rce/transformContent.js +8 -10
- package/es/rce/types.js +1 -0
- package/es/rce/userOS.js +1 -1
- package/es/rce/wrapInitCb.js +50 -43
- package/es/rcs/api.js +61 -116
- package/es/rcs/buildError.js +5 -17
- package/es/rcs/fake.js +4 -13
- package/es/sidebar/actions/all_files.js +2 -0
- package/es/sidebar/actions/data.js +4 -7
- package/es/sidebar/actions/documents.js +9 -6
- package/es/sidebar/actions/files.js +3 -6
- package/es/sidebar/actions/filter.js +1 -0
- package/es/sidebar/actions/flickr.js +1 -1
- package/es/sidebar/actions/images.js +12 -11
- package/es/sidebar/actions/links.js +1 -0
- package/es/sidebar/actions/media.js +12 -10
- package/es/sidebar/actions/session.js +1 -3
- package/es/sidebar/actions/ui.js +1 -0
- package/es/sidebar/actions/upload.js +14 -39
- package/es/sidebar/containers/Sidebar.js +1 -2
- package/es/sidebar/containers/sidebarHandlers.js +3 -1
- package/es/sidebar/dragHtml.js +5 -3
- package/es/sidebar/reducers/all_files.js +4 -3
- package/es/sidebar/reducers/collection.js +12 -13
- package/es/sidebar/reducers/collections.js +5 -5
- package/es/sidebar/reducers/documents.js +6 -13
- package/es/sidebar/reducers/files.js +3 -3
- package/es/sidebar/reducers/filter.js +1 -8
- package/es/sidebar/reducers/flickr.js +9 -9
- package/es/sidebar/reducers/folder.js +15 -15
- package/es/sidebar/reducers/folders.js +3 -3
- package/es/sidebar/reducers/images.js +3 -13
- package/es/sidebar/reducers/index.js +3 -1
- package/es/sidebar/reducers/media.js +6 -13
- package/es/sidebar/reducers/newPageLinkExpanded.js +1 -2
- package/es/sidebar/reducers/noop.js +1 -0
- package/es/sidebar/reducers/rootFolderId.js +1 -2
- package/es/sidebar/reducers/session.js +3 -3
- package/es/sidebar/reducers/ui.js +3 -16
- package/es/sidebar/reducers/upload.js +8 -40
- package/es/sidebar/store/configureStore.js +1 -0
- package/es/sidebar/store/initialState.js +13 -24
- package/es/translations/locales/ab.js +1 -0
- package/es/translations/locales/ar.js +67 -9
- package/es/translations/locales/ca.js +67 -9
- package/es/translations/locales/cs.js +1 -0
- package/es/translations/locales/cs_CZ.js +1 -0
- package/es/translations/locales/cy.js +67 -9
- package/es/translations/locales/da-x-k12.js +67 -9
- package/es/translations/locales/da.js +67 -9
- package/es/translations/locales/da_DK.js +1 -0
- package/es/translations/locales/de.js +67 -9
- package/es/translations/locales/el.js +4 -0
- package/es/translations/locales/en-AU-x-unimelb.js +67 -9
- package/es/translations/locales/en-GB-x-ukhe.js +67 -9
- package/es/translations/locales/en.js +72 -8
- package/es/translations/locales/en_AU.js +67 -9
- package/es/translations/locales/en_CA.js +67 -9
- package/es/translations/locales/en_CY.js +67 -9
- package/es/translations/locales/en_GB.js +67 -9
- package/es/translations/locales/en_NZ.js +1 -0
- package/es/translations/locales/en_SE.js +1 -0
- package/es/translations/locales/en_US.js +1 -0
- package/es/translations/locales/es.js +67 -9
- package/es/translations/locales/es_ES.js +67 -9
- package/es/translations/locales/es_GT.js +1 -0
- package/es/translations/locales/fa_IR.js +7 -0
- package/es/translations/locales/fi.js +67 -9
- package/es/translations/locales/fr.js +67 -9
- package/es/translations/locales/fr_CA.js +68 -10
- package/es/translations/locales/ga.js +5 -13
- package/es/translations/locales/he.js +7 -0
- package/es/translations/locales/hi.js +67 -9
- package/es/translations/locales/ht.js +67 -9
- package/es/translations/locales/hu.js +7 -6
- package/es/translations/locales/hu_HU.js +1 -0
- package/es/translations/locales/hy.js +1 -0
- package/es/translations/locales/id.js +67 -9
- package/es/translations/locales/id_ID.js +1 -0
- package/es/translations/locales/is.js +67 -9
- package/es/translations/locales/it.js +67 -9
- package/es/translations/locales/ja.js +67 -9
- package/es/translations/locales/ko.js +1 -0
- package/es/translations/locales/ko_KR.js +1 -0
- package/es/translations/locales/lt.js +1 -0
- package/es/translations/locales/lt_LT.js +1 -0
- package/es/translations/locales/mi.js +67 -9
- package/es/translations/locales/mn_MN.js +1 -0
- package/es/translations/locales/ms.js +67 -9
- package/es/translations/locales/nb-x-k12.js +67 -9
- package/es/translations/locales/nb.js +67 -9
- package/es/translations/locales/nl.js +67 -9
- package/es/translations/locales/nl_NL.js +1 -0
- package/es/translations/locales/nn.js +7 -6
- package/es/translations/locales/pl.js +67 -9
- package/es/translations/locales/pt.js +67 -9
- package/es/translations/locales/pt_BR.js +67 -9
- package/es/translations/locales/ro.js +1 -0
- package/es/translations/locales/ru.js +67 -9
- package/es/translations/locales/se.js +1 -0
- package/es/translations/locales/sl.js +67 -9
- package/es/translations/locales/sv-x-k12.js +67 -9
- package/es/translations/locales/sv.js +67 -9
- package/es/translations/locales/sv_SE.js +1 -0
- package/es/translations/locales/tg.js +1 -0
- package/es/translations/locales/th.js +67 -9
- package/es/translations/locales/th_TH.js +1 -0
- package/es/translations/locales/tl_PH.js +1 -0
- package/es/translations/locales/tr.js +7 -0
- package/es/translations/locales/uk_UA.js +7 -0
- package/es/translations/locales/vi.js +67 -9
- package/es/translations/locales/vi_VN.js +1 -0
- package/es/translations/locales/zh-Hans.js +67 -9
- package/es/translations/locales/zh-Hant.js +67 -9
- package/es/translations/locales/zh.js +67 -9
- package/es/translations/locales/zh_HK.js +67 -9
- package/es/translations/locales/zh_TW.Big5.js +1 -0
- package/es/translations/locales/zh_TW.js +1 -0
- package/es/translations/tinymce/ar_SA.js +1 -0
- package/es/translations/tinymce/fi.js +1 -0
- package/es/translations/tinymce/ga.js +1 -0
- package/es/translations/tinymce/id.js +1 -0
- package/es/translations/tinymce/ru.js +1 -0
- package/es/translations/tinymce/ru_RU.js +1 -0
- package/es/translations/tinymce/sl.js +1 -0
- package/es/translations/tinymce/sr.js +1 -0
- package/es/translations/tinymce/th.js +1 -0
- package/es/translations/tinymce/uk_UA.js +1 -0
- package/es/translations/tinymce/vi_VN.js +1 -0
- package/es/util/TypedDict.js +4 -2
- package/es/util/encrypted-storage.js +3 -13
- package/es/util/file-url-util.js +1 -6
- package/es/util/fullscreenHelpers.js +4 -1
- package/es/util/instui-icon-helper.js +4 -3
- package/es/util/loadingPlaceholder.js +38 -39
- package/es/util/simpleCache.js +0 -3
- package/es/util/string-util.js +1 -1
- package/es/util/textarea-editing-util.js +3 -7
- package/es/util/tinymce-plugin-util.js +0 -5
- package/es/util/url-util.js +16 -25
- package/eslint.config.js +239 -0
- package/jest.config.js +1 -1
- package/package.json +76 -81
- package/scripts/build-canvas +2 -1
- package/scripts/build.js +4 -4
- package/testcafe/RCEWrapper.test.js +0 -1
- package/testcafe/StatusBar.test.js +0 -1
- package/testcafe/axe.test.js +3 -4
- package/testcafe/enhanceUserContent.test.js +0 -1
- package/tsconfig.json +20 -15
- package/.eslintrc +0 -45
- package/.prettierignore +0 -6
- package/es/rce/__mocks__/_mockCryptoEs.js +0 -124
- package/es/rce/__mocks__/styleMock.js +0 -18
- package/es/rce/__mocks__/tinymceReact.js +0 -55
- package/es/rce/plugins/tinymce-a11y-checker/rules/__mocks__/index.js +0 -53
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License along
|
|
16
16
|
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
+
|
|
18
19
|
import formatMessage from '../format-message';
|
|
19
20
|
import { closest, getData, setData } from './jqueryish_funcs';
|
|
20
21
|
const MEDIA_COMMENT_THUMBNAIL_SIZES = {
|
|
@@ -27,17 +28,14 @@ const MEDIA_COMMENT_THUMBNAIL_SIZES = {
|
|
|
27
28
|
height: 50
|
|
28
29
|
}
|
|
29
30
|
};
|
|
30
|
-
|
|
31
31
|
function createMediaCommentThumbnail(elem, size, keepOriginalText, kalturaSettings) {
|
|
32
32
|
var _window$INST, _$link$querySelector, _$link$parentElement$, _$link$parentElement$2;
|
|
33
|
-
|
|
34
33
|
// a lot of places in canvas rely on INST.kalturaSettings. Fallback if they are not provided
|
|
35
|
-
const kalturaSettings_ = kalturaSettings || ((_window$INST = window.INST) === null || _window$INST === void 0 ? void 0 : _window$INST.kalturaSettings);
|
|
36
|
-
|
|
34
|
+
const kalturaSettings_ = kalturaSettings || ((_window$INST = window.INST) === null || _window$INST === void 0 ? void 0 : _window$INST.kalturaSettings);
|
|
35
|
+
// eslint-disable-next-line no-console
|
|
37
36
|
if (!kalturaSettings_) return console.log('Kaltura has not been enabled for this account');
|
|
38
37
|
let idAttr, url;
|
|
39
38
|
const $link = elem;
|
|
40
|
-
|
|
41
39
|
try {
|
|
42
40
|
const a = document.createElement('a');
|
|
43
41
|
a.href = $link.getAttribute('href');
|
|
@@ -46,18 +44,15 @@ function createMediaCommentThumbnail(elem, size, keepOriginalText, kalturaSettin
|
|
|
46
44
|
// eslint-disable-next-line no-console
|
|
47
45
|
console.error(error);
|
|
48
46
|
}
|
|
49
|
-
|
|
50
47
|
if (url) {
|
|
51
48
|
const urlParams = new URLSearchParams(url.search);
|
|
52
49
|
if (urlParams.has('no_preview') && urlParams.get('no_preview') !== 'false') return;
|
|
53
50
|
}
|
|
54
|
-
|
|
55
51
|
const dimensions = MEDIA_COMMENT_THUMBNAIL_SIZES[size] || MEDIA_COMMENT_THUMBNAIL_SIZES.normal;
|
|
56
52
|
const id = getData($link, 'media_comment_id') || $link.getAttribute('data-media_comment_id') || ((_$link$querySelector = $link.querySelector('.media_comment_id')) === null || _$link$querySelector === void 0 ? void 0 : _$link$querySelector.textContent) || (idAttr = $link.id) && idAttr.match(/^media_comment_/) && idAttr.substring(14) || ((_$link$parentElement$ = $link.parentElement.querySelector('.media_comment_id')) === null || _$link$parentElement$ === void 0 ? void 0 : (_$link$parentElement$2 = _$link$parentElement$.textContent) === null || _$link$parentElement$2 === void 0 ? void 0 : _$link$parentElement$2.trim());
|
|
57
53
|
const authorName = getData($link, 'author') || $link.getAttribute('data-author');
|
|
58
54
|
const createdAt = getData($link, 'created_at') || $link.getAttribute('data-created_at');
|
|
59
55
|
let altText;
|
|
60
|
-
|
|
61
56
|
if (authorName && createdAt) {
|
|
62
57
|
altText = formatMessage('Play media comment by {name} from {createdAt}.', {
|
|
63
58
|
name: authorName,
|
|
@@ -66,7 +61,6 @@ function createMediaCommentThumbnail(elem, size, keepOriginalText, kalturaSettin
|
|
|
66
61
|
} else {
|
|
67
62
|
altText = formatMessage('Play media comment.');
|
|
68
63
|
}
|
|
69
|
-
|
|
70
64
|
if (id) {
|
|
71
65
|
const domain = `https://${kalturaSettings_.resource_domain}`;
|
|
72
66
|
const backgroundUrl = `${domain}/p/${kalturaSettings_.partner_id}/thumbnail/entry_id/${id}/width/` + `${dimensions.width}/height/${dimensions.height}/bgcolor/000000/type/2/vid_sec/5`;
|
|
@@ -81,18 +75,14 @@ function createMediaCommentThumbnail(elem, size, keepOriginalText, kalturaSettin
|
|
|
81
75
|
span1.appendChild(span2);
|
|
82
76
|
$thumbnail.appendChild(span1);
|
|
83
77
|
const $p = closest($link, 'p');
|
|
84
|
-
|
|
85
78
|
if ($p && !$p.getAttribute('title')) {
|
|
86
79
|
$p.setAttribute('title', altText);
|
|
87
80
|
}
|
|
88
|
-
|
|
89
81
|
let $a = $link;
|
|
90
|
-
|
|
91
82
|
if (keepOriginalText) {
|
|
92
83
|
$a = $link.cloneNode();
|
|
93
84
|
$a.classList.remove('instructure_file_link');
|
|
94
85
|
const $holder = $link.parentElement;
|
|
95
|
-
|
|
96
86
|
if ($holder.matches('.instructure_file_link_holder')) {
|
|
97
87
|
$holder.appendChild($a);
|
|
98
88
|
} else {
|
|
@@ -101,7 +91,6 @@ function createMediaCommentThumbnail(elem, size, keepOriginalText, kalturaSettin
|
|
|
101
91
|
} else {
|
|
102
92
|
$link.innerHTML = '';
|
|
103
93
|
}
|
|
104
|
-
|
|
105
94
|
$a.setAttribute('data-download', $a.getAttribute('href'));
|
|
106
95
|
$a.setAttribute('href', '#');
|
|
107
96
|
$a.classList.add('instructure_inline_media_comment');
|
|
@@ -109,9 +98,9 @@ function createMediaCommentThumbnail(elem, size, keepOriginalText, kalturaSettin
|
|
|
109
98
|
$a.style.backgroundImage = '';
|
|
110
99
|
$a.style.padding = 0;
|
|
111
100
|
}
|
|
112
|
-
}
|
|
113
|
-
|
|
101
|
+
}
|
|
114
102
|
|
|
103
|
+
// public API
|
|
115
104
|
export default function mediaCommentThumbnail(comment_element) {
|
|
116
105
|
let size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'normal';
|
|
117
106
|
let keepOriginalText = arguments.length > 2 ? arguments[2] : undefined;
|
|
@@ -123,7 +112,6 @@ export default function mediaCommentThumbnail(comment_element) {
|
|
|
123
112
|
if (jqueryData) {
|
|
124
113
|
Object.keys(jqueryData).forEach(k => setData(comment_element, k, jqueryData[k]));
|
|
125
114
|
}
|
|
126
|
-
|
|
127
115
|
createMediaCommentThumbnail(comment_element, size, keepOriginalText, kalturaSettings);
|
|
128
116
|
resolve();
|
|
129
117
|
}, 1));
|
package/es/format-message.js
CHANGED
|
@@ -15,16 +15,15 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License along
|
|
16
16
|
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
-
const formatMessage = require('format-message');
|
|
19
18
|
|
|
19
|
+
const formatMessage = require('format-message');
|
|
20
20
|
const ns = formatMessage.namespace();
|
|
21
|
-
|
|
22
21
|
ns.addLocale = translations => {
|
|
23
22
|
ns.setup({
|
|
24
|
-
translations: {
|
|
23
|
+
translations: {
|
|
24
|
+
...ns.setup().translations,
|
|
25
25
|
...translations
|
|
26
26
|
}
|
|
27
27
|
});
|
|
28
28
|
};
|
|
29
|
-
|
|
30
29
|
module.exports = ns;
|
package/es/getThemeVars.js
CHANGED
|
@@ -15,24 +15,27 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License along
|
|
16
16
|
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
+
|
|
18
19
|
import { getRegistry } from '@instructure/theme-registry';
|
|
19
|
-
import { merge, cloneDeep } from 'lodash';
|
|
20
|
-
// changes, so there's no point in doing the work more than once.
|
|
20
|
+
import { merge, cloneDeep } from 'lodash';
|
|
21
21
|
|
|
22
|
+
// The running theme is the running theme for this page load, and it never
|
|
23
|
+
// changes, so there's no point in doing the work more than once.
|
|
22
24
|
let memoizedVariables;
|
|
23
|
-
|
|
24
25
|
function getThemeVars() {
|
|
25
26
|
if (memoizedVariables) return memoizedVariables;
|
|
27
|
+
|
|
28
|
+
// @ts-expect-error
|
|
26
29
|
const {
|
|
27
30
|
currentThemeKey,
|
|
28
31
|
overrides,
|
|
29
32
|
themes
|
|
30
|
-
} = getRegistry();
|
|
33
|
+
} = getRegistry();
|
|
34
|
+
// Just assume the "canvas" theme if the default key is null. This will
|
|
31
35
|
// never happen in the live app because one way or another a theme gets
|
|
32
36
|
// used, but unit tests don't always do that.
|
|
33
37
|
// Also we have to cloneDeep this because the merge below is about to
|
|
34
38
|
// mutate the whole thing.
|
|
35
|
-
|
|
36
39
|
const themeKey = currentThemeKey || 'canvas';
|
|
37
40
|
const variables = cloneDeep(themes[themeKey]);
|
|
38
41
|
merge(variables, overrides);
|
|
@@ -42,5 +45,4 @@ function getThemeVars() {
|
|
|
42
45
|
};
|
|
43
46
|
return memoizedVariables;
|
|
44
47
|
}
|
|
45
|
-
|
|
46
48
|
export { getThemeVars };
|
package/es/getTranslations.js
CHANGED
|
@@ -22,320 +22,243 @@
|
|
|
22
22
|
* as part of the build. DO NOT EDIT
|
|
23
23
|
* ********************************************************
|
|
24
24
|
*/
|
|
25
|
+
|
|
25
26
|
export default function getTranslations(locale) {
|
|
26
27
|
const transReadyPromise = new Promise((resolve, reject) => {
|
|
27
28
|
import('tinymce').then(() => {
|
|
28
29
|
let p;
|
|
29
|
-
|
|
30
30
|
switch (locale) {
|
|
31
31
|
case 'ab':
|
|
32
32
|
p = import('./translations/locales/ab');
|
|
33
33
|
break;
|
|
34
|
-
|
|
35
34
|
case 'ar':
|
|
36
35
|
p = import('./translations/locales/ar');
|
|
37
36
|
break;
|
|
38
|
-
|
|
39
37
|
case 'ca':
|
|
40
38
|
p = import('./translations/locales/ca');
|
|
41
39
|
break;
|
|
42
|
-
|
|
43
40
|
case 'cs':
|
|
44
41
|
p = import('./translations/locales/cs');
|
|
45
42
|
break;
|
|
46
|
-
|
|
47
43
|
case 'cs-CZ':
|
|
48
44
|
p = import('./translations/locales/cs_CZ');
|
|
49
45
|
break;
|
|
50
|
-
|
|
51
46
|
case 'cy':
|
|
52
47
|
p = import('./translations/locales/cy');
|
|
53
48
|
break;
|
|
54
|
-
|
|
55
49
|
case 'da':
|
|
56
50
|
p = import('./translations/locales/da');
|
|
57
51
|
break;
|
|
58
|
-
|
|
59
52
|
case 'da-x-k12':
|
|
60
53
|
p = import('./translations/locales/da-x-k12');
|
|
61
54
|
break;
|
|
62
|
-
|
|
63
55
|
case 'da-DK':
|
|
64
56
|
p = import('./translations/locales/da_DK');
|
|
65
57
|
break;
|
|
66
|
-
|
|
67
58
|
case 'de':
|
|
68
59
|
p = import('./translations/locales/de');
|
|
69
60
|
break;
|
|
70
|
-
|
|
71
61
|
case 'el':
|
|
72
62
|
p = import('./translations/locales/el');
|
|
73
63
|
break;
|
|
74
|
-
|
|
75
64
|
case 'en':
|
|
76
65
|
p = import('./translations/locales/en');
|
|
77
66
|
break;
|
|
78
|
-
|
|
79
67
|
case 'en-AU-x-unimelb':
|
|
80
68
|
p = import('./translations/locales/en-AU-x-unimelb');
|
|
81
69
|
break;
|
|
82
|
-
|
|
83
70
|
case 'en-GB-x-ukhe':
|
|
84
71
|
p = import('./translations/locales/en-GB-x-ukhe');
|
|
85
72
|
break;
|
|
86
|
-
|
|
87
73
|
case 'en-AU':
|
|
88
74
|
p = import('./translations/locales/en_AU');
|
|
89
75
|
break;
|
|
90
|
-
|
|
91
76
|
case 'en-CA':
|
|
92
77
|
p = import('./translations/locales/en_CA');
|
|
93
78
|
break;
|
|
94
|
-
|
|
95
79
|
case 'en-CY':
|
|
96
80
|
p = import('./translations/locales/en_CY');
|
|
97
81
|
break;
|
|
98
|
-
|
|
99
82
|
case 'en-GB':
|
|
100
83
|
p = import('./translations/locales/en_GB');
|
|
101
84
|
break;
|
|
102
|
-
|
|
103
85
|
case 'en-NZ':
|
|
104
86
|
p = import('./translations/locales/en_NZ');
|
|
105
87
|
break;
|
|
106
|
-
|
|
107
88
|
case 'en-SE':
|
|
108
89
|
p = import('./translations/locales/en_SE');
|
|
109
90
|
break;
|
|
110
|
-
|
|
111
91
|
case 'en-US':
|
|
112
92
|
p = import('./translations/locales/en_US');
|
|
113
93
|
break;
|
|
114
|
-
|
|
115
94
|
case 'es':
|
|
116
95
|
p = import('./translations/locales/es');
|
|
117
96
|
break;
|
|
118
|
-
|
|
119
97
|
case 'es-ES':
|
|
120
98
|
p = import('./translations/locales/es_ES');
|
|
121
99
|
break;
|
|
122
|
-
|
|
123
100
|
case 'es-GT':
|
|
124
101
|
p = import('./translations/locales/es_GT');
|
|
125
102
|
break;
|
|
126
|
-
|
|
127
103
|
case 'fa-IR':
|
|
128
104
|
p = import('./translations/locales/fa_IR');
|
|
129
105
|
break;
|
|
130
|
-
|
|
131
106
|
case 'fi':
|
|
132
107
|
p = import('./translations/locales/fi');
|
|
133
108
|
break;
|
|
134
|
-
|
|
135
109
|
case 'fr':
|
|
136
110
|
p = import('./translations/locales/fr');
|
|
137
111
|
break;
|
|
138
|
-
|
|
139
112
|
case 'fr-CA':
|
|
140
113
|
p = import('./translations/locales/fr_CA');
|
|
141
114
|
break;
|
|
142
|
-
|
|
143
115
|
case 'ga':
|
|
144
116
|
p = import('./translations/locales/ga');
|
|
145
117
|
break;
|
|
146
|
-
|
|
147
118
|
case 'he':
|
|
148
119
|
p = import('./translations/locales/he');
|
|
149
120
|
break;
|
|
150
|
-
|
|
151
121
|
case 'hi':
|
|
152
122
|
p = import('./translations/locales/hi');
|
|
153
123
|
break;
|
|
154
|
-
|
|
155
124
|
case 'ht':
|
|
156
125
|
p = import('./translations/locales/ht');
|
|
157
126
|
break;
|
|
158
|
-
|
|
159
127
|
case 'hu':
|
|
160
128
|
p = import('./translations/locales/hu');
|
|
161
129
|
break;
|
|
162
|
-
|
|
163
130
|
case 'hu-HU':
|
|
164
131
|
p = import('./translations/locales/hu_HU');
|
|
165
132
|
break;
|
|
166
|
-
|
|
167
133
|
case 'hy':
|
|
168
134
|
p = import('./translations/locales/hy');
|
|
169
135
|
break;
|
|
170
|
-
|
|
171
136
|
case 'id':
|
|
172
137
|
p = import('./translations/locales/id');
|
|
173
138
|
break;
|
|
174
|
-
|
|
175
139
|
case 'id-ID':
|
|
176
140
|
p = import('./translations/locales/id_ID');
|
|
177
141
|
break;
|
|
178
|
-
|
|
179
142
|
case 'is':
|
|
180
143
|
p = import('./translations/locales/is');
|
|
181
144
|
break;
|
|
182
|
-
|
|
183
145
|
case 'it':
|
|
184
146
|
p = import('./translations/locales/it');
|
|
185
147
|
break;
|
|
186
|
-
|
|
187
148
|
case 'ja':
|
|
188
149
|
p = import('./translations/locales/ja');
|
|
189
150
|
break;
|
|
190
|
-
|
|
191
151
|
case 'ko':
|
|
192
152
|
p = import('./translations/locales/ko');
|
|
193
153
|
break;
|
|
194
|
-
|
|
195
154
|
case 'ko-KR':
|
|
196
155
|
p = import('./translations/locales/ko_KR');
|
|
197
156
|
break;
|
|
198
|
-
|
|
199
157
|
case 'lt':
|
|
200
158
|
p = import('./translations/locales/lt');
|
|
201
159
|
break;
|
|
202
|
-
|
|
203
160
|
case 'lt-LT':
|
|
204
161
|
p = import('./translations/locales/lt_LT');
|
|
205
162
|
break;
|
|
206
|
-
|
|
207
163
|
case 'mi':
|
|
208
164
|
p = import('./translations/locales/mi');
|
|
209
165
|
break;
|
|
210
|
-
|
|
211
166
|
case 'mn-MN':
|
|
212
167
|
p = import('./translations/locales/mn_MN');
|
|
213
168
|
break;
|
|
214
|
-
|
|
215
169
|
case 'ms':
|
|
216
170
|
p = import('./translations/locales/ms');
|
|
217
171
|
break;
|
|
218
|
-
|
|
219
172
|
case 'nb':
|
|
220
173
|
p = import('./translations/locales/nb');
|
|
221
174
|
break;
|
|
222
|
-
|
|
223
175
|
case 'nb-x-k12':
|
|
224
176
|
p = import('./translations/locales/nb-x-k12');
|
|
225
177
|
break;
|
|
226
|
-
|
|
227
178
|
case 'nl':
|
|
228
179
|
p = import('./translations/locales/nl');
|
|
229
180
|
break;
|
|
230
|
-
|
|
231
181
|
case 'nl-NL':
|
|
232
182
|
p = import('./translations/locales/nl_NL');
|
|
233
183
|
break;
|
|
234
|
-
|
|
235
184
|
case 'nn':
|
|
236
185
|
p = import('./translations/locales/nn');
|
|
237
186
|
break;
|
|
238
|
-
|
|
239
187
|
case 'pl':
|
|
240
188
|
p = import('./translations/locales/pl');
|
|
241
189
|
break;
|
|
242
|
-
|
|
243
190
|
case 'pt':
|
|
244
191
|
p = import('./translations/locales/pt');
|
|
245
192
|
break;
|
|
246
|
-
|
|
247
193
|
case 'pt-BR':
|
|
248
194
|
p = import('./translations/locales/pt_BR');
|
|
249
195
|
break;
|
|
250
|
-
|
|
251
196
|
case 'ro':
|
|
252
197
|
p = import('./translations/locales/ro');
|
|
253
198
|
break;
|
|
254
|
-
|
|
255
199
|
case 'ru':
|
|
256
200
|
p = import('./translations/locales/ru');
|
|
257
201
|
break;
|
|
258
|
-
|
|
259
202
|
case 'se':
|
|
260
203
|
p = import('./translations/locales/se');
|
|
261
204
|
break;
|
|
262
|
-
|
|
263
205
|
case 'sl':
|
|
264
206
|
p = import('./translations/locales/sl');
|
|
265
207
|
break;
|
|
266
|
-
|
|
267
208
|
case 'sv':
|
|
268
209
|
p = import('./translations/locales/sv');
|
|
269
210
|
break;
|
|
270
|
-
|
|
271
211
|
case 'sv-x-k12':
|
|
272
212
|
p = import('./translations/locales/sv-x-k12');
|
|
273
213
|
break;
|
|
274
|
-
|
|
275
214
|
case 'sv-SE':
|
|
276
215
|
p = import('./translations/locales/sv_SE');
|
|
277
216
|
break;
|
|
278
|
-
|
|
279
217
|
case 'tg':
|
|
280
218
|
p = import('./translations/locales/tg');
|
|
281
219
|
break;
|
|
282
|
-
|
|
283
220
|
case 'th':
|
|
284
221
|
p = import('./translations/locales/th');
|
|
285
222
|
break;
|
|
286
|
-
|
|
287
223
|
case 'th-TH':
|
|
288
224
|
p = import('./translations/locales/th_TH');
|
|
289
225
|
break;
|
|
290
|
-
|
|
291
226
|
case 'tl-PH':
|
|
292
227
|
p = import('./translations/locales/tl_PH');
|
|
293
228
|
break;
|
|
294
|
-
|
|
295
229
|
case 'tr':
|
|
296
230
|
p = import('./translations/locales/tr');
|
|
297
231
|
break;
|
|
298
|
-
|
|
299
232
|
case 'uk-UA':
|
|
300
233
|
p = import('./translations/locales/uk_UA');
|
|
301
234
|
break;
|
|
302
|
-
|
|
303
235
|
case 'vi':
|
|
304
236
|
p = import('./translations/locales/vi');
|
|
305
237
|
break;
|
|
306
|
-
|
|
307
238
|
case 'vi-VN':
|
|
308
239
|
p = import('./translations/locales/vi_VN');
|
|
309
240
|
break;
|
|
310
|
-
|
|
311
241
|
case 'zh':
|
|
312
242
|
p = import('./translations/locales/zh');
|
|
313
243
|
break;
|
|
314
|
-
|
|
315
244
|
case 'zh-Hans':
|
|
316
245
|
p = import('./translations/locales/zh-Hans');
|
|
317
246
|
break;
|
|
318
|
-
|
|
319
247
|
case 'zh-Hant':
|
|
320
248
|
p = import('./translations/locales/zh-Hant');
|
|
321
249
|
break;
|
|
322
|
-
|
|
323
250
|
case 'zh-HK':
|
|
324
251
|
p = import('./translations/locales/zh_HK');
|
|
325
252
|
break;
|
|
326
|
-
|
|
327
253
|
case 'zh-TW':
|
|
328
254
|
p = import('./translations/locales/zh_TW');
|
|
329
255
|
break;
|
|
330
|
-
|
|
331
256
|
case 'zh-TW.Big5':
|
|
332
257
|
p = import('./translations/locales/zh_TW.Big5');
|
|
333
258
|
break;
|
|
334
|
-
|
|
335
259
|
default:
|
|
336
260
|
p = Promise.resolve(null);
|
|
337
261
|
}
|
|
338
|
-
|
|
339
262
|
p.then(resolve).catch(reject);
|
|
340
263
|
}).catch(() => {
|
|
341
264
|
throw new Error('Failed loading tinymce.');
|
package/es/index.js
CHANGED
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License along
|
|
16
16
|
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
+
|
|
18
19
|
import normalizeLocale from './rce/normalizeLocale';
|
|
19
20
|
import { renderIntoDiv as render } from './rce/root';
|
|
20
21
|
import { headerFor, originFromHost } from './rcs/api';
|
|
@@ -22,6 +23,8 @@ import getTranslations from './getTranslations';
|
|
|
22
23
|
import defaultTinymceConfig from './defaultTinymceConfig';
|
|
23
24
|
import { setLocale } from './common/natcompare';
|
|
24
25
|
import { Mathml } from './enhance-user-content/mathml';
|
|
26
|
+
export { getContrastStatus, getDefaultColors, isTransparent } from './rce/plugins/instructure_color/components/colorUtils';
|
|
27
|
+
export { ColorPicker } from './rce/plugins/instructure_color/components/ColorPicker';
|
|
25
28
|
export * from './enhance-user-content/index';
|
|
26
29
|
export const defaultConfiguration = defaultTinymceConfig;
|
|
27
30
|
export { instuiPopupMountNode } from './util/fullscreenHelpers';
|
|
@@ -31,7 +34,6 @@ export { UploadFilePanelIds, handleSubmit, UploadFile } from './rce/plugins/shar
|
|
|
31
34
|
export function renderIntoDiv(editorEl, props, cb) {
|
|
32
35
|
const language = normalizeLocale(props.language);
|
|
33
36
|
setLocale(language);
|
|
34
|
-
|
|
35
37
|
if (undefined || language === 'en') {
|
|
36
38
|
render(editorEl, props, cb);
|
|
37
39
|
} else {
|
|
@@ -18,10 +18,10 @@
|
|
|
18
18
|
import { Alert } from '@instructure/ui-alerts';
|
|
19
19
|
import React from 'react';
|
|
20
20
|
import { arrayOf, func, number, shape, string } from 'prop-types';
|
|
21
|
+
|
|
21
22
|
/**
|
|
22
23
|
* Shows messages that have been provided to it in the RCE
|
|
23
24
|
*/
|
|
24
|
-
|
|
25
25
|
export default function AlertMessageArea(_ref) {
|
|
26
26
|
let {
|
|
27
27
|
messages,
|
|
@@ -15,12 +15,14 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License along
|
|
16
16
|
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
+
|
|
18
19
|
import React from 'react';
|
|
19
|
-
import { bool } from 'prop-types';
|
|
20
|
+
import { bool } from 'prop-types';
|
|
21
|
+
|
|
22
|
+
// The purpose of the dragging blocker is to keep the TinyMCE iframe from
|
|
20
23
|
// intercepting and swallowing the mouse events if the mouse winds up over the
|
|
21
24
|
// iframe while performing the drag. This is what TinyMCE itself does with its
|
|
22
25
|
// own resize handle.
|
|
23
|
-
|
|
24
26
|
export default function DraggingBlocker(props) {
|
|
25
27
|
if (props.dragging) {
|
|
26
28
|
return /*#__PURE__*/React.createElement("div", {
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License along
|
|
16
16
|
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
+
|
|
18
19
|
import React from 'react';
|
|
19
20
|
import { bool, func } from 'prop-types';
|
|
20
21
|
import { Heading } from '@instructure/ui-heading';
|
package/es/rce/RCE.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
|
|
3
1
|
/*
|
|
4
2
|
* Copyright (C) 2021 - present Instructure, Inc.
|
|
5
3
|
*
|
|
@@ -17,6 +15,7 @@
|
|
|
17
15
|
* You should have received a copy of the GNU Affero General Public License along
|
|
18
16
|
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
19
17
|
*/
|
|
18
|
+
|
|
20
19
|
import React, { forwardRef, useState } from 'react';
|
|
21
20
|
import formatMessage from '../format-message';
|
|
22
21
|
import RCEWrapper from './RCEWrapper';
|
|
@@ -26,18 +25,17 @@ import wrapInitCb from './wrapInitCb';
|
|
|
26
25
|
import tinyRCE from './tinyRCE';
|
|
27
26
|
import getTranslations from '../getTranslations';
|
|
28
27
|
import '@instructure/canvas-theme';
|
|
29
|
-
|
|
30
28
|
if (!process || !process.env || !undefined) {
|
|
31
29
|
formatMessage.setup({
|
|
32
30
|
locale: 'en',
|
|
33
31
|
generateId: require('format-message-generate-id/underscored_crc32'),
|
|
34
32
|
missingTranslation: 'ignore'
|
|
35
33
|
});
|
|
36
|
-
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// forward rceRef to it refs the RCEWrapper where clients can call getCode etc. on it.
|
|
37
37
|
// You probably shouldn't use it until onInit has been called. Until then tinymce
|
|
38
38
|
// is not initialized.
|
|
39
|
-
|
|
40
|
-
|
|
41
39
|
const RCE = /*#__PURE__*/forwardRef(function RCE(props, rceRef) {
|
|
42
40
|
const {
|
|
43
41
|
autosave,
|
|
@@ -80,13 +78,14 @@ const RCE = /*#__PURE__*/forwardRef(function RCE(props, rceRef) {
|
|
|
80
78
|
setTranslations(false);
|
|
81
79
|
});
|
|
82
80
|
return p;
|
|
83
|
-
});
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
// some properties are only used on initialization
|
|
84
84
|
// Languages are a bit of a mess since Tinymce and Canvas
|
|
85
85
|
// have 2 different sets of language names. normalizeLocale
|
|
86
86
|
// takes the language prop and returns the locale Canvas knows,
|
|
87
87
|
// editorLanguage takes the language prop and returns the
|
|
88
88
|
// corresponding locale for tinymce.
|
|
89
|
-
|
|
90
89
|
const [initOnlyProps] = useState(() => {
|
|
91
90
|
const iProps = {
|
|
92
91
|
autosave,
|
|
@@ -101,17 +100,17 @@ const RCE = /*#__PURE__*/forwardRef(function RCE(props, rceRef) {
|
|
|
101
100
|
trayProps: rcsProps,
|
|
102
101
|
use_rce_icon_maker,
|
|
103
102
|
features,
|
|
104
|
-
editorOptions: {
|
|
103
|
+
editorOptions: {
|
|
104
|
+
...editorOptions,
|
|
105
105
|
selector: (editorOptions === null || editorOptions === void 0 ? void 0 : editorOptions.selector) || `#${textareaId}`,
|
|
106
106
|
height,
|
|
107
107
|
language: editorLanguage(props.language)
|
|
108
108
|
},
|
|
109
109
|
variant
|
|
110
110
|
};
|
|
111
|
-
wrapInitCb(mirroredAttrs, iProps.editorOptions);
|
|
111
|
+
wrapInitCb(mirroredAttrs || {}, iProps.editorOptions);
|
|
112
112
|
return iProps;
|
|
113
113
|
});
|
|
114
|
-
|
|
115
114
|
if (typeof translations !== 'boolean') {
|
|
116
115
|
return /*#__PURE__*/React.createElement(React.Fragment, null, formatMessage('Loading...'));
|
|
117
116
|
} else {
|
|
@@ -148,5 +147,7 @@ const defaultProps = {
|
|
|
148
147
|
onContentChange: () => undefined,
|
|
149
148
|
onInit: () => undefined
|
|
150
149
|
};
|
|
150
|
+
|
|
151
|
+
// @ts-expect-error
|
|
151
152
|
RCE.defaultProps = defaultProps;
|
|
152
153
|
export default RCE;
|
package/es/rce/RCEGlobals.js
CHANGED
|
@@ -15,8 +15,15 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License along
|
|
16
16
|
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
+
|
|
18
19
|
const isEmpty = obj => Object.keys(obj).length === 0;
|
|
19
20
|
|
|
21
|
+
/**
|
|
22
|
+
* @typedef {Object} Features
|
|
23
|
+
* @property {boolean} media_links_use_attachment_id
|
|
24
|
+
* @property {boolean} file_verifiers_for_quiz_links
|
|
25
|
+
*/
|
|
26
|
+
|
|
20
27
|
class RCEGlobals {
|
|
21
28
|
constructor() {
|
|
22
29
|
if (!RCEGlobals.instance) {
|
|
@@ -26,37 +33,32 @@ class RCEGlobals {
|
|
|
26
33
|
config: {}
|
|
27
34
|
};
|
|
28
35
|
}
|
|
29
|
-
|
|
30
36
|
return RCEGlobals.instance;
|
|
31
37
|
}
|
|
32
|
-
|
|
33
38
|
getFeatures() {
|
|
34
|
-
return this._data.features;
|
|
39
|
+
return /** @type {Features} */this._data.features;
|
|
35
40
|
}
|
|
36
|
-
|
|
37
41
|
setFeatures(features) {
|
|
38
42
|
// Set only once
|
|
39
43
|
if (isEmpty(this._data.features)) {
|
|
40
|
-
this._data.features = {
|
|
44
|
+
this._data.features = {
|
|
45
|
+
...features
|
|
41
46
|
};
|
|
42
47
|
Object.freeze(this._data.features);
|
|
43
48
|
}
|
|
44
49
|
}
|
|
45
|
-
|
|
46
50
|
getConfig() {
|
|
47
51
|
return this._data.config;
|
|
48
52
|
}
|
|
49
|
-
|
|
50
53
|
setConfig(config) {
|
|
51
54
|
// Set only once
|
|
52
55
|
if (isEmpty(this._data.config)) {
|
|
53
|
-
this._data.config = {
|
|
56
|
+
this._data.config = {
|
|
57
|
+
...config
|
|
54
58
|
};
|
|
55
59
|
Object.freeze(this._data.config);
|
|
56
60
|
}
|
|
57
61
|
}
|
|
58
|
-
|
|
59
62
|
}
|
|
60
|
-
|
|
61
63
|
const instance = new RCEGlobals();
|
|
62
64
|
export default instance;
|