@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,84 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2023 - present Instructure, Inc.
|
|
3
|
-
*
|
|
4
|
-
* This file is part of Canvas.
|
|
5
|
-
*
|
|
6
|
-
* Canvas is free software: you can redistribute it and/or modify it under
|
|
7
|
-
* the terms of the GNU Affero General Public License as published by the Free
|
|
8
|
-
* Software Foundation, version 3 of the License.
|
|
9
|
-
*
|
|
10
|
-
* Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
11
|
-
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
12
|
-
* A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
13
|
-
* details.
|
|
14
|
-
*
|
|
15
|
-
* You should have received a copy of the GNU Affero General Public License along
|
|
16
|
-
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
-
*/
|
|
18
|
-
import CryptoES from 'crypto-es';
|
|
19
|
-
export default class EncryptedStorage {
|
|
20
|
-
constructor(passphrase) {
|
|
21
|
-
this.passphrase = void 0;
|
|
22
|
-
|
|
23
|
-
this.errorHandlerWrapper = callback => {
|
|
24
|
-
try {
|
|
25
|
-
return callback();
|
|
26
|
-
} catch (error) {
|
|
27
|
-
console.error('error', error);
|
|
28
|
-
return null;
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
this.passphrase = CryptoES.enc.Utf8.parse(passphrase);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
setItem(key, content) {
|
|
36
|
-
return this.errorHandlerWrapper(() => {
|
|
37
|
-
// If passphrase is present, encrypt string and JSON stringify
|
|
38
|
-
let encrypted;
|
|
39
|
-
|
|
40
|
-
if (this.passphrase) {
|
|
41
|
-
encrypted = CryptoES.RC4.encrypt(content, this.passphrase, {
|
|
42
|
-
mode: CryptoES.mode.CFB,
|
|
43
|
-
padding: CryptoES.pad.AnsiX923
|
|
44
|
-
}).toString();
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
const data = JSON.stringify({
|
|
48
|
-
autosaveTimestamp: new Date().getTime(),
|
|
49
|
-
content: encrypted
|
|
50
|
-
});
|
|
51
|
-
return window.localStorage.setItem(key, data);
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
getItem(key) {
|
|
56
|
-
return this.errorHandlerWrapper(() => {
|
|
57
|
-
const data = window.localStorage.getItem(key);
|
|
58
|
-
|
|
59
|
-
if (!data) {
|
|
60
|
-
return data;
|
|
61
|
-
} // If passphrase is present, parse JSON and decrypt string
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
if (this.passphrase) {
|
|
65
|
-
const parsedData = JSON.parse(data);
|
|
66
|
-
parsedData.content = CryptoES.RC4.decrypt(parsedData.content, this.passphrase, {
|
|
67
|
-
mode: CryptoES.mode.CFB,
|
|
68
|
-
padding: CryptoES.pad.AnsiX923
|
|
69
|
-
});
|
|
70
|
-
parsedData.content = parsedData.content.toString(CryptoES.enc.Utf8);
|
|
71
|
-
return parsedData;
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
key(index) {
|
|
77
|
-
return this.errorHandlerWrapper(() => window.localStorage.key(index));
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
removeItem(key) {
|
|
81
|
-
return this.errorHandlerWrapper(() => window.localStorage.removeItem(key));
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2023 - present Instructure, Inc.
|
|
3
|
-
*
|
|
4
|
-
* This file is part of Canvas.
|
|
5
|
-
*
|
|
6
|
-
* Canvas is free software: you can redistribute it and/or modify it under
|
|
7
|
-
* the terms of the GNU Affero General Public License as published by the Free
|
|
8
|
-
* Software Foundation, version 3 of the License.
|
|
9
|
-
*
|
|
10
|
-
* Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
11
|
-
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
12
|
-
* A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
13
|
-
* details.
|
|
14
|
-
*
|
|
15
|
-
* You should have received a copy of the GNU Affero General Public License along
|
|
16
|
-
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
-
*/
|
|
18
|
-
import * as URI from 'uri-js';
|
|
19
|
-
import { parseUrlOrNull } from './url-util';
|
|
20
|
-
const fileIdPatterns = [/\/\w+s\/\d+\/files\/(\d+)/];
|
|
21
|
-
export function guessCanvasFileIdFromUrl(inputUrlStr, restrictToOrigin) {
|
|
22
|
-
const uri = URI.parse(inputUrlStr);
|
|
23
|
-
|
|
24
|
-
if (restrictToOrigin != null) {
|
|
25
|
-
const url = parseUrlOrNull(inputUrlStr);
|
|
26
|
-
const originUrl = parseUrlOrNull(restrictToOrigin);
|
|
27
|
-
|
|
28
|
-
if ((url === null || url === void 0 ? void 0 : url.origin) !== (originUrl === null || originUrl === void 0 ? void 0 : originUrl.origin)) {
|
|
29
|
-
return null;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
if (uri.path == null || uri.path.length === 0) return null;
|
|
34
|
-
|
|
35
|
-
for (const pattern of fileIdPatterns) {
|
|
36
|
-
const match = uri.path.match(pattern);
|
|
37
|
-
|
|
38
|
-
if (match) {
|
|
39
|
-
return match[1];
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return null;
|
|
44
|
-
}
|
|
@@ -1,27 +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
|
-
// safari implements only the webkit prefixed version of the fullscreen api
|
|
19
|
-
const FS_ELEMENT = document.fullscreenElement === undefined ? 'webkitFullscreenElement' : 'fullscreenElement';
|
|
20
|
-
const FS_REQUEST = document.body.requestFullscreen ? 'requestFullscreen' : 'webkitRequestFullscreen';
|
|
21
|
-
const FS_EXIT = document.exitFullscreen ? 'exitFullscreen' : 'webkitExitFullscreen';
|
|
22
|
-
const FS_CHANGEEVENT = FS_ELEMENT === 'webkitFullscreenElement' ? 'webkitfullscreenchange' : 'fullscreenchange';
|
|
23
|
-
const FS_ENABLED = document.fullscreenEnabled ? 'fullscreenEnabled' : 'webkitFullscreenEnabled';
|
|
24
|
-
|
|
25
|
-
const instuiPopupMountNode = () => document[FS_ELEMENT];
|
|
26
|
-
|
|
27
|
-
export { FS_ELEMENT, FS_REQUEST, FS_EXIT, FS_CHANGEEVENT, FS_ENABLED, instuiPopupMountNode };
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
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 * as rawInstUiIcons from '@instructure/ui-icons/es/svg';
|
|
21
|
-
/**
|
|
22
|
-
* All inst-ui icons as an array.
|
|
23
|
-
*
|
|
24
|
-
* Note that this does require including these all in the built modules, but it appears that they were already
|
|
25
|
-
* present, as testing with and without this didn't yield much difference in module size.
|
|
26
|
-
*/
|
|
27
|
-
|
|
28
|
-
export const instUiIconsArray = Object.values(rawInstUiIcons);
|
|
29
|
-
/**
|
|
30
|
-
* Type for inst ui icons
|
|
31
|
-
*/
|
|
@@ -1,436 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2023 - present Instructure, Inc.
|
|
3
|
-
*
|
|
4
|
-
* This file is part of Canvas.
|
|
5
|
-
*
|
|
6
|
-
* Canvas is free software: you can redistribute it and/or modify it under
|
|
7
|
-
* the terms of the GNU Affero General Public License as published by the Free
|
|
8
|
-
* Software Foundation, version 3 of the License.
|
|
9
|
-
*
|
|
10
|
-
* Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
11
|
-
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
12
|
-
* A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
13
|
-
* details.
|
|
14
|
-
*
|
|
15
|
-
* You should have received a copy of the GNU Affero General Public License along
|
|
16
|
-
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
-
*/
|
|
18
|
-
import { isAudio, isImage, isVideo } from '../rce/plugins/shared/fileTypeUtils';
|
|
19
|
-
import { AUDIO_PLAYER_SIZE, VIDEO_SIZE_DEFAULT } from '../rce/plugins/instructure_record/VideoOptionsTray/TrayController';
|
|
20
|
-
import formatMessage from '../format-message';
|
|
21
|
-
import { trimmedOrNull } from './string-util';
|
|
22
|
-
import { assertNever } from './assertNever';
|
|
23
|
-
import { isTextNode } from './elem-util';
|
|
24
|
-
/**
|
|
25
|
-
* Determines what type of placeholder is appropriate for a given file information.
|
|
26
|
-
*/
|
|
27
|
-
|
|
28
|
-
export async function placeholderInfoFor(fileMetaProps) {
|
|
29
|
-
var _fileMetaProps$title, _trimmedOrNull;
|
|
30
|
-
|
|
31
|
-
const fileName = (_fileMetaProps$title = fileMetaProps.title) !== null && _fileMetaProps$title !== void 0 ? _fileMetaProps$title : fileMetaProps.name;
|
|
32
|
-
const visibleLabel = (_trimmedOrNull = trimmedOrNull(fileName)) !== null && _trimmedOrNull !== void 0 ? _trimmedOrNull : formatMessage('Loading...');
|
|
33
|
-
const ariaLabel = formatMessage('Loading placeholder for {fileName}', {
|
|
34
|
-
fileName: fileName !== null && fileName !== void 0 ? fileName : 'unknown filename'
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
if (isImage(fileMetaProps.contentType) && fileMetaProps.displayAs !== 'link') {
|
|
38
|
-
var _trimmedOrNull2;
|
|
39
|
-
|
|
40
|
-
const imageUrl = (_trimmedOrNull2 = trimmedOrNull(fileMetaProps.domObject.preview)) !== null && _trimmedOrNull2 !== void 0 ? _trimmedOrNull2 : URL.createObjectURL(fileMetaProps.domObject);
|
|
41
|
-
return new Promise((resolve, reject) => {
|
|
42
|
-
const image = new Image();
|
|
43
|
-
|
|
44
|
-
image.onload = () => resolve({
|
|
45
|
-
type: 'block',
|
|
46
|
-
visibleLabel,
|
|
47
|
-
ariaLabel,
|
|
48
|
-
width: image.width + 'px',
|
|
49
|
-
height: image.height + 'px',
|
|
50
|
-
vAlign: 'middle',
|
|
51
|
-
backgroundImageUrl: image.src
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
image.onerror = () => reject(new Error('Failed to load image: ' + imageUrl));
|
|
55
|
-
|
|
56
|
-
image.src = imageUrl;
|
|
57
|
-
});
|
|
58
|
-
} else if (isVideo(fileMetaProps.contentType || fileMetaProps.type)) {
|
|
59
|
-
return {
|
|
60
|
-
type: 'block',
|
|
61
|
-
visibleLabel,
|
|
62
|
-
ariaLabel,
|
|
63
|
-
width: VIDEO_SIZE_DEFAULT.width,
|
|
64
|
-
height: VIDEO_SIZE_DEFAULT.height,
|
|
65
|
-
vAlign: 'bottom'
|
|
66
|
-
};
|
|
67
|
-
} else if (isAudio(fileMetaProps.contentType || fileMetaProps.type)) {
|
|
68
|
-
return {
|
|
69
|
-
type: 'block',
|
|
70
|
-
visibleLabel,
|
|
71
|
-
ariaLabel,
|
|
72
|
-
width: AUDIO_PLAYER_SIZE.width,
|
|
73
|
-
height: AUDIO_PLAYER_SIZE.height,
|
|
74
|
-
vAlign: 'bottom'
|
|
75
|
-
};
|
|
76
|
-
} else {
|
|
77
|
-
return {
|
|
78
|
-
type: 'inline',
|
|
79
|
-
visibleLabel,
|
|
80
|
-
ariaLabel
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
export function removePlaceholder(editor, unencodedName) {
|
|
85
|
-
const placeholderElem = editor.dom.doc.querySelector(`[data-placeholder-for="${encodeURIComponent(unencodedName)}"]`); // Fail gracefully
|
|
86
|
-
|
|
87
|
-
if (!placeholderElem) return;
|
|
88
|
-
editor.undoManager.ignore(() => {
|
|
89
|
-
editor.dom.remove(placeholderElem); // Cleanup data URIs
|
|
90
|
-
|
|
91
|
-
placeholderElem.querySelectorAll('img').forEach( // Revoking non-object URLs is safe
|
|
92
|
-
img => URL.revokeObjectURL(img.src));
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Inserts a placeholder into a TinyMCE editor. It should be removed by calling removePlaceholder, to ensure
|
|
97
|
-
* image resources are cleaned up.
|
|
98
|
-
*/
|
|
99
|
-
|
|
100
|
-
export async function insertPlaceholder(editor, unencodedName, placeholderInfoPromise) {
|
|
101
|
-
const placeholderId = `placeholder-${placeholderIdCounter++}`; // Insert a minimal placeholder element into the editor.
|
|
102
|
-
|
|
103
|
-
editor.undoManager.ignore(() => editor.execCommand('mceInsertContent', false, `<span
|
|
104
|
-
aria-label="${formatMessage('Loading')}"
|
|
105
|
-
data-placeholder-for="${encodeURIComponent(unencodedName)}"
|
|
106
|
-
id="${placeholderId}"
|
|
107
|
-
class="mceNonEditable"
|
|
108
|
-
style="user-select: none; pointer-events: none; user-focus: none; display: inline-flex;"
|
|
109
|
-
></span> ` // Without the trailing , tinymce will place the cursor inside the placeholder, which we don't want.
|
|
110
|
-
));
|
|
111
|
-
const placeholderElem = editor.dom.doc.querySelector(`#${placeholderId}`);
|
|
112
|
-
|
|
113
|
-
if (placeholderElem) {
|
|
114
|
-
editor.undoManager.ignore(() => {
|
|
115
|
-
var _nextNode$data;
|
|
116
|
-
|
|
117
|
-
// Remove the trailing space
|
|
118
|
-
const nextNode = placeholderElem.nextSibling;
|
|
119
|
-
placeholderElem.contentEditable = 'false';
|
|
120
|
-
|
|
121
|
-
if (isTextNode(nextNode) && nextNode !== null && nextNode !== void 0 && (_nextNode$data = nextNode.data) !== null && _nextNode$data !== void 0 && _nextNode$data.startsWith('\xA0'
|
|
122
|
-
/* nbsp */
|
|
123
|
-
)) {
|
|
124
|
-
// Split out the non-breaking-space which only counts as length 1 for splitText
|
|
125
|
-
nextNode.splitText(1); // Remove the now split text node
|
|
126
|
-
|
|
127
|
-
if (placeholderElem.nextSibling) {
|
|
128
|
-
editor.dom.remove(placeholderElem.nextSibling);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
});
|
|
132
|
-
} else {
|
|
133
|
-
throw new Error('Failed to find placeholder element after inserting it into the editor.');
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
const placeholderInfo = await placeholderInfoPromise; // Fully initialize the placeholder. Done separately from inserting to avoid TinyMCE mangling the HTML
|
|
137
|
-
|
|
138
|
-
editor.undoManager.ignore(() => {
|
|
139
|
-
// Set up the overall placeholder container
|
|
140
|
-
placeholderElem.setAttribute('aria-label', placeholderInfo.ariaLabel);
|
|
141
|
-
Object.assign(placeholderElem.style, {
|
|
142
|
-
// Placeholder has absolute children
|
|
143
|
-
position: 'relative',
|
|
144
|
-
// Layout
|
|
145
|
-
display: 'inline-flex',
|
|
146
|
-
alignItems: 'center',
|
|
147
|
-
borderRadius: '10px',
|
|
148
|
-
overflow: 'hidden'
|
|
149
|
-
}); // Create the spinner
|
|
150
|
-
|
|
151
|
-
placeholderElem.innerHTML = spinnerSvg(placeholderInfo.type === 'inline' ? 'x-small' : 'medium', placeholderId + '-label');
|
|
152
|
-
const spinnerElem = placeholderElem.firstElementChild;
|
|
153
|
-
|
|
154
|
-
if (!spinnerElem) {
|
|
155
|
-
throw new Error("Couldn't find the Spinner element in the placeholder");
|
|
156
|
-
} // Create the label
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
const labelElem = editor.dom.doc.createElement('div');
|
|
160
|
-
placeholderElem.appendChild(labelElem);
|
|
161
|
-
Object.assign(labelElem.style, {
|
|
162
|
-
color: '#2D3B45',
|
|
163
|
-
zIndex: '1000',
|
|
164
|
-
|
|
165
|
-
/* Restrict text to one line */
|
|
166
|
-
display: 'inline-block',
|
|
167
|
-
maxWidth: 'calc(100% - 10px)',
|
|
168
|
-
overflow: 'hidden',
|
|
169
|
-
whiteSpace: 'nowrap',
|
|
170
|
-
textOverflow: 'ellipsis'
|
|
171
|
-
});
|
|
172
|
-
labelElem.appendChild(editor.dom.doc.createTextNode(placeholderInfo.visibleLabel)); // Handle type specific stying
|
|
173
|
-
|
|
174
|
-
switch (placeholderInfo.type) {
|
|
175
|
-
case 'inline':
|
|
176
|
-
Object.assign(placeholderElem.style, {
|
|
177
|
-
flexDirection: 'row',
|
|
178
|
-
justifyContent: 'start',
|
|
179
|
-
padding: '5px',
|
|
180
|
-
verticalAlign: 'baseline',
|
|
181
|
-
gap: '8px',
|
|
182
|
-
backgroundColor: '#F5F5F5'
|
|
183
|
-
});
|
|
184
|
-
break;
|
|
185
|
-
|
|
186
|
-
case 'block':
|
|
187
|
-
{
|
|
188
|
-
const {
|
|
189
|
-
width,
|
|
190
|
-
height,
|
|
191
|
-
vAlign,
|
|
192
|
-
backgroundImageUrl
|
|
193
|
-
} = placeholderInfo;
|
|
194
|
-
Object.assign(placeholderElem.style, {
|
|
195
|
-
flexDirection: 'column',
|
|
196
|
-
justifyContent: 'center',
|
|
197
|
-
minWidth: '128px',
|
|
198
|
-
width,
|
|
199
|
-
maxWidth: '100%',
|
|
200
|
-
minHeight: '128px',
|
|
201
|
-
height,
|
|
202
|
-
maxHeight: '90vh',
|
|
203
|
-
verticalAlign: vAlign,
|
|
204
|
-
backgroundColor: '#FFFFFF'
|
|
205
|
-
});
|
|
206
|
-
|
|
207
|
-
if (backgroundImageUrl != null) {
|
|
208
|
-
const imageElem = document.createElement('img');
|
|
209
|
-
imageElem.src = backgroundImageUrl;
|
|
210
|
-
placeholderElem.insertBefore(imageElem, placeholderElem.firstElementChild);
|
|
211
|
-
Object.assign(imageElem.style, {
|
|
212
|
-
// The image should fill the placeholder
|
|
213
|
-
position: 'absolute',
|
|
214
|
-
left: '0px',
|
|
215
|
-
top: '0px',
|
|
216
|
-
width: '100%',
|
|
217
|
-
height: '100%',
|
|
218
|
-
// Aspect ratio should be maintained, though
|
|
219
|
-
objectFit: 'cover',
|
|
220
|
-
objectPosition: 'center center',
|
|
221
|
-
// UI calls for a 80% white overlay, which is equivalent to a 20% opacity image on white
|
|
222
|
-
opacity: '.2'
|
|
223
|
-
});
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
break;
|
|
227
|
-
|
|
228
|
-
default:
|
|
229
|
-
// Ensure all valid placeholderInfo types are handled above.
|
|
230
|
-
assertNever(placeholderInfo);
|
|
231
|
-
}
|
|
232
|
-
}); // Prevent user interaction with the placeholder elements
|
|
233
|
-
|
|
234
|
-
placeholderElem.querySelectorAll('*').forEach(elem => {
|
|
235
|
-
if (elem instanceof HTMLElement) {
|
|
236
|
-
elem.style.pointerEvents = 'none';
|
|
237
|
-
elem.style.userSelect = 'none';
|
|
238
|
-
elem.setAttribute('aria-hidden', 'true');
|
|
239
|
-
}
|
|
240
|
-
});
|
|
241
|
-
return placeholderElem;
|
|
242
|
-
}
|
|
243
|
-
/**
|
|
244
|
-
* Something for which a placeholder can be added to the editor.
|
|
245
|
-
*/
|
|
246
|
-
|
|
247
|
-
let placeholderIdCounter = 0;
|
|
248
|
-
/**
|
|
249
|
-
* A fully standalone version of InstUI <Spinner> that can be used inside TinyMCE's iframe without access to
|
|
250
|
-
* Canvas's CSS or JS.
|
|
251
|
-
*/
|
|
252
|
-
// language=html
|
|
253
|
-
|
|
254
|
-
function spinnerSvg(size, labelId) {
|
|
255
|
-
const radius = (() => {
|
|
256
|
-
switch (size) {
|
|
257
|
-
case 'x-small':
|
|
258
|
-
return '0.5em';
|
|
259
|
-
|
|
260
|
-
case 'small':
|
|
261
|
-
return '1em';
|
|
262
|
-
|
|
263
|
-
case 'large':
|
|
264
|
-
return '2.25em';
|
|
265
|
-
|
|
266
|
-
default:
|
|
267
|
-
return '1.75em';
|
|
268
|
-
}
|
|
269
|
-
})();
|
|
270
|
-
|
|
271
|
-
return `
|
|
272
|
-
<span class="Spinner-root Spinner-default Spinner-${size}" role="presentation">
|
|
273
|
-
<svg class="Spinner-circle"
|
|
274
|
-
role="img"
|
|
275
|
-
focusable="false"
|
|
276
|
-
aria-labelledby="${labelId}"
|
|
277
|
-
>
|
|
278
|
-
<style>
|
|
279
|
-
@keyframes Spinner-rotate {
|
|
280
|
-
to {
|
|
281
|
-
transform: rotate(360deg);
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
@keyframes Spinner-morph {
|
|
285
|
-
0% {
|
|
286
|
-
stroke-dashoffset: 190%;
|
|
287
|
-
}
|
|
288
|
-
50% {
|
|
289
|
-
stroke-dashoffset: 50%;
|
|
290
|
-
transform: rotate(90deg);
|
|
291
|
-
}
|
|
292
|
-
100% {
|
|
293
|
-
stroke-dashoffset: 190%;
|
|
294
|
-
transform: rotate(360deg);
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
.Spinner-root {
|
|
298
|
-
display: inline-block;
|
|
299
|
-
vertical-align: middle;
|
|
300
|
-
position: relative;
|
|
301
|
-
box-sizing: border-box;
|
|
302
|
-
overflow: hidden;
|
|
303
|
-
--Spinner-trackColor: #F5F5F5;
|
|
304
|
-
--Spinner-color: #0374B5;
|
|
305
|
-
--Spinner-xSmallSize: 1.5em;
|
|
306
|
-
--Spinner-xSmallBorderWidth: 0.25em;
|
|
307
|
-
--Spinner-smallSize: 3em;
|
|
308
|
-
--Spinner-smallBorderWidth: 0.375em;
|
|
309
|
-
--Spinner-mediumSize: 5em;
|
|
310
|
-
--Spinner-mediumBorderWidth: 0.5em;
|
|
311
|
-
--Spinner-largeSize: 7em;
|
|
312
|
-
--Spinner-largeBorderWidth: 0.75em;
|
|
313
|
-
--Spinner-inverseColor: #0374B5;
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
.Spinner-circleTrack {
|
|
317
|
-
stroke: var(--Spinner-trackColor);
|
|
318
|
-
|
|
319
|
-
/* Give the track extra width per UI */
|
|
320
|
-
stroke-width: calc(var(--Spinner-trackWidth) + 4px);
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
.Spinner-circleSpin {
|
|
324
|
-
stroke-width: var(--Spinner-trackWidth);
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
.Spinner-x-small {
|
|
328
|
-
width: var(--Spinner-xSmallSize);
|
|
329
|
-
height: var(--Spinner-xSmallSize);
|
|
330
|
-
|
|
331
|
-
--Spinner-trackWidth: var(--Spinner-xSmallBorderWidth);
|
|
332
|
-
}
|
|
333
|
-
.Spinner-x-small .Spinner-circle {
|
|
334
|
-
width: var(--Spinner-xSmallSize);
|
|
335
|
-
height: var(--Spinner-xSmallSize);
|
|
336
|
-
}
|
|
337
|
-
.Spinner-x-small .Spinner-circleSpin {
|
|
338
|
-
stroke-dasharray: 3em;
|
|
339
|
-
transform-origin: 50% 50%;
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
.Spinner-small {
|
|
343
|
-
width: var(--Spinner-smallSize);
|
|
344
|
-
height: var(--Spinner-smallSize);
|
|
345
|
-
--Spinner-trackWidth: var(--Spinner-smallBorderWidth);
|
|
346
|
-
}
|
|
347
|
-
.Spinner-small .Spinner-circle {
|
|
348
|
-
width: var(--Spinner-smallSize);
|
|
349
|
-
height: var(--Spinner-smallSize);
|
|
350
|
-
}
|
|
351
|
-
.Spinner-small .Spinner-circleTrack,
|
|
352
|
-
.Spinner-small .Spinner-circleSpin {
|
|
353
|
-
stroke-dasharray: 6em;
|
|
354
|
-
transform-origin: 50% 50%;
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
.Spinner-medium {
|
|
358
|
-
width: var(--Spinner-mediumSize);
|
|
359
|
-
height: var(--Spinner-mediumSize);
|
|
360
|
-
|
|
361
|
-
--Spinner-trackWidth: var(--Spinner-mediumBorderWidth);
|
|
362
|
-
}
|
|
363
|
-
.Spinner-medium .Spinner-circle {
|
|
364
|
-
stroke-width: var(--Spinner-mediumBorderWidth);
|
|
365
|
-
width: var(--Spinner-mediumSize);
|
|
366
|
-
height: var(--Spinner-mediumSize);
|
|
367
|
-
}
|
|
368
|
-
.Spinner-medium .Spinner-circleSpin {
|
|
369
|
-
stroke-dasharray: 10.5em;
|
|
370
|
-
transform-origin: 50% 50%;
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
.Spinner-large {
|
|
374
|
-
width: var(--Spinner-largeSize);
|
|
375
|
-
height: var(--Spinner-largeSize);
|
|
376
|
-
|
|
377
|
-
--Spinner-trackWidth: var(--Spinner-largeBorderWidth);
|
|
378
|
-
}
|
|
379
|
-
.Spinner-large .Spinner-circle {
|
|
380
|
-
stroke-width: var(--Spinner-largeBorderWidth);
|
|
381
|
-
width: var(--Spinner-largeSize);
|
|
382
|
-
height: var(--Spinner-largeSize);
|
|
383
|
-
}
|
|
384
|
-
.Spinner-large .Spinner-circleSpin {
|
|
385
|
-
stroke-dasharray: 14em;
|
|
386
|
-
transform-origin: 50% 50%;
|
|
387
|
-
}
|
|
388
|
-
|
|
389
|
-
.Spinner-circle {
|
|
390
|
-
display: block;
|
|
391
|
-
position: absolute;
|
|
392
|
-
top: 0;
|
|
393
|
-
left: 0;
|
|
394
|
-
/* stylelint-disable-line property-blacklist */
|
|
395
|
-
animation-name: Spinner-rotate;
|
|
396
|
-
animation-duration: 2.25s;
|
|
397
|
-
animation-iteration-count: infinite;
|
|
398
|
-
animation-timing-function: linear;
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
.Spinner-circleTrack,
|
|
402
|
-
.Spinner-circleSpin {
|
|
403
|
-
fill: none;
|
|
404
|
-
}
|
|
405
|
-
|
|
406
|
-
.Spinner-circleSpin {
|
|
407
|
-
stroke-linecap: round;
|
|
408
|
-
}
|
|
409
|
-
|
|
410
|
-
.Spinner-root:not(.ie11) .Spinner-circleSpin {
|
|
411
|
-
animation-name: Spinner-morph;
|
|
412
|
-
animation-duration: 1.75s;
|
|
413
|
-
animation-iteration-count: infinite;
|
|
414
|
-
animation-timing-function: ease;
|
|
415
|
-
}
|
|
416
|
-
|
|
417
|
-
.Spinner-root.ie11 .Spinner-circleSpin {
|
|
418
|
-
stroke-dashoffset: 100%;
|
|
419
|
-
}
|
|
420
|
-
|
|
421
|
-
.Spinner-default .Spinner-circleSpin {
|
|
422
|
-
stroke: var(--Spinner-color);
|
|
423
|
-
}
|
|
424
|
-
|
|
425
|
-
.Spinner-inverse .Spinner-circleSpin {
|
|
426
|
-
stroke: var(--Spinner-inverseColor);
|
|
427
|
-
}
|
|
428
|
-
</style>
|
|
429
|
-
<g role="presentation">
|
|
430
|
-
<circle class="Spinner-circleTrack" cx="50%" cy="50%" r="${radius}"></circle>
|
|
431
|
-
<circle class="Spinner-circleSpin" cx="50%" cy="50%" r="${radius}"></circle>
|
|
432
|
-
</g>
|
|
433
|
-
</svg>
|
|
434
|
-
</span>
|
|
435
|
-
`;
|
|
436
|
-
}
|
package/lib/util/simpleCache.js
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2023 - present Instructure, Inc.
|
|
3
|
-
*
|
|
4
|
-
* This file is part of Canvas.
|
|
5
|
-
*
|
|
6
|
-
* Canvas is free software: you can redistribute it and/or modify it under
|
|
7
|
-
* the terms of the GNU Affero General Public License as published by the Free
|
|
8
|
-
* Software Foundation, version 3 of the License.
|
|
9
|
-
*
|
|
10
|
-
* Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
11
|
-
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
12
|
-
* A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
13
|
-
* details.
|
|
14
|
-
*
|
|
15
|
-
* You should have received a copy of the GNU Affero General Public License along
|
|
16
|
-
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Builds a simple cache using a map and a compute function.
|
|
21
|
-
*
|
|
22
|
-
* @param compute The function to compute values in the cache
|
|
23
|
-
* @param cache The map to use as a cache
|
|
24
|
-
*/
|
|
25
|
-
export function simpleCache(compute) {
|
|
26
|
-
let cache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Map();
|
|
27
|
-
return {
|
|
28
|
-
cache,
|
|
29
|
-
|
|
30
|
-
get(key) {
|
|
31
|
-
if (cache.has(key)) {
|
|
32
|
-
return cache.get(key);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const value = compute(key);
|
|
36
|
-
cache.set(key, value);
|
|
37
|
-
return value;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
};
|
|
41
|
-
}
|