@instructure/canvas-rce 5.11.1 → 5.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/babel-register.js +0 -7
- package/babel.config.cjs.js +0 -7
- package/babel.config.js +0 -9
- package/es/canvasFileBrowser/FileBrowser.js +6 -1
- package/es/common/fileUrl.js +3 -4
- package/es/defaultTinymceConfig.js +1 -1
- package/{lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/Lti13ContentItemJson.js → es/elementDenylist.js} +2 -6
- package/es/enhance-user-content/doc_previews.js +4 -0
- package/es/enhance-user-content/enhance_user_content.js +4 -59
- package/es/enhance-user-content/external_links.js +75 -0
- package/es/enhance-user-content/mathml.js +9 -7
- package/es/getThemeVars.js +4 -3
- package/es/getTranslations.js +77 -1
- package/es/index.js +1 -1
- package/es/rce/RCEWrapper.js +5 -2328
- package/es/rce/StatusBar.js +8 -2
- package/es/rce/contentInsertion.js +5 -2
- package/es/rce/plugins/instructure_documents/components/DocumentsPanel.js +3 -9
- package/es/rce/plugins/instructure_equation/EquationEditorModal/index.js +1 -1
- package/es/rce/plugins/instructure_equation/EquationEditorModal/styles.js +3 -11
- package/es/rce/plugins/instructure_equation/mathlive/index.js +5 -13
- package/es/rce/plugins/instructure_html_view/plugin.js +2 -2
- package/es/rce/plugins/instructure_icon_maker/components/SavedIconMakerList.js +3 -2
- package/es/rce/plugins/instructure_image/ImageList/Image.js +2 -2
- package/es/rce/plugins/instructure_image/Images/index.js +3 -10
- package/es/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialog.js +3 -0
- package/es/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/ResourceLinkContentItem.js +3 -1
- package/es/rce/plugins/instructure_record/AudioOptionsTray/TrayController.js +26 -1
- package/es/rce/plugins/instructure_record/AudioOptionsTray/index.js +9 -3
- package/es/rce/plugins/instructure_record/MediaPanel/index.js +3 -9
- package/es/rce/plugins/instructure_record/VideoOptionsTray/TrayController.js +27 -2
- package/es/rce/plugins/instructure_record/VideoOptionsTray/index.js +35 -6
- package/es/rce/plugins/shared/fileShape.js +81 -9
- package/es/rce/plugins/shared/fileTypeUtils.js +6 -0
- package/es/rce/tinymce.oxide.content.min.css.js +732 -0
- package/es/rce/tinymce.oxide.skin.min.css.js +7 -0
- package/es/rcs/api.js +6 -4
- package/es/sidebar/store/configureStore.js +2 -2
- package/{lib/translations/locales/tg.js → es/translations/locales/ab.js} +1 -1
- package/es/translations/locales/cs.js +27 -0
- package/es/translations/locales/cs_CZ.js +27 -0
- package/{lib/translations/locales/sv_SE.js → es/translations/locales/da_DK.js} +2 -2
- package/{lib/translations/locales/se.js → es/translations/locales/en_NZ.js} +2 -2
- package/es/translations/locales/en_SE.js +26 -0
- package/es/translations/locales/en_US.js +26 -0
- package/es/translations/locales/hu_HU.js +27 -0
- package/{lib/translations/locales/ms.js → es/translations/locales/id.js} +632 -632
- package/{lib/translations/locales/th.js → es/translations/locales/id_ID.js} +1 -2
- package/{lib/translations/locales/vi_VN.js → es/translations/locales/ko_KR.js} +2 -2
- package/es/translations/locales/lt.js +26 -0
- package/es/translations/locales/lt_LT.js +26 -0
- package/es/translations/locales/mn_MN.js +26 -0
- package/es/translations/locales/nl_NL.js +27 -0
- package/{lib/translations/locales/es_GT.js → es/translations/locales/ro.js} +3 -3
- package/es/translations/locales/ru.js +2375 -32
- package/es/translations/locales/sv.js +2379 -30
- package/es/translations/locales/th.js +2401 -1
- package/es/translations/locales/tl_PH.js +26 -0
- package/es/translations/locales/tr.js +3 -0
- package/es/translations/locales/vi.js +2396 -8
- package/es/translations/locales/zh_TW.Big5.js +27 -0
- package/{lib/translations/locales/th_TH.js → es/translations/locales/zh_TW.js} +2 -2
- package/jest.config.js +0 -7
- package/package.json +9 -11
- package/scripts/build.js +1 -7
- package/scripts/publish_to_npm.sh +26 -0
- package/canvas/README.md +0 -84
- package/canvas/locales/en.json +0 -934
- package/canvas/package.json +0 -189
- package/es/common/scroll.js +0 -45
- package/es/types/inst-ui.d.js +0 -18
- package/es/types/ts-migration.js +0 -1
- package/lib/bridge/Bridge.js +0 -287
- package/lib/bridge/index.js +0 -21
- package/lib/canvasFileBrowser/FileBrowser.js +0 -452
- package/lib/canvasFileBrowser/en-US.js +0 -234
- package/lib/common/FlashAlert.js +0 -263
- package/lib/common/browser.js +0 -40
- package/lib/common/components/FileTree/File.js +0 -64
- package/lib/common/components/FileTree/Folder.js +0 -110
- package/lib/common/components/FileTree/index.js +0 -84
- package/lib/common/components/FileTree/styles.js +0 -72
- package/lib/common/components/Loading.js +0 -83
- package/lib/common/fileUrl.js +0 -153
- package/lib/common/getCookie.js +0 -32
- package/lib/common/incremental-loading/LoadMoreButton.js +0 -40
- package/lib/common/incremental-loading/LoadingIndicator.js +0 -36
- package/lib/common/incremental-loading/LoadingStatus.js +0 -47
- package/lib/common/incremental-loading/index.js +0 -21
- package/lib/common/incremental-loading/useIncrementalLoading.js +0 -58
- package/lib/common/indicate.js +0 -75
- package/lib/common/mimeClass.js +0 -120
- package/lib/common/natcompare.js +0 -47
- package/lib/common/scroll.js +0 -45
- package/lib/defaultTinymceConfig.js +0 -160
- package/lib/enhance-user-content/doc_previews.js +0 -233
- package/lib/enhance-user-content/enhance_user_content.js +0 -396
- package/lib/enhance-user-content/index.js +0 -21
- package/lib/enhance-user-content/instructure_helper.js +0 -207
- package/lib/enhance-user-content/jqueryish_funcs.js +0 -88
- package/lib/enhance-user-content/mathml.js +0 -397
- package/lib/enhance-user-content/media_comment_thumbnail.js +0 -130
- package/lib/format-message.js +0 -30
- package/lib/getThemeVars.js +0 -45
- package/lib/getTranslations.js +0 -264
- package/lib/index.js +0 -51
- package/lib/rce/AlertMessageArea.js +0 -47
- package/lib/rce/DraggingBlocker.js +0 -43
- package/lib/rce/KeyboardShortcutModal.js +0 -88
- package/lib/rce/RCE.js +0 -150
- package/lib/rce/RCEGlobals.js +0 -62
- package/lib/rce/RCEWrapper.js +0 -4278
- package/lib/rce/RCEWrapperProps.js +0 -130
- package/lib/rce/RceHtmlEditor.js +0 -142
- package/lib/rce/ResizeHandle.js +0 -102
- package/lib/rce/RestoreAutoSaveModal.js +0 -82
- package/lib/rce/ShowOnFocusButton/index.js +0 -93
- package/lib/rce/StatusBar.js +0 -380
- package/lib/rce/__mocks__/_mockCryptoEs.js +0 -124
- package/lib/rce/__mocks__/styleMock.js +0 -18
- package/lib/rce/__mocks__/tinymceReact.js +0 -55
- package/lib/rce/alertHandler.js +0 -46
- package/lib/rce/contentInsertion.js +0 -322
- package/lib/rce/contentInsertionUtils.js +0 -85
- package/lib/rce/contentRendering.js +0 -145
- package/lib/rce/customEvents.js +0 -18
- package/lib/rce/editorLanguage.js +0 -101
- package/lib/rce/indicatorRegion.js +0 -49
- package/lib/rce/normalizeLocale.js +0 -50
- package/lib/rce/normalizeProps.js +0 -29
- package/lib/rce/plugins/instructure-ui-icons/plugin.js +0 -122
- package/lib/rce/plugins/instructure_condensed_buttons/core/ListUtils.js +0 -24
- package/lib/rce/plugins/instructure_condensed_buttons/plugin.js +0 -27
- package/lib/rce/plugins/instructure_condensed_buttons/ui/alignment-button.js +0 -63
- package/lib/rce/plugins/instructure_condensed_buttons/ui/directionality-button.js +0 -48
- package/lib/rce/plugins/instructure_condensed_buttons/ui/indent-outdent-button.js +0 -41
- package/lib/rce/plugins/instructure_condensed_buttons/ui/list-button.js +0 -145
- package/lib/rce/plugins/instructure_condensed_buttons/ui/subscript-superscript-button.js +0 -56
- package/lib/rce/plugins/instructure_documents/clickCallback.js +0 -23
- package/lib/rce/plugins/instructure_documents/components/DocumentsPanel.js +0 -126
- package/lib/rce/plugins/instructure_documents/components/Link.js +0 -219
- package/lib/rce/plugins/instructure_documents/plugin.js +0 -123
- package/lib/rce/plugins/instructure_equation/EquationEditorModal/advancedOnlySyntax.js +0 -25
- package/lib/rce/plugins/instructure_equation/EquationEditorModal/advancedPreference.js +0 -51
- package/lib/rce/plugins/instructure_equation/EquationEditorModal/index.js +0 -321
- package/lib/rce/plugins/instructure_equation/EquationEditorModal/latexTextareaUtil.js +0 -116
- package/lib/rce/plugins/instructure_equation/EquationEditorModal/parseLatex.js +0 -91
- package/lib/rce/plugins/instructure_equation/EquationEditorModal/styles.js +0 -46
- package/lib/rce/plugins/instructure_equation/EquationEditorToolbar/buttons.js +0 -728
- package/lib/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +0 -84
- package/lib/rce/plugins/instructure_equation/MathIcon/index.js +0 -41
- package/lib/rce/plugins/instructure_equation/MathIcon/svgs.js +0 -236
- package/lib/rce/plugins/instructure_equation/clickCallback.js +0 -53
- package/lib/rce/plugins/instructure_equation/mathlive/index.js +0 -36
- package/lib/rce/plugins/instructure_equation/plugin.js +0 -69
- package/lib/rce/plugins/instructure_fullscreen/plugin.js +0 -50
- package/lib/rce/plugins/instructure_html_view/clickCallback.js +0 -21
- package/lib/rce/plugins/instructure_html_view/plugin.js +0 -37
- package/lib/rce/plugins/instructure_icon_maker/clickCallback.js +0 -57
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ColorSection.js +0 -82
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/CreateIconMakerForm.js +0 -56
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Footer.js +0 -78
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Group.js +0 -36
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +0 -110
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +0 -169
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +0 -186
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +0 -243
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ModeSelect.js +0 -64
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/MultiColor/index.js +0 -73
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/MultiColor/svg.js +0 -298
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +0 -86
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGThumbnail.js +0 -55
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SingleColor/index.js +0 -70
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SingleColor/svg.js +0 -317
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +0 -149
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/index.js +0 -18
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/propTypes.js +0 -32
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +0 -25
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Preview.js +0 -60
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ShapeSection.js +0 -87
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +0 -139
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/index.js +0 -18
- package/lib/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +0 -323
- package/lib/rce/plugins/instructure_icon_maker/components/SavedIconMakerList.js +0 -90
- package/lib/rce/plugins/instructure_icon_maker/plugin.js +0 -110
- package/lib/rce/plugins/instructure_icon_maker/reducers/imageSection.js +0 -194
- package/lib/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +0 -98
- package/lib/rce/plugins/instructure_icon_maker/registerEditToolbar.js +0 -56
- package/lib/rce/plugins/instructure_icon_maker/svg/clipPath.js +0 -25
- package/lib/rce/plugins/instructure_icon_maker/svg/constants.js +0 -100
- package/lib/rce/plugins/instructure_icon_maker/svg/font.js +0 -25
- package/lib/rce/plugins/instructure_icon_maker/svg/image.js +0 -354
- package/lib/rce/plugins/instructure_icon_maker/svg/index.js +0 -122
- package/lib/rce/plugins/instructure_icon_maker/svg/metadata.js +0 -48
- package/lib/rce/plugins/instructure_icon_maker/svg/settings.js +0 -179
- package/lib/rce/plugins/instructure_icon_maker/svg/shape.js +0 -316
- package/lib/rce/plugins/instructure_icon_maker/svg/text.js +0 -468
- package/lib/rce/plugins/instructure_icon_maker/svg/utils.js +0 -70
- package/lib/rce/plugins/instructure_icon_maker/utils/IconMakerClose.js +0 -45
- package/lib/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +0 -83
- package/lib/rce/plugins/instructure_icon_maker/utils/addIconMakerAttributes.js +0 -28
- package/lib/rce/plugins/instructure_icon_maker/utils/iconValidation.js +0 -35
- package/lib/rce/plugins/instructure_icon_maker/utils/iconsLabels.js +0 -375
- package/lib/rce/plugins/instructure_icon_maker/utils/useDebouncedValue.js +0 -59
- package/lib/rce/plugins/instructure_image/ImageEmbedOptions.js +0 -202
- package/lib/rce/plugins/instructure_image/ImageList/Image.js +0 -106
- package/lib/rce/plugins/instructure_image/ImageList/index.js +0 -69
- package/lib/rce/plugins/instructure_image/ImageOptionsTray/TrayController.js +0 -166
- package/lib/rce/plugins/instructure_image/ImageOptionsTray/index.js +0 -246
- package/lib/rce/plugins/instructure_image/Images/index.js +0 -129
- package/lib/rce/plugins/instructure_image/clickCallback.js +0 -24
- package/lib/rce/plugins/instructure_image/plugin.js +0 -157
- package/lib/rce/plugins/instructure_links/clickCallback.js +0 -22
- package/lib/rce/plugins/instructure_links/components/AccordionSection.js +0 -60
- package/lib/rce/plugins/instructure_links/components/CollectionPanel.js +0 -84
- package/lib/rce/plugins/instructure_links/components/Link.js +0 -213
- package/lib/rce/plugins/instructure_links/components/LinkOptionsDialog/LinkOptionsDialogController.js +0 -127
- package/lib/rce/plugins/instructure_links/components/LinkOptionsDialog/index.js +0 -141
- package/lib/rce/plugins/instructure_links/components/LinkOptionsTray/LinkOptionsTrayController.js +0 -125
- package/lib/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +0 -245
- package/lib/rce/plugins/instructure_links/components/LinkSet.js +0 -195
- package/lib/rce/plugins/instructure_links/components/LinksPanel.js +0 -100
- package/lib/rce/plugins/instructure_links/components/NavigationPanel.js +0 -141
- package/lib/rce/plugins/instructure_links/components/NoResults.js +0 -87
- package/lib/rce/plugins/instructure_links/components/propTypes.js +0 -41
- package/lib/rce/plugins/instructure_links/plugin.js +0 -294
- package/lib/rce/plugins/instructure_links/validateURL.js +0 -70
- package/lib/rce/plugins/instructure_media_embed/clickCallback.js +0 -48
- package/lib/rce/plugins/instructure_media_embed/components/Embed.js +0 -68
- package/lib/rce/plugins/instructure_media_embed/plugin.js +0 -36
- package/lib/rce/plugins/instructure_paste/pasteMenuCommand.js +0 -117
- package/lib/rce/plugins/instructure_paste/plugin.js +0 -174
- package/lib/rce/plugins/instructure_rce_external_tools/ExternalToolsEnv.js +0 -169
- package/lib/rce/plugins/instructure_rce_external_tools/RceToolWrapper.js +0 -225
- package/lib/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialog.js +0 -294
- package/lib/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialogModal.js +0 -46
- package/lib/rce/plugins/instructure_rce_external_tools/components/ExternalToolDialog/ExternalToolDialogTray.js +0 -79
- package/lib/rce/plugins/instructure_rce_external_tools/components/ExternalToolSelectionDialog/ExternalToolSelectionDialog.js +0 -153
- package/lib/rce/plugins/instructure_rce_external_tools/components/ExternalToolSelectionDialog/ExternalToolSelectionItem.js +0 -94
- package/lib/rce/plugins/instructure_rce_external_tools/components/util/ExpandoText.js +0 -90
- package/lib/rce/plugins/instructure_rce_external_tools/components/util/ToolLaunchIframe.js +0 -35
- package/lib/rce/plugins/instructure_rce_external_tools/dialog-helper.js +0 -29
- package/lib/rce/plugins/instructure_rce_external_tools/helpers/tags.js +0 -55
- package/lib/rce/plugins/instructure_rce_external_tools/jquery/jquery.dropdownList.js +0 -172
- package/lib/rce/plugins/instructure_rce_external_tools/lti11-content-items/RceLti11ContentItem.js +0 -203
- package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/RceLti13ContentItem.js +0 -111
- package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/BaseLinkContentItem.js +0 -79
- package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/HtmlFragmentContentItem.js +0 -47
- package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/ImageContentItem.js +0 -57
- package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/LinkContentItem.js +0 -26
- package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/models/ResourceLinkContentItem.js +0 -45
- package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/processEditorContentItems.js +0 -67
- package/lib/rce/plugins/instructure_rce_external_tools/lti13-content-items/rceLti13ContentItemFromJson.js +0 -48
- package/lib/rce/plugins/instructure_rce_external_tools/plugin.js +0 -112
- package/lib/rce/plugins/instructure_rce_external_tools/util/addParentFrameContextToUrl.js +0 -27
- package/lib/rce/plugins/instructure_record/AudioOptionsTray/TrayController.js +0 -127
- package/lib/rce/plugins/instructure_record/AudioOptionsTray/index.js +0 -148
- package/lib/rce/plugins/instructure_record/MediaPanel/index.js +0 -129
- package/lib/rce/plugins/instructure_record/VideoOptionsTray/TrayController.js +0 -215
- package/lib/rce/plugins/instructure_record/VideoOptionsTray/index.js +0 -321
- package/lib/rce/plugins/instructure_record/clickCallback.js +0 -105
- package/lib/rce/plugins/instructure_record/mediaTranslations.js +0 -94
- package/lib/rce/plugins/instructure_record/plugin.js +0 -173
- package/lib/rce/plugins/instructure_studio_media_options/plugin.js +0 -42
- package/lib/rce/plugins/instructure_wordcount/clickCallback.js +0 -49
- package/lib/rce/plugins/instructure_wordcount/components/WordCountModal.js +0 -88
- package/lib/rce/plugins/instructure_wordcount/plugin.js +0 -30
- package/lib/rce/plugins/instructure_wordcount/utils/countContent.js +0 -78
- package/lib/rce/plugins/instructure_wordcount/utils/tableContent.js +0 -40
- package/lib/rce/plugins/shared/CanvasContentTray.js +0 -580
- package/lib/rce/plugins/shared/CheckerboardStyling.js +0 -25
- package/lib/rce/plugins/shared/ColorInput.js +0 -233
- package/lib/rce/plugins/shared/ConditionalTooltip.js +0 -32
- package/lib/rce/plugins/shared/ContentSelection.js +0 -269
- package/lib/rce/plugins/shared/DimensionUtils.js +0 -66
- package/lib/rce/plugins/shared/DimensionsInput/DimensionInput.js +0 -62
- package/lib/rce/plugins/shared/DimensionsInput/index.js +0 -161
- package/lib/rce/plugins/shared/DimensionsInput/useDimensionsState.js +0 -220
- package/lib/rce/plugins/shared/ErrorBoundary.js +0 -54
- package/lib/rce/plugins/shared/EventUtils.js +0 -39
- package/lib/rce/plugins/shared/Filter.js +0 -353
- package/lib/rce/plugins/shared/FixedContentTray.js +0 -115
- package/lib/rce/plugins/shared/ImageCropper/DirectionRegion.js +0 -67
- package/lib/rce/plugins/shared/ImageCropper/Modal.js +0 -153
- package/lib/rce/plugins/shared/ImageCropper/Preview.js +0 -148
- package/lib/rce/plugins/shared/ImageCropper/constants.js +0 -39
- package/lib/rce/plugins/shared/ImageCropper/controls/CustomNumberInput.js +0 -83
- package/lib/rce/plugins/shared/ImageCropper/controls/ResetControls.js +0 -38
- package/lib/rce/plugins/shared/ImageCropper/controls/RotationControls.js +0 -89
- package/lib/rce/plugins/shared/ImageCropper/controls/ShapeControls.js +0 -82
- package/lib/rce/plugins/shared/ImageCropper/controls/ZoomControls.js +0 -111
- package/lib/rce/plugins/shared/ImageCropper/controls/index.js +0 -61
- package/lib/rce/plugins/shared/ImageCropper/controls/useDebouncedNumericValue.js +0 -94
- package/lib/rce/plugins/shared/ImageCropper/controls/utils.js +0 -41
- package/lib/rce/plugins/shared/ImageCropper/imageCropUtils.js +0 -149
- package/lib/rce/plugins/shared/ImageCropper/index.js +0 -18
- package/lib/rce/plugins/shared/ImageCropper/propTypes.js +0 -26
- package/lib/rce/plugins/shared/ImageCropper/reducers/imageCropper.js +0 -72
- package/lib/rce/plugins/shared/ImageCropper/shape.js +0 -27
- package/lib/rce/plugins/shared/ImageCropper/svg/index.js +0 -89
- package/lib/rce/plugins/shared/ImageCropper/svg/shape.js +0 -125
- package/lib/rce/plugins/shared/ImageCropper/svg/utils.js +0 -26
- package/lib/rce/plugins/shared/ImageCropper/useKeyMouseEvents.js +0 -233
- package/lib/rce/plugins/shared/ImageCropper/useMouseWheel.js +0 -66
- package/lib/rce/plugins/shared/ImageOptionsForm.js +0 -140
- package/lib/rce/plugins/shared/LinkDisplay.js +0 -96
- package/lib/rce/plugins/shared/PreviewIcon.js +0 -112
- package/lib/rce/plugins/shared/Previewable.js +0 -22
- package/lib/rce/plugins/shared/RceFileBrowser.js +0 -106
- package/lib/rce/plugins/shared/StoreContext.js +0 -57
- package/lib/rce/plugins/shared/StudioLtiSupportUtils.js +0 -71
- package/lib/rce/plugins/shared/UnknownFileTypePanel.js +0 -29
- package/lib/rce/plugins/shared/Upload/CategoryProcessor.js +0 -27
- package/lib/rce/plugins/shared/Upload/ComputerPanel.js +0 -334
- package/lib/rce/plugins/shared/Upload/SvgCategoryProcessor.js +0 -35
- package/lib/rce/plugins/shared/Upload/UploadFile.js +0 -171
- package/lib/rce/plugins/shared/Upload/UploadFileModal.js +0 -273
- package/lib/rce/plugins/shared/Upload/UrlPanel.js +0 -38
- package/lib/rce/plugins/shared/Upload/UsageRightsSelectBox.js +0 -172
- package/lib/rce/plugins/shared/Upload/doFileUpload.js +0 -77
- package/lib/rce/plugins/shared/__mocks__/screenfull.js +0 -24
- package/lib/rce/plugins/shared/buildDownloadUrl.js +0 -31
- package/lib/rce/plugins/shared/compressionUtils.js +0 -98
- package/lib/rce/plugins/shared/dateUtils.js +0 -28
- package/lib/rce/plugins/shared/fileShape.js +0 -57
- package/lib/rce/plugins/shared/fileTypeUtils.js +0 -133
- package/lib/rce/plugins/shared/fileUtils.js +0 -25
- package/lib/rce/plugins/shared/linkUtils.js +0 -89
- package/lib/rce/plugins/shared/round.js +0 -25
- package/lib/rce/plugins/shared/trayUtils.js +0 -34
- package/lib/rce/plugins/shared/useDataUrl.js +0 -76
- package/lib/rce/plugins/tinymce-a11y-checker/components/ColorField.js +0 -86
- package/lib/rce/plugins/tinymce-a11y-checker/components/checker.js +0 -558
- package/lib/rce/plugins/tinymce-a11y-checker/components/color-picker.js +0 -59
- package/lib/rce/plugins/tinymce-a11y-checker/components/placeholder-svg.js +0 -90
- package/lib/rce/plugins/tinymce-a11y-checker/components/pointer.js +0 -32
- package/lib/rce/plugins/tinymce-a11y-checker/node-checker.js +0 -54
- package/lib/rce/plugins/tinymce-a11y-checker/plugin.js +0 -90
- package/lib/rce/plugins/tinymce-a11y-checker/rules/__mocks__/index.js +0 -53
- package/lib/rce/plugins/tinymce-a11y-checker/rules/adjacent-links.js +0 -129
- package/lib/rce/plugins/tinymce-a11y-checker/rules/headings-sequence.js +0 -200
- package/lib/rce/plugins/tinymce-a11y-checker/rules/headings-start-at-h2.js +0 -67
- package/lib/rce/plugins/tinymce-a11y-checker/rules/img-alt-filename.js +0 -63
- package/lib/rce/plugins/tinymce-a11y-checker/rules/img-alt-length.js +0 -49
- package/lib/rce/plugins/tinymce-a11y-checker/rules/img-alt.js +0 -61
- package/lib/rce/plugins/tinymce-a11y-checker/rules/index.js +0 -31
- package/lib/rce/plugins/tinymce-a11y-checker/rules/large-text-contrast.js +0 -51
- package/lib/rce/plugins/tinymce-a11y-checker/rules/list-structure.js +0 -144
- package/lib/rce/plugins/tinymce-a11y-checker/rules/paragraphs-for-headings.js +0 -61
- package/lib/rce/plugins/tinymce-a11y-checker/rules/small-text-contrast.js +0 -75
- package/lib/rce/plugins/tinymce-a11y-checker/rules/table-caption.js +0 -54
- package/lib/rce/plugins/tinymce-a11y-checker/rules/table-header-scope.js +0 -52
- package/lib/rce/plugins/tinymce-a11y-checker/rules/table-header.js +0 -81
- package/lib/rce/plugins/tinymce-a11y-checker/utils/colors.js +0 -43
- package/lib/rce/plugins/tinymce-a11y-checker/utils/describe.js +0 -66
- package/lib/rce/plugins/tinymce-a11y-checker/utils/dom.js +0 -160
- package/lib/rce/plugins/tinymce-a11y-checker/utils/indicate.js +0 -83
- package/lib/rce/plugins/tinymce-a11y-checker/utils/rgb-hex.js +0 -57
- package/lib/rce/plugins/tinymce-a11y-checker/utils/strings.js +0 -40
- package/lib/rce/root.js +0 -58
- package/lib/rce/sanitizePlugins.js +0 -32
- package/lib/rce/style.js +0 -843
- package/lib/rce/tinyRCE.js +0 -66
- package/lib/rce/transformContent.js +0 -73
- package/lib/rce/userOS.js +0 -31
- package/lib/rce/wrapInitCb.js +0 -78
- package/lib/rcs/api.js +0 -670
- package/lib/rcs/buildError.js +0 -98
- package/lib/rcs/fake.js +0 -621
- package/lib/sidebar/actions/all_files.js +0 -29
- package/lib/sidebar/actions/data.js +0 -105
- package/lib/sidebar/actions/documents.js +0 -107
- package/lib/sidebar/actions/files.js +0 -167
- package/lib/sidebar/actions/filter.js +0 -63
- package/lib/sidebar/actions/flickr.js +0 -60
- package/lib/sidebar/actions/images.js +0 -153
- package/lib/sidebar/actions/links.js +0 -23
- package/lib/sidebar/actions/media.js +0 -142
- package/lib/sidebar/actions/session.js +0 -34
- package/lib/sidebar/actions/ui.js +0 -49
- package/lib/sidebar/actions/upload.js +0 -550
- package/lib/sidebar/containers/Sidebar.js +0 -67
- package/lib/sidebar/containers/sidebarHandlers.js +0 -73
- package/lib/sidebar/dragHtml.js +0 -49
- package/lib/sidebar/reducers/all_files.js +0 -35
- package/lib/sidebar/reducers/collection.js +0 -72
- package/lib/sidebar/reducers/collections.js +0 -52
- package/lib/sidebar/reducers/documents.js +0 -89
- package/lib/sidebar/reducers/files.js +0 -38
- package/lib/sidebar/reducers/filter.js +0 -61
- package/lib/sidebar/reducers/flickr.js +0 -51
- package/lib/sidebar/reducers/folder.js +0 -92
- package/lib/sidebar/reducers/folders.js +0 -39
- package/lib/sidebar/reducers/images.js +0 -115
- package/lib/sidebar/reducers/index.js +0 -57
- package/lib/sidebar/reducers/media.js +0 -84
- package/lib/sidebar/reducers/newPageLinkExpanded.js +0 -30
- package/lib/sidebar/reducers/noop.js +0 -21
- package/lib/sidebar/reducers/rootFolderId.js +0 -30
- package/lib/sidebar/reducers/session.js +0 -33
- package/lib/sidebar/reducers/ui.js +0 -87
- package/lib/sidebar/reducers/upload.js +0 -206
- package/lib/sidebar/store/configureStore.js +0 -26
- package/lib/sidebar/store/initialState.js +0 -173
- package/lib/translations/locales/ar.js +0 -2427
- package/lib/translations/locales/ca.js +0 -2427
- package/lib/translations/locales/cy.js +0 -2427
- package/lib/translations/locales/da-x-k12.js +0 -2427
- package/lib/translations/locales/da.js +0 -2427
- package/lib/translations/locales/de.js +0 -2427
- package/lib/translations/locales/el.js +0 -459
- package/lib/translations/locales/en-AU-x-unimelb.js +0 -2427
- package/lib/translations/locales/en-GB-x-ukhe.js +0 -2427
- package/lib/translations/locales/en.js +0 -2427
- package/lib/translations/locales/en_AU.js +0 -2427
- package/lib/translations/locales/en_CA.js +0 -2426
- package/lib/translations/locales/en_CY.js +0 -2426
- package/lib/translations/locales/en_GB.js +0 -2427
- package/lib/translations/locales/es.js +0 -2427
- package/lib/translations/locales/es_ES.js +0 -2427
- package/lib/translations/locales/fa_IR.js +0 -615
- package/lib/translations/locales/fi.js +0 -2427
- package/lib/translations/locales/fr.js +0 -2427
- package/lib/translations/locales/fr_CA.js +0 -2427
- package/lib/translations/locales/he.js +0 -486
- package/lib/translations/locales/ht.js +0 -2426
- package/lib/translations/locales/hu.js +0 -2007
- package/lib/translations/locales/hy.js +0 -444
- package/lib/translations/locales/is.js +0 -2426
- package/lib/translations/locales/it.js +0 -2427
- package/lib/translations/locales/ja.js +0 -2427
- package/lib/translations/locales/ko.js +0 -342
- package/lib/translations/locales/mi.js +0 -2426
- package/lib/translations/locales/nb-x-k12.js +0 -2427
- package/lib/translations/locales/nb.js +0 -2427
- package/lib/translations/locales/nl.js +0 -2427
- package/lib/translations/locales/nn.js +0 -2247
- package/lib/translations/locales/pl.js +0 -2427
- package/lib/translations/locales/pt.js +0 -2427
- package/lib/translations/locales/pt_BR.js +0 -2427
- package/lib/translations/locales/ru.js +0 -84
- package/lib/translations/locales/sl.js +0 -2427
- package/lib/translations/locales/sv-x-k12.js +0 -2427
- package/lib/translations/locales/sv.js +0 -78
- package/lib/translations/locales/tr.js +0 -684
- package/lib/translations/locales/uk_UA.js +0 -519
- package/lib/translations/locales/vi.js +0 -39
- package/lib/translations/locales/zh-Hans.js +0 -2427
- package/lib/translations/locales/zh-Hant.js +0 -2427
- package/lib/translations/locales/zh.js +0 -2427
- package/lib/translations/locales/zh_HK.js +0 -2427
- package/lib/translations/tinymce/ar_SA.js +0 -211
- package/lib/translations/tinymce/bg_BG.js +0 -419
- package/lib/translations/tinymce/ca.js +0 -419
- package/lib/translations/tinymce/cs.js +0 -419
- package/lib/translations/tinymce/cy.js +0 -418
- package/lib/translations/tinymce/da.js +0 -419
- package/lib/translations/tinymce/de.js +0 -419
- package/lib/translations/tinymce/el.js +0 -261
- package/lib/translations/tinymce/en_GB.js +0 -230
- package/lib/translations/tinymce/es.js +0 -419
- package/lib/translations/tinymce/fa_IR.js +0 -390
- package/lib/translations/tinymce/fi.js +0 -19
- package/lib/translations/tinymce/fr_FR.js +0 -419
- package/lib/translations/tinymce/he_IL.js +0 -420
- package/lib/translations/tinymce/hu_HU.js +0 -419
- package/lib/translations/tinymce/hy.js +0 -419
- package/lib/translations/tinymce/it.js +0 -419
- package/lib/translations/tinymce/ja.js +0 -419
- package/lib/translations/tinymce/ko_KR.js +0 -419
- package/lib/translations/tinymce/nb_NO.js +0 -419
- package/lib/translations/tinymce/nl.js +0 -419
- package/lib/translations/tinymce/pl.js +0 -419
- package/lib/translations/tinymce/pt_BR.js +0 -419
- package/lib/translations/tinymce/pt_PT.js +0 -419
- package/lib/translations/tinymce/ro.js +0 -418
- package/lib/translations/tinymce/ru.js +0 -436
- package/lib/translations/tinymce/ru_RU.js +0 -71
- package/lib/translations/tinymce/sl.js +0 -462
- package/lib/translations/tinymce/sr.js +0 -278
- package/lib/translations/tinymce/sv_SE.js +0 -419
- package/lib/translations/tinymce/th.js +0 -479
- package/lib/translations/tinymce/tr_TR.js +0 -389
- package/lib/translations/tinymce/uk_UA.js +0 -278
- package/lib/translations/tinymce/vi_VN.js +0 -277
- package/lib/translations/tinymce/zh_CN.js +0 -419
- package/lib/translations/tinymce/zh_TW.js +0 -419
- package/lib/types/inst-ui.d.js +0 -18
- package/lib/types/ts-migration.js +0 -1
- package/lib/util/DeepPartialNullable.js +0 -1
- package/lib/util/ExtractRequired.js +0 -1
- package/lib/util/TypedDict.js +0 -131
- package/lib/util/assertNever.js +0 -44
- package/lib/util/elem-util.js +0 -26
- package/lib/util/encrypted-storage.js +0 -84
- package/lib/util/file-url-util.js +0 -44
- package/lib/util/fullscreenHelpers.js +0 -27
- package/lib/util/instui-icon-helper.js +0 -31
- package/lib/util/loadingPlaceholder.js +0 -436
- package/lib/util/simpleCache.js +0 -41
- package/lib/util/string-util.js +0 -48
- package/lib/util/textarea-editing-util.js +0 -87
- package/lib/util/tinymce-plugin-util.js +0 -52
- package/lib/util/url-util.js +0 -138
package/lib/rce/StatusBar.js
DELETED
|
@@ -1,380 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2019 - present Instructure, Inc.
|
|
3
|
-
*
|
|
4
|
-
* This file is part of Canvas.
|
|
5
|
-
*
|
|
6
|
-
* Canvas is free software: you can redistribute it and/or modify it under
|
|
7
|
-
* the terms of the GNU Affero General Public License as published by the Free
|
|
8
|
-
* Software Foundation, version 3 of the License.
|
|
9
|
-
*
|
|
10
|
-
* Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
11
|
-
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
12
|
-
* A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
13
|
-
* details.
|
|
14
|
-
*
|
|
15
|
-
* You should have received a copy of the GNU Affero General Public License along
|
|
16
|
-
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
-
*/
|
|
18
|
-
import React, { useEffect, useRef, useState } from 'react';
|
|
19
|
-
import ReactDOM from 'react-dom';
|
|
20
|
-
import { arrayOf, bool, func, number, oneOf, string } from 'prop-types';
|
|
21
|
-
import { StyleSheet, css } from 'aphrodite';
|
|
22
|
-
import keycode from 'keycode';
|
|
23
|
-
import { Button, IconButton, CondensedButton } from '@instructure/ui-buttons';
|
|
24
|
-
import { Flex } from '@instructure/ui-flex';
|
|
25
|
-
import { View } from '@instructure/ui-view';
|
|
26
|
-
import { Badge } from '@instructure/ui-badge';
|
|
27
|
-
import { InstUISettingsProvider } from '@instructure/emotion';
|
|
28
|
-
import { Text } from '@instructure/ui-text';
|
|
29
|
-
import { SVGIcon } from '@instructure/ui-svg-images';
|
|
30
|
-
import { IconA11yLine, IconKeyboardShortcutsLine, IconMiniArrowEndLine, IconFullScreenLine, IconExitFullScreenLine } from '@instructure/ui-icons';
|
|
31
|
-
import formatMessage from '../format-message';
|
|
32
|
-
import ResizeHandle from './ResizeHandle';
|
|
33
|
-
import { FS_ENABLED } from '../util/fullscreenHelpers';
|
|
34
|
-
export const WYSIWYG_VIEW = 'WYSIWYG';
|
|
35
|
-
export const PRETTY_HTML_EDITOR_VIEW = 'PRETTY';
|
|
36
|
-
export const RAW_HTML_EDITOR_VIEW = 'RAW'; // I don't know why eslint is reporting this, the props are all used
|
|
37
|
-
|
|
38
|
-
/* eslint-disable react/no-unused-prop-types */
|
|
39
|
-
|
|
40
|
-
StatusBar.propTypes = {
|
|
41
|
-
id: string.isRequired,
|
|
42
|
-
rceIsFullscreen: bool,
|
|
43
|
-
onChangeView: func.isRequired,
|
|
44
|
-
path: arrayOf(string),
|
|
45
|
-
wordCount: number,
|
|
46
|
-
editorView: oneOf([WYSIWYG_VIEW, PRETTY_HTML_EDITOR_VIEW, RAW_HTML_EDITOR_VIEW]),
|
|
47
|
-
onResize: func,
|
|
48
|
-
// react-draggable onDrag handler.
|
|
49
|
-
onKBShortcutModalOpen: func.isRequired,
|
|
50
|
-
onA11yChecker: func.isRequired,
|
|
51
|
-
onFullscreen: func.isRequired,
|
|
52
|
-
preferredHtmlEditor: oneOf([PRETTY_HTML_EDITOR_VIEW, RAW_HTML_EDITOR_VIEW]),
|
|
53
|
-
readOnly: bool,
|
|
54
|
-
a11yBadgeColor: string,
|
|
55
|
-
a11yErrorsCount: number,
|
|
56
|
-
onWordcountModalOpen: func.isRequired,
|
|
57
|
-
disabledPlugins: arrayOf(string)
|
|
58
|
-
};
|
|
59
|
-
StatusBar.defaultProps = {
|
|
60
|
-
a11yBadgeColor: '#0374B5',
|
|
61
|
-
a11yErrorsCount: 0,
|
|
62
|
-
disabledPlugins: []
|
|
63
|
-
};
|
|
64
|
-
/* eslint-enable react/no-unused-prop-types */
|
|
65
|
-
// we use the array index because pathname may not be unique
|
|
66
|
-
|
|
67
|
-
/* eslint-disable react/no-array-index-key */
|
|
68
|
-
|
|
69
|
-
function renderPathString(_ref) {
|
|
70
|
-
let {
|
|
71
|
-
path
|
|
72
|
-
} = _ref;
|
|
73
|
-
return path.reduce((result, pathName, index) => {
|
|
74
|
-
return result.concat( /*#__PURE__*/React.createElement("span", {
|
|
75
|
-
key: `${pathName}-${index}`
|
|
76
|
-
}, /*#__PURE__*/React.createElement(Text, null, index > 0 ? /*#__PURE__*/React.createElement(IconMiniArrowEndLine, null) : null, pathName)));
|
|
77
|
-
}, []);
|
|
78
|
-
}
|
|
79
|
-
/* eslint-enable react/no-array-index-key */
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
function emptyTagIcon() {
|
|
83
|
-
return /*#__PURE__*/React.createElement(SVGIcon, {
|
|
84
|
-
viewBox: "0 0 24 24",
|
|
85
|
-
fontSize: "24px"
|
|
86
|
-
}, /*#__PURE__*/React.createElement("g", {
|
|
87
|
-
role: "presentation"
|
|
88
|
-
}, /*#__PURE__*/React.createElement("text", {
|
|
89
|
-
textAnchor: "middle",
|
|
90
|
-
x: "12px",
|
|
91
|
-
y: "18px",
|
|
92
|
-
fontSize: "16"
|
|
93
|
-
}, "</>")));
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
function findFocusable(el) {
|
|
97
|
-
// eslint-disable-next-line react/no-find-dom-node
|
|
98
|
-
const element = ReactDOM.findDOMNode(el);
|
|
99
|
-
return element ? Array.from(element.querySelectorAll('[tabindex]')) : [];
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
export default function StatusBar(props) {
|
|
103
|
-
const [focusedBtnId, setFocusedBtnId] = useState(null);
|
|
104
|
-
const [includeEdtrDesc, setIncludeEdtrDesc] = useState(false);
|
|
105
|
-
const statusBarRef = useRef(null);
|
|
106
|
-
useEffect(() => {
|
|
107
|
-
const buttons = findFocusable(statusBarRef.current);
|
|
108
|
-
setFocusedBtnId(buttons[0].getAttribute('data-btn-id'));
|
|
109
|
-
buttons[0].setAttribute('tabIndex', '0');
|
|
110
|
-
}, []);
|
|
111
|
-
useEffect(() => {
|
|
112
|
-
// the kbshortcut and a11y checker buttons are hidden when in html view
|
|
113
|
-
// move focus to the next button over.
|
|
114
|
-
if (isHtmlView() && /rce-kbshortcut-btn|rce-a11y-btn/.test(focusedBtnId)) {
|
|
115
|
-
setFocusedBtnId('rce-edit-btn');
|
|
116
|
-
} // adding a delay before including the HTML Editor description to wait the focus moves to the RCE
|
|
117
|
-
// and prevent JAWS from reading the aria-describedby element when switching back to RCE view
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
const timerid = setTimeout(() => {
|
|
121
|
-
setIncludeEdtrDesc(!isHtmlView());
|
|
122
|
-
}, 100);
|
|
123
|
-
return () => clearTimeout(timerid);
|
|
124
|
-
}, [props.editorView]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
125
|
-
|
|
126
|
-
function isAvailable(plugin) {
|
|
127
|
-
return !props.disabledPlugins.includes(plugin);
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
function preferredHtmlEditor() {
|
|
131
|
-
if (props.preferredHtmlEditor) return props.preferredHtmlEditor;
|
|
132
|
-
return PRETTY_HTML_EDITOR_VIEW;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
function getHtmlEditorView(event) {
|
|
136
|
-
if (!event.shiftKey) return preferredHtmlEditor();
|
|
137
|
-
return preferredHtmlEditor() === RAW_HTML_EDITOR_VIEW ? PRETTY_HTML_EDITOR_VIEW : RAW_HTML_EDITOR_VIEW;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
function handleKey(event) {
|
|
141
|
-
const buttons = findFocusable(statusBarRef.current).filter(b => !b.disabled);
|
|
142
|
-
const focusedIndex = buttons.findIndex(b => b.getAttribute('data-btn-id') === focusedBtnId);
|
|
143
|
-
let newFocusedIndex;
|
|
144
|
-
|
|
145
|
-
if (event.keyCode === keycode.codes.right) {
|
|
146
|
-
newFocusedIndex = (focusedIndex + 1) % buttons.length;
|
|
147
|
-
} else if (event.keyCode === keycode.codes.left) {
|
|
148
|
-
newFocusedIndex = (focusedIndex + buttons.length - 1) % buttons.length;
|
|
149
|
-
} else {
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
buttons[newFocusedIndex].focus();
|
|
154
|
-
setFocusedBtnId(buttons[newFocusedIndex].getAttribute('data-btn-id'));
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
function isHtmlView() {
|
|
158
|
-
return props.editorView !== WYSIWYG_VIEW;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
function tabIndexForBtn(itemId) {
|
|
162
|
-
const tabindex = focusedBtnId === itemId ? 0 : -1;
|
|
163
|
-
return tabindex;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
function renderPath() {
|
|
167
|
-
return /*#__PURE__*/React.createElement(View, {
|
|
168
|
-
"data-testid": "whole-status-bar-path"
|
|
169
|
-
}, renderPathString(props));
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
function renderA11yButton() {
|
|
173
|
-
const a11y = formatMessage('Accessibility Checker');
|
|
174
|
-
const button = /*#__PURE__*/React.createElement(IconButton, {
|
|
175
|
-
"data-btn-id": "rce-a11y-btn",
|
|
176
|
-
color: "primary",
|
|
177
|
-
title: a11y,
|
|
178
|
-
tabIndex: tabIndexForBtn('rce-a11y-btn'),
|
|
179
|
-
onClick: event => {
|
|
180
|
-
event.target.focus();
|
|
181
|
-
props.onA11yChecker();
|
|
182
|
-
},
|
|
183
|
-
onFocus: () => setFocusedBtnId('rce-a11y-btn'),
|
|
184
|
-
screenReaderLabel: a11y,
|
|
185
|
-
withBackground: false,
|
|
186
|
-
withBorder: false
|
|
187
|
-
}, /*#__PURE__*/React.createElement(IconA11yLine, null));
|
|
188
|
-
|
|
189
|
-
if (props.a11yErrorsCount <= 0) {
|
|
190
|
-
return button;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
return /*#__PURE__*/React.createElement(InstUISettingsProvider, {
|
|
194
|
-
theme: {
|
|
195
|
-
componentOverrides: {
|
|
196
|
-
Badge: {
|
|
197
|
-
colorPrimary: props.a11yBadgeColor
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
}, /*#__PURE__*/React.createElement(Badge, {
|
|
202
|
-
count: props.a11yErrorsCount,
|
|
203
|
-
countUntil: 100
|
|
204
|
-
}, button));
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
function renderHtmlEditorMessage() {
|
|
208
|
-
const message = props.editorView === PRETTY_HTML_EDITOR_VIEW ? formatMessage('Sadly, the pretty HTML editor is not keyboard accessible. Access the raw HTML editor here.') : formatMessage('Access the pretty HTML editor');
|
|
209
|
-
const label = props.editorView === PRETTY_HTML_EDITOR_VIEW ? formatMessage('Switch to raw HTML Editor') : formatMessage('Switch to pretty HTML Editor');
|
|
210
|
-
return /*#__PURE__*/React.createElement(View, {
|
|
211
|
-
"data-testid": "html-editor-message"
|
|
212
|
-
}, /*#__PURE__*/React.createElement(Button, {
|
|
213
|
-
"data-btn-id": "rce-editormessage-btn",
|
|
214
|
-
margin: "0 small",
|
|
215
|
-
title: message,
|
|
216
|
-
color: "secondary",
|
|
217
|
-
size: "small",
|
|
218
|
-
tabIndex: tabIndexForBtn('rce-editormessage-btn'),
|
|
219
|
-
onClick: event => {
|
|
220
|
-
event.target.focus();
|
|
221
|
-
props.onChangeView(props.editorView === PRETTY_HTML_EDITOR_VIEW ? RAW_HTML_EDITOR_VIEW : PRETTY_HTML_EDITOR_VIEW);
|
|
222
|
-
},
|
|
223
|
-
onFocus: () => setFocusedBtnId('rce-editormessage-btn')
|
|
224
|
-
}, label));
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
function renderIconButtons() {
|
|
228
|
-
if (isHtmlView()) return null;
|
|
229
|
-
const kbshortcut = formatMessage('View keyboard shortcuts');
|
|
230
|
-
return /*#__PURE__*/React.createElement(View, {
|
|
231
|
-
display: "inline-block",
|
|
232
|
-
padding: "0 x-small"
|
|
233
|
-
}, /*#__PURE__*/React.createElement(IconButton, {
|
|
234
|
-
"data-btn-id": "rce-kbshortcut-btn",
|
|
235
|
-
color: "primary",
|
|
236
|
-
"aria-haspopup": "dialog",
|
|
237
|
-
title: kbshortcut,
|
|
238
|
-
tabIndex: tabIndexForBtn('rce-kbshortcut-btn'),
|
|
239
|
-
onClick: event => {
|
|
240
|
-
event.target.focus(); // FF doesn't focus buttons on click
|
|
241
|
-
|
|
242
|
-
props.onKBShortcutModalOpen();
|
|
243
|
-
},
|
|
244
|
-
onFocus: () => setFocusedBtnId('rce-kbshortcut-btn'),
|
|
245
|
-
screenReaderLabel: kbshortcut,
|
|
246
|
-
withBackground: false,
|
|
247
|
-
withBorder: false
|
|
248
|
-
}, /*#__PURE__*/React.createElement(IconKeyboardShortcutsLine, null)), !props.readOnly && isAvailable('ally_checker') && renderA11yButton());
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
function renderWordCount() {
|
|
252
|
-
if (isHtmlView()) return null;
|
|
253
|
-
const wordCount = formatMessage(`{count, plural,
|
|
254
|
-
=0 {0 words}
|
|
255
|
-
one {1 word}
|
|
256
|
-
other {# words}
|
|
257
|
-
}`, {
|
|
258
|
-
count: props.wordCount
|
|
259
|
-
});
|
|
260
|
-
return /*#__PURE__*/React.createElement(View, {
|
|
261
|
-
display: "inline-block",
|
|
262
|
-
padding: "0 small",
|
|
263
|
-
"data-testid": "status-bar-word-count"
|
|
264
|
-
}, /*#__PURE__*/React.createElement(CondensedButton, {
|
|
265
|
-
"data-btn-id": "rce-wordcount-btn",
|
|
266
|
-
color: "primary",
|
|
267
|
-
onClick: props.onWordcountModalOpen,
|
|
268
|
-
tabIndex: tabIndexForBtn('rce-wordcount-btn'),
|
|
269
|
-
title: formatMessage('View word and character counts')
|
|
270
|
-
}, wordCount));
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
function descMsg() {
|
|
274
|
-
return preferredHtmlEditor() === RAW_HTML_EDITOR_VIEW ? formatMessage('Shift-O to open the pretty html editor.') : formatMessage('The pretty html editor is not keyboard accessible. Press Shift O to open the raw html editor.');
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
function renderToggleHtml() {
|
|
278
|
-
const toggleToHtml = formatMessage('Switch to the html editor');
|
|
279
|
-
const toggleToRich = formatMessage('Switch to the rich text editor');
|
|
280
|
-
const toggleToHtmlTip = formatMessage('Click or shift-click for the html editor.');
|
|
281
|
-
const descText = isHtmlView() ? toggleToRich : toggleToHtml;
|
|
282
|
-
const titleText = isHtmlView() ? toggleToRich : toggleToHtmlTip;
|
|
283
|
-
return /*#__PURE__*/React.createElement(View, {
|
|
284
|
-
display: "inline-block",
|
|
285
|
-
padding: "0 0 0 x-small"
|
|
286
|
-
}, !props.readOnly && /*#__PURE__*/React.createElement(IconButton, {
|
|
287
|
-
"data-btn-id": "rce-edit-btn",
|
|
288
|
-
color: "primary",
|
|
289
|
-
onClick: event => {
|
|
290
|
-
props.onChangeView(isHtmlView() ? WYSIWYG_VIEW : getHtmlEditorView(event));
|
|
291
|
-
},
|
|
292
|
-
onKeyUp: event => {
|
|
293
|
-
if (props.editorView === WYSIWYG_VIEW && event.shiftKey && event.keyCode === 79) {
|
|
294
|
-
const html_view = preferredHtmlEditor() === RAW_HTML_EDITOR_VIEW ? PRETTY_HTML_EDITOR_VIEW : RAW_HTML_EDITOR_VIEW;
|
|
295
|
-
props.onChangeView(html_view);
|
|
296
|
-
}
|
|
297
|
-
},
|
|
298
|
-
onFocus: () => setFocusedBtnId('rce-edit-btn'),
|
|
299
|
-
title: titleText,
|
|
300
|
-
tabIndex: tabIndexForBtn('rce-edit-btn'),
|
|
301
|
-
"aria-describedby": includeEdtrDesc ? 'edit-button-desc' : undefined,
|
|
302
|
-
screenReaderLabel: descText,
|
|
303
|
-
withBackground: false,
|
|
304
|
-
withBorder: false
|
|
305
|
-
}, emptyTagIcon()), includeEdtrDesc && /*#__PURE__*/React.createElement("span", {
|
|
306
|
-
style: {
|
|
307
|
-
display: 'none'
|
|
308
|
-
},
|
|
309
|
-
id: "edit-button-desc"
|
|
310
|
-
}, descMsg()));
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
function renderFullscreen() {
|
|
314
|
-
if (props.readOnly) return null;
|
|
315
|
-
if (!document[FS_ENABLED]) return null;
|
|
316
|
-
|
|
317
|
-
if (props.editorView === RAW_HTML_EDITOR_VIEW && !('requestFullscreen' in document.body)) {
|
|
318
|
-
// this is safari, which refuses to fullscreen a textarea
|
|
319
|
-
return null;
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
const fullscreen = props.rceIsFullscreen ? formatMessage('Exit Fullscreen') : formatMessage('Fullscreen');
|
|
323
|
-
return /*#__PURE__*/React.createElement(IconButton, {
|
|
324
|
-
"data-btn-id": "rce-fullscreen-btn",
|
|
325
|
-
color: "primary",
|
|
326
|
-
title: fullscreen,
|
|
327
|
-
tabIndex: tabIndexForBtn('rce-fullscreen-btn'),
|
|
328
|
-
onClick: event => {
|
|
329
|
-
event.target.focus();
|
|
330
|
-
props.onFullscreen();
|
|
331
|
-
},
|
|
332
|
-
onFocus: () => setFocusedBtnId('rce-fullscreen-btn'),
|
|
333
|
-
screenReaderLabel: fullscreen,
|
|
334
|
-
withBackground: false,
|
|
335
|
-
withBorder: false
|
|
336
|
-
}, props.rceIsFullscreen ? /*#__PURE__*/React.createElement(IconExitFullScreenLine, null) : /*#__PURE__*/React.createElement(IconFullScreenLine, null));
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
function renderResizeHandle() {
|
|
340
|
-
if (props.rceIsFullscreen) return null;
|
|
341
|
-
return /*#__PURE__*/React.createElement(ResizeHandle, {
|
|
342
|
-
"data-btn-id": "rce-resize-handle",
|
|
343
|
-
onDrag: props.onResize,
|
|
344
|
-
tabIndex: tabIndexForBtn('rce-resize-handle'),
|
|
345
|
-
onFocus: () => {
|
|
346
|
-
setFocusedBtnId('rce-resize-handle');
|
|
347
|
-
}
|
|
348
|
-
});
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
const flexJustify = isHtmlView() ? 'end' : 'start';
|
|
352
|
-
return /*#__PURE__*/React.createElement(Flex, {
|
|
353
|
-
id: props.id,
|
|
354
|
-
padding: "x-small 0 x-small x-small",
|
|
355
|
-
"data-testid": "RCEStatusBar",
|
|
356
|
-
justifyItems: flexJustify,
|
|
357
|
-
ref: statusBarRef,
|
|
358
|
-
onKeyDown: handleKey
|
|
359
|
-
}, /*#__PURE__*/React.createElement(Flex.Item, {
|
|
360
|
-
shouldGrow: true
|
|
361
|
-
}, isHtmlView() ? renderHtmlEditorMessage() : renderPath()), /*#__PURE__*/React.createElement(Flex.Item, {
|
|
362
|
-
role: "toolbar",
|
|
363
|
-
title: formatMessage('Editor Statusbar')
|
|
364
|
-
}, renderIconButtons(), /*#__PURE__*/React.createElement("div", {
|
|
365
|
-
className: css(styles.separator)
|
|
366
|
-
}), isAvailable('instructure_wordcount') && renderWordCount(), /*#__PURE__*/React.createElement("div", {
|
|
367
|
-
className: css(styles.separator)
|
|
368
|
-
}), isAvailable('instructure_html_view') && renderToggleHtml(), isAvailable('instructure_fullscreen') && renderFullscreen(), renderResizeHandle()));
|
|
369
|
-
}
|
|
370
|
-
const styles = StyleSheet.create({
|
|
371
|
-
separator: {
|
|
372
|
-
display: 'inline-block',
|
|
373
|
-
'box-sizing': 'border-box',
|
|
374
|
-
'border-right': '1px solid #ccc',
|
|
375
|
-
width: '1px',
|
|
376
|
-
height: '1.5rem',
|
|
377
|
-
position: 'relative',
|
|
378
|
-
top: '.5rem'
|
|
379
|
-
}
|
|
380
|
-
});
|
|
@@ -1,124 +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
|
-
export default {
|
|
19
|
-
lib: {
|
|
20
|
-
Base: {},
|
|
21
|
-
WordArray: {},
|
|
22
|
-
BufferedBlockAlgorithm: {},
|
|
23
|
-
Hasher: {},
|
|
24
|
-
Cipher: {},
|
|
25
|
-
StreamCipher: {},
|
|
26
|
-
BlockCipherMode: {},
|
|
27
|
-
BlockCipher: {},
|
|
28
|
-
CipherParams: {},
|
|
29
|
-
SerializableCipher: {},
|
|
30
|
-
PasswordBasedCipher: {}
|
|
31
|
-
},
|
|
32
|
-
x64: {
|
|
33
|
-
Word: {},
|
|
34
|
-
WordArray: {}
|
|
35
|
-
},
|
|
36
|
-
enc: {
|
|
37
|
-
Hex: {},
|
|
38
|
-
Latin1: {},
|
|
39
|
-
Utf8: {
|
|
40
|
-
parse: () => {}
|
|
41
|
-
},
|
|
42
|
-
Utf16: {},
|
|
43
|
-
Utf16BE: {},
|
|
44
|
-
Utf16LE: {},
|
|
45
|
-
Base64: {},
|
|
46
|
-
Base64url: {}
|
|
47
|
-
},
|
|
48
|
-
algo: {
|
|
49
|
-
HMAC: {},
|
|
50
|
-
MD5: {},
|
|
51
|
-
SHA1: {},
|
|
52
|
-
SHA224: {},
|
|
53
|
-
SHA256: {},
|
|
54
|
-
SHA384: {},
|
|
55
|
-
SHA512: {},
|
|
56
|
-
SHA3: {},
|
|
57
|
-
RIPEMD160: {},
|
|
58
|
-
PBKDF2: {},
|
|
59
|
-
EvpKDF: {},
|
|
60
|
-
AES: {},
|
|
61
|
-
DES: {},
|
|
62
|
-
TripleDES: {},
|
|
63
|
-
Rabbit: {},
|
|
64
|
-
RabbitLegacy: {},
|
|
65
|
-
RC4: {},
|
|
66
|
-
RC4Drop: {},
|
|
67
|
-
Blowfish: {}
|
|
68
|
-
},
|
|
69
|
-
mode: {
|
|
70
|
-
CBC: {},
|
|
71
|
-
CFB: {},
|
|
72
|
-
CTR: {},
|
|
73
|
-
CTRGladman: {},
|
|
74
|
-
ECB: {},
|
|
75
|
-
OFB: {}
|
|
76
|
-
},
|
|
77
|
-
pad: {
|
|
78
|
-
Pkcs7: {},
|
|
79
|
-
AnsiX923: {},
|
|
80
|
-
Iso10126: {},
|
|
81
|
-
Iso97971: {},
|
|
82
|
-
NoPadding: {},
|
|
83
|
-
ZeroPadding: {}
|
|
84
|
-
},
|
|
85
|
-
format: {
|
|
86
|
-
OpenSSL: {},
|
|
87
|
-
Hex: {}
|
|
88
|
-
},
|
|
89
|
-
kdf: {
|
|
90
|
-
OpenSSL: {}
|
|
91
|
-
},
|
|
92
|
-
MD5: {},
|
|
93
|
-
HmacMD5: {},
|
|
94
|
-
SHA1: {},
|
|
95
|
-
HmacSHA1: {},
|
|
96
|
-
SHA224: {},
|
|
97
|
-
HmacSHA224: {},
|
|
98
|
-
SHA256: {},
|
|
99
|
-
HmacSHA256: {},
|
|
100
|
-
SHA384: {},
|
|
101
|
-
HmacSHA384: {},
|
|
102
|
-
SHA512: {},
|
|
103
|
-
HmacSHA512: {},
|
|
104
|
-
SHA3: {},
|
|
105
|
-
HmacSHA3: {},
|
|
106
|
-
RIPEMD160: {},
|
|
107
|
-
HmacRIPEMD160: {},
|
|
108
|
-
PBKDF2: {},
|
|
109
|
-
EvpKDF: {},
|
|
110
|
-
AES: {},
|
|
111
|
-
DES: {},
|
|
112
|
-
TripleDES: {},
|
|
113
|
-
Rabbit: {},
|
|
114
|
-
RabbitLegacy: {},
|
|
115
|
-
RC4: {
|
|
116
|
-
encrypt: () => {},
|
|
117
|
-
decrypt: () => {}
|
|
118
|
-
},
|
|
119
|
-
RC4Drop: {
|
|
120
|
-
encrypt: () => {},
|
|
121
|
-
decrypt: () => {}
|
|
122
|
-
},
|
|
123
|
-
Blowfish: {}
|
|
124
|
-
};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2022 - present Instructure, Inc.
|
|
3
|
-
*
|
|
4
|
-
* This file is part of Canvas.
|
|
5
|
-
*
|
|
6
|
-
* Canvas is free software: you can redistribute it and/or modify it under
|
|
7
|
-
* the terms of the GNU Affero General Public License as published by the Free
|
|
8
|
-
* Software Foundation, version 3 of the License.
|
|
9
|
-
*
|
|
10
|
-
* Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
11
|
-
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
12
|
-
* A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
13
|
-
* details.
|
|
14
|
-
*
|
|
15
|
-
* You should have received a copy of the GNU Affero General Public License along
|
|
16
|
-
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
-
*/
|
|
18
|
-
module.export = {};
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2021 - present Instructure, Inc.
|
|
3
|
-
*
|
|
4
|
-
* This file is part of Canvas.
|
|
5
|
-
*
|
|
6
|
-
* Canvas is free software: you can redistribute it and/or modify it under
|
|
7
|
-
* the terms of the GNU Affero General Public License as published by the Free
|
|
8
|
-
* Software Foundation, version 3 of the License.
|
|
9
|
-
*
|
|
10
|
-
* Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
11
|
-
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
12
|
-
* A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
13
|
-
* details.
|
|
14
|
-
*
|
|
15
|
-
* You should have received a copy of the GNU Affero General Public License along
|
|
16
|
-
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
/*
|
|
20
|
-
* This is a mock for the @tinymce/tinymce-react Editor component
|
|
21
|
-
* and the inner tinymce editor object
|
|
22
|
-
* jest.config.js moduleNameMapper has jest load this
|
|
23
|
-
* file in response to
|
|
24
|
-
* import {Editor} from '@tinymce/tinymce-react'
|
|
25
|
-
* in RCEWrapper.js
|
|
26
|
-
*/
|
|
27
|
-
import React, { useEffect, useRef } from 'react';
|
|
28
|
-
import FakeEditor from '../__tests__/FakeEditor';
|
|
29
|
-
export function Editor(props) {
|
|
30
|
-
const editorRef = useRef(null);
|
|
31
|
-
const textareaRef = useRef(null);
|
|
32
|
-
const tinymceEditor = useRef(new FakeEditor(props));
|
|
33
|
-
window.tinymce.editors[0] = tinymceEditor.current;
|
|
34
|
-
useEffect(() => {
|
|
35
|
-
tinymceEditor.current.on('change', handleChange);
|
|
36
|
-
props.onInit && props.onInit({}, tinymceEditor.current); // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
37
|
-
}, []);
|
|
38
|
-
|
|
39
|
-
function handleChange(event) {
|
|
40
|
-
var _props$onEditorChange;
|
|
41
|
-
|
|
42
|
-
(_props$onEditorChange = props.onEditorChange) === null || _props$onEditorChange === void 0 ? void 0 : _props$onEditorChange.call(props, event.target.value);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
46
|
-
ref: editorRef
|
|
47
|
-
}, /*#__PURE__*/React.createElement("textarea", {
|
|
48
|
-
ref: textareaRef,
|
|
49
|
-
id: props.id,
|
|
50
|
-
name: props.textareaName,
|
|
51
|
-
value: props.initialValue,
|
|
52
|
-
onInput: handleChange,
|
|
53
|
-
onChange: handleChange
|
|
54
|
-
}));
|
|
55
|
-
}
|
package/lib/rce/alertHandler.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2019 - present Instructure, Inc.
|
|
3
|
-
*
|
|
4
|
-
* This file is part of Canvas.
|
|
5
|
-
*
|
|
6
|
-
* Canvas is free software: you can redistribute it and/or modify it under
|
|
7
|
-
* the terms of the GNU Affero General Public License as published by the Free
|
|
8
|
-
* Software Foundation, version 3 of the License.
|
|
9
|
-
*
|
|
10
|
-
* Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
11
|
-
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
12
|
-
* A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
13
|
-
* details.
|
|
14
|
-
*
|
|
15
|
-
* You should have received a copy of the GNU Affero General Public License along
|
|
16
|
-
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* This class acts as a store/registry of sorts. This enables us to
|
|
21
|
-
* talk between the UI components of the RCE and the API pieces.
|
|
22
|
-
*
|
|
23
|
-
* @class AlertHandler
|
|
24
|
-
*/
|
|
25
|
-
export class AlertHandler {
|
|
26
|
-
constructor(alertFunc) {
|
|
27
|
-
this.handleAlert = alert => {
|
|
28
|
-
if (this.alertFunc == null) {
|
|
29
|
-
throw new Error('Tried to alert without alertFunc being set first');
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
this.alertFunc(alert);
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
this.alertFunc = alertFunc;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Calls the registered alertFunc assuming one has been set, otherwise
|
|
39
|
-
* it throws.
|
|
40
|
-
*
|
|
41
|
-
* @memberof AlertHandler
|
|
42
|
-
*/
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
export default new AlertHandler();
|