@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
|
@@ -1,294 +0,0 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
|
-
|
|
3
|
-
/*
|
|
4
|
-
* Copyright (C) 2019 - present Instructure, Inc.
|
|
5
|
-
*
|
|
6
|
-
* This file is part of Canvas.
|
|
7
|
-
*
|
|
8
|
-
* Canvas is free software: you can redistribute it and/or modify it under
|
|
9
|
-
* the terms of the GNU Affero General Public License as published by the Free
|
|
10
|
-
* Software Foundation, version 3 of the License.
|
|
11
|
-
*
|
|
12
|
-
* Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
13
|
-
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
14
|
-
* A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
15
|
-
* details.
|
|
16
|
-
*
|
|
17
|
-
* You should have received a copy of the GNU Affero General Public License along
|
|
18
|
-
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
/*
|
|
22
|
-
* here's how linking works
|
|
23
|
-
* Creation:
|
|
24
|
-
* 1. No text is selected, user clicks create link button:
|
|
25
|
-
* - display the create link dialog with text and URL input
|
|
26
|
-
* - insert an <a> at the caret, linked to the URL with the text content
|
|
27
|
-
* 2. Text is selected, user clicks create link button:
|
|
28
|
-
* - display the create link dialog with text and URL input
|
|
29
|
-
* - the text input displays the plain-text content of the selection
|
|
30
|
-
* - on saving, if the plain-text has not changed, leave it unchanged in the RCE,
|
|
31
|
-
* if it has changed, replace the selection with the new plain-text.
|
|
32
|
-
* Wrap the text in an <a>, linked to the URL
|
|
33
|
-
* 3. An image + optional text is selected, user clicks create link button
|
|
34
|
-
* - display the create link dialog with URL input only
|
|
35
|
-
* - on saving, the selection is wrapped in an <a>, linked to the URL
|
|
36
|
-
* 4. An iframe is w/in the selection
|
|
37
|
-
* - disable the create link function
|
|
38
|
-
*
|
|
39
|
-
* Editing:
|
|
40
|
-
* 1. the caret is w/in a text link, but nothing is selected or
|
|
41
|
-
* some subset of the link's text is selected
|
|
42
|
-
* - display the link Options popup button. when clicked...
|
|
43
|
-
* - expand the selection to be the whole link text
|
|
44
|
-
* - display the tray with the link's plain-text in the text input and the href
|
|
45
|
-
* in the URL input
|
|
46
|
-
* - on saving, if the plain-text is unchanged, leave the text unchanged in the RCE,
|
|
47
|
-
* if it has changed, replace the link text with the new plain-text.
|
|
48
|
-
* Update the <a>'s href to the new URL
|
|
49
|
-
* 2. An image w/in a link is selected, or the caret is on the image, or the image
|
|
50
|
-
* plus some surrounding text that's all part of the existing link is selected, or
|
|
51
|
-
* the caret is w/in a link that contains an image
|
|
52
|
-
* a. for now: show the link and image Options buttons in a popup toolbar
|
|
53
|
-
* - on clicking the link Options...
|
|
54
|
-
* - expand the selection to be the whole link contents
|
|
55
|
-
* - show the link options tray, with no text input
|
|
56
|
-
* - on saving, update the link's href
|
|
57
|
-
* b. new-improved: show a single Options button, when clicked...
|
|
58
|
-
* - expand the selection to be the whole link contents
|
|
59
|
-
* - show the options tray with Image Options and Link Options sections
|
|
60
|
-
* the link text input is empty.
|
|
61
|
-
* - on saving, if the link text input is still empty, replace the link's
|
|
62
|
-
* href with the new URL. if the link text is updated, replace the link's
|
|
63
|
-
* content with the new plain text (deleting the image)
|
|
64
|
-
*/
|
|
65
|
-
import formatMessage from '../../../format-message';
|
|
66
|
-
import clickCallback from './clickCallback';
|
|
67
|
-
import bridge from '../../../bridge';
|
|
68
|
-
import { getAnchorElement, isOKToLink } from '../../contentInsertionUtils';
|
|
69
|
-
import LinkOptionsTrayController from './components/LinkOptionsTray/LinkOptionsTrayController';
|
|
70
|
-
import { CREATE_LINK, EDIT_LINK } from './components/LinkOptionsDialog/LinkOptionsDialogController';
|
|
71
|
-
import tinymce from 'tinymce';
|
|
72
|
-
const trayController = new LinkOptionsTrayController();
|
|
73
|
-
const COURSE_PLUGIN_KEY = 'course_links';
|
|
74
|
-
const GROUP_PLUGIN_KEY = 'group_links';
|
|
75
|
-
|
|
76
|
-
function getCommandName(selectedNode) {
|
|
77
|
-
const isCourseLink = selectedNode.getAttribute('data-course-type');
|
|
78
|
-
return isCourseLink ? 'instructureTrayForCourseLinks' : 'instructureTrayToEditLink';
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
function selectedAnchorCount(ed) {
|
|
82
|
-
return ed.selection.getRng().cloneContents().querySelectorAll('a').length;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
function getMenuItems(ed) {
|
|
86
|
-
var _ed$settings$canvas_r;
|
|
87
|
-
|
|
88
|
-
const contextType = (_ed$settings$canvas_r = ed.settings.canvas_rce_containing_context) === null || _ed$settings$canvas_r === void 0 ? void 0 : _ed$settings$canvas_r.type;
|
|
89
|
-
const sel_anchors = ed.selection.isCollapsed() ? 0 : selectedAnchorCount(ed);
|
|
90
|
-
let items;
|
|
91
|
-
|
|
92
|
-
if (getAnchorElement(ed, ed.selection.getNode())) {
|
|
93
|
-
// cursor is on an anchor, edit or remove it
|
|
94
|
-
items = [{
|
|
95
|
-
text: formatMessage('Edit Link'),
|
|
96
|
-
value: getCommandName(ed.selection.getNode())
|
|
97
|
-
}, {
|
|
98
|
-
text: formatMessage('Remove Link'),
|
|
99
|
-
value: 'instructureUnlink'
|
|
100
|
-
}];
|
|
101
|
-
} else {
|
|
102
|
-
items = [{
|
|
103
|
-
text: formatMessage('External Link'),
|
|
104
|
-
value: 'instructureLinkCreate'
|
|
105
|
-
}];
|
|
106
|
-
|
|
107
|
-
if (contextType === 'course') {
|
|
108
|
-
items.push({
|
|
109
|
-
text: formatMessage('Course Link'),
|
|
110
|
-
value: 'instructure_course_links'
|
|
111
|
-
});
|
|
112
|
-
} else if (contextType === 'group') {
|
|
113
|
-
items.push({
|
|
114
|
-
text: formatMessage('Group Link'),
|
|
115
|
-
value: 'instructure_group_links'
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
if (sel_anchors > 0) {
|
|
120
|
-
// selection contains anchor(s), so the user can remove them
|
|
121
|
-
items.push({
|
|
122
|
-
text: formatMessage.plural(sel_anchors, {
|
|
123
|
-
one: 'Remove Link',
|
|
124
|
-
other: 'Remove Links'
|
|
125
|
-
}),
|
|
126
|
-
value: 'instructureUnlinkAll'
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
return items;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
function removeAnchorFromSelectedElement(ed) {
|
|
135
|
-
const selectedElem = ed.selection.getNode();
|
|
136
|
-
const anchorElem = getAnchorElement(ed, selectedElem);
|
|
137
|
-
ed.selection.select(anchorElem);
|
|
138
|
-
ed.undoManager.add();
|
|
139
|
-
ed.execCommand('Unlink');
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
function doMenuItem(ed, actionName) {
|
|
143
|
-
switch (actionName) {
|
|
144
|
-
case 'instructureTrayToEditLink':
|
|
145
|
-
case 'instructureTrayForCourseLinks':
|
|
146
|
-
case 'instructureLinkCreate':
|
|
147
|
-
ed.execCommand(actionName);
|
|
148
|
-
break;
|
|
149
|
-
|
|
150
|
-
case 'instructureUnlink':
|
|
151
|
-
removeAnchorFromSelectedElement(ed);
|
|
152
|
-
break;
|
|
153
|
-
|
|
154
|
-
case 'instructureUnlinkAll':
|
|
155
|
-
ed.undoManager.add();
|
|
156
|
-
ed.execCommand('unlink');
|
|
157
|
-
break;
|
|
158
|
-
|
|
159
|
-
case 'instructure_course_links':
|
|
160
|
-
ed.focus(true); // activate the editor without changing focus
|
|
161
|
-
|
|
162
|
-
ed.execCommand('instructureTrayForLinks', false, COURSE_PLUGIN_KEY);
|
|
163
|
-
break;
|
|
164
|
-
|
|
165
|
-
case 'instructure_group_links':
|
|
166
|
-
ed.focus(true); // activate the editor without changing focus
|
|
167
|
-
|
|
168
|
-
ed.execCommand('instructureTrayForLinks', false, GROUP_PLUGIN_KEY);
|
|
169
|
-
break;
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
tinymce.PluginManager.add('instructure_links', function (ed) {
|
|
174
|
-
// Register commands
|
|
175
|
-
ed.addCommand('instructureLinkCreate', () => clickCallback(ed, CREATE_LINK));
|
|
176
|
-
ed.addCommand('instructureLinkEdit', () => clickCallback(ed, EDIT_LINK));
|
|
177
|
-
ed.addCommand('instructureTrayForLinks', (ui, plugin_key) => {
|
|
178
|
-
bridge.showTrayForPlugin(plugin_key, ed.id);
|
|
179
|
-
});
|
|
180
|
-
ed.addCommand('instructureTrayToEditLink', _ui => {
|
|
181
|
-
trayController.showTrayForEditor(ed);
|
|
182
|
-
});
|
|
183
|
-
ed.addCommand('instructureTrayForCourseLinks', () => {
|
|
184
|
-
ed.selection.select(ed.selection.getNode());
|
|
185
|
-
return bridge.showTrayForPlugin('course_link_edit', ed.id);
|
|
186
|
-
}); // Register shortcuts
|
|
187
|
-
|
|
188
|
-
ed.addShortcut('Meta+K', '', 'instructureLinkCreate'); // Register menu item
|
|
189
|
-
|
|
190
|
-
ed.ui.registry.addNestedMenuItem('instructure_links', {
|
|
191
|
-
text: formatMessage('Link'),
|
|
192
|
-
icon: 'link',
|
|
193
|
-
getSubmenuItems: () => getMenuItems(ed).map(item => {
|
|
194
|
-
return {
|
|
195
|
-
type: 'menuitem',
|
|
196
|
-
text: item.text,
|
|
197
|
-
onAction: () => doMenuItem(ed, item.value),
|
|
198
|
-
onSetup: api => {
|
|
199
|
-
api.setDisabled(!isOKToLink(ed.selection.getContent()));
|
|
200
|
-
return () => {};
|
|
201
|
-
}
|
|
202
|
-
};
|
|
203
|
-
})
|
|
204
|
-
}); // Register toolbar button
|
|
205
|
-
|
|
206
|
-
ed.ui.registry.addMenuButton('instructure_links', {
|
|
207
|
-
tooltip: formatMessage('Links'),
|
|
208
|
-
icon: 'link',
|
|
209
|
-
fetch: callback => callback(getMenuItems(ed).map(item => ({
|
|
210
|
-
type: 'menuitem',
|
|
211
|
-
text: item.text,
|
|
212
|
-
value: item.value,
|
|
213
|
-
onAction: () => doMenuItem(ed, item.value)
|
|
214
|
-
}))),
|
|
215
|
-
|
|
216
|
-
onSetup(api) {
|
|
217
|
-
function handleNodeChange(e) {
|
|
218
|
-
if (e !== null && e !== void 0 && e.element) {
|
|
219
|
-
api.setActive(!!getAnchorElement(ed, e.element));
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
api.setDisabled(!isOKToLink(ed.selection.getContent()));
|
|
223
|
-
} // if the user selects all the content w/in a link and deletes it via the keyboard
|
|
224
|
-
// make sure the surrounding <a> gets deleted too.
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
function deleteEmptyLink() {
|
|
228
|
-
let node = null;
|
|
229
|
-
|
|
230
|
-
if (ed.selection.getNode().tagName === 'A') {
|
|
231
|
-
node = ed.selection.getNode();
|
|
232
|
-
} else {
|
|
233
|
-
var _rng$endContainer$nex, _rng$nextSibling;
|
|
234
|
-
|
|
235
|
-
// Type checking is disabled here because the code below isn't type safe. The code below
|
|
236
|
-
// should be updated, specifically rng.endContainer.nextSibling?.tagName
|
|
237
|
-
const rng = ed.selection.getRng();
|
|
238
|
-
|
|
239
|
-
if (rng.commonAncestorContainer === rng.endContainer && ((_rng$endContainer$nex = rng.endContainer.nextSibling) === null || _rng$endContainer$nex === void 0 ? void 0 : _rng$endContainer$nex.tagName) === 'A') {
|
|
240
|
-
node = rng.endContainer.nextSibling;
|
|
241
|
-
} else if (((_rng$nextSibling = rng.nextSibling) === null || _rng$nextSibling === void 0 ? void 0 : _rng$nextSibling.tagName) === 'A') {
|
|
242
|
-
node = rng.nextSibling;
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
if (node) {
|
|
247
|
-
var _node$textContent;
|
|
248
|
-
|
|
249
|
-
if (node.firstElementChild) {
|
|
250
|
-
return;
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
const txt = (_node$textContent = node.textContent) === null || _node$textContent === void 0 ? void 0 : _node$textContent.trim();
|
|
254
|
-
|
|
255
|
-
if ((txt === null || txt === void 0 ? void 0 : txt.length) === 0) {
|
|
256
|
-
ed.execCommand('Unlink');
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
setTimeout(handleNodeChange, 0, null);
|
|
262
|
-
ed.on('NodeChange', handleNodeChange);
|
|
263
|
-
ed.on('Change', deleteEmptyLink);
|
|
264
|
-
return () => {
|
|
265
|
-
ed.off('NodeChange', handleNodeChange);
|
|
266
|
-
ed.off('Change', deleteEmptyLink);
|
|
267
|
-
};
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
}); // the context toolbar buttons
|
|
271
|
-
|
|
272
|
-
ed.ui.registry.addButton('instructure-link-options', {
|
|
273
|
-
onAction() {
|
|
274
|
-
ed.execCommand(getCommandName(ed.selection.getNode()), false, ed);
|
|
275
|
-
},
|
|
276
|
-
|
|
277
|
-
text: formatMessage('Link Options'),
|
|
278
|
-
tooltip: formatMessage('Show link options')
|
|
279
|
-
});
|
|
280
|
-
const remButtonLabel = formatMessage('Remove Link');
|
|
281
|
-
ed.ui.registry.addButton('instructureUnlink', {
|
|
282
|
-
onAction() {
|
|
283
|
-
removeAnchorFromSelectedElement(ed);
|
|
284
|
-
},
|
|
285
|
-
|
|
286
|
-
text: remButtonLabel
|
|
287
|
-
});
|
|
288
|
-
ed.ui.registry.addContextToolbar('instructure-link-toolbar', {
|
|
289
|
-
items: 'instructure-link-options instructureUnlink',
|
|
290
|
-
position: 'node',
|
|
291
|
-
predicate: elem => !!getAnchorElement(ed, elem),
|
|
292
|
-
scope: 'node'
|
|
293
|
-
});
|
|
294
|
-
});
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2020 - 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 { parse } from 'url';
|
|
19
|
-
import formatMessage from '../../../format-message'; // keep in sync with the protocols permitted for <a href>
|
|
20
|
-
// as listed in gems/canvas_sanitize/lib/canvas_sanitize/canvas_sanitize.rb
|
|
21
|
-
|
|
22
|
-
const allowed_protocols = ['ftp:', 'http:', 'https:', 'mailto:', 'tel:', 'skype:']; // weakly validate a url
|
|
23
|
-
// return true if valid
|
|
24
|
-
// return false if not valid yet, but incomplete
|
|
25
|
-
// throw an Error if invalid
|
|
26
|
-
|
|
27
|
-
export default function validateURL(url) {
|
|
28
|
-
const href = url.trim();
|
|
29
|
-
const parsed = parse(href, false, true);
|
|
30
|
-
const protocol = parsed.protocol;
|
|
31
|
-
|
|
32
|
-
if (!protocol) {
|
|
33
|
-
if (parsed.href[0] === ':') {
|
|
34
|
-
// ":anything" is invalid
|
|
35
|
-
// need this check as an artifact of parse(href)
|
|
36
|
-
throw new Error(formatMessage('Protocol must be ftp, http, https, mailto, skype, tel or may be omitted'));
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
if (/^\/\/$/.test(href)) {
|
|
40
|
-
// "//" by itself is not a URL yet
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
43
|
-
} else if (protocol) {
|
|
44
|
-
if (!allowed_protocols.includes(protocol)) {
|
|
45
|
-
throw new Error(formatMessage('{p} is not a valid protocol which must be ftp, http, https, mailto, skype, tel or may be omitted', {
|
|
46
|
-
p: protocol.replace(/:$/, '')
|
|
47
|
-
}));
|
|
48
|
-
} // ftp, http, https require ://anything
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
if (/(?:ftp|http|https):\/\/.+/.test(href)) {
|
|
52
|
-
return true;
|
|
53
|
-
} // allow mailto:address, skype:participant, tel:911 or
|
|
54
|
-
// mailto://address, skype://participant, tel://911,
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
if (/(?:mailto|skype|tel):(\/\/)?[^/].*/.test(href)) {
|
|
58
|
-
return true;
|
|
59
|
-
} // http:/xyzzy is invalid
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
if (/^(?:ftp|http|https):\/{0,1}[^/]/.test(href)) {
|
|
63
|
-
throw new Error(formatMessage('Invalid URL'));
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
return false;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
return true;
|
|
70
|
-
}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2020 - present Instructure, Inc.
|
|
3
|
-
*
|
|
4
|
-
* This file is part of Canvas.
|
|
5
|
-
*
|
|
6
|
-
* Canvas is free software: you can redistribute it and/or modify it under
|
|
7
|
-
* the terms of the GNU Affero General Public License as published by the Free
|
|
8
|
-
* Software Foundation, version 3 of the License.
|
|
9
|
-
*
|
|
10
|
-
* Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
11
|
-
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
12
|
-
* A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
13
|
-
* details.
|
|
14
|
-
*
|
|
15
|
-
* You should have received a copy of the GNU Affero General Public License along
|
|
16
|
-
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
-
*/
|
|
18
|
-
import React from 'react';
|
|
19
|
-
import ReactDOM from 'react-dom';
|
|
20
|
-
import Bridge from '../../../bridge';
|
|
21
|
-
export default function (ed, document) {
|
|
22
|
-
return import('./components/Embed').then(_ref => {
|
|
23
|
-
let {
|
|
24
|
-
Embed
|
|
25
|
-
} = _ref;
|
|
26
|
-
let container = document.querySelector('.canvas-rce-embed-container');
|
|
27
|
-
|
|
28
|
-
if (!container) {
|
|
29
|
-
container = document.createElement('div');
|
|
30
|
-
container.className = 'canvas-rce-embed-container';
|
|
31
|
-
document.body.appendChild(container);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
const handleDismiss = () => {
|
|
35
|
-
ReactDOM.unmountComponentAtNode(container);
|
|
36
|
-
ed.focus(false);
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
const handleEmbedCode = embedCode => {
|
|
40
|
-
Bridge.insertEmbedCode(embedCode);
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
ReactDOM.render( /*#__PURE__*/React.createElement(Embed, {
|
|
44
|
-
onSubmit: handleEmbedCode,
|
|
45
|
-
onDismiss: handleDismiss
|
|
46
|
-
}), container);
|
|
47
|
-
});
|
|
48
|
-
}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2020 - present Instructure, Inc.
|
|
3
|
-
*
|
|
4
|
-
* This file is part of Canvas.
|
|
5
|
-
*
|
|
6
|
-
* Canvas is free software: you can redistribute it and/or modify it under
|
|
7
|
-
* the terms of the GNU Affero General Public License as published by the Free
|
|
8
|
-
* Software Foundation, version 3 of the License.
|
|
9
|
-
*
|
|
10
|
-
* Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
11
|
-
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
12
|
-
* A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
13
|
-
* details.
|
|
14
|
-
*
|
|
15
|
-
* You should have received a copy of the GNU Affero General Public License along
|
|
16
|
-
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
-
*/
|
|
18
|
-
import React, { useState } from 'react';
|
|
19
|
-
import { Modal } from '@instructure/ui-modal';
|
|
20
|
-
import formatMessage from '../../../../format-message';
|
|
21
|
-
import { Button, CloseButton } from '@instructure/ui-buttons';
|
|
22
|
-
import { Heading } from '@instructure/ui-heading';
|
|
23
|
-
import { func } from 'prop-types';
|
|
24
|
-
import { TextArea } from '@instructure/ui-text-area';
|
|
25
|
-
import { instuiPopupMountNode } from '../../../../util/fullscreenHelpers';
|
|
26
|
-
export function Embed(_ref) {
|
|
27
|
-
let {
|
|
28
|
-
onSubmit,
|
|
29
|
-
onDismiss
|
|
30
|
-
} = _ref;
|
|
31
|
-
const [embedCode, setEmbedCode] = useState('');
|
|
32
|
-
return /*#__PURE__*/React.createElement(Modal, {
|
|
33
|
-
"data-mce-component": true,
|
|
34
|
-
label: formatMessage('Embed'),
|
|
35
|
-
mountNode: instuiPopupMountNode,
|
|
36
|
-
size: "medium",
|
|
37
|
-
onDismiss: onDismiss,
|
|
38
|
-
open: true,
|
|
39
|
-
shouldCloseOnDocumentClick: false
|
|
40
|
-
}, /*#__PURE__*/React.createElement(Modal.Header, null, /*#__PURE__*/React.createElement(CloseButton, {
|
|
41
|
-
onClick: onDismiss,
|
|
42
|
-
offset: "medium",
|
|
43
|
-
placement: "end",
|
|
44
|
-
screenReaderLabel: formatMessage('Close')
|
|
45
|
-
}), /*#__PURE__*/React.createElement(Heading, null, formatMessage('Embed'))), /*#__PURE__*/React.createElement(Modal.Body, null, /*#__PURE__*/React.createElement(TextArea, {
|
|
46
|
-
maxHeight: "10rem",
|
|
47
|
-
label: formatMessage('Embed Code'),
|
|
48
|
-
value: embedCode,
|
|
49
|
-
onChange: e => {
|
|
50
|
-
setEmbedCode(e.target.value);
|
|
51
|
-
}
|
|
52
|
-
})), /*#__PURE__*/React.createElement(Modal.Footer, null, /*#__PURE__*/React.createElement(Button, {
|
|
53
|
-
onClick: onDismiss
|
|
54
|
-
}, formatMessage('Close')), "\xA0", /*#__PURE__*/React.createElement(Button, {
|
|
55
|
-
onClick: e => {
|
|
56
|
-
e.preventDefault();
|
|
57
|
-
onSubmit(embedCode);
|
|
58
|
-
onDismiss();
|
|
59
|
-
},
|
|
60
|
-
color: "primary",
|
|
61
|
-
type: "submit",
|
|
62
|
-
disabled: !embedCode
|
|
63
|
-
}, formatMessage('Submit'))));
|
|
64
|
-
}
|
|
65
|
-
Embed.propTypes = {
|
|
66
|
-
onSubmit: func.isRequired,
|
|
67
|
-
onDismiss: func.isRequired
|
|
68
|
-
};
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2020 - 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 clickCallback from './clickCallback';
|
|
19
|
-
import formatMessage from '../../../format-message';
|
|
20
|
-
import tinymce from 'tinymce'; // Register plugin
|
|
21
|
-
|
|
22
|
-
tinymce.PluginManager.add('instructure_media_embed', function (ed) {
|
|
23
|
-
ed.addCommand('instructureMediaEmbed', () => clickCallback(ed, document)); // Register menu item
|
|
24
|
-
|
|
25
|
-
ed.ui.registry.addMenuItem('instructure_media_embed', {
|
|
26
|
-
text: formatMessage('Embed'),
|
|
27
|
-
icon: 'embed',
|
|
28
|
-
onAction: () => ed.execCommand('instructureMediaEmbed')
|
|
29
|
-
}); // Register toolbar button
|
|
30
|
-
|
|
31
|
-
ed.ui.registry.addButton('instructure_media_embed', {
|
|
32
|
-
tooltip: formatMessage('Embed'),
|
|
33
|
-
icon: 'embed',
|
|
34
|
-
onAction: () => ed.execCommand('instructureMediaEmbed')
|
|
35
|
-
});
|
|
36
|
-
});
|
|
@@ -1,117 +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
|
-
|
|
19
|
-
/** ********************************************************
|
|
20
|
-
* This file holds a mostly functional paste menu command
|
|
21
|
-
* We decided not to use it since menu-past and kb-paste
|
|
22
|
-
* would be subtly different. Keeping the file here
|
|
23
|
-
* because figuring this stuff out wasn't trivial and
|
|
24
|
-
* I didn't want to lose it.
|
|
25
|
-
********************************************************* */
|
|
26
|
-
import formatMessage from '../../../format-message';
|
|
27
|
-
import { showFlashAlert } from '../../../common/FlashAlert';
|
|
28
|
-
export function initPasteMenuCommand(ed, handlePasteOrDrop) {
|
|
29
|
-
// the paste menu command is problematic in that it requires
|
|
30
|
-
// we get the copied data using the clipboard api, which is
|
|
31
|
-
// more limited than what the browser can do natively via
|
|
32
|
-
// meta+v.
|
|
33
|
-
// For example, if the user copies a file from the Finder,
|
|
34
|
-
// pasting via the menu command just gets you the filename.
|
|
35
|
-
ed.addCommand('instructurePaste', () => {
|
|
36
|
-
handlePasteMenuCommand();
|
|
37
|
-
});
|
|
38
|
-
ed.ui.registry.addMenuItem('instructure_paste', {
|
|
39
|
-
text: formatMessage('Paste'),
|
|
40
|
-
icon: 'paste',
|
|
41
|
-
onAction: () => ed.execCommand('instructurePaste'),
|
|
42
|
-
|
|
43
|
-
onSetup(_api) {
|
|
44
|
-
// If I add the shortcut, then it overwrites the browsers
|
|
45
|
-
// built-in keyboard shortcut for paste. we don't want that
|
|
46
|
-
ed.addShortcut('meta+v', null, () => {
|
|
47
|
-
ed.execCommand('instructurePaste');
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
async function handlePasteMenuCommand() {
|
|
54
|
-
try {
|
|
55
|
-
const cbitems = await window.navigator.clipboard.read();
|
|
56
|
-
const cbitem = cbitems[0];
|
|
57
|
-
const imageType = cbitem.types.find(t => /^image\//.test(t));
|
|
58
|
-
|
|
59
|
-
if (imageType) {
|
|
60
|
-
const blob = await cbitem.getType(imageType);
|
|
61
|
-
const file = new File([blob], imageType.replace('/', '.'), {
|
|
62
|
-
type: imageType
|
|
63
|
-
});
|
|
64
|
-
handlePasteOrDrop({
|
|
65
|
-
clipboardData: {
|
|
66
|
-
files: [file],
|
|
67
|
-
types: ['Files']
|
|
68
|
-
},
|
|
69
|
-
preventDefault: () => {}
|
|
70
|
-
});
|
|
71
|
-
} else if (cbitem.types.includes('text/html')) {
|
|
72
|
-
const blob = await cbitem.getType('text/html');
|
|
73
|
-
const text = await blob.text();
|
|
74
|
-
handlePasteOrDrop({
|
|
75
|
-
clipboardData: {
|
|
76
|
-
files: [],
|
|
77
|
-
types: ['text/html'],
|
|
78
|
-
getData: () => text
|
|
79
|
-
},
|
|
80
|
-
preventDefault: () => {}
|
|
81
|
-
});
|
|
82
|
-
} else if (cbitem.types.includes('text/plain')) {
|
|
83
|
-
const blob = await cbitem.getType('text/plain');
|
|
84
|
-
const text = await blob.text();
|
|
85
|
-
handlePasteOrDrop({
|
|
86
|
-
clipboardData: {
|
|
87
|
-
files: [],
|
|
88
|
-
types: ['text/plain'],
|
|
89
|
-
getData: () => text
|
|
90
|
-
},
|
|
91
|
-
preventDefault: () => {}
|
|
92
|
-
});
|
|
93
|
-
} else {
|
|
94
|
-
const textType = cbitem.types.find(t => /^text\//.test(t));
|
|
95
|
-
|
|
96
|
-
if (textType) {
|
|
97
|
-
const blob = await cbitem.getType(textType);
|
|
98
|
-
const text = await blob.text();
|
|
99
|
-
handlePasteOrDrop({
|
|
100
|
-
clipboardData: {
|
|
101
|
-
files: [],
|
|
102
|
-
types: [textType],
|
|
103
|
-
getData: () => text
|
|
104
|
-
},
|
|
105
|
-
preventDefault: () => {}
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
} catch (ex) {
|
|
110
|
-
showFlashAlert({
|
|
111
|
-
message: 'whoops:',
|
|
112
|
-
err: ex,
|
|
113
|
-
type: 'error'
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|