@instructure/canvas-rce 5.6.0-beta.0 → 5.6.1
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/.mocharc.js +4 -2
- package/CHANGELOG.md +23 -1
- package/babel.config.cjs.js +24 -13
- package/babel.config.js +48 -29
- package/coverage/canvas-rce-jest.xml +3732 -1
- package/coverage/canvas-rce-junit.xml +389 -389
- package/es/canvasFileBrowser/FlashAlert.js +8 -5
- package/es/common/components/LoadMore.js +2 -1
- package/es/rce/KeyboardShortcutModal.js +10 -7
- package/es/rce/RCE.js +12 -6
- package/es/rce/RCEGlobals.js +62 -0
- package/es/rce/RCEWrapper.js +49 -19
- package/es/rce/RestoreAutoSaveModal.js +4 -3
- package/es/rce/contentInsertion.js +3 -1
- package/es/rce/initA11yChecker.js +0 -3
- package/es/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/es/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/es/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/es/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/es/rce/plugins/instructure_equation/plugin.js +44 -87
- package/es/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/es/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/es/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/{useArrowKeys.js → useKeyMouseEvents.js} +82 -27
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +53 -9
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +10 -2
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +67 -3
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/es/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/es/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/es/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/es/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/es/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/es/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/es/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/es/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/es/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/es/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/es/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/es/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/es/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/es/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/es/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/es/rce/plugins/instructure_image/Images/index.js +1 -1
- package/es/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/es/rce/plugins/instructure_links/components/Link.js +47 -54
- package/es/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/es/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/es/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/es/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/es/rce/plugins/instructure_links/plugin.js +18 -3
- package/es/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/es/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/es/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/es/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/es/rce/plugins/shared/ColorInput.js +4 -3
- package/es/rce/plugins/shared/ContentSelection.js +7 -1
- package/es/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/es/rce/plugins/shared/Filter.js +6 -5
- package/es/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/es/rce/plugins/shared/LinkDisplay.js +84 -0
- package/es/rce/plugins/shared/Upload/ComputerPanel.js +14 -12
- package/es/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/es/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/es/rce/plugins/shared/linkUtils.js +58 -0
- package/es/rce/plugins/shared/useDataUrl.js +14 -4
- package/es/rce/userOS.js +31 -0
- package/jest/jest-setup.js +1 -3
- package/jest.config.js +8 -4
- package/lib/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/common/components/LoadMore.js +2 -1
- package/lib/rce/KeyboardShortcutModal.js +10 -7
- package/lib/rce/RCE.js +12 -6
- package/lib/rce/RCEGlobals.js +62 -0
- package/lib/rce/RCEWrapper.js +49 -19
- package/lib/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/rce/contentInsertion.js +3 -1
- package/lib/rce/initA11yChecker.js +0 -3
- package/lib/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/rce/plugins/instructure_equation/plugin.js +44 -87
- package/lib/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/{translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js → rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js} +82 -27
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +53 -9
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +10 -2
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +67 -3
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/rce/plugins/shared/Filter.js +6 -5
- package/lib/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/rce/plugins/shared/LinkDisplay.js +84 -0
- package/lib/rce/plugins/shared/Upload/ComputerPanel.js +14 -12
- package/lib/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/rce/userOS.js +31 -0
- package/lib/translated/ar/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/ar/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/ar/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/ar/modules/rce/RCE.js +12 -6
- package/lib/translated/ar/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/ar/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/ar/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/ar/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/ar/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/ar/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/ar/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/ar/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/ar/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/ar/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/ar/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/ar/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/ar/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/ar/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/ar/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/ar/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/ar/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/ar/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/{rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js → translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js} +82 -27
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/ar/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/ar/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/ar/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/ar/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/ar/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/ar/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/ar/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/ar/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/ar/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/ar/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/ar/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/ar/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/ar/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/ar/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/ar/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/ar/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/ar/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/ar/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/ar/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/ar/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/ar/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/ar/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/ar/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/ar/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/ar/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/ar/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/ar/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/ar/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/ar/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/ar/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/ar/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/ar/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/ar/modules/rce/userOS.js +31 -0
- package/lib/translated/ca/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/ca/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/ca/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/ca/modules/rce/RCE.js +12 -6
- package/lib/translated/ca/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/ca/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/ca/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/ca/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/ca/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/ca/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/ca/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/ca/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/ca/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/ca/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/ca/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/ca/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/ca/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/ca/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/ca/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/ca/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/ca/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/ca/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/{useArrowKeys.js → useKeyMouseEvents.js} +82 -27
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/ca/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/ca/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/ca/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/ca/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/ca/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/ca/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/ca/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/ca/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/ca/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/ca/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/ca/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/ca/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/ca/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/ca/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/ca/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/ca/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/ca/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/ca/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/ca/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/ca/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/ca/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/ca/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/ca/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/ca/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/ca/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/ca/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/ca/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/ca/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/ca/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/ca/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/ca/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/ca/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/ca/modules/rce/userOS.js +31 -0
- package/lib/translated/cy/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/cy/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/cy/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/cy/modules/rce/RCE.js +12 -6
- package/lib/translated/cy/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/cy/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/cy/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/cy/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/cy/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/cy/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/cy/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/cy/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/cy/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/cy/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/cy/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/cy/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/cy/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/cy/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/cy/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/cy/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/cy/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/cy/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/cy/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/cy/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/cy/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/cy/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/cy/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/cy/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/cy/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/cy/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/cy/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/cy/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/cy/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/cy/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/cy/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/cy/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/cy/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/cy/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/cy/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/cy/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/cy/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/cy/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/cy/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/cy/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/cy/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/cy/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/cy/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/cy/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/cy/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/cy/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/cy/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/cy/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/cy/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/cy/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/cy/modules/rce/userOS.js +31 -0
- package/lib/translated/da/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/da/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/da/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/da/modules/rce/RCE.js +12 -6
- package/lib/translated/da/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/da/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/da/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/da/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/da/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/da/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/da/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/da/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/da/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/da/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/da/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/da/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/da/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/da/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/da/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/da/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/da/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/da/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/da/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/da/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/da/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/da/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/da/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/da/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/da/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/da/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/da/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/da/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/da/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/da/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/da/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/da/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/da/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/da/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/da/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/da/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/da/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/da/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/da/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/da/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/da/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/da/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/da/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/da/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/da/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/da/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/da/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/da/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/da/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/da/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/da/modules/rce/userOS.js +31 -0
- package/lib/translated/da-x-k12/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/da-x-k12/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/da-x-k12/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/da-x-k12/modules/rce/RCE.js +12 -6
- package/lib/translated/da-x-k12/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/da-x-k12/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/da-x-k12/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/da-x-k12/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/da-x-k12/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/da-x-k12/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/da-x-k12/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/da-x-k12/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/da-x-k12/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/da-x-k12/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/da-x-k12/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/da-x-k12/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/da-x-k12/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/da-x-k12/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/da-x-k12/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/da-x-k12/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/da-x-k12/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/da-x-k12/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/da-x-k12/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/da-x-k12/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/da-x-k12/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/da-x-k12/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/da-x-k12/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/da-x-k12/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/da-x-k12/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/da-x-k12/modules/rce/userOS.js +31 -0
- package/lib/translated/de/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/de/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/de/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/de/modules/rce/RCE.js +12 -6
- package/lib/translated/de/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/de/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/de/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/de/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/de/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/de/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/de/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/de/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/de/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/de/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/de/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/de/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/de/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/de/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/de/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/de/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/de/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/de/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/de/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/de/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/de/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/de/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/de/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/de/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/de/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/de/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/de/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/de/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/de/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/de/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/de/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/de/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/de/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/de/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/de/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/de/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/de/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/de/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/de/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/de/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/de/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/de/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/de/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/de/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/de/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/de/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/de/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/de/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/de/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/de/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/de/modules/rce/userOS.js +31 -0
- package/lib/translated/el/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/el/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/el/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/el/modules/rce/RCE.js +12 -6
- package/lib/translated/el/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/el/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/el/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/el/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/el/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/el/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/el/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/el/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/el/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/el/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/el/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/el/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/el/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/el/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/el/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/el/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/el/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/el/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/el/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/el/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/el/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/el/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/el/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/el/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/el/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/el/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/el/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/el/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/el/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/el/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/el/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/el/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/el/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/el/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/el/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/el/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/el/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/el/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/el/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/el/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/el/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/el/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/el/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/el/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/el/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/el/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/el/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/el/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/el/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/el/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/el/modules/rce/userOS.js +31 -0
- package/lib/translated/en/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/en/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/en/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/en/modules/rce/RCE.js +12 -6
- package/lib/translated/en/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/en/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/en/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/en/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/en/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/en/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/en/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/en/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/en/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/en/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/en/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/en/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/en/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/en/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/en/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/en/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/en/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/en/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +62 -25
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/en/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/en/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/en/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/en/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/en/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/en/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/en/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/en/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/en/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/en/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/en/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/en/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/en/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/en/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/en/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/en/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/en/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/en/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/en/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/en/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/en/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/en/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/en/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/en/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/en/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/en/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/en/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/en/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/en/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/en/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/en/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/en/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/en/modules/rce/userOS.js +31 -0
- package/lib/translated/en-AU-x-unimelb/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/en-AU-x-unimelb/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/en-AU-x-unimelb/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/en-AU-x-unimelb/modules/rce/RCE.js +12 -6
- package/lib/translated/en-AU-x-unimelb/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/en-AU-x-unimelb/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/en-AU-x-unimelb/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/en-AU-x-unimelb/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/en-AU-x-unimelb/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/en-AU-x-unimelb/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/en-AU-x-unimelb/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/en-AU-x-unimelb/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +62 -25
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/en-AU-x-unimelb/modules/rce/userOS.js +31 -0
- package/lib/translated/en-GB-x-ukhe/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/en-GB-x-ukhe/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/en-GB-x-ukhe/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/en-GB-x-ukhe/modules/rce/RCE.js +12 -6
- package/lib/translated/en-GB-x-ukhe/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/en-GB-x-ukhe/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/en-GB-x-ukhe/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/en-GB-x-ukhe/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/en-GB-x-ukhe/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/en-GB-x-ukhe/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/en-GB-x-ukhe/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/en-GB-x-ukhe/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +62 -25
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/en-GB-x-ukhe/modules/rce/userOS.js +31 -0
- package/lib/translated/en_AU/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/en_AU/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/en_AU/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/en_AU/modules/rce/RCE.js +12 -6
- package/lib/translated/en_AU/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/en_AU/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/en_AU/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/en_AU/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/en_AU/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/en_AU/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/en_AU/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/en_AU/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/en_AU/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/en_AU/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/en_AU/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/en_AU/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/en_AU/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/en_AU/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/en_AU/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/en_AU/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/en_AU/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/en_AU/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +62 -25
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/en_AU/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/en_AU/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/en_AU/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/en_AU/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/en_AU/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/en_AU/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/en_AU/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/en_AU/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/en_AU/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/en_AU/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/en_AU/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/en_AU/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/en_AU/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/en_AU/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/en_AU/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/en_AU/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/en_AU/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/en_AU/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/en_AU/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/en_AU/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/en_AU/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/en_AU/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/en_AU/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/en_AU/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/en_AU/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/en_AU/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/en_AU/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/en_AU/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/en_AU/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/en_AU/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/en_AU/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/en_AU/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/en_AU/modules/rce/userOS.js +31 -0
- package/lib/translated/en_CA/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/en_CA/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/en_CA/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/en_CA/modules/rce/RCE.js +12 -6
- package/lib/translated/en_CA/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/en_CA/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/en_CA/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/en_CA/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/en_CA/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/en_CA/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/en_CA/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/en_CA/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/en_CA/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/en_CA/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/en_CA/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/en_CA/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/en_CA/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/en_CA/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/en_CA/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/en_CA/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/en_CA/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/en_CA/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +62 -25
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/en_CA/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/en_CA/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/en_CA/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/en_CA/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/en_CA/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/en_CA/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/en_CA/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/en_CA/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/en_CA/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/en_CA/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/en_CA/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/en_CA/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/en_CA/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/en_CA/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/en_CA/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/en_CA/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/en_CA/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/en_CA/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/en_CA/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/en_CA/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/en_CA/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/en_CA/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/en_CA/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/en_CA/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/en_CA/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/en_CA/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/en_CA/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/en_CA/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/en_CA/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/en_CA/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/en_CA/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/en_CA/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/en_CA/modules/rce/userOS.js +31 -0
- package/lib/translated/en_CY/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/en_CY/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/en_CY/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/en_CY/modules/rce/RCE.js +12 -6
- package/lib/translated/en_CY/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/en_CY/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/en_CY/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/en_CY/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/en_CY/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/en_CY/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/en_CY/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/en_CY/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/en_CY/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/en_CY/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/en_CY/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/en_CY/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/en_CY/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/en_CY/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/en_CY/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/en_CY/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/en_CY/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/en_CY/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +62 -25
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/en_CY/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/en_CY/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/en_CY/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/en_CY/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/en_CY/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/en_CY/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/en_CY/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/en_CY/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/en_CY/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/en_CY/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/en_CY/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/en_CY/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/en_CY/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/en_CY/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/en_CY/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/en_CY/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/en_CY/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/en_CY/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/en_CY/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/en_CY/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/en_CY/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/en_CY/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/en_CY/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/en_CY/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/en_CY/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/en_CY/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/en_CY/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/en_CY/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/en_CY/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/en_CY/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/en_CY/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/en_CY/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/en_CY/modules/rce/userOS.js +31 -0
- package/lib/translated/en_GB/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/en_GB/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/en_GB/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/en_GB/modules/rce/RCE.js +12 -6
- package/lib/translated/en_GB/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/en_GB/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/en_GB/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/en_GB/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/en_GB/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/en_GB/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/en_GB/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/en_GB/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/en_GB/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/en_GB/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/en_GB/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/en_GB/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/en_GB/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/en_GB/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/en_GB/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/en_GB/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/en_GB/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/en_GB/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +62 -25
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/en_GB/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/en_GB/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/en_GB/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/en_GB/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/en_GB/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/en_GB/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/en_GB/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/en_GB/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/en_GB/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/en_GB/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/en_GB/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/en_GB/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/en_GB/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/en_GB/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/en_GB/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/en_GB/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/en_GB/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/en_GB/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/en_GB/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/en_GB/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/en_GB/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/en_GB/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/en_GB/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/en_GB/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/en_GB/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/en_GB/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/en_GB/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/en_GB/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/en_GB/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/en_GB/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/en_GB/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/en_GB/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/en_GB/modules/rce/userOS.js +31 -0
- package/lib/translated/es/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/es/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/es/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/es/modules/rce/RCE.js +12 -6
- package/lib/translated/es/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/es/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/es/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/es/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/es/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/es/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/es/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/es/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/es/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/es/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/es/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/es/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/es/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/es/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/es/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/es/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/es/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/es/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/es/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/es/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/es/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/es/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/es/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/es/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/es/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/es/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/es/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/es/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/es/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/es/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/es/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/es/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/es/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/es/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/es/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/es/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/es/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/es/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/es/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/es/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/es/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/es/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/es/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/es/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/es/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/es/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/es/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/es/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/es/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/es/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/es/modules/rce/userOS.js +31 -0
- package/lib/translated/es_ES/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/es_ES/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/es_ES/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/es_ES/modules/rce/RCE.js +12 -6
- package/lib/translated/es_ES/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/es_ES/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/es_ES/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/es_ES/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/es_ES/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/es_ES/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/es_ES/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/es_ES/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/es_ES/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/es_ES/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/es_ES/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/es_ES/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/es_ES/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/es_ES/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/es_ES/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/es_ES/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/es_ES/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/es_ES/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/es_ES/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/es_ES/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/es_ES/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/es_ES/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/es_ES/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/es_ES/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/es_ES/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/es_ES/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/es_ES/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/es_ES/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/es_ES/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/es_ES/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/es_ES/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/es_ES/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/es_ES/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/es_ES/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/es_ES/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/es_ES/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/es_ES/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/es_ES/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/es_ES/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/es_ES/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/es_ES/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/es_ES/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/es_ES/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/es_ES/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/es_ES/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/es_ES/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/es_ES/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/es_ES/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/es_ES/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/es_ES/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/es_ES/modules/rce/userOS.js +31 -0
- package/lib/translated/fa_IR/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/fa_IR/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/fa_IR/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/fa_IR/modules/rce/RCE.js +12 -6
- package/lib/translated/fa_IR/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/fa_IR/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/fa_IR/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/fa_IR/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/fa_IR/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/fa_IR/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/fa_IR/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/fa_IR/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/fa_IR/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/fa_IR/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/fa_IR/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/fa_IR/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/fa_IR/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/fa_IR/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/fa_IR/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/fa_IR/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/fa_IR/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/fa_IR/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/fa_IR/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/fa_IR/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/fa_IR/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/fa_IR/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/fa_IR/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/fa_IR/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/fa_IR/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/fa_IR/modules/rce/userOS.js +31 -0
- package/lib/translated/fi/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/fi/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/fi/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/fi/modules/rce/RCE.js +12 -6
- package/lib/translated/fi/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/fi/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/fi/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/fi/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/fi/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/fi/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/fi/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/fi/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/fi/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/fi/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/fi/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/fi/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/fi/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/fi/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/fi/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/fi/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/fi/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/fi/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/fi/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/fi/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/fi/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/fi/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/fi/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/fi/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/fi/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/fi/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/fi/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/fi/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/fi/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/fi/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/fi/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/fi/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/fi/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/fi/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/fi/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/fi/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/fi/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/fi/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/fi/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/fi/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/fi/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/fi/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/fi/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/fi/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/fi/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/fi/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/fi/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/fi/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/fi/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/fi/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/fi/modules/rce/userOS.js +31 -0
- package/lib/translated/fr/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/fr/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/fr/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/fr/modules/rce/RCE.js +12 -6
- package/lib/translated/fr/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/fr/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/fr/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/fr/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/fr/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/fr/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/fr/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/fr/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/fr/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/fr/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/fr/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/fr/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/fr/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/fr/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/fr/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/fr/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/fr/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/fr/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/fr/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/fr/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/fr/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/fr/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/fr/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/fr/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/fr/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/fr/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/fr/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/fr/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/fr/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/fr/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/fr/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/fr/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/fr/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/fr/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/fr/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/fr/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/fr/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/fr/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/fr/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/fr/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/fr/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/fr/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/fr/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/fr/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/fr/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/fr/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/fr/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/fr/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/fr/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/fr/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/fr/modules/rce/userOS.js +31 -0
- package/lib/translated/fr_CA/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/fr_CA/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/fr_CA/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/fr_CA/modules/rce/RCE.js +12 -6
- package/lib/translated/fr_CA/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/fr_CA/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/fr_CA/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/fr_CA/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/fr_CA/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/fr_CA/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/fr_CA/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/fr_CA/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/fr_CA/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/fr_CA/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/fr_CA/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/fr_CA/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/fr_CA/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/fr_CA/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/fr_CA/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/fr_CA/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/fr_CA/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/fr_CA/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/fr_CA/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/fr_CA/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/fr_CA/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/fr_CA/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/fr_CA/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/fr_CA/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/fr_CA/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/fr_CA/modules/rce/userOS.js +31 -0
- package/lib/translated/he/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/he/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/he/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/he/modules/rce/RCE.js +12 -6
- package/lib/translated/he/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/he/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/he/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/he/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/he/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/he/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/he/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/he/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/he/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/he/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/he/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/he/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/he/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/he/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/he/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/he/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/he/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/he/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/he/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/he/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/he/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/he/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/he/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/he/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/he/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/he/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/he/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/he/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/he/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/he/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/he/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/he/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/he/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/he/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/he/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/he/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/he/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/he/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/he/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/he/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/he/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/he/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/he/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/he/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/he/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/he/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/he/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/he/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/he/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/he/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/he/modules/rce/userOS.js +31 -0
- package/lib/translated/ht/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/ht/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/ht/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/ht/modules/rce/RCE.js +12 -6
- package/lib/translated/ht/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/ht/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/ht/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/ht/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/ht/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/ht/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/ht/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/ht/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/ht/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/ht/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/ht/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/ht/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/ht/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/ht/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/ht/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/ht/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/ht/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/ht/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/ht/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/ht/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/ht/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/ht/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/ht/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/ht/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/ht/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/ht/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/ht/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/ht/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/ht/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/ht/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/ht/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/ht/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/ht/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/ht/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/ht/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/ht/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/ht/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/ht/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/ht/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/ht/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/ht/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/ht/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/ht/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/ht/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/ht/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/ht/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/ht/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/ht/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/ht/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/ht/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/ht/modules/rce/userOS.js +31 -0
- package/lib/translated/hu/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/hu/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/hu/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/hu/modules/rce/RCE.js +12 -6
- package/lib/translated/hu/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/hu/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/hu/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/hu/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/hu/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/hu/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/hu/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/hu/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/hu/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/hu/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/hu/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/hu/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/hu/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/hu/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/hu/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/hu/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/hu/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/hu/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/hu/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/hu/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/hu/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/hu/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/hu/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/hu/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/hu/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/hu/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/hu/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/hu/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/hu/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/hu/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/hu/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/hu/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/hu/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/hu/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/hu/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/hu/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/hu/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/hu/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/hu/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/hu/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/hu/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/hu/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/hu/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/hu/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/hu/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/hu/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/hu/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/hu/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/hu/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/hu/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/hu/modules/rce/userOS.js +31 -0
- package/lib/translated/hy/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/hy/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/hy/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/hy/modules/rce/RCE.js +12 -6
- package/lib/translated/hy/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/hy/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/hy/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/hy/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/hy/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/hy/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/hy/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/hy/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/hy/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/hy/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/hy/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/hy/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/hy/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/hy/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/hy/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/hy/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/hy/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/hy/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/hy/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/hy/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/hy/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/hy/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/hy/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/hy/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/hy/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/hy/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/hy/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/hy/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/hy/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/hy/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/hy/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/hy/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/hy/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/hy/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/hy/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/hy/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/hy/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/hy/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/hy/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/hy/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/hy/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/hy/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/hy/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/hy/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/hy/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/hy/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/hy/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/hy/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/hy/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/hy/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/hy/modules/rce/userOS.js +31 -0
- package/lib/translated/is/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/is/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/is/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/is/modules/rce/RCE.js +12 -6
- package/lib/translated/is/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/is/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/is/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/is/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/is/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/is/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/is/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/is/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/is/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/is/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/is/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/is/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/is/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/is/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/is/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/is/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/is/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/is/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/is/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/is/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/is/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/is/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/is/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/is/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/is/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/is/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/is/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/is/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/is/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/is/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/is/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/is/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/is/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/is/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/is/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/is/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/is/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/is/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/is/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/is/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/is/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/is/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/is/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/is/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/is/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/is/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/is/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/is/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/is/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/is/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/is/modules/rce/userOS.js +31 -0
- package/lib/translated/it/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/it/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/it/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/it/modules/rce/RCE.js +12 -6
- package/lib/translated/it/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/it/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/it/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/it/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/it/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/it/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/it/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/it/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/it/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/it/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/it/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/it/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/it/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/it/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/it/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/it/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/it/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/it/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/it/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/it/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/it/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/it/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/it/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/it/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/it/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/it/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/it/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/it/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/it/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/it/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/it/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/it/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/it/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/it/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/it/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/it/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/it/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/it/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/it/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/it/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/it/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/it/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/it/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/it/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/it/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/it/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/it/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/it/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/it/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/it/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/it/modules/rce/userOS.js +31 -0
- package/lib/translated/ja/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/ja/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/ja/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/ja/modules/rce/RCE.js +12 -6
- package/lib/translated/ja/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/ja/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/ja/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/ja/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/ja/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/ja/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/ja/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/ja/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/ja/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/ja/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/ja/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/ja/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/ja/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/ja/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/ja/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/ja/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/ja/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/ja/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/ja/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/ja/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/ja/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/ja/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/ja/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/ja/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/ja/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/ja/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/ja/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/ja/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/ja/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/ja/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/ja/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/ja/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/ja/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/ja/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/ja/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/ja/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/ja/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/ja/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/ja/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/ja/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/ja/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/ja/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/ja/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/ja/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/ja/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/ja/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/ja/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/ja/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/ja/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/ja/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/ja/modules/rce/userOS.js +31 -0
- package/lib/translated/ko/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/ko/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/ko/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/ko/modules/rce/RCE.js +12 -6
- package/lib/translated/ko/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/ko/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/ko/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/ko/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/ko/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/ko/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/ko/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/ko/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/ko/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/ko/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/ko/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/ko/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/ko/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/ko/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/ko/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/ko/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/ko/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/ko/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/ko/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/ko/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/ko/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/ko/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/ko/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/ko/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/ko/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/ko/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/ko/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/ko/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/ko/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/ko/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/ko/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/ko/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/ko/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/ko/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/ko/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/ko/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/ko/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/ko/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/ko/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/ko/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/ko/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/ko/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/ko/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/ko/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/ko/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/ko/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/ko/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/ko/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/ko/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/ko/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/ko/modules/rce/userOS.js +31 -0
- package/lib/translated/mi/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/mi/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/mi/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/mi/modules/rce/RCE.js +12 -6
- package/lib/translated/mi/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/mi/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/mi/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/mi/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/mi/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/mi/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/mi/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/mi/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/mi/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/mi/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/mi/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/mi/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/mi/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/mi/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/mi/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/mi/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/mi/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/mi/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/mi/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/mi/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/mi/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/mi/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/mi/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/mi/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/mi/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/mi/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/mi/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/mi/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/mi/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/mi/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/mi/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/mi/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/mi/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/mi/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/mi/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/mi/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/mi/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/mi/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/mi/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/mi/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/mi/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/mi/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/mi/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/mi/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/mi/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/mi/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/mi/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/mi/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/mi/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/mi/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/mi/modules/rce/userOS.js +31 -0
- package/lib/translated/nb/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/nb/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/nb/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/nb/modules/rce/RCE.js +12 -6
- package/lib/translated/nb/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/nb/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/nb/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/nb/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/nb/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/nb/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/nb/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/nb/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/nb/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/nb/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/nb/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/nb/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/nb/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/nb/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/nb/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/nb/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/nb/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/nb/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/nb/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/nb/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/nb/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/nb/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/nb/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/nb/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/nb/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/nb/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/nb/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/nb/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/nb/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/nb/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/nb/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/nb/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/nb/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/nb/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/nb/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/nb/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/nb/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/nb/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/nb/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/nb/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/nb/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/nb/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/nb/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/nb/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/nb/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/nb/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/nb/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/nb/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/nb/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/nb/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/nb/modules/rce/userOS.js +31 -0
- package/lib/translated/nb-x-k12/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/nb-x-k12/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/nb-x-k12/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/nb-x-k12/modules/rce/RCE.js +12 -6
- package/lib/translated/nb-x-k12/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/nb-x-k12/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/nb-x-k12/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/nb-x-k12/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/nb-x-k12/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/nb-x-k12/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/nb-x-k12/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/nb-x-k12/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/nb-x-k12/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/nb-x-k12/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/nb-x-k12/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/nb-x-k12/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/nb-x-k12/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/nb-x-k12/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/nb-x-k12/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/nb-x-k12/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/nb-x-k12/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/nb-x-k12/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/nb-x-k12/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/nb-x-k12/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/nb-x-k12/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/nb-x-k12/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/nb-x-k12/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/nb-x-k12/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/nb-x-k12/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/nb-x-k12/modules/rce/userOS.js +31 -0
- package/lib/translated/nl/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/nl/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/nl/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/nl/modules/rce/RCE.js +12 -6
- package/lib/translated/nl/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/nl/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/nl/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/nl/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/nl/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/nl/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/nl/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/nl/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/nl/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/nl/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/nl/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/nl/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/nl/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/nl/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/nl/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/nl/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/nl/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/nl/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/nl/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/nl/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/nl/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/nl/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/nl/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/nl/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/nl/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/nl/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/nl/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/nl/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/nl/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/nl/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/nl/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/nl/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/nl/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/nl/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/nl/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/nl/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/nl/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/nl/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/nl/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/nl/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/nl/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/nl/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/nl/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/nl/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/nl/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/nl/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/nl/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/nl/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/nl/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/nl/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/nl/modules/rce/userOS.js +31 -0
- package/lib/translated/nn/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/nn/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/nn/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/nn/modules/rce/RCE.js +12 -6
- package/lib/translated/nn/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/nn/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/nn/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/nn/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/nn/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/nn/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/nn/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/nn/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/nn/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/nn/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/nn/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/nn/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/nn/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/nn/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/nn/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/nn/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/nn/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/nn/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/nn/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/nn/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/nn/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/nn/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/nn/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/nn/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/nn/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/nn/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/nn/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/nn/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/nn/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/nn/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/nn/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/nn/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/nn/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/nn/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/nn/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/nn/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/nn/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/nn/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/nn/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/nn/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/nn/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/nn/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/nn/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/nn/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/nn/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/nn/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/nn/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/nn/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/nn/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/nn/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/nn/modules/rce/userOS.js +31 -0
- package/lib/translated/pl/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/pl/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/pl/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/pl/modules/rce/RCE.js +12 -6
- package/lib/translated/pl/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/pl/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/pl/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/pl/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/pl/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/pl/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/pl/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/pl/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/pl/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/pl/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/pl/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/pl/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/pl/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/pl/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/pl/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/pl/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/pl/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/pl/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/pl/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/pl/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/pl/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/pl/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/pl/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/pl/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/pl/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/pl/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/pl/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/pl/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/pl/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/pl/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/pl/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/pl/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/pl/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/pl/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/pl/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/pl/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/pl/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/pl/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/pl/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/pl/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/pl/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/pl/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/pl/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/pl/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/pl/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/pl/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/pl/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/pl/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/pl/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/pl/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/pl/modules/rce/userOS.js +31 -0
- package/lib/translated/pt/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/pt/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/pt/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/pt/modules/rce/RCE.js +12 -6
- package/lib/translated/pt/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/pt/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/pt/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/pt/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/pt/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/pt/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/pt/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/pt/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/pt/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/pt/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/pt/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/pt/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/pt/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/pt/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/pt/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/pt/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/pt/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/pt/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/pt/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/pt/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/pt/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/pt/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/pt/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/pt/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/pt/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/pt/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/pt/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/pt/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/pt/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/pt/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/pt/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/pt/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/pt/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/pt/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/pt/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/pt/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/pt/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/pt/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/pt/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/pt/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/pt/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/pt/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/pt/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/pt/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/pt/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/pt/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/pt/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/pt/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/pt/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/pt/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/pt/modules/rce/userOS.js +31 -0
- package/lib/translated/pt_BR/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/pt_BR/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/pt_BR/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/pt_BR/modules/rce/RCE.js +12 -6
- package/lib/translated/pt_BR/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/pt_BR/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/pt_BR/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/pt_BR/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/pt_BR/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/pt_BR/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/pt_BR/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/pt_BR/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/pt_BR/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/pt_BR/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/pt_BR/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/pt_BR/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/pt_BR/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/pt_BR/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/pt_BR/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/pt_BR/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/pt_BR/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/pt_BR/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/pt_BR/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/pt_BR/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/pt_BR/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/pt_BR/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/pt_BR/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/pt_BR/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/pt_BR/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/pt_BR/modules/rce/userOS.js +31 -0
- package/lib/translated/ru/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/ru/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/ru/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/ru/modules/rce/RCE.js +12 -6
- package/lib/translated/ru/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/ru/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/ru/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/ru/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/ru/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/ru/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/ru/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/ru/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/ru/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/ru/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/ru/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/ru/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/ru/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/ru/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/ru/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/ru/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/ru/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/ru/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/ru/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/ru/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/ru/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/ru/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/ru/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/ru/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/ru/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/ru/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/ru/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/ru/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/ru/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/ru/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/ru/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/ru/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/ru/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/ru/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/ru/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/ru/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/ru/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/ru/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/ru/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/ru/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/ru/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/ru/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/ru/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/ru/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/ru/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/ru/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/ru/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/ru/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/ru/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/ru/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/ru/modules/rce/userOS.js +31 -0
- package/lib/translated/se/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/se/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/se/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/se/modules/rce/RCE.js +12 -6
- package/lib/translated/se/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/se/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/se/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/se/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/se/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/se/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/se/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/se/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/se/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/se/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/se/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/se/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/se/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/se/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/se/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/se/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/se/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/se/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +62 -25
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/se/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/se/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/se/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/se/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/se/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/se/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/se/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/se/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/se/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/se/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/se/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/se/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/se/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/se/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/se/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/se/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/se/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/se/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/se/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/se/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/se/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/se/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/se/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/se/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/se/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/se/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/se/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/se/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/se/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/se/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/se/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/se/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/se/modules/rce/userOS.js +31 -0
- package/lib/translated/sl/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/sl/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/sl/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/sl/modules/rce/RCE.js +12 -6
- package/lib/translated/sl/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/sl/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/sl/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/sl/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/sl/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/sl/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/sl/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/sl/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/sl/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/sl/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/sl/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/sl/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/sl/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/sl/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/sl/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/sl/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/sl/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/sl/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/sl/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/sl/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/sl/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/sl/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/sl/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/sl/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/sl/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/sl/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/sl/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/sl/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/sl/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/sl/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/sl/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/sl/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/sl/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/sl/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/sl/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/sl/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/sl/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/sl/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/sl/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/sl/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/sl/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/sl/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/sl/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/sl/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/sl/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/sl/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/sl/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/sl/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/sl/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/sl/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/sl/modules/rce/userOS.js +31 -0
- package/lib/translated/sv/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/sv/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/sv/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/sv/modules/rce/RCE.js +12 -6
- package/lib/translated/sv/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/sv/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/sv/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/sv/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/sv/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/sv/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/sv/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/sv/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/sv/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/sv/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/sv/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/sv/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/sv/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/sv/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/sv/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/sv/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/sv/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/sv/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/sv/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/sv/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/sv/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/sv/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/sv/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/sv/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/sv/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/sv/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/sv/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/sv/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/sv/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/sv/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/sv/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/sv/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/sv/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/sv/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/sv/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/sv/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/sv/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/sv/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/sv/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/sv/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/sv/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/sv/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/sv/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/sv/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/sv/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/sv/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/sv/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/sv/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/sv/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/sv/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/sv/modules/rce/userOS.js +31 -0
- package/lib/translated/sv-x-k12/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/sv-x-k12/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/sv-x-k12/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/sv-x-k12/modules/rce/RCE.js +12 -6
- package/lib/translated/sv-x-k12/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/sv-x-k12/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/sv-x-k12/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/sv-x-k12/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/sv-x-k12/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/sv-x-k12/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/sv-x-k12/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/sv-x-k12/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/sv-x-k12/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/sv-x-k12/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/sv-x-k12/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/sv-x-k12/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/sv-x-k12/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/sv-x-k12/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/sv-x-k12/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/sv-x-k12/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/sv-x-k12/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/sv-x-k12/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/sv-x-k12/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/sv-x-k12/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/sv-x-k12/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/sv-x-k12/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/sv-x-k12/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/sv-x-k12/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/sv-x-k12/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/sv-x-k12/modules/rce/userOS.js +31 -0
- package/lib/translated/th/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/th/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/th/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/th/modules/rce/RCE.js +12 -6
- package/lib/translated/th/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/th/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/th/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/th/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/th/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/th/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/th/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/th/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/th/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/th/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/th/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/th/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/th/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/th/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/th/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/th/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/th/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/th/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/th/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/th/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/th/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/th/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/th/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/th/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/th/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/th/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/th/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/th/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/th/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/th/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/th/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/th/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/th/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/th/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/th/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/th/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/th/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/th/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/th/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/th/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/th/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/th/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/th/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/th/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/th/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/th/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/th/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/th/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/th/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/th/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/th/modules/rce/userOS.js +31 -0
- package/lib/translated/tr/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/tr/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/tr/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/tr/modules/rce/RCE.js +12 -6
- package/lib/translated/tr/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/tr/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/tr/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/tr/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/tr/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/tr/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/tr/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/tr/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/tr/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/tr/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/tr/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/tr/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/tr/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/tr/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/tr/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/tr/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/tr/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/tr/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/tr/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/tr/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/tr/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/tr/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/tr/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/tr/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/tr/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/tr/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/tr/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/tr/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/tr/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/tr/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/tr/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/tr/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/tr/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/tr/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/tr/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/tr/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/tr/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/tr/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/tr/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/tr/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/tr/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/tr/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/tr/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/tr/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/tr/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/tr/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/tr/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/tr/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/tr/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/tr/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/tr/modules/rce/userOS.js +31 -0
- package/lib/translated/uk_UA/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/uk_UA/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/uk_UA/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/uk_UA/modules/rce/RCE.js +12 -6
- package/lib/translated/uk_UA/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/uk_UA/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/uk_UA/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/uk_UA/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/uk_UA/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/uk_UA/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/uk_UA/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/uk_UA/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/uk_UA/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/uk_UA/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/uk_UA/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/uk_UA/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/uk_UA/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/uk_UA/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/uk_UA/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/uk_UA/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/uk_UA/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/uk_UA/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/uk_UA/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/uk_UA/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/uk_UA/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/uk_UA/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/uk_UA/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/uk_UA/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/uk_UA/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/uk_UA/modules/rce/userOS.js +31 -0
- package/lib/translated/vi/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/vi/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/vi/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/vi/modules/rce/RCE.js +12 -6
- package/lib/translated/vi/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/vi/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/vi/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/vi/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/vi/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/vi/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/vi/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/vi/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/vi/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/vi/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/vi/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/vi/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/vi/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/vi/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/vi/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/vi/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/vi/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/vi/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/vi/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/vi/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/vi/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/vi/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/vi/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/vi/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/vi/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/vi/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/vi/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/vi/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/vi/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/vi/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/vi/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/vi/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/vi/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/vi/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/vi/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/vi/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/vi/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/vi/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/vi/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/vi/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/vi/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/vi/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/vi/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/vi/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/vi/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/vi/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/vi/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/vi/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/vi/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/vi/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/vi/modules/rce/userOS.js +31 -0
- package/lib/translated/zh/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/zh/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/zh/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/zh/modules/rce/RCE.js +12 -6
- package/lib/translated/zh/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/zh/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/zh/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/zh/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/zh/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/zh/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/zh/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/zh/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/zh/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/zh/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/zh/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/zh/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/zh/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/zh/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/zh/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/zh/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/zh/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/zh/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/zh/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/zh/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/zh/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/zh/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/zh/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/zh/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/zh/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/zh/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/zh/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/zh/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/zh/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/zh/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/zh/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/zh/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/zh/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/zh/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/zh/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/zh/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/zh/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/zh/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/zh/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/zh/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/zh/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/zh/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/zh/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/zh/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/zh/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/zh/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/zh/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/zh/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/zh/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/zh/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/zh/modules/rce/userOS.js +31 -0
- package/lib/translated/zh-Hans/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/zh-Hans/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/zh-Hans/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/zh-Hans/modules/rce/RCE.js +12 -6
- package/lib/translated/zh-Hans/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/zh-Hans/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/zh-Hans/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/zh-Hans/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/zh-Hans/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/zh-Hans/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/zh-Hans/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/zh-Hans/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/zh-Hans/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/zh-Hans/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/zh-Hans/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/zh-Hans/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/zh-Hans/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/zh-Hans/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/zh-Hans/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/zh-Hans/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/zh-Hans/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/zh-Hans/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/zh-Hans/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/zh-Hans/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/zh-Hans/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/zh-Hans/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/zh-Hans/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/zh-Hans/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/zh-Hans/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/zh-Hans/modules/rce/userOS.js +31 -0
- package/lib/translated/zh-Hant/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/zh-Hant/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/zh-Hant/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/zh-Hant/modules/rce/RCE.js +12 -6
- package/lib/translated/zh-Hant/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/zh-Hant/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/zh-Hant/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/zh-Hant/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/zh-Hant/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/zh-Hant/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/zh-Hant/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/zh-Hant/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/zh-Hant/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/zh-Hant/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/zh-Hant/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/zh-Hant/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/zh-Hant/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/zh-Hant/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/zh-Hant/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/zh-Hant/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/zh-Hant/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/zh-Hant/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/zh-Hant/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/zh-Hant/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/zh-Hant/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/zh-Hant/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/zh-Hant/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/zh-Hant/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/zh-Hant/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/zh-Hant/modules/rce/userOS.js +31 -0
- package/lib/translated/zh_HK/modules/canvasFileBrowser/FlashAlert.js +8 -5
- package/lib/translated/zh_HK/modules/common/components/LoadMore.js +2 -1
- package/lib/translated/zh_HK/modules/rce/KeyboardShortcutModal.js +10 -7
- package/lib/translated/zh_HK/modules/rce/RCE.js +12 -6
- package/lib/translated/zh_HK/modules/rce/RCEGlobals.js +62 -0
- package/lib/translated/zh_HK/modules/rce/RCEWrapper.js +49 -19
- package/lib/translated/zh_HK/modules/rce/RestoreAutoSaveModal.js +4 -3
- package/lib/translated/zh_HK/modules/rce/__tests__/RCEGlobals.test.js +68 -0
- package/lib/translated/zh_HK/modules/rce/__tests__/contentInsertion.test.js +6 -0
- package/lib/translated/zh_HK/modules/rce/__tests__/userOS.test.js +68 -0
- package/lib/translated/zh_HK/modules/rce/contentInsertion.js +3 -1
- package/lib/translated/zh_HK/modules/rce/initA11yChecker.js +0 -3
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_documents/components/Link.js +12 -8
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_documents/components/__tests__/Link.test.js +8 -4
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_equation/EquationEditorModal/__tests__/index.test.js +7 -5
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_equation/EquationEditorModal/index.js +26 -7
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_equation/EquationEditorModal/mathml.js +10 -7
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_equation/EquationEditorToolbar/index.js +5 -6
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_equation/plugin.js +41 -81
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/ExpandoText.js +1 -1
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/LtiTool.js +1 -1
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js +4 -3
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/Header.js +7 -5
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Modal.js +63 -26
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/Preview.js +21 -12
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Modal.test.js +20 -0
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/__tests__/Preview.test.js +71 -1
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ResetControls.js +38 -0
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/RotationControls.js +12 -8
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ShapeControls.js +1 -1
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/ZoomControls.js +14 -7
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ResetControls.test.js +40 -0
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/__tests__/ZoomControls.test.js +1 -1
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/index.js +9 -1
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/controls/utils.js +1 -4
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/imageCropUtils.js +1 -1
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/svg/shape.js +1 -1
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useKeyMouseEvents.js +211 -0
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Course.js +51 -9
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageOptions.js +8 -2
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/ImageSection.js +1 -0
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/SVGList.js +1 -1
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/Upload.js +65 -3
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Course.test.js +124 -1
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/ImageSection.test.js +1 -1
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/Upload.test.js +85 -2
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/compressionUtils.test.js +114 -0
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/__tests__/utils.test.js +75 -0
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/compressionUtils.js +83 -0
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageSection/utils.js +29 -0
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/TextSection.js +34 -8
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/__tests__/TextSection.test.js +42 -2
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/IconMakerTray.js +26 -16
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/__tests__/IconMakerTray.test.js +15 -19
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/reducers/imageCropper.js +10 -1
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/reducers/imageSection.js +12 -2
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/reducers/svgSettings.js +7 -1
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/svg/__tests__/index.test.js +1 -1
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/svg/__tests__/metadata.test.js +1 -0
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/svg/__tests__/settings.test.js +59 -125
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/svg/__tests__/text.test.js +201 -55
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/svg/__tests__/utils.test.js +36 -3
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/svg/constants.js +8 -1
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/svg/metadata.js +1 -0
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/svg/settings.js +8 -29
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/svg/text.js +62 -48
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/svg/utils.js +3 -2
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/utils/IconMakerFormHasChanges.js +83 -0
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/utils/__tests__/IconMakerFormHasChanges.test.js +328 -0
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/utils/__tests__/round.test.js +31 -0
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/utils/round.js +25 -0
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_image/ImageList/Image.js +1 -1
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_image/ImageList/index.js +1 -1
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_image/ImageOptionsTray/index.js +9 -9
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_image/Images/index.js +1 -1
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_links/components/CollectionPanel.js +8 -3
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_links/components/Link.js +47 -54
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_links/components/LinkOptionsTray/index.js +10 -10
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_links/components/LinkSet.js +6 -2
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_links/components/LinksPanel.js +20 -3
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_links/components/NavigationPanel.js +7 -3
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_links/components/__tests__/Link.test.js +104 -7
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_links/plugin.js +18 -3
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_media_embed/components/Embed.js +3 -2
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_record/AudioOptionsTray/index.js +10 -9
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_record/VideoOptionsTray/index.js +18 -17
- package/lib/translated/zh_HK/modules/rce/plugins/shared/CanvasContentTray.js +90 -7
- package/lib/translated/zh_HK/modules/rce/plugins/shared/ColorInput.js +4 -3
- package/lib/translated/zh_HK/modules/rce/plugins/shared/ContentSelection.js +7 -1
- package/lib/translated/zh_HK/modules/rce/plugins/shared/DimensionsInput/index.js +2 -2
- package/lib/translated/zh_HK/modules/rce/plugins/shared/Filter.js +6 -5
- package/lib/translated/zh_HK/modules/rce/plugins/shared/ImageOptionsForm.js +2 -2
- package/lib/translated/zh_HK/modules/rce/plugins/shared/LinkDisplay.js +82 -0
- package/lib/translated/zh_HK/modules/rce/plugins/shared/Upload/ComputerPanel.js +12 -10
- package/lib/translated/zh_HK/modules/rce/plugins/shared/Upload/UnsplashPanel.js +5 -3
- package/lib/translated/zh_HK/modules/rce/plugins/shared/Upload/UploadFileModal.js +6 -6
- package/lib/translated/zh_HK/modules/rce/plugins/shared/__tests__/CanvasContentTray.test.js +50 -6
- package/lib/translated/zh_HK/modules/rce/plugins/shared/__tests__/ContentSelection.test.js +12 -0
- package/lib/translated/zh_HK/modules/rce/plugins/shared/__tests__/Filter.test.js +7 -0
- package/lib/translated/zh_HK/modules/rce/plugins/shared/__tests__/LinkDisplay.test.js +119 -0
- package/lib/translated/zh_HK/modules/rce/plugins/shared/__tests__/linkUtils.test.js +61 -0
- package/lib/translated/zh_HK/modules/rce/plugins/shared/linkUtils.js +58 -0
- package/lib/translated/zh_HK/modules/rce/plugins/shared/useDataUrl.js +14 -4
- package/lib/translated/zh_HK/modules/rce/userOS.js +31 -0
- package/package.json +17 -10
- package/scripts/build.js +7 -3
- package/testcafe/build/11.js +3 -3
- package/testcafe/build/12.js +1 -1
- package/testcafe/build/20.js +1 -1
- package/testcafe/build/21.js +25 -1
- package/testcafe/build/23.js +90 -66
- package/testcafe/build/24.js +7 -7
- package/testcafe/build/28.js +5 -5
- package/testcafe/build/29.js +10 -10
- package/testcafe/build/30.js +3 -3
- package/testcafe/build/32.js +3 -3
- package/testcafe/build/33.js +3 -3
- package/testcafe/build/34.js +1 -1
- package/testcafe/build/35.js +1 -1
- package/testcafe/build/36.js +18 -19
- package/testcafe/build/37.js +11 -22
- package/testcafe/build/38.js +1 -1
- package/testcafe/build/5.js +12 -1
- package/testcafe/build/6.js +1 -1
- package/testcafe/build/69.js +1 -1
- package/testcafe/build/72.js +1 -1
- package/testcafe/build/73.js +1 -1
- package/testcafe/build/75.js +1 -1
- package/testcafe/build/8.js +46 -10
- package/testcafe/build/9.js +26 -2
- package/testcafe/build/testcafe.js +88 -52
- package/tsconfig.json +18 -0
- package/webpack.testcafe.config.js +5 -2
- package/es/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/ar/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/ca/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/cy/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/da/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/da-x-k12/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/de/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/el/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/en/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/en-AU-x-unimelb/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/en-GB-x-ukhe/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/en_AU/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/en_CA/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/en_CY/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/en_GB/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/es/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/es_ES/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/fa_IR/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/fi/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/fr/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/fr_CA/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/he/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/ht/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/hu/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/hy/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/is/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/it/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/ja/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/ko/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/mi/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/nb/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/nb-x-k12/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/nl/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/nn/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/pl/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/pt/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/pt_BR/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/ru/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/se/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/sl/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/sv/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/sv-x-k12/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/th/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/tr/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/uk_UA/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/vi/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/zh/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/zh-Hans/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/zh-Hant/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/components/CreateIconMakerForm/ImageCropper/useArrowKeys.js +0 -156
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/utils/__tests__/iconMakerFormHasChanges.test.js +0 -243
- package/lib/translated/zh_HK/modules/rce/plugins/instructure_icon_maker/utils/iconMakerFormHasChanges.js +0 -60
|
@@ -676,7 +676,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Acc
|
|
|
676
676
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
677
677
|
|
|
678
678
|
"use strict";
|
|
679
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FocusRegion\", function() { return FocusRegion; });\n/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ \"../../node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ \"../../node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var _instructure_console__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @instructure/console */ \"../../node_modules/@instructure/console/es/index.js\");\n/* harmony import */ var keycode__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! keycode */ \"../../node_modules/keycode/index.js\");\n/* harmony import */ var keycode__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(keycode__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-dom-utils */ \"../../node_modules/@instructure/ui-dom-utils/es/index.js\");\n/* harmony import */ var _instructure_uid__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/uid */ \"../../node_modules/@instructure/uid/es/index.js\");\n/* harmony import */ var _ScreenReaderFocusRegion_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ScreenReaderFocusRegion.js */ \"../../node_modules/@instructure/ui-a11y-utils/es/ScreenReaderFocusRegion.js\");\n/* harmony import */ var _KeyboardFocusRegion_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./KeyboardFocusRegion.js */ \"../../node_modules/@instructure/ui-a11y-utils/es/KeyboardFocusRegion.js\");\n\n\n\n\n/*\n * The MIT License (MIT)\n *\n * Copyright (c) 2015 - present Instructure, Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n\n\n\n\n\nvar FocusRegion = /*#__PURE__*/function () {\n function FocusRegion(element, options) {\n var _this = this;\n\n Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, FocusRegion);\n\n this._contextElement = null;\n this._preventCloseOnDocumentClick = false;\n this._listeners = [];\n this._active = false;\n\n this.handleDismiss = function (event, documentClick) {\n _this._options.onDismiss(event, documentClick);\n };\n\n this.captureDocumentClick = function (event) {\n var target = event.target;\n _this._preventCloseOnDocumentClick = event.button !== 0 || Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"contains\"])(_this._contextElement, target);\n };\n\n this.handleDocumentClick = function (event) {\n if (_this._options.shouldCloseOnDocumentClick && !_this._preventCloseOnDocumentClick) {\n _this.handleDismiss(event, true);\n }\n };\n\n this.handleFrameClick = function (event, frame) {\n if (!Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"contains\"])(_this._contextElement, frame)) {\n // dismiss if frame is not within the region\n _this.handleDismiss(event, true);\n }\n };\n\n this.handleKeyUp = function (event) {\n if (_this._options.shouldCloseOnEscape && event.keyCode === keycode__WEBPACK_IMPORTED_MODULE_3___default.a.codes.escape && !event.defaultPrevented) {\n _this.handleDismiss(event);\n }\n };\n\n this._options = options || {\n shouldCloseOnDocumentClick: true,\n shouldCloseOnEscape: true,\n onDismiss: function onDismiss(event) {}\n };\n this._contextElement = element;\n this._screenReaderFocusRegion = new _ScreenReaderFocusRegion_js__WEBPACK_IMPORTED_MODULE_6__[\"ScreenReaderFocusRegion\"](element, options);\n this._keyboardFocusRegion = new _KeyboardFocusRegion_js__WEBPACK_IMPORTED_MODULE_7__[\"KeyboardFocusRegion\"](element, options);\n this._id = Object(_instructure_uid__WEBPACK_IMPORTED_MODULE_5__[\"uid\"])();\n }\n\n Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(FocusRegion, [{\n key: \"updateElement\",\n value: function updateElement(element) {\n this._contextElement = element;\n\n if (this._keyboardFocusRegion) {\n this._keyboardFocusRegion.updateElement(element);\n }\n\n if (this._screenReaderFocusRegion) {\n this._screenReaderFocusRegion.updateElement(element);\n }\n }\n }, {\n key: \"activate\",\n value: function activate() {\n var _this2 = this;\n\n if (!this._active) {\n var doc = Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"ownerDocument\"])(this._contextElement);\n\n this._keyboardFocusRegion.activate();\n\n this._screenReaderFocusRegion.activate();\n\n if (this._options.shouldCloseOnDocumentClick) {\n this._listeners.push(Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"addEventListener\"])(doc, 'click', this.captureDocumentClick, true));\n\n this._listeners.push(Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"addEventListener\"])(doc, 'click', this.handleDocumentClick));\n\n Array.from(doc.getElementsByTagName('iframe')).forEach(function (el) {\n // listen for mouseup events on any iframes in the document\n var frameDoc = Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"getFrameDocumentSafe\"])(el);\n\n if (frameDoc) {\n _this2._listeners.push(Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"addEventListener\"])(frameDoc, 'mouseup', function (event) {\n _this2.handleFrameClick(event, el);\n }));\n }\n });\n }\n\n if (this._options.shouldCloseOnEscape) {\n this._listeners.push(Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"addEventListener\"])(doc, 'keyup', this.handleKeyUp));\n }\n\n this._active = true;\n }\n }\n }, {\n key: \"deactivate\",\n value: function deactivate() {\n var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {},\n _ref$keyboard = _ref.keyboard,\n keyboard = _ref$keyboard === void 0 ? true : _ref$keyboard;\n\n if (this._active) {\n this._listeners.forEach(function (listener) {\n listener.remove();\n });\n\n this._listeners = [];\n\n if (keyboard) {\n this._keyboardFocusRegion.deactivate();\n }\n\n this._screenReaderFocusRegion.deactivate();\n\n this._active = false;\n }\n }\n }, {\n key: \"focus\",\n value: function focus() {\n /*#__PURE__*/\n\n /*#__PURE__*/\n Object(_instructure_console__WEBPACK_IMPORTED_MODULE_2__[\"error\"])(this._active, \"[FocusRegion] Cannot call '.focus()' on a region that is not currently active.\");\n\n this._keyboardFocusRegion.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n /*#__PURE__*/\n\n /*#__PURE__*/\n Object(_instructure_console__WEBPACK_IMPORTED_MODULE_2__[\"error\"])(!this._active, \"[FocusRegion] Cannot call '.blur()' on a region that is currently active.\");\n\n this._keyboardFocusRegion.blur();\n }\n }, {\n key: \"id\",\n get: function get() {\n return this._id;\n } // Focused returns when the focus region is active. Checking focused with the active element\n // is inconsistent across browsers (Safari/Firefox do not focus elements on click)\n\n }, {\n key: \"focused\",\n get: function get() {\n return this._active;\n }\n }, {\n key: \"keyboardFocusable\",\n get: function get() {\n return (Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"findTabbable\"])(this._contextElement) || []).length > 0;\n }\n }]);\n\n return FocusRegion;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FocusRegion);\n\n\n//# sourceURL=webpack:////Users/jon.scheiding/Code/INST/canvas-lms/node_modules/@instructure/ui-a11y-utils/es/FocusRegion.js?");
|
|
679
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FocusRegion\", function() { return FocusRegion; });\n/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ \"../../node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ \"../../node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var _instructure_console__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @instructure/console */ \"../../node_modules/@instructure/console/es/index.js\");\n/* harmony import */ var keycode__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! keycode */ \"../../node_modules/keycode/index.js\");\n/* harmony import */ var keycode__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(keycode__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-dom-utils */ \"../../node_modules/@instructure/ui-dom-utils/es/index.js\");\n/* harmony import */ var _instructure_uid__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/uid */ \"../../node_modules/@instructure/uid/es/index.js\");\n/* harmony import */ var _ScreenReaderFocusRegion_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ScreenReaderFocusRegion.js */ \"../../node_modules/@instructure/ui-a11y-utils/es/ScreenReaderFocusRegion.js\");\n/* harmony import */ var _KeyboardFocusRegion_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./KeyboardFocusRegion.js */ \"../../node_modules/@instructure/ui-a11y-utils/es/KeyboardFocusRegion.js\");\n\n\n\n\n/*\n * The MIT License (MIT)\n *\n * Copyright (c) 2015 - present Instructure, Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n\n\n\n\n\nvar FocusRegion = /*#__PURE__*/function () {\n function FocusRegion(element, options) {\n var _this = this;\n\n Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, FocusRegion);\n\n this._contextElement = null;\n this._preventCloseOnDocumentClick = false;\n this._listeners = [];\n this._active = false;\n\n this.handleDismiss = function (event, documentClick) {\n if (_this._contextElement) {\n _this._options.onDismiss(event, documentClick);\n }\n };\n\n this.captureDocumentClick = function (event) {\n var target = event.target;\n _this._preventCloseOnDocumentClick = event.button !== 0 || Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"contains\"])(_this._contextElement, target);\n };\n\n this.handleDocumentClick = function (event) {\n if (_this._options.shouldCloseOnDocumentClick && !_this._preventCloseOnDocumentClick) {\n _this.handleDismiss(event, true);\n }\n };\n\n this.handleFrameClick = function (event, frame) {\n if (!Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"contains\"])(_this._contextElement, frame)) {\n // dismiss if frame is not within the region\n _this.handleDismiss(event, true);\n }\n };\n\n this.handleKeyUp = function (event) {\n if (_this._options.shouldCloseOnEscape && event.keyCode === keycode__WEBPACK_IMPORTED_MODULE_3___default.a.codes.escape && !event.defaultPrevented) {\n _this.handleDismiss(event);\n }\n };\n\n this._options = options || {\n shouldCloseOnDocumentClick: true,\n shouldCloseOnEscape: true,\n onDismiss: function onDismiss(event) {}\n };\n this._contextElement = element;\n this._screenReaderFocusRegion = new _ScreenReaderFocusRegion_js__WEBPACK_IMPORTED_MODULE_6__[\"ScreenReaderFocusRegion\"](element, options);\n this._keyboardFocusRegion = new _KeyboardFocusRegion_js__WEBPACK_IMPORTED_MODULE_7__[\"KeyboardFocusRegion\"](element, options);\n this._id = Object(_instructure_uid__WEBPACK_IMPORTED_MODULE_5__[\"uid\"])();\n }\n\n Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(FocusRegion, [{\n key: \"updateElement\",\n value: function updateElement(element) {\n this._contextElement = element;\n\n if (this._keyboardFocusRegion) {\n this._keyboardFocusRegion.updateElement(element);\n }\n\n if (this._screenReaderFocusRegion) {\n this._screenReaderFocusRegion.updateElement(element);\n }\n }\n }, {\n key: \"activate\",\n value: function activate() {\n var _this2 = this;\n\n if (!this._active) {\n var doc = Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"ownerDocument\"])(this._contextElement);\n\n this._keyboardFocusRegion.activate();\n\n this._screenReaderFocusRegion.activate();\n\n if (this._options.shouldCloseOnDocumentClick) {\n this._listeners.push(Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"addEventListener\"])(doc, 'click', this.captureDocumentClick, true));\n\n this._listeners.push(Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"addEventListener\"])(doc, 'click', this.handleDocumentClick));\n\n Array.from(doc.getElementsByTagName('iframe')).forEach(function (el) {\n // listen for mouseup events on any iframes in the document\n var frameDoc = Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"getFrameDocumentSafe\"])(el);\n\n if (frameDoc) {\n _this2._listeners.push(Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"addEventListener\"])(frameDoc, 'mouseup', function (event) {\n _this2.handleFrameClick(event, el);\n }));\n }\n });\n }\n\n if (this._options.shouldCloseOnEscape) {\n this._listeners.push(Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"addEventListener\"])(doc, 'keyup', this.handleKeyUp));\n }\n\n this._active = true;\n }\n }\n }, {\n key: \"deactivate\",\n value: function deactivate() {\n var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {},\n _ref$keyboard = _ref.keyboard,\n keyboard = _ref$keyboard === void 0 ? true : _ref$keyboard;\n\n if (this._active) {\n this._listeners.forEach(function (listener) {\n listener.remove();\n });\n\n this._listeners = [];\n\n if (keyboard) {\n this._keyboardFocusRegion.deactivate();\n }\n\n this._screenReaderFocusRegion.deactivate();\n\n this._active = false;\n }\n }\n }, {\n key: \"focus\",\n value: function focus() {\n /*#__PURE__*/\n\n /*#__PURE__*/\n Object(_instructure_console__WEBPACK_IMPORTED_MODULE_2__[\"error\"])(this._active, \"[FocusRegion] Cannot call '.focus()' on a region that is not currently active.\");\n\n this._keyboardFocusRegion.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n /*#__PURE__*/\n\n /*#__PURE__*/\n Object(_instructure_console__WEBPACK_IMPORTED_MODULE_2__[\"error\"])(!this._active, \"[FocusRegion] Cannot call '.blur()' on a region that is currently active.\");\n\n this._keyboardFocusRegion.blur();\n }\n }, {\n key: \"id\",\n get: function get() {\n return this._id;\n } // Focused returns when the focus region is active. Checking focused with the active element\n // is inconsistent across browsers (Safari/Firefox do not focus elements on click)\n\n }, {\n key: \"focused\",\n get: function get() {\n return this._active;\n }\n }, {\n key: \"keyboardFocusable\",\n get: function get() {\n return (Object(_instructure_ui_dom_utils__WEBPACK_IMPORTED_MODULE_4__[\"findTabbable\"])(this._contextElement) || []).length > 0;\n }\n }]);\n\n return FocusRegion;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FocusRegion);\n\n\n//# sourceURL=webpack:////Users/jon.scheiding/Code/INST/canvas-lms/node_modules/@instructure/ui-a11y-utils/es/FocusRegion.js?");
|
|
680
680
|
|
|
681
681
|
/***/ }),
|
|
682
682
|
|
|
@@ -16768,7 +16768,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var reac
|
|
|
16768
16768
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
16769
16769
|
|
|
16770
16770
|
"use strict";
|
|
16771
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PANELS\", function() { return PANELS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return UploadMedia; });\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-dom */ \"../../node_modules/react-dom/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash */ \"../../node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-buttons */ \"../../node_modules/@instructure/ui-buttons/es/index.js\");\n/* harmony import */ var _instructure_ui_heading__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-heading */ \"../../node_modules/@instructure/ui-heading/es/index.js\");\n/* harmony import */ var _instructure_ui_modal__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-modal */ \"../../node_modules/@instructure/ui-modal/es/index.js\");\n/* harmony import */ var _instructure_ui_tabs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @instructure/ui-tabs */ \"../../node_modules/@instructure/ui-tabs/es/index.js\");\n/* harmony import */ var _instructure_ui_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @instructure/ui-utils */ \"../../node_modules/@instructure/ui-utils/es/index.js\");\n/* harmony import */ var _instructure_ui_progress__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @instructure/ui-progress */ \"../../node_modules/@instructure/ui-progress/es/index.js\");\n/* harmony import */ var _instructure_ui_text__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @instructure/ui-text */ \"../../node_modules/@instructure/ui-text/es/index.js\");\n/* harmony import */ var _instructure_canvas_rce_src_rce_plugins_shared_Upload_constants__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @instructure/canvas-rce/src/rce/plugins/shared/Upload/constants */ \"./src/rce/plugins/shared/Upload/constants.js\");\n/* harmony import */ var _acceptedMediaFileTypes__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./acceptedMediaFileTypes */ \"../canvas-media/es/acceptedMediaFileTypes.js\");\n/* harmony import */ var _shared_LoadingIndicator__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./shared/LoadingIndicator */ \"../canvas-media/es/shared/LoadingIndicator.js\");\n/* harmony import */ var _saveMediaRecording__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./saveMediaRecording */ \"../canvas-media/es/saveMediaRecording.js\");\n/* harmony import */ var _translationShape__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./translationShape */ \"../canvas-media/es/translationShape.js\");\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst ComputerPanel = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(5), __webpack_require__.e(10), __webpack_require__.e(20), __webpack_require__.e(66)]).then(__webpack_require__.bind(null, /*! ./ComputerPanel */ \"../canvas-media/es/ComputerPanel.js\")));\nconst MediaRecorder = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(22), __webpack_require__.e(67)]).then(__webpack_require__.bind(null, /*! ./MediaRecorder */ \"../canvas-media/es/MediaRecorder.js\")));\nconst PANELS = {\n COMPUTER: 0,\n RECORD: 1\n};\nclass UploadMedia extends react__WEBPACK_IMPORTED_MODULE_1___default.a.Component {\n constructor(props) {\n super(props);\n\n this.inferSelectedPanel = tabs => {\n let selectedPanel = -1;\n\n if (tabs.upload) {\n selectedPanel = 0;\n } else if (tabs.record) {\n selectedPanel = 1;\n }\n\n return selectedPanel;\n };\n\n this.isReady = () => {\n if (this.props.disableSubmitWhileUploading && this.state.uploading) {\n return false;\n }\n\n switch (this.state.selectedPanel) {\n case PANELS.COMPUTER:\n return !!this.state.computerFile;\n\n case PANELS.RECORD:\n return !!this.state.recordedFile;\n\n default:\n return false;\n }\n };\n\n this.handleSubmit = () => {\n switch (this.state.selectedPanel) {\n case PANELS.COMPUTER:\n this.uploadFile(this.state.computerFile);\n break;\n\n case PANELS.RECORD:\n this.uploadFile(this.state.recordedFile);\n break;\n\n default:\n throw new Error('Selected Panel is invalid');\n // Should never get here\n }\n };\n\n this.submitEnabled = () => {\n var _this$state$computerF;\n\n switch (this.state.selectedPanel) {\n case PANELS.COMPUTER:\n return this.isReady() && !!((_this$state$computerF = this.state.computerFile) !== null && _this$state$computerF !== void 0 && _this$state$computerF.title);\n\n default:\n return this.isReady();\n }\n };\n\n this.onSaveMediaProgress = progress => {\n this.setState({\n progress\n });\n };\n\n this.saveMediaCallback = async (err, data) => {\n if (err) {\n this.props.onUploadComplete && this.props.onUploadComplete(err, data);\n } else {\n try {\n var _captions;\n\n let captions;\n\n if (this.state.selectedPanel === PANELS.COMPUTER && this.state.subtitles.length > 0) {\n captions = await Object(_saveMediaRecording__WEBPACK_IMPORTED_MODULE_14__[\"saveClosedCaptions\"])(data.mediaObject.media_object.media_id, this.state.subtitles, this.props.rcsConfig, _instructure_canvas_rce_src_rce_plugins_shared_Upload_constants__WEBPACK_IMPORTED_MODULE_11__[\"RCS_MAX_BODY_SIZE\"] - _instructure_canvas_rce_src_rce_plugins_shared_Upload_constants__WEBPACK_IMPORTED_MODULE_11__[\"RCS_REQUEST_SIZE_BUFFER\"]);\n }\n\n this.props.onUploadComplete && this.props.onUploadComplete(null, data, (_captions = captions) === null || _captions === void 0 ? void 0 : _captions.data);\n } catch (ex) {\n this.props.onUploadComplete && this.props.onUploadComplete(ex, null);\n }\n }\n\n this.props.onDismiss && this.props.onDismiss();\n };\n\n this.renderModalBody = () => {\n const {\n COMPUTER_PANEL_TITLE,\n DRAG_FILE_TEXT,\n LOADING_MEDIA,\n RECORD_PANEL_TITLE,\n MEDIA_RECORD_NOT_AVAILABLE\n } = this.props.uploadMediaTranslations.UploadMediaStrings;\n\n if (!this.props.open) {\n return null;\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_tabs__WEBPACK_IMPORTED_MODULE_7__[\"Tabs\"], {\n maxWidth: \"large\",\n onRequestTabChange: (_, _ref) => {\n let {\n index\n } = _ref;\n this.setState({\n selectedPanel: index\n });\n }\n }, this.props.tabs.upload && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_tabs__WEBPACK_IMPORTED_MODULE_7__[\"Tabs\"].Panel, {\n key: \"computer\",\n isSelected: this.state.selectedPanel === PANELS.COMPUTER,\n renderTitle: () => COMPUTER_PANEL_TITLE\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_1__[\"Suspense\"], {\n fallback: Object(_shared_LoadingIndicator__WEBPACK_IMPORTED_MODULE_13__[\"default\"])(LOADING_MEDIA)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(ComputerPanel, {\n theFile: this.state.computerFile,\n setFile: file => this.setState({\n computerFile: file\n }),\n hasUploadedFile: this.state.hasUploadedFile,\n setHasUploadedFile: uploadFileState => this.setState({\n hasUploadedFile: uploadFileState\n }),\n label: DRAG_FILE_TEXT,\n uploadMediaTranslations: this.props.uploadMediaTranslations,\n accept: _acceptedMediaFileTypes__WEBPACK_IMPORTED_MODULE_12__[\"ACCEPTED_FILE_TYPES\"],\n languages: this.props.languages,\n liveRegion: this.props.liveRegion,\n updateSubtitles: subtitles => {\n this.setState({\n subtitles\n });\n },\n bounds: this.state.modalBodySize\n }))), this.props.tabs.record && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_tabs__WEBPACK_IMPORTED_MODULE_7__[\"Tabs\"].Panel, {\n key: \"record\",\n isSelected: this.state.selectedPanel === PANELS.RECORD,\n renderTitle: () => RECORD_PANEL_TITLE\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_1__[\"Suspense\"], {\n fallback: Object(_shared_LoadingIndicator__WEBPACK_IMPORTED_MODULE_13__[\"default\"])(LOADING_MEDIA)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(MediaRecorder, {\n MediaCaptureStrings: this.props.uploadMediaTranslations.MediaCaptureStrings,\n errorMessage: MEDIA_RECORD_NOT_AVAILABLE,\n onSave: file => this.setState({\n recordedFile: file\n }, this.handleSubmit)\n }))));\n };\n\n this.onModalClose = () => {\n this.setState({\n hasUploadedFile: false,\n selectedPanel: 0,\n computerFile: null\n });\n this.props.onDismiss();\n };\n\n this.renderModalFooter = () => {\n if (this.state.selectedPanel === PANELS.RECORD) {\n return null;\n }\n\n const {\n CLOSE_TEXT,\n SUBMIT_TEXT,\n PROGRESS_LABEL\n } = this.props.uploadMediaTranslations.UploadMediaStrings;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_modal__WEBPACK_IMPORTED_MODULE_6__[\"Modal\"].Footer, null, this.state.uploading && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_progress__WEBPACK_IMPORTED_MODULE_9__[\"ProgressBar\"], {\n screenReaderLabel: PROGRESS_LABEL,\n valueNow: this.state.progress,\n valueMax: 100,\n renderValue: _ref2 => {\n let {\n valueNow\n } = _ref2;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_10__[\"Text\"], null, valueNow, \"%\");\n }\n }), \"\\xA0\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_4__[\"Button\"], {\n onClick: this.onModalClose\n }, \" \", CLOSE_TEXT, \" \"), \"\\xA0\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_4__[\"Button\"], {\n onClick: e => {\n e.preventDefault();\n this.handleSubmit();\n },\n color: \"primary\",\n type: \"submit\",\n interaction: this.submitEnabled() ? 'enabled' : 'disabled'\n }, SUBMIT_TEXT));\n };\n\n const defaultSelectedPanel = this.inferSelectedPanel(props.tabs);\n\n if (props.computerFile) {\n props.computerFile.title = props.computerFile.name;\n }\n\n this.state = {\n hasUploadedFile: !!props.computerFile,\n uploading: false,\n progress: 0,\n selectedPanel: defaultSelectedPanel,\n computerFile: props.computerFile || null,\n subtitles: [],\n recordedFile: null,\n modalBodySize: {\n width: NaN,\n height: NaN\n }\n };\n this.modalBodyRef = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createRef();\n }\n\n uploadFile(file) {\n this.setState({\n uploading: true\n }, () => {\n this.props.onStartUpload && this.props.onStartUpload(file);\n file.userEnteredTitle = file.title;\n Object(_saveMediaRecording__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(file, this.props.rcsConfig, this.saveMediaCallback, this.onSaveMediaProgress);\n });\n }\n\n componentDidMount() {\n this.setBodySize(this.state);\n }\n\n componentDidUpdate(prevProps, prevState) {\n this.setBodySize(prevState); // If the specified tabs have not changed, don't attempt\n // to set the selected panel state (this would trigger\n // and endless loop).\n\n if (Object(lodash__WEBPACK_IMPORTED_MODULE_3__[\"isEqual\"])(prevProps.tabs, this.props.tabs)) return;\n\n if (prevState.selectedPanel === -1) {\n // The tabs prop has changed and the selectedPanel was\n // never set in the constructor. Attempt to infer the\n // selected panel based on the new tabs list\n this.setState({\n selectedPanel: this.inferSelectedPanel(this.props.tabs)\n });\n }\n }\n\n setBodySize(state) {\n if (this.modalBodyRef.current) {\n // eslint-disable-next-line react/no-find-dom-node\n const thebody = react_dom__WEBPACK_IMPORTED_MODULE_2___default.a.findDOMNode(this.modalBodyRef.current);\n const modalBodySize = thebody.getBoundingClientRect();\n modalBodySize.height -= Object(_instructure_ui_utils__WEBPACK_IMPORTED_MODULE_8__[\"px\"])('3rem'); // leave room for the tabs\n\n if (modalBodySize.width !== state.modalBodySize.width || modalBodySize.height !== state.modalBodySize.height) {\n if (modalBodySize.width > 0 && modalBodySize.height > 0) {\n this.setState({\n modalBodySize\n });\n }\n }\n }\n }\n\n render() {\n const {\n CLOSE_TEXT,\n UPLOAD_MEDIA_LABEL\n } = this.props.uploadMediaTranslations.UploadMediaStrings;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_modal__WEBPACK_IMPORTED_MODULE_6__[\"Modal\"], {\n label: UPLOAD_MEDIA_LABEL,\n size: \"large\",\n onDismiss: this.onModalClose,\n open: this.props.open,\n shouldCloseOnDocumentClick: false,\n liveRegion: this.props.liveRegion\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_modal__WEBPACK_IMPORTED_MODULE_6__[\"Modal\"].Header, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_4__[\"CloseButton\"], {\n onClick: this.onModalClose,\n offset: \"medium\",\n placement: \"end\",\n screenReaderLabel: CLOSE_TEXT\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_heading__WEBPACK_IMPORTED_MODULE_5__[\"Heading\"], null, UPLOAD_MEDIA_LABEL)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_modal__WEBPACK_IMPORTED_MODULE_6__[\"Modal\"].Body, {\n ref: this.modalBodyRef\n }, this.renderModalBody()), this.renderModalFooter());\n }\n\n}\nUploadMedia.propTypes = {\n disableSubmitWhileUploading: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"bool\"],\n languages: Object(prop_types__WEBPACK_IMPORTED_MODULE_0__[\"arrayOf\"])(Object(prop_types__WEBPACK_IMPORTED_MODULE_0__[\"shape\"])({\n id: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"string\"],\n label: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"string\"]\n })),\n liveRegion: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"func\"],\n rcsConfig: Object(prop_types__WEBPACK_IMPORTED_MODULE_0__[\"shape\"])({\n contextId: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"string\"],\n contextType: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"string\"],\n origin: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"string\"],\n headers: Object(prop_types__WEBPACK_IMPORTED_MODULE_0__[\"shape\"])({\n Authorization: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"string\"]\n })\n }),\n onStartUpload: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"func\"],\n onUploadComplete: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"func\"],\n onDismiss: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"func\"],\n open: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"bool\"],\n tabs: Object(prop_types__WEBPACK_IMPORTED_MODULE_0__[\"shape\"])({\n record: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"bool\"],\n upload: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"bool\"]\n }),\n uploadMediaTranslations: _translationShape__WEBPACK_IMPORTED_MODULE_15__[\"default\"],\n // for testing\n computerFile: Object(prop_types__WEBPACK_IMPORTED_MODULE_0__[\"instanceOf\"])(File)\n};\nUploadMedia.defaultProps = {\n disableSubmitWhileUploading: false\n};\n\n//# sourceURL=webpack:///../canvas-media/es/UploadMedia.js?");
|
|
16771
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PANELS\", function() { return PANELS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return UploadMedia; });\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-dom */ \"../../node_modules/react-dom/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash */ \"../../node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-buttons */ \"../../node_modules/@instructure/ui-buttons/es/index.js\");\n/* harmony import */ var _instructure_ui_heading__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-heading */ \"../../node_modules/@instructure/ui-heading/es/index.js\");\n/* harmony import */ var _instructure_ui_modal__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-modal */ \"../../node_modules/@instructure/ui-modal/es/index.js\");\n/* harmony import */ var _instructure_ui_tabs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @instructure/ui-tabs */ \"../../node_modules/@instructure/ui-tabs/es/index.js\");\n/* harmony import */ var _instructure_ui_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @instructure/ui-utils */ \"../../node_modules/@instructure/ui-utils/es/index.js\");\n/* harmony import */ var _instructure_ui_progress__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @instructure/ui-progress */ \"../../node_modules/@instructure/ui-progress/es/index.js\");\n/* harmony import */ var _instructure_ui_text__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @instructure/ui-text */ \"../../node_modules/@instructure/ui-text/es/index.js\");\n/* harmony import */ var _acceptedMediaFileTypes__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./acceptedMediaFileTypes */ \"../canvas-media/es/acceptedMediaFileTypes.js\");\n/* harmony import */ var _shared_LoadingIndicator__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./shared/LoadingIndicator */ \"../canvas-media/es/shared/LoadingIndicator.js\");\n/* harmony import */ var _saveMediaRecording__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./saveMediaRecording */ \"../canvas-media/es/saveMediaRecording.js\");\n/* harmony import */ var _translationShape__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./translationShape */ \"../canvas-media/es/translationShape.js\");\n/* harmony import */ var _shared_constants__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./shared/constants */ \"../canvas-media/es/shared/constants.js\");\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst ComputerPanel = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(5), __webpack_require__.e(10), __webpack_require__.e(20), __webpack_require__.e(66)]).then(__webpack_require__.bind(null, /*! ./ComputerPanel */ \"../canvas-media/es/ComputerPanel.js\")));\nconst MediaRecorder = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(22), __webpack_require__.e(67)]).then(__webpack_require__.bind(null, /*! ./MediaRecorder */ \"../canvas-media/es/MediaRecorder.js\")));\nconst PANELS = {\n COMPUTER: 0,\n RECORD: 1\n};\nclass UploadMedia extends react__WEBPACK_IMPORTED_MODULE_1___default.a.Component {\n constructor(props) {\n super(props);\n\n this.inferSelectedPanel = tabs => {\n let selectedPanel = -1;\n\n if (tabs.upload) {\n selectedPanel = 0;\n } else if (tabs.record) {\n selectedPanel = 1;\n }\n\n return selectedPanel;\n };\n\n this.isReady = () => {\n if (this.props.disableSubmitWhileUploading && this.state.uploading) {\n return false;\n }\n\n switch (this.state.selectedPanel) {\n case PANELS.COMPUTER:\n return !!this.state.computerFile;\n\n case PANELS.RECORD:\n return !!this.state.recordedFile;\n\n default:\n return false;\n }\n };\n\n this.handleSubmit = () => {\n switch (this.state.selectedPanel) {\n case PANELS.COMPUTER:\n this.uploadFile(this.state.computerFile);\n break;\n\n case PANELS.RECORD:\n this.uploadFile(this.state.recordedFile);\n break;\n\n default:\n throw new Error('Selected Panel is invalid');\n // Should never get here\n }\n };\n\n this.submitEnabled = () => {\n var _this$state$computerF;\n\n switch (this.state.selectedPanel) {\n case PANELS.COMPUTER:\n return this.isReady() && !!((_this$state$computerF = this.state.computerFile) !== null && _this$state$computerF !== void 0 && _this$state$computerF.title);\n\n default:\n return this.isReady();\n }\n };\n\n this.onSaveMediaProgress = progress => {\n this.setState({\n progress\n });\n };\n\n this.saveMediaCallback = async (err, data) => {\n if (err) {\n this.props.onUploadComplete && this.props.onUploadComplete(err, data);\n } else {\n try {\n var _captions;\n\n let captions;\n\n if (this.state.selectedPanel === PANELS.COMPUTER && this.state.subtitles.length > 0) {\n captions = await Object(_saveMediaRecording__WEBPACK_IMPORTED_MODULE_13__[\"saveClosedCaptions\"])(data.mediaObject.media_object.media_id, this.state.subtitles, this.props.rcsConfig, _shared_constants__WEBPACK_IMPORTED_MODULE_15__[\"CC_FILE_MAX_BYTES\"]);\n }\n\n this.props.onUploadComplete && this.props.onUploadComplete(null, data, (_captions = captions) === null || _captions === void 0 ? void 0 : _captions.data);\n } catch (ex) {\n this.props.onUploadComplete && this.props.onUploadComplete(ex, null);\n }\n }\n\n this.props.onDismiss && this.props.onDismiss();\n };\n\n this.renderModalBody = () => {\n const {\n COMPUTER_PANEL_TITLE,\n DRAG_FILE_TEXT,\n LOADING_MEDIA,\n RECORD_PANEL_TITLE,\n MEDIA_RECORD_NOT_AVAILABLE\n } = this.props.uploadMediaTranslations.UploadMediaStrings;\n\n if (!this.props.open) {\n return null;\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_tabs__WEBPACK_IMPORTED_MODULE_7__[\"Tabs\"], {\n maxWidth: \"large\",\n onRequestTabChange: (_, _ref) => {\n let {\n index\n } = _ref;\n this.setState({\n selectedPanel: index\n });\n }\n }, this.props.tabs.upload && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_tabs__WEBPACK_IMPORTED_MODULE_7__[\"Tabs\"].Panel, {\n key: \"computer\",\n isSelected: this.state.selectedPanel === PANELS.COMPUTER,\n renderTitle: () => COMPUTER_PANEL_TITLE\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_1__[\"Suspense\"], {\n fallback: Object(_shared_LoadingIndicator__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(LOADING_MEDIA)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(ComputerPanel, {\n theFile: this.state.computerFile,\n setFile: file => this.setState({\n computerFile: file\n }),\n hasUploadedFile: this.state.hasUploadedFile,\n setHasUploadedFile: uploadFileState => this.setState({\n hasUploadedFile: uploadFileState\n }),\n label: DRAG_FILE_TEXT,\n uploadMediaTranslations: this.props.uploadMediaTranslations,\n accept: _acceptedMediaFileTypes__WEBPACK_IMPORTED_MODULE_11__[\"ACCEPTED_FILE_TYPES\"],\n languages: this.props.languages,\n liveRegion: this.props.liveRegion,\n updateSubtitles: subtitles => {\n this.setState({\n subtitles\n });\n },\n bounds: this.state.modalBodySize\n }))), this.props.tabs.record && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_tabs__WEBPACK_IMPORTED_MODULE_7__[\"Tabs\"].Panel, {\n key: \"record\",\n isSelected: this.state.selectedPanel === PANELS.RECORD,\n renderTitle: () => RECORD_PANEL_TITLE\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_1__[\"Suspense\"], {\n fallback: Object(_shared_LoadingIndicator__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(LOADING_MEDIA)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(MediaRecorder, {\n MediaCaptureStrings: this.props.uploadMediaTranslations.MediaCaptureStrings,\n errorMessage: MEDIA_RECORD_NOT_AVAILABLE,\n onSave: file => this.setState({\n recordedFile: file\n }, this.handleSubmit)\n }))));\n };\n\n this.onModalClose = () => {\n this.setState({\n hasUploadedFile: false,\n selectedPanel: 0,\n computerFile: null\n });\n this.props.onDismiss();\n };\n\n this.renderModalFooter = () => {\n if (this.state.selectedPanel === PANELS.RECORD) {\n return null;\n }\n\n const {\n CLOSE_TEXT,\n SUBMIT_TEXT,\n PROGRESS_LABEL\n } = this.props.uploadMediaTranslations.UploadMediaStrings;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_modal__WEBPACK_IMPORTED_MODULE_6__[\"Modal\"].Footer, null, this.state.uploading && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_progress__WEBPACK_IMPORTED_MODULE_9__[\"ProgressBar\"], {\n screenReaderLabel: PROGRESS_LABEL,\n valueNow: this.state.progress,\n valueMax: 100,\n renderValue: _ref2 => {\n let {\n valueNow\n } = _ref2;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_10__[\"Text\"], null, valueNow, \"%\");\n }\n }), \"\\xA0\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_4__[\"Button\"], {\n onClick: this.onModalClose\n }, \" \", CLOSE_TEXT, \" \"), \"\\xA0\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_4__[\"Button\"], {\n onClick: e => {\n e.preventDefault();\n this.handleSubmit();\n },\n color: \"primary\",\n type: \"submit\",\n interaction: this.submitEnabled() ? 'enabled' : 'disabled'\n }, SUBMIT_TEXT));\n };\n\n const defaultSelectedPanel = this.inferSelectedPanel(props.tabs);\n\n if (props.computerFile) {\n props.computerFile.title = props.computerFile.name;\n }\n\n this.state = {\n hasUploadedFile: !!props.computerFile,\n uploading: false,\n progress: 0,\n selectedPanel: defaultSelectedPanel,\n computerFile: props.computerFile || null,\n subtitles: [],\n recordedFile: null,\n modalBodySize: {\n width: NaN,\n height: NaN\n }\n };\n this.modalBodyRef = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createRef();\n }\n\n uploadFile(file) {\n this.setState({\n uploading: true\n }, () => {\n this.props.onStartUpload && this.props.onStartUpload(file);\n file.userEnteredTitle = file.title;\n Object(_saveMediaRecording__WEBPACK_IMPORTED_MODULE_13__[\"default\"])(file, this.props.rcsConfig, this.saveMediaCallback, this.onSaveMediaProgress);\n });\n }\n\n componentDidMount() {\n this.setBodySize(this.state);\n }\n\n componentDidUpdate(prevProps, prevState) {\n this.setBodySize(prevState); // If the specified tabs have not changed, don't attempt\n // to set the selected panel state (this would trigger\n // and endless loop).\n\n if (Object(lodash__WEBPACK_IMPORTED_MODULE_3__[\"isEqual\"])(prevProps.tabs, this.props.tabs)) return;\n\n const invalidPanelSelected = () => this.state.selectedPanel === PANELS.COMPUTER && !this.props.tabs.upload || this.state.selectedPanel === PANELS.RECORD && !this.props.tabs.record;\n\n if (prevState.selectedPanel === -1 || invalidPanelSelected()) {\n // The tabs prop has changed and the selectedPanel was\n // never set in the constructor. Attempt to infer the\n // selected panel based on the new tabs list\n this.setState({\n selectedPanel: this.inferSelectedPanel(this.props.tabs)\n });\n }\n }\n\n setBodySize(state) {\n if (this.modalBodyRef.current) {\n // eslint-disable-next-line react/no-find-dom-node\n const thebody = react_dom__WEBPACK_IMPORTED_MODULE_2___default.a.findDOMNode(this.modalBodyRef.current);\n const modalBodySize = thebody.getBoundingClientRect();\n modalBodySize.height -= Object(_instructure_ui_utils__WEBPACK_IMPORTED_MODULE_8__[\"px\"])('3rem'); // leave room for the tabs\n\n if (modalBodySize.width !== state.modalBodySize.width || modalBodySize.height !== state.modalBodySize.height) {\n if (modalBodySize.width > 0 && modalBodySize.height > 0) {\n this.setState({\n modalBodySize\n });\n }\n }\n }\n }\n\n render() {\n const {\n CLOSE_TEXT,\n UPLOAD_MEDIA_LABEL\n } = this.props.uploadMediaTranslations.UploadMediaStrings;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_modal__WEBPACK_IMPORTED_MODULE_6__[\"Modal\"], {\n label: UPLOAD_MEDIA_LABEL,\n size: \"large\",\n onDismiss: this.onModalClose,\n open: this.props.open,\n shouldCloseOnDocumentClick: false,\n liveRegion: this.props.liveRegion\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_modal__WEBPACK_IMPORTED_MODULE_6__[\"Modal\"].Header, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_4__[\"CloseButton\"], {\n onClick: this.onModalClose,\n offset: \"medium\",\n placement: \"end\",\n screenReaderLabel: CLOSE_TEXT\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_heading__WEBPACK_IMPORTED_MODULE_5__[\"Heading\"], null, UPLOAD_MEDIA_LABEL)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_instructure_ui_modal__WEBPACK_IMPORTED_MODULE_6__[\"Modal\"].Body, {\n ref: this.modalBodyRef\n }, this.renderModalBody()), this.renderModalFooter());\n }\n\n}\nUploadMedia.propTypes = {\n disableSubmitWhileUploading: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"bool\"],\n languages: Object(prop_types__WEBPACK_IMPORTED_MODULE_0__[\"arrayOf\"])(Object(prop_types__WEBPACK_IMPORTED_MODULE_0__[\"shape\"])({\n id: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"string\"],\n label: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"string\"]\n })),\n liveRegion: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"func\"],\n rcsConfig: Object(prop_types__WEBPACK_IMPORTED_MODULE_0__[\"shape\"])({\n contextId: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"string\"],\n contextType: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"string\"],\n origin: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"string\"],\n headers: Object(prop_types__WEBPACK_IMPORTED_MODULE_0__[\"shape\"])({\n Authorization: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"string\"]\n })\n }),\n onStartUpload: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"func\"],\n onUploadComplete: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"func\"],\n onDismiss: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"func\"],\n open: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"bool\"],\n tabs: Object(prop_types__WEBPACK_IMPORTED_MODULE_0__[\"shape\"])({\n record: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"bool\"],\n upload: prop_types__WEBPACK_IMPORTED_MODULE_0__[\"bool\"]\n }),\n uploadMediaTranslations: _translationShape__WEBPACK_IMPORTED_MODULE_14__[\"default\"],\n // for testing\n computerFile: Object(prop_types__WEBPACK_IMPORTED_MODULE_0__[\"instanceOf\"])(File)\n};\nUploadMedia.defaultProps = {\n disableSubmitWhileUploading: false\n};\n\n//# sourceURL=webpack:///../canvas-media/es/UploadMedia.js?");
|
|
16772
16772
|
|
|
16773
16773
|
/***/ }),
|
|
16774
16774
|
|
|
@@ -16788,11 +16788,11 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
16788
16788
|
/*!***********************************!*\
|
|
16789
16789
|
!*** ../canvas-media/es/index.js ***!
|
|
16790
16790
|
\***********************************/
|
|
16791
|
-
/*! exports provided: default, ClosedCaptionPanel, RocketSVG, useComputerPanelFocus, isAudio, isVideo, isPreviewable, sizeMediaPlayer, LoadingIndicator, saveMediaRecording, saveClosedCaptions */
|
|
16791
|
+
/*! exports provided: default, ClosedCaptionPanel, RocketSVG, useComputerPanelFocus, isAudio, isVideo, isPreviewable, sizeMediaPlayer, LoadingIndicator, saveMediaRecording, saveClosedCaptions, CONSTANTS */
|
|
16792
16792
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
16793
16793
|
|
|
16794
16794
|
"use strict";
|
|
16795
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _UploadMedia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./UploadMedia */ \"../canvas-media/es/UploadMedia.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _UploadMedia__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _ClosedCaptionCreator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ClosedCaptionCreator */ \"../canvas-media/es/ClosedCaptionCreator/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ClosedCaptionPanel\", function() { return _ClosedCaptionCreator__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _RocketSVG__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./RocketSVG */ \"../canvas-media/es/RocketSVG.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RocketSVG\", function() { return _RocketSVG__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _useComputerPanelFocus__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./useComputerPanelFocus */ \"../canvas-media/es/useComputerPanelFocus.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useComputerPanelFocus\", function() { return _useComputerPanelFocus__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _shared_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./shared/utils */ \"../canvas-media/es/shared/utils.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isAudio\", function() { return _shared_utils__WEBPACK_IMPORTED_MODULE_4__[\"isAudio\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isVideo\", function() { return _shared_utils__WEBPACK_IMPORTED_MODULE_4__[\"isVideo\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isPreviewable\", function() { return _shared_utils__WEBPACK_IMPORTED_MODULE_4__[\"isPreviewable\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sizeMediaPlayer\", function() { return _shared_utils__WEBPACK_IMPORTED_MODULE_4__[\"sizeMediaPlayer\"]; });\n\n/* harmony import */ var _shared_LoadingIndicator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./shared/LoadingIndicator */ \"../canvas-media/es/shared/LoadingIndicator.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"LoadingIndicator\", function() { return _shared_LoadingIndicator__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony import */ var _saveMediaRecording__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./saveMediaRecording */ \"../canvas-media/es/saveMediaRecording.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"saveMediaRecording\", function() { return _saveMediaRecording__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"saveClosedCaptions\", function() { return _saveMediaRecording__WEBPACK_IMPORTED_MODULE_6__[\"saveClosedCaptions\"]; });\n\n/*\n * Copyright (C) 2020 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///../canvas-media/es/index.js?");
|
|
16795
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _UploadMedia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./UploadMedia */ \"../canvas-media/es/UploadMedia.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _UploadMedia__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _ClosedCaptionCreator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ClosedCaptionCreator */ \"../canvas-media/es/ClosedCaptionCreator/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ClosedCaptionPanel\", function() { return _ClosedCaptionCreator__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _RocketSVG__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./RocketSVG */ \"../canvas-media/es/RocketSVG.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RocketSVG\", function() { return _RocketSVG__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _useComputerPanelFocus__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./useComputerPanelFocus */ \"../canvas-media/es/useComputerPanelFocus.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useComputerPanelFocus\", function() { return _useComputerPanelFocus__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _shared_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./shared/utils */ \"../canvas-media/es/shared/utils.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isAudio\", function() { return _shared_utils__WEBPACK_IMPORTED_MODULE_4__[\"isAudio\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isVideo\", function() { return _shared_utils__WEBPACK_IMPORTED_MODULE_4__[\"isVideo\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isPreviewable\", function() { return _shared_utils__WEBPACK_IMPORTED_MODULE_4__[\"isPreviewable\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sizeMediaPlayer\", function() { return _shared_utils__WEBPACK_IMPORTED_MODULE_4__[\"sizeMediaPlayer\"]; });\n\n/* harmony import */ var _shared_LoadingIndicator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./shared/LoadingIndicator */ \"../canvas-media/es/shared/LoadingIndicator.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"LoadingIndicator\", function() { return _shared_LoadingIndicator__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony import */ var _saveMediaRecording__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./saveMediaRecording */ \"../canvas-media/es/saveMediaRecording.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"saveMediaRecording\", function() { return _saveMediaRecording__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"saveClosedCaptions\", function() { return _saveMediaRecording__WEBPACK_IMPORTED_MODULE_6__[\"saveClosedCaptions\"]; });\n\n/* harmony import */ var _shared_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./shared/constants */ \"../canvas-media/es/shared/constants.js\");\n/* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, \"CONSTANTS\", function() { return _shared_constants__WEBPACK_IMPORTED_MODULE_7__; });\n/*\n * Copyright (C) 2020 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///../canvas-media/es/index.js?");
|
|
16796
16796
|
|
|
16797
16797
|
/***/ }),
|
|
16798
16798
|
|
|
@@ -16844,6 +16844,18 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
16844
16844
|
|
|
16845
16845
|
/***/ }),
|
|
16846
16846
|
|
|
16847
|
+
/***/ "../canvas-media/es/shared/constants.js":
|
|
16848
|
+
/*!**********************************************!*\
|
|
16849
|
+
!*** ../canvas-media/es/shared/constants.js ***!
|
|
16850
|
+
\**********************************************/
|
|
16851
|
+
/*! exports provided: CC_FILE_MAX_BYTES */
|
|
16852
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
16853
|
+
|
|
16854
|
+
"use strict";
|
|
16855
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CC_FILE_MAX_BYTES\", function() { return CC_FILE_MAX_BYTES; });\n/*\n * Copyright (C) 2022 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nconst CC_FILE_MAX_BYTES = 295000;\n\n//# sourceURL=webpack:///../canvas-media/es/shared/constants.js?");
|
|
16856
|
+
|
|
16857
|
+
/***/ }),
|
|
16858
|
+
|
|
16847
16859
|
/***/ "../canvas-media/es/shared/utils.js":
|
|
16848
16860
|
/*!******************************************!*\
|
|
16849
16861
|
!*** ../canvas-media/es/shared/utils.js ***!
|
|
@@ -16948,7 +16960,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _def
|
|
|
16948
16960
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
16949
16961
|
|
|
16950
16962
|
"use strict";
|
|
16951
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/includes */ \"../../node_modules/@babel/runtime-corejs3/core-js-stable/instance/includes.js\");\n/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _uploader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uploader */ \"../k5uploader/es/uploader.js\");\n/* harmony import */ var _session_manager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./session_manager */ \"../k5uploader/es/session_manager.js\");\n/* harmony import */ var _kaltura_session__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./kaltura_session */ \"../k5uploader/es/kaltura_session.js\");\n/* harmony import */ var _message_bus__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./message_bus */ \"../k5uploader/es/message_bus.js\");\n/* harmony import */ var _messenger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./messenger */ \"../k5uploader/es/messenger.js\");\n/* harmony import */ var _entry_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./entry_service */ \"../k5uploader/es/entry_service.js\");\n/* harmony import */ var _uiconf_service__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./uiconf_service */ \"../k5uploader/es/uiconf_service.js\");\n/* harmony import */ var _k5_options__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./k5_options */ \"../k5uploader/es/k5_options.js\");\n\n
|
|
16963
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/includes */ \"../../node_modules/@babel/runtime-corejs3/core-js-stable/instance/includes.js\");\n/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _uploader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./uploader */ \"../k5uploader/es/uploader.js\");\n/* harmony import */ var _session_manager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./session_manager */ \"../k5uploader/es/session_manager.js\");\n/* harmony import */ var _kaltura_session__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./kaltura_session */ \"../k5uploader/es/kaltura_session.js\");\n/* harmony import */ var _message_bus__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./message_bus */ \"../k5uploader/es/message_bus.js\");\n/* harmony import */ var _messenger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./messenger */ \"../k5uploader/es/messenger.js\");\n/* harmony import */ var _entry_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./entry_service */ \"../k5uploader/es/entry_service.js\");\n/* harmony import */ var _uiconf_service__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./uiconf_service */ \"../k5uploader/es/uiconf_service.js\");\n/* harmony import */ var _k5_options__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./k5_options */ \"../k5uploader/es/k5_options.js\");\n\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\nfunction K5Uploader(options) {\n // set up instance as an event dispatcher\n _messenger__WEBPACK_IMPORTED_MODULE_5__[\"default\"].decorate(this);\n _k5_options__WEBPACK_IMPORTED_MODULE_8__[\"default\"].setOptions(options);\n this.buildDependencies();\n this.addListeners();\n this.session.setSession(options.kaltura_session);\n this.loadUiConf();\n}\n\nK5Uploader.prototype.destroy = function () {\n _message_bus__WEBPACK_IMPORTED_MODULE_4__[\"default\"].destroy();\n this.session = undefined;\n this.entryService = undefined;\n this.uiconfService = undefined;\n};\n\nK5Uploader.prototype.buildDependencies = function () {\n this.session = new _kaltura_session__WEBPACK_IMPORTED_MODULE_3__[\"default\"]();\n this.entryService = new _entry_service__WEBPACK_IMPORTED_MODULE_6__[\"default\"]();\n this.uiconfService = new _uiconf_service__WEBPACK_IMPORTED_MODULE_7__[\"default\"]();\n};\n\nK5Uploader.prototype.addListeners = function () {\n _message_bus__WEBPACK_IMPORTED_MODULE_4__[\"default\"].addEventListener('UiConf.error', this.onUiConfError.bind(this));\n _message_bus__WEBPACK_IMPORTED_MODULE_4__[\"default\"].addEventListener('UiConf.complete', this.onUiConfComplete.bind(this));\n _message_bus__WEBPACK_IMPORTED_MODULE_4__[\"default\"].addEventListener('Uploader.error', this.onUploadError.bind(this));\n _message_bus__WEBPACK_IMPORTED_MODULE_4__[\"default\"].addEventListener('Uploader.success', this.onUploadSuccess.bind(this));\n _message_bus__WEBPACK_IMPORTED_MODULE_4__[\"default\"].addEventListener('Uploader.progress', this.onProgress.bind(this));\n _message_bus__WEBPACK_IMPORTED_MODULE_4__[\"default\"].addEventListener('Entry.success', this.onEntrySuccess.bind(this));\n _message_bus__WEBPACK_IMPORTED_MODULE_4__[\"default\"].addEventListener('Entry.fail', this.onEntryFail.bind(this));\n};\n\nK5Uploader.prototype.onSessionLoaded = function (data) {\n this.session = data;\n this.loadUiConf();\n};\n\nK5Uploader.prototype.loadUiConf = function () {\n this.uiconfService.load(this.session);\n};\n\nK5Uploader.prototype.onUiConfComplete = function (result) {\n this.uiconfig = result;\n this.dispatchEvent('K5.ready', {}, this);\n};\n\nK5Uploader.prototype.uploadFile = function (file) {\n var _context;\n\n this.file = file;\n\n if (!file) {\n return;\n }\n\n if (this.uiconfig.acceptableFile(file, _k5_options__WEBPACK_IMPORTED_MODULE_8__[\"default\"].allowedMediaTypes) || _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default()(_context = ['webm', 'video/webm', 'audio/webm']).call(_context, file.type)) {\n this.uploader = new _uploader__WEBPACK_IMPORTED_MODULE_1__[\"default\"]();\n this.uploader.send(this.session, file);\n } else {\n const details = {\n maxFileSize: this.uiconfig.maxFileSize,\n file,\n allowedMediaTypes: _k5_options__WEBPACK_IMPORTED_MODULE_8__[\"default\"].allowedMediaTypes\n };\n this.dispatchEvent('K5.fileError', details, this);\n }\n};\n\nK5Uploader.prototype.onUploadSuccess = function (result) {\n // combine all needed data and add an entry to kaltura\n const allParams = [this.session.asEntryParams(), result.asEntryParams(), _k5_options__WEBPACK_IMPORTED_MODULE_8__[\"default\"].asEntryParams()];\n this.entryService.addEntry(allParams);\n}; // Delegate to publicly available K5 events\n\n\nK5Uploader.prototype.onProgress = function (e) {\n this.dispatchEvent('K5.progress', e, this);\n};\n\nK5Uploader.prototype.onUploadError = function (result) {\n this.dispatchEvent('K5.error', result, this);\n};\n\nK5Uploader.prototype.onEntrySuccess = function (data) {\n this.dispatchEvent('K5.complete', data, this);\n};\n\nK5Uploader.prototype.onEntryFail = function (data) {\n this.dispatchEvent('K5.error', data, this);\n};\n\nK5Uploader.prototype.onUiConfError = function (result) {\n this.dispatchEvent('K5.uiconfError', result, this);\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (K5Uploader);\n\n//# sourceURL=webpack:///../k5uploader/es/k5uploader.js?");
|
|
16952
16964
|
|
|
16953
16965
|
/***/ }),
|
|
16954
16966
|
|
|
@@ -17131,30 +17143,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/*\n * Copyright (C) 2019 - p
|
|
|
17131
17143
|
|
|
17132
17144
|
/***/ }),
|
|
17133
17145
|
|
|
17134
|
-
/***/ "./node_modules/@instructure/debounce/es/debounce.js":
|
|
17135
|
-
/*!***********************************************************!*\
|
|
17136
|
-
!*** ./node_modules/@instructure/debounce/es/debounce.js ***!
|
|
17137
|
-
\***********************************************************/
|
|
17138
|
-
/*! exports provided: default, debounce */
|
|
17139
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
17140
|
-
|
|
17141
|
-
"use strict";
|
|
17142
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"debounce\", function() { return debounce; });\n/*\n * The MIT License (MIT)\n *\n * Copyright (c) 2015 - present Instructure, Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n/**\n * ---\n * category: utilities\n * ---\n * Creates a debounced function that delays invoking func until after wait milliseconds have elapsed\n * since the last time the debounced function was invoked. The debounced function comes with a cancel\n * method to cancel delayed func invocations and a flush method to immediately invoke them. Provide options\n * to indicate whether func should be invoked on the leading and/or trailing edge of the wait timeout.\n * The func is invoked with the last arguments provided to the debounced function. Subsequent calls to the\n * debounced function return the result of the last func invocation.\n *\n * [lodash.debounce](https://github.com/lodash/lodash/blob/master/debounce.js)\n * doesn't work well with [sinon fakeTimers](http://sinonjs.org/releases/v1.17.7/fake-timers/)\n * so this is forked from the lodash source.\n *\n * Note: Modified from the original to check for cancelled boolean before invoking func to prevent React setState\n * on unmounted components.\n *\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n */\nfunction debounce(func) {\n var wait = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;\n var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};\n var lastArgs, lastThis, result, lastCallTime;\n var lastInvokeTime = 0;\n var timers = [];\n var cancelled = false;\n\n if (typeof func !== 'function') {\n throw new TypeError('Expected a function');\n }\n\n var leading = !!options.leading;\n var maxing = ('maxWait' in options);\n var trailing = 'trailing' in options ? !!options.trailing : true;\n var maxWait = maxing ? Math.max(+options.maxWait || 0, wait) : 0;\n\n function invokeFunc(time) {\n var args = lastArgs;\n var thisArg = lastThis;\n lastArgs = lastThis = void 0;\n lastInvokeTime = time;\n\n if (cancelled !== true) {\n result = func.apply(thisArg, args);\n return result;\n }\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time; // Start the timer for the trailing edge.\n\n timers.push(setTimeout(timerExpired, wait)); // Invoke the leading edge.\n\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime;\n var timeSinceLastInvoke = time - lastInvokeTime;\n var result = wait - timeSinceLastCall;\n return maxing ? Math.min(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime;\n var timeSinceLastInvoke = time - lastInvokeTime; // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n\n return typeof lastCallTime === 'undefined' || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n\n function timerExpired() {\n var time = Date.now();\n\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n } // Restart the timer.\n\n\n timers.push(setTimeout(timerExpired, remainingWait(time)));\n }\n\n function trailingEdge(time) {\n clearAllTimers(); // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n\n lastArgs = lastThis = void 0;\n return result;\n }\n\n function cancel() {\n cancelled = true;\n clearAllTimers();\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = void 0;\n }\n\n function flush() {\n return timers.length === 0 ? result : trailingEdge(Date.now());\n }\n\n function clearAllTimers() {\n timers.forEach(function (timerId) {\n return clearTimeout(timerId);\n });\n timers = [];\n }\n\n function debounced() {\n var time = Date.now();\n var isInvoking = shouldInvoke(time);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n lastArgs = args;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timers.length === 0) {\n return leadingEdge(lastCallTime);\n }\n\n if (maxing) {\n // Handle invocations in a tight loop.\n timers.push(setTimeout(timerExpired, wait));\n return invokeFunc(lastCallTime);\n }\n }\n\n if (timers.length === 0) {\n timers.push(setTimeout(timerExpired, wait));\n }\n\n return result;\n }\n\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (debounce);\n\n\n//# sourceURL=webpack:///./node_modules/@instructure/debounce/es/debounce.js?");
|
|
17143
|
-
|
|
17144
|
-
/***/ }),
|
|
17145
|
-
|
|
17146
|
-
/***/ "./node_modules/@instructure/debounce/es/index.js":
|
|
17147
|
-
/*!********************************************************!*\
|
|
17148
|
-
!*** ./node_modules/@instructure/debounce/es/index.js ***!
|
|
17149
|
-
\********************************************************/
|
|
17150
|
-
/*! exports provided: default, debounce */
|
|
17151
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
17152
|
-
|
|
17153
|
-
"use strict";
|
|
17154
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _debounce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./debounce */ \"./node_modules/@instructure/debounce/es/debounce.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"debounce\", function() { return _debounce__WEBPACK_IMPORTED_MODULE_0__[\"debounce\"]; });\n\n/*\n * The MIT License (MIT)\n *\n * Copyright (c) 2015 - present Instructure, Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_debounce__WEBPACK_IMPORTED_MODULE_0__[\"debounce\"]);\n\n\n//# sourceURL=webpack:///./node_modules/@instructure/debounce/es/index.js?");
|
|
17155
|
-
|
|
17156
|
-
/***/ }),
|
|
17157
|
-
|
|
17158
17146
|
/***/ "./node_modules/webpack/buildin/amd-define.js":
|
|
17159
17147
|
/*!***************************************!*\
|
|
17160
17148
|
!*** (webpack)/buildin/amd-define.js ***!
|
|
@@ -17223,6 +17211,18 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Bri
|
|
|
17223
17211
|
|
|
17224
17212
|
/***/ }),
|
|
17225
17213
|
|
|
17214
|
+
/***/ "./src/canvasFileBrowser/FlashAlert.js":
|
|
17215
|
+
/*!*********************************************!*\
|
|
17216
|
+
!*** ./src/canvasFileBrowser/FlashAlert.js ***!
|
|
17217
|
+
\*********************************************/
|
|
17218
|
+
/*! exports provided: default, showFlashAlert, destroyContainer, showFlashError, showFlashSuccess */
|
|
17219
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
17220
|
+
|
|
17221
|
+
"use strict";
|
|
17222
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return FlashAlert; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"showFlashAlert\", function() { return showFlashAlert; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"destroyContainer\", function() { return destroyContainer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"showFlashError\", function() { return showFlashError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"showFlashSuccess\", function() { return showFlashSuccess; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-dom */ \"../../node_modules/react-dom/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _instructure_ui_alerts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-alerts */ \"../../node_modules/@instructure/ui-alerts/es/index.js\");\n/* harmony import */ var _instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-buttons */ \"../../node_modules/@instructure/ui-buttons/es/index.js\");\n/* harmony import */ var _instructure_ui_text__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-text */ \"../../node_modules/@instructure/ui-text/es/index.js\");\n/* harmony import */ var _instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @instructure/ui-a11y-content */ \"../../node_modules/@instructure/ui-a11y-content/es/index.js\");\n/* harmony import */ var _instructure_ui_motion__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @instructure/ui-motion */ \"../../node_modules/@instructure/ui-motion/es/index.js\");\n/* harmony import */ var _rce_RCEGlobals__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../rce/RCEGlobals */ \"./src/rce/RCEGlobals.js\");\n/*\n * Copyright (C) 2017 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n/**\n * Flash alerts, especially for ajax error messages\n * Typical usage:\n * import {showFlashError} from './FlashAlert'\n * ...\n * axios.put(url, data).then((response) => {\n * // do something with response\n * }).catch(showFlashError(your_error_message))\n *\n * showFlashError() with no argument shows a generic message\n *\n * On error, will display an inst-ui Alert at the top of the page\n * with an error message and \"Details\" button. When the user clicks\n * the button, it shows error details extracted from the axios Error\n *\n * You could also import the lower level showFlashAlert function or\n * the FlashAlert component if you need more control\n *\n * showFlashAlert({ err, message, type }, onCloseCallback)\n * err: error object\n * message: user-facing message\n * type: one of ['info', 'success', 'warning', 'error']\n * default is 'info' unless an error object is passed in, else is 'error'\n */\n\n\n\n\n\n\n\n\n\n\nconst messageHolderId = 'flashalert_message_holder'; // specs fail if I reuse jquery's elements\n\nconst screenreaderMessageHolderId = 'flash_screenreader_holder';\nconst TIMEOUT = 10000; // An Alert with a message and \"Details\" button which surfaces\n// more info about the error when pressed.\n// Is displayed at the top of the document, and will close itself after a while\n\nclass FlashAlert extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {\n constructor(props) {\n super(props);\n\n this.showDetails = () => {\n this.setState({\n showDetails: true\n });\n clearTimeout(this.timerId);\n this.timerId = setTimeout(() => this.closeAlert(), this.props.timeout);\n };\n\n this.closeAlert = () => {\n this.setState({\n isOpen: false\n }, () => {\n setTimeout(() => {\n clearTimeout(this.timerId);\n this.props.onClose();\n }, 500);\n });\n };\n\n this.state = {\n showDetails: false,\n isOpen: true\n };\n this.timerId = 0;\n }\n\n getLiveRegion() {\n // return element where flash screenreader messages go.\n // create if necessary\n let liveRegion = document.getElementById(screenreaderMessageHolderId);\n\n if (!liveRegion) {\n liveRegion = document.createElement('div');\n liveRegion.id = screenreaderMessageHolderId;\n liveRegion.setAttribute('role', 'alert');\n document.body.appendChild(liveRegion);\n }\n\n return liveRegion;\n }\n\n findDetailMessage() {\n const err = this.props.error;\n let a = err.message;\n let b;\n\n if (err.response) {\n if (err.response.data) {\n try {\n if (Array.isArray(err.response.data.errors)) {\n // probably a canvas api\n a = err.response.data.errors[0].message;\n b = err.message;\n } else if (err.response.data.message) {\n // probably a canvas api too\n a = err.response.data.message;\n b = err.message;\n }\n } catch (ignore) {\n a = err.message;\n }\n }\n }\n\n return {\n a,\n b\n };\n }\n\n renderDetailMessage() {\n const {\n a,\n b\n } = this.findDetailMessage();\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_6__[\"Text\"], {\n as: \"p\",\n fontStyle: \"italic\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_6__[\"Text\"], null, a), b ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"br\", null) : null, b ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_6__[\"Text\"], null, b) : null);\n }\n\n render() {\n let details = null;\n\n if (this.props.error) {\n if (this.state.showDetails) {\n details = this.renderDetailMessage();\n } else {\n details = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_7__[\"PresentationContent\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_5__[\"Button\"], {\n variant: \"link\",\n onClick: this.showDetails\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_3__[\"default\"])('Details'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_7__[\"ScreenReaderContent\"], null, this.renderDetailMessage()));\n }\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_motion__WEBPACK_IMPORTED_MODULE_8__[\"Transition\"], {\n transitionOnMount: true,\n in: this.state.isOpen,\n type: \"fade\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_alerts__WEBPACK_IMPORTED_MODULE_4__[\"Alert\"], {\n variant: this.props.variant,\n renderCloseButtonLabel: Object(_format_message__WEBPACK_IMPORTED_MODULE_3__[\"default\"])('Close'),\n onDismiss: this.closeAlert,\n margin: \"small auto\",\n timeout: this.props.timeout,\n liveRegion: this.getLiveRegion,\n transition: \"fade\",\n screenReaderOnly: this.props.screenReaderOnly\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"p\", {\n style: {\n margin: '0 -5px'\n }\n }, this.props.message), details)));\n }\n\n}\nFlashAlert.propTypes = {\n onClose: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,\n message: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired,\n error: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.instanceOf(Error),\n variant: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf(['info', 'success', 'warning', 'error']),\n timeout: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n screenReaderOnly: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool\n};\nFlashAlert.defaultProps = {\n error: null,\n variant: 'info',\n timeout: TIMEOUT,\n screenReaderOnly: false\n};\nfunction showFlashAlert(_ref) {\n let {\n message,\n err,\n type = err ? 'error' : 'info',\n srOnly = false\n } = _ref;\n\n function closeAlert(atNode) {\n react_dom__WEBPACK_IMPORTED_MODULE_2___default.a.unmountComponentAtNode(atNode);\n atNode.remove();\n }\n\n function getAlertContainer() {\n let alertContainer = document.getElementById(messageHolderId);\n\n if (!alertContainer) {\n alertContainer = document.createElement('div');\n alertContainer.classList.add('clickthrough-container');\n alertContainer.id = messageHolderId;\n alertContainer.setAttribute('style', 'position: fixed; top: 0; left: 0; width: 100%; z-index: 100000;');\n document.body.appendChild(alertContainer);\n }\n\n return alertContainer;\n }\n\n function renderAlert(parent) {\n var _RCEGlobals$getConfig;\n\n const configuredTimeout = (_RCEGlobals$getConfig = _rce_RCEGlobals__WEBPACK_IMPORTED_MODULE_9__[\"default\"].getConfig()) === null || _RCEGlobals$getConfig === void 0 ? void 0 : _RCEGlobals$getConfig.flashAlertTimeout;\n react_dom__WEBPACK_IMPORTED_MODULE_2___default.a.render( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(FlashAlert, {\n message: message,\n timeout: Number.isNaN(parseInt(configuredTimeout, 10)) ? TIMEOUT : configuredTimeout,\n error: err,\n variant: type,\n onClose: closeAlert.bind(null, parent),\n screenReaderOnly: srOnly\n }), parent);\n }\n\n const div = document.createElement('div'); // div.setAttribute('class', styles.flashMessage)\n\n div.setAttribute('style', 'max-width:50em;margin:1rem auto;');\n div.setAttribute('class', 'flashalert-message');\n getAlertContainer().appendChild(div);\n renderAlert(div);\n}\nfunction destroyContainer() {\n const container = document.getElementById(messageHolderId);\n const liveRegion = document.getElementById(screenreaderMessageHolderId);\n if (container) container.remove();\n if (liveRegion) liveRegion.remove();\n}\nfunction showFlashError() {\n let message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Object(_format_message__WEBPACK_IMPORTED_MODULE_3__[\"default\"])('An error occurred making a network request');\n return err => showFlashAlert({\n message,\n err,\n type: 'error'\n });\n}\nfunction showFlashSuccess(message) {\n return () => showFlashAlert({\n message,\n type: 'success'\n });\n}\n\n//# sourceURL=webpack:///./src/canvasFileBrowser/FlashAlert.js?");
|
|
17223
|
+
|
|
17224
|
+
/***/ }),
|
|
17225
|
+
|
|
17226
17226
|
/***/ "./src/canvasFileBrowser/natcompare.js":
|
|
17227
17227
|
/*!*********************************************!*\
|
|
17228
17228
|
!*** ./src/canvasFileBrowser/natcompare.js ***!
|
|
@@ -17375,7 +17375,19 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
17375
17375
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
17376
17376
|
|
|
17377
17377
|
"use strict";
|
|
17378
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return KeyboardShortcutModal; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _instructure_ui_heading__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @instructure/ui-heading */ \"../../node_modules/@instructure/ui-heading/es/index.js\");\n/* harmony import */ var _instructure_ui_list__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @instructure/ui-list */ \"../../node_modules/@instructure/ui-list/es/index.js\");\n/* harmony import */ var _instructure_ui_text__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-text */ \"../../node_modules/@instructure/ui-text/es/index.js\");\n/* harmony import */ var _instructure_ui_modal__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-modal */ \"../../node_modules/@instructure/ui-modal/es/index.js\");\n/* harmony import */ var _instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-buttons */ \"../../node_modules/@instructure/ui-buttons/es/index.js\");\n/* harmony import */ var _instructure_ui_view__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @instructure/ui-view */ \"../../node_modules/@instructure/ui-view/es/index.js\");\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../format-message */ \"./src/format-message.js\");\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\nfunction KeyboardShortcutModal(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_modal__WEBPACK_IMPORTED_MODULE_5__[\"Modal\"], {\n \"data-testid\": \"RCE_KeyboardShortcutModal\",\n \"data-mce-component\": true,\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])('Keyboard Shortcuts'),\n open: props.open,\n shouldCloseOnDocumentClick: true,\n shouldReturnFocus: true,\n size: \"auto\",\n onClose: props.onClose,\n onExited: props.onExited,\n onDismiss: props.onDismiss\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_modal__WEBPACK_IMPORTED_MODULE_5__[\"Modal\"].Header, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_6__[\"CloseButton\"], {\n placement: \"end\",\n offset: \"medium\",\n
|
|
17378
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return KeyboardShortcutModal; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _instructure_ui_heading__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @instructure/ui-heading */ \"../../node_modules/@instructure/ui-heading/es/index.js\");\n/* harmony import */ var _instructure_ui_list__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @instructure/ui-list */ \"../../node_modules/@instructure/ui-list/es/index.js\");\n/* harmony import */ var _instructure_ui_text__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-text */ \"../../node_modules/@instructure/ui-text/es/index.js\");\n/* harmony import */ var _instructure_ui_modal__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-modal */ \"../../node_modules/@instructure/ui-modal/es/index.js\");\n/* harmony import */ var _instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-buttons */ \"../../node_modules/@instructure/ui-buttons/es/index.js\");\n/* harmony import */ var _instructure_ui_view__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @instructure/ui-view */ \"../../node_modules/@instructure/ui-view/es/index.js\");\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _userOS__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./userOS */ \"./src/rce/userOS.ts\");\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\nfunction KeyboardShortcutModal(props) {\n const OSKey = Object(_userOS__WEBPACK_IMPORTED_MODULE_9__[\"determineOSDependentKey\"])();\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_modal__WEBPACK_IMPORTED_MODULE_5__[\"Modal\"], {\n \"data-testid\": \"RCE_KeyboardShortcutModal\",\n \"data-mce-component\": true,\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])('Keyboard Shortcuts'),\n open: props.open,\n shouldCloseOnDocumentClick: true,\n shouldReturnFocus: true,\n size: \"auto\",\n onClose: props.onClose,\n onExited: props.onExited,\n onDismiss: props.onDismiss\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_modal__WEBPACK_IMPORTED_MODULE_5__[\"Modal\"].Header, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_6__[\"CloseButton\"], {\n placement: \"end\",\n offset: \"medium\",\n color: \"primary\",\n onClick: props.onDismiss,\n screenReaderLabel: Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])('Close')\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_heading__WEBPACK_IMPORTED_MODULE_2__[\"Heading\"], null, Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])('Keyboard Shortcuts'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_modal__WEBPACK_IMPORTED_MODULE_5__[\"Modal\"].Body, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_7__[\"View\"], {\n as: \"div\",\n margin: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_list__WEBPACK_IMPORTED_MODULE_3__[\"List\"], {\n isUnstyled: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_list__WEBPACK_IMPORTED_MODULE_3__[\"List\"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_4__[\"Text\"], {\n weight: \"bold\"\n }, OSKey, \"+F8/\", OSKey, \"+0\"), ' ', Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])('Open this keyboard shortcuts dialog')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_list__WEBPACK_IMPORTED_MODULE_3__[\"List\"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_4__[\"Text\"], {\n weight: \"bold\"\n }, \"CTRL+F9\"), \" \", Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])('Focus element options toolbar')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_list__WEBPACK_IMPORTED_MODULE_3__[\"List\"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_4__[\"Text\"], {\n weight: \"bold\"\n }, OSKey, \"+F9\"), \" \", Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(\"Go to the editor's menubar\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_list__WEBPACK_IMPORTED_MODULE_3__[\"List\"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_4__[\"Text\"], {\n weight: \"bold\"\n }, OSKey, \"+F10\"), \" \", Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(\"Go to the editor's toolbar\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_list__WEBPACK_IMPORTED_MODULE_3__[\"List\"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_4__[\"Text\"], {\n weight: \"bold\"\n }, \"ESC\"), ' ', Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])('Close a menu or dialog. Also returns you to the editor area')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_list__WEBPACK_IMPORTED_MODULE_3__[\"List\"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_4__[\"Text\"], {\n weight: \"bold\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])('TAB/Arrows')), ' ', Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])('Navigate through the menu or toolbar'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_7__[\"View\"], {\n as: \"p\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_8__[\"default\"])('Other editor shortcuts may be found at'), ' ', /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"a\", {\n href: \"https://www.tiny.cloud/docs/advanced/keyboard-shortcuts/\",\n target: \"rcekbshortcut\"\n }, \"https://www.tiny.cloud/docs/advanced/keyboard-shortcuts/\")))));\n}\nKeyboardShortcutModal.propTypes = {\n open: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"].isRequired,\n onClose: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n onDismiss: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n onExited: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"]\n};\n\n//# sourceURL=webpack:///./src/rce/KeyboardShortcutModal.js?");
|
|
17379
|
+
|
|
17380
|
+
/***/ }),
|
|
17381
|
+
|
|
17382
|
+
/***/ "./src/rce/RCEGlobals.js":
|
|
17383
|
+
/*!*******************************!*\
|
|
17384
|
+
!*** ./src/rce/RCEGlobals.js ***!
|
|
17385
|
+
\*******************************/
|
|
17386
|
+
/*! exports provided: default */
|
|
17387
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
17388
|
+
|
|
17389
|
+
"use strict";
|
|
17390
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/*\n * Copyright (C) 2022 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nconst isEmpty = obj => Object.keys(obj).length === 0;\n\nclass RCEGlobals {\n constructor() {\n if (!RCEGlobals.instance) {\n RCEGlobals.instance = this;\n this._data = {\n features: {},\n config: {}\n };\n }\n\n return RCEGlobals.instance;\n }\n\n getFeatures() {\n return this._data.features;\n }\n\n setFeatures(features) {\n // Set only once\n if (isEmpty(this._data.features)) {\n this._data.features = { ...features\n };\n Object.freeze(this._data.features);\n }\n }\n\n getConfig() {\n return this._data.config;\n }\n\n setConfig(config) {\n // Set only once\n if (isEmpty(this._data.config)) {\n this._data.config = { ...config\n };\n Object.freeze(this._data.config);\n }\n }\n\n}\n\nconst instance = new RCEGlobals();\n/* harmony default export */ __webpack_exports__[\"default\"] = (instance);\n\n//# sourceURL=webpack:///./src/rce/RCEGlobals.js?");
|
|
17379
17391
|
|
|
17380
17392
|
/***/ }),
|
|
17381
17393
|
|
|
@@ -17387,7 +17399,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
17387
17399
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
17388
17400
|
|
|
17389
17401
|
"use strict";
|
|
17390
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"editorOptionsPropType\", function() { return editorOptionsPropType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"storageAvailable\", function() { return storageAvailable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toolbarPropType\", function() { return toolbarPropType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"menuPropType\", function() { return menuPropType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ltiToolsPropType\", function() { return ltiToolsPropType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeMenuItems\", function() { return mergeMenuItems; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeMenu\", function() { return mergeMenu; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeToolbar\", function() { return mergeToolbar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergePlugins\", function() { return mergePlugins; });\n/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/includes */ \"../../node_modules/@babel/runtime-corejs3/core-js-stable/instance/includes.js\");\n/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _tinymce_tinymce_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @tinymce/tinymce-react */ \"../../node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/index.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash */ \"../../node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _instructure_ui_themeable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-themeable */ \"../../node_modules/@instructure/ui-themeable/es/index.js\");\n/* harmony import */ var _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-icons */ \"../../node_modules/@instructure/ui-icons/es/index.js\");\n/* harmony import */ var _instructure_ui_alerts__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @instructure/ui-alerts */ \"../../node_modules/@instructure/ui-alerts/es/index.js\");\n/* harmony import */ var _instructure_ui_spinner__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @instructure/ui-spinner */ \"../../node_modules/@instructure/ui-spinner/es/index.js\");\n/* harmony import */ var _instructure_ui_view__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @instructure/ui-view */ \"../../node_modules/@instructure/ui-view/es/index.js\");\n/* harmony import */ var _instructure_debounce__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @instructure/debounce */ \"./node_modules/@instructure/debounce/es/index.js\");\n/* harmony import */ var _common_getCookie__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../common/getCookie */ \"./src/common/getCookie.js\");\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _contentInsertion__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./contentInsertion */ \"./src/rce/contentInsertion.js\");\n/* harmony import */ var _indicatorRegion__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./indicatorRegion */ \"./src/rce/indicatorRegion.js\");\n/* harmony import */ var _editorLanguage__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./editorLanguage */ \"./src/rce/editorLanguage.js\");\n/* harmony import */ var _editorLanguage__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_editorLanguage__WEBPACK_IMPORTED_MODULE_15__);\n/* harmony import */ var _normalizeLocale__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./normalizeLocale */ \"./src/rce/normalizeLocale.js\");\n/* harmony import */ var _sanitizePlugins__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./sanitizePlugins */ \"./src/rce/sanitizePlugins.js\");\n/* harmony import */ var _getCanvasUrl__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./getCanvasUrl */ \"./src/rce/getCanvasUrl.js\");\n/* harmony import */ var _common_indicate__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../common/indicate */ \"./src/common/indicate.js\");\n/* harmony import */ var _bridge__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../bridge */ \"./src/bridge/index.js\");\n/* harmony import */ var _plugins_shared_CanvasContentTray__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./plugins/shared/CanvasContentTray */ \"./src/rce/plugins/shared/CanvasContentTray.js\");\n/* harmony import */ var _StatusBar__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./StatusBar */ \"./src/rce/StatusBar.js\");\n/* harmony import */ var _customEvents__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./customEvents */ \"./src/rce/customEvents.js\");\n/* harmony import */ var _ShowOnFocusButton__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./ShowOnFocusButton */ \"./src/rce/ShowOnFocusButton/index.js\");\n/* harmony import */ var _skins_theme__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../skins/theme */ \"./src/skins/theme.js\");\n/* harmony import */ var _plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./plugins/shared/fileTypeUtils */ \"./src/rce/plugins/shared/fileTypeUtils.js\");\n/* harmony import */ var _KeyboardShortcutModal__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./KeyboardShortcutModal */ \"./src/rce/KeyboardShortcutModal.js\");\n/* harmony import */ var _AlertMessageArea__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./AlertMessageArea */ \"./src/rce/AlertMessageArea.js\");\n/* harmony import */ var _alertHandler__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./alertHandler */ \"./src/rce/alertHandler.js\");\n/* harmony import */ var _plugins_shared_ContentSelection__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./plugins/shared/ContentSelection */ \"./src/rce/plugins/shared/ContentSelection.js\");\n/* harmony import */ var _plugins_instructure_record_VideoOptionsTray_TrayController__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./plugins/instructure_record/VideoOptionsTray/TrayController */ \"./src/rce/plugins/instructure_record/VideoOptionsTray/TrayController.js\");\nvar _dec, _class, _class2;\n\n\n\n/*\n * Copyright (C) 2018 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst styles = {\n componentId: 'dyzZI',\n template: function (theme) {\n return `\n\n\n\n\n.canvas-rce__skins--root {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n}\n\n\n\n.rce-wrapper textarea {\n width: 100%;\n box-sizing: border-box;\n min-height: auto;\n }\n\n.tox,\n .tox *:not(svg) {\n color: inherit;\n font-family: inherit;\n }\n\n\n\n[dir='rtl'] .tox :not(svg) {\n direction: rtl;\n }\n\n.tox:not(.tox-tinymce-inline) .tox-editor-header {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n.tox.tox-tinymce .screenreader-only {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n transform: translatez(0);\n }\n\n.tox-tinymce-aux {\n font-family: ${theme.canvasFontFamily || 'inherit'};\n }\n\n\n\n.tox.tox-tinymce-aux {\n z-index: 10000;\n }\n\n.tox .tox-button {\n background-color: ${theme.canvasPrimaryButtonHoverBackground || 'inherit'};\n font-family: ${theme.canvasFontFamily || 'inherit'};\n font-weight: ${theme.canvasButtonFontWeight || 'inherit'};\n font-size: ${theme.canvasButtonFontSize || 'inherit'};\n color: ${theme.canvasPrimaryButtonColor || 'inherit'};\n border-color: ${theme.canvasPrimaryButtonBorderColor || 'inherit'};\n line-height: calc(${theme.canvasButtonLineHeight || 'inherit'} - 2px);\n padding: ${theme.canvasButtonPadding || 'inherit'};\n }\n\n.tox .tox-button[disabled] {\n opacity: 0.5;\n border-color: inherit;\n color: inherit;\n }\n\n.tox .tox-button:focus:not(:disabled) {\n background-color: ${theme.canvasPrimaryButtonBackground || 'inherit'};\n color: ${theme.canvasPrimaryButtonColor || 'inherit'};\n border-color: ${theme.canvasBackgroundColor || 'inherit'};\n box-shadow: ${theme.canvasFocusBoxShadow || 'inherit'};\n }\n\n.tox .tox-button:hover:not(:disabled) {\n background-color: ${theme.canvasPrimaryButtonHoverBackground || 'inherit'};\n color: ${theme.canvasPrimaryButtonHoverColor || 'inherit'};\n }\n\n.tox .tox-button:active:not(:disabled) {\n background-color: ${theme.canvasPrimaryButtonBackground || 'inherit'};\n border-color: ${theme.canvasPrimaryButtonBorderColor || 'inherit'};\n color: ${theme.canvasPrimaryButtonColor || 'inherit'};\n }\n\n.tox .tox-button--secondary {\n background-color: ${theme.canvasSecondaryButtonBackground || 'inherit'};\n border-color: ${theme.canvasSecondaryButtonBorderColor || 'inherit'};\n color: ${theme.canvasSecondaryButtonColor || 'inherit'};\n }\n\n.tox .tox-button--secondary[disabled] {\n background-color: inherit;\n border-color: ${theme.canvasSecondaryButtonBorderColor || 'inherit'};\n color: inherit;\n opacity: 0.5;\n }\n\n.tox .tox-button--secondary:focus:not(:disabled) {\n background-color: inherit;\n border-color: ${theme.canvasFocusBorderColor || 'inherit'};\n color: inherit;\n }\n\n.tox .tox-button--secondary:hover:not(:disabled) {\n background-color: ${theme.canvasSecondaryButtonHoverBackground || 'inherit'};\n border-color: ${theme.canvasSecondaryButtonBorderColor || 'inherit'};\n color: ${theme.canvasSecondaryButtonHoverColor || 'inherit'};\n }\n\n.tox .tox-button--secondary:active:not(:disabled) {\n background-color: inherit;\n border-color: ${theme.canvasSecondaryButtonBorderColor || 'inherit'};\n color: inherit;\n }\n\n.tox .tox-button-link {\n font-family: ${theme.canvasFontFamily || 'inherit'};\n }\n\n.tox .tox-button--naked {\n background: ${theme.canvasButtonBackground || 'inherit'};\n border-color: ${theme.canvasButtonBorderColor || 'inherit'};\n color: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-button--naked:hover:not(:disabled) {\n background-color: ${theme.canvasButtonHoverBackground || 'inherit'};\n border-color: ${theme.canvasButtonBorderColor || 'inherit'};\n color: ${theme.canvasButtonHoverColor || 'inherit'};\n }\n\n.tox .tox-button--naked:focus:not(:disabled) {\n background-color: ${theme.canvasButtonBackground || 'inherit'};\n color: ${theme.canvasButtonColor || 'inherit'};\n border-color: ${theme.canvasBackgroundColor || 'inherit'};\n box-shadow: ${theme.canvasFocusBoxShadow || 'inherit'};\n }\n\n.tox .tox-button--naked:active:not(:disabled) {\n background-color: inherit;\n color: inherit;\n }\n\n.tox .tox-button--naked.tox-button--icon {\n color: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-button--naked.tox-button--icon:hover:not(:disabled) {\n background: ${theme.canvasButtonHoverBackground || 'inherit'};\n color: ${theme.canvasButtonHoverColor || 'inherit'};\n }\n\n.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg {\n fill: rgba(45, 59, 69, 0.3);\n }\n\n.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg {\n fill: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg {\n fill: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox input.tox-checkbox__input:focus + .tox-checkbox__icons {\n box-shadow: ${theme.canvasFocusBoxShadow || 'inherit'};\n }\n\n.tox .tox-collection--list .tox-collection__group {\n border-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-collection__group-heading {\n background-color: #e3e6e8;\n color: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-collection__item {\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-collection__item--state-disabled {\n background-color: unset;\n opacity: 0.5;\n cursor: default;\n }\n\n.tox .tox-collection--list .tox-collection__item--enabled {\n color: contrast(inherit, ${theme.canvasTextColor || 'inherit'}, #fff);\n }\n\n.tox .tox-collection--list .tox-collection__item--active {\n background-color: ${theme.activeMenuItemBackground || 'inherit'};\n color: ${theme.activeMenuItemLabelColor || 'inherit'};\n }\n\n.tox\n .tox-collection--list\n .tox-collection__item--active:not(.tox-collection__item--state-disabled) {\n background-color: ${theme.activeMenuItemBackground || 'inherit'};\n color: ${theme.activeMenuItemLabelColor || 'inherit'};\n }\n\n.tox .tox-collection--toolbar .tox-collection__item--enabled {\n background-color: #cbced1;\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-collection--toolbar .tox-collection__item--active {\n background-color: #e0e2e3;\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-collection--grid .tox-collection__item--enabled {\n background-color: #cbced1;\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-collection--grid .tox-collection__item--active {\n background-color: #e0e2e3;\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-collection--list .tox-collection__item-icon:first-child {\n margin-right: 8px;\n }\n\n.tox .tox-collection__item-accessory {\n color: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-sv-palette {\n border: 1px solid black;\n box-sizing: border-box;\n }\n\n.tox .tox-hue-slider {\n border: 1px solid black;\n }\n\n.tox .tox-rgb-form input.tox-invalid {\n \n border-color: ${theme.canvasErrorColor || 'inherit'} !important;\n }\n\n.tox .tox-rgb-form {\n padding: 2px; \n }\n\n.tox .tox-swatches__picker-btn:hover {\n background: #e0e2e3;\n }\n\n.tox .tox-comment-thread {\n background: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n.tox .tox-comment {\n background: ${theme.canvasBackgroundColor || 'inherit'};\n border-color: ${theme.canvasBorderColor || 'inherit'};\n box-shadow: 0 4px 8px 0 rgba(45, 59, 69, 0.1);\n }\n\n.tox .tox-comment__header {\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-comment__date {\n color: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-comment__body {\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-comment__expander p {\n color: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-comment-thread__overlay::after {\n background: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n.tox .tox-comment__overlay {\n background: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n.tox .tox-comment__loading-text {\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-comment__overlaytext p {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-comment__busy-spinner {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n.tox .tox-user__avatar svg {\n fill: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-user__name {\n color: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-dialog-wrap__backdrop {\n background-color: rgba(255, 255, 255, 0.75);\n }\n\n.tox .tox-dialog {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n border-color: ${theme.canvasBorderColor || 'inherit'};\n box-shadow: ${theme.canvasModalShadow || 'inherit'};\n }\n\n.tox .tox-dialog__header {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n color: ${theme.canvasTextColor || 'inherit'};\n border-bottom: 1px solid ${theme.canvasBorderColor || 'inherit'};\n padding: ${theme.canvasModalHeadingPadding || 'inherit'};\n margin: 0;\n }\n\n.tox .tox-dialog__title {\n font-family: ${theme.canvasFontFamily || 'inherit'};\n font-size: ${theme.canvasModalHeadingFontSize || 'inherit'};\n font-weight: ${theme.canvasModalHeadingFontWeight || 'inherit'};\n }\n\n.tox .tox-dialog__body {\n color: ${theme.canvasTextColor || 'inherit'};\n padding: ${theme.canvasModalBodyPadding || 'inherit'};\n }\n\n.tox .tox-dialog__body-nav-item {\n color: rgba(45, 59, 69, 0.75);\n }\n\n.tox .tox-dialog__body-nav-item:focus {\n box-shadow: ${theme.canvasFocusBoxShadow || 'inherit'};\n }\n\n.tox .tox-dialog__body-nav-item--active {\n border-bottom-color: ${theme.canvasBrandColor || 'inherit'};\n color: ${theme.canvasBrandColor || 'inherit'};\n }\n\n.tox .tox-dialog__footer {\n background-color: ${theme.canvasModalFooterBackground || 'inherit'};\n border-top: 1px solid ${theme.canvasBorderColor || 'inherit'};\n padding: ${theme.canvasModalFooterPadding || 'inherit'};\n margin: 0;\n }\n\n.tox .tox-dialog__table tbody tr {\n border-bottom-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-dropzone {\n background: ${theme.canvasBackgroundColor || 'inherit'};\n border: 2px dashed ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-dropzone p {\n color: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-edit-area {\n border: 1px solid ${theme.canvasBorderColor || 'inherit'};\n border-radius: 3px;\n }\n\n.tox .tox-edit-area__iframe {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n border: ${theme.canvasFocusBorderWidth || 'inherit'} solid transparent;\n }\n\n.tox.tox-inline-edit-area {\n border-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-form__group {\n padding: 2px;\n }\n\n.tox .tox-control-wrap .tox-textfield {\n padding-right: 32px;\n }\n\n.tox .tox-control-wrap__status-icon-invalid svg {\n fill: ${theme.canvasErrorColor || 'inherit'};\n }\n\n.tox .tox-control-wrap__status-icon-unknown svg {\n fill: ${theme.canvasWarningColor || 'inherit'};\n }\n\n.tox .tox-control-wrap__status-icon-valid svg {\n fill: ${theme.canvasSuccessColor || 'inherit'};\n }\n\n.tox .tox-color-input span {\n border-color: rgba(45, 59, 69, 0.2);\n }\n\n.tox .tox-color-input span:focus {\n border-color: ${theme.canvasBrandColor || 'inherit'};\n }\n\n.tox .tox-label,\n .tox .tox-toolbar-label {\n color: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-form__group {\n margin: ${theme.canvasFormElementMargin || 'inherit'};\n }\n\n.tox .tox-form__group:last-child {\n margin: 0;\n }\n\n.tox .tox-form__group .tox-label {\n color: ${theme.canvasFormElementLabelColor || 'inherit'};\n margin: ${theme.canvasFormElementLabelMargin || 'inherit'};\n font-size: ${theme.canvasFormElementLabelFontSize || 'inherit'};\n font-weight: ${theme.canvasFormElementLabelFontWeight || 'inherit'};\n }\n\n.tox .tox-form__group--error {\n color: ${theme.canvasErrorColor || 'inherit'};\n }\n\n.tox .tox-textfield,\n .tox .tox-selectfield select,\n .tox .tox-textarea,\n .tox .tox-toolbar-textfield {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n border-color: ${theme.canvasBorderColor || 'inherit'};\n color: ${theme.canvasTextColor || 'inherit'};\n font-family: ${theme.canvasFontFamily || 'inherit'};\n }\n\n.tox .tox-textfield:focus,\n .tox .tox-selectfield select:focus,\n .tox .tox-textarea:focus {\n \n border-color: ${theme.canvasBorderColor || 'inherit'};\n box-shadow: ${theme.canvasFocusBoxShadow || 'inherit'};\n }\n\n.tox .tox-naked-btn {\n color: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-naked-btn svg {\n fill: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-insert-table-picker > div {\n border-color: #cccccc;\n }\n\n.tox .tox-insert-table-picker .tox-insert-table-picker__selected {\n background-color: ${theme.tableSelectorHighlightColor || 'inherit'};\n border-color: ${theme.tableSelectorHighlightColor || 'inherit'};\n }\n\n.tox-selected-menu .tox-insert-table-picker {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n.tox .tox-insert-table-picker__label {\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-menu {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n border-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-menubar {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n.tox .tox-mbtn {\n color: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-mbtn[disabled] {\n opacity: 0.5;\n }\n\n.tox .tox-mbtn:hover:not(:disabled) {\n background: ${theme.toolbarButtonHoverBackground || 'inherit'};\n color: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-mbtn:focus:not(:disabled) {\n background-color: transparent;\n color: ${theme.canvasButtonColor || 'inherit'};\n border-color: ${theme.canvasBackgroundColor || 'inherit'};\n box-shadow: ${theme.canvasFocusBoxShadow || 'inherit'};\n }\n\n.tox .tox-mbtn--active {\n background: ${theme.toolbarButtonHoverBackground || 'inherit'};\n color: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-notification {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n border-color: #c5c5c5;\n }\n\n.tox .tox-notification--success {\n background-color: #dff0d8;\n border-color: ${theme.canvasSuccessColor || 'inherit'};\n }\n\n.tox .tox-notification--error {\n background-color: #f2dede;\n border-color: ${theme.canvasErrorColor || 'inherit'};\n }\n\n.tox .tox-notification--warn {\n background-color: #fcf8e3;\n border-color: ${theme.canvasWarningColor || 'inherit'};\n }\n\n.tox .tox-notification--info {\n background-color: #d9edf7;\n border-color: ${theme.canvasInfoColor || 'inherit'};\n }\n\n.tox .tox-notification__body {\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-pop__dialog {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n border-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-pop.tox-pop--bottom::before {\n border-color: ${theme.canvasBorderColor || 'inherit'} transparent transparent transparent;\n }\n\n.tox .tox-pop.tox-pop--top::before {\n border-color: transparent transparent ${theme.canvasBorderColor || 'inherit'} transparent;\n }\n\n.tox .tox-pop.tox-pop--left::before {\n border-color: transparent ${theme.canvasBorderColor || 'inherit'} transparent transparent;\n }\n\n.tox .tox-pop.tox-pop--right::before {\n border-color: transparent transparent transparent ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-slider {\n width: 100%;\n }\n\n.tox .tox-slider__rail {\n border-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-slider__handle {\n background-color: ${theme.canvasBrandColor || 'inherit'};\n }\n\n.tox .tox-spinner > div {\n background-color: rgba(45, 59, 69, 0.6);\n }\n\n\n\n.tox .tox-tbtn {\n border-style: none;\n color: ${theme.canvasButtonColor || 'inherit'};\n position: relative;\n }\n\n.tox .tox-tbtn svg {\n fill: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-tbtn.tox-tbtn--enabled {\n background: inherit;\n }\n\n.tox .tox-tbtn:focus,\n .tox .tox-split-button:focus {\n background: ${theme.canvasBackgroundColor || 'inherit'};\n color: ${theme.canvasButtonColor || 'inherit'};\n box-shadow: ${theme.canvasFocusBoxShadow || 'inherit'};\n }\n\n.tox .tox-tbtn:hover,\n .tox .tox-split-button:hover,\n .tox .tox-tbtn.tox-tbtn--enabled:hover,\n .tox .tox-split-button .tox-tbtn.tox-split-button__chevron:hover {\n background: ${theme.toolbarButtonHoverBackground || 'inherit'};\n color: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox-tbtn.tox-split-button__chevron {\n position: relative;\n }\n\n\n\n.tox .tox-tbtn.tox-tbtn--enabled::after {\n position: absolute;\n top: -3px;\n content: '\\\\25BC';\n text-align: center;\n height: 8px;\n font-size: 8px;\n width: 100%;\n color: ${theme.canvasEnabledColor || 'inherit'};\n }\n\n[dir=\"ltr\"] .tox .tox-tbtn.tox-tbtn--enabled::after {\n text-align: center;\n }\n\n[dir=\"rtl\"] .tox .tox-tbtn.tox-tbtn--enabled::after {\n text-align: center;\n }\n\n\n\n.tox-tbtn.tox-split-button__chevron.tox-tbtn--enabled::after {\n display: none;\n }\n\n.tox .tox-tbtn--disabled,\n .tox .tox-tbtn--disabled:hover,\n .tox .tox-tbtn:disabled,\n .tox .tox-tbtn:disabled:hover {\n opacity: 0.5;\n }\n\n.tox .tox-tbtn--disabled svg,\n .tox .tox-tbtn--disabled:hover svg,\n .tox .tox-tbtn:disabled svg,\n .tox .tox-tbtn:disabled:hover svg {\n \n opacity: 0.5;\n }\n\n.tox .tox-tbtn__select-chevron svg {\n fill: ${theme.canvasButtonColor || 'inherit'};\n width: 10px;\n height: 10px;\n }\n\n.tox .tox-split-button__chevron svg {\n fill: ${theme.canvasButtonColor || 'inherit'};\n width: 10px;\n height: 10px;\n }\n\n.tox .tox-split-button.tox-tbtn--disabled:hover,\n .tox .tox-split-button.tox-tbtn--disabled:focus,\n .tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover,\n .tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus {\n opacity: 0.5;\n }\n\n.tox .tox-toolbar {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n border-top: 1px solid ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-toolbar__group:not(:last-of-type) {\n border-right: 1px solid ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-tooltip__body {\n background-color: ${theme.canvasTextColor || 'inherit'};\n box-shadow: 0 2px 4px rgba(45, 59, 69, 0.3);\n color: rgba(255, 255, 255, 0.75);\n }\n\n.tox .tox-tooltip--down .tox-tooltip__arrow {\n border-top-color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-tooltip--up .tox-tooltip__arrow {\n border-bottom-color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-tooltip--right .tox-tooltip__arrow {\n border-left-color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-tooltip--left .tox-tooltip__arrow {\n border-right-color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-well {\n border-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-custom-editor {\n border-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox a {\n color: ${theme.canvasLinkColor || 'inherit'};\n }\n\n.tox.tox-tinymce {\n border-style: none;\n }\n\n\n\n.tox-editor-container .tox-toolbar,\n .tox-editor-container .tox-toolbar-overlord {\n background-image: none;\n margin-bottom: 5px;\n }\n\n.tox-editor-container .tox-toolbar__primary {\n background-image: none;\n }\n\n\n\n.tox .tox-menubar + .tox-toolbar-overlord .tox-toolbar__primary {\n border-style: none;\n }\n\n.tox .tox-toolbar .tox-toolbar__group,\n .tox .tox-toolbar-overlord .tox-toolbar__group,\n .tox-toolbar__overflow .tox-toolbar__group,\n .tox:not([dir='rtl']) .tox-toolbar__group:not(:last-of-type),\n .tox[dir='rtl'] .tox-toolbar__group:not(:last-of-type) {\n border-style: none;\n }\n\n.tox-toolbar .tox-toolbar__group::after, \n .tox-toolbar-overlord .tox-toolbar__group::after, \n .tox-toolbar__overflow .tox-toolbar__group::after, \n .tox-tinymce-aux .tox-toolbar .tox-toolbar__group::after {\n \n content: '';\n display: inline-block;\n box-sizing: border-box;\n border-inline-end: 1px solid ${theme.canvasBorderColor || 'inherit'};\n width: 8px;\n height: 24px;\n }\n\n[dir=\"ltr\"] .tox-toolbar .tox-toolbar__group::after,\n[dir=\"ltr\"] .tox-toolbar-overlord .tox-toolbar__group::after,\n[dir=\"ltr\"] .tox-toolbar__overflow .tox-toolbar__group::after,\n[dir=\"ltr\"] .tox-tinymce-aux .tox-toolbar .tox-toolbar__group::after {\n border-right: 1px solid ${theme.canvasBorderColor || 'inherit'};\n }\n\n[dir=\"rtl\"] .tox-toolbar .tox-toolbar__group::after,\n[dir=\"rtl\"] .tox-toolbar-overlord .tox-toolbar__group::after,\n[dir=\"rtl\"] .tox-toolbar__overflow .tox-toolbar__group::after,\n[dir=\"rtl\"] .tox-tinymce-aux .tox-toolbar .tox-toolbar__group::after {\n border-left: 1px solid ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox-toolbar .tox-toolbar__group:last-child::after,\n .tox-toolbar-overlord .tox-toolbar__group:last-child::after,\n .tox-toolbar__overflow .tox-toolbar__group:last-child::after,\n .tox-tinymce-aux .tox-toolbar .tox-toolbar__group:last-child::after {\n border-inline-end-width: 0;\n padding-inline-start: 0;\n width: 0;\n }\n\n[dir=\"ltr\"] .tox-toolbar .tox-toolbar__group:last-child::after,\n[dir=\"ltr\"] .tox-toolbar-overlord .tox-toolbar__group:last-child::after,\n[dir=\"ltr\"] .tox-toolbar__overflow .tox-toolbar__group:last-child::after,\n[dir=\"ltr\"] .tox-tinymce-aux .tox-toolbar .tox-toolbar__group:last-child::after {\n border-right-width: 0;\n padding-left: 0;\n }\n\n[dir=\"rtl\"] .tox-toolbar .tox-toolbar__group:last-child::after,\n[dir=\"rtl\"] .tox-toolbar-overlord .tox-toolbar__group:last-child::after,\n[dir=\"rtl\"] .tox-toolbar__overflow .tox-toolbar__group:last-child::after,\n[dir=\"rtl\"] .tox-tinymce-aux .tox-toolbar .tox-toolbar__group:last-child::after {\n border-left-width: 0;\n padding-right: 0;\n }\n\n.tox .tox-tbtn--bespoke .tox-tbtn__select-label {\n width: auto;\n padding-inline-end: 0;\n }\n\n[dir=\"ltr\"] .tox .tox-tbtn--bespoke .tox-tbtn__select-label {\n padding-right: 0;\n }\n\n[dir=\"rtl\"] .tox .tox-tbtn--bespoke .tox-tbtn__select-label {\n padding-left: 0;\n }\n\n.tox .tox-tbtn {\n box-sizing: border-box;\n }\n\n.tox .tox-tbtn,\n .tox .tox-split-button,\n .tox .tox-tbtn--select {\n border-style: none;\n margin: 2px 2px 3px;\n }\n\n.tox .tox-split-button .tox-tbtn {\n margin-inline-end: 0;\n }\n\n[dir=\"ltr\"] .tox .tox-split-button .tox-tbtn {\n margin-right: 0;\n }\n\n[dir=\"rtl\"] .tox .tox-split-button .tox-tbtn {\n margin-left: 0;\n }\n\n.tox .tox-split-button .tox-tbtn.tox-split-button__chevron {\n margin-inline-start: 0;\n }\n\n[dir=\"ltr\"] .tox .tox-split-button .tox-tbtn.tox-split-button__chevron {\n margin-left: 0;\n }\n\n[dir=\"rtl\"] .tox .tox-split-button .tox-tbtn.tox-split-button__chevron {\n margin-right: 0;\n }\n\n.tox .tox-edit-area.active,\n .tox .tox-edit-area.active iframe {\n border-color: ${theme.canvasFocusBorderColor || 'inherit'};\n }\n\n.tox .tox-split-button .tox-tbtn {\n margin-inline-end: 0;\n }\n\n[dir=\"ltr\"] .tox .tox-split-button .tox-tbtn {\n margin-right: 0;\n }\n\n[dir=\"rtl\"] .tox .tox-split-button .tox-tbtn {\n margin-left: 0;\n }\n\n.tox .tox-split-button .tox-tbtn.tox-split-button__chevron {\n margin-inline-start: -6px;\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n[dir=\"ltr\"] .tox .tox-split-button .tox-tbtn.tox-split-button__chevron {\n margin-left: -6px;\n }\n\n[dir=\"rtl\"] .tox .tox-split-button .tox-tbtn.tox-split-button__chevron {\n margin-right: -6px;\n }\n\n.tox .tox-split-button:hover .tox-split-button__chevron {\n background: ${theme.canvasBackgroundColor || 'inherit'};\n color: ${theme.canvasButtonColor || 'inherit'};\n box-shadow: none;\n }\n\n.tox .tox-tbtn:hover.tox-split-button__chevron,\n .tox .tox-tbtn:focus.tox-split-button__chevron {\n box-shadow: none;\n }\n\n.tox .tox-toolbar__primary {\n border-width: 0;\n }\n\n.tox-tbtn.tox-tbtn--select .tox-icon.tox-tbtn__icon-wrap {\n margin-inline-end: 4px;\n }\n\n[dir=\"ltr\"] .tox-tbtn.tox-tbtn--select .tox-icon.tox-tbtn__icon-wrap {\n margin-right: 4px;\n }\n\n[dir=\"rtl\"] .tox-tbtn.tox-tbtn--select .tox-icon.tox-tbtn__icon-wrap {\n margin-left: 4px;\n }\n\n\n\n.tox .tox-icon svg:not([height]),\n .tox .tox-collection__item-icon svg:not([height]) {\n height: 16px;\n }\n\n\n\n.tox .tox-collection--toolbar-lg .tox-collection__item-icon {\n height: 30px;\n width: 30px;\n }\n\n\n\n.tox-selectfield__icon-js svg {\n width: 10px;\n height: 10px;\n }\n\n\n\n[data-canvascontenttray-content]:focus {\n outline-color: ${theme.canvasFocusBorderColor || 'inherit'};\n }\n`;\n },\n 'root': 'canvas-rce__skins--root'\n};\nconst skinCSSBinding = {\n componentId: 'djgIv',\n template: function (theme) {\n return `\n\n\n.tinymce__oxide--tox{box-shadow:none;box-sizing:content-box;color:#222f3e;cursor:auto;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:normal;-webkit-tap-highlight-color:transparent;text-decoration:none;text-shadow:none;text-transform:none;vertical-align:baseline;vertical-align:initial;white-space:normal}\n\n.tinymce__oxide--tox :not(svg):not(rect){box-sizing:inherit;color:inherit;cursor:inherit;direction:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;-webkit-tap-highlight-color:inherit;text-align:inherit;text-decoration:inherit;text-shadow:inherit;text-transform:inherit;vertical-align:inherit;white-space:inherit}\n\n[dir=\"ltr\"] .tinymce__oxide--tox :not(svg):not(rect){text-align:inherit}\n\n[dir=\"rtl\"] .tinymce__oxide--tox :not(svg):not(rect){text-align:inherit}\n\n.tinymce__oxide--tox :not(svg):not(rect){background:0 0;border:0;box-shadow:none;float:none;height:auto;margin:0;max-width:none;outline:0;padding:0;position:static;width:auto}\n\n[dir=\"ltr\"] .tinymce__oxide--tox :not(svg):not(rect){float:none}\n\n[dir=\"rtl\"] .tinymce__oxide--tox :not(svg):not(rect){float:none}\n\n.tinymce__oxide--tox:not([dir=rtl]){direction:ltr;text-align:left}\n\n[dir=\"ltr\"] .tinymce__oxide--tox:not([dir=rtl]){text-align:left}\n\n[dir=\"rtl\"] .tinymce__oxide--tox:not([dir=rtl]){text-align:left}\n\n.tinymce__oxide--tox[dir=rtl]{direction:rtl;text-align:right}\n\n[dir=\"ltr\"] .tinymce__oxide--tox[dir=rtl]{text-align:right}\n\n[dir=\"rtl\"] .tinymce__oxide--tox[dir=rtl]{text-align:right}\n\n.tinymce__oxide--tox-tinymce{border:1px solid #ccc;border-radius:0;box-shadow:none;box-sizing:border-box;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;overflow:hidden;position:relative;visibility:inherit!important}\n\n.tinymce__oxide--tox-tinymce-inline{border:none;box-shadow:none}\n\n.tinymce__oxide--tox-tinymce-inline .tinymce__oxide--tox-editor-header{background-color:transparent;border:1px solid #ccc;border-radius:0;box-shadow:none}\n\n.tinymce__oxide--tox-tinymce-aux{font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;z-index:1300}\n\n.tinymce__oxide--tox-tinymce :focus,.tinymce__oxide--tox-tinymce-aux :focus{outline:0}\n\nbutton::-moz-focus-inner{border:0}\n\n.tinymce__oxide--tox .tinymce__oxide--accessibility-issue__header{align-items:center;display:flex;margin-bottom:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--accessibility-issue__description{align-items:stretch;border:1px solid #ccc;border-radius:3px;display:flex;justify-content:space-between}\n\n.tinymce__oxide--tox .tinymce__oxide--accessibility-issue__description>div{padding-bottom:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--accessibility-issue__description>div>div{align-items:center;display:flex;margin-bottom:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--accessibility-issue__description>:last-child:not(:only-child){border-color:#ccc;border-style:solid}\n\n.tinymce__oxide--tox .tinymce__oxide--accessibility-issue__repair{margin-top:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--info .tinymce__oxide--accessibility-issue__description{background-color:rgba(32,122,183,.1);border-color:rgba(32,122,183,.4);color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--info .tinymce__oxide--accessibility-issue__description>:last-child{border-color:rgba(32,122,183,.4)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--info .tinymce__oxide--tox-form__group h2{color:#207ab7}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--info .tinymce__oxide--tox-icon svg{fill:#207ab7}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--info a .tinymce__oxide--tox-icon{color:#207ab7}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--warn .tinymce__oxide--accessibility-issue__description{background-color:rgba(255,165,0,.1);border-color:rgba(255,165,0,.5);color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--warn .tinymce__oxide--accessibility-issue__description>:last-child{border-color:rgba(255,165,0,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--warn .tinymce__oxide--tox-form__group h2{color:#cc8500}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--warn .tinymce__oxide--tox-icon svg{fill:#cc8500}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--warn a .tinymce__oxide--tox-icon{color:#cc8500}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--error .tinymce__oxide--accessibility-issue__description{background-color:rgba(204,0,0,.1);border-color:rgba(204,0,0,.4);color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--error .tinymce__oxide--accessibility-issue__description>:last-child{border-color:rgba(204,0,0,.4)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--error .tinymce__oxide--tox-form__group h2{color:#c00}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--error .tinymce__oxide--tox-icon svg{fill:#c00}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--error a .tinymce__oxide--tox-icon{color:#c00}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--success .tinymce__oxide--accessibility-issue__description{background-color:rgba(120,171,70,.1);border-color:rgba(120,171,70,.4);color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--success .tinymce__oxide--accessibility-issue__description>:last-child{border-color:rgba(120,171,70,.4)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--success .tinymce__oxide--tox-form__group h2{color:#78ab46}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--success .tinymce__oxide--tox-icon svg{fill:#78ab46}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--success a .tinymce__oxide--tox-icon{color:#78ab46}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__header h1,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group .tinymce__oxide--accessibility-issue__description h2{margin-top:0}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__header .tinymce__oxide--tox-button{margin-left:4px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__header>:nth-last-child(2){margin-left:auto}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__description{padding:4px 4px 4px 8px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__description>:last-child{border-left-width:1px;padding-left:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__header .tinymce__oxide--tox-button{margin-right:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__header>:nth-last-child(2){margin-right:auto}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__description{padding:4px 8px 4px 4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__description>:last-child{border-right-width:1px;padding-right:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-anchorbar{display:flex;flex:0 0 auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-bar{display:flex;flex:0 0 auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button{background-color:#207ab7;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#207ab7;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;line-height:24px;margin:0;outline:0;padding:4px 16px;text-align:center;text-decoration:none;text-transform:none;white-space:nowrap}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-button{text-align:center}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-button{text-align:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button[disabled]{background-color:#207ab7;background-image:none;border-color:#207ab7;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button:focus:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button:hover:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button:active:not(:disabled){background-color:#185d8c;background-image:none;border-color:#185d8c;box-shadow:none;color:#fff}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--secondary{background-color:#f0f0f0;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#f0f0f0;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;color:#222f3e;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;outline:0;padding:4px 16px;text-decoration:none;text-transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--secondary[disabled]{background-color:#f0f0f0;background-image:none;border-color:#f0f0f0;box-shadow:none;color:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--secondary:focus:not(:disabled){background-color:#e3e3e3;background-image:none;border-color:#e3e3e3;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--secondary:hover:not(:disabled){background-color:#e3e3e3;background-image:none;border-color:#e3e3e3;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--secondary:active:not(:disabled){background-color:#d6d6d6;background-image:none;border-color:#d6d6d6;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--icon,.tinymce__oxide--tox .tinymce__oxide--tox-button.tinymce__oxide--tox-button--icon,.tinymce__oxide--tox .tinymce__oxide--tox-button.tinymce__oxide--tox-button--secondary.tinymce__oxide--tox-button--icon{padding:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--icon .tinymce__oxide--tox-icon svg,.tinymce__oxide--tox .tinymce__oxide--tox-button.tinymce__oxide--tox-button--icon .tinymce__oxide--tox-icon svg,.tinymce__oxide--tox .tinymce__oxide--tox-button.tinymce__oxide--tox-button--secondary.tinymce__oxide--tox-button--icon .tinymce__oxide--tox-icon svg{display:block;fill:currentColor}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button-link{background:0;border:none;box-sizing:border-box;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;font-size:16px;font-weight:400;line-height:1.3;margin:0;padding:0;white-space:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button-link--sm{font-size:14px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--naked{background-color:transparent;border-color:transparent;box-shadow:unset;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--naked[disabled]{background-color:#f0f0f0;border-color:#f0f0f0;box-shadow:none;color:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--naked:hover:not(:disabled){background-color:#e3e3e3;border-color:#e3e3e3;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--naked:focus:not(:disabled){background-color:#e3e3e3;border-color:#e3e3e3;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--naked:active:not(:disabled){background-color:#d6d6d6;border-color:#d6d6d6;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--naked .tinymce__oxide--tox-icon svg{fill:currentColor}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--naked.tinymce__oxide--tox-button--icon:hover:not(:disabled){color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox{align-items:center;border-radius:3px;cursor:pointer;display:flex;height:36px;min-width:36px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox__input{height:1px;overflow:hidden;position:absolute;top:auto;width:1px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox__icons{align-items:center;border-radius:3px;box-shadow:0 0 0 2px transparent;box-sizing:content-box;display:flex;height:24px;justify-content:center;padding:calc(4px - 1px);width:24px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__unchecked svg{display:block;fill:rgba(34,47,62,.3)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__indeterminate svg{display:none;fill:#207ab7}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__checked svg{display:none;fill:#207ab7}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox--disabled{color:rgba(34,47,62,.5);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox--disabled .tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__checked svg{fill:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox--disabled .tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__unchecked svg{fill:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox--disabled .tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__indeterminate svg{fill:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox input.tinymce__oxide--tox-checkbox__input:checked+.tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__unchecked svg{display:none}\n\n.tinymce__oxide--tox input.tinymce__oxide--tox-checkbox__input:checked+.tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__checked svg{display:block}\n\n.tinymce__oxide--tox input.tinymce__oxide--tox-checkbox__input:indeterminate+.tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__unchecked svg{display:none}\n\n.tinymce__oxide--tox input.tinymce__oxide--tox-checkbox__input:indeterminate+.tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__indeterminate svg{display:block}\n\n.tinymce__oxide--tox input.tinymce__oxide--tox-checkbox__input:focus+.tinymce__oxide--tox-checkbox__icons{border-radius:3px;box-shadow:inset 0 0 0 1px #207ab7;padding:calc(4px - 1px)}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-checkbox__label{margin-left:4px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-checkbox__input{left:-10000px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-bar .tinymce__oxide--tox-checkbox{margin-left:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-checkbox__label{margin-right:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-checkbox__input{right:-10000px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-bar .tinymce__oxide--tox-checkbox{margin-right:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar .tinymce__oxide--tox-collection__group{display:flex;padding:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--grid .tinymce__oxide--tox-collection__group{display:flex;flex-wrap:wrap;max-height:208px;overflow-x:hidden;overflow-y:auto;padding:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__group{border-bottom-width:0;border-color:#ccc;border-left-width:0;border-right-width:0;border-style:solid;border-top-width:1px;padding:4px 0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__group:first-child{border-top-width:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__group-heading{background-color:#e6e6e6;color:rgba(34,47,62,.7);cursor:default;font-size:12px;font-style:normal;font-weight:400;margin-bottom:4px;margin-top:-4px;padding:4px 8px;text-transform:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item{align-items:center;color:#222f3e;cursor:pointer;display:flex;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item{padding:4px 8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar .tinymce__oxide--tox-collection__item{border-radius:3px;padding:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--grid .tinymce__oxide--tox-collection__item{border-radius:3px;padding:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item--enabled{background-color:#fff;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item--active{background-color:#dee0e2}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar .tinymce__oxide--tox-collection__item--enabled{background-color:#c8cbcf;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar .tinymce__oxide--tox-collection__item--active{background-color:#dee0e2}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--grid .tinymce__oxide--tox-collection__item--enabled{background-color:#c8cbcf;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--grid .tinymce__oxide--tox-collection__item--active:not(.tinymce__oxide--tox-collection__item--state-disabled){background-color:#dee0e2;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item--active:not(.tinymce__oxide--tox-collection__item--state-disabled){color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar .tinymce__oxide--tox-collection__item--active:not(.tinymce__oxide--tox-collection__item--state-disabled){color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item--state-disabled{background-color:transparent;color:rgba(34,47,62,.5);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-checkmark,.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-icon{align-items:center;display:flex;height:24px;justify-content:center;width:24px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-checkmark svg,.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-icon svg{fill:currentColor}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar-lg .tinymce__oxide--tox-collection__item-icon{height:48px;width:48px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-label{color:currentColor;display:inline-block;flex:1;-ms-flex-preferred-size:auto;font-size:14px;font-style:normal;font-weight:400;line-height:24px;text-transform:none;word-break:break-all}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-accessory{color:rgba(34,47,62,.7);display:inline-block;font-size:14px;height:24px;line-height:24px;text-transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-caret{align-items:center;display:flex;min-height:24px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-caret::after{content:'';font-size:0;min-height:inherit}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-caret svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item:not(.tinymce__oxide--tox-collection__item--enabled) .tinymce__oxide--tox-collection__item-checkmark svg{display:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item:not(.tinymce__oxide--tox-collection__item--enabled) .tinymce__oxide--tox-collection__item-accessory+.tinymce__oxide--tox-collection__item-checkmark{display:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--horizontal{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:nowrap;margin-bottom:0;overflow-x:auto;padding:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__group{align-items:center;display:flex;flex-wrap:nowrap;margin:0;padding:0 4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__item{height:34px;margin:2px 0 3px 0;padding:0 4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__item-label{white-space:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__item-caret{margin-left:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container{display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--row{align-items:center;flex:1 1 auto;flex-direction:row}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--row.tinymce__oxide--tox-collection__item-container--align-left{margin-right:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--row.tinymce__oxide--tox-collection__item-container--align-right{justify-content:flex-end;margin-left:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--row.tinymce__oxide--tox-collection__item-container--valign-top{align-items:flex-start;margin-bottom:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--row.tinymce__oxide--tox-collection__item-container--valign-middle{align-items:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--row.tinymce__oxide--tox-collection__item-container--valign-bottom{align-items:flex-end;margin-top:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column{align-self:center;flex:1 1 auto;flex-direction:column}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column.tinymce__oxide--tox-collection__item-container--align-left{align-items:flex-start}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column.tinymce__oxide--tox-collection__item-container--align-right{align-items:flex-end}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column.tinymce__oxide--tox-collection__item-container--valign-top{align-self:flex-start}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column.tinymce__oxide--tox-collection__item-container--valign-middle{align-self:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column.tinymce__oxide--tox-collection__item-container--valign-bottom{align-self:flex-end}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__group:not(:last-of-type){border-right:1px solid #ccc}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item>:not(:first-child){margin-left:8px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item>.tinymce__oxide--tox-collection__item-label:first-child{margin-left:4px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection__item-accessory{margin-left:16px;text-align:right}\n\n[dir=\"ltr\"] .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection__item-accessory{text-align:right}\n\n[dir=\"rtl\"] .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection__item-accessory{text-align:right}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection .tinymce__oxide--tox-collection__item-caret{margin-left:16px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__group:not(:last-of-type){border-left:1px solid #ccc}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item>:not(:first-child){margin-right:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item>.tinymce__oxide--tox-collection__item-label:first-child{margin-right:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection__item-icon-rtl .tinymce__oxide--tox-collection__item-icon svg{transform:rotateY(180deg)}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection__item-accessory{margin-right:16px;text-align:left}\n\n[dir=\"ltr\"] .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection__item-accessory{text-align:left}\n\n[dir=\"rtl\"] .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection__item-accessory{text-align:left}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection .tinymce__oxide--tox-collection__item-caret{margin-right:16px;transform:rotateY(180deg)}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__item-caret{margin-right:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-color-picker-container{display:flex;flex-direction:row;height:225px;margin:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sv-palette{box-sizing:border-box;display:flex;height:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sv-palette-spectrum{height:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sv-palette,.tinymce__oxide--tox .tinymce__oxide--tox-sv-palette-spectrum{width:225px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sv-palette-thumb{background:0 0;border:1px solid #000;border-radius:50%;box-sizing:content-box;height:12px;position:absolute;width:12px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sv-palette-inner-thumb{border:1px solid #fff;border-radius:50%;height:10px;position:absolute;width:10px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-hue-slider{box-sizing:border-box;height:100%;width:25px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-hue-slider-spectrum{background:linear-gradient(to bottom,red,#ff0080,#f0f,#8000ff,#00f,#0080ff,#0ff,#00ff80,#0f0,#80ff00,#ff0,#ff8000,red);height:100%;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-hue-slider,.tinymce__oxide--tox .tinymce__oxide--tox-hue-slider-spectrum{width:20px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-hue-slider-thumb{background:#fff;border:1px solid #000;box-sizing:content-box;height:4px;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-rgb-form{display:flex;flex-direction:column;justify-content:space-between}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-rgb-form div{align-items:center;display:flex;justify-content:space-between;margin-bottom:5px;width:inherit}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-rgb-form input{width:6em}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-rgb-form input.tinymce__oxide--tox-invalid{border:1px solid red!important}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-rgb-form .tinymce__oxide--tox-rgba-preview{border:1px solid #000;flex-grow:2;margin-bottom:0}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-sv-palette{margin-right:15px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-hue-slider{margin-right:15px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-hue-slider-thumb{margin-left:-1px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-rgb-form label{margin-right:.5em}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-sv-palette{margin-left:15px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-hue-slider{margin-left:15px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-hue-slider-thumb{margin-right:-1px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-rgb-form label{margin-left:.5em}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar .tinymce__oxide--tox-swatches,.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__overflow .tinymce__oxide--tox-swatches,.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__primary .tinymce__oxide--tox-swatches{margin:2px 0 3px 4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__group .tinymce__oxide--tox-swatches-menu{border:0;margin:-4px 0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatches__row{display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatch{height:30px;transition:transform .15s,box-shadow .15s;width:30px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatch:focus,.tinymce__oxide--tox .tinymce__oxide--tox-swatch:hover{box-shadow:0 0 0 1px rgba(127,127,127,.3) inset;transform:scale(.8)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatch--remove{align-items:center;display:flex;justify-content:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatch--remove svg path{stroke:#e74c3c}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatches__picker-btn{align-items:center;background-color:transparent;border:0;cursor:pointer;display:flex;height:30px;justify-content:center;outline:0;padding:0;width:30px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatches__picker-btn svg{height:24px;width:24px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatches__picker-btn:hover{background:#dee0e2}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-swatches__picker-btn{margin-left:auto}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-swatches__picker-btn{margin-right:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment-thread{background:#fff;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment-thread>:not(:first-child){margin-top:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment{background:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 4px 8px 0 rgba(34,47,62,.1);padding:8px 8px 16px 8px;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__header{align-items:center;color:#222f3e;display:flex;justify-content:space-between}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__date{color:rgba(34,47,62,.7);font-size:12px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__body{color:#222f3e;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;margin-top:8px;position:relative;text-transform:none;text-transform:initial}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__body textarea{resize:none;white-space:normal;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__expander{padding-top:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__expander p{color:rgba(34,47,62,.7);font-size:14px;font-style:normal}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__body p{margin:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__buttonspacing{padding-top:16px;text-align:center}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__buttonspacing{text-align:center}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__buttonspacing{text-align:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment-thread__overlay::after{background:#fff;bottom:0;content:\"\";display:flex;left:0;opacity:.9;position:absolute;right:0;top:0;z-index:5}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__reply{display:flex;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;margin-top:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__reply>:first-child{margin-bottom:8px;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__edit{display:flex;flex-wrap:wrap;justify-content:flex-end;margin-top:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__gradient::after{background:linear-gradient(rgba(255,255,255,0),#fff);bottom:0;content:\"\";display:block;height:5em;margin-top:-40px;position:absolute;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__overlay{background:#fff;bottom:0;display:flex;flex-direction:column;flex-grow:1;left:0;opacity:.9;position:absolute;right:0;text-align:center;top:0;z-index:5}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__overlay{text-align:center}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__overlay{text-align:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__loading-text{align-items:center;color:#222f3e;display:flex;flex-direction:column;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__loading-text>div{padding-bottom:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__overlaytext{bottom:0;flex-direction:column;font-size:14px;left:0;padding:1em;position:absolute;right:0;top:0;z-index:10}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__overlaytext p{background-color:#fff;box-shadow:0 0 8px 8px #fff;color:#222f3e;text-align:center}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__overlaytext p{text-align:center}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__overlaytext p{text-align:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__overlaytext div:nth-of-type(2){font-size:.8em}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__busy-spinner{align-items:center;background-color:#fff;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:20}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__scroll{display:flex;flex-direction:column;flex-shrink:1;overflow:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-conversations{margin:8px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-comment__edit{margin-left:8px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-comment__buttonspacing>:last-child,.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-comment__edit>:last-child,.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-comment__reply>:last-child{margin-left:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-comment__edit{margin-right:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-comment__buttonspacing>:last-child,.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-comment__edit>:last-child,.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-comment__reply>:last-child{margin-right:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-user{align-items:center;display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-user__avatar svg{fill:rgba(34,47,62,.7)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-user__name{color:rgba(34,47,62,.7);font-size:12px;font-style:normal;font-weight:700;text-transform:uppercase}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-user__avatar svg{margin-right:8px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-user__avatar+.tinymce__oxide--tox-user__name{margin-left:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-user__avatar svg{margin-left:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-user__avatar+.tinymce__oxide--tox-user__name{margin-right:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-wrap{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1100}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-wrap__backdrop{background-color:rgba(255,255,255,.75);bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-wrap__backdrop--opaque{background-color:#fff}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog{background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:0 16px 16px -10px rgba(34,47,62,.15),0 0 40px 1px rgba(34,47,62,.15);display:flex;flex-direction:column;max-height:100%;max-width:480px;overflow:hidden;position:relative;width:95vw;z-index:2}\n\n@media only screen and (max-width:767px){body:not(.tinymce__oxide--tox-force-desktop) .tinymce__oxide--tox .tinymce__oxide--tox-dialog{align-self:flex-start;margin:8px auto;width:calc(100vw - 16px)}}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-inline{z-index:1100}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__header{align-items:center;background-color:#fff;border-bottom:none;color:#222f3e;display:flex;font-size:16px;justify-content:space-between;padding:8px 16px 0 16px;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__header .tinymce__oxide--tox-button{z-index:1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__draghandle{cursor:grab;height:100%;left:0;position:absolute;top:0;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__draghandle:active{cursor:grabbing}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__dismiss{margin-left:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__title{font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;font-size:20px;font-style:normal;font-weight:400;line-height:1.3;margin:0;text-transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body{color:#222f3e;display:flex;flex:1;-ms-flex-preferred-size:auto;font-size:16px;font-style:normal;font-weight:400;line-height:1.3;min-width:0;text-align:left;text-transform:none}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body{text-align:left}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body{text-align:left}\n\n@media only screen and (max-width:767px){body:not(.tinymce__oxide--tox-force-desktop) .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body{flex-direction:column}}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-nav{align-items:flex-start;display:flex;flex-direction:column;padding:16px 16px}\n\n@media only screen and (max-width:767px){body:not(.tinymce__oxide--tox-force-desktop) .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-nav{flex-direction:row;-webkit-overflow-scrolling:touch;overflow-x:auto;padding-bottom:0}}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-nav-item{border-bottom:2px solid transparent;color:rgba(34,47,62,.7);display:inline-block;font-size:14px;line-height:1.3;margin-bottom:8px;text-decoration:none;white-space:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-nav-item:focus{background-color:rgba(32,122,183,.1)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-nav-item--active{border-bottom:2px solid #207ab7;color:#207ab7}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content{box-sizing:border-box;display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto;max-height:650px;overflow:auto;-webkit-overflow-scrolling:touch;padding:16px 16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content>*{margin-bottom:0;margin-top:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content>:first-child{margin-top:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content>:last-child{margin-bottom:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content>:only-child{margin-bottom:0;margin-top:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content a{color:#207ab7;cursor:pointer;text-decoration:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content a:focus,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content a:hover{color:#185d8c;text-decoration:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content a:active{color:#185d8c;text-decoration:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content ul{display:block;list-style-type:disc;margin-bottom:16px;margin-inline-end:0;margin-inline-start:0;padding-inline-start:2.5rem}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content ul{margin-right:0;margin-left:0;padding-left:2.5rem}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content ul{margin-left:0;margin-right:0;padding-right:2.5rem}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h1{color:#222f3e;font-size:20px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h2{color:#222f3e;font-size:16px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group p{margin-bottom:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h1:first-child,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h2:first-child,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group p:first-child{margin-top:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h1:last-child,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h2:last-child,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group p:last-child{margin-bottom:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h1:only-child,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h2:only-child,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group p:only-child{margin-bottom:0;margin-top:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog--width-lg{height:650px;max-width:1200px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog--width-md{max-width:800px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog--width-md .tinymce__oxide--tox-dialog__body-content{overflow:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content--centered{text-align:center}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content--centered{text-align:center}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content--centered{text-align:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__footer{align-items:center;background-color:#fff;border-top:1px solid #ccc;display:flex;justify-content:space-between;padding:8px 16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__footer-end,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__footer-start{display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__busy-spinner{align-items:center;background-color:rgba(255,255,255,.75);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:3}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__table{border-collapse:collapse;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__table thead th{font-weight:700;padding-bottom:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__table tbody tr{border-bottom:1px solid #ccc}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__table tbody tr:last-child{border-bottom:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__table td{padding-bottom:8px;padding-top:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__popups{position:absolute;width:100%;z-index:1100}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-iframe{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-iframe .tinymce__oxide--tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-iframe .tinymce__oxide--tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-dock-fadeout{opacity:0;visibility:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-dock-fadein{opacity:1;visibility:visible}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-dock-transition{transition:visibility 0s linear .3s,opacity .3s ease}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-dock-transition.tinymce__oxide--tox-dialog-dock-fadein{transition-delay:0s}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-platform-ie .tinymce__oxide--tox-dialog-wrap{position:-ms-device-fixed}\n\n@media only screen and (max-width:767px){body:not(.tinymce__oxide--tox-force-desktop) .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__body-nav{margin-right:0}}\n\n@media only screen and (max-width:767px){body:not(.tinymce__oxide--tox-force-desktop) .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__body-nav-item:not(:first-child){margin-left:8px}}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__footer .tinymce__oxide--tox-dialog__footer-end>*,.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__footer .tinymce__oxide--tox-dialog__footer-start>*{margin-left:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body{text-align:right}\n\n[dir=\"ltr\"] .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body{text-align:right}\n\n[dir=\"rtl\"] .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body{text-align:right}\n\n@media only screen and (max-width:767px){body:not(.tinymce__oxide--tox-force-desktop) .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body-nav{margin-left:0}}\n\n@media only screen and (max-width:767px){body:not(.tinymce__oxide--tox-force-desktop) .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body-nav-item:not(:first-child){margin-right:8px}}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__footer .tinymce__oxide--tox-dialog__footer-end>*,.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__footer .tinymce__oxide--tox-dialog__footer-start>*{margin-right:8px}\n\nbody.tinymce__oxide--tox-dialog__disable-scroll{overflow:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dropzone-container{display:flex;flex:1;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dropzone{align-items:center;background:#fff;border:2px dashed #ccc;box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;min-height:100px;padding:10px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dropzone p{color:rgba(34,47,62,.7);margin:0 0 16px 0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-edit-area{display:flex;flex:1;-ms-flex-preferred-size:auto;overflow:hidden;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-edit-area__iframe{background-color:#fff;border:0;box-sizing:border-box;flex:1;-ms-flex-preferred-size:auto;height:100%;position:absolute;width:100%}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-inline-edit-area{border:1px dotted #ccc}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-editor-container{display:flex;flex:1 1 auto;flex-direction:column;overflow:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-editor-header{z-index:1}\n\n.tinymce__oxide--tox:not(.tinymce__oxide--tox-tinymce-inline) .tinymce__oxide--tox-editor-header{box-shadow:none;transition:box-shadow .5s}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-tinymce--toolbar-bottom .tinymce__oxide--tox-editor-header,.tinymce__oxide--tox.tinymce__oxide--tox-tinymce-inline .tinymce__oxide--tox-editor-header{margin-bottom:-1px}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-tinymce--toolbar-sticky-on .tinymce__oxide--tox-editor-header{background-color:transparent;box-shadow:0 4px 4px -3px rgba(0,0,0,.25)}\n\n.tinymce__oxide--tox-editor-dock-fadeout{opacity:0;visibility:hidden}\n\n.tinymce__oxide--tox-editor-dock-fadein{opacity:1;visibility:visible}\n\n.tinymce__oxide--tox-editor-dock-transition{transition:visibility 0s linear .25s,opacity .25s ease}\n\n.tinymce__oxide--tox-editor-dock-transition.tinymce__oxide--tox-editor-dock-fadein{transition-delay:0s}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap{flex:1;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap:not(.tinymce__oxide--tox-control-wrap--status-invalid) .tinymce__oxide--tox-control-wrap__status-icon-invalid,.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap:not(.tinymce__oxide--tox-control-wrap--status-unknown) .tinymce__oxide--tox-control-wrap__status-icon-unknown,.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap:not(.tinymce__oxide--tox-control-wrap--status-valid) .tinymce__oxide--tox-control-wrap__status-icon-valid{display:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap svg{display:block}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap__status-icon-wrap{position:absolute;top:50%;transform:translateY(-50%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap__status-icon-invalid svg{fill:#c00}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap__status-icon-unknown svg{fill:orange}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap__status-icon-valid svg{fill:green}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-control-wrap--status-invalid .tinymce__oxide--tox-textfield,.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-control-wrap--status-unknown .tinymce__oxide--tox-textfield,.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-control-wrap--status-valid .tinymce__oxide--tox-textfield{padding-right:32px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-control-wrap__status-icon-wrap{right:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-control-wrap--status-invalid .tinymce__oxide--tox-textfield,.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-control-wrap--status-unknown .tinymce__oxide--tox-textfield,.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-control-wrap--status-valid .tinymce__oxide--tox-textfield{padding-left:32px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-control-wrap__status-icon-wrap{left:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-autocompleter{max-width:25em}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-autocompleter .tinymce__oxide--tox-menu{max-width:25em}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-autocompleter .tinymce__oxide--tox-autocompleter-highlight{font-weight:700}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-color-input{display:flex;position:relative;z-index:1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-color-input .tinymce__oxide--tox-textfield{z-index:-1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-color-input span{border-color:rgba(34,47,62,.2);border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;height:24px;position:absolute;top:6px;width:24px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-color-input span:focus:not([aria-disabled=true]),.tinymce__oxide--tox .tinymce__oxide--tox-color-input span:hover:not([aria-disabled=true]){border-color:#207ab7;cursor:pointer}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-color-input span::before{background-image:linear-gradient(45deg,rgba(0,0,0,.25) 25%,transparent 25%),linear-gradient(-45deg,rgba(0,0,0,.25) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(0,0,0,.25) 75%),linear-gradient(-45deg,transparent 75%,rgba(0,0,0,.25) 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px;border:1px solid #fff;border-radius:3px;box-sizing:border-box;content:'';height:24px;left:-1px;position:absolute;top:-1px;width:24px;z-index:-1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-color-input span[aria-disabled=true]{cursor:not-allowed}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-color-input .tinymce__oxide--tox-textfield{padding-left:36px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-color-input span{left:6px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-color-input .tinymce__oxide--tox-textfield{padding-right:36px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-color-input span{right:6px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-label,.tinymce__oxide--tox .tinymce__oxide--tox-toolbar-label{color:rgba(34,47,62,.7);display:block;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;padding:0 8px 0 0;text-transform:none;white-space:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar-label{padding:0 8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-label{padding:0 0 0 8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group{box-sizing:border-box;margin-bottom:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form-group--maximize{flex:1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group--error{color:#c00}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group--collection{display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__grid{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__grid--2col>.tinymce__oxide--tox-form__group{width:calc(50% - (8px / 2))}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__grid--3col>.tinymce__oxide--tox-form__group{width:calc(100% / 3 - (8px / 2))}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__grid--4col>.tinymce__oxide--tox-form__group{width:calc(25% - (8px / 2))}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__controls-h-stack{align-items:center;display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group--inline{align-items:center;display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group--stretched{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group--stretched .tinymce__oxide--tox-textarea{flex:1;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group--stretched .tinymce__oxide--tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group--stretched .tinymce__oxide--tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-form__controls-h-stack>:not(:first-child){margin-left:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-form__controls-h-stack>:not(:first-child){margin-right:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-lock.tinymce__oxide--tox-locked .tinymce__oxide--tox-lock-icon__unlock,.tinymce__oxide--tox .tinymce__oxide--tox-lock:not(.tinymce__oxide--tox-locked) .tinymce__oxide--tox-lock-icon__lock{display:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listboxfield .tinymce__oxide--tox-listbox--select,.tinymce__oxide--tox .tinymce__oxide--tox-textarea,.tinymce__oxide--tox .tinymce__oxide--tox-textfield,.tinymce__oxide--tox .tinymce__oxide--tox-toolbar-textfield{appearance:none;background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#222f3e;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 4.75px;resize:none;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-textarea[disabled],.tinymce__oxide--tox .tinymce__oxide--tox-textfield[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listboxfield .tinymce__oxide--tox-listbox--select:focus,.tinymce__oxide--tox .tinymce__oxide--tox-textarea:focus,.tinymce__oxide--tox .tinymce__oxide--tox-textfield:focus{background-color:#fff;border-color:#207ab7;box-shadow:none;outline:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar-textfield{border-width:0;margin-bottom:3px;margin-top:2px;max-width:250px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-naked-btn{background-color:transparent;border:0;border-color:transparent;box-shadow:unset;color:#207ab7;cursor:pointer;display:block;margin:0;padding:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-naked-btn svg{display:block;fill:#222f3e}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-toolbar-textfield+*{margin-left:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-toolbar-textfield+*{margin-right:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listboxfield{cursor:pointer;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listboxfield .tinymce__oxide--tox-listbox--select[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listbox__select-label{cursor:default;flex:1;margin:0 4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listbox__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listbox__select-chevron svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listboxfield .tinymce__oxide--tox-listbox--select{align-items:center;display:flex}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-listboxfield svg{right:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-listboxfield svg{left:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-selectfield{cursor:pointer;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-selectfield select{appearance:none;background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#222f3e;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 4.75px;resize:none;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-selectfield select[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-selectfield select::-ms-expand{display:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-selectfield select:focus{background-color:#fff;border-color:#207ab7;box-shadow:none;outline:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-selectfield svg{pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-selectfield select[size=\"0\"],.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-selectfield select[size=\"1\"]{padding-right:24px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-selectfield svg{right:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-selectfield select[size=\"0\"],.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-selectfield select[size=\"1\"]{padding-left:24px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-selectfield svg{left:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-textarea{appearance:textarea;white-space:pre-wrap}\n\n.tinymce__oxide--tox-fullscreen{border:0;height:100%;left:0;margin:0;overflow:hidden;overscroll-behavior:none;padding:0;position:fixed;top:0;touch-action:pinch-zoom;width:100%}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-tinymce.tinymce__oxide--tox-fullscreen .tinymce__oxide--tox-statusbar__resize-handle{display:none}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-tinymce.tinymce__oxide--tox-fullscreen{background-color:transparent;z-index:1200}\n\n.tinymce__oxide--tox-shadowhost.tinymce__oxide--tox-fullscreen{z-index:1200}\n\n.tinymce__oxide--tox-fullscreen .tinymce__oxide--tox.tinymce__oxide--tox-tinymce-aux,.tinymce__oxide--tox-fullscreen~.tinymce__oxide--tox.tinymce__oxide--tox-tinymce-aux{z-index:1201}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-help__more-link{list-style:none;margin-top:1em}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools{width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools__toolbar{align-items:center;display:flex;justify-content:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools__image{background-color:#666;height:380px;overflow:auto;position:relative;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools__image,.tinymce__oxide--tox .tinymce__oxide--tox-image-tools__image+.tinymce__oxide--tox-image-tools__toolbar{margin-top:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools__image-bg{background:url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-spacer{flex:1;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-croprect-block{background:#000;opacity:.5;position:absolute;zoom:1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-croprect-handle{border:2px solid #fff;height:20px;left:0;position:absolute;top:0;width:20px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-croprect-handle-move{border:0;cursor:move;position:absolute}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-croprect-handle-nw{border-width:2px 0 0 2px;cursor:nw-resize;left:100px;margin:-2px 0 0 -2px;top:100px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-croprect-handle-ne{border-width:2px 2px 0 0;cursor:ne-resize;left:200px;margin:-2px 0 0 -20px;top:100px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-croprect-handle-sw{border-width:0 0 2px 2px;cursor:sw-resize;left:100px;margin:-20px 2px 0 -2px;top:200px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-croprect-handle-se{border-width:0 2px 2px 0;cursor:se-resize;left:200px;margin:-20px 0 0 -20px;top:200px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-slider:not(:first-of-type){margin-left:8px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-button+.tinymce__oxide--tox-slider{margin-left:32px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-slider+.tinymce__oxide--tox-button{margin-left:32px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-slider:not(:first-of-type){margin-right:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-button+.tinymce__oxide--tox-slider{margin-right:32px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-slider+.tinymce__oxide--tox-button{margin-right:32px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-insert-table-picker{display:flex;flex-wrap:wrap;width:170px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-insert-table-picker>div{border-color:#ccc;border-style:solid;border-width:0 1px 1px 0;box-sizing:border-box;height:17px;width:17px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__group .tinymce__oxide--tox-insert-table-picker{margin:-4px 0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-insert-table-picker .tinymce__oxide--tox-insert-table-picker__selected{background-color:rgba(32,122,183,.5);border-color:rgba(32,122,183,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-insert-table-picker__label{color:rgba(34,47,62,.7);display:block;font-size:14px;padding:4px;text-align:center;width:100%}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-insert-table-picker__label{text-align:center}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-insert-table-picker__label{text-align:center}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-insert-table-picker>div:nth-child(10n){border-right:0}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-insert-table-picker>div:nth-child(10n+1){border-right:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-menu{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 4px 8px 0 rgba(34,47,62,.1);display:inline-block;overflow:hidden;vertical-align:top;z-index:1150}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-menu.tinymce__oxide--tox-collection.tinymce__oxide--tox-collection--list{padding:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-menu.tinymce__oxide--tox-collection.tinymce__oxide--tox-collection--toolbar{padding:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-menu.tinymce__oxide--tox-collection.tinymce__oxide--tox-collection--grid{padding:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-menu__label blockquote,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label code,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label h1,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label h2,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label h3,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label h4,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label h5,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label h6,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label p{margin:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-menubar{background:url(\"data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E\") left 0 top 0 #fff;background-color:#fff;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 4px 0 4px}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-tinymce:not(.tinymce__oxide--tox-tinymce-inline) .tinymce__oxide--tox-editor-header:not(:first-child) .tinymce__oxide--tox-menubar{border-top:1px solid #ccc}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#222f3e;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0 4px;text-transform:none;width:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn[disabled]{background-color:transparent;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn:focus:not(:disabled){background:#dee0e2;border:0;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn--active{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn:hover:not(:disabled):not(.tinymce__oxide--tox-mbtn--active){background:#dee0e2;border:0;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn__select-label{cursor:default;font-weight:400;margin:0 4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn[disabled] .tinymce__oxide--tox-mbtn__select-label{cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px;display:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification{border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;display:grid;font-size:14px;font-weight:400;grid-template-columns:minmax(40px,1fr) auto minmax(40px,1fr);margin-top:4px;opacity:0;padding:4px;transition:transform .1s ease-in,opacity 150ms ease-in}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification p{font-size:14px;font-weight:400}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification a{text-decoration:underline}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--in{opacity:1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--success{background-color:#e4eeda;border-color:#d7e6c8;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--success p{color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--success a{color:#547831}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--success svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--error{background-color:#f8dede;border-color:#f2bfbf;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--error p{color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--error a{color:#c00}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--error svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--warn,.tinymce__oxide--tox .tinymce__oxide--tox-notification--warning{background-color:#fffaea;border-color:#ffe89d;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--warn p,.tinymce__oxide--tox .tinymce__oxide--tox-notification--warning p{color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--warn a,.tinymce__oxide--tox .tinymce__oxide--tox-notification--warning a{color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--warn svg,.tinymce__oxide--tox .tinymce__oxide--tox-notification--warning svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--info{background-color:#d9edf7;border-color:#779ecb;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--info p{color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--info a{color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--info svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification__body{align-self:center;color:#222f3e;font-size:14px;-ms-grid-column-span:1;grid-column-end:3;grid-column-start:2;-ms-grid-row-span:1;grid-row-end:2;grid-row-start:1;text-align:center;white-space:normal;word-break:break-all;word-break:break-word}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-notification__body{text-align:center}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-notification__body{text-align:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification__body>*{margin:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification__body>*+*{margin-top:1rem}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification__icon{align-self:center;-ms-grid-column-span:1;grid-column-end:2;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:2;grid-row-start:1;justify-self:end}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification__icon svg{display:block}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification__dismiss{align-self:start;-ms-grid-column-span:1;grid-column-end:4;grid-column-start:3;-ms-grid-row-span:1;grid-row-end:2;grid-row-start:1;justify-self:end}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification .tinymce__oxide--tox-progress-bar{-ms-grid-column-span:3;grid-column-end:4;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:3;grid-row-start:2;justify-self:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop{display:inline-block;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop--resizing{transition:width .1s ease}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop--resizing .tinymce__oxide--tox-toolbar{flex-wrap:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop__dialog{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);min-width:0;overflow:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop__dialog>:not(.tinymce__oxide--tox-toolbar){margin:4px 4px 4px 8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop__dialog .tinymce__oxide--tox-toolbar{background-color:transparent;margin-bottom:-1px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop::after,.tinymce__oxide--tox .tinymce__oxide--tox-pop::before{border-style:solid;content:'';display:block;height:0;position:absolute;width:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--bottom::after,.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--bottom::before{left:50%;top:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--bottom::after{border-color:#fff transparent transparent transparent;border-width:8px;margin-left:-8px;margin-top:-1px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--bottom::before{border-color:#ccc transparent transparent transparent;border-width:9px;margin-left:-9px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--top::after,.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--top::before{left:50%;top:0;transform:translateY(-100%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--top::after{border-color:transparent transparent #fff transparent;border-width:8px;margin-left:-8px;margin-top:1px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--top::before{border-color:transparent transparent #ccc transparent;border-width:9px;margin-left:-9px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--left::after,.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--left::before{left:0;top:calc(50% - 1px);transform:translateY(-50%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--left::after{border-color:transparent #fff transparent transparent;border-width:8px;margin-left:-15px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--left::before{border-color:transparent #ccc transparent transparent;border-width:10px;margin-left:-19px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--right::after,.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--right::before{left:100%;top:calc(50% + 1px);transform:translateY(-50%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--right::after{border-color:transparent transparent transparent #fff;border-width:8px;margin-left:-1px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--right::before{border-color:transparent transparent transparent #ccc;border-width:10px;margin-left:-1px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--align-left::after,.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--align-left::before{left:20px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--align-right::after,.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--align-right::before{left:calc(100% - 20px)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar-wrap{display:flex;flex-direction:row;flex-grow:1;-ms-flex-preferred-size:0;min-height:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar{background-color:#fff;display:flex;flex-direction:row;justify-content:flex-end}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar__slider{display:flex;overflow:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar__pane-container{display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar__pane{display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar--sliding-closed{opacity:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar--sliding-open{opacity:1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar--sliding-growing,.tinymce__oxide--tox .tinymce__oxide--tox-sidebar--sliding-shrinking{transition:width .5s ease,opacity .5s ease}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-selector{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;display:inline-block;height:10px;position:absolute;width:10px}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-platform-touch .tinymce__oxide--tox-selector{height:12px;width:12px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-slider{align-items:center;display:flex;flex:1;-ms-flex-preferred-size:auto;height:24px;justify-content:center;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-slider__rail{background-color:transparent;border:1px solid #ccc;border-radius:3px;height:10px;min-width:120px;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-slider__handle{background-color:#207ab7;border:2px solid #185d8c;border-radius:3px;box-shadow:none;height:24px;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:14px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-source-code{overflow:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-spinner{display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-spinner>div{animation:tinymce__oxide--tam-bouncing-dots 1.5s ease-in-out 0s infinite both;background-color:rgba(34,47,62,.7);border-radius:100%;height:8px;width:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-spinner>div:nth-child(1){animation-delay:-.32s}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-spinner>div:nth-child(2){animation-delay:-.16s}\n\n@keyframes tinymce__oxide--tam-bouncing-dots{0%,100%,80%{transform:scale(0)}40%{transform:scale(1)}}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-spinner>div:not(:first-child){margin-left:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-spinner>div:not(:first-child){margin-right:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar{align-items:center;background-color:#fff;border-top:1px solid #ccc;color:rgba(34,47,62,.7);display:flex;flex:0 0 auto;font-size:12px;font-weight:400;height:18px;overflow:hidden;padding:0 8px;position:relative;text-transform:uppercase}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__text-container{display:flex;flex:1 1 auto;justify-content:flex-end;overflow:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__path{display:flex;flex:1 1 auto;margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__path>*{display:inline;white-space:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__wordcount{flex:0 0 auto;margin-left:1ch}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar a,.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__path-item,.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__wordcount{color:rgba(34,47,62,.7);text-decoration:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar a:focus:not(:disabled):not([aria-disabled=true]),.tinymce__oxide--tox .tinymce__oxide--tox-statusbar a:hover:not(:disabled):not([aria-disabled=true]),.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__path-item:focus:not(:disabled):not([aria-disabled=true]),.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__path-item:hover:not(:disabled):not([aria-disabled=true]),.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__wordcount:focus:not(:disabled):not([aria-disabled=true]),.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__wordcount:hover:not(:disabled):not([aria-disabled=true]){cursor:pointer;text-decoration:underline}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__resize-handle{align-items:flex-end;align-self:stretch;cursor:nwse-resize;display:flex;flex:0 0 auto;justify-content:flex-end;margin-left:auto;margin-right:-8px;padding-left:1ch}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__resize-handle svg{display:block;fill:rgba(34,47,62,.7)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__resize-handle:focus svg{background-color:#dee0e2;border-radius:1px;box-shadow:0 0 0 2px #dee0e2}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-statusbar__path>*{margin-right:4px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-statusbar__branding{margin-left:1ch}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-statusbar{flex-direction:row-reverse}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-statusbar__path>*{margin-left:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-throbber{z-index:1299}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-throbber__busy-spinner{align-items:center;background-color:rgba(255,255,255,.6);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#222f3e;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0;text-transform:none;width:34px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn svg{display:block;fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn.tinymce__oxide--tox-tbtn-more{padding-left:5px;padding-right:5px;width:inherit}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:focus{background:#dee0e2;border:0;box-shadow:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:hover{background:#dee0e2;border:0;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:hover svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:active{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:active svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--disabled,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--disabled:hover,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:disabled,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:disabled:hover{background:0 0;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--disabled svg,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--disabled:hover svg,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:disabled svg,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:disabled:hover svg{fill:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--enabled,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--enabled:hover{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--enabled:hover>*,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--enabled>*{transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--enabled svg,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--enabled:hover svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:focus:not(.tinymce__oxide--tox-tbtn--disabled){color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:focus:not(.tinymce__oxide--tox-tbtn--disabled) svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:active>*{transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--md{height:51px;width:51px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--lg{flex-direction:column;height:68px;width:68px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--return{align-self:stretch;height:unset;width:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--labeled{padding:0 4px;width:unset}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn__vlabel{display:block;font-size:10px;font-weight:400;letter-spacing:-.025em;margin-bottom:4px;white-space:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--select{margin:2px 0 3px 0;padding:0 4px;width:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn__select-label{cursor:default;font-weight:400;margin:0 4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn__select-chevron svg{fill:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--bespoke .tinymce__oxide--tox-tbtn__select-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:7em}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button{border:0;border-radius:3px;box-sizing:border-box;display:flex;margin:2px 0 3px 0;overflow:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button:hover{box-shadow:0 0 0 1px #dee0e2 inset}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button:focus{background:#dee0e2;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button>*{border-radius:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button__chevron{width:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button__chevron svg{fill:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button .tinymce__oxide--tox-tbtn{margin:0}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-platform-touch .tinymce__oxide--tox-split-button .tinymce__oxide--tox-tbtn:first-child{width:30px}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-platform-touch .tinymce__oxide--tox-split-button__chevron{width:20px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button.tinymce__oxide--tox-tbtn--disabled .tinymce__oxide--tox-tbtn:focus,.tinymce__oxide--tox .tinymce__oxide--tox-split-button.tinymce__oxide--tox-tbtn--disabled .tinymce__oxide--tox-tbtn:hover,.tinymce__oxide--tox .tinymce__oxide--tox-split-button.tinymce__oxide--tox-tbtn--disabled:focus,.tinymce__oxide--tox .tinymce__oxide--tox-split-button.tinymce__oxide--tox-tbtn--disabled:hover{background:0 0;box-shadow:none;color:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar-overlord{background-color:#fff}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar,.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__overflow,.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__primary{background:url(\"data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E\") left 0 top 0 #fff;background-color:#fff;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__overflow.tinymce__oxide--tox-toolbar__overflow--closed{height:0;opacity:0;padding-bottom:0;padding-top:0;visibility:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__overflow--growing{transition:height .3s ease,opacity .2s linear .1s}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__overflow--shrinking{transition:opacity .3s ease,height .2s linear .1s,visibility 0s linear .3s}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-menubar+.tinymce__oxide--tox-toolbar,.tinymce__oxide--tox .tinymce__oxide--tox-menubar+.tinymce__oxide--tox-toolbar-overlord .tinymce__oxide--tox-toolbar__primary{border-top:1px solid #ccc;margin-top:-1px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar--scrolling{flex-wrap:nowrap;overflow-x:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop .tinymce__oxide--tox-toolbar{border-width:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar--no-divider{background-image:none}\n\n.tinymce__oxide--tox-tinymce:not(.tinymce__oxide--tox-tinymce-inline) .tinymce__oxide--tox-editor-header:not(:first-child) .tinymce__oxide--tox-toolbar-overlord:first-child .tinymce__oxide--tox-toolbar__primary,.tinymce__oxide--tox-tinymce:not(.tinymce__oxide--tox-tinymce-inline) .tinymce__oxide--tox-editor-header:not(:first-child) .tinymce__oxide--tox-toolbar:first-child{border-top:1px solid #ccc}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-tinymce-aux .tinymce__oxide--tox-toolbar__overflow{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15)}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-tbtn__icon-rtl svg{transform:rotateY(180deg)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__group{align-items:center;display:flex;flex-wrap:wrap;margin:0 0;padding:0 4px 0 4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__group--pull-right{margin-left:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar--scrolling .tinymce__oxide--tox-toolbar__group{flex-shrink:0;flex-wrap:nowrap}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-toolbar__group:not(:last-of-type){border-right:1px solid #ccc}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-toolbar__group:not(:last-of-type){border-left:1px solid #ccc}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tooltip{display:inline-block;padding:8px;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tooltip__body{background-color:#222f3e;border-radius:3px;box-shadow:0 2px 4px rgba(34,47,62,.3);color:rgba(255,255,255,.75);font-size:14px;font-style:normal;font-weight:400;padding:4px 8px;text-transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tooltip__arrow{position:absolute}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tooltip--down .tinymce__oxide--tox-tooltip__arrow{border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #222f3e;bottom:0;left:50%;position:absolute;transform:translateX(-50%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tooltip--up .tinymce__oxide--tox-tooltip__arrow{border-bottom:8px solid #222f3e;border-left:8px solid transparent;border-right:8px solid transparent;left:50%;position:absolute;top:0;transform:translateX(-50%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tooltip--right .tinymce__oxide--tox-tooltip__arrow{border-bottom:8px solid transparent;border-left:8px solid #222f3e;border-top:8px solid transparent;position:absolute;right:0;top:50%;transform:translateY(-50%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tooltip--left .tinymce__oxide--tox-tooltip__arrow{border-bottom:8px solid transparent;border-right:8px solid #222f3e;border-top:8px solid transparent;left:0;position:absolute;top:50%;transform:translateY(-50%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-well{border:1px solid #ccc;border-radius:3px;padding:8px;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-well>:first-child{margin-top:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-well>:last-child{margin-bottom:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-well>:only-child{margin:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-custom-editor{border:1px solid #ccc;border-radius:3px;display:flex;flex:1;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-loading::before{background-color:rgba(0,0,0,.5);content:\"\";height:100%;position:absolute;width:100%;z-index:1000}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tab{cursor:pointer}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__content-js{display:flex;flex:1;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-collection{display:flex;flex:1;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools-edit-panel{height:60px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools__sidebar{height:60px}\n`;\n },\n 'tox': 'tinymce__oxide--tox',\n 'tox-tinymce': 'tinymce__oxide--tox-tinymce',\n 'tox-tinymce-inline': 'tinymce__oxide--tox-tinymce-inline',\n 'tox-editor-header': 'tinymce__oxide--tox-editor-header',\n 'tox-tinymce-aux': 'tinymce__oxide--tox-tinymce-aux',\n 'accessibility-issue__header': 'tinymce__oxide--accessibility-issue__header',\n 'accessibility-issue__description': 'tinymce__oxide--accessibility-issue__description',\n 'accessibility-issue__repair': 'tinymce__oxide--accessibility-issue__repair',\n 'tox-dialog__body-content': 'tinymce__oxide--tox-dialog__body-content',\n 'accessibility-issue--info': 'tinymce__oxide--accessibility-issue--info',\n 'tox-form__group': 'tinymce__oxide--tox-form__group',\n 'tox-icon': 'tinymce__oxide--tox-icon',\n 'accessibility-issue--warn': 'tinymce__oxide--accessibility-issue--warn',\n 'accessibility-issue--error': 'tinymce__oxide--accessibility-issue--error',\n 'accessibility-issue--success': 'tinymce__oxide--accessibility-issue--success',\n 'tox-button': 'tinymce__oxide--tox-button',\n 'tox-anchorbar': 'tinymce__oxide--tox-anchorbar',\n 'tox-bar': 'tinymce__oxide--tox-bar',\n 'tox-button--secondary': 'tinymce__oxide--tox-button--secondary',\n 'tox-button--icon': 'tinymce__oxide--tox-button--icon',\n 'tox-button-link': 'tinymce__oxide--tox-button-link',\n 'tox-button-link--sm': 'tinymce__oxide--tox-button-link--sm',\n 'tox-button--naked': 'tinymce__oxide--tox-button--naked',\n 'tox-checkbox': 'tinymce__oxide--tox-checkbox',\n 'tox-checkbox__input': 'tinymce__oxide--tox-checkbox__input',\n 'tox-checkbox__icons': 'tinymce__oxide--tox-checkbox__icons',\n 'tox-checkbox-icon__unchecked': 'tinymce__oxide--tox-checkbox-icon__unchecked',\n 'tox-checkbox-icon__indeterminate': 'tinymce__oxide--tox-checkbox-icon__indeterminate',\n 'tox-checkbox-icon__checked': 'tinymce__oxide--tox-checkbox-icon__checked',\n 'tox-checkbox--disabled': 'tinymce__oxide--tox-checkbox--disabled',\n 'tox-checkbox__label': 'tinymce__oxide--tox-checkbox__label',\n 'tox-collection--toolbar': 'tinymce__oxide--tox-collection--toolbar',\n 'tox-collection__group': 'tinymce__oxide--tox-collection__group',\n 'tox-collection--grid': 'tinymce__oxide--tox-collection--grid',\n 'tox-collection--list': 'tinymce__oxide--tox-collection--list',\n 'tox-collection__group-heading': 'tinymce__oxide--tox-collection__group-heading',\n 'tox-collection__item': 'tinymce__oxide--tox-collection__item',\n 'tox-collection__item--enabled': 'tinymce__oxide--tox-collection__item--enabled',\n 'tox-collection__item--active': 'tinymce__oxide--tox-collection__item--active',\n 'tox-collection__item--state-disabled': 'tinymce__oxide--tox-collection__item--state-disabled',\n 'tox-collection__item-checkmark': 'tinymce__oxide--tox-collection__item-checkmark',\n 'tox-collection__item-icon': 'tinymce__oxide--tox-collection__item-icon',\n 'tox-collection--toolbar-lg': 'tinymce__oxide--tox-collection--toolbar-lg',\n 'tox-collection__item-label': 'tinymce__oxide--tox-collection__item-label',\n 'tox-collection__item-accessory': 'tinymce__oxide--tox-collection__item-accessory',\n 'tox-collection__item-caret': 'tinymce__oxide--tox-collection__item-caret',\n 'tox-collection--horizontal': 'tinymce__oxide--tox-collection--horizontal',\n 'tox-collection__item-container': 'tinymce__oxide--tox-collection__item-container',\n 'tox-collection__item-container--row': 'tinymce__oxide--tox-collection__item-container--row',\n 'tox-collection__item-container--align-left': 'tinymce__oxide--tox-collection__item-container--align-left',\n 'tox-collection__item-container--align-right': 'tinymce__oxide--tox-collection__item-container--align-right',\n 'tox-collection__item-container--valign-top': 'tinymce__oxide--tox-collection__item-container--valign-top',\n 'tox-collection__item-container--valign-middle': 'tinymce__oxide--tox-collection__item-container--valign-middle',\n 'tox-collection__item-container--valign-bottom': 'tinymce__oxide--tox-collection__item-container--valign-bottom',\n 'tox-collection__item-container--column': 'tinymce__oxide--tox-collection__item-container--column',\n 'tox-collection': 'tinymce__oxide--tox-collection',\n 'tox-collection__item-icon-rtl': 'tinymce__oxide--tox-collection__item-icon-rtl',\n 'tox-color-picker-container': 'tinymce__oxide--tox-color-picker-container',\n 'tox-sv-palette': 'tinymce__oxide--tox-sv-palette',\n 'tox-sv-palette-spectrum': 'tinymce__oxide--tox-sv-palette-spectrum',\n 'tox-sv-palette-thumb': 'tinymce__oxide--tox-sv-palette-thumb',\n 'tox-sv-palette-inner-thumb': 'tinymce__oxide--tox-sv-palette-inner-thumb',\n 'tox-hue-slider': 'tinymce__oxide--tox-hue-slider',\n 'tox-hue-slider-spectrum': 'tinymce__oxide--tox-hue-slider-spectrum',\n 'tox-hue-slider-thumb': 'tinymce__oxide--tox-hue-slider-thumb',\n 'tox-rgb-form': 'tinymce__oxide--tox-rgb-form',\n 'tox-invalid': 'tinymce__oxide--tox-invalid',\n 'tox-rgba-preview': 'tinymce__oxide--tox-rgba-preview',\n 'tox-toolbar': 'tinymce__oxide--tox-toolbar',\n 'tox-swatches': 'tinymce__oxide--tox-swatches',\n 'tox-toolbar__overflow': 'tinymce__oxide--tox-toolbar__overflow',\n 'tox-toolbar__primary': 'tinymce__oxide--tox-toolbar__primary',\n 'tox-swatches-menu': 'tinymce__oxide--tox-swatches-menu',\n 'tox-swatches__row': 'tinymce__oxide--tox-swatches__row',\n 'tox-swatch': 'tinymce__oxide--tox-swatch',\n 'tox-swatch--remove': 'tinymce__oxide--tox-swatch--remove',\n 'tox-swatches__picker-btn': 'tinymce__oxide--tox-swatches__picker-btn',\n 'tox-comment-thread': 'tinymce__oxide--tox-comment-thread',\n 'tox-comment': 'tinymce__oxide--tox-comment',\n 'tox-comment__header': 'tinymce__oxide--tox-comment__header',\n 'tox-comment__date': 'tinymce__oxide--tox-comment__date',\n 'tox-comment__body': 'tinymce__oxide--tox-comment__body',\n 'tox-comment__expander': 'tinymce__oxide--tox-comment__expander',\n 'tox-comment__buttonspacing': 'tinymce__oxide--tox-comment__buttonspacing',\n 'tox-comment-thread__overlay': 'tinymce__oxide--tox-comment-thread__overlay',\n 'tox-comment__reply': 'tinymce__oxide--tox-comment__reply',\n 'tox-comment__edit': 'tinymce__oxide--tox-comment__edit',\n 'tox-comment__gradient': 'tinymce__oxide--tox-comment__gradient',\n 'tox-comment__overlay': 'tinymce__oxide--tox-comment__overlay',\n 'tox-comment__loading-text': 'tinymce__oxide--tox-comment__loading-text',\n 'tox-comment__overlaytext': 'tinymce__oxide--tox-comment__overlaytext',\n 'tox-comment__busy-spinner': 'tinymce__oxide--tox-comment__busy-spinner',\n 'tox-comment__scroll': 'tinymce__oxide--tox-comment__scroll',\n 'tox-conversations': 'tinymce__oxide--tox-conversations',\n 'tox-user': 'tinymce__oxide--tox-user',\n 'tox-user__avatar': 'tinymce__oxide--tox-user__avatar',\n 'tox-user__name': 'tinymce__oxide--tox-user__name',\n 'tox-dialog-wrap': 'tinymce__oxide--tox-dialog-wrap',\n 'tox-dialog-wrap__backdrop': 'tinymce__oxide--tox-dialog-wrap__backdrop',\n 'tox-dialog-wrap__backdrop--opaque': 'tinymce__oxide--tox-dialog-wrap__backdrop--opaque',\n 'tox-dialog': 'tinymce__oxide--tox-dialog',\n 'tox-force-desktop': 'tinymce__oxide--tox-force-desktop',\n 'tox-dialog-inline': 'tinymce__oxide--tox-dialog-inline',\n 'tox-dialog__header': 'tinymce__oxide--tox-dialog__header',\n 'tox-dialog__draghandle': 'tinymce__oxide--tox-dialog__draghandle',\n 'tox-dialog__dismiss': 'tinymce__oxide--tox-dialog__dismiss',\n 'tox-dialog__title': 'tinymce__oxide--tox-dialog__title',\n 'tox-dialog__body': 'tinymce__oxide--tox-dialog__body',\n 'tox-dialog__body-nav': 'tinymce__oxide--tox-dialog__body-nav',\n 'tox-dialog__body-nav-item': 'tinymce__oxide--tox-dialog__body-nav-item',\n 'tox-dialog__body-nav-item--active': 'tinymce__oxide--tox-dialog__body-nav-item--active',\n 'tox-dialog--width-lg': 'tinymce__oxide--tox-dialog--width-lg',\n 'tox-dialog--width-md': 'tinymce__oxide--tox-dialog--width-md',\n 'tox-dialog__body-content--centered': 'tinymce__oxide--tox-dialog__body-content--centered',\n 'tox-dialog__footer': 'tinymce__oxide--tox-dialog__footer',\n 'tox-dialog__footer-end': 'tinymce__oxide--tox-dialog__footer-end',\n 'tox-dialog__footer-start': 'tinymce__oxide--tox-dialog__footer-start',\n 'tox-dialog__busy-spinner': 'tinymce__oxide--tox-dialog__busy-spinner',\n 'tox-dialog__table': 'tinymce__oxide--tox-dialog__table',\n 'tox-dialog__popups': 'tinymce__oxide--tox-dialog__popups',\n 'tox-dialog__body-iframe': 'tinymce__oxide--tox-dialog__body-iframe',\n 'tox-navobj': 'tinymce__oxide--tox-navobj',\n 'tox-dialog-dock-fadeout': 'tinymce__oxide--tox-dialog-dock-fadeout',\n 'tox-dialog-dock-fadein': 'tinymce__oxide--tox-dialog-dock-fadein',\n 'tox-dialog-dock-transition': 'tinymce__oxide--tox-dialog-dock-transition',\n 'tox-platform-ie': 'tinymce__oxide--tox-platform-ie',\n 'tox-dialog__disable-scroll': 'tinymce__oxide--tox-dialog__disable-scroll',\n 'tox-dropzone-container': 'tinymce__oxide--tox-dropzone-container',\n 'tox-dropzone': 'tinymce__oxide--tox-dropzone',\n 'tox-edit-area': 'tinymce__oxide--tox-edit-area',\n 'tox-edit-area__iframe': 'tinymce__oxide--tox-edit-area__iframe',\n 'tox-inline-edit-area': 'tinymce__oxide--tox-inline-edit-area',\n 'tox-editor-container': 'tinymce__oxide--tox-editor-container',\n 'tox-tinymce--toolbar-bottom': 'tinymce__oxide--tox-tinymce--toolbar-bottom',\n 'tox-tinymce--toolbar-sticky-on': 'tinymce__oxide--tox-tinymce--toolbar-sticky-on',\n 'tox-editor-dock-fadeout': 'tinymce__oxide--tox-editor-dock-fadeout',\n 'tox-editor-dock-fadein': 'tinymce__oxide--tox-editor-dock-fadein',\n 'tox-editor-dock-transition': 'tinymce__oxide--tox-editor-dock-transition',\n 'tox-control-wrap': 'tinymce__oxide--tox-control-wrap',\n 'tox-control-wrap--status-invalid': 'tinymce__oxide--tox-control-wrap--status-invalid',\n 'tox-control-wrap__status-icon-invalid': 'tinymce__oxide--tox-control-wrap__status-icon-invalid',\n 'tox-control-wrap--status-unknown': 'tinymce__oxide--tox-control-wrap--status-unknown',\n 'tox-control-wrap__status-icon-unknown': 'tinymce__oxide--tox-control-wrap__status-icon-unknown',\n 'tox-control-wrap--status-valid': 'tinymce__oxide--tox-control-wrap--status-valid',\n 'tox-control-wrap__status-icon-valid': 'tinymce__oxide--tox-control-wrap__status-icon-valid',\n 'tox-control-wrap__status-icon-wrap': 'tinymce__oxide--tox-control-wrap__status-icon-wrap',\n 'tox-textfield': 'tinymce__oxide--tox-textfield',\n 'tox-autocompleter': 'tinymce__oxide--tox-autocompleter',\n 'tox-menu': 'tinymce__oxide--tox-menu',\n 'tox-autocompleter-highlight': 'tinymce__oxide--tox-autocompleter-highlight',\n 'tox-color-input': 'tinymce__oxide--tox-color-input',\n 'tox-label': 'tinymce__oxide--tox-label',\n 'tox-toolbar-label': 'tinymce__oxide--tox-toolbar-label',\n 'tox-form': 'tinymce__oxide--tox-form',\n 'tox-form-group--maximize': 'tinymce__oxide--tox-form-group--maximize',\n 'tox-form__group--error': 'tinymce__oxide--tox-form__group--error',\n 'tox-form__group--collection': 'tinymce__oxide--tox-form__group--collection',\n 'tox-form__grid': 'tinymce__oxide--tox-form__grid',\n 'tox-form__grid--2col': 'tinymce__oxide--tox-form__grid--2col',\n 'tox-form__grid--3col': 'tinymce__oxide--tox-form__grid--3col',\n 'tox-form__grid--4col': 'tinymce__oxide--tox-form__grid--4col',\n 'tox-form__controls-h-stack': 'tinymce__oxide--tox-form__controls-h-stack',\n 'tox-form__group--inline': 'tinymce__oxide--tox-form__group--inline',\n 'tox-form__group--stretched': 'tinymce__oxide--tox-form__group--stretched',\n 'tox-textarea': 'tinymce__oxide--tox-textarea',\n 'tox-lock': 'tinymce__oxide--tox-lock',\n 'tox-locked': 'tinymce__oxide--tox-locked',\n 'tox-lock-icon__unlock': 'tinymce__oxide--tox-lock-icon__unlock',\n 'tox-lock-icon__lock': 'tinymce__oxide--tox-lock-icon__lock',\n 'tox-listboxfield': 'tinymce__oxide--tox-listboxfield',\n 'tox-listbox--select': 'tinymce__oxide--tox-listbox--select',\n 'tox-toolbar-textfield': 'tinymce__oxide--tox-toolbar-textfield',\n 'tox-naked-btn': 'tinymce__oxide--tox-naked-btn',\n 'tox-listbox__select-label': 'tinymce__oxide--tox-listbox__select-label',\n 'tox-listbox__select-chevron': 'tinymce__oxide--tox-listbox__select-chevron',\n 'tox-selectfield': 'tinymce__oxide--tox-selectfield',\n 'tox-fullscreen': 'tinymce__oxide--tox-fullscreen',\n 'tox-statusbar__resize-handle': 'tinymce__oxide--tox-statusbar__resize-handle',\n 'tox-shadowhost': 'tinymce__oxide--tox-shadowhost',\n 'tox-help__more-link': 'tinymce__oxide--tox-help__more-link',\n 'tox-image-tools': 'tinymce__oxide--tox-image-tools',\n 'tox-image-tools__toolbar': 'tinymce__oxide--tox-image-tools__toolbar',\n 'tox-image-tools__image': 'tinymce__oxide--tox-image-tools__image',\n 'tox-image-tools__image-bg': 'tinymce__oxide--tox-image-tools__image-bg',\n 'tox-spacer': 'tinymce__oxide--tox-spacer',\n 'tox-croprect-block': 'tinymce__oxide--tox-croprect-block',\n 'tox-croprect-handle': 'tinymce__oxide--tox-croprect-handle',\n 'tox-croprect-handle-move': 'tinymce__oxide--tox-croprect-handle-move',\n 'tox-croprect-handle-nw': 'tinymce__oxide--tox-croprect-handle-nw',\n 'tox-croprect-handle-ne': 'tinymce__oxide--tox-croprect-handle-ne',\n 'tox-croprect-handle-sw': 'tinymce__oxide--tox-croprect-handle-sw',\n 'tox-croprect-handle-se': 'tinymce__oxide--tox-croprect-handle-se',\n 'tox-slider': 'tinymce__oxide--tox-slider',\n 'tox-insert-table-picker': 'tinymce__oxide--tox-insert-table-picker',\n 'tox-insert-table-picker__selected': 'tinymce__oxide--tox-insert-table-picker__selected',\n 'tox-insert-table-picker__label': 'tinymce__oxide--tox-insert-table-picker__label',\n 'tox-menu__label': 'tinymce__oxide--tox-menu__label',\n 'tox-menubar': 'tinymce__oxide--tox-menubar',\n 'tox-mbtn': 'tinymce__oxide--tox-mbtn',\n 'tox-mbtn--active': 'tinymce__oxide--tox-mbtn--active',\n 'tox-mbtn__select-label': 'tinymce__oxide--tox-mbtn__select-label',\n 'tox-mbtn__select-chevron': 'tinymce__oxide--tox-mbtn__select-chevron',\n 'tox-notification': 'tinymce__oxide--tox-notification',\n 'tox-notification--in': 'tinymce__oxide--tox-notification--in',\n 'tox-notification--success': 'tinymce__oxide--tox-notification--success',\n 'tox-notification--error': 'tinymce__oxide--tox-notification--error',\n 'tox-notification--warn': 'tinymce__oxide--tox-notification--warn',\n 'tox-notification--warning': 'tinymce__oxide--tox-notification--warning',\n 'tox-notification--info': 'tinymce__oxide--tox-notification--info',\n 'tox-notification__body': 'tinymce__oxide--tox-notification__body',\n 'tox-notification__icon': 'tinymce__oxide--tox-notification__icon',\n 'tox-notification__dismiss': 'tinymce__oxide--tox-notification__dismiss',\n 'tox-progress-bar': 'tinymce__oxide--tox-progress-bar',\n 'tox-pop': 'tinymce__oxide--tox-pop',\n 'tox-pop--resizing': 'tinymce__oxide--tox-pop--resizing',\n 'tox-pop__dialog': 'tinymce__oxide--tox-pop__dialog',\n 'tox-pop--bottom': 'tinymce__oxide--tox-pop--bottom',\n 'tox-pop--top': 'tinymce__oxide--tox-pop--top',\n 'tox-pop--left': 'tinymce__oxide--tox-pop--left',\n 'tox-pop--right': 'tinymce__oxide--tox-pop--right',\n 'tox-pop--align-left': 'tinymce__oxide--tox-pop--align-left',\n 'tox-pop--align-right': 'tinymce__oxide--tox-pop--align-right',\n 'tox-sidebar-wrap': 'tinymce__oxide--tox-sidebar-wrap',\n 'tox-sidebar': 'tinymce__oxide--tox-sidebar',\n 'tox-sidebar__slider': 'tinymce__oxide--tox-sidebar__slider',\n 'tox-sidebar__pane-container': 'tinymce__oxide--tox-sidebar__pane-container',\n 'tox-sidebar__pane': 'tinymce__oxide--tox-sidebar__pane',\n 'tox-sidebar--sliding-closed': 'tinymce__oxide--tox-sidebar--sliding-closed',\n 'tox-sidebar--sliding-open': 'tinymce__oxide--tox-sidebar--sliding-open',\n 'tox-sidebar--sliding-growing': 'tinymce__oxide--tox-sidebar--sliding-growing',\n 'tox-sidebar--sliding-shrinking': 'tinymce__oxide--tox-sidebar--sliding-shrinking',\n 'tox-selector': 'tinymce__oxide--tox-selector',\n 'tox-platform-touch': 'tinymce__oxide--tox-platform-touch',\n 'tox-slider__rail': 'tinymce__oxide--tox-slider__rail',\n 'tox-slider__handle': 'tinymce__oxide--tox-slider__handle',\n 'tox-source-code': 'tinymce__oxide--tox-source-code',\n 'tox-spinner': 'tinymce__oxide--tox-spinner',\n 'tam-bouncing-dots': 'tinymce__oxide--tam-bouncing-dots',\n 'tox-statusbar': 'tinymce__oxide--tox-statusbar',\n 'tox-statusbar__text-container': 'tinymce__oxide--tox-statusbar__text-container',\n 'tox-statusbar__path': 'tinymce__oxide--tox-statusbar__path',\n 'tox-statusbar__wordcount': 'tinymce__oxide--tox-statusbar__wordcount',\n 'tox-statusbar__path-item': 'tinymce__oxide--tox-statusbar__path-item',\n 'tox-statusbar__branding': 'tinymce__oxide--tox-statusbar__branding',\n 'tox-throbber': 'tinymce__oxide--tox-throbber',\n 'tox-throbber__busy-spinner': 'tinymce__oxide--tox-throbber__busy-spinner',\n 'tox-tbtn': 'tinymce__oxide--tox-tbtn',\n 'tox-tbtn-more': 'tinymce__oxide--tox-tbtn-more',\n 'tox-tbtn--disabled': 'tinymce__oxide--tox-tbtn--disabled',\n 'tox-tbtn--enabled': 'tinymce__oxide--tox-tbtn--enabled',\n 'tox-tbtn--md': 'tinymce__oxide--tox-tbtn--md',\n 'tox-tbtn--lg': 'tinymce__oxide--tox-tbtn--lg',\n 'tox-tbtn--return': 'tinymce__oxide--tox-tbtn--return',\n 'tox-tbtn--labeled': 'tinymce__oxide--tox-tbtn--labeled',\n 'tox-tbtn__vlabel': 'tinymce__oxide--tox-tbtn__vlabel',\n 'tox-tbtn--select': 'tinymce__oxide--tox-tbtn--select',\n 'tox-tbtn__select-label': 'tinymce__oxide--tox-tbtn__select-label',\n 'tox-tbtn__select-chevron': 'tinymce__oxide--tox-tbtn__select-chevron',\n 'tox-tbtn--bespoke': 'tinymce__oxide--tox-tbtn--bespoke',\n 'tox-split-button': 'tinymce__oxide--tox-split-button',\n 'tox-split-button__chevron': 'tinymce__oxide--tox-split-button__chevron',\n 'tox-toolbar-overlord': 'tinymce__oxide--tox-toolbar-overlord',\n 'tox-toolbar__overflow--closed': 'tinymce__oxide--tox-toolbar__overflow--closed',\n 'tox-toolbar__overflow--growing': 'tinymce__oxide--tox-toolbar__overflow--growing',\n 'tox-toolbar__overflow--shrinking': 'tinymce__oxide--tox-toolbar__overflow--shrinking',\n 'tox-toolbar--scrolling': 'tinymce__oxide--tox-toolbar--scrolling',\n 'tox-toolbar--no-divider': 'tinymce__oxide--tox-toolbar--no-divider',\n 'tox-tbtn__icon-rtl': 'tinymce__oxide--tox-tbtn__icon-rtl',\n 'tox-toolbar__group': 'tinymce__oxide--tox-toolbar__group',\n 'tox-toolbar__group--pull-right': 'tinymce__oxide--tox-toolbar__group--pull-right',\n 'tox-tooltip': 'tinymce__oxide--tox-tooltip',\n 'tox-tooltip__body': 'tinymce__oxide--tox-tooltip__body',\n 'tox-tooltip__arrow': 'tinymce__oxide--tox-tooltip__arrow',\n 'tox-tooltip--down': 'tinymce__oxide--tox-tooltip--down',\n 'tox-tooltip--up': 'tinymce__oxide--tox-tooltip--up',\n 'tox-tooltip--right': 'tinymce__oxide--tox-tooltip--right',\n 'tox-tooltip--left': 'tinymce__oxide--tox-tooltip--left',\n 'tox-well': 'tinymce__oxide--tox-well',\n 'tox-custom-editor': 'tinymce__oxide--tox-custom-editor',\n 'tox-dialog-loading': 'tinymce__oxide--tox-dialog-loading',\n 'tox-tab': 'tinymce__oxide--tox-tab',\n 'tox-dialog__content-js': 'tinymce__oxide--tox-dialog__content-js',\n 'tox-image-tools-edit-panel': 'tinymce__oxide--tox-image-tools-edit-panel',\n 'tox-image-tools__sidebar': 'tinymce__oxide--tox-image-tools__sidebar'\n};\nconst contentCSSBinding = {\n componentId: 'bKkob',\n template: function (theme) {\n return `\n\n\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-item-anchor {\n background: transparent url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A\") no-repeat center;\n cursor: default;\n display: inline-block;\n height: 12px !important;\n padding: 0 2px;\n -webkit-user-modify: read-only;\n -moz-user-modify: read-only;\n -webkit-user-select: all;\n user-select: all;\n width: 8px !important;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-item-anchor[data-mce-selected] {\n outline-offset: 1px;\n}\n.tinymce__oxide--tox-comments-visible .tinymce__oxide--tox-comment {\n background-color: #fff0b7;\n}\n.tinymce__oxide--tox-comments-visible .tinymce__oxide--tox-comment--active {\n background-color: #ffe168;\n}\n.tinymce__oxide--tox-checklist > li:not(.tinymce__oxide--tox-checklist--hidden) {\n list-style: none;\n margin: 0.25em 0;\n}\n.tinymce__oxide--tox-checklist > li:not(.tinymce__oxide--tox-checklist--hidden)::before {\n content: url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A\");\n cursor: pointer;\n height: 1em;\n margin-left: -1.5em;\n margin-top: 0.125em;\n position: absolute;\n width: 1em;\n}\n.tinymce__oxide--tox-checklist li:not(.tinymce__oxide--tox-checklist--hidden).tinymce__oxide--tox-checklist--checked::before {\n content: url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A\");\n}\n[dir=rtl] .tinymce__oxide--tox-checklist > li:not(.tinymce__oxide--tox-checklist--hidden)::before {\n margin-left: 0;\n margin-right: -1.5em;\n}\n\n\n\ncode[class*=\"language-\"],\npre[class*=\"language-\"] {\n color: black;\n background: none;\n text-shadow: 0 1px white;\n font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;\n font-size: 1em;\n text-align: left;\n white-space: pre;\n word-spacing: normal;\n word-break: normal;\n word-wrap: normal;\n line-height: 1.5;\n tab-size: 4;\n -webkit-hyphens: none;\n hyphens: none;\n}\n[dir=\"ltr\"] code[class*=\"language-\"],\n[dir=\"ltr\"] pre[class*=\"language-\"] {\n text-align: left;\n}\n[dir=\"rtl\"] code[class*=\"language-\"],\n[dir=\"rtl\"] pre[class*=\"language-\"] {\n text-align: left;\n}\npre[class*=\"language-\"]::selection,\npre[class*=\"language-\"] ::selection,\ncode[class*=\"language-\"]::selection,\ncode[class*=\"language-\"] ::selection {\n text-shadow: none;\n background: #b3d4fc;\n}\n@media print {\n code[class*=\"language-\"],\n pre[class*=\"language-\"] {\n text-shadow: none;\n }\n}\n\npre[class*=\"language-\"] {\n padding: 1em;\n margin: 0.5em 0;\n overflow: auto;\n}\n:not(pre) > code[class*=\"language-\"],\npre[class*=\"language-\"] {\n background: #f5f2f0;\n}\n\n:not(pre) > code[class*=\"language-\"] {\n padding: 0.1em;\n border-radius: 0.3em;\n white-space: normal;\n}\n.tinymce__oxide--token.tinymce__oxide--comment,\n.tinymce__oxide--token.tinymce__oxide--prolog,\n.tinymce__oxide--token.tinymce__oxide--doctype,\n.tinymce__oxide--token.tinymce__oxide--cdata {\n color: slategray;\n}\n.tinymce__oxide--token.tinymce__oxide--punctuation {\n color: #999;\n}\n.tinymce__oxide--namespace {\n opacity: 0.7;\n}\n.tinymce__oxide--token.tinymce__oxide--property,\n.tinymce__oxide--token.tinymce__oxide--tag,\n.tinymce__oxide--token.tinymce__oxide--boolean,\n.tinymce__oxide--token.tinymce__oxide--number,\n.tinymce__oxide--token.tinymce__oxide--constant,\n.tinymce__oxide--token.tinymce__oxide--symbol,\n.tinymce__oxide--token.tinymce__oxide--deleted {\n color: #905;\n}\n.tinymce__oxide--token.tinymce__oxide--selector,\n.tinymce__oxide--token.tinymce__oxide--attr-name,\n.tinymce__oxide--token.tinymce__oxide--string,\n.tinymce__oxide--token.tinymce__oxide--char,\n.tinymce__oxide--token.tinymce__oxide--builtin,\n.tinymce__oxide--token.tinymce__oxide--inserted {\n color: #690;\n}\n.tinymce__oxide--token.tinymce__oxide--operator,\n.tinymce__oxide--token.tinymce__oxide--entity,\n.tinymce__oxide--token.tinymce__oxide--url,\n.tinymce__oxide--language-css .tinymce__oxide--token.tinymce__oxide--string,\n.tinymce__oxide--style .tinymce__oxide--token.tinymce__oxide--string {\n color: #9a6e3a;\n background: hsla(0, 0%, 100%, 0.5);\n}\n.tinymce__oxide--token.tinymce__oxide--atrule,\n.tinymce__oxide--token.tinymce__oxide--attr-value,\n.tinymce__oxide--token.tinymce__oxide--keyword {\n color: #07a;\n}\n.tinymce__oxide--token.tinymce__oxide--function,\n.tinymce__oxide--token.tinymce__oxide--class-name {\n color: #DD4A68;\n}\n.tinymce__oxide--token.tinymce__oxide--regex,\n.tinymce__oxide--token.tinymce__oxide--important,\n.tinymce__oxide--token.tinymce__oxide--variable {\n color: #e90;\n}\n.tinymce__oxide--token.tinymce__oxide--important,\n.tinymce__oxide--token.tinymce__oxide--bold {\n font-weight: bold;\n}\n.tinymce__oxide--token.tinymce__oxide--italic {\n font-style: italic;\n}\n.tinymce__oxide--token.tinymce__oxide--entity {\n cursor: help;\n}\n\n.tinymce__oxide--mce-content-body {\n overflow-wrap: break-word;\n word-wrap: break-word;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-visual-caret {\n background-color: black;\n background-color: currentColor;\n position: absolute;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-visual-caret-hidden {\n display: none;\n}\n.tinymce__oxide--mce-content-body *[data-mce-caret] {\n left: -1000px;\n margin: 0;\n padding: 0;\n position: absolute;\n right: auto;\n top: 0;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-offscreen-selection {\n left: -2000000px;\n max-width: 1000000px;\n position: absolute;\n}\n.tinymce__oxide--mce-content-body *[contentEditable=false] {\n cursor: default;\n}\n.tinymce__oxide--mce-content-body *[contentEditable=true] {\n cursor: text;\n}\n.tinymce__oxide--tox-cursor-format-painter {\n cursor: url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A\"), default;\n}\n.tinymce__oxide--mce-content-body figure.tinymce__oxide--align-left {\n float: left;\n}\n[dir=\"ltr\"] .tinymce__oxide--mce-content-body figure.tinymce__oxide--align-left {\n float: left;\n}\n[dir=\"rtl\"] .tinymce__oxide--mce-content-body figure.tinymce__oxide--align-left {\n float: left;\n}\n.tinymce__oxide--mce-content-body figure.tinymce__oxide--align-right {\n float: right;\n}\n[dir=\"ltr\"] .tinymce__oxide--mce-content-body figure.tinymce__oxide--align-right {\n float: right;\n}\n[dir=\"rtl\"] .tinymce__oxide--mce-content-body figure.tinymce__oxide--align-right {\n float: right;\n}\n.tinymce__oxide--mce-content-body figure.tinymce__oxide--image.tinymce__oxide--align-center {\n display: table;\n margin-left: auto;\n margin-right: auto;\n}\n.tinymce__oxide--mce-preview-object {\n border: 1px solid gray;\n display: inline-block;\n line-height: 0;\n margin: 0 2px 0 2px;\n position: relative;\n}\n.tinymce__oxide--mce-preview-object .tinymce__oxide--mce-shim {\n background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n}\n.tinymce__oxide--mce-preview-object[data-mce-selected=\"2\"] .tinymce__oxide--mce-shim {\n display: none;\n}\n.tinymce__oxide--mce-object {\n background: transparent url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A\") no-repeat center;\n border: 1px dashed #aaa;\n}\n.tinymce__oxide--mce-pagebreak {\n border: 1px dashed #aaa;\n cursor: default;\n display: block;\n height: 5px;\n margin-top: 15px;\n page-break-before: always;\n width: 100%;\n}\n@media print {\n .tinymce__oxide--mce-pagebreak {\n border: 0;\n }\n}\n.tinymce__oxide--tiny-pageembed .tinymce__oxide--mce-shim {\n background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n}\n.tinymce__oxide--tiny-pageembed[data-mce-selected=\"2\"] .tinymce__oxide--mce-shim {\n display: none;\n}\n.tinymce__oxide--tiny-pageembed {\n display: inline-block;\n position: relative;\n}\n.tinymce__oxide--tiny-pageembed--21by9,\n.tinymce__oxide--tiny-pageembed--16by9,\n.tinymce__oxide--tiny-pageembed--4by3,\n.tinymce__oxide--tiny-pageembed--1by1 {\n display: block;\n overflow: hidden;\n padding: 0;\n position: relative;\n width: 100%;\n}\n.tinymce__oxide--tiny-pageembed--21by9 {\n padding-top: 42.857143%;\n}\n.tinymce__oxide--tiny-pageembed--16by9 {\n padding-top: 56.25%;\n}\n.tinymce__oxide--tiny-pageembed--4by3 {\n padding-top: 75%;\n}\n.tinymce__oxide--tiny-pageembed--1by1 {\n padding-top: 100%;\n}\n.tinymce__oxide--tiny-pageembed--21by9 iframe,\n.tinymce__oxide--tiny-pageembed--16by9 iframe,\n.tinymce__oxide--tiny-pageembed--4by3 iframe,\n.tinymce__oxide--tiny-pageembed--1by1 iframe {\n border: 0;\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n}\n.tinymce__oxide--mce-content-body[data-mce-placeholder] {\n position: relative;\n}\n.tinymce__oxide--mce-content-body[data-mce-placeholder]:not(.tinymce__oxide--mce-visualblocks)::before {\n color: rgba(34, 47, 62, 0.7);\n content: attr(data-mce-placeholder);\n position: absolute;\n}\n.tinymce__oxide--mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.tinymce__oxide--mce-visualblocks)::before {\n left: 1px;\n}\n.tinymce__oxide--mce-content-body[dir=rtl][data-mce-placeholder]:not(.tinymce__oxide--mce-visualblocks)::before {\n right: 1px;\n}\n.tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle {\n background-color: #4099ff;\n border-color: #4099ff;\n border-style: solid;\n border-width: 1px;\n box-sizing: border-box;\n height: 10px;\n position: absolute;\n width: 10px;\n z-index: 10000;\n}\n.tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle:hover {\n background-color: #4099ff;\n}\n.tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle:nth-of-type(1) {\n cursor: nwse-resize;\n}\n.tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle:nth-of-type(2) {\n cursor: nesw-resize;\n}\n.tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle:nth-of-type(3) {\n cursor: nwse-resize;\n}\n.tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle:nth-of-type(4) {\n cursor: nesw-resize;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-resize-backdrop {\n z-index: 10000;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-clonedresizable {\n cursor: default;\n opacity: 0.5;\n outline: 1px dashed black;\n position: absolute;\n z-index: 10001;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-clonedresizable.tinymce__oxide--mce-resizetable-columns th,\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-clonedresizable.tinymce__oxide--mce-resizetable-columns td {\n border: 0;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-resize-helper {\n background: #555;\n background: rgba(0, 0, 0, 0.75);\n border: 1px;\n border-radius: 3px;\n color: white;\n display: none;\n font-family: sans-serif;\n font-size: 12px;\n line-height: 14px;\n margin: 5px 10px;\n padding: 5px;\n position: absolute;\n white-space: nowrap;\n z-index: 10002;\n}\n.tinymce__oxide--tox-rtc-user-selection {\n position: relative;\n}\n.tinymce__oxide--tox-rtc-user-cursor {\n bottom: 0;\n cursor: default;\n position: absolute;\n top: 0;\n width: 2px;\n}\n.tinymce__oxide--tox-rtc-user-cursor::before {\n background-color: inherit;\n border-radius: 50%;\n content: '';\n display: block;\n height: 8px;\n position: absolute;\n right: -3px;\n top: -3px;\n width: 8px;\n}\n.tinymce__oxide--tox-rtc-user-cursor:hover::after {\n background-color: inherit;\n border-radius: 100px;\n box-sizing: border-box;\n color: #fff;\n content: attr(data-user);\n display: block;\n font-size: 12px;\n font-weight: bold;\n left: -5px;\n min-height: 8px;\n min-width: 8px;\n padding: 0 12px;\n position: absolute;\n top: -11px;\n white-space: nowrap;\n z-index: 1000;\n}\n.tinymce__oxide--tox-rtc-user-selection--1 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #2dc26b;\n}\n.tinymce__oxide--tox-rtc-user-selection--2 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #e03e2d;\n}\n.tinymce__oxide--tox-rtc-user-selection--3 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #f1c40f;\n}\n.tinymce__oxide--tox-rtc-user-selection--4 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #3598db;\n}\n.tinymce__oxide--tox-rtc-user-selection--5 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #b96ad9;\n}\n.tinymce__oxide--tox-rtc-user-selection--6 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #e67e23;\n}\n.tinymce__oxide--tox-rtc-user-selection--7 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #aaa69d;\n}\n.tinymce__oxide--tox-rtc-user-selection--8 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #f368e0;\n}\n.tinymce__oxide--tox-rtc-remote-image {\n background: #eaeaea url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A\") no-repeat center center;\n border: 1px solid #ccc;\n min-height: 240px;\n min-width: 320px;\n}\n.tinymce__oxide--mce-match-marker {\n background: #aaa;\n color: #fff;\n}\n.tinymce__oxide--mce-match-marker-selected {\n background: #39f;\n color: #fff;\n}\n.tinymce__oxide--mce-match-marker-selected::selection {\n background: #39f;\n color: #fff;\n}\n.tinymce__oxide--mce-content-body img[data-mce-selected],\n.tinymce__oxide--mce-content-body video[data-mce-selected],\n.tinymce__oxide--mce-content-body audio[data-mce-selected],\n.tinymce__oxide--mce-content-body object[data-mce-selected],\n.tinymce__oxide--mce-content-body embed[data-mce-selected],\n.tinymce__oxide--mce-content-body table[data-mce-selected] {\n outline: 3px solid #b4d7ff;\n}\n.tinymce__oxide--mce-content-body hr[data-mce-selected] {\n outline: 3px solid #b4d7ff;\n outline-offset: 1px;\n}\n.tinymce__oxide--mce-content-body *[contentEditable=false] *[contentEditable=true]:focus {\n outline: 3px solid #b4d7ff;\n}\n.tinymce__oxide--mce-content-body *[contentEditable=false] *[contentEditable=true]:hover {\n outline: 3px solid #b4d7ff;\n}\n.tinymce__oxide--mce-content-body *[contentEditable=false][data-mce-selected] {\n cursor: not-allowed;\n outline: 3px solid #b4d7ff;\n}\n.tinymce__oxide--mce-content-body.tinymce__oxide--mce-content-readonly *[contentEditable=true]:focus,\n.tinymce__oxide--mce-content-body.tinymce__oxide--mce-content-readonly *[contentEditable=true]:hover {\n outline: none;\n}\n.tinymce__oxide--mce-content-body *[data-mce-selected=\"inline-boundary\"] {\n background-color: #b4d7ff;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-edit-focus {\n outline: 3px solid #b4d7ff;\n}\n.tinymce__oxide--mce-content-body td[data-mce-selected],\n.tinymce__oxide--mce-content-body th[data-mce-selected] {\n position: relative;\n}\n.tinymce__oxide--mce-content-body td[data-mce-selected]::selection,\n.tinymce__oxide--mce-content-body th[data-mce-selected]::selection {\n background: none;\n}\n.tinymce__oxide--mce-content-body td[data-mce-selected] *,\n.tinymce__oxide--mce-content-body th[data-mce-selected] * {\n outline: none;\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n user-select: none;\n}\n.tinymce__oxide--mce-content-body td[data-mce-selected]::after,\n.tinymce__oxide--mce-content-body th[data-mce-selected]::after {\n background-color: rgba(180, 215, 255, 0.7);\n border: 1px solid rgba(180, 215, 255, 0.7);\n bottom: -1px;\n content: '';\n left: -1px;\n mix-blend-mode: multiply;\n position: absolute;\n right: -1px;\n top: -1px;\n}\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n .tinymce__oxide--mce-content-body td[data-mce-selected]::after,\n .tinymce__oxide--mce-content-body th[data-mce-selected]::after {\n border-color: rgba(0, 84, 180, 0.7);\n }\n}\n.tinymce__oxide--mce-content-body img::selection {\n background: none;\n}\n.tinymce__oxide--ephox-snooker-resizer-bar {\n background-color: #b4d7ff;\n opacity: 0;\n -webkit-user-select: none;\n user-select: none;\n}\n.tinymce__oxide--ephox-snooker-resizer-cols {\n cursor: col-resize;\n}\n.tinymce__oxide--ephox-snooker-resizer-rows {\n cursor: row-resize;\n}\n.tinymce__oxide--ephox-snooker-resizer-bar.tinymce__oxide--ephox-snooker-resizer-bar-dragging {\n opacity: 1;\n}\n.tinymce__oxide--mce-spellchecker-word {\n background-image: url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A\");\n background-position: 0 calc(100% + 1px);\n background-repeat: repeat-x;\n background-size: auto 6px;\n cursor: default;\n height: 2rem;\n}\n.tinymce__oxide--mce-spellchecker-grammar {\n background-image: url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A\");\n background-position: 0 calc(100% + 1px);\n background-repeat: repeat-x;\n background-size: auto 6px;\n cursor: default;\n}\n.tinymce__oxide--mce-toc {\n border: 1px solid gray;\n}\n.tinymce__oxide--mce-toc h2 {\n margin: 4px;\n}\n.tinymce__oxide--mce-toc li {\n list-style-type: none;\n}\ntable[style*=\"border-width: 0px\"],\n.tinymce__oxide--mce-item-table:not([border]),\n.tinymce__oxide--mce-item-table[border=\"0\"],\ntable[style*=\"border-width: 0px\"] td,\n.tinymce__oxide--mce-item-table:not([border]) td,\n.tinymce__oxide--mce-item-table[border=\"0\"] td,\ntable[style*=\"border-width: 0px\"] th,\n.tinymce__oxide--mce-item-table:not([border]) th,\n.tinymce__oxide--mce-item-table[border=\"0\"] th,\ntable[style*=\"border-width: 0px\"] caption,\n.tinymce__oxide--mce-item-table:not([border]) caption,\n.tinymce__oxide--mce-item-table[border=\"0\"] caption {\n border: 1px dashed #bbb;\n}\n.tinymce__oxide--mce-visualblocks p,\n.tinymce__oxide--mce-visualblocks h1,\n.tinymce__oxide--mce-visualblocks h2,\n.tinymce__oxide--mce-visualblocks h3,\n.tinymce__oxide--mce-visualblocks h4,\n.tinymce__oxide--mce-visualblocks h5,\n.tinymce__oxide--mce-visualblocks h6,\n.tinymce__oxide--mce-visualblocks div:not([data-mce-bogus]),\n.tinymce__oxide--mce-visualblocks section,\n.tinymce__oxide--mce-visualblocks article,\n.tinymce__oxide--mce-visualblocks blockquote,\n.tinymce__oxide--mce-visualblocks address,\n.tinymce__oxide--mce-visualblocks pre,\n.tinymce__oxide--mce-visualblocks figure,\n.tinymce__oxide--mce-visualblocks figcaption,\n.tinymce__oxide--mce-visualblocks hgroup,\n.tinymce__oxide--mce-visualblocks aside,\n.tinymce__oxide--mce-visualblocks ul,\n.tinymce__oxide--mce-visualblocks ol,\n.tinymce__oxide--mce-visualblocks dl {\n background-repeat: no-repeat;\n border: 1px dashed #bbb;\n margin-left: 3px;\n padding-top: 10px;\n}\n.tinymce__oxide--mce-visualblocks p {\n background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7);\n}\n.tinymce__oxide--mce-visualblocks h1 {\n background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==);\n}\n.tinymce__oxide--mce-visualblocks h2 {\n background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==);\n}\n.tinymce__oxide--mce-visualblocks h3 {\n background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7);\n}\n.tinymce__oxide--mce-visualblocks h4 {\n background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==);\n}\n.tinymce__oxide--mce-visualblocks h5 {\n background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==);\n}\n.tinymce__oxide--mce-visualblocks h6 {\n background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==);\n}\n.tinymce__oxide--mce-visualblocks div:not([data-mce-bogus]) {\n background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7);\n}\n.tinymce__oxide--mce-visualblocks section {\n background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=);\n}\n.tinymce__oxide--mce-visualblocks article {\n background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7);\n}\n.tinymce__oxide--mce-visualblocks blockquote {\n background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7);\n}\n.tinymce__oxide--mce-visualblocks address {\n background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=);\n}\n.tinymce__oxide--mce-visualblocks pre {\n background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==);\n}\n.tinymce__oxide--mce-visualblocks figure {\n background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7);\n}\n.tinymce__oxide--mce-visualblocks figcaption {\n border: 1px dashed #bbb;\n}\n.tinymce__oxide--mce-visualblocks hgroup {\n background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7);\n}\n.tinymce__oxide--mce-visualblocks aside {\n background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=);\n}\n.tinymce__oxide--mce-visualblocks ul {\n background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==);\n}\n.tinymce__oxide--mce-visualblocks ol {\n background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==);\n}\n.tinymce__oxide--mce-visualblocks dl {\n background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==);\n}\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) p,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) h1,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) h2,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) h3,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) h4,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) h5,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) h6,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) section,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) article,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) blockquote,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) address,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) pre,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) figure,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) figcaption,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) hgroup,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) aside,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) ul,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) ol,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) dl {\n margin-left: 3px;\n}\n.tinymce__oxide--mce-visualblocks[dir=rtl] p,\n.tinymce__oxide--mce-visualblocks[dir=rtl] h1,\n.tinymce__oxide--mce-visualblocks[dir=rtl] h2,\n.tinymce__oxide--mce-visualblocks[dir=rtl] h3,\n.tinymce__oxide--mce-visualblocks[dir=rtl] h4,\n.tinymce__oxide--mce-visualblocks[dir=rtl] h5,\n.tinymce__oxide--mce-visualblocks[dir=rtl] h6,\n.tinymce__oxide--mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),\n.tinymce__oxide--mce-visualblocks[dir=rtl] section,\n.tinymce__oxide--mce-visualblocks[dir=rtl] article,\n.tinymce__oxide--mce-visualblocks[dir=rtl] blockquote,\n.tinymce__oxide--mce-visualblocks[dir=rtl] address,\n.tinymce__oxide--mce-visualblocks[dir=rtl] pre,\n.tinymce__oxide--mce-visualblocks[dir=rtl] figure,\n.tinymce__oxide--mce-visualblocks[dir=rtl] figcaption,\n.tinymce__oxide--mce-visualblocks[dir=rtl] hgroup,\n.tinymce__oxide--mce-visualblocks[dir=rtl] aside,\n.tinymce__oxide--mce-visualblocks[dir=rtl] ul,\n.tinymce__oxide--mce-visualblocks[dir=rtl] ol,\n.tinymce__oxide--mce-visualblocks[dir=rtl] dl {\n background-position-x: right;\n margin-right: 3px;\n}\n.tinymce__oxide--mce-nbsp,\n.tinymce__oxide--mce-shy {\n background: #aaa;\n}\n.tinymce__oxide--mce-shy::after {\n content: '-';\n}\nbody {\n font-family: sans-serif;\n}\ntable {\n border-collapse: collapse;\n}\n`;\n },\n 'mce-content-body': 'tinymce__oxide--mce-content-body',\n 'mce-item-anchor': 'tinymce__oxide--mce-item-anchor',\n 'tox-comments-visible': 'tinymce__oxide--tox-comments-visible',\n 'tox-comment': 'tinymce__oxide--tox-comment',\n 'tox-comment--active': 'tinymce__oxide--tox-comment--active',\n 'tox-checklist': 'tinymce__oxide--tox-checklist',\n 'tox-checklist--hidden': 'tinymce__oxide--tox-checklist--hidden',\n 'tox-checklist--checked': 'tinymce__oxide--tox-checklist--checked',\n 'token': 'tinymce__oxide--token',\n 'comment': 'tinymce__oxide--comment',\n 'prolog': 'tinymce__oxide--prolog',\n 'doctype': 'tinymce__oxide--doctype',\n 'cdata': 'tinymce__oxide--cdata',\n 'punctuation': 'tinymce__oxide--punctuation',\n 'namespace': 'tinymce__oxide--namespace',\n 'property': 'tinymce__oxide--property',\n 'tag': 'tinymce__oxide--tag',\n 'boolean': 'tinymce__oxide--boolean',\n 'number': 'tinymce__oxide--number',\n 'constant': 'tinymce__oxide--constant',\n 'symbol': 'tinymce__oxide--symbol',\n 'deleted': 'tinymce__oxide--deleted',\n 'selector': 'tinymce__oxide--selector',\n 'attr-name': 'tinymce__oxide--attr-name',\n 'string': 'tinymce__oxide--string',\n 'char': 'tinymce__oxide--char',\n 'builtin': 'tinymce__oxide--builtin',\n 'inserted': 'tinymce__oxide--inserted',\n 'operator': 'tinymce__oxide--operator',\n 'entity': 'tinymce__oxide--entity',\n 'url': 'tinymce__oxide--url',\n 'language-css': 'tinymce__oxide--language-css',\n 'style': 'tinymce__oxide--style',\n 'atrule': 'tinymce__oxide--atrule',\n 'attr-value': 'tinymce__oxide--attr-value',\n 'keyword': 'tinymce__oxide--keyword',\n 'function': 'tinymce__oxide--function',\n 'class-name': 'tinymce__oxide--class-name',\n 'regex': 'tinymce__oxide--regex',\n 'important': 'tinymce__oxide--important',\n 'variable': 'tinymce__oxide--variable',\n 'bold': 'tinymce__oxide--bold',\n 'italic': 'tinymce__oxide--italic',\n 'mce-visual-caret': 'tinymce__oxide--mce-visual-caret',\n 'mce-visual-caret-hidden': 'tinymce__oxide--mce-visual-caret-hidden',\n 'mce-offscreen-selection': 'tinymce__oxide--mce-offscreen-selection',\n 'tox-cursor-format-painter': 'tinymce__oxide--tox-cursor-format-painter',\n 'align-left': 'tinymce__oxide--align-left',\n 'align-right': 'tinymce__oxide--align-right',\n 'image': 'tinymce__oxide--image',\n 'align-center': 'tinymce__oxide--align-center',\n 'mce-preview-object': 'tinymce__oxide--mce-preview-object',\n 'mce-shim': 'tinymce__oxide--mce-shim',\n 'mce-object': 'tinymce__oxide--mce-object',\n 'mce-pagebreak': 'tinymce__oxide--mce-pagebreak',\n 'tiny-pageembed': 'tinymce__oxide--tiny-pageembed',\n 'tiny-pageembed--21by9': 'tinymce__oxide--tiny-pageembed--21by9',\n 'tiny-pageembed--16by9': 'tinymce__oxide--tiny-pageembed--16by9',\n 'tiny-pageembed--4by3': 'tinymce__oxide--tiny-pageembed--4by3',\n 'tiny-pageembed--1by1': 'tinymce__oxide--tiny-pageembed--1by1',\n 'mce-visualblocks': 'tinymce__oxide--mce-visualblocks',\n 'mce-resizehandle': 'tinymce__oxide--mce-resizehandle',\n 'mce-resize-backdrop': 'tinymce__oxide--mce-resize-backdrop',\n 'mce-clonedresizable': 'tinymce__oxide--mce-clonedresizable',\n 'mce-resizetable-columns': 'tinymce__oxide--mce-resizetable-columns',\n 'mce-resize-helper': 'tinymce__oxide--mce-resize-helper',\n 'tox-rtc-user-selection': 'tinymce__oxide--tox-rtc-user-selection',\n 'tox-rtc-user-cursor': 'tinymce__oxide--tox-rtc-user-cursor',\n 'tox-rtc-user-selection--1': 'tinymce__oxide--tox-rtc-user-selection--1',\n 'tox-rtc-user-selection--2': 'tinymce__oxide--tox-rtc-user-selection--2',\n 'tox-rtc-user-selection--3': 'tinymce__oxide--tox-rtc-user-selection--3',\n 'tox-rtc-user-selection--4': 'tinymce__oxide--tox-rtc-user-selection--4',\n 'tox-rtc-user-selection--5': 'tinymce__oxide--tox-rtc-user-selection--5',\n 'tox-rtc-user-selection--6': 'tinymce__oxide--tox-rtc-user-selection--6',\n 'tox-rtc-user-selection--7': 'tinymce__oxide--tox-rtc-user-selection--7',\n 'tox-rtc-user-selection--8': 'tinymce__oxide--tox-rtc-user-selection--8',\n 'tox-rtc-remote-image': 'tinymce__oxide--tox-rtc-remote-image',\n 'mce-match-marker': 'tinymce__oxide--mce-match-marker',\n 'mce-match-marker-selected': 'tinymce__oxide--mce-match-marker-selected',\n 'mce-content-readonly': 'tinymce__oxide--mce-content-readonly',\n 'mce-edit-focus': 'tinymce__oxide--mce-edit-focus',\n 'ephox-snooker-resizer-bar': 'tinymce__oxide--ephox-snooker-resizer-bar',\n 'ephox-snooker-resizer-cols': 'tinymce__oxide--ephox-snooker-resizer-cols',\n 'ephox-snooker-resizer-rows': 'tinymce__oxide--ephox-snooker-resizer-rows',\n 'ephox-snooker-resizer-bar-dragging': 'tinymce__oxide--ephox-snooker-resizer-bar-dragging',\n 'mce-spellchecker-word': 'tinymce__oxide--mce-spellchecker-word',\n 'mce-spellchecker-grammar': 'tinymce__oxide--mce-spellchecker-grammar',\n 'mce-toc': 'tinymce__oxide--mce-toc',\n 'mce-item-table': 'tinymce__oxide--mce-item-table',\n 'mce-nbsp': 'tinymce__oxide--mce-nbsp',\n 'mce-shy': 'tinymce__oxide--mce-shy'\n};\nconst RestoreAutoSaveModal = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(2), __webpack_require__.e(69)]).then(__webpack_require__.bind(null, /*! ./RestoreAutoSaveModal */ \"./src/rce/RestoreAutoSaveModal.js\")));\nconst RceHtmlEditor = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(26), __webpack_require__.e(68)]).then(__webpack_require__.bind(null, /*! ./RceHtmlEditor */ \"./src/rce/RceHtmlEditor.js\")));\nconst ASYNC_FOCUS_TIMEOUT = 250;\nconst DEFAULT_RCE_HEIGHT = '400px';\nconst toolbarPropType = prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n // name of the toolbar the items are added to\n // if this toolbar doesn't exist, it is created\n // tinymce toolbar config does not\n // include a key to identify the individual toolbars, just a name\n // which is translated. This toolbar's name must be translated\n // in order to be merged correctly.\n name: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired,\n // items added to the toolbar\n // each is the name of the button some plugin has\n // registered with tinymce\n items: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string).isRequired\n}));\nconst menuPropType = prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.objectOf( // the key is the name of the menu item a plugin has\n// registered with tinymce. If it does not exist in the\n// default menubar, it will be added.\nprop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n // if this is a new menu in the menubar, title is it's label.\n // if these are items being merged into an existing menu, title is ignored\n title: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n // items is a space separated list it menu_items\n // some plugin has registered with tinymce\n items: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired\n}));\nconst ltiToolsPropType = prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n // id of the tool\n id: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]),\n // is this a favorite tool?\n favorite: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool\n}));\nconst editorOptionsPropType = prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n // height of the RCE.\n // if a number interpreted as pixels.\n // if a string as a CSS value.\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]),\n // entries you want merged into the toolbar. See toolBarPropType above.\n toolbar: toolbarPropType,\n // entries you want merged into to the menus. See menuPropType above.\n // If an entry defines a new menu, tinymce's menubar config option will\n // be updated for you. In fact, if you provide an editorOptions.menubar value\n // it will be overwritten.\n menu: menuPropType,\n // additional plugins that get merged into the default list of plugins\n // it is up to you to import the plugin's definition which will\n // register it and any related toolbar or menu entries with tinymce.\n plugins: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string),\n // is this RCE readonly?\n readonly: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool\n});\nconst skinCSS = skinCSSBinding.template().replace(/tinymce__oxide--/g, '');\nconst contentCSS = contentCSSBinding.template().replace(/tinymce__oxide--/g, ''); // If we ever get our jest tests configured so they can handle importing real esModules,\n// we can move this to plugins/instructure-ui-icons/plugin.js like the rest.\n\nfunction addKebabIcon(editor) {\n editor.ui.registry.addIcon('more-drawer', `\n <svg viewBox=\"0 0 1920 1920\">\n <path d=\"M1129.412 1637.647c0 93.448-75.964 169.412-169.412 169.412-93.448 0-169.412-75.964-169.412-169.412 0-93.447 75.964-169.412 169.412-169.412 93.448 0 169.412 75.965 169.412 169.412zm0-677.647c0 93.448-75.964 169.412-169.412 169.412-93.448 0-169.412-75.964-169.412-169.412 0-93.448 75.964-169.412 169.412-169.412 93.448 0 169.412 75.964 169.412 169.412zm0-677.647c0 93.447-75.964 169.412-169.412 169.412-93.448 0-169.412-75.965-169.412-169.412 0-93.448 75.964-169.412 169.412-169.412 93.448 0 169.412 75.964 169.412 169.412z\" stroke=\"none\" stroke-width=\"1\" fill-rule=\"evenodd\"/>\n </svg>\n `);\n} // Get oxide the default skin injected into the DOM before the overrides loaded by themeable\n\n\nlet inserted = false;\n\nfunction injectTinySkin() {\n if (inserted) return;\n inserted = true;\n const style = document.createElement('style');\n style.setAttribute('data-skin', 'tiny oxide skin');\n style.appendChild( // the .replace here is because the ui-themeable babel hook adds that prefix to all the class names\n document.createTextNode(skinCSS));\n const beforeMe = document.head.querySelector('style[data-glamor]') || // find instui's themeable stylesheet\n document.head.querySelector('style') || // find any stylesheet\n document.head.firstElementChild;\n document.head.insertBefore(style, beforeMe);\n}\n\nconst editorWrappers = new WeakMap();\n\nfunction focusToolbar(el) {\n const $firstToolbarButton = el.querySelector('.tox-tbtn');\n $firstToolbarButton && $firstToolbarButton.focus();\n}\n\nfunction focusFirstMenuButton(el) {\n const $firstMenu = el.querySelector('.tox-mbtn');\n $firstMenu && $firstMenu.focus();\n}\n\nfunction isElementWithinTable(node) {\n let elem = node;\n\n while (elem) {\n if (elem.tagName === 'TABLE' || elem.tagName === 'TD' || elem.tagName === 'TH') {\n return true;\n }\n\n elem = elem.parentElement;\n }\n\n return false;\n} // determines if localStorage is available for our use.\n// see https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API\n\n\nfunction storageAvailable() {\n let storage;\n\n try {\n storage = window.localStorage;\n const x = '__storage_test__';\n storage.setItem(x, x);\n storage.removeItem(x);\n return true;\n } catch (e) {\n return e instanceof DOMException && ( // everything except Firefox\n e.code === 22 || // Firefox\n e.code === 1014 || // test name field too, because code might not be present\n // everything except Firefox\n e.name === 'QuotaExceededError' || // Firefox\n e.name === 'NS_ERROR_DOM_QUOTA_REACHED') && // acknowledge QuotaExceededError only if there's something already stored\n storage && storage.length !== 0;\n }\n}\n\nfunction getHtmlEditorCookie() {\n const value = Object(_common_getCookie__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('rce.htmleditor');\n return value === _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"RAW_HTML_EDITOR_VIEW\"] || value === _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"PRETTY_HTML_EDITOR_VIEW\"] ? value : _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"PRETTY_HTML_EDITOR_VIEW\"];\n}\n\nfunction renderLoading() {\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Loading');\n} // safari implements only the webkit prefixed version of the fullscreen api\n\n\nconst FS_ELEMENT = document.fullscreenElement === undefined ? 'webkitFullscreenElement' : 'fullscreenElement';\nconst FS_REQUEST = document.body.requestFullscreen ? 'requestFullscreen' : 'webkitRequestFullscreen';\nconst FS_EXIT = document.exitFullscreen ? 'exitFullscreen' : 'webkitExitFullscreen';\nlet alertIdValue = 0;\nlet RCEWrapper = (_dec = Object(_instructure_ui_themeable__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(_skins_theme__WEBPACK_IMPORTED_MODULE_25__[\"default\"], styles), _dec(_class = (_class2 = class RCEWrapper extends react__WEBPACK_IMPORTED_MODULE_2___default.a.Component {\n static getByEditor(editor) {\n return editorWrappers.get(editor);\n }\n\n constructor(props) {\n var _this, _props$editorOptions;\n\n super(props);\n _this = this;\n\n this.onRemove = () => {\n _bridge__WEBPACK_IMPORTED_MODULE_20__[\"default\"].detachEditor(this);\n this.props.onRemove && this.props.onRemove(this);\n };\n\n this.toggleView = newView => {\n // coming from the menubar, we don't have a newView,\n const wasFullscreen = this._isFullscreen();\n\n if (wasFullscreen) this._exitFullscreen();\n let newState;\n\n switch (this.state.editorView) {\n case _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"WYSIWYG_VIEW\"]:\n newState = {\n editorView: newView || _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"PRETTY_HTML_EDITOR_VIEW\"]\n };\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"PRETTY_HTML_EDITOR_VIEW\"]:\n newState = {\n editorView: newView || _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"WYSIWYG_VIEW\"]\n };\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"RAW_HTML_EDITOR_VIEW\"]:\n newState = {\n editorView: newView || _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"WYSIWYG_VIEW\"]\n };\n }\n\n this.setState(newState, () => {\n if (wasFullscreen) {\n window.setTimeout(() => {\n this._enterFullscreen();\n }, 200); // due to the animation it takes some time for fullscreen to complete\n }\n });\n this.checkAccessibility();\n\n if (newView === _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"PRETTY_HTML_EDITOR_VIEW\"] || newView === _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"RAW_HTML_EDITOR_VIEW\"]) {\n document.cookie = `rce.htmleditor=${newView};path=/;max-age=31536000`;\n } // Emit view change event\n\n\n this.mceInstance().fire(_customEvents__WEBPACK_IMPORTED_MODULE_23__[\"VIEW_CHANGE\"], {\n target: this.editor,\n newView: newState.editorView\n });\n };\n\n this.contentTrayClosing = false;\n this.blurTimer = 0;\n\n this.handleFocusRCE = event => {\n this.handleFocus(event);\n };\n\n this.handleBlurRCE = event => {\n var _this$_elementRef$cur;\n\n if (event.relatedTarget === null) {\n // focus might be moving to tinymce\n this.handleBlur(event);\n }\n\n if (!((_this$_elementRef$cur = this._elementRef.current) !== null && _this$_elementRef$cur !== void 0 && _this$_elementRef$cur.contains(event.relatedTarget))) {\n this.handleBlur(event);\n }\n };\n\n this.handleFocusEditor = (event, _editor) => {\n // use .active to put a focus ring around the content area\n // when the editor has focus. This isn't perfect, but it's\n // what we've got for now.\n const ifr = this.iframe;\n ifr && ifr.parentElement.classList.add('active');\n\n this._forceCloseFloatingToolbar();\n\n this.handleFocus(event);\n };\n\n this.handleFocusHtmlEditor = event => {\n this.handleFocus(event);\n };\n\n this.handleBlurEditor = (event, _editor) => {\n const ifr = this.iframe;\n ifr && ifr.parentElement.classList.remove('active');\n this.handleBlur(event);\n };\n\n this.handleKey = event => {\n if (event.code === 'F9' && event.altKey) {\n event.preventDefault();\n event.stopPropagation();\n this.setFocusAbilityForHeader(true);\n focusFirstMenuButton(this._elementRef.current);\n } else if (event.code === 'F10' && event.altKey) {\n event.preventDefault();\n event.stopPropagation();\n this.setFocusAbilityForHeader(true);\n focusToolbar(this._elementRef.current);\n } else if ((event.code === 'F8' || event.code === 'Digit0') && event.altKey) {\n event.preventDefault();\n event.stopPropagation();\n this.openKBShortcutModal();\n } else if (event.code === 'Escape') {\n this._forceCloseFloatingToolbar();\n\n if (this.state.fullscreenState.isTinyFullscreen) {\n this.mceInstance().execCommand('mceFullScreen'); // turn it off\n } else {\n _bridge__WEBPACK_IMPORTED_MODULE_20__[\"default\"].hideTrays();\n }\n } else if (['n', 'N', 'd', 'D'].indexOf(event.key) !== -1) {\n // Prevent key events from bubbling up on touch screen device\n event.stopPropagation();\n }\n };\n\n this.handleClickFullscreen = () => {\n if (this._isFullscreen()) {\n this._exitFullscreen();\n } else {\n this._enterFullscreen();\n }\n };\n\n this.handleExternalClick = () => {\n this._forceCloseFloatingToolbar();\n\n Object(_instructure_debounce__WEBPACK_IMPORTED_MODULE_10__[\"debounce\"])(this.checkAccessibility, 1000)();\n };\n\n this.handleInputChange = () => {\n this.checkAccessibility();\n };\n\n this.onInit = (_event, editor) => {\n var _this$props$onInitted, _this$props;\n\n editor.rceWrapper = this;\n this.editor = editor;\n const textarea = this.editor.getElement(); // expected by canvas\n\n textarea.dataset.rich_text = true; // start with the textarea and tinymce in sync\n\n textarea.value = this.getCode();\n textarea.style.height = this.state.height; // Capture click events outside the iframe\n\n document.addEventListener('click', this.handleExternalClick);\n\n if (document.body.classList.contains('Underline-All-Links__enabled')) {\n this.iframe.contentDocument.body.classList.add('Underline-All-Links__enabled');\n }\n\n editor.on('wordCountUpdate', this.onWordCountUpdate); // add an aria-label to the application div that wraps RCE\n // and change role from \"application\" to \"document\" to ensure\n // the editor gets properly picked up by screen readers\n\n const tinyapp = document.querySelector('.tox-tinymce[role=\"application\"]');\n\n if (tinyapp) {\n tinyapp.setAttribute('aria-label', Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Rich Content Editor'));\n tinyapp.setAttribute('role', 'document');\n tinyapp.setAttribute('tabIndex', '-1');\n } // Adds a focusout event listener for handling screen reader navigation focus\n\n\n const header = this._elementRef.current.querySelector('.tox-editor-header');\n\n if (header) {\n header.addEventListener('focusout', e => {\n const leavingHeader = !header.contains(e.relatedTarget);\n\n if (leavingHeader) {\n this.setFocusAbilityForHeader(false);\n }\n });\n }\n\n this.setFocusAbilityForHeader(false); // Probably should do this in tinymce.scss, but we only want it in new rce\n\n textarea.style.resize = 'none';\n editor.on('ExecCommand', this._forceCloseFloatingToolbar);\n editor.on('keydown', this.handleKey);\n editor.on('FullscreenStateChanged', this._toggleFullscreen); // This propagates click events on the editor out of the iframe to the parent\n // document. We need this so that click events get captured properly by instui\n // focus-trapping components, so they properly ignore trapping focus on click.\n\n editor.on('click', () => window.top.document.body.click(), true);\n editor.on('Cut Paste Change input Undo Redo', Object(_instructure_debounce__WEBPACK_IMPORTED_MODULE_10__[\"debounce\"])(this.handleInputChange, 1000));\n this.announceContextToolbars(editor);\n\n if (this.isAutoSaving) {\n this.initAutoSave(editor);\n } // first view\n\n\n this.setEditorView(this.state.editorView); // readonly should have been handled via the init property passed\n // to <Editor>, but it's not.\n\n editor.mode.set(this.props.readOnly ? 'readonly' : 'design'); // Not using iframe_aria_text because compatibility issues.\n // Not using iframe_attrs because library overwriting.\n\n if (this.iframe) {\n this.iframe.setAttribute('title', Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Rich Text Area. Press ALT+0 for Rich Content Editor shortcuts.'));\n }\n\n (_this$props$onInitted = (_this$props = this.props).onInitted) === null || _this$props$onInitted === void 0 ? void 0 : _this$props$onInitted.call(_this$props, editor);\n };\n\n this._toggleFullscreen = event => {\n const header = document.getElementById('header');\n\n if (header) {\n if (event.state) {\n this.setState({\n fullscreenState: {\n headerDisp: header.style.display,\n isTinyFullscreen: true\n }\n });\n header.style.display = 'none';\n } else {\n header.style.display = this.state.fullscreenState.headerDisp;\n this.setState({\n fullscreenState: {\n isTinyFullscreen: false\n }\n });\n }\n } // if we're leaving fullscreen, remove event listeners on the fullscreen element\n\n\n if (!document[FS_ELEMENT] && this.state.fullscreenElem) {\n this.state.fullscreenElem.removeEventListener('fullscreenchange', this._toggleFullscreen);\n this.state.fullscreenElem.removeEventListener('webkitfullscreenchange', this._toggleFullscreen);\n this.setState({\n fullscreenState: {\n fullscreenElem: null\n }\n });\n } // if we don't defer setState, the pretty editor's height isn't correct\n // when entering fullscreen\n\n\n window.setTimeout(() => {\n if (document[FS_ELEMENT]) {\n this.setState(state => {\n return {\n fullscreenState: { ...state.fullscreenState,\n fullscreenElem: document[FS_ELEMENT]\n }\n };\n });\n } else {\n this.forceUpdate();\n }\n\n this.focusCurrentView();\n }, 0);\n };\n\n this._forceCloseFloatingToolbar = () => {\n if (this._elementRef.current) {\n const moreButton = this._elementRef.current.querySelector('.tox-toolbar-overlord .tox-toolbar__group:last-child button:last-child');\n\n if (moreButton !== null && moreButton !== void 0 && moreButton.getAttribute('aria-owns')) {\n // the floating toolbar is open\n moreButton.click(); // close the floating toolbar\n\n const editor = this.mceInstance(); // return focus to the editor\n\n editor === null || editor === void 0 ? void 0 : editor.focus();\n }\n }\n };\n\n this.announcing = 0;\n\n this.initAutoSave = editor => {\n this.storage = window.localStorage;\n\n if (this.storage) {\n editor.on('change Undo Redo', this.doAutoSave);\n editor.on('blur', this.doAutoSave);\n this.cleanupAutoSave();\n\n try {\n const autosaved = this.getAutoSaved(this.autoSaveKey);\n\n if (autosaved && autosaved.content) {\n // We'll compare just the text of the autosave content, since\n // Canvas is prone to swizzling images and iframes which will\n // make the editor content and autosave content never match up\n const editorContent = this.patchAutosavedContent(editor.getContent({\n no_events: true\n }), true);\n const autosavedContent = this.patchAutosavedContent(autosaved.content, true);\n\n if (autosavedContent !== editorContent) {\n this.setState({\n confirmAutoSave: true,\n autoSavedContent: this.patchAutosavedContent(autosaved.content)\n });\n } else {\n this.storage.removeItem(this.autoSaveKey);\n }\n }\n } catch (ex) {\n // log and ignore\n // eslint-disable-next-line no-console\n console.error('Failed initializing rce autosave', ex);\n }\n }\n };\n\n this.cleanupAutoSave = function () {\n let deleteAll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (_this.storage) {\n const expiry = deleteAll ? Date.now() : Date.now() - _this.props.autosave.maxAge;\n let i = 0;\n let key;\n\n while (key = _this.storage.key(i++)) {\n if (/^rceautosave:/.test(key)) {\n const autosaved = _this.getAutoSaved(key);\n\n if (autosaved && autosaved.autosaveTimestamp < expiry) {\n _this.storage.removeItem(key);\n }\n }\n }\n }\n };\n\n this.restoreAutoSave = ans => {\n this.setState({\n confirmAutoSave: false\n }, () => {\n const editor = this.mceInstance();\n\n if (ans) {\n editor.setContent(this.state.autoSavedContent, {});\n }\n\n this.storage.removeItem(this.autoSaveKey);\n });\n this.checkAccessibility();\n };\n\n this.doAutoSave = function (e) {\n let retry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (_this.storage) {\n const editor = _this.mceInstance(); // if the editor is empty don't save\n\n\n if (editor.dom.isEmpty(editor.getBody())) {\n return;\n }\n\n const content = editor.getContent({\n no_events: true\n });\n\n try {\n _this.storage.setItem(_this.autoSaveKey, JSON.stringify({\n autosaveTimestamp: Date.now(),\n content\n }));\n } catch (ex) {\n if (!retry) {\n // probably failed because there's not enough space\n // delete up all the other entries and try again\n _this.cleanupAutoSave(true);\n\n _this.doAutoSave(e, true);\n } else {\n console.error('Autosave failed:', ex); // eslint-disable-line no-console\n }\n }\n }\n };\n\n this.onWordCountUpdate = e => {\n this.setState(state => {\n if (e.wordCount.words !== state.wordCount) {\n return {\n wordCount: e.wordCount.words\n };\n } else return null;\n });\n };\n\n this.onNodeChange = e => {\n // This is basically copied out of the tinymce silver theme code for the status bar\n const path = e.parents.filter(p => p.nodeName !== 'BR' && !p.getAttribute('data-mce-bogus') && p.getAttribute('data-mce-type') !== 'bookmark').map(p => p.nodeName.toLowerCase()).reverse();\n this.setState({\n path\n });\n };\n\n this.onEditorChange = (content, _editor) => {\n var _this$props$onContent, _this$props2;\n\n (_this$props$onContent = (_this$props2 = this.props).onContentChange) === null || _this$props$onContent === void 0 ? void 0 : _this$props$onContent.call(_this$props2, content);\n };\n\n this.onResize = (_e, coordinates) => {\n const editor = this.mceInstance();\n\n if (editor) {\n const container = editor.getContainer();\n if (!container) return;\n const currentContainerHeight = Number.parseInt(container.style.height, 10);\n if (isNaN(currentContainerHeight)) return; // eslint-disable-line no-restricted-globals\n\n const modifiedHeight = currentContainerHeight + coordinates.deltaY;\n const newHeight = `${modifiedHeight}px`;\n container.style.height = newHeight;\n this.getTextarea().style.height = newHeight;\n this.setState({\n height: newHeight\n }); // play nice and send the same event that the silver theme would send\n\n editor.fire('ResizeEditor');\n }\n };\n\n this.onA11yChecker = () => {\n // eslint-disable-next-line promise/catch-or-return\n this.a11yCheckerReady.then(() => {\n this.onTinyMCEInstance('openAccessibilityChecker', {\n skip_focus: true\n });\n });\n };\n\n this.checkAccessibility = () => {\n const editor = this.mceInstance();\n editor.execCommand('checkAccessibility', false, {\n done: errors => {\n this.setState({\n a11yErrorsCount: errors.length\n });\n }\n }, {\n skip_focus: true\n });\n };\n\n this.openKBShortcutModal = () => {\n this.setState({\n KBShortcutModalOpen: true,\n KBShortcutFocusReturn: document.activeElement\n });\n };\n\n this.closeKBShortcutModal = () => {\n this.setState({\n KBShortcutModalOpen: false\n });\n };\n\n this.KBShortcutModalExited = () => {\n if (this.state.KBShortcutFocusReturn === this.iframe) {\n // if the iframe has focus, we need to forward it on to tinymce\n this.editor.focus(false);\n } else if (this._showOnFocusButton && document.activeElement === document.body) {\n // when the modal is opened from the showOnFocus button, focus doesn't\n // get automatically returned to the button like it should.\n this._showOnFocusButton.focus();\n } else {\n var _this$_showOnFocusBut;\n\n (_this$_showOnFocusBut = this._showOnFocusButton) === null || _this$_showOnFocusBut === void 0 ? void 0 : _this$_showOnFocusBut.focus();\n }\n };\n\n this.setFocusAbilityForHeader = focusable => {\n // Sets aria-hidden to prevent screen readers focus in RCE menus and toolbar\n const header = this._elementRef.current.querySelector('.tox-editor-header');\n\n if (header) {\n header.setAttribute('aria-hidden', focusable ? 'false' : 'true');\n }\n };\n\n this.handleTextareaChange = () => {\n if (this.isHidden()) {\n this.setCode(this.textareaValue());\n this.doAutoSave();\n }\n };\n\n this.addAlert = alert => {\n alert.id = alertIdValue++;\n this.setState(state => {\n let messages = state.messages.concat(alert);\n messages = lodash__WEBPACK_IMPORTED_MODULE_4___default.a.uniqBy(messages, 'text'); // Don't show the same message twice\n\n return {\n messages\n };\n });\n };\n\n this.removeAlert = messageId => {\n this.setState(state => {\n const messages = state.messages.filter(message => message.id !== messageId);\n return {\n messages\n };\n });\n };\n\n this.resetAlertId = () => {\n if (this.state.messages.length > 0) {\n throw new Error('There are messages currently, you cannot reset when they are non-zero');\n }\n\n alertIdValue = 0;\n };\n\n this.editor = null; // my tinymce editor instance\n\n this.language = Object(_normalizeLocale__WEBPACK_IMPORTED_MODULE_16__[\"default\"])(this.props.language); // interface consistent with editorBox\n\n this.get_code = this.getCode;\n this.set_code = this.setCode;\n this.insert_code = this.insertCode; // test override points\n\n this.indicator = false;\n this._elementRef = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createRef();\n this._editorPlaceholderRef = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createRef();\n this._prettyHtmlEditorRef = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createRef();\n this._showOnFocusButton = null;\n injectTinySkin();\n let ht = ((_props$editorOptions = props.editorOptions) === null || _props$editorOptions === void 0 ? void 0 : _props$editorOptions.height) || DEFAULT_RCE_HEIGHT;\n\n if (!Number.isNaN(ht)) {\n ht = `${ht}px`;\n }\n\n const currentRCECount = document.querySelectorAll('.rce-wrapper').length;\n const maxInitRenderedRCEs = Number.isNaN(props.maxInitRenderedRCEs) ? RCEWrapper.defaultProps.maxInitRenderedRCEs : props.maxInitRenderedRCEs;\n this.state = {\n path: [],\n wordCount: 0,\n editorView: props.editorView || _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"WYSIWYG_VIEW\"],\n shouldShowOnFocusButton: props.renderKBShortcutModal === undefined ? true : props.renderKBShortcutModal,\n KBShortcutModalOpen: false,\n messages: [],\n announcement: null,\n confirmAutoSave: false,\n autoSavedContent: '',\n id: this.props.id || this.props.textareaId || `${Date.now()}`,\n height: ht,\n fullscreenState: {\n headerDisp: 'static',\n isTinyFullscreen: false\n },\n a11yErrorsCount: 0,\n shouldShowEditor: typeof IntersectionObserver === 'undefined' || maxInitRenderedRCEs <= 0 || currentRCECount < maxInitRenderedRCEs\n };\n this.pendingEventHandlers = []; // Get top 2 favorited LTI Tools\n\n this.ltiToolFavorites = this.props.ltiTools.filter(e => e.favorite).map(e => `instructure_external_button_${e.id}`).slice(0, 2) || [];\n this.tinymceInitOptions = this.wrapOptions(props.editorOptions);\n _alertHandler__WEBPACK_IMPORTED_MODULE_29__[\"default\"].alertFunc = this.addAlert;\n this.handleContentTrayClosing = this.handleContentTrayClosing.bind(this);\n this.a11yCheckerReady = Promise.all(/*! import() */[__webpack_require__.e(4), __webpack_require__.e(5), __webpack_require__.e(8), __webpack_require__.e(38)]).then(__webpack_require__.bind(null, /*! ./initA11yChecker */ \"./src/rce/initA11yChecker.js\")).then(initA11yChecker => {\n initA11yChecker.default(this.language);\n this.checkAccessibility();\n }).catch(err => {\n // eslint-disable-next-line no-console\n console.error('Failed initializing a11y checker', err);\n });\n }\n\n getCanvasUrl() {\n if (!this.canvasUrl) this.canvasUrl = Object(_getCanvasUrl__WEBPACK_IMPORTED_MODULE_18__[\"getCanvasUrl\"])(this.props.trayProps);\n return this.canvasUrl.then(url => {\n if (!url) {\n console.warn('Could not determine Canvas base URL.', 'Content will be referenced by relative URL.');\n }\n\n return url;\n });\n } // getCode and setCode naming comes from tinyMCE\n // kind of strange but want to be consistent\n\n\n getCode() {\n return this.isHidden() ? this.textareaValue() : this.mceInstance().getContent();\n }\n\n checkReadyToGetCode(promptFunc) {\n let status = true; // Check for remaining placeholders\n\n if (this.mceInstance().dom.doc.querySelector(`[data-placeholder-for]`)) {\n status = promptFunc(Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Content is still being uploaded, if you continue it will not be embedded properly.'));\n }\n\n return status;\n }\n\n setCode(newContent) {\n var _this$mceInstance;\n\n (_this$mceInstance = this.mceInstance()) === null || _this$mceInstance === void 0 ? void 0 : _this$mceInstance.setContent(newContent);\n } // This function is called imperatively by the page that renders the RCE.\n // It should be called when the RCE content is done being edited.\n\n\n RCEClosed() {\n // We want to clear the autosaved content, since the page was legitimately closed.\n if (this.storage) {\n this.storage.removeItem(this.autoSaveKey);\n }\n }\n\n indicateEditor(element) {\n if (document.querySelector('[role=\"dialog\"][data-mce-component]')) {\n // there is a modal open, which zeros out the vertical scroll\n // so the indicator is in the wrong place. Give it a chance to close\n window.setTimeout(() => {\n this.indicateEditor(element);\n }, 100);\n return;\n }\n\n const editor = this.mceInstance();\n\n if (this.indicator) {\n this.indicator(editor, element);\n } else if (!this.isHidden()) {\n Object(_common_indicate__WEBPACK_IMPORTED_MODULE_19__[\"default\"])(Object(_indicatorRegion__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(editor, element));\n }\n }\n\n contentInserted(element) {\n this.indicateEditor(element);\n this.checkImageLoadError(element);\n this.sizeEditorForContent(element);\n } // make a attempt at sizing the editor so that the new content fits.\n // works under the assumptions the body's box-sizing is not content-box\n // and that the content is w/in a <p> whose margin is 12px top and bottom\n // (which, in canvas, is set in app/stylesheets/components/_ic-typography.scss)\n\n\n sizeEditorForContent(elem) {\n let height;\n\n if (elem && elem.nodeType === 1) {\n height = elem.clientHeight;\n }\n\n if (height) {\n const ifr = this.iframe;\n\n if (ifr) {\n const editor_body_style = ifr.contentWindow.getComputedStyle(this.iframe.contentDocument.body);\n const editor_ht = ifr.contentDocument.body.clientHeight - parseInt(editor_body_style['padding-top'], 10) - parseInt(editor_body_style['padding-bottom'], 10);\n const para_margin_ht = 24;\n const reserve_ht = Math.ceil(height + para_margin_ht);\n\n if (reserve_ht > editor_ht) {\n this.onResize(null, {\n deltaY: reserve_ht - editor_ht\n });\n }\n }\n }\n }\n\n checkImageLoadError(element) {\n if (!element || element.tagName !== 'IMG') {\n return;\n }\n\n if (!element.complete) {\n element.onload = () => this.checkImageLoadError(element);\n\n return;\n } // checking naturalWidth in a future event loop run prevents a race\n // condition between the onload callback and naturalWidth being set.\n\n\n setTimeout(() => {\n if (element.naturalWidth === 0) {\n element.style.border = '1px solid #000';\n element.style.padding = '2px';\n }\n }, 0);\n }\n\n insertCode(code) {\n const editor = this.mceInstance();\n const element = _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"insertContent\"](editor, code);\n this.contentInserted(element);\n }\n\n insertEmbedCode(code) {\n const editor = this.mceInstance(); // don't replace selected text, but embed after\n\n editor.selection.collapse(); // tinymce treats iframes uniquely, and doesn't like adding attributes\n // once it's in the editor, and I'd rather not parse the incomming html\n // string with a regex, so let's create a temp copy, then add a title\n // attribute if one doesn't exist. This will let screenreaders announce\n // that there's some embedded content helper\n // From what I've read, \"title\" is more reliable than \"aria-label\" for\n // elements like iframes and embeds.\n\n const temp = document.createElement('div');\n temp.innerHTML = code;\n const code_elem = temp.firstElementChild;\n\n if (code_elem) {\n if (!code_elem.hasAttribute('title') && !code_elem.hasAttribute('aria-label')) {\n code_elem.setAttribute('title', Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('embedded content'));\n }\n\n code = code_elem.outerHTML;\n } // inserting an iframe in tinymce (as is often the case with\n // embedded content) causes it to wrap it in a span\n // and it's often inserted into a <p> on top of that. Find the\n // iframe and use it to flash the indicator.\n\n\n const element = _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"insertContent\"](editor, code);\n const ifr = element && element.querySelector && element.querySelector('iframe');\n\n if (ifr) {\n this.contentInserted(ifr);\n } else {\n this.contentInserted(element);\n }\n }\n\n insertImage(image) {\n var _element$nextSibling, _element$nextSibling$;\n\n const editor = this.mceInstance();\n const element = _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"insertImage\"](editor, image); // Removes TinyMCE's caret text if exists.\n\n if ((element === null || element === void 0 ? void 0 : (_element$nextSibling = element.nextSibling) === null || _element$nextSibling === void 0 ? void 0 : (_element$nextSibling$ = _element$nextSibling.data) === null || _element$nextSibling$ === void 0 ? void 0 : _element$nextSibling$.trim()) === '') {\n element.nextSibling.remove();\n }\n\n if (element && element.complete) {\n this.contentInserted(element);\n } else if (element) {\n element.onload = () => this.contentInserted(element);\n\n element.onerror = () => this.checkImageLoadError(element);\n }\n }\n\n insertImagePlaceholder(fileMetaProps) {\n let width, height;\n let align = 'middle';\n\n if (Object(_plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_26__[\"isImage\"])(fileMetaProps.contentType) && fileMetaProps.displayAs !== 'link') {\n const image = new Image();\n image.src = fileMetaProps.domObject.preview;\n width = image.width;\n height = image.height; // we constrain the <img> to max-width: 100%, so scale the size down if necessary\n\n const maxWidth = this.iframe.contentDocument.body.clientWidth;\n\n if (width > maxWidth) {\n height = Math.round(maxWidth / width * height);\n width = maxWidth;\n }\n\n width = `${width}px`;\n height = `${height}px`;\n } else if (Object(_plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_26__[\"isVideo\"])(fileMetaProps.contentType || fileMetaProps.type)) {\n width = _plugins_instructure_record_VideoOptionsTray_TrayController__WEBPACK_IMPORTED_MODULE_31__[\"VIDEO_SIZE_DEFAULT\"].width;\n height = _plugins_instructure_record_VideoOptionsTray_TrayController__WEBPACK_IMPORTED_MODULE_31__[\"VIDEO_SIZE_DEFAULT\"].height;\n align = 'bottom';\n } else if (Object(_plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_26__[\"isAudio\"])(fileMetaProps.contentType || fileMetaProps.type)) {\n width = _plugins_instructure_record_VideoOptionsTray_TrayController__WEBPACK_IMPORTED_MODULE_31__[\"AUDIO_PLAYER_SIZE\"].width;\n height = _plugins_instructure_record_VideoOptionsTray_TrayController__WEBPACK_IMPORTED_MODULE_31__[\"AUDIO_PLAYER_SIZE\"].height;\n align = 'bottom';\n } else {\n width = `${fileMetaProps.name.length}rem`;\n height = '1rem';\n } // if you're wondering, the scatter about in the svg\n // is because tinymce will strip empty elements\n\n\n const markup = `\n <span\n aria-label=\"${Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Loading')}\"\n data-placeholder-for=\"${encodeURIComponent(fileMetaProps.name)}\"\n style=\"width: ${width}; height: ${height}; vertical-align: ${align};\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 100 100\" height=\"100px\" width=\"100px\">\n <g style=\"stroke-width:.5rem;fill:none;stroke-linecap:round;\"> \n <circle class=\"c1\" cx=\"50%\" cy=\"50%\" r=\"28px\"> </circle>\n <circle class=\"c2\" cx=\"50%\" cy=\"50%\" r=\"28px\"> </circle>\n \n </g>\n \n </svg>\n </span>`;\n const editor = this.mceInstance();\n editor.undoManager.ignore(() => {\n editor.execCommand('mceInsertContent', false, markup);\n });\n }\n\n insertVideo(video) {\n const editor = this.mceInstance();\n const element = _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"insertVideo\"](editor, video);\n this.contentInserted(element);\n }\n\n insertAudio(audio) {\n const editor = this.mceInstance();\n const element = _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"insertAudio\"](editor, audio);\n this.contentInserted(element);\n }\n\n insertMathEquation(tex) {\n const editor = this.mceInstance();\n return this.getCanvasUrl().then(domain => _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"insertEquation\"](editor, tex, domain));\n }\n\n removePlaceholders(name) {\n const placeholder = this.mceInstance().dom.doc.querySelector(`[data-placeholder-for=\"${encodeURIComponent(name)}\"]`);\n\n if (placeholder) {\n const editor = this.mceInstance();\n editor.undoManager.ignore(() => {\n editor.dom.remove(placeholder);\n });\n }\n }\n\n insertLink(link) {\n const editor = this.mceInstance();\n const element = _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"insertLink\"](editor, link);\n this.contentInserted(element);\n }\n\n existingContentToLink() {\n const editor = this.mceInstance();\n return _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"existingContentToLink\"](editor);\n }\n\n existingContentToLinkIsImg() {\n const editor = this.mceInstance();\n return _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"existingContentToLinkIsImg\"](editor);\n } // since we may defer rendering tinymce, queue up any tinymce event handlers\n\n\n tinymceOn(tinymceEventName, handler) {\n if (this.state.shouldShowEditor) {\n this.mceInstance().on(tinymceEventName, handler);\n } else {\n this.pendingEventHandlers.push({\n name: tinymceEventName,\n handler\n });\n }\n }\n\n mceInstance() {\n if (this.editor) {\n return this.editor;\n }\n\n const editors = this.props.tinymce.editors || [];\n return editors.filter(ed => ed.id === this.props.textareaId)[0];\n }\n\n onTinyMCEInstance(command) {\n const editor = this.mceInstance();\n\n if (editor) {\n if (command === 'mceRemoveEditor') {\n editor.execCommand('mceNewDocument');\n } // makes sure content can't persist past removal\n\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n editor.execCommand(command, false, ...args);\n }\n }\n\n destroy() {\n this._destroyCalled = true;\n this.unhandleTextareaChange();\n this.props.handleUnmount && this.props.handleUnmount();\n }\n\n getTextarea() {\n return document.getElementById(this.props.textareaId);\n }\n\n textareaValue() {\n return this.getTextarea().value;\n }\n\n get id() {\n return this.state.id;\n }\n\n _isFullscreen() {\n return this.state.fullscreenState.isTinyFullscreen || document[FS_ELEMENT];\n }\n\n _enterFullscreen() {\n switch (this.state.editorView) {\n case _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"PRETTY_HTML_EDITOR_VIEW\"]:\n this._prettyHtmlEditorRef.current.addEventListener('fullscreenchange', this._toggleFullscreen);\n\n this._prettyHtmlEditorRef.current.addEventListener('webkitfullscreenchange', this._toggleFullscreen); // if I don't focus first, FF complains that the element\n // is not in the active browser tab and requestFullscreen fails\n\n\n this._prettyHtmlEditorRef.current.focus();\n\n this._prettyHtmlEditorRef.current[FS_REQUEST]();\n\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"RAW_HTML_EDITOR_VIEW\"]:\n this.getTextarea().addEventListener('fullscreenchange', this._toggleFullscreen);\n this.getTextarea().addEventListener('webkitfullscreenchange', this._toggleFullscreen);\n this.getTextarea()[FS_REQUEST]();\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"WYSIWYG_VIEW\"]:\n this.mceInstance().execCommand('mceFullScreen');\n break;\n }\n }\n\n _exitFullscreen() {\n if (this.state.fullscreenState.isTinyFullscreen) {\n this.mceInstance().execCommand('mceFullScreen');\n } else if (document[FS_ELEMENT]) {\n document[FS_ELEMENT][FS_EXIT]();\n }\n }\n\n focus() {\n this.onTinyMCEInstance('mceFocus'); // tinymce doesn't always call the focus handler.\n\n this.handleFocusEditor(new Event('focus', {\n target: this.mceInstance()\n }));\n }\n\n focusCurrentView() {\n switch (this.state.editorView) {\n case _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"WYSIWYG_VIEW\"]:\n this.mceInstance().focus();\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"PRETTY_HTML_EDITOR_VIEW\"]:\n {\n const cmta = this._elementRef.current.querySelector('.CodeMirror textarea');\n\n if (cmta) {\n cmta.focus();\n } else {\n window.setTimeout(() => {\n var _this$_elementRef$cur2;\n\n (_this$_elementRef$cur2 = this._elementRef.current.querySelector('.CodeMirror textarea')) === null || _this$_elementRef$cur2 === void 0 ? void 0 : _this$_elementRef$cur2.focus();\n }, 200);\n }\n }\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"RAW_HTML_EDITOR_VIEW\"]:\n this.getTextarea().focus();\n break;\n }\n }\n\n is_dirty() {\n var _this$mceInstance2;\n\n if (this.mceInstance().isDirty()) {\n return true;\n }\n\n const content = this.isHidden() ? this.textareaValue() : (_this$mceInstance2 = this.mceInstance()) === null || _this$mceInstance2 === void 0 ? void 0 : _this$mceInstance2.getContent();\n return content !== this.cleanInitialContent();\n }\n\n cleanInitialContent() {\n if (!this._cleanInitialContent) {\n const el = window.document.createElement('div');\n el.innerHTML = this.props.defaultContent;\n const serializer = this.mceInstance().serializer;\n this._cleanInitialContent = serializer.serialize(el, {\n getInner: true\n });\n }\n\n return this._cleanInitialContent;\n }\n\n isHtmlView() {\n return this.state.editorView !== _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"WYSIWYG_VIEW\"];\n }\n\n isHidden() {\n return this.mceInstance().isHidden();\n }\n\n get iframe() {\n return document.getElementById(`${this.props.textareaId}_ifr`);\n } // these focus and blur event handlers work together so that RCEWrapper\n // can report focus and blur events from the RCE at-large\n\n\n get focused() {\n return this === _bridge__WEBPACK_IMPORTED_MODULE_20__[\"default\"].getEditor();\n }\n\n handleFocus(_event) {\n if (!this.focused) {\n _bridge__WEBPACK_IMPORTED_MODULE_20__[\"default\"].focusEditor(this);\n this.props.onFocus && this.props.onFocus(this);\n }\n }\n\n handleContentTrayClosing(isClosing) {\n this.contentTrayClosing = isClosing;\n }\n\n handleBlur(event) {\n if (this.blurTimer) return;\n\n if (this.focused) {\n // because the old active element fires blur before the next element gets focus\n // we often need a moment to see if focus comes back\n event && event.persist && event.persist();\n this.blurTimer = window.setTimeout(() => {\n var _this$_elementRef$cur3, _event$focusedEditor, _event$relatedTarget, _event$relatedTarget$;\n\n this.blurTimer = 0;\n\n if (this.contentTrayClosing) {\n // the CanvasContentTray is in the process of closing\n // wait until it finishes\n return;\n }\n\n if ((_this$_elementRef$cur3 = this._elementRef.current) !== null && _this$_elementRef$cur3 !== void 0 && _this$_elementRef$cur3.contains(document.activeElement)) {\n // focus is still somewhere w/in me\n return;\n }\n\n const activeClass = document.activeElement && document.activeElement.getAttribute('class');\n\n if ((event.focusedEditor === undefined || event.target.id === ((_event$focusedEditor = event.focusedEditor) === null || _event$focusedEditor === void 0 ? void 0 : _event$focusedEditor.id)) && activeClass !== null && activeClass !== void 0 && _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default()(activeClass).call(activeClass, 'tox-')) {\n // if a toolbar button has focus, then the user clicks on the \"more\" button\n // focus jumps to the body, then eventually to the popped up toolbar. This\n // catches that case.\n return;\n }\n\n if (event !== null && event !== void 0 && (_event$relatedTarget = event.relatedTarget) !== null && _event$relatedTarget !== void 0 && (_event$relatedTarget$ = _event$relatedTarget.getAttribute('class')) !== null && _event$relatedTarget$ !== void 0 && _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default()(_event$relatedTarget$).call(_event$relatedTarget$, 'tox-')) {\n // a tinymce popup has focus\n return;\n }\n\n const popups = document.querySelectorAll('[data-mce-component]');\n\n for (const popup of popups) {\n if (popup.contains(document.activeElement)) {\n // one of our popups has focus\n return;\n }\n }\n\n _bridge__WEBPACK_IMPORTED_MODULE_20__[\"default\"].blurEditor(this);\n this.props.onBlur && this.props.onBlur(event);\n }, ASYNC_FOCUS_TIMEOUT);\n }\n }\n\n call(methodName) {\n // since exists? has a ? and cant be a regular function just return true\n // rather than calling as a fn on the editor\n if (methodName === 'exists?') {\n return true;\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return this[methodName](...args);\n }\n\n announceContextToolbars(editor) {\n editor.on('NodeChange', () => {\n const node = editor.selection.getNode();\n\n if (Object(_plugins_shared_ContentSelection__WEBPACK_IMPORTED_MODULE_30__[\"isImageEmbed\"])(node, editor)) {\n if (this.announcing !== 1) {\n this.setState({\n announcement: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('type Control F9 to access image options. {text}', {\n text: node.getAttribute('alt')\n })\n });\n this.announcing = 1;\n }\n } else if (Object(_plugins_shared_ContentSelection__WEBPACK_IMPORTED_MODULE_30__[\"isFileLink\"])(node, editor)) {\n if (this.announcing !== 2) {\n this.setState({\n announcement: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('type Control F9 to access link options. {text}', {\n text: node.textContent\n })\n });\n this.announcing = 2;\n }\n } else if (isElementWithinTable(node, editor)) {\n if (this.announcing !== 3) {\n this.setState({\n announcement: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('type Control F9 to access table options. {text}', {\n text: node.textContent\n })\n });\n this.announcing = 3;\n }\n } else {\n this.setState({\n announcement: null\n });\n this.announcing = 0;\n }\n });\n }\n /* ********** autosave support *************** */\n\n\n // if a placeholder image shows up in autosaved content, we have to remove it\n // because the data url gets converted to a blob, which is not valid when restored.\n // besides, the placeholder is intended to be temporary while the file\n // is being uploaded\n patchAutosavedContent(content, asText) {\n const temp = document.createElement('div');\n temp.innerHTML = content;\n temp.querySelectorAll('[data-placeholder-for]').forEach(placeholder => {\n placeholder.parentElement.removeChild(placeholder);\n });\n if (asText) return temp.textContent;\n return temp.innerHTML;\n }\n\n getAutoSaved(key) {\n let autosaved = null;\n\n try {\n autosaved = this.storage && JSON.parse(this.storage.getItem(key));\n } catch (_ex) {\n this.storage.removeItem(this.autoSaveKey);\n }\n\n return autosaved;\n } // only autosave if the feature flag is set, and there is only 1 RCE on the page\n // the latter condition is necessary because the popup RestoreAutoSaveModal\n // is lousey UX when there are >1\n\n\n get isAutoSaving() {\n // If the editor is invisible for some reason, don't show the autosave modal\n // This doesn't apply if the editor is off-screen or has visibility:hidden;\n // only if it isn't rendered or has display:none;\n const editorVisible = this.editor.getContainer().offsetParent;\n return this.props.autosave.enabled && editorVisible && document.querySelectorAll('.rce-wrapper').length === 1 && storageAvailable();\n }\n\n get autoSaveKey() {\n var _this$props$trayProps;\n\n const userId = (_this$props$trayProps = this.props.trayProps) === null || _this$props$trayProps === void 0 ? void 0 : _this$props$trayProps.containingContext.userId;\n return `rceautosave:${userId}${window.location.href}:${this.props.textareaId}`;\n }\n\n componentWillUnmount() {\n if (this.state.shouldShowEditor) {\n var _this$mutationObserve, _this$intersectionObs;\n\n window.clearTimeout(this.blurTimer);\n\n if (!this._destroyCalled) {\n this.destroy();\n }\n\n this._elementRef.current.removeEventListener('keydown', this.handleKey, true);\n\n (_this$mutationObserve = this.mutationObserver) === null || _this$mutationObserve === void 0 ? void 0 : _this$mutationObserve.disconnect();\n (_this$intersectionObs = this.intersectionObserver) === null || _this$intersectionObs === void 0 ? void 0 : _this$intersectionObs.disconnect();\n }\n }\n\n wrapOptions() {\n var _this$props$trayProps2, _this$props$trayProps3, _this$props$trayProps4;\n\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const rcsExists = !!((_this$props$trayProps2 = this.props.trayProps) !== null && _this$props$trayProps2 !== void 0 && _this$props$trayProps2.host && (_this$props$trayProps3 = this.props.trayProps) !== null && _this$props$trayProps3 !== void 0 && _this$props$trayProps3.jwt);\n const setupCallback = options.setup;\n const canvasPlugins = rcsExists ? ['instructure_links', 'instructure_image', 'instructure_documents', 'instructure_equation', 'instructure_external_tools'] : ['instructure_links'];\n\n if (rcsExists && !this.props.instRecordDisabled) {\n canvasPlugins.splice(2, 0, 'instructure_record');\n }\n\n if (rcsExists && this.props.use_rce_icon_maker && ((_this$props$trayProps4 = this.props.trayProps) === null || _this$props$trayProps4 === void 0 ? void 0 : _this$props$trayProps4.contextType) === 'course') {\n canvasPlugins.push('instructure_icon_maker');\n }\n\n const possibleNewMenubarItems = this.props.editorOptions.menu ? Object.keys(this.props.editorOptions.menu).join(' ') : undefined;\n const wrappedOpts = { ...options,\n readonly: this.props.readOnly,\n theme: 'silver',\n // some older code specified 'modern', which doesn't exist any more\n height: options.height || DEFAULT_RCE_HEIGHT,\n language: _editorLanguage__WEBPACK_IMPORTED_MODULE_15___default()(this.language),\n block_formats: options.block_formats || [`${Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Heading 2')}=h2`, `${Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Heading 3')}=h3`, `${Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Heading 4')}=h4`, `${Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Preformatted')}=pre`, `${Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Paragraph')}=p`].join('; '),\n setup: editor => {\n var _bridge$trayProps;\n\n addKebabIcon(editor);\n editorWrappers.set(editor, this);\n const trayPropsWithColor = {\n brandColor: this.theme.canvasBrandColor,\n ...this.props.trayProps\n };\n (_bridge$trayProps = _bridge__WEBPACK_IMPORTED_MODULE_20__[\"default\"].trayProps) === null || _bridge$trayProps === void 0 ? void 0 : _bridge$trayProps.set(editor, trayPropsWithColor);\n _bridge__WEBPACK_IMPORTED_MODULE_20__[\"default\"].languages = this.props.languages;\n\n if (typeof setupCallback === 'function') {\n setupCallback(editor);\n }\n },\n // Consumers can, and should!, still pass a content_css prop so that the content\n // in the editor matches the styles of the app it will be displayed in when saved.\n // This is just so we inject the helper class names that tinyMCE uses for\n // things like table resizing and stuff.\n content_css: options.content_css || [],\n content_style: contentCSS,\n menubar: mergeMenuItems('edit view insert format tools table', possibleNewMenubarItems),\n // default menu options listed at https://www.tiny.cloud/docs/configure/editor-appearance/#menu\n // tinymce's default edit and table menus are fine\n // we include all the canvas specific items in the menu and toolbar\n // and rely on tinymce only showing them if the plugin is provided.\n menu: mergeMenu({\n format: {\n title: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Format'),\n items: 'bold italic underline strikethrough superscript subscript codeformat | formats blockformats fontformats fontsizes align directionality | forecolor backcolor | removeformat'\n },\n insert: {\n title: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Insert'),\n items: 'instructure_links instructure_image instructure_media instructure_document instructure_icon_maker | instructure_equation inserttable instructure_media_embed | hr'\n },\n tools: {\n title: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Tools'),\n items: 'wordcount lti_tools_menuitem'\n },\n view: {\n title: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('View'),\n items: 'fullscreen instructure_html_view'\n }\n }, options.menu),\n toolbar: mergeToolbar([{\n name: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Styles'),\n items: ['fontsizeselect', 'formatselect']\n }, {\n name: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Formatting'),\n items: ['bold', 'italic', 'underline', 'forecolor', 'backcolor', 'inst_subscript', 'inst_superscript']\n }, {\n name: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Content'),\n items: ['instructure_links', 'instructure_image', 'instructure_record', 'instructure_documents', 'instructure_icon_maker']\n }, {\n name: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('External Tools'),\n items: [...this.ltiToolFavorites, 'lti_tool_dropdown', 'lti_mru_button']\n }, {\n name: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Alignment and Lists'),\n items: ['align', 'bullist', 'inst_indent', 'inst_outdent']\n }, {\n name: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Miscellaneous'),\n items: ['removeformat', 'table', 'instructure_equation', 'instructure_media_embed']\n }], options.toolbar),\n contextmenu: '',\n // show the browser's native context menu\n toolbar_mode: 'floating',\n toolbar_sticky: true,\n plugins: mergePlugins(['autolink', 'media', 'paste', 'table', 'link', 'directionality', 'lists', 'textpattern', 'hr', 'fullscreen', 'instructure-ui-icons', 'instructure_condensed_buttons', 'instructure_links', 'instructure_html_view', 'instructure_media_embed', 'instructure_external_tools', 'a11y_checker', 'wordcount', ...canvasPlugins], Object(_sanitizePlugins__WEBPACK_IMPORTED_MODULE_17__[\"sanitizePlugins\"])(options.plugins)),\n textpattern_patterns: [{\n start: '* ',\n cmd: 'InsertUnorderedList'\n }, {\n start: '- ',\n cmd: 'InsertUnorderedList'\n }]\n };\n\n if (this.props.trayProps) {\n wrappedOpts.canvas_rce_user_context = {\n type: this.props.trayProps.contextType,\n id: this.props.trayProps.contextId\n };\n wrappedOpts.canvas_rce_containing_context = {\n type: this.props.trayProps.containingContext.contextType,\n id: this.props.trayProps.containingContext.contextId\n };\n }\n\n return wrappedOpts;\n }\n\n unhandleTextareaChange() {\n if (this._textareaEl) {\n this._textareaEl.removeEventListener('input', this.handleTextareaChange);\n }\n }\n\n registerTextareaChange() {\n const el = this.getTextarea();\n\n if (this._textareaEl !== el) {\n this.unhandleTextareaChange();\n\n if (el) {\n el.addEventListener('input', this.handleTextareaChange);\n\n if (this.props.textareaClassName) {\n // split the string on whitespace because classList doesn't let you add multiple\n // space seperated classes at a time but does let you add an array of them\n el.classList.add(...this.props.textareaClassName.split(/\\s+/));\n }\n\n this._textareaEl = el;\n }\n }\n }\n\n componentDidMount() {\n if (this.state.shouldShowEditor) {\n this.editorReallyDidMount();\n } else {\n this.intersectionObserver = new IntersectionObserver(entries => {\n const entry = entries[0];\n\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n this.setState({\n shouldShowEditor: true\n });\n }\n }, // initialize the RCE when it gets close to entering the viewport\n {\n root: null,\n rootMargin: '200px 0px',\n threshold: 0.0\n });\n this.intersectionObserver.observe(this._editorPlaceholderRef.current);\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (this.state.shouldShowEditor) {\n if (!prevState.shouldShowEditor) {\n var _this$intersectionObs2;\n\n this.editorReallyDidMount();\n (_this$intersectionObs2 = this.intersectionObserver) === null || _this$intersectionObs2 === void 0 ? void 0 : _this$intersectionObs2.disconnect();\n } else {\n this.registerTextareaChange();\n\n if (prevState.editorView !== this.state.editorView) {\n this.setEditorView(this.state.editorView);\n this.focusCurrentView();\n }\n\n if (prevProps.readOnly !== this.props.readOnly) {\n this.mceInstance().mode.set(this.props.readOnly ? 'readonly' : 'design');\n }\n }\n }\n }\n\n editorReallyDidMount() {\n const myTiny = this.mceInstance();\n this.pendingEventHandlers.forEach(e => {\n myTiny.on(e.name, e.handler);\n });\n this.registerTextareaChange();\n\n this._elementRef.current.addEventListener('keydown', this.handleKey, true); // give the textarea its initial size\n\n\n this.onResize(null, {\n deltaY: 0\n }); // Preload the LTI Tools modal\n // This helps with loading the favorited external tools\n\n if (this.ltiToolFavorites.length > 0) {\n __webpack_require__.e(/*! import() */ 11).then(__webpack_require__.bind(null, /*! ./plugins/instructure_external_tools/components/LtiToolsModal */ \"./src/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js\"));\n } // .tox-tinymce-aux is where tinymce puts the floating toolbar when\n // the user clicks the More... button\n // Tinymce doesn't fire onFocus when the user clicks More... from somewhere\n // outside, so we'll handle that here by watching for the floating toolbar\n // to come and go.\n\n\n const portals = document.querySelectorAll('.tox-tinymce-aux'); // my portal will be the last one in the doc because tinyumce appends them\n\n const tinymce_floating_toolbar_portal = portals[portals.length - 1];\n\n if (tinymce_floating_toolbar_portal) {\n this.mutationObserver = new MutationObserver((mutationList, _observer) => {\n mutationList.forEach(mutation => {\n if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {\n this.handleFocusEditor(new Event('focus', {\n target: mutation.target\n }));\n }\n });\n });\n this.mutationObserver.observe(tinymce_floating_toolbar_portal, {\n childList: true\n });\n }\n\n _bridge__WEBPACK_IMPORTED_MODULE_20__[\"default\"].renderEditor(this);\n }\n\n setEditorView(view) {\n var _this$getTextarea$lab, _this$getTextarea$lab2, _this$getTextarea$lab3, _this$getTextarea$lab4, _this$_elementRef$cur4, _this$getTextarea$lab5, _this$getTextarea$lab6;\n\n switch (view) {\n case _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"RAW_HTML_EDITOR_VIEW\"]:\n this.getTextarea().removeAttribute('aria-hidden');\n (_this$getTextarea$lab = this.getTextarea().labels) === null || _this$getTextarea$lab === void 0 ? void 0 : (_this$getTextarea$lab2 = _this$getTextarea$lab[0]) === null || _this$getTextarea$lab2 === void 0 ? void 0 : _this$getTextarea$lab2.removeAttribute('aria-hidden');\n this.mceInstance().hide();\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"PRETTY_HTML_EDITOR_VIEW\"]:\n this.getTextarea().setAttribute('aria-hidden', true);\n (_this$getTextarea$lab3 = this.getTextarea().labels) === null || _this$getTextarea$lab3 === void 0 ? void 0 : (_this$getTextarea$lab4 = _this$getTextarea$lab3[0]) === null || _this$getTextarea$lab4 === void 0 ? void 0 : _this$getTextarea$lab4.setAttribute('aria-hidden', true);\n this.mceInstance().hide();\n (_this$_elementRef$cur4 = this._elementRef.current.querySelector('.CodeMirror')) === null || _this$_elementRef$cur4 === void 0 ? void 0 : _this$_elementRef$cur4.CodeMirror.setCursor(0, 0);\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"WYSIWYG_VIEW\"]:\n this.setCode(this.textareaValue());\n this.getTextarea().setAttribute('aria-hidden', true);\n (_this$getTextarea$lab5 = this.getTextarea().labels) === null || _this$getTextarea$lab5 === void 0 ? void 0 : (_this$getTextarea$lab6 = _this$getTextarea$lab5[0]) === null || _this$getTextarea$lab6 === void 0 ? void 0 : _this$getTextarea$lab6.setAttribute('aria-hidden', true);\n this.mceInstance().show();\n }\n }\n\n renderHtmlEditor() {\n // the div keeps the editor from collapsing while the code editor is downloaded\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_2__[\"Suspense\"], {\n fallback: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n style: {\n height: this.state.height,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_instructure_ui_spinner__WEBPACK_IMPORTED_MODULE_8__[\"Spinner\"], {\n renderTitle: renderLoading,\n size: \"medium\"\n }))\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_9__[\"View\"], {\n as: \"div\",\n borderRadius: \"medium\",\n borderWidth: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(RceHtmlEditor, {\n ref: this._prettyHtmlEditorRef,\n height: document[FS_ELEMENT] ? `${window.screen.height}px` : this.state.height,\n code: this.getCode(),\n onChange: value => {\n this.getTextarea().value = value;\n this.handleTextareaChange();\n },\n onFocus: this.handleFocusHtmlEditor\n })));\n }\n\n render() {\n const {\n trayProps,\n ...mceProps\n } = this.props;\n\n if (!this.state.shouldShowEditor) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n ref: this._editorPlaceholderRef,\n style: {\n width: `${this.props.editorOptions.width}px`,\n height: `${this.props.editorOptions.height}px`,\n border: '1px solid grey'\n }\n });\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n key: this.id,\n className: `${styles.root} rce-wrapper`,\n ref: this._elementRef,\n onFocus: this.handleFocusRCE,\n onBlur: this.handleBlurRCE\n }, this.state.shouldShowOnFocusButton && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_ShowOnFocusButton__WEBPACK_IMPORTED_MODULE_24__[\"default\"], {\n onClick: this.openKBShortcutModal,\n margin: \"xx-small\",\n screenReaderLabel: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('View keyboard shortcuts'),\n ref: el => this._showOnFocusButton = el\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_instructure_ui_icons__WEBPACK_IMPORTED_MODULE_6__[\"IconKeyboardShortcutsLine\"], null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_AlertMessageArea__WEBPACK_IMPORTED_MODULE_28__[\"default\"], {\n messages: this.state.messages,\n liveRegion: this.props.liveRegion,\n afterDismiss: this.removeAlert\n }), this.state.editorView === _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"PRETTY_HTML_EDITOR_VIEW\"] && this.renderHtmlEditor(), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n style: {\n display: this.state.editorView === _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"PRETTY_HTML_EDITOR_VIEW\"] ? 'none' : 'block'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_tinymce_tinymce_react__WEBPACK_IMPORTED_MODULE_3__[\"Editor\"], {\n id: mceProps.textareaId,\n textareaName: mceProps.name,\n init: this.tinymceInitOptions,\n initialValue: mceProps.defaultContent,\n onInit: this.onInit,\n onClick: this.handleFocusEditor,\n onKeypress: this.handleFocusEditor,\n onActivate: this.handleFocusEditor,\n onRemove: this.onRemove,\n onFocus: this.handleFocusEditor,\n onBlur: this.handleBlurEditor,\n onNodeChange: this.onNodeChange,\n onEditorChange: this.onEditorChange\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"default\"], {\n readOnly: this.props.readOnly,\n onChangeView: newView => this.toggleView(newView),\n path: this.state.path,\n wordCount: this.state.wordCount,\n editorView: this.state.editorView,\n preferredHtmlEditor: getHtmlEditorCookie(),\n onResize: this.onResize,\n onKBShortcutModalOpen: this.openKBShortcutModal,\n onA11yChecker: this.onA11yChecker,\n onFullscreen: this.handleClickFullscreen,\n a11yBadgeColor: this.theme.canvasBadgeBackgroundColor,\n a11yErrorsCount: this.state.a11yErrorsCount\n }), this.props.trayProps && this.props.trayProps.containingContext && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_plugins_shared_CanvasContentTray__WEBPACK_IMPORTED_MODULE_21__[\"default\"], Object.assign({\n key: this.id,\n bridge: _bridge__WEBPACK_IMPORTED_MODULE_20__[\"default\"],\n editor: this,\n onTrayClosing: this.handleContentTrayClosing,\n use_rce_icon_maker: this.props.use_rce_icon_maker\n }, trayProps)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_KeyboardShortcutModal__WEBPACK_IMPORTED_MODULE_27__[\"default\"], {\n onExited: this.KBShortcutModalExited,\n onDismiss: this.closeKBShortcutModal,\n open: this.state.KBShortcutModalOpen\n }), this.state.confirmAutoSave ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_2__[\"Suspense\"], {\n fallback: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_instructure_ui_spinner__WEBPACK_IMPORTED_MODULE_8__[\"Spinner\"], {\n renderTitle: renderLoading,\n size: \"small\"\n })\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(RestoreAutoSaveModal, {\n savedContent: this.state.autoSavedContent,\n open: this.state.confirmAutoSave,\n onNo: () => this.restoreAutoSave(false),\n onYes: () => this.restoreAutoSave(true)\n })) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_instructure_ui_alerts__WEBPACK_IMPORTED_MODULE_7__[\"Alert\"], {\n screenReaderOnly: true,\n liveRegion: this.props.liveRegion\n }, this.state.announcement));\n }\n\n}, _class2.propTypes = {\n autosave: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n enabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n maxAge: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number\n }),\n defaultContent: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n editorOptions: editorOptionsPropType,\n handleUnmount: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n editorView: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([_StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"WYSIWYG_VIEW\"], _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"PRETTY_HTML_EDITOR_VIEW\"], _StatusBar__WEBPACK_IMPORTED_MODULE_22__[\"RAW_HTML_EDITOR_VIEW\"]]),\n renderKBShortcutModal: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n id: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n language: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n liveRegion: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,\n ltiTools: ltiToolsPropType,\n onContentChange: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onFocus: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onBlur: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onInitted: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRemove: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n textareaClassName: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n textareaId: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired,\n languages: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n id: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired,\n label: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired\n })),\n readOnly: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n tinymce: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object,\n trayProps: _plugins_shared_CanvasContentTray__WEBPACK_IMPORTED_MODULE_21__[\"trayPropTypes\"],\n toolbar: toolbarPropType,\n menu: menuPropType,\n plugins: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string),\n instRecordDisabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n highContrastCSS: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string),\n maxInitRenderedRCEs: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n use_rce_icon_maker: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool\n}, _class2.defaultProps = {\n trayProps: null,\n languages: [{\n id: 'en',\n label: 'English'\n }],\n autosave: {\n enabled: false\n },\n highContrastCSS: [],\n ltiTools: [],\n maxInitRenderedRCEs: -1\n}, _class2.skinCssInjected = false, _class2)) || _class); // standard: string of tinymce menu commands\n// e.g. 'instructure_links | inserttable instructure_media_embed | hr'\n// custom: a string of tinymce menu commands\n// returns: standard + custom with any duplicate commands removed from custom\n\nfunction mergeMenuItems(standard, custom) {\n var _custom$trim;\n\n let c = custom === null || custom === void 0 ? void 0 : (_custom$trim = custom.trim) === null || _custom$trim === void 0 ? void 0 : _custom$trim.call(custom);\n if (!c) return standard;\n const s = new Set(standard.split(/[\\s|]+/)); // remove any duplicates\n\n c = c.split(/\\s+/).filter(m => !s.has(m));\n c = c.join(' ').replace(/^\\s*\\|\\s*/, '').replace(/\\s*\\|\\s*$/, '');\n return `${standard} | ${c}`;\n} // standard: the incoming tinymce menu object\n// custom: tinymce menu object to merge into standard\n// returns: the merged result by mutating incoming standard arg.\n// It will add commands to existing menus, or add a new menu\n// if the custom one does not exist\n\n\nfunction mergeMenu(standard, custom) {\n if (!custom) return standard;\n Object.keys(custom).forEach(k => {\n const curr_m = standard[k];\n\n if (curr_m) {\n curr_m.items = mergeMenuItems(curr_m.items, custom[k].items);\n } else {\n standard[k] = { ...custom[k]\n };\n }\n });\n return standard;\n} // standard: incoming tinymce toolbar array\n// custom: tinymce toolbar array to merge into standard\n// returns: the merged result by mutating the incoming standard arg.\n// It will add commands to existing toolbars, or add a new toolbar\n// if the custom one does not exist\n\n\nfunction mergeToolbar(standard, custom) {\n if (!custom) return standard; // merge given toolbar data into the default toolbar\n\n custom.forEach(tb => {\n const curr_tb = standard.find(t => tb.name && Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(tb.name) === t.name);\n\n if (curr_tb) {\n curr_tb.items.splice(curr_tb.items.length, 0, ...tb.items);\n } else {\n standard.push(tb);\n }\n });\n return standard;\n} // standard: incoming array of plugin names\n// custom: array of plugin names to merge\n// returns: the merged result, duplicates removed\n\n\nfunction mergePlugins(standard, custom) {\n if (!custom) return standard;\n const union = new Set(standard);\n\n for (const p of custom) {\n union.add(p);\n }\n\n return [...union];\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (RCEWrapper);\n\n\n//# sourceURL=webpack:///./src/rce/RCEWrapper.js?");
|
|
17402
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"editorOptionsPropType\", function() { return editorOptionsPropType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"storageAvailable\", function() { return storageAvailable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toolbarPropType\", function() { return toolbarPropType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"menuPropType\", function() { return menuPropType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ltiToolsPropType\", function() { return ltiToolsPropType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeMenuItems\", function() { return mergeMenuItems; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeMenu\", function() { return mergeMenu; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeToolbar\", function() { return mergeToolbar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergePlugins\", function() { return mergePlugins; });\n/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/includes */ \"../../node_modules/@babel/runtime-corejs3/core-js-stable/instance/includes.js\");\n/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _tinymce_tinymce_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @tinymce/tinymce-react */ \"../../node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/index.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash */ \"../../node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _instructure_ui_themeable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-themeable */ \"../../node_modules/@instructure/ui-themeable/es/index.js\");\n/* harmony import */ var _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-icons */ \"../../node_modules/@instructure/ui-icons/es/index.js\");\n/* harmony import */ var _instructure_ui_alerts__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @instructure/ui-alerts */ \"../../node_modules/@instructure/ui-alerts/es/index.js\");\n/* harmony import */ var _instructure_ui_spinner__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @instructure/ui-spinner */ \"../../node_modules/@instructure/ui-spinner/es/index.js\");\n/* harmony import */ var _instructure_ui_view__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @instructure/ui-view */ \"../../node_modules/@instructure/ui-view/es/index.js\");\n/* harmony import */ var _instructure_debounce__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @instructure/debounce */ \"../../node_modules/@instructure/debounce/es/index.js\");\n/* harmony import */ var _common_getCookie__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../common/getCookie */ \"./src/common/getCookie.js\");\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _contentInsertion__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./contentInsertion */ \"./src/rce/contentInsertion.js\");\n/* harmony import */ var _indicatorRegion__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./indicatorRegion */ \"./src/rce/indicatorRegion.js\");\n/* harmony import */ var _editorLanguage__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./editorLanguage */ \"./src/rce/editorLanguage.js\");\n/* harmony import */ var _editorLanguage__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_editorLanguage__WEBPACK_IMPORTED_MODULE_15__);\n/* harmony import */ var _normalizeLocale__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./normalizeLocale */ \"./src/rce/normalizeLocale.js\");\n/* harmony import */ var _sanitizePlugins__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./sanitizePlugins */ \"./src/rce/sanitizePlugins.js\");\n/* harmony import */ var _getCanvasUrl__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./getCanvasUrl */ \"./src/rce/getCanvasUrl.js\");\n/* harmony import */ var _RCEGlobals__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./RCEGlobals */ \"./src/rce/RCEGlobals.js\");\n/* harmony import */ var _defaultTinymceConfig__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../defaultTinymceConfig */ \"./src/defaultTinymceConfig.js\");\n/* harmony import */ var _common_indicate__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../common/indicate */ \"./src/common/indicate.js\");\n/* harmony import */ var _bridge__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../bridge */ \"./src/bridge/index.js\");\n/* harmony import */ var _plugins_shared_CanvasContentTray__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./plugins/shared/CanvasContentTray */ \"./src/rce/plugins/shared/CanvasContentTray.js\");\n/* harmony import */ var _StatusBar__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./StatusBar */ \"./src/rce/StatusBar.js\");\n/* harmony import */ var _customEvents__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./customEvents */ \"./src/rce/customEvents.js\");\n/* harmony import */ var _ShowOnFocusButton__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./ShowOnFocusButton */ \"./src/rce/ShowOnFocusButton/index.js\");\n/* harmony import */ var _skins_theme__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../skins/theme */ \"./src/skins/theme.js\");\n/* harmony import */ var _plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./plugins/shared/fileTypeUtils */ \"./src/rce/plugins/shared/fileTypeUtils.js\");\n/* harmony import */ var _KeyboardShortcutModal__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./KeyboardShortcutModal */ \"./src/rce/KeyboardShortcutModal.js\");\n/* harmony import */ var _AlertMessageArea__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./AlertMessageArea */ \"./src/rce/AlertMessageArea.js\");\n/* harmony import */ var _alertHandler__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./alertHandler */ \"./src/rce/alertHandler.js\");\n/* harmony import */ var _plugins_shared_ContentSelection__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./plugins/shared/ContentSelection */ \"./src/rce/plugins/shared/ContentSelection.js\");\n/* harmony import */ var _plugins_instructure_record_VideoOptionsTray_TrayController__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./plugins/instructure_record/VideoOptionsTray/TrayController */ \"./src/rce/plugins/instructure_record/VideoOptionsTray/TrayController.js\");\nvar _dec, _class, _class2, _Intl, _Intl$DateTimeFormat, _Intl$DateTimeFormat$;\n\n\n\n/*\n * Copyright (C) 2018 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst styles = {\n componentId: 'dyzZI',\n template: function (theme) {\n return `\n\n\n\n\n.canvas-rce__skins--root {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n}\n\n\n\n.rce-wrapper textarea {\n width: 100%;\n box-sizing: border-box;\n min-height: auto;\n }\n\n.tox,\n .tox *:not(svg) {\n color: inherit;\n font-family: inherit;\n }\n\n\n\n[dir='rtl'] .tox :not(svg) {\n direction: rtl;\n }\n\n.tox:not(.tox-tinymce-inline) .tox-editor-header {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n.tox.tox-tinymce .screenreader-only {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n transform: translatez(0);\n }\n\n.tox-tinymce-aux {\n font-family: ${theme.canvasFontFamily || 'inherit'};\n }\n\n\n\n.tox.tox-tinymce-aux {\n z-index: 10000;\n }\n\n.tox .tox-button {\n background-color: ${theme.canvasPrimaryButtonHoverBackground || 'inherit'};\n font-family: ${theme.canvasFontFamily || 'inherit'};\n font-weight: ${theme.canvasButtonFontWeight || 'inherit'};\n font-size: ${theme.canvasButtonFontSize || 'inherit'};\n color: ${theme.canvasPrimaryButtonColor || 'inherit'};\n border-color: ${theme.canvasPrimaryButtonBorderColor || 'inherit'};\n line-height: calc(${theme.canvasButtonLineHeight || 'inherit'} - 2px);\n padding: ${theme.canvasButtonPadding || 'inherit'};\n }\n\n.tox .tox-button[disabled] {\n opacity: 0.5;\n border-color: inherit;\n color: inherit;\n }\n\n.tox .tox-button:focus:not(:disabled) {\n background-color: ${theme.canvasPrimaryButtonBackground || 'inherit'};\n color: ${theme.canvasPrimaryButtonColor || 'inherit'};\n border-color: ${theme.canvasBackgroundColor || 'inherit'};\n box-shadow: ${theme.canvasFocusBoxShadow || 'inherit'};\n }\n\n.tox .tox-button:hover:not(:disabled) {\n background-color: ${theme.canvasPrimaryButtonHoverBackground || 'inherit'};\n color: ${theme.canvasPrimaryButtonHoverColor || 'inherit'};\n }\n\n.tox .tox-button:active:not(:disabled) {\n background-color: ${theme.canvasPrimaryButtonBackground || 'inherit'};\n border-color: ${theme.canvasPrimaryButtonBorderColor || 'inherit'};\n color: ${theme.canvasPrimaryButtonColor || 'inherit'};\n }\n\n.tox .tox-button--secondary {\n background-color: ${theme.canvasSecondaryButtonBackground || 'inherit'};\n border-color: ${theme.canvasSecondaryButtonBorderColor || 'inherit'};\n color: ${theme.canvasSecondaryButtonColor || 'inherit'};\n }\n\n.tox .tox-button--secondary[disabled] {\n background-color: inherit;\n border-color: ${theme.canvasSecondaryButtonBorderColor || 'inherit'};\n color: inherit;\n opacity: 0.5;\n }\n\n.tox .tox-button--secondary:focus:not(:disabled) {\n background-color: inherit;\n border-color: ${theme.canvasFocusBorderColor || 'inherit'};\n color: inherit;\n }\n\n.tox .tox-button--secondary:hover:not(:disabled) {\n background-color: ${theme.canvasSecondaryButtonHoverBackground || 'inherit'};\n border-color: ${theme.canvasSecondaryButtonBorderColor || 'inherit'};\n color: ${theme.canvasSecondaryButtonHoverColor || 'inherit'};\n }\n\n.tox .tox-button--secondary:active:not(:disabled) {\n background-color: inherit;\n border-color: ${theme.canvasSecondaryButtonBorderColor || 'inherit'};\n color: inherit;\n }\n\n.tox .tox-button-link {\n font-family: ${theme.canvasFontFamily || 'inherit'};\n }\n\n.tox .tox-button--naked {\n background: ${theme.canvasButtonBackground || 'inherit'};\n border-color: ${theme.canvasButtonBorderColor || 'inherit'};\n color: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-button--naked:hover:not(:disabled) {\n background-color: ${theme.canvasButtonHoverBackground || 'inherit'};\n border-color: ${theme.canvasButtonBorderColor || 'inherit'};\n color: ${theme.canvasButtonHoverColor || 'inherit'};\n }\n\n.tox .tox-button--naked:focus:not(:disabled) {\n background-color: ${theme.canvasButtonBackground || 'inherit'};\n color: ${theme.canvasButtonColor || 'inherit'};\n border-color: ${theme.canvasBackgroundColor || 'inherit'};\n box-shadow: ${theme.canvasFocusBoxShadow || 'inherit'};\n }\n\n.tox .tox-button--naked:active:not(:disabled) {\n background-color: inherit;\n color: inherit;\n }\n\n.tox .tox-button--naked.tox-button--icon {\n color: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-button--naked.tox-button--icon:hover:not(:disabled) {\n background: ${theme.canvasButtonHoverBackground || 'inherit'};\n color: ${theme.canvasButtonHoverColor || 'inherit'};\n }\n\n.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg {\n fill: rgba(45, 59, 69, 0.3);\n }\n\n.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg {\n fill: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg {\n fill: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox input.tox-checkbox__input:focus + .tox-checkbox__icons {\n box-shadow: ${theme.canvasFocusBoxShadow || 'inherit'};\n }\n\n.tox .tox-collection--list .tox-collection__group {\n border-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-collection__group-heading {\n background-color: #e3e6e8;\n color: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-collection__item {\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-collection__item--state-disabled {\n background-color: unset;\n opacity: 0.5;\n cursor: default;\n }\n\n.tox .tox-collection--list .tox-collection__item--enabled {\n color: contrast(inherit, ${theme.canvasTextColor || 'inherit'}, #fff);\n }\n\n.tox .tox-collection--list .tox-collection__item--active {\n background-color: ${theme.activeMenuItemBackground || 'inherit'};\n color: ${theme.activeMenuItemLabelColor || 'inherit'};\n }\n\n.tox\n .tox-collection--list\n .tox-collection__item--active:not(.tox-collection__item--state-disabled) {\n background-color: ${theme.activeMenuItemBackground || 'inherit'};\n color: ${theme.activeMenuItemLabelColor || 'inherit'};\n }\n\n.tox .tox-collection--toolbar .tox-collection__item--enabled {\n background-color: #cbced1;\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-collection--toolbar .tox-collection__item--active {\n background-color: #e0e2e3;\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-collection--grid .tox-collection__item--enabled {\n background-color: #cbced1;\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-collection--grid .tox-collection__item--active {\n background-color: #e0e2e3;\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-collection--list .tox-collection__item-icon:first-child {\n margin-right: 8px;\n }\n\n.tox .tox-collection__item-accessory {\n color: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-sv-palette {\n border: 1px solid black;\n box-sizing: border-box;\n }\n\n.tox .tox-hue-slider {\n border: 1px solid black;\n }\n\n.tox .tox-rgb-form input.tox-invalid {\n \n border-color: ${theme.canvasErrorColor || 'inherit'} !important;\n }\n\n.tox .tox-rgb-form {\n padding: 2px; \n }\n\n.tox .tox-swatches__picker-btn:hover {\n background: #e0e2e3;\n }\n\n.tox .tox-comment-thread {\n background: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n.tox .tox-comment {\n background: ${theme.canvasBackgroundColor || 'inherit'};\n border-color: ${theme.canvasBorderColor || 'inherit'};\n box-shadow: 0 4px 8px 0 rgba(45, 59, 69, 0.1);\n }\n\n.tox .tox-comment__header {\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-comment__date {\n color: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-comment__body {\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-comment__expander p {\n color: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-comment-thread__overlay::after {\n background: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n.tox .tox-comment__overlay {\n background: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n.tox .tox-comment__loading-text {\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-comment__overlaytext p {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-comment__busy-spinner {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n.tox .tox-user__avatar svg {\n fill: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-user__name {\n color: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-dialog-wrap__backdrop {\n background-color: rgba(255, 255, 255, 0.75);\n }\n\n.tox .tox-dialog {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n border-color: ${theme.canvasBorderColor || 'inherit'};\n box-shadow: ${theme.canvasModalShadow || 'inherit'};\n }\n\n.tox .tox-dialog__header {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n color: ${theme.canvasTextColor || 'inherit'};\n border-bottom: 1px solid ${theme.canvasBorderColor || 'inherit'};\n padding: ${theme.canvasModalHeadingPadding || 'inherit'};\n margin: 0;\n }\n\n.tox .tox-dialog__title {\n font-family: ${theme.canvasFontFamily || 'inherit'};\n font-size: ${theme.canvasModalHeadingFontSize || 'inherit'};\n font-weight: ${theme.canvasModalHeadingFontWeight || 'inherit'};\n }\n\n.tox .tox-dialog__body {\n color: ${theme.canvasTextColor || 'inherit'};\n padding: ${theme.canvasModalBodyPadding || 'inherit'};\n }\n\n.tox .tox-dialog__body-nav-item {\n color: rgba(45, 59, 69, 0.75);\n }\n\n.tox .tox-dialog__body-nav-item:focus {\n box-shadow: ${theme.canvasFocusBoxShadow || 'inherit'};\n }\n\n.tox .tox-dialog__body-nav-item--active {\n border-bottom-color: ${theme.canvasBrandColor || 'inherit'};\n color: ${theme.canvasBrandColor || 'inherit'};\n }\n\n.tox .tox-dialog__footer {\n background-color: ${theme.canvasModalFooterBackground || 'inherit'};\n border-top: 1px solid ${theme.canvasBorderColor || 'inherit'};\n padding: ${theme.canvasModalFooterPadding || 'inherit'};\n margin: 0;\n }\n\n.tox .tox-dialog__table tbody tr {\n border-bottom-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-dropzone {\n background: ${theme.canvasBackgroundColor || 'inherit'};\n border: 2px dashed ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-dropzone p {\n color: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-edit-area {\n border: 1px solid ${theme.canvasBorderColor || 'inherit'};\n border-radius: 3px;\n }\n\n.tox .tox-edit-area__iframe {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n border: ${theme.canvasFocusBorderWidth || 'inherit'} solid transparent;\n }\n\n.tox.tox-inline-edit-area {\n border-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-form__group {\n padding: 2px;\n }\n\n.tox .tox-control-wrap .tox-textfield {\n padding-right: 32px;\n }\n\n.tox .tox-control-wrap__status-icon-invalid svg {\n fill: ${theme.canvasErrorColor || 'inherit'};\n }\n\n.tox .tox-control-wrap__status-icon-unknown svg {\n fill: ${theme.canvasWarningColor || 'inherit'};\n }\n\n.tox .tox-control-wrap__status-icon-valid svg {\n fill: ${theme.canvasSuccessColor || 'inherit'};\n }\n\n.tox .tox-color-input span {\n border-color: rgba(45, 59, 69, 0.2);\n }\n\n.tox .tox-color-input span:focus {\n border-color: ${theme.canvasBrandColor || 'inherit'};\n }\n\n.tox .tox-label,\n .tox .tox-toolbar-label {\n color: rgba(45, 59, 69, 0.6);\n }\n\n.tox .tox-form__group {\n margin: ${theme.canvasFormElementMargin || 'inherit'};\n }\n\n.tox .tox-form__group:last-child {\n margin: 0;\n }\n\n.tox .tox-form__group .tox-label {\n color: ${theme.canvasFormElementLabelColor || 'inherit'};\n margin: ${theme.canvasFormElementLabelMargin || 'inherit'};\n font-size: ${theme.canvasFormElementLabelFontSize || 'inherit'};\n font-weight: ${theme.canvasFormElementLabelFontWeight || 'inherit'};\n }\n\n.tox .tox-form__group--error {\n color: ${theme.canvasErrorColor || 'inherit'};\n }\n\n.tox .tox-textfield,\n .tox .tox-selectfield select,\n .tox .tox-textarea,\n .tox .tox-toolbar-textfield {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n border-color: ${theme.canvasBorderColor || 'inherit'};\n color: ${theme.canvasTextColor || 'inherit'};\n font-family: ${theme.canvasFontFamily || 'inherit'};\n }\n\n.tox .tox-textfield:focus,\n .tox .tox-selectfield select:focus,\n .tox .tox-textarea:focus {\n \n border-color: ${theme.canvasBorderColor || 'inherit'};\n box-shadow: ${theme.canvasFocusBoxShadow || 'inherit'};\n }\n\n.tox .tox-naked-btn {\n color: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-naked-btn svg {\n fill: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-insert-table-picker > div {\n border-color: #cccccc;\n }\n\n.tox .tox-insert-table-picker .tox-insert-table-picker__selected {\n background-color: ${theme.tableSelectorHighlightColor || 'inherit'};\n border-color: ${theme.tableSelectorHighlightColor || 'inherit'};\n }\n\n.tox-selected-menu .tox-insert-table-picker {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n.tox .tox-insert-table-picker__label {\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-menu {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n border-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-menubar {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n.tox .tox-mbtn {\n color: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-mbtn[disabled] {\n opacity: 0.5;\n }\n\n.tox .tox-mbtn:hover:not(:disabled) {\n background: ${theme.toolbarButtonHoverBackground || 'inherit'};\n color: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-mbtn:focus:not(:disabled) {\n background-color: transparent;\n color: ${theme.canvasButtonColor || 'inherit'};\n border-color: ${theme.canvasBackgroundColor || 'inherit'};\n box-shadow: ${theme.canvasFocusBoxShadow || 'inherit'};\n }\n\n.tox .tox-mbtn--active {\n background: ${theme.toolbarButtonHoverBackground || 'inherit'};\n color: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-notification {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n border-color: #c5c5c5;\n }\n\n.tox .tox-notification--success {\n background-color: #dff0d8;\n border-color: ${theme.canvasSuccessColor || 'inherit'};\n }\n\n.tox .tox-notification--error {\n background-color: #f2dede;\n border-color: ${theme.canvasErrorColor || 'inherit'};\n }\n\n.tox .tox-notification--warn {\n background-color: #fcf8e3;\n border-color: ${theme.canvasWarningColor || 'inherit'};\n }\n\n.tox .tox-notification--info {\n background-color: #d9edf7;\n border-color: ${theme.canvasInfoColor || 'inherit'};\n }\n\n.tox .tox-notification__body {\n color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-pop__dialog {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n border-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-pop.tox-pop--bottom::before {\n border-color: ${theme.canvasBorderColor || 'inherit'} transparent transparent transparent;\n }\n\n.tox .tox-pop.tox-pop--top::before {\n border-color: transparent transparent ${theme.canvasBorderColor || 'inherit'} transparent;\n }\n\n.tox .tox-pop.tox-pop--left::before {\n border-color: transparent ${theme.canvasBorderColor || 'inherit'} transparent transparent;\n }\n\n.tox .tox-pop.tox-pop--right::before {\n border-color: transparent transparent transparent ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-slider {\n width: 100%;\n }\n\n.tox .tox-slider__rail {\n border-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-slider__handle {\n background-color: ${theme.canvasBrandColor || 'inherit'};\n }\n\n.tox .tox-spinner > div {\n background-color: rgba(45, 59, 69, 0.6);\n }\n\n\n\n.tox .tox-tbtn {\n border-style: none;\n color: ${theme.canvasButtonColor || 'inherit'};\n position: relative;\n }\n\n.tox .tox-tbtn svg {\n fill: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox .tox-tbtn.tox-tbtn--enabled {\n background: inherit;\n }\n\n.tox .tox-tbtn:focus,\n .tox .tox-split-button:focus {\n background: ${theme.canvasBackgroundColor || 'inherit'};\n color: ${theme.canvasButtonColor || 'inherit'};\n box-shadow: ${theme.canvasFocusBoxShadow || 'inherit'};\n }\n\n.tox .tox-tbtn:hover,\n .tox .tox-split-button:hover,\n .tox .tox-tbtn.tox-tbtn--enabled:hover,\n .tox .tox-split-button .tox-tbtn.tox-split-button__chevron:hover {\n background: ${theme.toolbarButtonHoverBackground || 'inherit'};\n color: ${theme.canvasButtonColor || 'inherit'};\n }\n\n.tox-tbtn.tox-split-button__chevron {\n position: relative;\n }\n\n\n\n.tox .tox-tbtn.tox-tbtn--enabled::after {\n position: absolute;\n top: -3px;\n content: '\\\\25BC';\n text-align: center;\n height: 8px;\n font-size: 8px;\n width: 100%;\n color: ${theme.canvasEnabledColor || 'inherit'};\n }\n\n[dir=\"ltr\"] .tox .tox-tbtn.tox-tbtn--enabled::after {\n text-align: center;\n }\n\n[dir=\"rtl\"] .tox .tox-tbtn.tox-tbtn--enabled::after {\n text-align: center;\n }\n\n\n\n.tox-tbtn.tox-split-button__chevron.tox-tbtn--enabled::after {\n display: none;\n }\n\n.tox .tox-tbtn--disabled,\n .tox .tox-tbtn--disabled:hover,\n .tox .tox-tbtn:disabled,\n .tox .tox-tbtn:disabled:hover {\n opacity: 0.5;\n }\n\n.tox .tox-tbtn--disabled svg,\n .tox .tox-tbtn--disabled:hover svg,\n .tox .tox-tbtn:disabled svg,\n .tox .tox-tbtn:disabled:hover svg {\n \n opacity: 0.5;\n }\n\n.tox .tox-tbtn__select-chevron svg {\n fill: ${theme.canvasButtonColor || 'inherit'};\n width: 10px;\n height: 10px;\n }\n\n.tox .tox-split-button__chevron svg {\n fill: ${theme.canvasButtonColor || 'inherit'};\n width: 10px;\n height: 10px;\n }\n\n.tox .tox-split-button.tox-tbtn--disabled:hover,\n .tox .tox-split-button.tox-tbtn--disabled:focus,\n .tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover,\n .tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus {\n opacity: 0.5;\n }\n\n.tox .tox-toolbar {\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n border-top: 1px solid ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-toolbar__group:not(:last-of-type) {\n border-right: 1px solid ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-tooltip__body {\n background-color: ${theme.canvasTextColor || 'inherit'};\n box-shadow: 0 2px 4px rgba(45, 59, 69, 0.3);\n color: rgba(255, 255, 255, 0.75);\n }\n\n.tox .tox-tooltip--down .tox-tooltip__arrow {\n border-top-color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-tooltip--up .tox-tooltip__arrow {\n border-bottom-color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-tooltip--right .tox-tooltip__arrow {\n border-left-color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-tooltip--left .tox-tooltip__arrow {\n border-right-color: ${theme.canvasTextColor || 'inherit'};\n }\n\n.tox .tox-well {\n border-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox .tox-custom-editor {\n border-color: ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox a {\n color: ${theme.canvasLinkColor || 'inherit'};\n }\n\n.tox.tox-tinymce {\n border-style: none;\n }\n\n\n\n.tox-editor-container .tox-toolbar,\n .tox-editor-container .tox-toolbar-overlord {\n background-image: none;\n margin-bottom: 5px;\n }\n\n.tox-editor-container .tox-toolbar__primary {\n background-image: none;\n }\n\n\n\n.tox .tox-menubar + .tox-toolbar-overlord .tox-toolbar__primary {\n border-style: none;\n }\n\n.tox .tox-toolbar .tox-toolbar__group,\n .tox .tox-toolbar-overlord .tox-toolbar__group,\n .tox-toolbar__overflow .tox-toolbar__group,\n .tox:not([dir='rtl']) .tox-toolbar__group:not(:last-of-type),\n .tox[dir='rtl'] .tox-toolbar__group:not(:last-of-type) {\n border-style: none;\n }\n\n.tox-toolbar .tox-toolbar__group::after, \n .tox-toolbar-overlord .tox-toolbar__group::after, \n .tox-toolbar__overflow .tox-toolbar__group::after, \n .tox-tinymce-aux .tox-toolbar .tox-toolbar__group::after {\n \n content: '';\n display: inline-block;\n box-sizing: border-box;\n border-inline-end: 1px solid ${theme.canvasBorderColor || 'inherit'};\n width: 8px;\n height: 24px;\n }\n\n[dir=\"ltr\"] .tox-toolbar .tox-toolbar__group::after,\n[dir=\"ltr\"] .tox-toolbar-overlord .tox-toolbar__group::after,\n[dir=\"ltr\"] .tox-toolbar__overflow .tox-toolbar__group::after,\n[dir=\"ltr\"] .tox-tinymce-aux .tox-toolbar .tox-toolbar__group::after {\n border-right: 1px solid ${theme.canvasBorderColor || 'inherit'};\n }\n\n[dir=\"rtl\"] .tox-toolbar .tox-toolbar__group::after,\n[dir=\"rtl\"] .tox-toolbar-overlord .tox-toolbar__group::after,\n[dir=\"rtl\"] .tox-toolbar__overflow .tox-toolbar__group::after,\n[dir=\"rtl\"] .tox-tinymce-aux .tox-toolbar .tox-toolbar__group::after {\n border-left: 1px solid ${theme.canvasBorderColor || 'inherit'};\n }\n\n.tox-toolbar .tox-toolbar__group:last-child::after,\n .tox-toolbar-overlord .tox-toolbar__group:last-child::after,\n .tox-toolbar__overflow .tox-toolbar__group:last-child::after,\n .tox-tinymce-aux .tox-toolbar .tox-toolbar__group:last-child::after {\n border-inline-end-width: 0;\n padding-inline-start: 0;\n width: 0;\n }\n\n[dir=\"ltr\"] .tox-toolbar .tox-toolbar__group:last-child::after,\n[dir=\"ltr\"] .tox-toolbar-overlord .tox-toolbar__group:last-child::after,\n[dir=\"ltr\"] .tox-toolbar__overflow .tox-toolbar__group:last-child::after,\n[dir=\"ltr\"] .tox-tinymce-aux .tox-toolbar .tox-toolbar__group:last-child::after {\n border-right-width: 0;\n padding-left: 0;\n }\n\n[dir=\"rtl\"] .tox-toolbar .tox-toolbar__group:last-child::after,\n[dir=\"rtl\"] .tox-toolbar-overlord .tox-toolbar__group:last-child::after,\n[dir=\"rtl\"] .tox-toolbar__overflow .tox-toolbar__group:last-child::after,\n[dir=\"rtl\"] .tox-tinymce-aux .tox-toolbar .tox-toolbar__group:last-child::after {\n border-left-width: 0;\n padding-right: 0;\n }\n\n.tox .tox-tbtn--bespoke .tox-tbtn__select-label {\n width: auto;\n padding-inline-end: 0;\n }\n\n[dir=\"ltr\"] .tox .tox-tbtn--bespoke .tox-tbtn__select-label {\n padding-right: 0;\n }\n\n[dir=\"rtl\"] .tox .tox-tbtn--bespoke .tox-tbtn__select-label {\n padding-left: 0;\n }\n\n.tox .tox-tbtn {\n box-sizing: border-box;\n }\n\n.tox .tox-tbtn,\n .tox .tox-split-button,\n .tox .tox-tbtn--select {\n border-style: none;\n margin: 2px 2px 3px;\n }\n\n.tox .tox-split-button .tox-tbtn {\n margin-inline-end: 0;\n }\n\n[dir=\"ltr\"] .tox .tox-split-button .tox-tbtn {\n margin-right: 0;\n }\n\n[dir=\"rtl\"] .tox .tox-split-button .tox-tbtn {\n margin-left: 0;\n }\n\n.tox .tox-split-button .tox-tbtn.tox-split-button__chevron {\n margin-inline-start: 0;\n }\n\n[dir=\"ltr\"] .tox .tox-split-button .tox-tbtn.tox-split-button__chevron {\n margin-left: 0;\n }\n\n[dir=\"rtl\"] .tox .tox-split-button .tox-tbtn.tox-split-button__chevron {\n margin-right: 0;\n }\n\n.tox .tox-edit-area.active,\n .tox .tox-edit-area.active iframe {\n border-color: ${theme.canvasFocusBorderColor || 'inherit'};\n }\n\n.tox .tox-split-button .tox-tbtn {\n margin-inline-end: 0;\n }\n\n[dir=\"ltr\"] .tox .tox-split-button .tox-tbtn {\n margin-right: 0;\n }\n\n[dir=\"rtl\"] .tox .tox-split-button .tox-tbtn {\n margin-left: 0;\n }\n\n.tox .tox-split-button .tox-tbtn.tox-split-button__chevron {\n margin-inline-start: -6px;\n background-color: ${theme.canvasBackgroundColor || 'inherit'};\n }\n\n[dir=\"ltr\"] .tox .tox-split-button .tox-tbtn.tox-split-button__chevron {\n margin-left: -6px;\n }\n\n[dir=\"rtl\"] .tox .tox-split-button .tox-tbtn.tox-split-button__chevron {\n margin-right: -6px;\n }\n\n.tox .tox-split-button:hover .tox-split-button__chevron {\n background: ${theme.canvasBackgroundColor || 'inherit'};\n color: ${theme.canvasButtonColor || 'inherit'};\n box-shadow: none;\n }\n\n.tox .tox-tbtn:hover.tox-split-button__chevron,\n .tox .tox-tbtn:focus.tox-split-button__chevron {\n box-shadow: none;\n }\n\n.tox .tox-toolbar__primary {\n border-width: 0;\n }\n\n.tox-tbtn.tox-tbtn--select .tox-icon.tox-tbtn__icon-wrap {\n margin-inline-end: 4px;\n }\n\n[dir=\"ltr\"] .tox-tbtn.tox-tbtn--select .tox-icon.tox-tbtn__icon-wrap {\n margin-right: 4px;\n }\n\n[dir=\"rtl\"] .tox-tbtn.tox-tbtn--select .tox-icon.tox-tbtn__icon-wrap {\n margin-left: 4px;\n }\n\n\n\n.tox .tox-icon svg:not([height]),\n .tox .tox-collection__item-icon svg:not([height]) {\n height: 16px;\n }\n\n\n\n.tox .tox-collection--toolbar-lg .tox-collection__item-icon {\n height: 30px;\n width: 30px;\n }\n\n\n\n.tox-selectfield__icon-js svg {\n width: 10px;\n height: 10px;\n }\n\n\n\n[data-canvascontenttray-content]:focus {\n outline-color: ${theme.canvasFocusBorderColor || 'inherit'};\n }\n`;\n },\n 'root': 'canvas-rce__skins--root'\n};\nconst skinCSSBinding = {\n componentId: 'djgIv',\n template: function (theme) {\n return `\n\n\n.tinymce__oxide--tox{box-shadow:none;box-sizing:content-box;color:#222f3e;cursor:auto;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:normal;-webkit-tap-highlight-color:transparent;text-decoration:none;text-shadow:none;text-transform:none;vertical-align:baseline;vertical-align:initial;white-space:normal}\n\n.tinymce__oxide--tox :not(svg):not(rect){box-sizing:inherit;color:inherit;cursor:inherit;direction:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;-webkit-tap-highlight-color:inherit;text-align:inherit;text-decoration:inherit;text-shadow:inherit;text-transform:inherit;vertical-align:inherit;white-space:inherit}\n\n[dir=\"ltr\"] .tinymce__oxide--tox :not(svg):not(rect){text-align:inherit}\n\n[dir=\"rtl\"] .tinymce__oxide--tox :not(svg):not(rect){text-align:inherit}\n\n.tinymce__oxide--tox :not(svg):not(rect){background:0 0;border:0;box-shadow:none;float:none;height:auto;margin:0;max-width:none;outline:0;padding:0;position:static;width:auto}\n\n[dir=\"ltr\"] .tinymce__oxide--tox :not(svg):not(rect){float:none}\n\n[dir=\"rtl\"] .tinymce__oxide--tox :not(svg):not(rect){float:none}\n\n.tinymce__oxide--tox:not([dir=rtl]){direction:ltr;text-align:left}\n\n[dir=\"ltr\"] .tinymce__oxide--tox:not([dir=rtl]){text-align:left}\n\n[dir=\"rtl\"] .tinymce__oxide--tox:not([dir=rtl]){text-align:left}\n\n.tinymce__oxide--tox[dir=rtl]{direction:rtl;text-align:right}\n\n[dir=\"ltr\"] .tinymce__oxide--tox[dir=rtl]{text-align:right}\n\n[dir=\"rtl\"] .tinymce__oxide--tox[dir=rtl]{text-align:right}\n\n.tinymce__oxide--tox-tinymce{border:1px solid #ccc;border-radius:0;box-shadow:none;box-sizing:border-box;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;overflow:hidden;position:relative;visibility:inherit!important}\n\n.tinymce__oxide--tox-tinymce-inline{border:none;box-shadow:none}\n\n.tinymce__oxide--tox-tinymce-inline .tinymce__oxide--tox-editor-header{background-color:transparent;border:1px solid #ccc;border-radius:0;box-shadow:none}\n\n.tinymce__oxide--tox-tinymce-aux{font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;z-index:1300}\n\n.tinymce__oxide--tox-tinymce :focus,.tinymce__oxide--tox-tinymce-aux :focus{outline:0}\n\nbutton::-moz-focus-inner{border:0}\n\n.tinymce__oxide--tox .tinymce__oxide--accessibility-issue__header{align-items:center;display:flex;margin-bottom:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--accessibility-issue__description{align-items:stretch;border:1px solid #ccc;border-radius:3px;display:flex;justify-content:space-between}\n\n.tinymce__oxide--tox .tinymce__oxide--accessibility-issue__description>div{padding-bottom:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--accessibility-issue__description>div>div{align-items:center;display:flex;margin-bottom:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--accessibility-issue__description>:last-child:not(:only-child){border-color:#ccc;border-style:solid}\n\n.tinymce__oxide--tox .tinymce__oxide--accessibility-issue__repair{margin-top:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--info .tinymce__oxide--accessibility-issue__description{background-color:rgba(32,122,183,.1);border-color:rgba(32,122,183,.4);color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--info .tinymce__oxide--accessibility-issue__description>:last-child{border-color:rgba(32,122,183,.4)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--info .tinymce__oxide--tox-form__group h2{color:#207ab7}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--info .tinymce__oxide--tox-icon svg{fill:#207ab7}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--info a .tinymce__oxide--tox-icon{color:#207ab7}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--warn .tinymce__oxide--accessibility-issue__description{background-color:rgba(255,165,0,.1);border-color:rgba(255,165,0,.5);color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--warn .tinymce__oxide--accessibility-issue__description>:last-child{border-color:rgba(255,165,0,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--warn .tinymce__oxide--tox-form__group h2{color:#cc8500}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--warn .tinymce__oxide--tox-icon svg{fill:#cc8500}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--warn a .tinymce__oxide--tox-icon{color:#cc8500}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--error .tinymce__oxide--accessibility-issue__description{background-color:rgba(204,0,0,.1);border-color:rgba(204,0,0,.4);color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--error .tinymce__oxide--accessibility-issue__description>:last-child{border-color:rgba(204,0,0,.4)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--error .tinymce__oxide--tox-form__group h2{color:#c00}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--error .tinymce__oxide--tox-icon svg{fill:#c00}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--error a .tinymce__oxide--tox-icon{color:#c00}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--success .tinymce__oxide--accessibility-issue__description{background-color:rgba(120,171,70,.1);border-color:rgba(120,171,70,.4);color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--success .tinymce__oxide--accessibility-issue__description>:last-child{border-color:rgba(120,171,70,.4)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--success .tinymce__oxide--tox-form__group h2{color:#78ab46}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--success .tinymce__oxide--tox-icon svg{fill:#78ab46}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue--success a .tinymce__oxide--tox-icon{color:#78ab46}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__header h1,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group .tinymce__oxide--accessibility-issue__description h2{margin-top:0}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__header .tinymce__oxide--tox-button{margin-left:4px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__header>:nth-last-child(2){margin-left:auto}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__description{padding:4px 4px 4px 8px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__description>:last-child{border-left-width:1px;padding-left:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__header .tinymce__oxide--tox-button{margin-right:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__header>:nth-last-child(2){margin-right:auto}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__description{padding:4px 8px 4px 4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--accessibility-issue__description>:last-child{border-right-width:1px;padding-right:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-anchorbar{display:flex;flex:0 0 auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-bar{display:flex;flex:0 0 auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button{background-color:#207ab7;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#207ab7;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;line-height:24px;margin:0;outline:0;padding:4px 16px;text-align:center;text-decoration:none;text-transform:none;white-space:nowrap}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-button{text-align:center}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-button{text-align:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button[disabled]{background-color:#207ab7;background-image:none;border-color:#207ab7;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button:focus:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button:hover:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button:active:not(:disabled){background-color:#185d8c;background-image:none;border-color:#185d8c;box-shadow:none;color:#fff}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--secondary{background-color:#f0f0f0;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#f0f0f0;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;color:#222f3e;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;outline:0;padding:4px 16px;text-decoration:none;text-transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--secondary[disabled]{background-color:#f0f0f0;background-image:none;border-color:#f0f0f0;box-shadow:none;color:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--secondary:focus:not(:disabled){background-color:#e3e3e3;background-image:none;border-color:#e3e3e3;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--secondary:hover:not(:disabled){background-color:#e3e3e3;background-image:none;border-color:#e3e3e3;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--secondary:active:not(:disabled){background-color:#d6d6d6;background-image:none;border-color:#d6d6d6;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--icon,.tinymce__oxide--tox .tinymce__oxide--tox-button.tinymce__oxide--tox-button--icon,.tinymce__oxide--tox .tinymce__oxide--tox-button.tinymce__oxide--tox-button--secondary.tinymce__oxide--tox-button--icon{padding:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--icon .tinymce__oxide--tox-icon svg,.tinymce__oxide--tox .tinymce__oxide--tox-button.tinymce__oxide--tox-button--icon .tinymce__oxide--tox-icon svg,.tinymce__oxide--tox .tinymce__oxide--tox-button.tinymce__oxide--tox-button--secondary.tinymce__oxide--tox-button--icon .tinymce__oxide--tox-icon svg{display:block;fill:currentColor}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button-link{background:0;border:none;box-sizing:border-box;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;font-size:16px;font-weight:400;line-height:1.3;margin:0;padding:0;white-space:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button-link--sm{font-size:14px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--naked{background-color:transparent;border-color:transparent;box-shadow:unset;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--naked[disabled]{background-color:#f0f0f0;border-color:#f0f0f0;box-shadow:none;color:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--naked:hover:not(:disabled){background-color:#e3e3e3;border-color:#e3e3e3;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--naked:focus:not(:disabled){background-color:#e3e3e3;border-color:#e3e3e3;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--naked:active:not(:disabled){background-color:#d6d6d6;border-color:#d6d6d6;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--naked .tinymce__oxide--tox-icon svg{fill:currentColor}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-button--naked.tinymce__oxide--tox-button--icon:hover:not(:disabled){color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox{align-items:center;border-radius:3px;cursor:pointer;display:flex;height:36px;min-width:36px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox__input{height:1px;overflow:hidden;position:absolute;top:auto;width:1px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox__icons{align-items:center;border-radius:3px;box-shadow:0 0 0 2px transparent;box-sizing:content-box;display:flex;height:24px;justify-content:center;padding:calc(4px - 1px);width:24px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__unchecked svg{display:block;fill:rgba(34,47,62,.3)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__indeterminate svg{display:none;fill:#207ab7}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__checked svg{display:none;fill:#207ab7}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox--disabled{color:rgba(34,47,62,.5);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox--disabled .tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__checked svg{fill:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox--disabled .tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__unchecked svg{fill:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-checkbox--disabled .tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__indeterminate svg{fill:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox input.tinymce__oxide--tox-checkbox__input:checked+.tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__unchecked svg{display:none}\n\n.tinymce__oxide--tox input.tinymce__oxide--tox-checkbox__input:checked+.tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__checked svg{display:block}\n\n.tinymce__oxide--tox input.tinymce__oxide--tox-checkbox__input:indeterminate+.tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__unchecked svg{display:none}\n\n.tinymce__oxide--tox input.tinymce__oxide--tox-checkbox__input:indeterminate+.tinymce__oxide--tox-checkbox__icons .tinymce__oxide--tox-checkbox-icon__indeterminate svg{display:block}\n\n.tinymce__oxide--tox input.tinymce__oxide--tox-checkbox__input:focus+.tinymce__oxide--tox-checkbox__icons{border-radius:3px;box-shadow:inset 0 0 0 1px #207ab7;padding:calc(4px - 1px)}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-checkbox__label{margin-left:4px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-checkbox__input{left:-10000px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-bar .tinymce__oxide--tox-checkbox{margin-left:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-checkbox__label{margin-right:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-checkbox__input{right:-10000px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-bar .tinymce__oxide--tox-checkbox{margin-right:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar .tinymce__oxide--tox-collection__group{display:flex;padding:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--grid .tinymce__oxide--tox-collection__group{display:flex;flex-wrap:wrap;max-height:208px;overflow-x:hidden;overflow-y:auto;padding:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__group{border-bottom-width:0;border-color:#ccc;border-left-width:0;border-right-width:0;border-style:solid;border-top-width:1px;padding:4px 0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__group:first-child{border-top-width:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__group-heading{background-color:#e6e6e6;color:rgba(34,47,62,.7);cursor:default;font-size:12px;font-style:normal;font-weight:400;margin-bottom:4px;margin-top:-4px;padding:4px 8px;text-transform:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item{align-items:center;color:#222f3e;cursor:pointer;display:flex;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item{padding:4px 8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar .tinymce__oxide--tox-collection__item{border-radius:3px;padding:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--grid .tinymce__oxide--tox-collection__item{border-radius:3px;padding:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item--enabled{background-color:#fff;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item--active{background-color:#dee0e2}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar .tinymce__oxide--tox-collection__item--enabled{background-color:#c8cbcf;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar .tinymce__oxide--tox-collection__item--active{background-color:#dee0e2}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--grid .tinymce__oxide--tox-collection__item--enabled{background-color:#c8cbcf;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--grid .tinymce__oxide--tox-collection__item--active:not(.tinymce__oxide--tox-collection__item--state-disabled){background-color:#dee0e2;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item--active:not(.tinymce__oxide--tox-collection__item--state-disabled){color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar .tinymce__oxide--tox-collection__item--active:not(.tinymce__oxide--tox-collection__item--state-disabled){color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item--state-disabled{background-color:transparent;color:rgba(34,47,62,.5);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-checkmark,.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-icon{align-items:center;display:flex;height:24px;justify-content:center;width:24px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-checkmark svg,.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-icon svg{fill:currentColor}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--toolbar-lg .tinymce__oxide--tox-collection__item-icon{height:48px;width:48px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-label{color:currentColor;display:inline-block;flex:1;-ms-flex-preferred-size:auto;font-size:14px;font-style:normal;font-weight:400;line-height:24px;text-transform:none;word-break:break-all}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-accessory{color:rgba(34,47,62,.7);display:inline-block;font-size:14px;height:24px;line-height:24px;text-transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-caret{align-items:center;display:flex;min-height:24px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-caret::after{content:'';font-size:0;min-height:inherit}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-caret svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item:not(.tinymce__oxide--tox-collection__item--enabled) .tinymce__oxide--tox-collection__item-checkmark svg{display:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item:not(.tinymce__oxide--tox-collection__item--enabled) .tinymce__oxide--tox-collection__item-accessory+.tinymce__oxide--tox-collection__item-checkmark{display:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--horizontal{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:nowrap;margin-bottom:0;overflow-x:auto;padding:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__group{align-items:center;display:flex;flex-wrap:nowrap;margin:0;padding:0 4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__item{height:34px;margin:2px 0 3px 0;padding:0 4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__item-label{white-space:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__item-caret{margin-left:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container{display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--row{align-items:center;flex:1 1 auto;flex-direction:row}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--row.tinymce__oxide--tox-collection__item-container--align-left{margin-right:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--row.tinymce__oxide--tox-collection__item-container--align-right{justify-content:flex-end;margin-left:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--row.tinymce__oxide--tox-collection__item-container--valign-top{align-items:flex-start;margin-bottom:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--row.tinymce__oxide--tox-collection__item-container--valign-middle{align-items:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--row.tinymce__oxide--tox-collection__item-container--valign-bottom{align-items:flex-end;margin-top:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column{align-self:center;flex:1 1 auto;flex-direction:column}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column.tinymce__oxide--tox-collection__item-container--align-left{align-items:flex-start}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column.tinymce__oxide--tox-collection__item-container--align-right{align-items:flex-end}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column.tinymce__oxide--tox-collection__item-container--valign-top{align-self:flex-start}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column.tinymce__oxide--tox-collection__item-container--valign-middle{align-self:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection__item-container--column.tinymce__oxide--tox-collection__item-container--valign-bottom{align-self:flex-end}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__group:not(:last-of-type){border-right:1px solid #ccc}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item>:not(:first-child){margin-left:8px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item>.tinymce__oxide--tox-collection__item-label:first-child{margin-left:4px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection__item-accessory{margin-left:16px;text-align:right}\n\n[dir=\"ltr\"] .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection__item-accessory{text-align:right}\n\n[dir=\"rtl\"] .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection__item-accessory{text-align:right}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-collection .tinymce__oxide--tox-collection__item-caret{margin-left:16px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__group:not(:last-of-type){border-left:1px solid #ccc}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item>:not(:first-child){margin-right:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__item>.tinymce__oxide--tox-collection__item-label:first-child{margin-right:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection__item-icon-rtl .tinymce__oxide--tox-collection__item-icon svg{transform:rotateY(180deg)}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection__item-accessory{margin-right:16px;text-align:left}\n\n[dir=\"ltr\"] .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection__item-accessory{text-align:left}\n\n[dir=\"rtl\"] .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection__item-accessory{text-align:left}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection .tinymce__oxide--tox-collection__item-caret{margin-right:16px;transform:rotateY(180deg)}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-collection--horizontal .tinymce__oxide--tox-collection__item-caret{margin-right:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-color-picker-container{display:flex;flex-direction:row;height:225px;margin:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sv-palette{box-sizing:border-box;display:flex;height:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sv-palette-spectrum{height:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sv-palette,.tinymce__oxide--tox .tinymce__oxide--tox-sv-palette-spectrum{width:225px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sv-palette-thumb{background:0 0;border:1px solid #000;border-radius:50%;box-sizing:content-box;height:12px;position:absolute;width:12px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sv-palette-inner-thumb{border:1px solid #fff;border-radius:50%;height:10px;position:absolute;width:10px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-hue-slider{box-sizing:border-box;height:100%;width:25px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-hue-slider-spectrum{background:linear-gradient(to bottom,red,#ff0080,#f0f,#8000ff,#00f,#0080ff,#0ff,#00ff80,#0f0,#80ff00,#ff0,#ff8000,red);height:100%;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-hue-slider,.tinymce__oxide--tox .tinymce__oxide--tox-hue-slider-spectrum{width:20px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-hue-slider-thumb{background:#fff;border:1px solid #000;box-sizing:content-box;height:4px;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-rgb-form{display:flex;flex-direction:column;justify-content:space-between}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-rgb-form div{align-items:center;display:flex;justify-content:space-between;margin-bottom:5px;width:inherit}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-rgb-form input{width:6em}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-rgb-form input.tinymce__oxide--tox-invalid{border:1px solid red!important}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-rgb-form .tinymce__oxide--tox-rgba-preview{border:1px solid #000;flex-grow:2;margin-bottom:0}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-sv-palette{margin-right:15px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-hue-slider{margin-right:15px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-hue-slider-thumb{margin-left:-1px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-rgb-form label{margin-right:.5em}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-sv-palette{margin-left:15px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-hue-slider{margin-left:15px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-hue-slider-thumb{margin-right:-1px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-rgb-form label{margin-left:.5em}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar .tinymce__oxide--tox-swatches,.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__overflow .tinymce__oxide--tox-swatches,.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__primary .tinymce__oxide--tox-swatches{margin:2px 0 3px 4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__group .tinymce__oxide--tox-swatches-menu{border:0;margin:-4px 0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatches__row{display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatch{height:30px;transition:transform .15s,box-shadow .15s;width:30px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatch:focus,.tinymce__oxide--tox .tinymce__oxide--tox-swatch:hover{box-shadow:0 0 0 1px rgba(127,127,127,.3) inset;transform:scale(.8)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatch--remove{align-items:center;display:flex;justify-content:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatch--remove svg path{stroke:#e74c3c}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatches__picker-btn{align-items:center;background-color:transparent;border:0;cursor:pointer;display:flex;height:30px;justify-content:center;outline:0;padding:0;width:30px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatches__picker-btn svg{height:24px;width:24px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-swatches__picker-btn:hover{background:#dee0e2}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-swatches__picker-btn{margin-left:auto}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-swatches__picker-btn{margin-right:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment-thread{background:#fff;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment-thread>:not(:first-child){margin-top:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment{background:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 4px 8px 0 rgba(34,47,62,.1);padding:8px 8px 16px 8px;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__header{align-items:center;color:#222f3e;display:flex;justify-content:space-between}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__date{color:rgba(34,47,62,.7);font-size:12px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__body{color:#222f3e;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;margin-top:8px;position:relative;text-transform:none;text-transform:initial}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__body textarea{resize:none;white-space:normal;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__expander{padding-top:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__expander p{color:rgba(34,47,62,.7);font-size:14px;font-style:normal}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__body p{margin:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__buttonspacing{padding-top:16px;text-align:center}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__buttonspacing{text-align:center}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__buttonspacing{text-align:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment-thread__overlay::after{background:#fff;bottom:0;content:\"\";display:flex;left:0;opacity:.9;position:absolute;right:0;top:0;z-index:5}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__reply{display:flex;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;margin-top:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__reply>:first-child{margin-bottom:8px;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__edit{display:flex;flex-wrap:wrap;justify-content:flex-end;margin-top:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__gradient::after{background:linear-gradient(rgba(255,255,255,0),#fff);bottom:0;content:\"\";display:block;height:5em;margin-top:-40px;position:absolute;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__overlay{background:#fff;bottom:0;display:flex;flex-direction:column;flex-grow:1;left:0;opacity:.9;position:absolute;right:0;text-align:center;top:0;z-index:5}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__overlay{text-align:center}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__overlay{text-align:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__loading-text{align-items:center;color:#222f3e;display:flex;flex-direction:column;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__loading-text>div{padding-bottom:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__overlaytext{bottom:0;flex-direction:column;font-size:14px;left:0;padding:1em;position:absolute;right:0;top:0;z-index:10}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__overlaytext p{background-color:#fff;box-shadow:0 0 8px 8px #fff;color:#222f3e;text-align:center}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__overlaytext p{text-align:center}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-comment__overlaytext p{text-align:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__overlaytext div:nth-of-type(2){font-size:.8em}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__busy-spinner{align-items:center;background-color:#fff;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:20}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-comment__scroll{display:flex;flex-direction:column;flex-shrink:1;overflow:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-conversations{margin:8px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-comment__edit{margin-left:8px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-comment__buttonspacing>:last-child,.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-comment__edit>:last-child,.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-comment__reply>:last-child{margin-left:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-comment__edit{margin-right:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-comment__buttonspacing>:last-child,.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-comment__edit>:last-child,.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-comment__reply>:last-child{margin-right:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-user{align-items:center;display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-user__avatar svg{fill:rgba(34,47,62,.7)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-user__name{color:rgba(34,47,62,.7);font-size:12px;font-style:normal;font-weight:700;text-transform:uppercase}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-user__avatar svg{margin-right:8px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-user__avatar+.tinymce__oxide--tox-user__name{margin-left:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-user__avatar svg{margin-left:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-user__avatar+.tinymce__oxide--tox-user__name{margin-right:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-wrap{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1100}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-wrap__backdrop{background-color:rgba(255,255,255,.75);bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-wrap__backdrop--opaque{background-color:#fff}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog{background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:0 16px 16px -10px rgba(34,47,62,.15),0 0 40px 1px rgba(34,47,62,.15);display:flex;flex-direction:column;max-height:100%;max-width:480px;overflow:hidden;position:relative;width:95vw;z-index:2}\n\n@media only screen and (max-width:767px){body:not(.tinymce__oxide--tox-force-desktop) .tinymce__oxide--tox .tinymce__oxide--tox-dialog{align-self:flex-start;margin:8px auto;width:calc(100vw - 16px)}}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-inline{z-index:1100}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__header{align-items:center;background-color:#fff;border-bottom:none;color:#222f3e;display:flex;font-size:16px;justify-content:space-between;padding:8px 16px 0 16px;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__header .tinymce__oxide--tox-button{z-index:1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__draghandle{cursor:grab;height:100%;left:0;position:absolute;top:0;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__draghandle:active{cursor:grabbing}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__dismiss{margin-left:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__title{font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;font-size:20px;font-style:normal;font-weight:400;line-height:1.3;margin:0;text-transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body{color:#222f3e;display:flex;flex:1;-ms-flex-preferred-size:auto;font-size:16px;font-style:normal;font-weight:400;line-height:1.3;min-width:0;text-align:left;text-transform:none}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body{text-align:left}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body{text-align:left}\n\n@media only screen and (max-width:767px){body:not(.tinymce__oxide--tox-force-desktop) .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body{flex-direction:column}}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-nav{align-items:flex-start;display:flex;flex-direction:column;padding:16px 16px}\n\n@media only screen and (max-width:767px){body:not(.tinymce__oxide--tox-force-desktop) .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-nav{flex-direction:row;-webkit-overflow-scrolling:touch;overflow-x:auto;padding-bottom:0}}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-nav-item{border-bottom:2px solid transparent;color:rgba(34,47,62,.7);display:inline-block;font-size:14px;line-height:1.3;margin-bottom:8px;text-decoration:none;white-space:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-nav-item:focus{background-color:rgba(32,122,183,.1)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-nav-item--active{border-bottom:2px solid #207ab7;color:#207ab7}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content{box-sizing:border-box;display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto;max-height:650px;overflow:auto;-webkit-overflow-scrolling:touch;padding:16px 16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content>*{margin-bottom:0;margin-top:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content>:first-child{margin-top:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content>:last-child{margin-bottom:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content>:only-child{margin-bottom:0;margin-top:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content a{color:#207ab7;cursor:pointer;text-decoration:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content a:focus,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content a:hover{color:#185d8c;text-decoration:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content a:active{color:#185d8c;text-decoration:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content ul{display:block;list-style-type:disc;margin-bottom:16px;margin-inline-end:0;margin-inline-start:0;padding-inline-start:2.5rem}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content ul{margin-right:0;margin-left:0;padding-left:2.5rem}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content ul{margin-left:0;margin-right:0;padding-right:2.5rem}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h1{color:#222f3e;font-size:20px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h2{color:#222f3e;font-size:16px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group p{margin-bottom:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h1:first-child,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h2:first-child,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group p:first-child{margin-top:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h1:last-child,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h2:last-child,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group p:last-child{margin-bottom:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h1:only-child,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group h2:only-child,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-form__group p:only-child{margin-bottom:0;margin-top:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog--width-lg{height:650px;max-width:1200px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog--width-md{max-width:800px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog--width-md .tinymce__oxide--tox-dialog__body-content{overflow:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content--centered{text-align:center}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content--centered{text-align:center}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content--centered{text-align:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__footer{align-items:center;background-color:#fff;border-top:1px solid #ccc;display:flex;justify-content:space-between;padding:8px 16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__footer-end,.tinymce__oxide--tox .tinymce__oxide--tox-dialog__footer-start{display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__busy-spinner{align-items:center;background-color:rgba(255,255,255,.75);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:3}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__table{border-collapse:collapse;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__table thead th{font-weight:700;padding-bottom:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__table tbody tr{border-bottom:1px solid #ccc}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__table tbody tr:last-child{border-bottom:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__table td{padding-bottom:8px;padding-top:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__popups{position:absolute;width:100%;z-index:1100}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-iframe{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-iframe .tinymce__oxide--tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-iframe .tinymce__oxide--tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-dock-fadeout{opacity:0;visibility:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-dock-fadein{opacity:1;visibility:visible}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-dock-transition{transition:visibility 0s linear .3s,opacity .3s ease}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-dock-transition.tinymce__oxide--tox-dialog-dock-fadein{transition-delay:0s}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-platform-ie .tinymce__oxide--tox-dialog-wrap{position:-ms-device-fixed}\n\n@media only screen and (max-width:767px){body:not(.tinymce__oxide--tox-force-desktop) .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__body-nav{margin-right:0}}\n\n@media only screen and (max-width:767px){body:not(.tinymce__oxide--tox-force-desktop) .tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__body-nav-item:not(:first-child){margin-left:8px}}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__footer .tinymce__oxide--tox-dialog__footer-end>*,.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-dialog__footer .tinymce__oxide--tox-dialog__footer-start>*{margin-left:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body{text-align:right}\n\n[dir=\"ltr\"] .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body{text-align:right}\n\n[dir=\"rtl\"] .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body{text-align:right}\n\n@media only screen and (max-width:767px){body:not(.tinymce__oxide--tox-force-desktop) .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body-nav{margin-left:0}}\n\n@media only screen and (max-width:767px){body:not(.tinymce__oxide--tox-force-desktop) .tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__body-nav-item:not(:first-child){margin-right:8px}}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__footer .tinymce__oxide--tox-dialog__footer-end>*,.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-dialog__footer .tinymce__oxide--tox-dialog__footer-start>*{margin-right:8px}\n\nbody.tinymce__oxide--tox-dialog__disable-scroll{overflow:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dropzone-container{display:flex;flex:1;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dropzone{align-items:center;background:#fff;border:2px dashed #ccc;box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;min-height:100px;padding:10px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dropzone p{color:rgba(34,47,62,.7);margin:0 0 16px 0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-edit-area{display:flex;flex:1;-ms-flex-preferred-size:auto;overflow:hidden;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-edit-area__iframe{background-color:#fff;border:0;box-sizing:border-box;flex:1;-ms-flex-preferred-size:auto;height:100%;position:absolute;width:100%}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-inline-edit-area{border:1px dotted #ccc}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-editor-container{display:flex;flex:1 1 auto;flex-direction:column;overflow:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-editor-header{z-index:1}\n\n.tinymce__oxide--tox:not(.tinymce__oxide--tox-tinymce-inline) .tinymce__oxide--tox-editor-header{box-shadow:none;transition:box-shadow .5s}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-tinymce--toolbar-bottom .tinymce__oxide--tox-editor-header,.tinymce__oxide--tox.tinymce__oxide--tox-tinymce-inline .tinymce__oxide--tox-editor-header{margin-bottom:-1px}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-tinymce--toolbar-sticky-on .tinymce__oxide--tox-editor-header{background-color:transparent;box-shadow:0 4px 4px -3px rgba(0,0,0,.25)}\n\n.tinymce__oxide--tox-editor-dock-fadeout{opacity:0;visibility:hidden}\n\n.tinymce__oxide--tox-editor-dock-fadein{opacity:1;visibility:visible}\n\n.tinymce__oxide--tox-editor-dock-transition{transition:visibility 0s linear .25s,opacity .25s ease}\n\n.tinymce__oxide--tox-editor-dock-transition.tinymce__oxide--tox-editor-dock-fadein{transition-delay:0s}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap{flex:1;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap:not(.tinymce__oxide--tox-control-wrap--status-invalid) .tinymce__oxide--tox-control-wrap__status-icon-invalid,.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap:not(.tinymce__oxide--tox-control-wrap--status-unknown) .tinymce__oxide--tox-control-wrap__status-icon-unknown,.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap:not(.tinymce__oxide--tox-control-wrap--status-valid) .tinymce__oxide--tox-control-wrap__status-icon-valid{display:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap svg{display:block}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap__status-icon-wrap{position:absolute;top:50%;transform:translateY(-50%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap__status-icon-invalid svg{fill:#c00}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap__status-icon-unknown svg{fill:orange}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-control-wrap__status-icon-valid svg{fill:green}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-control-wrap--status-invalid .tinymce__oxide--tox-textfield,.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-control-wrap--status-unknown .tinymce__oxide--tox-textfield,.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-control-wrap--status-valid .tinymce__oxide--tox-textfield{padding-right:32px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-control-wrap__status-icon-wrap{right:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-control-wrap--status-invalid .tinymce__oxide--tox-textfield,.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-control-wrap--status-unknown .tinymce__oxide--tox-textfield,.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-control-wrap--status-valid .tinymce__oxide--tox-textfield{padding-left:32px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-control-wrap__status-icon-wrap{left:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-autocompleter{max-width:25em}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-autocompleter .tinymce__oxide--tox-menu{max-width:25em}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-autocompleter .tinymce__oxide--tox-autocompleter-highlight{font-weight:700}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-color-input{display:flex;position:relative;z-index:1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-color-input .tinymce__oxide--tox-textfield{z-index:-1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-color-input span{border-color:rgba(34,47,62,.2);border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;height:24px;position:absolute;top:6px;width:24px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-color-input span:focus:not([aria-disabled=true]),.tinymce__oxide--tox .tinymce__oxide--tox-color-input span:hover:not([aria-disabled=true]){border-color:#207ab7;cursor:pointer}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-color-input span::before{background-image:linear-gradient(45deg,rgba(0,0,0,.25) 25%,transparent 25%),linear-gradient(-45deg,rgba(0,0,0,.25) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(0,0,0,.25) 75%),linear-gradient(-45deg,transparent 75%,rgba(0,0,0,.25) 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px;border:1px solid #fff;border-radius:3px;box-sizing:border-box;content:'';height:24px;left:-1px;position:absolute;top:-1px;width:24px;z-index:-1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-color-input span[aria-disabled=true]{cursor:not-allowed}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-color-input .tinymce__oxide--tox-textfield{padding-left:36px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-color-input span{left:6px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-color-input .tinymce__oxide--tox-textfield{padding-right:36px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-color-input span{right:6px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-label,.tinymce__oxide--tox .tinymce__oxide--tox-toolbar-label{color:rgba(34,47,62,.7);display:block;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;padding:0 8px 0 0;text-transform:none;white-space:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar-label{padding:0 8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-label{padding:0 0 0 8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group{box-sizing:border-box;margin-bottom:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form-group--maximize{flex:1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group--error{color:#c00}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group--collection{display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__grid{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__grid--2col>.tinymce__oxide--tox-form__group{width:calc(50% - (8px / 2))}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__grid--3col>.tinymce__oxide--tox-form__group{width:calc(100% / 3 - (8px / 2))}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__grid--4col>.tinymce__oxide--tox-form__group{width:calc(25% - (8px / 2))}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__controls-h-stack{align-items:center;display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group--inline{align-items:center;display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group--stretched{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group--stretched .tinymce__oxide--tox-textarea{flex:1;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group--stretched .tinymce__oxide--tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-form__group--stretched .tinymce__oxide--tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-form__controls-h-stack>:not(:first-child){margin-left:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-form__controls-h-stack>:not(:first-child){margin-right:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-lock.tinymce__oxide--tox-locked .tinymce__oxide--tox-lock-icon__unlock,.tinymce__oxide--tox .tinymce__oxide--tox-lock:not(.tinymce__oxide--tox-locked) .tinymce__oxide--tox-lock-icon__lock{display:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listboxfield .tinymce__oxide--tox-listbox--select,.tinymce__oxide--tox .tinymce__oxide--tox-textarea,.tinymce__oxide--tox .tinymce__oxide--tox-textfield,.tinymce__oxide--tox .tinymce__oxide--tox-toolbar-textfield{appearance:none;background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#222f3e;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 4.75px;resize:none;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-textarea[disabled],.tinymce__oxide--tox .tinymce__oxide--tox-textfield[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listboxfield .tinymce__oxide--tox-listbox--select:focus,.tinymce__oxide--tox .tinymce__oxide--tox-textarea:focus,.tinymce__oxide--tox .tinymce__oxide--tox-textfield:focus{background-color:#fff;border-color:#207ab7;box-shadow:none;outline:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar-textfield{border-width:0;margin-bottom:3px;margin-top:2px;max-width:250px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-naked-btn{background-color:transparent;border:0;border-color:transparent;box-shadow:unset;color:#207ab7;cursor:pointer;display:block;margin:0;padding:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-naked-btn svg{display:block;fill:#222f3e}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-toolbar-textfield+*{margin-left:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-toolbar-textfield+*{margin-right:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listboxfield{cursor:pointer;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listboxfield .tinymce__oxide--tox-listbox--select[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listbox__select-label{cursor:default;flex:1;margin:0 4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listbox__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listbox__select-chevron svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-listboxfield .tinymce__oxide--tox-listbox--select{align-items:center;display:flex}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-listboxfield svg{right:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-listboxfield svg{left:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-selectfield{cursor:pointer;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-selectfield select{appearance:none;background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#222f3e;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 4.75px;resize:none;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-selectfield select[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-selectfield select::-ms-expand{display:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-selectfield select:focus{background-color:#fff;border-color:#207ab7;box-shadow:none;outline:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-selectfield svg{pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-selectfield select[size=\"0\"],.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-selectfield select[size=\"1\"]{padding-right:24px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-selectfield svg{right:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-selectfield select[size=\"0\"],.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-selectfield select[size=\"1\"]{padding-left:24px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-selectfield svg{left:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-textarea{appearance:textarea;white-space:pre-wrap}\n\n.tinymce__oxide--tox-fullscreen{border:0;height:100%;left:0;margin:0;overflow:hidden;overscroll-behavior:none;padding:0;position:fixed;top:0;touch-action:pinch-zoom;width:100%}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-tinymce.tinymce__oxide--tox-fullscreen .tinymce__oxide--tox-statusbar__resize-handle{display:none}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-tinymce.tinymce__oxide--tox-fullscreen{background-color:transparent;z-index:1200}\n\n.tinymce__oxide--tox-shadowhost.tinymce__oxide--tox-fullscreen{z-index:1200}\n\n.tinymce__oxide--tox-fullscreen .tinymce__oxide--tox.tinymce__oxide--tox-tinymce-aux,.tinymce__oxide--tox-fullscreen~.tinymce__oxide--tox.tinymce__oxide--tox-tinymce-aux{z-index:1201}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-help__more-link{list-style:none;margin-top:1em}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools{width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools__toolbar{align-items:center;display:flex;justify-content:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools__image{background-color:#666;height:380px;overflow:auto;position:relative;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools__image,.tinymce__oxide--tox .tinymce__oxide--tox-image-tools__image+.tinymce__oxide--tox-image-tools__toolbar{margin-top:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools__image-bg{background:url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-spacer{flex:1;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-croprect-block{background:#000;opacity:.5;position:absolute;zoom:1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-croprect-handle{border:2px solid #fff;height:20px;left:0;position:absolute;top:0;width:20px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-croprect-handle-move{border:0;cursor:move;position:absolute}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-croprect-handle-nw{border-width:2px 0 0 2px;cursor:nw-resize;left:100px;margin:-2px 0 0 -2px;top:100px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-croprect-handle-ne{border-width:2px 2px 0 0;cursor:ne-resize;left:200px;margin:-2px 0 0 -20px;top:100px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-croprect-handle-sw{border-width:0 0 2px 2px;cursor:sw-resize;left:100px;margin:-20px 2px 0 -2px;top:200px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-croprect-handle-se{border-width:0 2px 2px 0;cursor:se-resize;left:200px;margin:-20px 0 0 -20px;top:200px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-slider:not(:first-of-type){margin-left:8px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-button+.tinymce__oxide--tox-slider{margin-left:32px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-slider+.tinymce__oxide--tox-button{margin-left:32px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-slider:not(:first-of-type){margin-right:8px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-button+.tinymce__oxide--tox-slider{margin-right:32px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-image-tools__toolbar>.tinymce__oxide--tox-slider+.tinymce__oxide--tox-button{margin-right:32px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-insert-table-picker{display:flex;flex-wrap:wrap;width:170px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-insert-table-picker>div{border-color:#ccc;border-style:solid;border-width:0 1px 1px 0;box-sizing:border-box;height:17px;width:17px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-collection--list .tinymce__oxide--tox-collection__group .tinymce__oxide--tox-insert-table-picker{margin:-4px 0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-insert-table-picker .tinymce__oxide--tox-insert-table-picker__selected{background-color:rgba(32,122,183,.5);border-color:rgba(32,122,183,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-insert-table-picker__label{color:rgba(34,47,62,.7);display:block;font-size:14px;padding:4px;text-align:center;width:100%}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-insert-table-picker__label{text-align:center}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-insert-table-picker__label{text-align:center}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-insert-table-picker>div:nth-child(10n){border-right:0}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-insert-table-picker>div:nth-child(10n+1){border-right:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-menu{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 4px 8px 0 rgba(34,47,62,.1);display:inline-block;overflow:hidden;vertical-align:top;z-index:1150}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-menu.tinymce__oxide--tox-collection.tinymce__oxide--tox-collection--list{padding:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-menu.tinymce__oxide--tox-collection.tinymce__oxide--tox-collection--toolbar{padding:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-menu.tinymce__oxide--tox-collection.tinymce__oxide--tox-collection--grid{padding:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-menu__label blockquote,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label code,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label h1,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label h2,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label h3,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label h4,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label h5,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label h6,.tinymce__oxide--tox .tinymce__oxide--tox-menu__label p{margin:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-menubar{background:url(\"data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E\") left 0 top 0 #fff;background-color:#fff;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 4px 0 4px}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-tinymce:not(.tinymce__oxide--tox-tinymce-inline) .tinymce__oxide--tox-editor-header:not(:first-child) .tinymce__oxide--tox-menubar{border-top:1px solid #ccc}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#222f3e;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0 4px;text-transform:none;width:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn[disabled]{background-color:transparent;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn:focus:not(:disabled){background:#dee0e2;border:0;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn--active{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn:hover:not(:disabled):not(.tinymce__oxide--tox-mbtn--active){background:#dee0e2;border:0;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn__select-label{cursor:default;font-weight:400;margin:0 4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn[disabled] .tinymce__oxide--tox-mbtn__select-label{cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-mbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px;display:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification{border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;display:grid;font-size:14px;font-weight:400;grid-template-columns:minmax(40px,1fr) auto minmax(40px,1fr);margin-top:4px;opacity:0;padding:4px;transition:transform .1s ease-in,opacity 150ms ease-in}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification p{font-size:14px;font-weight:400}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification a{text-decoration:underline}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--in{opacity:1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--success{background-color:#e4eeda;border-color:#d7e6c8;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--success p{color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--success a{color:#547831}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--success svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--error{background-color:#f8dede;border-color:#f2bfbf;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--error p{color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--error a{color:#c00}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--error svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--warn,.tinymce__oxide--tox .tinymce__oxide--tox-notification--warning{background-color:#fffaea;border-color:#ffe89d;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--warn p,.tinymce__oxide--tox .tinymce__oxide--tox-notification--warning p{color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--warn a,.tinymce__oxide--tox .tinymce__oxide--tox-notification--warning a{color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--warn svg,.tinymce__oxide--tox .tinymce__oxide--tox-notification--warning svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--info{background-color:#d9edf7;border-color:#779ecb;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--info p{color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--info a{color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification--info svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification__body{align-self:center;color:#222f3e;font-size:14px;-ms-grid-column-span:1;grid-column-end:3;grid-column-start:2;-ms-grid-row-span:1;grid-row-end:2;grid-row-start:1;text-align:center;white-space:normal;word-break:break-all;word-break:break-word}\n\n[dir=\"ltr\"] .tinymce__oxide--tox .tinymce__oxide--tox-notification__body{text-align:center}\n\n[dir=\"rtl\"] .tinymce__oxide--tox .tinymce__oxide--tox-notification__body{text-align:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification__body>*{margin:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification__body>*+*{margin-top:1rem}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification__icon{align-self:center;-ms-grid-column-span:1;grid-column-end:2;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:2;grid-row-start:1;justify-self:end}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification__icon svg{display:block}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification__dismiss{align-self:start;-ms-grid-column-span:1;grid-column-end:4;grid-column-start:3;-ms-grid-row-span:1;grid-row-end:2;grid-row-start:1;justify-self:end}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-notification .tinymce__oxide--tox-progress-bar{-ms-grid-column-span:3;grid-column-end:4;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:3;grid-row-start:2;justify-self:center}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop{display:inline-block;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop--resizing{transition:width .1s ease}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop--resizing .tinymce__oxide--tox-toolbar{flex-wrap:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop__dialog{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);min-width:0;overflow:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop__dialog>:not(.tinymce__oxide--tox-toolbar){margin:4px 4px 4px 8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop__dialog .tinymce__oxide--tox-toolbar{background-color:transparent;margin-bottom:-1px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop::after,.tinymce__oxide--tox .tinymce__oxide--tox-pop::before{border-style:solid;content:'';display:block;height:0;position:absolute;width:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--bottom::after,.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--bottom::before{left:50%;top:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--bottom::after{border-color:#fff transparent transparent transparent;border-width:8px;margin-left:-8px;margin-top:-1px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--bottom::before{border-color:#ccc transparent transparent transparent;border-width:9px;margin-left:-9px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--top::after,.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--top::before{left:50%;top:0;transform:translateY(-100%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--top::after{border-color:transparent transparent #fff transparent;border-width:8px;margin-left:-8px;margin-top:1px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--top::before{border-color:transparent transparent #ccc transparent;border-width:9px;margin-left:-9px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--left::after,.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--left::before{left:0;top:calc(50% - 1px);transform:translateY(-50%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--left::after{border-color:transparent #fff transparent transparent;border-width:8px;margin-left:-15px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--left::before{border-color:transparent #ccc transparent transparent;border-width:10px;margin-left:-19px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--right::after,.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--right::before{left:100%;top:calc(50% + 1px);transform:translateY(-50%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--right::after{border-color:transparent transparent transparent #fff;border-width:8px;margin-left:-1px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--right::before{border-color:transparent transparent transparent #ccc;border-width:10px;margin-left:-1px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--align-left::after,.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--align-left::before{left:20px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--align-right::after,.tinymce__oxide--tox .tinymce__oxide--tox-pop.tinymce__oxide--tox-pop--align-right::before{left:calc(100% - 20px)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar-wrap{display:flex;flex-direction:row;flex-grow:1;-ms-flex-preferred-size:0;min-height:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar{background-color:#fff;display:flex;flex-direction:row;justify-content:flex-end}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar__slider{display:flex;overflow:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar__pane-container{display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar__pane{display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar--sliding-closed{opacity:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar--sliding-open{opacity:1}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-sidebar--sliding-growing,.tinymce__oxide--tox .tinymce__oxide--tox-sidebar--sliding-shrinking{transition:width .5s ease,opacity .5s ease}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-selector{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;display:inline-block;height:10px;position:absolute;width:10px}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-platform-touch .tinymce__oxide--tox-selector{height:12px;width:12px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-slider{align-items:center;display:flex;flex:1;-ms-flex-preferred-size:auto;height:24px;justify-content:center;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-slider__rail{background-color:transparent;border:1px solid #ccc;border-radius:3px;height:10px;min-width:120px;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-slider__handle{background-color:#207ab7;border:2px solid #185d8c;border-radius:3px;box-shadow:none;height:24px;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:14px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-source-code{overflow:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-spinner{display:flex}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-spinner>div{animation:tinymce__oxide--tam-bouncing-dots 1.5s ease-in-out 0s infinite both;background-color:rgba(34,47,62,.7);border-radius:100%;height:8px;width:8px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-spinner>div:nth-child(1){animation-delay:-.32s}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-spinner>div:nth-child(2){animation-delay:-.16s}\n\n@keyframes tinymce__oxide--tam-bouncing-dots{0%,100%,80%{transform:scale(0)}40%{transform:scale(1)}}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-spinner>div:not(:first-child){margin-left:4px}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-spinner>div:not(:first-child){margin-right:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar{align-items:center;background-color:#fff;border-top:1px solid #ccc;color:rgba(34,47,62,.7);display:flex;flex:0 0 auto;font-size:12px;font-weight:400;height:18px;overflow:hidden;padding:0 8px;position:relative;text-transform:uppercase}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__text-container{display:flex;flex:1 1 auto;justify-content:flex-end;overflow:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__path{display:flex;flex:1 1 auto;margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__path>*{display:inline;white-space:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__wordcount{flex:0 0 auto;margin-left:1ch}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar a,.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__path-item,.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__wordcount{color:rgba(34,47,62,.7);text-decoration:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar a:focus:not(:disabled):not([aria-disabled=true]),.tinymce__oxide--tox .tinymce__oxide--tox-statusbar a:hover:not(:disabled):not([aria-disabled=true]),.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__path-item:focus:not(:disabled):not([aria-disabled=true]),.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__path-item:hover:not(:disabled):not([aria-disabled=true]),.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__wordcount:focus:not(:disabled):not([aria-disabled=true]),.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__wordcount:hover:not(:disabled):not([aria-disabled=true]){cursor:pointer;text-decoration:underline}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__resize-handle{align-items:flex-end;align-self:stretch;cursor:nwse-resize;display:flex;flex:0 0 auto;justify-content:flex-end;margin-left:auto;margin-right:-8px;padding-left:1ch}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__resize-handle svg{display:block;fill:rgba(34,47,62,.7)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-statusbar__resize-handle:focus svg{background-color:#dee0e2;border-radius:1px;box-shadow:0 0 0 2px #dee0e2}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-statusbar__path>*{margin-right:4px}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-statusbar__branding{margin-left:1ch}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-statusbar{flex-direction:row-reverse}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-statusbar__path>*{margin-left:4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-throbber{z-index:1299}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-throbber__busy-spinner{align-items:center;background-color:rgba(255,255,255,.6);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#222f3e;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0;text-transform:none;width:34px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn svg{display:block;fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn.tinymce__oxide--tox-tbtn-more{padding-left:5px;padding-right:5px;width:inherit}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:focus{background:#dee0e2;border:0;box-shadow:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:hover{background:#dee0e2;border:0;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:hover svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:active{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:active svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--disabled,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--disabled:hover,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:disabled,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:disabled:hover{background:0 0;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--disabled svg,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--disabled:hover svg,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:disabled svg,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:disabled:hover svg{fill:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--enabled,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--enabled:hover{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--enabled:hover>*,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--enabled>*{transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--enabled svg,.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--enabled:hover svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:focus:not(.tinymce__oxide--tox-tbtn--disabled){color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:focus:not(.tinymce__oxide--tox-tbtn--disabled) svg{fill:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn:active>*{transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--md{height:51px;width:51px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--lg{flex-direction:column;height:68px;width:68px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--return{align-self:stretch;height:unset;width:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--labeled{padding:0 4px;width:unset}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn__vlabel{display:block;font-size:10px;font-weight:400;letter-spacing:-.025em;margin-bottom:4px;white-space:nowrap}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--select{margin:2px 0 3px 0;padding:0 4px;width:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn__select-label{cursor:default;font-weight:400;margin:0 4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn__select-chevron svg{fill:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tbtn--bespoke .tinymce__oxide--tox-tbtn__select-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:7em}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button{border:0;border-radius:3px;box-sizing:border-box;display:flex;margin:2px 0 3px 0;overflow:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button:hover{box-shadow:0 0 0 1px #dee0e2 inset}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button:focus{background:#dee0e2;box-shadow:none;color:#222f3e}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button>*{border-radius:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button__chevron{width:16px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button__chevron svg{fill:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button .tinymce__oxide--tox-tbtn{margin:0}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-platform-touch .tinymce__oxide--tox-split-button .tinymce__oxide--tox-tbtn:first-child{width:30px}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-platform-touch .tinymce__oxide--tox-split-button__chevron{width:20px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-split-button.tinymce__oxide--tox-tbtn--disabled .tinymce__oxide--tox-tbtn:focus,.tinymce__oxide--tox .tinymce__oxide--tox-split-button.tinymce__oxide--tox-tbtn--disabled .tinymce__oxide--tox-tbtn:hover,.tinymce__oxide--tox .tinymce__oxide--tox-split-button.tinymce__oxide--tox-tbtn--disabled:focus,.tinymce__oxide--tox .tinymce__oxide--tox-split-button.tinymce__oxide--tox-tbtn--disabled:hover{background:0 0;box-shadow:none;color:rgba(34,47,62,.5)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar-overlord{background-color:#fff}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar,.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__overflow,.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__primary{background:url(\"data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E\") left 0 top 0 #fff;background-color:#fff;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__overflow.tinymce__oxide--tox-toolbar__overflow--closed{height:0;opacity:0;padding-bottom:0;padding-top:0;visibility:hidden}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__overflow--growing{transition:height .3s ease,opacity .2s linear .1s}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__overflow--shrinking{transition:opacity .3s ease,height .2s linear .1s,visibility 0s linear .3s}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-menubar+.tinymce__oxide--tox-toolbar,.tinymce__oxide--tox .tinymce__oxide--tox-menubar+.tinymce__oxide--tox-toolbar-overlord .tinymce__oxide--tox-toolbar__primary{border-top:1px solid #ccc;margin-top:-1px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar--scrolling{flex-wrap:nowrap;overflow-x:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-pop .tinymce__oxide--tox-toolbar{border-width:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar--no-divider{background-image:none}\n\n.tinymce__oxide--tox-tinymce:not(.tinymce__oxide--tox-tinymce-inline) .tinymce__oxide--tox-editor-header:not(:first-child) .tinymce__oxide--tox-toolbar-overlord:first-child .tinymce__oxide--tox-toolbar__primary,.tinymce__oxide--tox-tinymce:not(.tinymce__oxide--tox-tinymce-inline) .tinymce__oxide--tox-editor-header:not(:first-child) .tinymce__oxide--tox-toolbar:first-child{border-top:1px solid #ccc}\n\n.tinymce__oxide--tox.tinymce__oxide--tox-tinymce-aux .tinymce__oxide--tox-toolbar__overflow{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15)}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-tbtn__icon-rtl svg{transform:rotateY(180deg)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__group{align-items:center;display:flex;flex-wrap:wrap;margin:0 0;padding:0 4px 0 4px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar__group--pull-right{margin-left:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-toolbar--scrolling .tinymce__oxide--tox-toolbar__group{flex-shrink:0;flex-wrap:nowrap}\n\n.tinymce__oxide--tox:not([dir=rtl]) .tinymce__oxide--tox-toolbar__group:not(:last-of-type){border-right:1px solid #ccc}\n\n.tinymce__oxide--tox[dir=rtl] .tinymce__oxide--tox-toolbar__group:not(:last-of-type){border-left:1px solid #ccc}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tooltip{display:inline-block;padding:8px;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tooltip__body{background-color:#222f3e;border-radius:3px;box-shadow:0 2px 4px rgba(34,47,62,.3);color:rgba(255,255,255,.75);font-size:14px;font-style:normal;font-weight:400;padding:4px 8px;text-transform:none}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tooltip__arrow{position:absolute}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tooltip--down .tinymce__oxide--tox-tooltip__arrow{border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #222f3e;bottom:0;left:50%;position:absolute;transform:translateX(-50%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tooltip--up .tinymce__oxide--tox-tooltip__arrow{border-bottom:8px solid #222f3e;border-left:8px solid transparent;border-right:8px solid transparent;left:50%;position:absolute;top:0;transform:translateX(-50%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tooltip--right .tinymce__oxide--tox-tooltip__arrow{border-bottom:8px solid transparent;border-left:8px solid #222f3e;border-top:8px solid transparent;position:absolute;right:0;top:50%;transform:translateY(-50%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tooltip--left .tinymce__oxide--tox-tooltip__arrow{border-bottom:8px solid transparent;border-right:8px solid #222f3e;border-top:8px solid transparent;left:0;position:absolute;top:50%;transform:translateY(-50%)}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-well{border:1px solid #ccc;border-radius:3px;padding:8px;width:100%}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-well>:first-child{margin-top:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-well>:last-child{margin-bottom:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-well>:only-child{margin:0}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-custom-editor{border:1px solid #ccc;border-radius:3px;display:flex;flex:1;position:relative}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog-loading::before{background-color:rgba(0,0,0,.5);content:\"\";height:100%;position:absolute;width:100%;z-index:1000}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-tab{cursor:pointer}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__content-js{display:flex;flex:1;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-dialog__body-content .tinymce__oxide--tox-collection{display:flex;flex:1;-ms-flex-preferred-size:auto}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools-edit-panel{height:60px}\n\n.tinymce__oxide--tox .tinymce__oxide--tox-image-tools__sidebar{height:60px}\n`;\n },\n 'tox': 'tinymce__oxide--tox',\n 'tox-tinymce': 'tinymce__oxide--tox-tinymce',\n 'tox-tinymce-inline': 'tinymce__oxide--tox-tinymce-inline',\n 'tox-editor-header': 'tinymce__oxide--tox-editor-header',\n 'tox-tinymce-aux': 'tinymce__oxide--tox-tinymce-aux',\n 'accessibility-issue__header': 'tinymce__oxide--accessibility-issue__header',\n 'accessibility-issue__description': 'tinymce__oxide--accessibility-issue__description',\n 'accessibility-issue__repair': 'tinymce__oxide--accessibility-issue__repair',\n 'tox-dialog__body-content': 'tinymce__oxide--tox-dialog__body-content',\n 'accessibility-issue--info': 'tinymce__oxide--accessibility-issue--info',\n 'tox-form__group': 'tinymce__oxide--tox-form__group',\n 'tox-icon': 'tinymce__oxide--tox-icon',\n 'accessibility-issue--warn': 'tinymce__oxide--accessibility-issue--warn',\n 'accessibility-issue--error': 'tinymce__oxide--accessibility-issue--error',\n 'accessibility-issue--success': 'tinymce__oxide--accessibility-issue--success',\n 'tox-button': 'tinymce__oxide--tox-button',\n 'tox-anchorbar': 'tinymce__oxide--tox-anchorbar',\n 'tox-bar': 'tinymce__oxide--tox-bar',\n 'tox-button--secondary': 'tinymce__oxide--tox-button--secondary',\n 'tox-button--icon': 'tinymce__oxide--tox-button--icon',\n 'tox-button-link': 'tinymce__oxide--tox-button-link',\n 'tox-button-link--sm': 'tinymce__oxide--tox-button-link--sm',\n 'tox-button--naked': 'tinymce__oxide--tox-button--naked',\n 'tox-checkbox': 'tinymce__oxide--tox-checkbox',\n 'tox-checkbox__input': 'tinymce__oxide--tox-checkbox__input',\n 'tox-checkbox__icons': 'tinymce__oxide--tox-checkbox__icons',\n 'tox-checkbox-icon__unchecked': 'tinymce__oxide--tox-checkbox-icon__unchecked',\n 'tox-checkbox-icon__indeterminate': 'tinymce__oxide--tox-checkbox-icon__indeterminate',\n 'tox-checkbox-icon__checked': 'tinymce__oxide--tox-checkbox-icon__checked',\n 'tox-checkbox--disabled': 'tinymce__oxide--tox-checkbox--disabled',\n 'tox-checkbox__label': 'tinymce__oxide--tox-checkbox__label',\n 'tox-collection--toolbar': 'tinymce__oxide--tox-collection--toolbar',\n 'tox-collection__group': 'tinymce__oxide--tox-collection__group',\n 'tox-collection--grid': 'tinymce__oxide--tox-collection--grid',\n 'tox-collection--list': 'tinymce__oxide--tox-collection--list',\n 'tox-collection__group-heading': 'tinymce__oxide--tox-collection__group-heading',\n 'tox-collection__item': 'tinymce__oxide--tox-collection__item',\n 'tox-collection__item--enabled': 'tinymce__oxide--tox-collection__item--enabled',\n 'tox-collection__item--active': 'tinymce__oxide--tox-collection__item--active',\n 'tox-collection__item--state-disabled': 'tinymce__oxide--tox-collection__item--state-disabled',\n 'tox-collection__item-checkmark': 'tinymce__oxide--tox-collection__item-checkmark',\n 'tox-collection__item-icon': 'tinymce__oxide--tox-collection__item-icon',\n 'tox-collection--toolbar-lg': 'tinymce__oxide--tox-collection--toolbar-lg',\n 'tox-collection__item-label': 'tinymce__oxide--tox-collection__item-label',\n 'tox-collection__item-accessory': 'tinymce__oxide--tox-collection__item-accessory',\n 'tox-collection__item-caret': 'tinymce__oxide--tox-collection__item-caret',\n 'tox-collection--horizontal': 'tinymce__oxide--tox-collection--horizontal',\n 'tox-collection__item-container': 'tinymce__oxide--tox-collection__item-container',\n 'tox-collection__item-container--row': 'tinymce__oxide--tox-collection__item-container--row',\n 'tox-collection__item-container--align-left': 'tinymce__oxide--tox-collection__item-container--align-left',\n 'tox-collection__item-container--align-right': 'tinymce__oxide--tox-collection__item-container--align-right',\n 'tox-collection__item-container--valign-top': 'tinymce__oxide--tox-collection__item-container--valign-top',\n 'tox-collection__item-container--valign-middle': 'tinymce__oxide--tox-collection__item-container--valign-middle',\n 'tox-collection__item-container--valign-bottom': 'tinymce__oxide--tox-collection__item-container--valign-bottom',\n 'tox-collection__item-container--column': 'tinymce__oxide--tox-collection__item-container--column',\n 'tox-collection': 'tinymce__oxide--tox-collection',\n 'tox-collection__item-icon-rtl': 'tinymce__oxide--tox-collection__item-icon-rtl',\n 'tox-color-picker-container': 'tinymce__oxide--tox-color-picker-container',\n 'tox-sv-palette': 'tinymce__oxide--tox-sv-palette',\n 'tox-sv-palette-spectrum': 'tinymce__oxide--tox-sv-palette-spectrum',\n 'tox-sv-palette-thumb': 'tinymce__oxide--tox-sv-palette-thumb',\n 'tox-sv-palette-inner-thumb': 'tinymce__oxide--tox-sv-palette-inner-thumb',\n 'tox-hue-slider': 'tinymce__oxide--tox-hue-slider',\n 'tox-hue-slider-spectrum': 'tinymce__oxide--tox-hue-slider-spectrum',\n 'tox-hue-slider-thumb': 'tinymce__oxide--tox-hue-slider-thumb',\n 'tox-rgb-form': 'tinymce__oxide--tox-rgb-form',\n 'tox-invalid': 'tinymce__oxide--tox-invalid',\n 'tox-rgba-preview': 'tinymce__oxide--tox-rgba-preview',\n 'tox-toolbar': 'tinymce__oxide--tox-toolbar',\n 'tox-swatches': 'tinymce__oxide--tox-swatches',\n 'tox-toolbar__overflow': 'tinymce__oxide--tox-toolbar__overflow',\n 'tox-toolbar__primary': 'tinymce__oxide--tox-toolbar__primary',\n 'tox-swatches-menu': 'tinymce__oxide--tox-swatches-menu',\n 'tox-swatches__row': 'tinymce__oxide--tox-swatches__row',\n 'tox-swatch': 'tinymce__oxide--tox-swatch',\n 'tox-swatch--remove': 'tinymce__oxide--tox-swatch--remove',\n 'tox-swatches__picker-btn': 'tinymce__oxide--tox-swatches__picker-btn',\n 'tox-comment-thread': 'tinymce__oxide--tox-comment-thread',\n 'tox-comment': 'tinymce__oxide--tox-comment',\n 'tox-comment__header': 'tinymce__oxide--tox-comment__header',\n 'tox-comment__date': 'tinymce__oxide--tox-comment__date',\n 'tox-comment__body': 'tinymce__oxide--tox-comment__body',\n 'tox-comment__expander': 'tinymce__oxide--tox-comment__expander',\n 'tox-comment__buttonspacing': 'tinymce__oxide--tox-comment__buttonspacing',\n 'tox-comment-thread__overlay': 'tinymce__oxide--tox-comment-thread__overlay',\n 'tox-comment__reply': 'tinymce__oxide--tox-comment__reply',\n 'tox-comment__edit': 'tinymce__oxide--tox-comment__edit',\n 'tox-comment__gradient': 'tinymce__oxide--tox-comment__gradient',\n 'tox-comment__overlay': 'tinymce__oxide--tox-comment__overlay',\n 'tox-comment__loading-text': 'tinymce__oxide--tox-comment__loading-text',\n 'tox-comment__overlaytext': 'tinymce__oxide--tox-comment__overlaytext',\n 'tox-comment__busy-spinner': 'tinymce__oxide--tox-comment__busy-spinner',\n 'tox-comment__scroll': 'tinymce__oxide--tox-comment__scroll',\n 'tox-conversations': 'tinymce__oxide--tox-conversations',\n 'tox-user': 'tinymce__oxide--tox-user',\n 'tox-user__avatar': 'tinymce__oxide--tox-user__avatar',\n 'tox-user__name': 'tinymce__oxide--tox-user__name',\n 'tox-dialog-wrap': 'tinymce__oxide--tox-dialog-wrap',\n 'tox-dialog-wrap__backdrop': 'tinymce__oxide--tox-dialog-wrap__backdrop',\n 'tox-dialog-wrap__backdrop--opaque': 'tinymce__oxide--tox-dialog-wrap__backdrop--opaque',\n 'tox-dialog': 'tinymce__oxide--tox-dialog',\n 'tox-force-desktop': 'tinymce__oxide--tox-force-desktop',\n 'tox-dialog-inline': 'tinymce__oxide--tox-dialog-inline',\n 'tox-dialog__header': 'tinymce__oxide--tox-dialog__header',\n 'tox-dialog__draghandle': 'tinymce__oxide--tox-dialog__draghandle',\n 'tox-dialog__dismiss': 'tinymce__oxide--tox-dialog__dismiss',\n 'tox-dialog__title': 'tinymce__oxide--tox-dialog__title',\n 'tox-dialog__body': 'tinymce__oxide--tox-dialog__body',\n 'tox-dialog__body-nav': 'tinymce__oxide--tox-dialog__body-nav',\n 'tox-dialog__body-nav-item': 'tinymce__oxide--tox-dialog__body-nav-item',\n 'tox-dialog__body-nav-item--active': 'tinymce__oxide--tox-dialog__body-nav-item--active',\n 'tox-dialog--width-lg': 'tinymce__oxide--tox-dialog--width-lg',\n 'tox-dialog--width-md': 'tinymce__oxide--tox-dialog--width-md',\n 'tox-dialog__body-content--centered': 'tinymce__oxide--tox-dialog__body-content--centered',\n 'tox-dialog__footer': 'tinymce__oxide--tox-dialog__footer',\n 'tox-dialog__footer-end': 'tinymce__oxide--tox-dialog__footer-end',\n 'tox-dialog__footer-start': 'tinymce__oxide--tox-dialog__footer-start',\n 'tox-dialog__busy-spinner': 'tinymce__oxide--tox-dialog__busy-spinner',\n 'tox-dialog__table': 'tinymce__oxide--tox-dialog__table',\n 'tox-dialog__popups': 'tinymce__oxide--tox-dialog__popups',\n 'tox-dialog__body-iframe': 'tinymce__oxide--tox-dialog__body-iframe',\n 'tox-navobj': 'tinymce__oxide--tox-navobj',\n 'tox-dialog-dock-fadeout': 'tinymce__oxide--tox-dialog-dock-fadeout',\n 'tox-dialog-dock-fadein': 'tinymce__oxide--tox-dialog-dock-fadein',\n 'tox-dialog-dock-transition': 'tinymce__oxide--tox-dialog-dock-transition',\n 'tox-platform-ie': 'tinymce__oxide--tox-platform-ie',\n 'tox-dialog__disable-scroll': 'tinymce__oxide--tox-dialog__disable-scroll',\n 'tox-dropzone-container': 'tinymce__oxide--tox-dropzone-container',\n 'tox-dropzone': 'tinymce__oxide--tox-dropzone',\n 'tox-edit-area': 'tinymce__oxide--tox-edit-area',\n 'tox-edit-area__iframe': 'tinymce__oxide--tox-edit-area__iframe',\n 'tox-inline-edit-area': 'tinymce__oxide--tox-inline-edit-area',\n 'tox-editor-container': 'tinymce__oxide--tox-editor-container',\n 'tox-tinymce--toolbar-bottom': 'tinymce__oxide--tox-tinymce--toolbar-bottom',\n 'tox-tinymce--toolbar-sticky-on': 'tinymce__oxide--tox-tinymce--toolbar-sticky-on',\n 'tox-editor-dock-fadeout': 'tinymce__oxide--tox-editor-dock-fadeout',\n 'tox-editor-dock-fadein': 'tinymce__oxide--tox-editor-dock-fadein',\n 'tox-editor-dock-transition': 'tinymce__oxide--tox-editor-dock-transition',\n 'tox-control-wrap': 'tinymce__oxide--tox-control-wrap',\n 'tox-control-wrap--status-invalid': 'tinymce__oxide--tox-control-wrap--status-invalid',\n 'tox-control-wrap__status-icon-invalid': 'tinymce__oxide--tox-control-wrap__status-icon-invalid',\n 'tox-control-wrap--status-unknown': 'tinymce__oxide--tox-control-wrap--status-unknown',\n 'tox-control-wrap__status-icon-unknown': 'tinymce__oxide--tox-control-wrap__status-icon-unknown',\n 'tox-control-wrap--status-valid': 'tinymce__oxide--tox-control-wrap--status-valid',\n 'tox-control-wrap__status-icon-valid': 'tinymce__oxide--tox-control-wrap__status-icon-valid',\n 'tox-control-wrap__status-icon-wrap': 'tinymce__oxide--tox-control-wrap__status-icon-wrap',\n 'tox-textfield': 'tinymce__oxide--tox-textfield',\n 'tox-autocompleter': 'tinymce__oxide--tox-autocompleter',\n 'tox-menu': 'tinymce__oxide--tox-menu',\n 'tox-autocompleter-highlight': 'tinymce__oxide--tox-autocompleter-highlight',\n 'tox-color-input': 'tinymce__oxide--tox-color-input',\n 'tox-label': 'tinymce__oxide--tox-label',\n 'tox-toolbar-label': 'tinymce__oxide--tox-toolbar-label',\n 'tox-form': 'tinymce__oxide--tox-form',\n 'tox-form-group--maximize': 'tinymce__oxide--tox-form-group--maximize',\n 'tox-form__group--error': 'tinymce__oxide--tox-form__group--error',\n 'tox-form__group--collection': 'tinymce__oxide--tox-form__group--collection',\n 'tox-form__grid': 'tinymce__oxide--tox-form__grid',\n 'tox-form__grid--2col': 'tinymce__oxide--tox-form__grid--2col',\n 'tox-form__grid--3col': 'tinymce__oxide--tox-form__grid--3col',\n 'tox-form__grid--4col': 'tinymce__oxide--tox-form__grid--4col',\n 'tox-form__controls-h-stack': 'tinymce__oxide--tox-form__controls-h-stack',\n 'tox-form__group--inline': 'tinymce__oxide--tox-form__group--inline',\n 'tox-form__group--stretched': 'tinymce__oxide--tox-form__group--stretched',\n 'tox-textarea': 'tinymce__oxide--tox-textarea',\n 'tox-lock': 'tinymce__oxide--tox-lock',\n 'tox-locked': 'tinymce__oxide--tox-locked',\n 'tox-lock-icon__unlock': 'tinymce__oxide--tox-lock-icon__unlock',\n 'tox-lock-icon__lock': 'tinymce__oxide--tox-lock-icon__lock',\n 'tox-listboxfield': 'tinymce__oxide--tox-listboxfield',\n 'tox-listbox--select': 'tinymce__oxide--tox-listbox--select',\n 'tox-toolbar-textfield': 'tinymce__oxide--tox-toolbar-textfield',\n 'tox-naked-btn': 'tinymce__oxide--tox-naked-btn',\n 'tox-listbox__select-label': 'tinymce__oxide--tox-listbox__select-label',\n 'tox-listbox__select-chevron': 'tinymce__oxide--tox-listbox__select-chevron',\n 'tox-selectfield': 'tinymce__oxide--tox-selectfield',\n 'tox-fullscreen': 'tinymce__oxide--tox-fullscreen',\n 'tox-statusbar__resize-handle': 'tinymce__oxide--tox-statusbar__resize-handle',\n 'tox-shadowhost': 'tinymce__oxide--tox-shadowhost',\n 'tox-help__more-link': 'tinymce__oxide--tox-help__more-link',\n 'tox-image-tools': 'tinymce__oxide--tox-image-tools',\n 'tox-image-tools__toolbar': 'tinymce__oxide--tox-image-tools__toolbar',\n 'tox-image-tools__image': 'tinymce__oxide--tox-image-tools__image',\n 'tox-image-tools__image-bg': 'tinymce__oxide--tox-image-tools__image-bg',\n 'tox-spacer': 'tinymce__oxide--tox-spacer',\n 'tox-croprect-block': 'tinymce__oxide--tox-croprect-block',\n 'tox-croprect-handle': 'tinymce__oxide--tox-croprect-handle',\n 'tox-croprect-handle-move': 'tinymce__oxide--tox-croprect-handle-move',\n 'tox-croprect-handle-nw': 'tinymce__oxide--tox-croprect-handle-nw',\n 'tox-croprect-handle-ne': 'tinymce__oxide--tox-croprect-handle-ne',\n 'tox-croprect-handle-sw': 'tinymce__oxide--tox-croprect-handle-sw',\n 'tox-croprect-handle-se': 'tinymce__oxide--tox-croprect-handle-se',\n 'tox-slider': 'tinymce__oxide--tox-slider',\n 'tox-insert-table-picker': 'tinymce__oxide--tox-insert-table-picker',\n 'tox-insert-table-picker__selected': 'tinymce__oxide--tox-insert-table-picker__selected',\n 'tox-insert-table-picker__label': 'tinymce__oxide--tox-insert-table-picker__label',\n 'tox-menu__label': 'tinymce__oxide--tox-menu__label',\n 'tox-menubar': 'tinymce__oxide--tox-menubar',\n 'tox-mbtn': 'tinymce__oxide--tox-mbtn',\n 'tox-mbtn--active': 'tinymce__oxide--tox-mbtn--active',\n 'tox-mbtn__select-label': 'tinymce__oxide--tox-mbtn__select-label',\n 'tox-mbtn__select-chevron': 'tinymce__oxide--tox-mbtn__select-chevron',\n 'tox-notification': 'tinymce__oxide--tox-notification',\n 'tox-notification--in': 'tinymce__oxide--tox-notification--in',\n 'tox-notification--success': 'tinymce__oxide--tox-notification--success',\n 'tox-notification--error': 'tinymce__oxide--tox-notification--error',\n 'tox-notification--warn': 'tinymce__oxide--tox-notification--warn',\n 'tox-notification--warning': 'tinymce__oxide--tox-notification--warning',\n 'tox-notification--info': 'tinymce__oxide--tox-notification--info',\n 'tox-notification__body': 'tinymce__oxide--tox-notification__body',\n 'tox-notification__icon': 'tinymce__oxide--tox-notification__icon',\n 'tox-notification__dismiss': 'tinymce__oxide--tox-notification__dismiss',\n 'tox-progress-bar': 'tinymce__oxide--tox-progress-bar',\n 'tox-pop': 'tinymce__oxide--tox-pop',\n 'tox-pop--resizing': 'tinymce__oxide--tox-pop--resizing',\n 'tox-pop__dialog': 'tinymce__oxide--tox-pop__dialog',\n 'tox-pop--bottom': 'tinymce__oxide--tox-pop--bottom',\n 'tox-pop--top': 'tinymce__oxide--tox-pop--top',\n 'tox-pop--left': 'tinymce__oxide--tox-pop--left',\n 'tox-pop--right': 'tinymce__oxide--tox-pop--right',\n 'tox-pop--align-left': 'tinymce__oxide--tox-pop--align-left',\n 'tox-pop--align-right': 'tinymce__oxide--tox-pop--align-right',\n 'tox-sidebar-wrap': 'tinymce__oxide--tox-sidebar-wrap',\n 'tox-sidebar': 'tinymce__oxide--tox-sidebar',\n 'tox-sidebar__slider': 'tinymce__oxide--tox-sidebar__slider',\n 'tox-sidebar__pane-container': 'tinymce__oxide--tox-sidebar__pane-container',\n 'tox-sidebar__pane': 'tinymce__oxide--tox-sidebar__pane',\n 'tox-sidebar--sliding-closed': 'tinymce__oxide--tox-sidebar--sliding-closed',\n 'tox-sidebar--sliding-open': 'tinymce__oxide--tox-sidebar--sliding-open',\n 'tox-sidebar--sliding-growing': 'tinymce__oxide--tox-sidebar--sliding-growing',\n 'tox-sidebar--sliding-shrinking': 'tinymce__oxide--tox-sidebar--sliding-shrinking',\n 'tox-selector': 'tinymce__oxide--tox-selector',\n 'tox-platform-touch': 'tinymce__oxide--tox-platform-touch',\n 'tox-slider__rail': 'tinymce__oxide--tox-slider__rail',\n 'tox-slider__handle': 'tinymce__oxide--tox-slider__handle',\n 'tox-source-code': 'tinymce__oxide--tox-source-code',\n 'tox-spinner': 'tinymce__oxide--tox-spinner',\n 'tam-bouncing-dots': 'tinymce__oxide--tam-bouncing-dots',\n 'tox-statusbar': 'tinymce__oxide--tox-statusbar',\n 'tox-statusbar__text-container': 'tinymce__oxide--tox-statusbar__text-container',\n 'tox-statusbar__path': 'tinymce__oxide--tox-statusbar__path',\n 'tox-statusbar__wordcount': 'tinymce__oxide--tox-statusbar__wordcount',\n 'tox-statusbar__path-item': 'tinymce__oxide--tox-statusbar__path-item',\n 'tox-statusbar__branding': 'tinymce__oxide--tox-statusbar__branding',\n 'tox-throbber': 'tinymce__oxide--tox-throbber',\n 'tox-throbber__busy-spinner': 'tinymce__oxide--tox-throbber__busy-spinner',\n 'tox-tbtn': 'tinymce__oxide--tox-tbtn',\n 'tox-tbtn-more': 'tinymce__oxide--tox-tbtn-more',\n 'tox-tbtn--disabled': 'tinymce__oxide--tox-tbtn--disabled',\n 'tox-tbtn--enabled': 'tinymce__oxide--tox-tbtn--enabled',\n 'tox-tbtn--md': 'tinymce__oxide--tox-tbtn--md',\n 'tox-tbtn--lg': 'tinymce__oxide--tox-tbtn--lg',\n 'tox-tbtn--return': 'tinymce__oxide--tox-tbtn--return',\n 'tox-tbtn--labeled': 'tinymce__oxide--tox-tbtn--labeled',\n 'tox-tbtn__vlabel': 'tinymce__oxide--tox-tbtn__vlabel',\n 'tox-tbtn--select': 'tinymce__oxide--tox-tbtn--select',\n 'tox-tbtn__select-label': 'tinymce__oxide--tox-tbtn__select-label',\n 'tox-tbtn__select-chevron': 'tinymce__oxide--tox-tbtn__select-chevron',\n 'tox-tbtn--bespoke': 'tinymce__oxide--tox-tbtn--bespoke',\n 'tox-split-button': 'tinymce__oxide--tox-split-button',\n 'tox-split-button__chevron': 'tinymce__oxide--tox-split-button__chevron',\n 'tox-toolbar-overlord': 'tinymce__oxide--tox-toolbar-overlord',\n 'tox-toolbar__overflow--closed': 'tinymce__oxide--tox-toolbar__overflow--closed',\n 'tox-toolbar__overflow--growing': 'tinymce__oxide--tox-toolbar__overflow--growing',\n 'tox-toolbar__overflow--shrinking': 'tinymce__oxide--tox-toolbar__overflow--shrinking',\n 'tox-toolbar--scrolling': 'tinymce__oxide--tox-toolbar--scrolling',\n 'tox-toolbar--no-divider': 'tinymce__oxide--tox-toolbar--no-divider',\n 'tox-tbtn__icon-rtl': 'tinymce__oxide--tox-tbtn__icon-rtl',\n 'tox-toolbar__group': 'tinymce__oxide--tox-toolbar__group',\n 'tox-toolbar__group--pull-right': 'tinymce__oxide--tox-toolbar__group--pull-right',\n 'tox-tooltip': 'tinymce__oxide--tox-tooltip',\n 'tox-tooltip__body': 'tinymce__oxide--tox-tooltip__body',\n 'tox-tooltip__arrow': 'tinymce__oxide--tox-tooltip__arrow',\n 'tox-tooltip--down': 'tinymce__oxide--tox-tooltip--down',\n 'tox-tooltip--up': 'tinymce__oxide--tox-tooltip--up',\n 'tox-tooltip--right': 'tinymce__oxide--tox-tooltip--right',\n 'tox-tooltip--left': 'tinymce__oxide--tox-tooltip--left',\n 'tox-well': 'tinymce__oxide--tox-well',\n 'tox-custom-editor': 'tinymce__oxide--tox-custom-editor',\n 'tox-dialog-loading': 'tinymce__oxide--tox-dialog-loading',\n 'tox-tab': 'tinymce__oxide--tox-tab',\n 'tox-dialog__content-js': 'tinymce__oxide--tox-dialog__content-js',\n 'tox-image-tools-edit-panel': 'tinymce__oxide--tox-image-tools-edit-panel',\n 'tox-image-tools__sidebar': 'tinymce__oxide--tox-image-tools__sidebar'\n};\nconst contentCSSBinding = {\n componentId: 'bKkob',\n template: function (theme) {\n return `\n\n\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-item-anchor {\n background: transparent url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A\") no-repeat center;\n cursor: default;\n display: inline-block;\n height: 12px !important;\n padding: 0 2px;\n -webkit-user-modify: read-only;\n -moz-user-modify: read-only;\n -webkit-user-select: all;\n user-select: all;\n width: 8px !important;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-item-anchor[data-mce-selected] {\n outline-offset: 1px;\n}\n.tinymce__oxide--tox-comments-visible .tinymce__oxide--tox-comment {\n background-color: #fff0b7;\n}\n.tinymce__oxide--tox-comments-visible .tinymce__oxide--tox-comment--active {\n background-color: #ffe168;\n}\n.tinymce__oxide--tox-checklist > li:not(.tinymce__oxide--tox-checklist--hidden) {\n list-style: none;\n margin: 0.25em 0;\n}\n.tinymce__oxide--tox-checklist > li:not(.tinymce__oxide--tox-checklist--hidden)::before {\n content: url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A\");\n cursor: pointer;\n height: 1em;\n margin-left: -1.5em;\n margin-top: 0.125em;\n position: absolute;\n width: 1em;\n}\n.tinymce__oxide--tox-checklist li:not(.tinymce__oxide--tox-checklist--hidden).tinymce__oxide--tox-checklist--checked::before {\n content: url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A\");\n}\n[dir=rtl] .tinymce__oxide--tox-checklist > li:not(.tinymce__oxide--tox-checklist--hidden)::before {\n margin-left: 0;\n margin-right: -1.5em;\n}\n\n\n\ncode[class*=\"language-\"],\npre[class*=\"language-\"] {\n color: black;\n background: none;\n text-shadow: 0 1px white;\n font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;\n font-size: 1em;\n text-align: left;\n white-space: pre;\n word-spacing: normal;\n word-break: normal;\n word-wrap: normal;\n line-height: 1.5;\n tab-size: 4;\n -webkit-hyphens: none;\n hyphens: none;\n}\n[dir=\"ltr\"] code[class*=\"language-\"],\n[dir=\"ltr\"] pre[class*=\"language-\"] {\n text-align: left;\n}\n[dir=\"rtl\"] code[class*=\"language-\"],\n[dir=\"rtl\"] pre[class*=\"language-\"] {\n text-align: left;\n}\npre[class*=\"language-\"]::selection,\npre[class*=\"language-\"] ::selection,\ncode[class*=\"language-\"]::selection,\ncode[class*=\"language-\"] ::selection {\n text-shadow: none;\n background: #b3d4fc;\n}\n@media print {\n code[class*=\"language-\"],\n pre[class*=\"language-\"] {\n text-shadow: none;\n }\n}\n\npre[class*=\"language-\"] {\n padding: 1em;\n margin: 0.5em 0;\n overflow: auto;\n}\n:not(pre) > code[class*=\"language-\"],\npre[class*=\"language-\"] {\n background: #f5f2f0;\n}\n\n:not(pre) > code[class*=\"language-\"] {\n padding: 0.1em;\n border-radius: 0.3em;\n white-space: normal;\n}\n.tinymce__oxide--token.tinymce__oxide--comment,\n.tinymce__oxide--token.tinymce__oxide--prolog,\n.tinymce__oxide--token.tinymce__oxide--doctype,\n.tinymce__oxide--token.tinymce__oxide--cdata {\n color: slategray;\n}\n.tinymce__oxide--token.tinymce__oxide--punctuation {\n color: #999;\n}\n.tinymce__oxide--namespace {\n opacity: 0.7;\n}\n.tinymce__oxide--token.tinymce__oxide--property,\n.tinymce__oxide--token.tinymce__oxide--tag,\n.tinymce__oxide--token.tinymce__oxide--boolean,\n.tinymce__oxide--token.tinymce__oxide--number,\n.tinymce__oxide--token.tinymce__oxide--constant,\n.tinymce__oxide--token.tinymce__oxide--symbol,\n.tinymce__oxide--token.tinymce__oxide--deleted {\n color: #905;\n}\n.tinymce__oxide--token.tinymce__oxide--selector,\n.tinymce__oxide--token.tinymce__oxide--attr-name,\n.tinymce__oxide--token.tinymce__oxide--string,\n.tinymce__oxide--token.tinymce__oxide--char,\n.tinymce__oxide--token.tinymce__oxide--builtin,\n.tinymce__oxide--token.tinymce__oxide--inserted {\n color: #690;\n}\n.tinymce__oxide--token.tinymce__oxide--operator,\n.tinymce__oxide--token.tinymce__oxide--entity,\n.tinymce__oxide--token.tinymce__oxide--url,\n.tinymce__oxide--language-css .tinymce__oxide--token.tinymce__oxide--string,\n.tinymce__oxide--style .tinymce__oxide--token.tinymce__oxide--string {\n color: #9a6e3a;\n background: hsla(0, 0%, 100%, 0.5);\n}\n.tinymce__oxide--token.tinymce__oxide--atrule,\n.tinymce__oxide--token.tinymce__oxide--attr-value,\n.tinymce__oxide--token.tinymce__oxide--keyword {\n color: #07a;\n}\n.tinymce__oxide--token.tinymce__oxide--function,\n.tinymce__oxide--token.tinymce__oxide--class-name {\n color: #DD4A68;\n}\n.tinymce__oxide--token.tinymce__oxide--regex,\n.tinymce__oxide--token.tinymce__oxide--important,\n.tinymce__oxide--token.tinymce__oxide--variable {\n color: #e90;\n}\n.tinymce__oxide--token.tinymce__oxide--important,\n.tinymce__oxide--token.tinymce__oxide--bold {\n font-weight: bold;\n}\n.tinymce__oxide--token.tinymce__oxide--italic {\n font-style: italic;\n}\n.tinymce__oxide--token.tinymce__oxide--entity {\n cursor: help;\n}\n\n.tinymce__oxide--mce-content-body {\n overflow-wrap: break-word;\n word-wrap: break-word;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-visual-caret {\n background-color: black;\n background-color: currentColor;\n position: absolute;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-visual-caret-hidden {\n display: none;\n}\n.tinymce__oxide--mce-content-body *[data-mce-caret] {\n left: -1000px;\n margin: 0;\n padding: 0;\n position: absolute;\n right: auto;\n top: 0;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-offscreen-selection {\n left: -2000000px;\n max-width: 1000000px;\n position: absolute;\n}\n.tinymce__oxide--mce-content-body *[contentEditable=false] {\n cursor: default;\n}\n.tinymce__oxide--mce-content-body *[contentEditable=true] {\n cursor: text;\n}\n.tinymce__oxide--tox-cursor-format-painter {\n cursor: url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A\"), default;\n}\n.tinymce__oxide--mce-content-body figure.tinymce__oxide--align-left {\n float: left;\n}\n[dir=\"ltr\"] .tinymce__oxide--mce-content-body figure.tinymce__oxide--align-left {\n float: left;\n}\n[dir=\"rtl\"] .tinymce__oxide--mce-content-body figure.tinymce__oxide--align-left {\n float: left;\n}\n.tinymce__oxide--mce-content-body figure.tinymce__oxide--align-right {\n float: right;\n}\n[dir=\"ltr\"] .tinymce__oxide--mce-content-body figure.tinymce__oxide--align-right {\n float: right;\n}\n[dir=\"rtl\"] .tinymce__oxide--mce-content-body figure.tinymce__oxide--align-right {\n float: right;\n}\n.tinymce__oxide--mce-content-body figure.tinymce__oxide--image.tinymce__oxide--align-center {\n display: table;\n margin-left: auto;\n margin-right: auto;\n}\n.tinymce__oxide--mce-preview-object {\n border: 1px solid gray;\n display: inline-block;\n line-height: 0;\n margin: 0 2px 0 2px;\n position: relative;\n}\n.tinymce__oxide--mce-preview-object .tinymce__oxide--mce-shim {\n background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n}\n.tinymce__oxide--mce-preview-object[data-mce-selected=\"2\"] .tinymce__oxide--mce-shim {\n display: none;\n}\n.tinymce__oxide--mce-object {\n background: transparent url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A\") no-repeat center;\n border: 1px dashed #aaa;\n}\n.tinymce__oxide--mce-pagebreak {\n border: 1px dashed #aaa;\n cursor: default;\n display: block;\n height: 5px;\n margin-top: 15px;\n page-break-before: always;\n width: 100%;\n}\n@media print {\n .tinymce__oxide--mce-pagebreak {\n border: 0;\n }\n}\n.tinymce__oxide--tiny-pageembed .tinymce__oxide--mce-shim {\n background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n}\n.tinymce__oxide--tiny-pageembed[data-mce-selected=\"2\"] .tinymce__oxide--mce-shim {\n display: none;\n}\n.tinymce__oxide--tiny-pageembed {\n display: inline-block;\n position: relative;\n}\n.tinymce__oxide--tiny-pageembed--21by9,\n.tinymce__oxide--tiny-pageembed--16by9,\n.tinymce__oxide--tiny-pageembed--4by3,\n.tinymce__oxide--tiny-pageembed--1by1 {\n display: block;\n overflow: hidden;\n padding: 0;\n position: relative;\n width: 100%;\n}\n.tinymce__oxide--tiny-pageembed--21by9 {\n padding-top: 42.857143%;\n}\n.tinymce__oxide--tiny-pageembed--16by9 {\n padding-top: 56.25%;\n}\n.tinymce__oxide--tiny-pageembed--4by3 {\n padding-top: 75%;\n}\n.tinymce__oxide--tiny-pageembed--1by1 {\n padding-top: 100%;\n}\n.tinymce__oxide--tiny-pageembed--21by9 iframe,\n.tinymce__oxide--tiny-pageembed--16by9 iframe,\n.tinymce__oxide--tiny-pageembed--4by3 iframe,\n.tinymce__oxide--tiny-pageembed--1by1 iframe {\n border: 0;\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n}\n.tinymce__oxide--mce-content-body[data-mce-placeholder] {\n position: relative;\n}\n.tinymce__oxide--mce-content-body[data-mce-placeholder]:not(.tinymce__oxide--mce-visualblocks)::before {\n color: rgba(34, 47, 62, 0.7);\n content: attr(data-mce-placeholder);\n position: absolute;\n}\n.tinymce__oxide--mce-content-body:not([dir=rtl])[data-mce-placeholder]:not(.tinymce__oxide--mce-visualblocks)::before {\n left: 1px;\n}\n.tinymce__oxide--mce-content-body[dir=rtl][data-mce-placeholder]:not(.tinymce__oxide--mce-visualblocks)::before {\n right: 1px;\n}\n.tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle {\n background-color: #4099ff;\n border-color: #4099ff;\n border-style: solid;\n border-width: 1px;\n box-sizing: border-box;\n height: 10px;\n position: absolute;\n width: 10px;\n z-index: 10000;\n}\n.tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle:hover {\n background-color: #4099ff;\n}\n.tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle:nth-of-type(1) {\n cursor: nwse-resize;\n}\n.tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle:nth-of-type(2) {\n cursor: nesw-resize;\n}\n.tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle:nth-of-type(3) {\n cursor: nwse-resize;\n}\n.tinymce__oxide--mce-content-body div.tinymce__oxide--mce-resizehandle:nth-of-type(4) {\n cursor: nesw-resize;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-resize-backdrop {\n z-index: 10000;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-clonedresizable {\n cursor: default;\n opacity: 0.5;\n outline: 1px dashed black;\n position: absolute;\n z-index: 10001;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-clonedresizable.tinymce__oxide--mce-resizetable-columns th,\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-clonedresizable.tinymce__oxide--mce-resizetable-columns td {\n border: 0;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-resize-helper {\n background: #555;\n background: rgba(0, 0, 0, 0.75);\n border: 1px;\n border-radius: 3px;\n color: white;\n display: none;\n font-family: sans-serif;\n font-size: 12px;\n line-height: 14px;\n margin: 5px 10px;\n padding: 5px;\n position: absolute;\n white-space: nowrap;\n z-index: 10002;\n}\n.tinymce__oxide--tox-rtc-user-selection {\n position: relative;\n}\n.tinymce__oxide--tox-rtc-user-cursor {\n bottom: 0;\n cursor: default;\n position: absolute;\n top: 0;\n width: 2px;\n}\n.tinymce__oxide--tox-rtc-user-cursor::before {\n background-color: inherit;\n border-radius: 50%;\n content: '';\n display: block;\n height: 8px;\n position: absolute;\n right: -3px;\n top: -3px;\n width: 8px;\n}\n.tinymce__oxide--tox-rtc-user-cursor:hover::after {\n background-color: inherit;\n border-radius: 100px;\n box-sizing: border-box;\n color: #fff;\n content: attr(data-user);\n display: block;\n font-size: 12px;\n font-weight: bold;\n left: -5px;\n min-height: 8px;\n min-width: 8px;\n padding: 0 12px;\n position: absolute;\n top: -11px;\n white-space: nowrap;\n z-index: 1000;\n}\n.tinymce__oxide--tox-rtc-user-selection--1 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #2dc26b;\n}\n.tinymce__oxide--tox-rtc-user-selection--2 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #e03e2d;\n}\n.tinymce__oxide--tox-rtc-user-selection--3 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #f1c40f;\n}\n.tinymce__oxide--tox-rtc-user-selection--4 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #3598db;\n}\n.tinymce__oxide--tox-rtc-user-selection--5 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #b96ad9;\n}\n.tinymce__oxide--tox-rtc-user-selection--6 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #e67e23;\n}\n.tinymce__oxide--tox-rtc-user-selection--7 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #aaa69d;\n}\n.tinymce__oxide--tox-rtc-user-selection--8 .tinymce__oxide--tox-rtc-user-cursor {\n background-color: #f368e0;\n}\n.tinymce__oxide--tox-rtc-remote-image {\n background: #eaeaea url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2236%22%20height%3D%2212%22%20viewBox%3D%220%200%2036%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Ccircle%20cx%3D%226%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2218%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.33s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%20%20%3Ccircle%20cx%3D%2230%22%20cy%3D%226%22%20r%3D%223%22%20fill%3D%22rgba(0%2C%200%2C%200%2C%20.2)%22%3E%0A%20%20%20%20%3Canimate%20attributeName%3D%22r%22%20values%3D%223%3B5%3B3%22%20calcMode%3D%22linear%22%20begin%3D%22.66s%22%20dur%3D%221s%22%20repeatCount%3D%22indefinite%22%20%2F%3E%0A%20%20%3C%2Fcircle%3E%0A%3C%2Fsvg%3E%0A\") no-repeat center center;\n border: 1px solid #ccc;\n min-height: 240px;\n min-width: 320px;\n}\n.tinymce__oxide--mce-match-marker {\n background: #aaa;\n color: #fff;\n}\n.tinymce__oxide--mce-match-marker-selected {\n background: #39f;\n color: #fff;\n}\n.tinymce__oxide--mce-match-marker-selected::selection {\n background: #39f;\n color: #fff;\n}\n.tinymce__oxide--mce-content-body img[data-mce-selected],\n.tinymce__oxide--mce-content-body video[data-mce-selected],\n.tinymce__oxide--mce-content-body audio[data-mce-selected],\n.tinymce__oxide--mce-content-body object[data-mce-selected],\n.tinymce__oxide--mce-content-body embed[data-mce-selected],\n.tinymce__oxide--mce-content-body table[data-mce-selected] {\n outline: 3px solid #b4d7ff;\n}\n.tinymce__oxide--mce-content-body hr[data-mce-selected] {\n outline: 3px solid #b4d7ff;\n outline-offset: 1px;\n}\n.tinymce__oxide--mce-content-body *[contentEditable=false] *[contentEditable=true]:focus {\n outline: 3px solid #b4d7ff;\n}\n.tinymce__oxide--mce-content-body *[contentEditable=false] *[contentEditable=true]:hover {\n outline: 3px solid #b4d7ff;\n}\n.tinymce__oxide--mce-content-body *[contentEditable=false][data-mce-selected] {\n cursor: not-allowed;\n outline: 3px solid #b4d7ff;\n}\n.tinymce__oxide--mce-content-body.tinymce__oxide--mce-content-readonly *[contentEditable=true]:focus,\n.tinymce__oxide--mce-content-body.tinymce__oxide--mce-content-readonly *[contentEditable=true]:hover {\n outline: none;\n}\n.tinymce__oxide--mce-content-body *[data-mce-selected=\"inline-boundary\"] {\n background-color: #b4d7ff;\n}\n.tinymce__oxide--mce-content-body .tinymce__oxide--mce-edit-focus {\n outline: 3px solid #b4d7ff;\n}\n.tinymce__oxide--mce-content-body td[data-mce-selected],\n.tinymce__oxide--mce-content-body th[data-mce-selected] {\n position: relative;\n}\n.tinymce__oxide--mce-content-body td[data-mce-selected]::selection,\n.tinymce__oxide--mce-content-body th[data-mce-selected]::selection {\n background: none;\n}\n.tinymce__oxide--mce-content-body td[data-mce-selected] *,\n.tinymce__oxide--mce-content-body th[data-mce-selected] * {\n outline: none;\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n user-select: none;\n}\n.tinymce__oxide--mce-content-body td[data-mce-selected]::after,\n.tinymce__oxide--mce-content-body th[data-mce-selected]::after {\n background-color: rgba(180, 215, 255, 0.7);\n border: 1px solid rgba(180, 215, 255, 0.7);\n bottom: -1px;\n content: '';\n left: -1px;\n mix-blend-mode: multiply;\n position: absolute;\n right: -1px;\n top: -1px;\n}\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n .tinymce__oxide--mce-content-body td[data-mce-selected]::after,\n .tinymce__oxide--mce-content-body th[data-mce-selected]::after {\n border-color: rgba(0, 84, 180, 0.7);\n }\n}\n.tinymce__oxide--mce-content-body img::selection {\n background: none;\n}\n.tinymce__oxide--ephox-snooker-resizer-bar {\n background-color: #b4d7ff;\n opacity: 0;\n -webkit-user-select: none;\n user-select: none;\n}\n.tinymce__oxide--ephox-snooker-resizer-cols {\n cursor: col-resize;\n}\n.tinymce__oxide--ephox-snooker-resizer-rows {\n cursor: row-resize;\n}\n.tinymce__oxide--ephox-snooker-resizer-bar.tinymce__oxide--ephox-snooker-resizer-bar-dragging {\n opacity: 1;\n}\n.tinymce__oxide--mce-spellchecker-word {\n background-image: url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.75'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A\");\n background-position: 0 calc(100% + 1px);\n background-repeat: repeat-x;\n background-size: auto 6px;\n cursor: default;\n height: 2rem;\n}\n.tinymce__oxide--mce-spellchecker-grammar {\n background-image: url(\"data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%2300A835'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A\");\n background-position: 0 calc(100% + 1px);\n background-repeat: repeat-x;\n background-size: auto 6px;\n cursor: default;\n}\n.tinymce__oxide--mce-toc {\n border: 1px solid gray;\n}\n.tinymce__oxide--mce-toc h2 {\n margin: 4px;\n}\n.tinymce__oxide--mce-toc li {\n list-style-type: none;\n}\ntable[style*=\"border-width: 0px\"],\n.tinymce__oxide--mce-item-table:not([border]),\n.tinymce__oxide--mce-item-table[border=\"0\"],\ntable[style*=\"border-width: 0px\"] td,\n.tinymce__oxide--mce-item-table:not([border]) td,\n.tinymce__oxide--mce-item-table[border=\"0\"] td,\ntable[style*=\"border-width: 0px\"] th,\n.tinymce__oxide--mce-item-table:not([border]) th,\n.tinymce__oxide--mce-item-table[border=\"0\"] th,\ntable[style*=\"border-width: 0px\"] caption,\n.tinymce__oxide--mce-item-table:not([border]) caption,\n.tinymce__oxide--mce-item-table[border=\"0\"] caption {\n border: 1px dashed #bbb;\n}\n.tinymce__oxide--mce-visualblocks p,\n.tinymce__oxide--mce-visualblocks h1,\n.tinymce__oxide--mce-visualblocks h2,\n.tinymce__oxide--mce-visualblocks h3,\n.tinymce__oxide--mce-visualblocks h4,\n.tinymce__oxide--mce-visualblocks h5,\n.tinymce__oxide--mce-visualblocks h6,\n.tinymce__oxide--mce-visualblocks div:not([data-mce-bogus]),\n.tinymce__oxide--mce-visualblocks section,\n.tinymce__oxide--mce-visualblocks article,\n.tinymce__oxide--mce-visualblocks blockquote,\n.tinymce__oxide--mce-visualblocks address,\n.tinymce__oxide--mce-visualblocks pre,\n.tinymce__oxide--mce-visualblocks figure,\n.tinymce__oxide--mce-visualblocks figcaption,\n.tinymce__oxide--mce-visualblocks hgroup,\n.tinymce__oxide--mce-visualblocks aside,\n.tinymce__oxide--mce-visualblocks ul,\n.tinymce__oxide--mce-visualblocks ol,\n.tinymce__oxide--mce-visualblocks dl {\n background-repeat: no-repeat;\n border: 1px dashed #bbb;\n margin-left: 3px;\n padding-top: 10px;\n}\n.tinymce__oxide--mce-visualblocks p {\n background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7);\n}\n.tinymce__oxide--mce-visualblocks h1 {\n background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==);\n}\n.tinymce__oxide--mce-visualblocks h2 {\n background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==);\n}\n.tinymce__oxide--mce-visualblocks h3 {\n background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7);\n}\n.tinymce__oxide--mce-visualblocks h4 {\n background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==);\n}\n.tinymce__oxide--mce-visualblocks h5 {\n background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==);\n}\n.tinymce__oxide--mce-visualblocks h6 {\n background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==);\n}\n.tinymce__oxide--mce-visualblocks div:not([data-mce-bogus]) {\n background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7);\n}\n.tinymce__oxide--mce-visualblocks section {\n background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=);\n}\n.tinymce__oxide--mce-visualblocks article {\n background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7);\n}\n.tinymce__oxide--mce-visualblocks blockquote {\n background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7);\n}\n.tinymce__oxide--mce-visualblocks address {\n background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=);\n}\n.tinymce__oxide--mce-visualblocks pre {\n background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==);\n}\n.tinymce__oxide--mce-visualblocks figure {\n background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7);\n}\n.tinymce__oxide--mce-visualblocks figcaption {\n border: 1px dashed #bbb;\n}\n.tinymce__oxide--mce-visualblocks hgroup {\n background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7);\n}\n.tinymce__oxide--mce-visualblocks aside {\n background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=);\n}\n.tinymce__oxide--mce-visualblocks ul {\n background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==);\n}\n.tinymce__oxide--mce-visualblocks ol {\n background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==);\n}\n.tinymce__oxide--mce-visualblocks dl {\n background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==);\n}\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) p,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) h1,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) h2,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) h3,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) h4,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) h5,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) h6,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) section,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) article,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) blockquote,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) address,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) pre,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) figure,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) figcaption,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) hgroup,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) aside,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) ul,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) ol,\n.tinymce__oxide--mce-visualblocks:not([dir=rtl]) dl {\n margin-left: 3px;\n}\n.tinymce__oxide--mce-visualblocks[dir=rtl] p,\n.tinymce__oxide--mce-visualblocks[dir=rtl] h1,\n.tinymce__oxide--mce-visualblocks[dir=rtl] h2,\n.tinymce__oxide--mce-visualblocks[dir=rtl] h3,\n.tinymce__oxide--mce-visualblocks[dir=rtl] h4,\n.tinymce__oxide--mce-visualblocks[dir=rtl] h5,\n.tinymce__oxide--mce-visualblocks[dir=rtl] h6,\n.tinymce__oxide--mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),\n.tinymce__oxide--mce-visualblocks[dir=rtl] section,\n.tinymce__oxide--mce-visualblocks[dir=rtl] article,\n.tinymce__oxide--mce-visualblocks[dir=rtl] blockquote,\n.tinymce__oxide--mce-visualblocks[dir=rtl] address,\n.tinymce__oxide--mce-visualblocks[dir=rtl] pre,\n.tinymce__oxide--mce-visualblocks[dir=rtl] figure,\n.tinymce__oxide--mce-visualblocks[dir=rtl] figcaption,\n.tinymce__oxide--mce-visualblocks[dir=rtl] hgroup,\n.tinymce__oxide--mce-visualblocks[dir=rtl] aside,\n.tinymce__oxide--mce-visualblocks[dir=rtl] ul,\n.tinymce__oxide--mce-visualblocks[dir=rtl] ol,\n.tinymce__oxide--mce-visualblocks[dir=rtl] dl {\n background-position-x: right;\n margin-right: 3px;\n}\n.tinymce__oxide--mce-nbsp,\n.tinymce__oxide--mce-shy {\n background: #aaa;\n}\n.tinymce__oxide--mce-shy::after {\n content: '-';\n}\nbody {\n font-family: sans-serif;\n}\ntable {\n border-collapse: collapse;\n}\n`;\n },\n 'mce-content-body': 'tinymce__oxide--mce-content-body',\n 'mce-item-anchor': 'tinymce__oxide--mce-item-anchor',\n 'tox-comments-visible': 'tinymce__oxide--tox-comments-visible',\n 'tox-comment': 'tinymce__oxide--tox-comment',\n 'tox-comment--active': 'tinymce__oxide--tox-comment--active',\n 'tox-checklist': 'tinymce__oxide--tox-checklist',\n 'tox-checklist--hidden': 'tinymce__oxide--tox-checklist--hidden',\n 'tox-checklist--checked': 'tinymce__oxide--tox-checklist--checked',\n 'token': 'tinymce__oxide--token',\n 'comment': 'tinymce__oxide--comment',\n 'prolog': 'tinymce__oxide--prolog',\n 'doctype': 'tinymce__oxide--doctype',\n 'cdata': 'tinymce__oxide--cdata',\n 'punctuation': 'tinymce__oxide--punctuation',\n 'namespace': 'tinymce__oxide--namespace',\n 'property': 'tinymce__oxide--property',\n 'tag': 'tinymce__oxide--tag',\n 'boolean': 'tinymce__oxide--boolean',\n 'number': 'tinymce__oxide--number',\n 'constant': 'tinymce__oxide--constant',\n 'symbol': 'tinymce__oxide--symbol',\n 'deleted': 'tinymce__oxide--deleted',\n 'selector': 'tinymce__oxide--selector',\n 'attr-name': 'tinymce__oxide--attr-name',\n 'string': 'tinymce__oxide--string',\n 'char': 'tinymce__oxide--char',\n 'builtin': 'tinymce__oxide--builtin',\n 'inserted': 'tinymce__oxide--inserted',\n 'operator': 'tinymce__oxide--operator',\n 'entity': 'tinymce__oxide--entity',\n 'url': 'tinymce__oxide--url',\n 'language-css': 'tinymce__oxide--language-css',\n 'style': 'tinymce__oxide--style',\n 'atrule': 'tinymce__oxide--atrule',\n 'attr-value': 'tinymce__oxide--attr-value',\n 'keyword': 'tinymce__oxide--keyword',\n 'function': 'tinymce__oxide--function',\n 'class-name': 'tinymce__oxide--class-name',\n 'regex': 'tinymce__oxide--regex',\n 'important': 'tinymce__oxide--important',\n 'variable': 'tinymce__oxide--variable',\n 'bold': 'tinymce__oxide--bold',\n 'italic': 'tinymce__oxide--italic',\n 'mce-visual-caret': 'tinymce__oxide--mce-visual-caret',\n 'mce-visual-caret-hidden': 'tinymce__oxide--mce-visual-caret-hidden',\n 'mce-offscreen-selection': 'tinymce__oxide--mce-offscreen-selection',\n 'tox-cursor-format-painter': 'tinymce__oxide--tox-cursor-format-painter',\n 'align-left': 'tinymce__oxide--align-left',\n 'align-right': 'tinymce__oxide--align-right',\n 'image': 'tinymce__oxide--image',\n 'align-center': 'tinymce__oxide--align-center',\n 'mce-preview-object': 'tinymce__oxide--mce-preview-object',\n 'mce-shim': 'tinymce__oxide--mce-shim',\n 'mce-object': 'tinymce__oxide--mce-object',\n 'mce-pagebreak': 'tinymce__oxide--mce-pagebreak',\n 'tiny-pageembed': 'tinymce__oxide--tiny-pageembed',\n 'tiny-pageembed--21by9': 'tinymce__oxide--tiny-pageembed--21by9',\n 'tiny-pageembed--16by9': 'tinymce__oxide--tiny-pageembed--16by9',\n 'tiny-pageembed--4by3': 'tinymce__oxide--tiny-pageembed--4by3',\n 'tiny-pageembed--1by1': 'tinymce__oxide--tiny-pageembed--1by1',\n 'mce-visualblocks': 'tinymce__oxide--mce-visualblocks',\n 'mce-resizehandle': 'tinymce__oxide--mce-resizehandle',\n 'mce-resize-backdrop': 'tinymce__oxide--mce-resize-backdrop',\n 'mce-clonedresizable': 'tinymce__oxide--mce-clonedresizable',\n 'mce-resizetable-columns': 'tinymce__oxide--mce-resizetable-columns',\n 'mce-resize-helper': 'tinymce__oxide--mce-resize-helper',\n 'tox-rtc-user-selection': 'tinymce__oxide--tox-rtc-user-selection',\n 'tox-rtc-user-cursor': 'tinymce__oxide--tox-rtc-user-cursor',\n 'tox-rtc-user-selection--1': 'tinymce__oxide--tox-rtc-user-selection--1',\n 'tox-rtc-user-selection--2': 'tinymce__oxide--tox-rtc-user-selection--2',\n 'tox-rtc-user-selection--3': 'tinymce__oxide--tox-rtc-user-selection--3',\n 'tox-rtc-user-selection--4': 'tinymce__oxide--tox-rtc-user-selection--4',\n 'tox-rtc-user-selection--5': 'tinymce__oxide--tox-rtc-user-selection--5',\n 'tox-rtc-user-selection--6': 'tinymce__oxide--tox-rtc-user-selection--6',\n 'tox-rtc-user-selection--7': 'tinymce__oxide--tox-rtc-user-selection--7',\n 'tox-rtc-user-selection--8': 'tinymce__oxide--tox-rtc-user-selection--8',\n 'tox-rtc-remote-image': 'tinymce__oxide--tox-rtc-remote-image',\n 'mce-match-marker': 'tinymce__oxide--mce-match-marker',\n 'mce-match-marker-selected': 'tinymce__oxide--mce-match-marker-selected',\n 'mce-content-readonly': 'tinymce__oxide--mce-content-readonly',\n 'mce-edit-focus': 'tinymce__oxide--mce-edit-focus',\n 'ephox-snooker-resizer-bar': 'tinymce__oxide--ephox-snooker-resizer-bar',\n 'ephox-snooker-resizer-cols': 'tinymce__oxide--ephox-snooker-resizer-cols',\n 'ephox-snooker-resizer-rows': 'tinymce__oxide--ephox-snooker-resizer-rows',\n 'ephox-snooker-resizer-bar-dragging': 'tinymce__oxide--ephox-snooker-resizer-bar-dragging',\n 'mce-spellchecker-word': 'tinymce__oxide--mce-spellchecker-word',\n 'mce-spellchecker-grammar': 'tinymce__oxide--mce-spellchecker-grammar',\n 'mce-toc': 'tinymce__oxide--mce-toc',\n 'mce-item-table': 'tinymce__oxide--mce-item-table',\n 'mce-nbsp': 'tinymce__oxide--mce-nbsp',\n 'mce-shy': 'tinymce__oxide--mce-shy'\n};\nconst RestoreAutoSaveModal = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(2), __webpack_require__.e(69)]).then(__webpack_require__.bind(null, /*! ./RestoreAutoSaveModal */ \"./src/rce/RestoreAutoSaveModal.js\")));\nconst RceHtmlEditor = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(26), __webpack_require__.e(68)]).then(__webpack_require__.bind(null, /*! ./RceHtmlEditor */ \"./src/rce/RceHtmlEditor.js\")));\nconst ASYNC_FOCUS_TIMEOUT = 250;\nconst DEFAULT_RCE_HEIGHT = '400px';\nconst toolbarPropType = prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n // name of the toolbar the items are added to\n // if this toolbar doesn't exist, it is created\n // tinymce toolbar config does not\n // include a key to identify the individual toolbars, just a name\n // which is translated. This toolbar's name must be translated\n // in order to be merged correctly.\n name: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired,\n // items added to the toolbar\n // each is the name of the button some plugin has\n // registered with tinymce\n items: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string).isRequired\n}));\nconst menuPropType = prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.objectOf( // the key is the name of the menu item a plugin has\n// registered with tinymce. If it does not exist in the\n// default menubar, it will be added.\nprop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n // if this is a new menu in the menubar, title is it's label.\n // if these are items being merged into an existing menu, title is ignored\n title: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n // items is a space separated list it menu_items\n // some plugin has registered with tinymce\n items: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired\n}));\nconst ltiToolsPropType = prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n // id of the tool\n id: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]),\n // is this a favorite tool?\n favorite: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool\n}));\nconst editorOptionsPropType = prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n // height of the RCE.\n // if a number interpreted as pixels.\n // if a string as a CSS value.\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string]),\n // entries you want merged into the toolbar. See toolBarPropType above.\n toolbar: toolbarPropType,\n // entries you want merged into to the menus. See menuPropType above.\n // If an entry defines a new menu, tinymce's menubar config option will\n // be updated for you. In fact, if you provide an editorOptions.menubar value\n // it will be overwritten.\n menu: menuPropType,\n // additional plugins that get merged into the default list of plugins\n // it is up to you to import the plugin's definition which will\n // register it and any related toolbar or menu entries with tinymce.\n plugins: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string),\n // is this RCE readonly?\n readonly: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool\n});\nconst skinCSS = skinCSSBinding.template().replace(/tinymce__oxide--/g, '');\nconst contentCSS = contentCSSBinding.template().replace(/tinymce__oxide--/g, ''); // If we ever get our jest tests configured so they can handle importing real esModules,\n// we can move this to plugins/instructure-ui-icons/plugin.js like the rest.\n\nfunction addKebabIcon(editor) {\n editor.ui.registry.addIcon('more-drawer', `\n <svg viewBox=\"0 0 1920 1920\">\n <path d=\"M1129.412 1637.647c0 93.448-75.964 169.412-169.412 169.412-93.448 0-169.412-75.964-169.412-169.412 0-93.447 75.964-169.412 169.412-169.412 93.448 0 169.412 75.965 169.412 169.412zm0-677.647c0 93.448-75.964 169.412-169.412 169.412-93.448 0-169.412-75.964-169.412-169.412 0-93.448 75.964-169.412 169.412-169.412 93.448 0 169.412 75.964 169.412 169.412zm0-677.647c0 93.447-75.964 169.412-169.412 169.412-93.448 0-169.412-75.965-169.412-169.412 0-93.448 75.964-169.412 169.412-169.412 93.448 0 169.412 75.964 169.412 169.412z\" stroke=\"none\" stroke-width=\"1\" fill-rule=\"evenodd\"/>\n </svg>\n `);\n} // Get oxide the default skin injected into the DOM before the overrides loaded by themeable\n\n\nlet inserted = false;\n\nfunction injectTinySkin() {\n if (inserted) return;\n inserted = true;\n const style = document.createElement('style');\n style.setAttribute('data-skin', 'tiny oxide skin');\n style.appendChild( // the .replace here is because the ui-themeable babel hook adds that prefix to all the class names\n document.createTextNode(skinCSS));\n const beforeMe = document.head.querySelector('style[data-glamor]') || // find instui's themeable stylesheet\n document.head.querySelector('style') || // find any stylesheet\n document.head.firstElementChild;\n document.head.insertBefore(style, beforeMe);\n}\n\nconst editorWrappers = new WeakMap();\n\nfunction focusToolbar(el) {\n const $firstToolbarButton = el.querySelector('.tox-tbtn');\n $firstToolbarButton && $firstToolbarButton.focus();\n}\n\nfunction focusFirstMenuButton(el) {\n const $firstMenu = el.querySelector('.tox-mbtn');\n $firstMenu && $firstMenu.focus();\n}\n\nfunction isElementWithinTable(node) {\n let elem = node;\n\n while (elem) {\n if (elem.tagName === 'TABLE' || elem.tagName === 'TD' || elem.tagName === 'TH') {\n return true;\n }\n\n elem = elem.parentElement;\n }\n\n return false;\n} // determines if localStorage is available for our use.\n// see https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API\n\n\nfunction storageAvailable() {\n let storage;\n\n try {\n storage = window.localStorage;\n const x = '__storage_test__';\n storage.setItem(x, x);\n storage.removeItem(x);\n return true;\n } catch (e) {\n return e instanceof DOMException && ( // everything except Firefox\n e.code === 22 || // Firefox\n e.code === 1014 || // test name field too, because code might not be present\n // everything except Firefox\n e.name === 'QuotaExceededError' || // Firefox\n e.name === 'NS_ERROR_DOM_QUOTA_REACHED') && // acknowledge QuotaExceededError only if there's something already stored\n storage && storage.length !== 0;\n }\n}\n\nfunction getHtmlEditorCookie() {\n const value = Object(_common_getCookie__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('rce.htmleditor');\n return value === _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"RAW_HTML_EDITOR_VIEW\"] || value === _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"PRETTY_HTML_EDITOR_VIEW\"] ? value : _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"PRETTY_HTML_EDITOR_VIEW\"];\n}\n\nfunction renderLoading() {\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Loading');\n} // safari implements only the webkit prefixed version of the fullscreen api\n\n\nconst FS_ELEMENT = document.fullscreenElement === undefined ? 'webkitFullscreenElement' : 'fullscreenElement';\nconst FS_REQUEST = document.body.requestFullscreen ? 'requestFullscreen' : 'webkitRequestFullscreen';\nconst FS_EXIT = document.exitFullscreen ? 'exitFullscreen' : 'webkitExitFullscreen';\nlet alertIdValue = 0;\nlet RCEWrapper = (_dec = Object(_instructure_ui_themeable__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(_skins_theme__WEBPACK_IMPORTED_MODULE_27__[\"default\"], styles), _dec(_class = (_class2 = class RCEWrapper extends react__WEBPACK_IMPORTED_MODULE_2___default.a.Component {\n static getByEditor(editor) {\n return editorWrappers.get(editor);\n }\n\n constructor(props) {\n var _this, _props$editorOptions;\n\n super(props);\n _this = this;\n\n this.onRemove = () => {\n _bridge__WEBPACK_IMPORTED_MODULE_22__[\"default\"].detachEditor(this);\n this.props.onRemove && this.props.onRemove(this);\n };\n\n this.toggleView = newView => {\n // coming from the menubar, we don't have a newView,\n const wasFullscreen = this._isFullscreen();\n\n if (wasFullscreen) this._exitFullscreen();\n let newState;\n\n switch (this.state.editorView) {\n case _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"WYSIWYG_VIEW\"]:\n newState = {\n editorView: newView || _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"PRETTY_HTML_EDITOR_VIEW\"]\n };\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"PRETTY_HTML_EDITOR_VIEW\"]:\n newState = {\n editorView: newView || _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"WYSIWYG_VIEW\"]\n };\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"RAW_HTML_EDITOR_VIEW\"]:\n newState = {\n editorView: newView || _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"WYSIWYG_VIEW\"]\n };\n }\n\n this.setState(newState, () => {\n if (wasFullscreen) {\n window.setTimeout(() => {\n this._enterFullscreen();\n }, 200); // due to the animation it takes some time for fullscreen to complete\n }\n });\n this.checkAccessibility();\n\n if (newView === _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"PRETTY_HTML_EDITOR_VIEW\"] || newView === _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"RAW_HTML_EDITOR_VIEW\"]) {\n document.cookie = `rce.htmleditor=${newView};path=/;max-age=31536000`;\n } // Emit view change event\n\n\n this.mceInstance().fire(_customEvents__WEBPACK_IMPORTED_MODULE_25__[\"VIEW_CHANGE\"], {\n target: this.editor,\n newView: newState.editorView\n });\n };\n\n this.contentTrayClosing = false;\n this.blurTimer = 0;\n\n this.handleFocusRCE = event => {\n this.handleFocus(event);\n };\n\n this.handleBlurRCE = event => {\n var _this$_elementRef$cur;\n\n if (event.relatedTarget === null) {\n // focus might be moving to tinymce\n this.handleBlur(event);\n }\n\n if (!((_this$_elementRef$cur = this._elementRef.current) !== null && _this$_elementRef$cur !== void 0 && _this$_elementRef$cur.contains(event.relatedTarget))) {\n this.handleBlur(event);\n }\n };\n\n this.handleFocusEditor = (event, _editor) => {\n // use .active to put a focus ring around the content area\n // when the editor has focus. This isn't perfect, but it's\n // what we've got for now.\n const ifr = this.iframe;\n ifr && ifr.parentElement.classList.add('active');\n\n this._forceCloseFloatingToolbar();\n\n this.handleFocus(event);\n };\n\n this.handleFocusHtmlEditor = event => {\n this.handleFocus(event);\n };\n\n this.handleBlurEditor = (event, _editor) => {\n const ifr = this.iframe;\n ifr && ifr.parentElement.classList.remove('active');\n this.handleBlur(event);\n };\n\n this.handleKey = event => {\n if (event.code === 'F9' && event.altKey) {\n event.preventDefault();\n event.stopPropagation();\n this.setFocusAbilityForHeader(true);\n focusFirstMenuButton(this._elementRef.current);\n } else if (event.code === 'F10' && event.altKey) {\n event.preventDefault();\n event.stopPropagation();\n this.setFocusAbilityForHeader(true);\n focusToolbar(this._elementRef.current);\n } else if ((event.code === 'F8' || event.code === 'Digit0') && event.altKey) {\n event.preventDefault();\n event.stopPropagation();\n this.openKBShortcutModal();\n } else if (event.code === 'Escape') {\n this._forceCloseFloatingToolbar();\n\n if (this.state.fullscreenState.isTinyFullscreen) {\n this.mceInstance().execCommand('mceFullScreen'); // turn it off\n } else {\n _bridge__WEBPACK_IMPORTED_MODULE_22__[\"default\"].hideTrays();\n }\n } else if (['n', 'N', 'd', 'D'].indexOf(event.key) !== -1) {\n // Prevent key events from bubbling up on touch screen device\n event.stopPropagation();\n }\n };\n\n this.handleClickFullscreen = () => {\n if (this._isFullscreen()) {\n this._exitFullscreen();\n } else {\n this._enterFullscreen();\n }\n };\n\n this.handleExternalClick = () => {\n this._forceCloseFloatingToolbar();\n\n Object(_instructure_debounce__WEBPACK_IMPORTED_MODULE_10__[\"debounce\"])(this.checkAccessibility, 1000)();\n };\n\n this.handleInputChange = () => {\n this.checkAccessibility();\n };\n\n this.onInit = (_event, editor) => {\n var _this$props$onInitted, _this$props;\n\n editor.rceWrapper = this;\n this.editor = editor;\n const textarea = this.editor.getElement(); // expected by canvas\n\n textarea.dataset.rich_text = true; // start with the textarea and tinymce in sync\n\n textarea.value = this.getCode();\n textarea.style.height = this.state.height; // Capture click events outside the iframe\n\n document.addEventListener('click', this.handleExternalClick);\n\n if (document.body.classList.contains('Underline-All-Links__enabled')) {\n this.iframe.contentDocument.body.classList.add('Underline-All-Links__enabled');\n }\n\n editor.on('wordCountUpdate', this.onWordCountUpdate); // add an aria-label to the application div that wraps RCE\n // and change role from \"application\" to \"document\" to ensure\n // the editor gets properly picked up by screen readers\n\n const tinyapp = document.querySelector('.tox-tinymce[role=\"application\"]');\n\n if (tinyapp) {\n tinyapp.setAttribute('aria-label', Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Rich Content Editor'));\n tinyapp.setAttribute('role', 'document');\n tinyapp.setAttribute('tabIndex', '-1');\n } // Adds a focusout event listener for handling screen reader navigation focus\n\n\n const header = this._elementRef.current.querySelector('.tox-editor-header');\n\n if (header) {\n header.addEventListener('focusout', e => {\n const leavingHeader = !header.contains(e.relatedTarget);\n\n if (leavingHeader) {\n this.setFocusAbilityForHeader(false);\n }\n });\n }\n\n this.setFocusAbilityForHeader(false); // Probably should do this in tinymce.scss, but we only want it in new rce\n\n textarea.style.resize = 'none';\n editor.on('ExecCommand', this._forceCloseFloatingToolbar);\n editor.on('keydown', this.handleKey);\n editor.on('FullscreenStateChanged', this._toggleFullscreen); // This propagates click events on the editor out of the iframe to the parent\n // document. We need this so that click events get captured properly by instui\n // focus-trapping components, so they properly ignore trapping focus on click.\n\n editor.on('click', () => window.document.body.click(), true);\n editor.on('Cut Paste Change input Undo Redo', Object(_instructure_debounce__WEBPACK_IMPORTED_MODULE_10__[\"debounce\"])(this.handleInputChange, 1000));\n this.announceContextToolbars(editor);\n\n if (this.isAutoSaving) {\n this.initAutoSave(editor);\n } // first view\n\n\n this.setEditorView(this.state.editorView); // readonly should have been handled via the init property passed\n // to <Editor>, but it's not.\n\n editor.mode.set(this.props.readOnly ? 'readonly' : 'design'); // Not using iframe_aria_text because compatibility issues.\n // Not using iframe_attrs because library overwriting.\n\n if (this.iframe) {\n this.iframe.setAttribute('title', Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Rich Text Area. Press ALT+0 for Rich Content Editor shortcuts.'));\n }\n\n (_this$props$onInitted = (_this$props = this.props).onInitted) === null || _this$props$onInitted === void 0 ? void 0 : _this$props$onInitted.call(_this$props, editor);\n };\n\n this._toggleFullscreen = event => {\n const isTinyFullscreen = event.state;\n const fullscreenState = {\n isTinyFullscreen\n };\n const header = document.getElementById('header');\n\n if (header) {\n if (isTinyFullscreen) {\n fullscreenState.headerDisp = header.style.display;\n header.style.display = 'none';\n } else {\n header.style.display = this.state.fullscreenState.headerDisp;\n }\n }\n\n this.setState({\n fullscreenState\n }); // if we're leaving fullscreen, remove event listeners on the fullscreen element\n\n if (!document[FS_ELEMENT] && this.state.fullscreenElem) {\n this.state.fullscreenElem.removeEventListener('fullscreenchange', this._toggleFullscreen);\n this.state.fullscreenElem.removeEventListener('webkitfullscreenchange', this._toggleFullscreen);\n this.setState({\n fullscreenState: {\n fullscreenElem: null\n }\n });\n } // if we don't defer setState, the pretty editor's height isn't correct\n // when entering fullscreen\n\n\n window.setTimeout(() => {\n if (document[FS_ELEMENT]) {\n this.setState(state => {\n return {\n fullscreenState: { ...state.fullscreenState,\n fullscreenElem: document[FS_ELEMENT]\n }\n };\n });\n } else {\n this.forceUpdate();\n }\n\n this.focusCurrentView();\n }, 0);\n };\n\n this._forceCloseFloatingToolbar = () => {\n if (this._elementRef.current) {\n const moreButton = this._elementRef.current.querySelector('.tox-toolbar-overlord .tox-toolbar__group:last-child button:last-child');\n\n if (moreButton !== null && moreButton !== void 0 && moreButton.getAttribute('aria-owns')) {\n // the floating toolbar is open\n moreButton.click(); // close the floating toolbar\n\n const editor = this.mceInstance(); // return focus to the editor\n\n editor === null || editor === void 0 ? void 0 : editor.focus();\n }\n }\n };\n\n this.announcing = 0;\n\n this.initAutoSave = editor => {\n this.storage = window.localStorage;\n\n if (this.storage) {\n editor.on('change Undo Redo', this.doAutoSave);\n editor.on('blur', this.doAutoSave);\n this.cleanupAutoSave();\n\n try {\n const autosaved = this.getAutoSaved(this.autoSaveKey);\n\n if (autosaved && autosaved.content) {\n // We'll compare just the text of the autosave content, since\n // Canvas is prone to swizzling images and iframes which will\n // make the editor content and autosave content never match up\n const editorContent = this.patchAutosavedContent(editor.getContent({\n no_events: true\n }), true);\n const autosavedContent = this.patchAutosavedContent(autosaved.content, true);\n\n if (autosavedContent !== editorContent) {\n this.setState({\n confirmAutoSave: true,\n autoSavedContent: this.patchAutosavedContent(autosaved.content)\n });\n } else {\n this.storage.removeItem(this.autoSaveKey);\n }\n }\n } catch (ex) {\n // log and ignore\n // eslint-disable-next-line no-console\n console.error('Failed initializing rce autosave', ex);\n }\n }\n };\n\n this.cleanupAutoSave = function () {\n let deleteAll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (_this.storage) {\n const expiry = deleteAll ? Date.now() : Date.now() - _this.props.autosave.maxAge;\n let i = 0;\n let key;\n\n while (key = _this.storage.key(i++)) {\n if (/^rceautosave:/.test(key)) {\n const autosaved = _this.getAutoSaved(key);\n\n if (autosaved && autosaved.autosaveTimestamp < expiry) {\n _this.storage.removeItem(key);\n }\n }\n }\n }\n };\n\n this.restoreAutoSave = ans => {\n this.setState({\n confirmAutoSave: false\n }, () => {\n const editor = this.mceInstance();\n\n if (ans) {\n editor.setContent(this.state.autoSavedContent, {});\n }\n\n this.storage.removeItem(this.autoSaveKey);\n });\n this.checkAccessibility();\n };\n\n this.doAutoSave = function (e) {\n let retry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (_this.storage) {\n const editor = _this.mceInstance(); // if the editor is empty don't save\n\n\n if (editor.dom.isEmpty(editor.getBody())) {\n return;\n }\n\n const content = editor.getContent({\n no_events: true\n });\n\n try {\n _this.storage.setItem(_this.autoSaveKey, JSON.stringify({\n autosaveTimestamp: Date.now(),\n content\n }));\n } catch (ex) {\n if (!retry) {\n // probably failed because there's not enough space\n // delete up all the other entries and try again\n _this.cleanupAutoSave(true);\n\n _this.doAutoSave(e, true);\n } else {\n console.error('Autosave failed:', ex); // eslint-disable-line no-console\n }\n }\n }\n };\n\n this.onWordCountUpdate = e => {\n this.setState(state => {\n if (e.wordCount.words !== state.wordCount) {\n return {\n wordCount: e.wordCount.words\n };\n } else return null;\n });\n };\n\n this.onNodeChange = e => {\n // This is basically copied out of the tinymce silver theme code for the status bar\n const path = e.parents.filter(p => p.nodeName !== 'BR' && !p.getAttribute('data-mce-bogus') && p.getAttribute('data-mce-type') !== 'bookmark').map(p => p.nodeName.toLowerCase()).reverse();\n this.setState({\n path\n });\n };\n\n this.onEditorChange = (content, _editor) => {\n var _this$props$onContent, _this$props2;\n\n (_this$props$onContent = (_this$props2 = this.props).onContentChange) === null || _this$props$onContent === void 0 ? void 0 : _this$props$onContent.call(_this$props2, content);\n };\n\n this.onResize = (_e, coordinates) => {\n const editor = this.mceInstance();\n\n if (editor) {\n const container = editor.getContainer();\n if (!container) return;\n const currentContainerHeight = Number.parseInt(container.style.height, 10);\n if (isNaN(currentContainerHeight)) return; // eslint-disable-line no-restricted-globals\n\n const modifiedHeight = currentContainerHeight + coordinates.deltaY;\n const newHeight = `${modifiedHeight}px`;\n container.style.height = newHeight;\n this.getTextarea().style.height = newHeight;\n this.setState({\n height: newHeight\n }); // play nice and send the same event that the silver theme would send\n\n editor.fire('ResizeEditor');\n }\n };\n\n this.onA11yChecker = () => {\n // eslint-disable-next-line promise/catch-or-return\n this.a11yCheckerReady.then(() => {\n this.onTinyMCEInstance('openAccessibilityChecker', {\n skip_focus: true\n });\n });\n };\n\n this.checkAccessibility = () => {\n const editor = this.mceInstance();\n editor.execCommand('checkAccessibility', false, {\n done: errors => {\n this.setState({\n a11yErrorsCount: errors.length\n });\n }\n }, {\n skip_focus: true\n });\n };\n\n this.openKBShortcutModal = () => {\n this.setState({\n KBShortcutModalOpen: true,\n KBShortcutFocusReturn: document.activeElement\n });\n };\n\n this.closeKBShortcutModal = () => {\n this.setState({\n KBShortcutModalOpen: false\n });\n };\n\n this.KBShortcutModalExited = () => {\n if (this.state.KBShortcutFocusReturn === this.iframe) {\n // if the iframe has focus, we need to forward it on to tinymce\n this.editor.focus(false);\n } else if (this._showOnFocusButton && document.activeElement === document.body) {\n // when the modal is opened from the showOnFocus button, focus doesn't\n // get automatically returned to the button like it should.\n this._showOnFocusButton.focus();\n } else {\n var _this$_showOnFocusBut;\n\n (_this$_showOnFocusBut = this._showOnFocusButton) === null || _this$_showOnFocusBut === void 0 ? void 0 : _this$_showOnFocusBut.focus();\n }\n };\n\n this.setFocusAbilityForHeader = focusable => {\n // Sets aria-hidden to prevent screen readers focus in RCE menus and toolbar\n const header = this._elementRef.current.querySelector('.tox-editor-header');\n\n if (header) {\n header.setAttribute('aria-hidden', focusable ? 'false' : 'true');\n }\n };\n\n this.handleTextareaChange = () => {\n if (this.isHidden()) {\n this.setCode(this.textareaValue());\n this.doAutoSave();\n }\n };\n\n this.addAlert = alert => {\n alert.id = alertIdValue++;\n this.setState(state => {\n let messages = state.messages.concat(alert);\n messages = lodash__WEBPACK_IMPORTED_MODULE_4___default.a.uniqBy(messages, 'text'); // Don't show the same message twice\n\n return {\n messages\n };\n });\n };\n\n this.removeAlert = messageId => {\n this.setState(state => {\n const messages = state.messages.filter(message => message.id !== messageId);\n return {\n messages\n };\n });\n };\n\n this.resetAlertId = () => {\n if (this.state.messages.length > 0) {\n throw new Error('There are messages currently, you cannot reset when they are non-zero');\n }\n\n alertIdValue = 0;\n };\n\n // Set up some limited global state that can be referenced\n // as needed in RCE's components and function / plugin definitions\n // Not intended to be dynamically changed!\n _RCEGlobals__WEBPACK_IMPORTED_MODULE_19__[\"default\"].setFeatures(this.getRequiredFeatureStatuses());\n _RCEGlobals__WEBPACK_IMPORTED_MODULE_19__[\"default\"].setConfig(this.getRequiredConfigValues());\n this.editor = null; // my tinymce editor instance\n\n this.language = Object(_normalizeLocale__WEBPACK_IMPORTED_MODULE_16__[\"default\"])(this.props.language); // interface consistent with editorBox\n\n this.get_code = this.getCode;\n this.set_code = this.setCode;\n this.insert_code = this.insertCode; // test override points\n\n this.indicator = false;\n this._elementRef = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createRef();\n this._editorPlaceholderRef = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createRef();\n this._prettyHtmlEditorRef = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createRef();\n this._showOnFocusButton = null;\n injectTinySkin();\n let ht = ((_props$editorOptions = props.editorOptions) === null || _props$editorOptions === void 0 ? void 0 : _props$editorOptions.height) || DEFAULT_RCE_HEIGHT;\n\n if (!Number.isNaN(ht)) {\n ht = `${ht}px`;\n }\n\n const currentRCECount = document.querySelectorAll('.rce-wrapper').length;\n const maxInitRenderedRCEs = Number.isNaN(props.maxInitRenderedRCEs) ? RCEWrapper.defaultProps.maxInitRenderedRCEs : props.maxInitRenderedRCEs;\n this.state = {\n path: [],\n wordCount: 0,\n editorView: props.editorView || _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"WYSIWYG_VIEW\"],\n shouldShowOnFocusButton: props.renderKBShortcutModal === undefined ? true : props.renderKBShortcutModal,\n KBShortcutModalOpen: false,\n messages: [],\n announcement: null,\n confirmAutoSave: false,\n autoSavedContent: '',\n id: this.props.id || this.props.textareaId || `${Date.now()}`,\n height: ht,\n fullscreenState: {\n headerDisp: 'static',\n isTinyFullscreen: false\n },\n a11yErrorsCount: 0,\n shouldShowEditor: typeof IntersectionObserver === 'undefined' || maxInitRenderedRCEs <= 0 || currentRCECount < maxInitRenderedRCEs\n };\n this.pendingEventHandlers = []; // Get top 2 favorited LTI Tools\n\n this.ltiToolFavorites = this.props.ltiTools.filter(e => e.favorite).map(e => `instructure_external_button_${e.id}`).slice(0, 2) || [];\n this.tinymceInitOptions = this.wrapOptions(props.editorOptions);\n _alertHandler__WEBPACK_IMPORTED_MODULE_31__[\"default\"].alertFunc = this.addAlert;\n this.handleContentTrayClosing = this.handleContentTrayClosing.bind(this);\n this.a11yCheckerReady = Promise.all(/*! import() */[__webpack_require__.e(4), __webpack_require__.e(5), __webpack_require__.e(8), __webpack_require__.e(38)]).then(__webpack_require__.bind(null, /*! ./initA11yChecker */ \"./src/rce/initA11yChecker.js\")).then(initA11yChecker => {\n initA11yChecker.default(this.language);\n this.checkAccessibility();\n }).catch(err => {\n // eslint-disable-next-line no-console\n console.error('Failed initializing a11y checker', err);\n });\n }\n\n getRequiredFeatureStatuses() {\n const {\n new_equation_editor = false,\n new_math_equation_handling = false,\n rce_ux_improvements = false\n } = this.props.features;\n return {\n new_equation_editor,\n new_math_equation_handling,\n rce_ux_improvements\n };\n }\n\n getRequiredConfigValues() {\n return {\n locale: Object(_normalizeLocale__WEBPACK_IMPORTED_MODULE_16__[\"default\"])(this.props.language),\n flashAlertTimeout: this.props.flashAlertTimeout,\n timezone: this.props.timezone\n };\n }\n\n getCanvasUrl() {\n if (!this.canvasUrl) this.canvasUrl = Object(_getCanvasUrl__WEBPACK_IMPORTED_MODULE_18__[\"getCanvasUrl\"])(this.props.trayProps);\n return this.canvasUrl.then(url => {\n if (!url) {\n console.warn('Could not determine Canvas base URL.', 'Content will be referenced by relative URL.');\n }\n\n return url;\n });\n } // getCode and setCode naming comes from tinyMCE\n // kind of strange but want to be consistent\n\n\n getCode() {\n return this.isHidden() ? this.textareaValue() : this.mceInstance().getContent();\n }\n\n checkReadyToGetCode(promptFunc) {\n let status = true; // Check for remaining placeholders\n\n if (this.mceInstance().dom.doc.querySelector(`[data-placeholder-for]`)) {\n status = promptFunc(Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Content is still being uploaded, if you continue it will not be embedded properly.'));\n }\n\n return status;\n }\n\n setCode(newContent) {\n var _this$mceInstance;\n\n (_this$mceInstance = this.mceInstance()) === null || _this$mceInstance === void 0 ? void 0 : _this$mceInstance.setContent(newContent);\n } // This function is called imperatively by the page that renders the RCE.\n // It should be called when the RCE content is done being edited.\n\n\n RCEClosed() {\n // We want to clear the autosaved content, since the page was legitimately closed.\n if (this.storage) {\n this.storage.removeItem(this.autoSaveKey);\n }\n }\n\n indicateEditor(element) {\n if (document.querySelector('[role=\"dialog\"][data-mce-component]')) {\n // there is a modal open, which zeros out the vertical scroll\n // so the indicator is in the wrong place. Give it a chance to close\n window.setTimeout(() => {\n this.indicateEditor(element);\n }, 100);\n return;\n }\n\n const editor = this.mceInstance();\n\n if (this.indicator) {\n this.indicator(editor, element);\n } else if (!this.isHidden()) {\n Object(_common_indicate__WEBPACK_IMPORTED_MODULE_21__[\"default\"])(Object(_indicatorRegion__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(editor, element));\n }\n }\n\n contentInserted(element) {\n this.indicateEditor(element);\n this.checkImageLoadError(element);\n this.sizeEditorForContent(element);\n } // make a attempt at sizing the editor so that the new content fits.\n // works under the assumptions the body's box-sizing is not content-box\n // and that the content is w/in a <p> whose margin is 12px top and bottom\n // (which, in canvas, is set in app/stylesheets/components/_ic-typography.scss)\n\n\n sizeEditorForContent(elem) {\n let height;\n\n if (elem && elem.nodeType === 1) {\n height = elem.clientHeight;\n }\n\n if (height) {\n const ifr = this.iframe;\n\n if (ifr) {\n const editor_body_style = ifr.contentWindow.getComputedStyle(this.iframe.contentDocument.body);\n const editor_ht = ifr.contentDocument.body.clientHeight - parseInt(editor_body_style['padding-top'], 10) - parseInt(editor_body_style['padding-bottom'], 10);\n const para_margin_ht = 24;\n const reserve_ht = Math.ceil(height + para_margin_ht);\n\n if (reserve_ht > editor_ht) {\n this.onResize(null, {\n deltaY: reserve_ht - editor_ht\n });\n }\n }\n }\n }\n\n checkImageLoadError(element) {\n if (!element || element.tagName !== 'IMG') {\n return;\n }\n\n if (!element.complete) {\n element.onload = () => this.checkImageLoadError(element);\n\n return;\n } // checking naturalWidth in a future event loop run prevents a race\n // condition between the onload callback and naturalWidth being set.\n\n\n setTimeout(() => {\n if (element.naturalWidth === 0) {\n element.style.border = '1px solid #000';\n element.style.padding = '2px';\n }\n }, 0);\n }\n\n insertCode(code) {\n const editor = this.mceInstance();\n const element = _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"insertContent\"](editor, code);\n this.contentInserted(element);\n }\n\n insertEmbedCode(code) {\n const editor = this.mceInstance(); // don't replace selected text, but embed after\n\n editor.selection.collapse(); // tinymce treats iframes uniquely, and doesn't like adding attributes\n // once it's in the editor, and I'd rather not parse the incomming html\n // string with a regex, so let's create a temp copy, then add a title\n // attribute if one doesn't exist. This will let screenreaders announce\n // that there's some embedded content helper\n // From what I've read, \"title\" is more reliable than \"aria-label\" for\n // elements like iframes and embeds.\n\n const temp = document.createElement('div');\n temp.innerHTML = code;\n const code_elem = temp.firstElementChild;\n\n if (code_elem) {\n if (!code_elem.hasAttribute('title') && !code_elem.hasAttribute('aria-label')) {\n code_elem.setAttribute('title', Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('embedded content'));\n }\n\n code = code_elem.outerHTML;\n } // inserting an iframe in tinymce (as is often the case with\n // embedded content) causes it to wrap it in a span\n // and it's often inserted into a <p> on top of that. Find the\n // iframe and use it to flash the indicator.\n\n\n const element = _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"insertContent\"](editor, code);\n const ifr = element && element.querySelector && element.querySelector('iframe');\n\n if (ifr) {\n this.contentInserted(ifr);\n } else {\n this.contentInserted(element);\n }\n }\n\n insertImage(image) {\n var _element$nextSibling, _element$nextSibling$;\n\n const editor = this.mceInstance();\n const element = _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"insertImage\"](editor, image); // Removes TinyMCE's caret text if exists.\n\n if ((element === null || element === void 0 ? void 0 : (_element$nextSibling = element.nextSibling) === null || _element$nextSibling === void 0 ? void 0 : (_element$nextSibling$ = _element$nextSibling.data) === null || _element$nextSibling$ === void 0 ? void 0 : _element$nextSibling$.trim()) === '') {\n element.nextSibling.remove();\n }\n\n if (element && element.complete) {\n this.contentInserted(element);\n } else if (element) {\n element.onload = () => this.contentInserted(element);\n\n element.onerror = () => this.checkImageLoadError(element);\n }\n }\n\n insertImagePlaceholder(fileMetaProps) {\n let width, height;\n let align = 'middle';\n\n if (Object(_plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_28__[\"isImage\"])(fileMetaProps.contentType) && fileMetaProps.displayAs !== 'link') {\n const image = new Image();\n image.src = fileMetaProps.domObject.preview;\n width = image.width;\n height = image.height; // we constrain the <img> to max-width: 100%, so scale the size down if necessary\n\n const maxWidth = this.iframe.contentDocument.body.clientWidth;\n\n if (width > maxWidth) {\n height = Math.round(maxWidth / width * height);\n width = maxWidth;\n }\n\n width = `${width}px`;\n height = `${height}px`;\n } else if (Object(_plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_28__[\"isVideo\"])(fileMetaProps.contentType || fileMetaProps.type)) {\n width = _plugins_instructure_record_VideoOptionsTray_TrayController__WEBPACK_IMPORTED_MODULE_33__[\"VIDEO_SIZE_DEFAULT\"].width;\n height = _plugins_instructure_record_VideoOptionsTray_TrayController__WEBPACK_IMPORTED_MODULE_33__[\"VIDEO_SIZE_DEFAULT\"].height;\n align = 'bottom';\n } else if (Object(_plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_28__[\"isAudio\"])(fileMetaProps.contentType || fileMetaProps.type)) {\n width = _plugins_instructure_record_VideoOptionsTray_TrayController__WEBPACK_IMPORTED_MODULE_33__[\"AUDIO_PLAYER_SIZE\"].width;\n height = _plugins_instructure_record_VideoOptionsTray_TrayController__WEBPACK_IMPORTED_MODULE_33__[\"AUDIO_PLAYER_SIZE\"].height;\n align = 'bottom';\n } else {\n width = `${fileMetaProps.name.length}rem`;\n height = '1rem';\n } // if you're wondering, the scatter about in the svg\n // is because tinymce will strip empty elements\n\n\n const markup = `\n <span\n aria-label=\"${Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Loading')}\"\n data-placeholder-for=\"${encodeURIComponent(fileMetaProps.name)}\"\n style=\"width: ${width}; height: ${height}; vertical-align: ${align};\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 100 100\" height=\"100px\" width=\"100px\">\n <g style=\"stroke-width:.5rem;fill:none;stroke-linecap:round;\"> \n <circle class=\"c1\" cx=\"50%\" cy=\"50%\" r=\"28px\"> </circle>\n <circle class=\"c2\" cx=\"50%\" cy=\"50%\" r=\"28px\"> </circle>\n \n </g>\n \n </svg>\n </span>`;\n const editor = this.mceInstance();\n editor.undoManager.ignore(() => {\n editor.execCommand('mceInsertContent', false, markup);\n });\n }\n\n insertVideo(video) {\n const editor = this.mceInstance();\n const element = _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"insertVideo\"](editor, video);\n this.contentInserted(element);\n }\n\n insertAudio(audio) {\n const editor = this.mceInstance();\n const element = _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"insertAudio\"](editor, audio);\n this.contentInserted(element);\n }\n\n insertMathEquation(tex) {\n const editor = this.mceInstance();\n return this.getCanvasUrl().then(domain => _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"insertEquation\"](editor, tex, domain));\n }\n\n removePlaceholders(name) {\n const placeholder = this.mceInstance().dom.doc.querySelector(`[data-placeholder-for=\"${encodeURIComponent(name)}\"]`);\n\n if (placeholder) {\n const editor = this.mceInstance();\n editor.undoManager.ignore(() => {\n editor.dom.remove(placeholder);\n });\n }\n }\n\n insertLink(link) {\n const editor = this.mceInstance();\n const element = _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"insertLink\"](editor, link);\n this.contentInserted(element);\n }\n\n existingContentToLink() {\n const editor = this.mceInstance();\n return _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"existingContentToLink\"](editor);\n }\n\n existingContentToLinkIsImg() {\n const editor = this.mceInstance();\n return _contentInsertion__WEBPACK_IMPORTED_MODULE_13__[\"existingContentToLinkIsImg\"](editor);\n } // since we may defer rendering tinymce, queue up any tinymce event handlers\n\n\n tinymceOn(tinymceEventName, handler) {\n if (this.state.shouldShowEditor) {\n this.mceInstance().on(tinymceEventName, handler);\n } else {\n this.pendingEventHandlers.push({\n name: tinymceEventName,\n handler\n });\n }\n }\n\n mceInstance() {\n if (this.editor) {\n return this.editor;\n }\n\n const editors = this.props.tinymce.editors || [];\n return editors.filter(ed => ed.id === this.props.textareaId)[0];\n }\n\n onTinyMCEInstance(command) {\n const editor = this.mceInstance();\n\n if (editor) {\n if (command === 'mceRemoveEditor') {\n editor.execCommand('mceNewDocument');\n } // makes sure content can't persist past removal\n\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n editor.execCommand(command, false, ...args);\n }\n }\n\n destroy() {\n this._destroyCalled = true;\n this.unhandleTextareaChange();\n this.props.handleUnmount && this.props.handleUnmount();\n }\n\n getTextarea() {\n return document.getElementById(this.props.textareaId);\n }\n\n textareaValue() {\n return this.getTextarea().value;\n }\n\n get id() {\n return this.state.id;\n }\n\n _isFullscreen() {\n return this.state.fullscreenState.isTinyFullscreen || document[FS_ELEMENT];\n }\n\n _enterFullscreen() {\n switch (this.state.editorView) {\n case _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"PRETTY_HTML_EDITOR_VIEW\"]:\n this._prettyHtmlEditorRef.current.addEventListener('fullscreenchange', this._toggleFullscreen);\n\n this._prettyHtmlEditorRef.current.addEventListener('webkitfullscreenchange', this._toggleFullscreen); // if I don't focus first, FF complains that the element\n // is not in the active browser tab and requestFullscreen fails\n\n\n this._prettyHtmlEditorRef.current.focus();\n\n this._prettyHtmlEditorRef.current[FS_REQUEST]();\n\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"RAW_HTML_EDITOR_VIEW\"]:\n this.getTextarea().addEventListener('fullscreenchange', this._toggleFullscreen);\n this.getTextarea().addEventListener('webkitfullscreenchange', this._toggleFullscreen);\n this.getTextarea()[FS_REQUEST]();\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"WYSIWYG_VIEW\"]:\n this.mceInstance().execCommand('mceFullScreen');\n break;\n }\n }\n\n _exitFullscreen() {\n if (this.state.fullscreenState.isTinyFullscreen) {\n this.mceInstance().execCommand('mceFullScreen');\n } else if (document[FS_ELEMENT]) {\n document[FS_ELEMENT][FS_EXIT]();\n }\n }\n\n focus() {\n this.onTinyMCEInstance('mceFocus'); // tinymce doesn't always call the focus handler.\n\n this.handleFocusEditor(new Event('focus', {\n target: this.mceInstance()\n }));\n }\n\n focusCurrentView() {\n switch (this.state.editorView) {\n case _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"WYSIWYG_VIEW\"]:\n this.mceInstance().focus();\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"PRETTY_HTML_EDITOR_VIEW\"]:\n {\n const cmta = this._elementRef.current.querySelector('.CodeMirror textarea');\n\n if (cmta) {\n cmta.focus();\n } else {\n window.setTimeout(() => {\n var _this$_elementRef$cur2;\n\n (_this$_elementRef$cur2 = this._elementRef.current.querySelector('.CodeMirror textarea')) === null || _this$_elementRef$cur2 === void 0 ? void 0 : _this$_elementRef$cur2.focus();\n }, 200);\n }\n }\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"RAW_HTML_EDITOR_VIEW\"]:\n this.getTextarea().focus();\n break;\n }\n }\n\n is_dirty() {\n var _this$mceInstance2;\n\n if (this.mceInstance().isDirty()) {\n return true;\n }\n\n const content = this.isHidden() ? this.textareaValue() : (_this$mceInstance2 = this.mceInstance()) === null || _this$mceInstance2 === void 0 ? void 0 : _this$mceInstance2.getContent();\n return content !== this.cleanInitialContent();\n }\n\n cleanInitialContent() {\n if (!this._cleanInitialContent) {\n const el = window.document.createElement('div');\n el.innerHTML = this.props.defaultContent;\n const serializer = this.mceInstance().serializer;\n this._cleanInitialContent = serializer.serialize(el, {\n getInner: true\n });\n }\n\n return this._cleanInitialContent;\n }\n\n isHtmlView() {\n return this.state.editorView !== _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"WYSIWYG_VIEW\"];\n }\n\n isHidden() {\n return this.mceInstance().isHidden();\n }\n\n get iframe() {\n return document.getElementById(`${this.props.textareaId}_ifr`);\n } // these focus and blur event handlers work together so that RCEWrapper\n // can report focus and blur events from the RCE at-large\n\n\n get focused() {\n return this === _bridge__WEBPACK_IMPORTED_MODULE_22__[\"default\"].getEditor();\n }\n\n handleFocus(_event) {\n if (!this.focused) {\n _bridge__WEBPACK_IMPORTED_MODULE_22__[\"default\"].focusEditor(this);\n this.props.onFocus && this.props.onFocus(this);\n }\n }\n\n handleContentTrayClosing(isClosing) {\n this.contentTrayClosing = isClosing;\n }\n\n handleBlur(event) {\n if (this.blurTimer) return;\n\n if (this.focused) {\n // because the old active element fires blur before the next element gets focus\n // we often need a moment to see if focus comes back\n event && event.persist && event.persist();\n this.blurTimer = window.setTimeout(() => {\n var _this$_elementRef$cur3, _event$focusedEditor, _event$relatedTarget, _event$relatedTarget$;\n\n this.blurTimer = 0;\n\n if (this.contentTrayClosing) {\n // the CanvasContentTray is in the process of closing\n // wait until it finishes\n return;\n }\n\n if ((_this$_elementRef$cur3 = this._elementRef.current) !== null && _this$_elementRef$cur3 !== void 0 && _this$_elementRef$cur3.contains(document.activeElement)) {\n // focus is still somewhere w/in me\n return;\n }\n\n const activeClass = document.activeElement && document.activeElement.getAttribute('class');\n\n if ((event.focusedEditor === undefined || event.target.id === ((_event$focusedEditor = event.focusedEditor) === null || _event$focusedEditor === void 0 ? void 0 : _event$focusedEditor.id)) && activeClass !== null && activeClass !== void 0 && _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default()(activeClass).call(activeClass, 'tox-')) {\n // if a toolbar button has focus, then the user clicks on the \"more\" button\n // focus jumps to the body, then eventually to the popped up toolbar. This\n // catches that case.\n return;\n }\n\n if (event !== null && event !== void 0 && (_event$relatedTarget = event.relatedTarget) !== null && _event$relatedTarget !== void 0 && (_event$relatedTarget$ = _event$relatedTarget.getAttribute('class')) !== null && _event$relatedTarget$ !== void 0 && _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default()(_event$relatedTarget$).call(_event$relatedTarget$, 'tox-')) {\n // a tinymce popup has focus\n return;\n }\n\n const popups = document.querySelectorAll('[data-mce-component]');\n\n for (const popup of popups) {\n if (popup.contains(document.activeElement)) {\n // one of our popups has focus\n return;\n }\n }\n\n _bridge__WEBPACK_IMPORTED_MODULE_22__[\"default\"].blurEditor(this);\n this.props.onBlur && this.props.onBlur(event);\n }, ASYNC_FOCUS_TIMEOUT);\n }\n }\n\n call(methodName) {\n // since exists? has a ? and cant be a regular function just return true\n // rather than calling as a fn on the editor\n if (methodName === 'exists?') {\n return true;\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return this[methodName](...args);\n }\n\n announceContextToolbars(editor) {\n editor.on('NodeChange', () => {\n const node = editor.selection.getNode();\n\n if (Object(_plugins_shared_ContentSelection__WEBPACK_IMPORTED_MODULE_32__[\"isImageEmbed\"])(node, editor)) {\n if (this.announcing !== 1) {\n this.setState({\n announcement: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('type Control F9 to access image options. {text}', {\n text: node.getAttribute('alt')\n })\n });\n this.announcing = 1;\n }\n } else if (Object(_plugins_shared_ContentSelection__WEBPACK_IMPORTED_MODULE_32__[\"isFileLink\"])(node, editor)) {\n if (this.announcing !== 2) {\n this.setState({\n announcement: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('type Control F9 to access link options. {text}', {\n text: node.textContent\n })\n });\n this.announcing = 2;\n }\n } else if (isElementWithinTable(node, editor)) {\n if (this.announcing !== 3) {\n this.setState({\n announcement: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('type Control F9 to access table options. {text}', {\n text: node.textContent\n })\n });\n this.announcing = 3;\n }\n } else {\n this.setState({\n announcement: null\n });\n this.announcing = 0;\n }\n });\n }\n /* ********** autosave support *************** */\n\n\n // if a placeholder image shows up in autosaved content, we have to remove it\n // because the data url gets converted to a blob, which is not valid when restored.\n // besides, the placeholder is intended to be temporary while the file\n // is being uploaded\n patchAutosavedContent(content, asText) {\n const temp = document.createElement('div');\n temp.innerHTML = content;\n temp.querySelectorAll('[data-placeholder-for]').forEach(placeholder => {\n placeholder.parentElement.removeChild(placeholder);\n });\n if (asText) return temp.textContent;\n return temp.innerHTML;\n }\n\n getAutoSaved(key) {\n let autosaved = null;\n\n try {\n autosaved = this.storage && JSON.parse(this.storage.getItem(key));\n } catch (_ex) {\n this.storage.removeItem(this.autoSaveKey);\n }\n\n return autosaved;\n } // only autosave if the feature flag is set, and there is only 1 RCE on the page\n // the latter condition is necessary because the popup RestoreAutoSaveModal\n // is lousey UX when there are >1\n\n\n get isAutoSaving() {\n // If the editor is invisible for some reason, don't show the autosave modal\n // This doesn't apply if the editor is off-screen or has visibility:hidden;\n // only if it isn't rendered or has display:none;\n const editorVisible = this.editor.getContainer().offsetParent;\n return this.props.autosave.enabled && editorVisible && document.querySelectorAll('.rce-wrapper').length === 1 && storageAvailable();\n }\n\n get autoSaveKey() {\n var _this$props$trayProps;\n\n const userId = (_this$props$trayProps = this.props.trayProps) === null || _this$props$trayProps === void 0 ? void 0 : _this$props$trayProps.containingContext.userId;\n return `rceautosave:${userId}${window.location.href}:${this.props.textareaId}`;\n }\n\n componentWillUnmount() {\n if (this.state.shouldShowEditor) {\n var _this$mutationObserve, _this$intersectionObs;\n\n window.clearTimeout(this.blurTimer);\n\n if (!this._destroyCalled) {\n this.destroy();\n }\n\n this._elementRef.current.removeEventListener('keydown', this.handleKey, true);\n\n (_this$mutationObserve = this.mutationObserver) === null || _this$mutationObserve === void 0 ? void 0 : _this$mutationObserve.disconnect();\n (_this$intersectionObs = this.intersectionObserver) === null || _this$intersectionObs === void 0 ? void 0 : _this$intersectionObs.disconnect();\n }\n }\n\n wrapOptions() {\n var _this$props$trayProps2, _this$props$trayProps3, _this$props$trayProps4;\n\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const rcsExists = !!((_this$props$trayProps2 = this.props.trayProps) !== null && _this$props$trayProps2 !== void 0 && _this$props$trayProps2.host && (_this$props$trayProps3 = this.props.trayProps) !== null && _this$props$trayProps3 !== void 0 && _this$props$trayProps3.jwt);\n const setupCallback = options.setup;\n const canvasPlugins = rcsExists ? ['instructure_links', 'instructure_image', 'instructure_documents', 'instructure_equation', 'instructure_external_tools'] : ['instructure_links'];\n\n if (rcsExists && !this.props.instRecordDisabled) {\n canvasPlugins.splice(2, 0, 'instructure_record');\n }\n\n if (rcsExists && this.props.use_rce_icon_maker && ((_this$props$trayProps4 = this.props.trayProps) === null || _this$props$trayProps4 === void 0 ? void 0 : _this$props$trayProps4.contextType) === 'course') {\n canvasPlugins.push('instructure_icon_maker');\n }\n\n const possibleNewMenubarItems = this.props.editorOptions.menu ? Object.keys(this.props.editorOptions.menu).join(' ') : undefined;\n const wrappedOpts = { ..._defaultTinymceConfig__WEBPACK_IMPORTED_MODULE_20__[\"default\"],\n ...options,\n readonly: this.props.readOnly,\n theme: 'silver',\n // some older code specified 'modern', which doesn't exist any more\n height: options.height || DEFAULT_RCE_HEIGHT,\n language: _editorLanguage__WEBPACK_IMPORTED_MODULE_15___default()(this.language),\n block_formats: options.block_formats || [`${Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Heading 2')}=h2`, `${Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Heading 3')}=h3`, `${Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Heading 4')}=h4`, `${Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Preformatted')}=pre`, `${Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Paragraph')}=p`].join('; '),\n setup: editor => {\n var _bridge$trayProps;\n\n addKebabIcon(editor);\n editorWrappers.set(editor, this);\n const trayPropsWithColor = {\n brandColor: this.theme.canvasBrandColor,\n ...this.props.trayProps\n };\n (_bridge$trayProps = _bridge__WEBPACK_IMPORTED_MODULE_22__[\"default\"].trayProps) === null || _bridge$trayProps === void 0 ? void 0 : _bridge$trayProps.set(editor, trayPropsWithColor);\n _bridge__WEBPACK_IMPORTED_MODULE_22__[\"default\"].languages = this.props.languages;\n\n if (typeof setupCallback === 'function') {\n setupCallback(editor);\n }\n },\n // Consumers can, and should!, still pass a content_css prop so that the content\n // in the editor matches the styles of the app it will be displayed in when saved.\n // This is just so we inject the helper class names that tinyMCE uses for\n // things like table resizing and stuff.\n content_css: options.content_css || [],\n content_style: contentCSS,\n menubar: mergeMenuItems('edit view insert format tools table', possibleNewMenubarItems),\n // default menu options listed at https://www.tiny.cloud/docs/configure/editor-appearance/#menu\n // tinymce's default edit and table menus are fine\n // we include all the canvas specific items in the menu and toolbar\n // and rely on tinymce only showing them if the plugin is provided.\n menu: mergeMenu({\n format: {\n title: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Format'),\n items: 'bold italic underline strikethrough superscript subscript codeformat | formats blockformats fontformats fontsizes align directionality | forecolor backcolor | removeformat'\n },\n insert: {\n title: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Insert'),\n items: 'instructure_links instructure_image instructure_media instructure_document instructure_icon_maker | instructure_equation inserttable instructure_media_embed | hr'\n },\n tools: {\n title: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Tools'),\n items: 'wordcount lti_tools_menuitem'\n },\n view: {\n title: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('View'),\n items: 'fullscreen instructure_html_view'\n }\n }, options.menu),\n toolbar: mergeToolbar([{\n name: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Styles'),\n items: ['fontsizeselect', 'formatselect']\n }, {\n name: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Formatting'),\n items: ['bold', 'italic', 'underline', 'forecolor', 'backcolor', 'inst_subscript', 'inst_superscript']\n }, {\n name: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Content'),\n items: ['instructure_links', 'instructure_image', 'instructure_record', 'instructure_documents', 'instructure_icon_maker']\n }, {\n name: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('External Tools'),\n items: [...this.ltiToolFavorites, 'lti_tool_dropdown', 'lti_mru_button']\n }, {\n name: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Alignment and Lists'),\n items: ['align', 'bullist', 'inst_indent', 'inst_outdent']\n }, {\n name: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('Miscellaneous'),\n items: ['removeformat', 'table', 'instructure_equation', 'instructure_media_embed']\n }], options.toolbar),\n contextmenu: '',\n // show the browser's native context menu\n toolbar_mode: 'floating',\n toolbar_sticky: true,\n plugins: mergePlugins(['autolink', 'media', 'paste', 'table', 'link', 'directionality', 'lists', 'textpattern', 'hr', 'fullscreen', 'instructure-ui-icons', 'instructure_condensed_buttons', 'instructure_links', 'instructure_html_view', 'instructure_media_embed', 'instructure_external_tools', 'a11y_checker', 'wordcount', ...canvasPlugins], Object(_sanitizePlugins__WEBPACK_IMPORTED_MODULE_17__[\"sanitizePlugins\"])(options.plugins)),\n textpattern_patterns: [{\n start: '* ',\n cmd: 'InsertUnorderedList'\n }, {\n start: '- ',\n cmd: 'InsertUnorderedList'\n }]\n };\n\n if (this.props.trayProps) {\n wrappedOpts.canvas_rce_user_context = {\n type: this.props.trayProps.contextType,\n id: this.props.trayProps.contextId\n };\n wrappedOpts.canvas_rce_containing_context = {\n type: this.props.trayProps.containingContext.contextType,\n id: this.props.trayProps.containingContext.contextId\n };\n }\n\n return wrappedOpts;\n }\n\n unhandleTextareaChange() {\n if (this._textareaEl) {\n this._textareaEl.removeEventListener('input', this.handleTextareaChange);\n }\n }\n\n registerTextareaChange() {\n const el = this.getTextarea();\n\n if (this._textareaEl !== el) {\n this.unhandleTextareaChange();\n\n if (el) {\n el.addEventListener('input', this.handleTextareaChange);\n\n if (this.props.textareaClassName) {\n // split the string on whitespace because classList doesn't let you add multiple\n // space seperated classes at a time but does let you add an array of them\n el.classList.add(...this.props.textareaClassName.split(/\\s+/));\n }\n\n this._textareaEl = el;\n }\n }\n }\n\n componentDidMount() {\n if (this.state.shouldShowEditor) {\n this.editorReallyDidMount();\n } else {\n this.intersectionObserver = new IntersectionObserver(entries => {\n const entry = entries[0];\n\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n this.setState({\n shouldShowEditor: true\n });\n }\n }, // initialize the RCE when it gets close to entering the viewport\n {\n root: null,\n rootMargin: '200px 0px',\n threshold: 0.0\n });\n this.intersectionObserver.observe(this._editorPlaceholderRef.current);\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (this.state.shouldShowEditor) {\n if (!prevState.shouldShowEditor) {\n var _this$intersectionObs2;\n\n this.editorReallyDidMount();\n (_this$intersectionObs2 = this.intersectionObserver) === null || _this$intersectionObs2 === void 0 ? void 0 : _this$intersectionObs2.disconnect();\n } else {\n this.registerTextareaChange();\n\n if (prevState.editorView !== this.state.editorView) {\n this.setEditorView(this.state.editorView);\n this.focusCurrentView();\n }\n\n if (prevProps.readOnly !== this.props.readOnly) {\n this.mceInstance().mode.set(this.props.readOnly ? 'readonly' : 'design');\n }\n }\n }\n }\n\n editorReallyDidMount() {\n const myTiny = this.mceInstance();\n this.pendingEventHandlers.forEach(e => {\n myTiny.on(e.name, e.handler);\n });\n this.registerTextareaChange();\n\n this._elementRef.current.addEventListener('keydown', this.handleKey, true); // give the textarea its initial size\n\n\n this.onResize(null, {\n deltaY: 0\n }); // Preload the LTI Tools modal\n // This helps with loading the favorited external tools\n\n if (this.ltiToolFavorites.length > 0) {\n __webpack_require__.e(/*! import() */ 11).then(__webpack_require__.bind(null, /*! ./plugins/instructure_external_tools/components/LtiToolsModal */ \"./src/rce/plugins/instructure_external_tools/components/LtiToolsModal/index.js\"));\n } // .tox-tinymce-aux is where tinymce puts the floating toolbar when\n // the user clicks the More... button\n // Tinymce doesn't fire onFocus when the user clicks More... from somewhere\n // outside, so we'll handle that here by watching for the floating toolbar\n // to come and go.\n\n\n const portals = document.querySelectorAll('.tox-tinymce-aux'); // my portal will be the last one in the doc because tinyumce appends them\n\n const tinymce_floating_toolbar_portal = portals[portals.length - 1];\n\n if (tinymce_floating_toolbar_portal) {\n this.mutationObserver = new MutationObserver((mutationList, _observer) => {\n mutationList.forEach(mutation => {\n if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {\n this.handleFocusEditor(new Event('focus', {\n target: mutation.target\n }));\n }\n });\n });\n this.mutationObserver.observe(tinymce_floating_toolbar_portal, {\n childList: true\n });\n }\n\n _bridge__WEBPACK_IMPORTED_MODULE_22__[\"default\"].renderEditor(this);\n }\n\n setEditorView(view) {\n var _this$getTextarea$lab, _this$getTextarea$lab2, _this$getTextarea$lab3, _this$getTextarea$lab4, _this$_elementRef$cur4, _this$getTextarea$lab5, _this$getTextarea$lab6;\n\n switch (view) {\n case _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"RAW_HTML_EDITOR_VIEW\"]:\n this.getTextarea().removeAttribute('aria-hidden');\n (_this$getTextarea$lab = this.getTextarea().labels) === null || _this$getTextarea$lab === void 0 ? void 0 : (_this$getTextarea$lab2 = _this$getTextarea$lab[0]) === null || _this$getTextarea$lab2 === void 0 ? void 0 : _this$getTextarea$lab2.removeAttribute('aria-hidden');\n this.mceInstance().hide();\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"PRETTY_HTML_EDITOR_VIEW\"]:\n this.getTextarea().setAttribute('aria-hidden', true);\n (_this$getTextarea$lab3 = this.getTextarea().labels) === null || _this$getTextarea$lab3 === void 0 ? void 0 : (_this$getTextarea$lab4 = _this$getTextarea$lab3[0]) === null || _this$getTextarea$lab4 === void 0 ? void 0 : _this$getTextarea$lab4.setAttribute('aria-hidden', true);\n this.mceInstance().hide();\n (_this$_elementRef$cur4 = this._elementRef.current.querySelector('.CodeMirror')) === null || _this$_elementRef$cur4 === void 0 ? void 0 : _this$_elementRef$cur4.CodeMirror.setCursor(0, 0);\n break;\n\n case _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"WYSIWYG_VIEW\"]:\n this.setCode(this.textareaValue());\n this.getTextarea().setAttribute('aria-hidden', true);\n (_this$getTextarea$lab5 = this.getTextarea().labels) === null || _this$getTextarea$lab5 === void 0 ? void 0 : (_this$getTextarea$lab6 = _this$getTextarea$lab5[0]) === null || _this$getTextarea$lab6 === void 0 ? void 0 : _this$getTextarea$lab6.setAttribute('aria-hidden', true);\n this.mceInstance().show();\n }\n }\n\n renderHtmlEditor() {\n // the div keeps the editor from collapsing while the code editor is downloaded\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_2__[\"Suspense\"], {\n fallback: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n style: {\n height: this.state.height,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_instructure_ui_spinner__WEBPACK_IMPORTED_MODULE_8__[\"Spinner\"], {\n renderTitle: renderLoading,\n size: \"medium\"\n }))\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_9__[\"View\"], {\n as: \"div\",\n borderRadius: \"medium\",\n borderWidth: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(RceHtmlEditor, {\n ref: this._prettyHtmlEditorRef,\n height: document[FS_ELEMENT] ? `${window.screen.height}px` : this.state.height,\n code: this.getCode(),\n onChange: value => {\n this.getTextarea().value = value;\n this.handleTextareaChange();\n },\n onFocus: this.handleFocusHtmlEditor\n })));\n }\n\n render() {\n const {\n trayProps,\n ...mceProps\n } = this.props;\n\n if (!this.state.shouldShowEditor) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n ref: this._editorPlaceholderRef,\n style: {\n height: `${this.props.editorOptions.height}px`,\n border: '1px solid grey'\n }\n });\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n key: this.id,\n className: `${styles.root} rce-wrapper`,\n ref: this._elementRef,\n onFocus: this.handleFocusRCE,\n onBlur: this.handleBlurRCE\n }, this.state.shouldShowOnFocusButton && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_ShowOnFocusButton__WEBPACK_IMPORTED_MODULE_26__[\"default\"], {\n onClick: this.openKBShortcutModal,\n margin: \"xx-small\",\n screenReaderLabel: Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])('View keyboard shortcuts'),\n ref: el => this._showOnFocusButton = el\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_instructure_ui_icons__WEBPACK_IMPORTED_MODULE_6__[\"IconKeyboardShortcutsLine\"], null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_AlertMessageArea__WEBPACK_IMPORTED_MODULE_30__[\"default\"], {\n messages: this.state.messages,\n liveRegion: this.props.liveRegion,\n afterDismiss: this.removeAlert\n }), this.state.editorView === _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"PRETTY_HTML_EDITOR_VIEW\"] && this.renderHtmlEditor(), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n style: {\n display: this.state.editorView === _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"PRETTY_HTML_EDITOR_VIEW\"] ? 'none' : 'block'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_tinymce_tinymce_react__WEBPACK_IMPORTED_MODULE_3__[\"Editor\"], {\n id: mceProps.textareaId,\n textareaName: mceProps.name,\n init: this.tinymceInitOptions,\n initialValue: mceProps.defaultContent,\n onInit: this.onInit,\n onClick: this.handleFocusEditor,\n onKeypress: this.handleFocusEditor,\n onActivate: this.handleFocusEditor,\n onRemove: this.onRemove,\n onFocus: this.handleFocusEditor,\n onBlur: this.handleBlurEditor,\n onNodeChange: this.onNodeChange,\n onEditorChange: this.onEditorChange\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"default\"], {\n readOnly: this.props.readOnly,\n onChangeView: newView => this.toggleView(newView),\n path: this.state.path,\n wordCount: this.state.wordCount,\n editorView: this.state.editorView,\n preferredHtmlEditor: getHtmlEditorCookie(),\n onResize: this.onResize,\n onKBShortcutModalOpen: this.openKBShortcutModal,\n onA11yChecker: this.onA11yChecker,\n onFullscreen: this.handleClickFullscreen,\n a11yBadgeColor: this.theme.canvasBadgeBackgroundColor,\n a11yErrorsCount: this.state.a11yErrorsCount\n }), this.props.trayProps && this.props.trayProps.containingContext && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_plugins_shared_CanvasContentTray__WEBPACK_IMPORTED_MODULE_23__[\"default\"], Object.assign({\n key: this.id,\n bridge: _bridge__WEBPACK_IMPORTED_MODULE_22__[\"default\"],\n editor: this,\n onTrayClosing: this.handleContentTrayClosing,\n use_rce_icon_maker: this.props.use_rce_icon_maker\n }, trayProps)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_KeyboardShortcutModal__WEBPACK_IMPORTED_MODULE_29__[\"default\"], {\n onExited: this.KBShortcutModalExited,\n onDismiss: this.closeKBShortcutModal,\n open: this.state.KBShortcutModalOpen\n }), this.state.confirmAutoSave ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_2__[\"Suspense\"], {\n fallback: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_instructure_ui_spinner__WEBPACK_IMPORTED_MODULE_8__[\"Spinner\"], {\n renderTitle: renderLoading,\n size: \"small\"\n })\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(RestoreAutoSaveModal, {\n savedContent: this.state.autoSavedContent,\n open: this.state.confirmAutoSave,\n onNo: () => this.restoreAutoSave(false),\n onYes: () => this.restoreAutoSave(true)\n })) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_instructure_ui_alerts__WEBPACK_IMPORTED_MODULE_7__[\"Alert\"], {\n screenReaderOnly: true,\n liveRegion: this.props.liveRegion\n }, this.state.announcement));\n }\n\n}, _class2.propTypes = {\n autosave: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n enabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n maxAge: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number\n }),\n defaultContent: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n editorOptions: editorOptionsPropType,\n handleUnmount: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n editorView: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([_StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"WYSIWYG_VIEW\"], _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"PRETTY_HTML_EDITOR_VIEW\"], _StatusBar__WEBPACK_IMPORTED_MODULE_24__[\"RAW_HTML_EDITOR_VIEW\"]]),\n renderKBShortcutModal: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n id: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n language: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n liveRegion: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,\n ltiTools: ltiToolsPropType,\n onContentChange: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onFocus: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onBlur: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onInitted: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRemove: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n textareaClassName: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n textareaId: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired,\n languages: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n id: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired,\n label: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired\n })),\n readOnly: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n tinymce: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object,\n trayProps: _plugins_shared_CanvasContentTray__WEBPACK_IMPORTED_MODULE_23__[\"trayPropTypes\"],\n toolbar: toolbarPropType,\n menu: menuPropType,\n plugins: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string),\n instRecordDisabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n highContrastCSS: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string),\n maxInitRenderedRCEs: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n use_rce_icon_maker: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n features: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.objectOf(prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool),\n flashAlertTimeout: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n timezone: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string\n}, _class2.defaultProps = {\n trayProps: null,\n languages: [{\n id: 'en',\n label: 'English'\n }],\n autosave: {\n enabled: false\n },\n highContrastCSS: [],\n ltiTools: [],\n maxInitRenderedRCEs: -1,\n features: {},\n timezone: (_Intl = Intl) === null || _Intl === void 0 ? void 0 : (_Intl$DateTimeFormat = _Intl.DateTimeFormat()) === null || _Intl$DateTimeFormat === void 0 ? void 0 : (_Intl$DateTimeFormat$ = _Intl$DateTimeFormat.resolvedOptions()) === null || _Intl$DateTimeFormat$ === void 0 ? void 0 : _Intl$DateTimeFormat$.timeZone\n}, _class2.skinCssInjected = false, _class2)) || _class); // standard: string of tinymce menu commands\n// e.g. 'instructure_links | inserttable instructure_media_embed | hr'\n// custom: a string of tinymce menu commands\n// returns: standard + custom with any duplicate commands removed from custom\n\nfunction mergeMenuItems(standard, custom) {\n var _custom$trim;\n\n let c = custom === null || custom === void 0 ? void 0 : (_custom$trim = custom.trim) === null || _custom$trim === void 0 ? void 0 : _custom$trim.call(custom);\n if (!c) return standard;\n const s = new Set(standard.split(/[\\s|]+/)); // remove any duplicates\n\n c = c.split(/\\s+/).filter(m => !s.has(m));\n c = c.join(' ').replace(/^\\s*\\|\\s*/, '').replace(/\\s*\\|\\s*$/, '');\n return `${standard} | ${c}`;\n} // standard: the incoming tinymce menu object\n// custom: tinymce menu object to merge into standard\n// returns: the merged result by mutating incoming standard arg.\n// It will add commands to existing menus, or add a new menu\n// if the custom one does not exist\n\n\nfunction mergeMenu(standard, custom) {\n if (!custom) return standard;\n Object.keys(custom).forEach(k => {\n const curr_m = standard[k];\n\n if (curr_m) {\n curr_m.items = mergeMenuItems(curr_m.items, custom[k].items);\n } else {\n standard[k] = { ...custom[k]\n };\n }\n });\n return standard;\n} // standard: incoming tinymce toolbar array\n// custom: tinymce toolbar array to merge into standard\n// returns: the merged result by mutating the incoming standard arg.\n// It will add commands to existing toolbars, or add a new toolbar\n// if the custom one does not exist\n\n\nfunction mergeToolbar(standard, custom) {\n if (!custom) return standard; // merge given toolbar data into the default toolbar\n\n custom.forEach(tb => {\n const curr_tb = standard.find(t => tb.name && Object(_format_message__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(tb.name) === t.name);\n\n if (curr_tb) {\n curr_tb.items.splice(curr_tb.items.length, 0, ...tb.items);\n } else {\n standard.push(tb);\n }\n });\n return standard;\n} // standard: incoming array of plugin names\n// custom: array of plugin names to merge\n// returns: the merged result, duplicates removed\n\n\nfunction mergePlugins(standard, custom) {\n if (!custom) return standard;\n const union = new Set(standard);\n\n for (const p of custom) {\n union.add(p);\n }\n\n return [...union];\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (RCEWrapper);\n\n\n//# sourceURL=webpack:///./src/rce/RCEWrapper.js?");
|
|
17391
17403
|
|
|
17392
17404
|
/***/ }),
|
|
17393
17405
|
|
|
@@ -17447,7 +17459,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
17447
17459
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
17448
17460
|
|
|
17449
17461
|
"use strict";
|
|
17450
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"insertContent\", function() { return insertContent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"insertImage\", function() { return insertImage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"insertEquation\", function() { return insertEquation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"existingContentToLink\", function() { return existingContentToLink; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"existingContentToLinkIsImg\", function() { return existingContentToLinkIsImg; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"insertLink\", function() { return insertLink; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"insertVideo\", function() { return insertVideo; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"insertAudio\", function() { return insertAudio; });\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ \"../../node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _contentRendering__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./contentRendering */ \"./src/rce/contentRendering.js\");\n/* harmony import */ var _common_scroll__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/scroll */ \"./src/common/scroll.js\");\n/* harmony import */ var _contentInsertionUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./contentInsertionUtils */ \"./src/rce/contentInsertionUtils.js\");\n/* harmony import */ var _plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./plugins/shared/fileTypeUtils */ \"./src/rce/plugins/shared/fileTypeUtils.js\");\n/*\n * Copyright (C) 2018 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n/** * generic content insertion ** */\n// when the editor is hidden, just replace the selected portion of the textarea\n// with the content. branching is for cross-browser\n\nfunction replaceTextareaSelection(editor, content) {\n const element = editor.getElement();\n\n if ('selectionStart' in element) {\n // mozilla / dom 3.0\n const before = element.value.substr(0, element.selectionStart);\n const after = element.value.substr(element.selectionEnd, element.value.length);\n element.value = before + content + after;\n } else if (document.selection) {\n // exploder\n element.focus();\n document.selection.createRange().text = content;\n } else {\n // browser not supported\n element.value += content;\n }\n}\n\nfunction insertContent(editor, content) {\n if (editor.isHidden()) {\n // replaces the textarea selection with the new image. no element returned\n // to indicate because it's raw html.\n replaceTextareaSelection(editor, content);\n return null;\n } else {\n // inserts content at the cursor. getEnd() of the selection after the\n // insertion should reference the newly created node (or first of the newly\n // created nodes if there were multiple, unfortunately), because the cursor\n // itself stays just before the new content.\n _common_scroll__WEBPACK_IMPORTED_MODULE_2__[\"default\"].scrollIntoViewWDelay(editor.iframeElement, {}); // there's a bug in tinymce where insertContent calls execCommand('mceInsertContent'),\n // but doesn't correctly forward the second \"args\" argument. Let's go right for\n // execCommand\n // editor.insertContent(content, {skip_focus: true})\n\n editor.execCommand('mceInsertContent', false, content, {\n skip_focus: true\n });\n return editor.selection.getEnd();\n }\n}\n/** * image insertion ** */\n\nfunction isElemImg(elem) {\n return elem && elem.nodeName.toLowerCase() === 'img';\n}\n\nfunction isElemAnchor(elem) {\n return elem && elem.nodeName.toLowerCase() === 'a';\n}\n/*\n check if we should preserve the parent anchor tag. the criteria is pretty\n strict based on if we have a single image selected with an anchor tag\n surrounding\n*/\n\n\nfunction shouldPreserveImgAnchor(editor) {\n const selection = editor.selection;\n const selectedRange = selection.getRng();\n return isElemImg(selection.getNode()) && isElemAnchor(selectedRange.startContainer) && selectedRange.startContainer === selectedRange.endContainer;\n}\n\nfunction insertImage(editor, image) {\n let content = '';\n\n if (shouldPreserveImgAnchor(editor)) {\n content = Object(_contentRendering__WEBPACK_IMPORTED_MODULE_1__[\"renderLinkedImage\"])(editor.selection.getRng().startContainer, image);\n } else {\n // render the image, constraining its size on insertion\n content = Object(_contentRendering__WEBPACK_IMPORTED_MODULE_1__[\"renderImage\"])({ ...image\n });\n }\n\n return insertContent(editor, content);\n}\nfunction insertEquation(editor, latex, canvasUrl) {\n const docSz = parseFloat(editor.dom.doc.defaultView.getComputedStyle(editor.dom.doc.body).getPropertyValue('font-size')) || 1;\n const sel = editor.selection.getNode();\n const imgSz = sel ? parseFloat(editor.dom.doc.defaultView.getComputedStyle(sel).getPropertyValue('font-size')) || 1 : docSz;\n const scale = imgSz / docSz;\n let url = `/equation_images/${encodeURIComponent(encodeURIComponent(latex))}?scale=${scale}`;\n\n if (canvasUrl) {\n url = canvasUrl + url;\n } // if I simply create the html string, xsslint fails jenkins\n\n\n const img = document.createElement('img');\n img.setAttribute('alt', `LaTeX: ${latex}`);\n img.setAttribute('title', latex);\n img.setAttribute('class', 'equation_image');\n img.setAttribute('data-equation-content', latex);\n img.setAttribute('src', url);\n img.setAttribute('data-ignore-a11y-check', '');\n return insertContent(editor, img.outerHTML);\n}\n/** * link insertion ** */\n// checks if there's an existing anchor containing the cursor\n\nfunction currentLink(editor, link) {\n const cursor = link.selectionDetails && link.selectionDetails.node ? link.selectionDetails.node : editor.selection.getNode(); // This doesn't work in IE 11, but will stop brokeness in other browsers\n\n return editor.dom.getParent(cursor, 'a');\n} // checks if the editor has a current selection (vs. just a cursor position)\n\n\nfunction hasSelection(editor) {\n let selection = editor.selection.getContent();\n selection = editor.dom.decode(selection);\n return !!selection && selection != '';\n}\n\nfunction existingContentToLink(editor, link) {\n return !editor.isHidden() && (link && (currentLink(editor, link) || !!link.selectedContent) || hasSelection(editor));\n} // Parses HTML string with support in old browsers because jQuery's parseHTML was added in 1.8.\n\nfunction parseHTML(htmlString) {\n const tmp = document.implementation.createHTMLDocument();\n tmp.body.innerHTML = htmlString.trim();\n return tmp.body.children;\n}\n\nfunction selectionIsImg(editor) {\n const selection = editor.selection.getContent();\n return editor.dom.$(parseHTML(selection)).is('img');\n}\n\nfunction existingContentToLinkIsImg(editor) {\n return !editor.isHidden() && selectionIsImg(editor);\n}\n\nfunction decorateLinkWithEmbed(link) {\n const type = link.embed && link.embed.type;\n link.class = classnames__WEBPACK_IMPORTED_MODULE_0___default()(link.class, {\n instructure_file_link: true,\n instructure_scribd_file: type === 'scribd' || link['data-canvas-previewable'],\n instructure_image_thumbnail: type === 'image',\n instructure_video_link: type === 'video',\n instructure_audio_link: type === 'audio',\n auto_open: link.embed && link.embed.autoOpenPreview,\n inline_disabled: link.embed && link.embed.disableInlinePreview,\n no_preview: link.embed && link.embed.noPreview\n });\n\n if (link.embed.type == 'video' || link.embed.type == 'audio') {\n link.id = `media_comment_${link.embed.id || 'maybe'}`;\n }\n}\n\nfunction insertLink(editor, link) {\n const linkAttrs = { ...link\n };\n\n if (linkAttrs.embed) {\n decorateLinkWithEmbed(linkAttrs);\n delete linkAttrs.embed;\n }\n\n return insertUndecoratedLink(editor, linkAttrs);\n}\n\nfunction textForLink(linkProps, editor, anchorElm) {\n // Some actions (like editing the link text in the link tray)\n // require an explicit update to the link text\n if (linkProps.forceRename) return linkProps.text; // Other actions (link highlighting an existing link and changing\n // the linked file) should use the anchor text if present\n\n return getAnchorText(editor.selection, anchorElm) || linkProps.text;\n} // link edit/create logic based on tinymce/plugins/link/plugin.js\n\n\nfunction insertUndecoratedLink(editor, linkProps) {\n const selectedElm = editor.selection.getNode();\n const anchorElm = Object(_contentInsertionUtils__WEBPACK_IMPORTED_MODULE_3__[\"getAnchorElement\"])(editor, selectedElm);\n const selectedContent = editor.selection.getContent();\n const selectedPlainText = editor.selection.getContent({\n format: 'text'\n });\n const onlyText = Object(_contentInsertionUtils__WEBPACK_IMPORTED_MODULE_3__[\"isOnlyTextSelected\"])(selectedContent);\n const linkText = onlyText && textForLink(linkProps, editor, anchorElm); // only keep the props we want as attributes on the <a>\n\n const linkAttrs = {\n id: linkProps.id,\n href: Object(_contentInsertionUtils__WEBPACK_IMPORTED_MODULE_3__[\"cleanUrl\"])(linkProps.href || linkProps.url),\n target: linkProps.target,\n class: linkProps.class,\n title: linkProps.title,\n 'data-canvas-previewable': linkProps['data-canvas-previewable']\n };\n\n if (linkAttrs.target === '_blank') {\n linkAttrs.rel = 'noopener noreferrer';\n }\n\n if (anchorElm && !editor.selection.isCollapsed()) {\n updateLink(editor, anchorElm, linkText, linkAttrs);\n } else if (selectedContent) {\n if (linkProps.userText && selectedPlainText !== linkText) {\n createLink(editor, selectedElm, linkText, linkAttrs);\n } else {\n createLink(editor, selectedElm, undefined, linkAttrs);\n }\n } else {\n createLink(editor, selectedElm, linkText, linkAttrs);\n }\n\n return editor.selection.getEnd(); // this will be the newly created or updated content\n}\n\nfunction getAnchorText(selection, anchorElm) {\n return anchorElm ? anchorElm.innerText : selection.getContent({\n format: 'text'\n });\n}\n\nfunction updateLink(editor, anchorElm, text, linkAttrs) {\n if (text && anchorElm.innerText !== text) {\n anchorElm.innerText = text;\n }\n\n editor.dom.setAttribs(anchorElm, linkAttrs);\n editor.selection.select(anchorElm);\n editor.undoManager.add();\n}\n\nfunction createLink(editor, selectedElm, text, linkAttrs) {\n if (Object(_contentInsertionUtils__WEBPACK_IMPORTED_MODULE_3__[\"isImageFigure\"])(selectedElm)) {\n linkImageFigure(editor, selectedElm, linkAttrs);\n } else if (text) {\n // create the whole wazoo\n insertContent(editor, editor.dom.createHTML('a', linkAttrs, editor.dom.encode(text)));\n } else {\n // create a link on the selected content\n editor.execCommand('mceInsertLink', false, linkAttrs);\n }\n}\n\nfunction linkImageFigure(editor, fig, attrs) {\n const img = fig.tagName === 'IMG' ? fig : editor.dom.select('img', fig)[0];\n\n if (img) {\n const a = editor.dom.create('a', attrs);\n img.parentNode.insertBefore(a, img);\n a.appendChild(img);\n }\n}\n/* ** video insertion ** */\n\n\nfunction insertVideo(editor, video) {\n if (editor.selection.isCollapsed()) {\n var _result;\n\n let result = insertContent(editor, Object(_contentRendering__WEBPACK_IMPORTED_MODULE_1__[\"renderVideo\"])(video)); // for some reason, editor.selection.getEnd() returned from\n // insertContent is parent paragraph when inserting the\n // video iframe. Look for the iframe with the right\n // src attribute. (Aside: tinymce strips the id or data-*\n // attributes from the iframe, that's why we can't look for those)\n\n const src = Object(_plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_4__[\"mediaPlayerURLFromFile\"])(video);\n result = result.querySelector(`iframe[src=\"${src}\"]`); // When the iframe is inserted, it doesn't allow the video to play\n // because the wrapping span captures the click events. Setting\n // contentEditable to false disables this behavior.\n\n if ((_result = result) !== null && _result !== void 0 && _result.parentElement) {\n editor.dom.setAttrib(result.parentElement, 'contenteditable', false);\n }\n\n return result;\n } else {\n return insertLink(editor, { ...video,\n href: Object(_plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_4__[\"mediaPlayerURLFromFile\"])(video)\n });\n }\n}\nfunction insertAudio(editor, audio) {\n if (editor.selection.isCollapsed()) {\n var _result2;\n\n let result = insertContent(editor, Object(_contentRendering__WEBPACK_IMPORTED_MODULE_1__[\"renderAudio\"])(audio));\n const src = Object(_plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_4__[\"mediaPlayerURLFromFile\"])(audio);\n result = result.querySelector(`iframe[src=\"${src}\"]`); // When the iframe is inserted, it doesn't allow the audio to play\n // because the wrapping span captures the click events. Setting\n // contentEditable to false disables this behavior.\n\n if ((_result2 = result) !== null && _result2 !== void 0 && _result2.parentElement) {\n editor.dom.setAttrib(result.parentElement, 'contenteditable', false);\n }\n\n return result;\n } else {\n return insertLink(editor, { ...audio,\n href: Object(_plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_4__[\"mediaPlayerURLFromFile\"])(audio)\n });\n }\n}\n\n//# sourceURL=webpack:///./src/rce/contentInsertion.js?");
|
|
17462
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"insertContent\", function() { return insertContent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"insertImage\", function() { return insertImage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"insertEquation\", function() { return insertEquation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"existingContentToLink\", function() { return existingContentToLink; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"existingContentToLinkIsImg\", function() { return existingContentToLinkIsImg; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"insertLink\", function() { return insertLink; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"insertVideo\", function() { return insertVideo; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"insertAudio\", function() { return insertAudio; });\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ \"../../node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _contentRendering__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./contentRendering */ \"./src/rce/contentRendering.js\");\n/* harmony import */ var _common_scroll__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/scroll */ \"./src/common/scroll.js\");\n/* harmony import */ var _contentInsertionUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./contentInsertionUtils */ \"./src/rce/contentInsertionUtils.js\");\n/* harmony import */ var _plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./plugins/shared/fileTypeUtils */ \"./src/rce/plugins/shared/fileTypeUtils.js\");\n/*\n * Copyright (C) 2018 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n/** * generic content insertion ** */\n// when the editor is hidden, just replace the selected portion of the textarea\n// with the content. branching is for cross-browser\n\nfunction replaceTextareaSelection(editor, content) {\n const element = editor.getElement();\n\n if ('selectionStart' in element) {\n // mozilla / dom 3.0\n const before = element.value.substr(0, element.selectionStart);\n const after = element.value.substr(element.selectionEnd, element.value.length);\n element.value = before + content + after;\n } else if (document.selection) {\n // exploder\n element.focus();\n document.selection.createRange().text = content;\n } else {\n // browser not supported\n element.value += content;\n }\n}\n\nfunction insertContent(editor, content) {\n if (editor.isHidden()) {\n // replaces the textarea selection with the new image. no element returned\n // to indicate because it's raw html.\n replaceTextareaSelection(editor, content);\n return null;\n } else {\n // inserts content at the cursor. getEnd() of the selection after the\n // insertion should reference the newly created node (or first of the newly\n // created nodes if there were multiple, unfortunately), because the cursor\n // itself stays just before the new content.\n _common_scroll__WEBPACK_IMPORTED_MODULE_2__[\"default\"].scrollIntoViewWDelay(editor.iframeElement, {}); // there's a bug in tinymce where insertContent calls execCommand('mceInsertContent'),\n // but doesn't correctly forward the second \"args\" argument. Let's go right for\n // execCommand\n // editor.insertContent(content, {skip_focus: true})\n\n editor.execCommand('mceInsertContent', false, content, {\n skip_focus: true\n });\n return editor.selection.getEnd();\n }\n}\n/** * image insertion ** */\n\nfunction isElemImg(elem) {\n return elem && elem.nodeName.toLowerCase() === 'img';\n}\n\nfunction isElemAnchor(elem) {\n return elem && elem.nodeName.toLowerCase() === 'a';\n}\n/*\n check if we should preserve the parent anchor tag. the criteria is pretty\n strict based on if we have a single image selected with an anchor tag\n surrounding\n*/\n\n\nfunction shouldPreserveImgAnchor(editor) {\n const selection = editor.selection;\n const selectedRange = selection.getRng();\n return isElemImg(selection.getNode()) && isElemAnchor(selectedRange.startContainer) && selectedRange.startContainer === selectedRange.endContainer;\n}\n\nfunction insertImage(editor, image) {\n let content = '';\n\n if (shouldPreserveImgAnchor(editor)) {\n content = Object(_contentRendering__WEBPACK_IMPORTED_MODULE_1__[\"renderLinkedImage\"])(editor.selection.getRng().startContainer, image);\n } else {\n // render the image, constraining its size on insertion\n content = Object(_contentRendering__WEBPACK_IMPORTED_MODULE_1__[\"renderImage\"])({ ...image\n });\n }\n\n return insertContent(editor, content);\n}\nfunction insertEquation(editor, latex, canvasUrl) {\n const docSz = parseFloat(editor.dom.doc.defaultView.getComputedStyle(editor.dom.doc.body).getPropertyValue('font-size')) || 1;\n const sel = editor.selection.getNode();\n const imgSz = sel ? parseFloat(editor.dom.doc.defaultView.getComputedStyle(sel).getPropertyValue('font-size')) || 1 : docSz;\n const scale = imgSz / docSz;\n let url = `/equation_images/${encodeURIComponent(encodeURIComponent(latex))}?scale=${scale}`;\n\n if (canvasUrl) {\n url = canvasUrl + url;\n } // if I simply create the html string, xsslint fails jenkins\n\n\n const img = document.createElement('img');\n img.setAttribute('alt', `LaTeX: ${latex}`);\n img.setAttribute('title', latex);\n img.setAttribute('class', 'equation_image');\n img.setAttribute('data-equation-content', latex);\n img.setAttribute('src', url);\n img.setAttribute('data-ignore-a11y-check', '');\n return insertContent(editor, img.outerHTML);\n}\n/** * link insertion ** */\n// checks if there's an existing anchor containing the cursor\n\nfunction currentLink(editor, link) {\n const cursor = link.selectionDetails && link.selectionDetails.node ? link.selectionDetails.node : editor.selection.getNode(); // This doesn't work in IE 11, but will stop brokeness in other browsers\n\n return editor.dom.getParent(cursor, 'a');\n} // checks if the editor has a current selection (vs. just a cursor position)\n\n\nfunction hasSelection(editor) {\n let selection = editor.selection.getContent();\n selection = editor.dom.decode(selection);\n return !!selection && selection != '';\n}\n\nfunction existingContentToLink(editor, link) {\n return !editor.isHidden() && (link && (currentLink(editor, link) || !!link.selectedContent) || hasSelection(editor));\n} // Parses HTML string with support in old browsers because jQuery's parseHTML was added in 1.8.\n\nfunction parseHTML(htmlString) {\n const tmp = document.implementation.createHTMLDocument();\n tmp.body.innerHTML = htmlString.trim();\n return tmp.body.children;\n}\n\nfunction selectionIsImg(editor) {\n const selection = editor.selection.getContent();\n return editor.dom.$(parseHTML(selection)).is('img');\n}\n\nfunction existingContentToLinkIsImg(editor) {\n return !editor.isHidden() && selectionIsImg(editor);\n}\n\nfunction decorateLinkWithEmbed(link) {\n const type = link.embed && link.embed.type;\n link.class = classnames__WEBPACK_IMPORTED_MODULE_0___default()(link.class, {\n instructure_file_link: true,\n instructure_scribd_file: type === 'scribd' || link['data-canvas-previewable'],\n instructure_image_thumbnail: type === 'image',\n instructure_video_link: type === 'video',\n instructure_audio_link: type === 'audio',\n auto_open: link.embed && link.embed.autoOpenPreview,\n inline_disabled: link.embed && link.embed.disableInlinePreview,\n no_preview: link.embed && link.embed.noPreview\n });\n\n if (link.embed.type == 'video' || link.embed.type == 'audio') {\n link.id = `media_comment_${link.embed.id || 'maybe'}`;\n }\n}\n\nfunction insertLink(editor, link) {\n const linkAttrs = { ...link\n };\n\n if (linkAttrs.embed) {\n decorateLinkWithEmbed(linkAttrs);\n delete linkAttrs.embed;\n }\n\n return insertUndecoratedLink(editor, linkAttrs);\n}\n\nfunction textForLink(linkProps, editor, anchorElm) {\n // Some actions (like editing the link text in the link tray)\n // require an explicit update to the link text\n if (linkProps.forceRename) return linkProps.text; // Other actions (link highlighting an existing link and changing\n // the linked file) should use the anchor text if present\n\n return getAnchorText(editor.selection, anchorElm) || linkProps.text;\n} // link edit/create logic based on tinymce/plugins/link/plugin.js\n\n\nfunction insertUndecoratedLink(editor, linkProps) {\n const selectedElm = editor.selection.getNode();\n const anchorElm = Object(_contentInsertionUtils__WEBPACK_IMPORTED_MODULE_3__[\"getAnchorElement\"])(editor, selectedElm);\n const selectedContent = editor.selection.getContent();\n const selectedPlainText = editor.selection.getContent({\n format: 'text'\n });\n const onlyText = Object(_contentInsertionUtils__WEBPACK_IMPORTED_MODULE_3__[\"isOnlyTextSelected\"])(selectedContent);\n const linkText = onlyText && textForLink(linkProps, editor, anchorElm); // only keep the props we want as attributes on the <a>\n\n const linkAttrs = {\n id: linkProps.id,\n href: Object(_contentInsertionUtils__WEBPACK_IMPORTED_MODULE_3__[\"cleanUrl\"])(linkProps.href || linkProps.url),\n target: linkProps.target,\n class: linkProps.class,\n title: linkProps.title,\n 'data-canvas-previewable': linkProps['data-canvas-previewable'],\n 'data-course-type': linkProps['data-course-type'],\n 'data-published': linkProps['data-published']\n };\n\n if (linkAttrs.target === '_blank') {\n linkAttrs.rel = 'noopener noreferrer';\n }\n\n if (anchorElm && !editor.selection.isCollapsed()) {\n updateLink(editor, anchorElm, linkText, linkAttrs);\n } else if (selectedContent) {\n if (linkProps.userText && selectedPlainText !== linkText) {\n createLink(editor, selectedElm, linkText, linkAttrs);\n } else {\n createLink(editor, selectedElm, undefined, linkAttrs);\n }\n } else {\n createLink(editor, selectedElm, linkText, linkAttrs);\n }\n\n return editor.selection.getEnd(); // this will be the newly created or updated content\n}\n\nfunction getAnchorText(selection, anchorElm) {\n return anchorElm ? anchorElm.innerText : selection.getContent({\n format: 'text'\n });\n}\n\nfunction updateLink(editor, anchorElm, text, linkAttrs) {\n if (text && anchorElm.innerText !== text) {\n anchorElm.innerText = text;\n }\n\n editor.dom.setAttribs(anchorElm, linkAttrs);\n editor.selection.select(anchorElm);\n editor.undoManager.add();\n}\n\nfunction createLink(editor, selectedElm, text, linkAttrs) {\n if (Object(_contentInsertionUtils__WEBPACK_IMPORTED_MODULE_3__[\"isImageFigure\"])(selectedElm)) {\n linkImageFigure(editor, selectedElm, linkAttrs);\n } else if (text) {\n // create the whole wazoo\n insertContent(editor, editor.dom.createHTML('a', linkAttrs, editor.dom.encode(text)));\n } else {\n // create a link on the selected content\n editor.execCommand('mceInsertLink', false, linkAttrs);\n }\n}\n\nfunction linkImageFigure(editor, fig, attrs) {\n const img = fig.tagName === 'IMG' ? fig : editor.dom.select('img', fig)[0];\n\n if (img) {\n const a = editor.dom.create('a', attrs);\n img.parentNode.insertBefore(a, img);\n a.appendChild(img);\n }\n}\n/* ** video insertion ** */\n\n\nfunction insertVideo(editor, video) {\n if (editor.selection.isCollapsed()) {\n var _result;\n\n let result = insertContent(editor, Object(_contentRendering__WEBPACK_IMPORTED_MODULE_1__[\"renderVideo\"])(video)); // for some reason, editor.selection.getEnd() returned from\n // insertContent is parent paragraph when inserting the\n // video iframe. Look for the iframe with the right\n // src attribute. (Aside: tinymce strips the id or data-*\n // attributes from the iframe, that's why we can't look for those)\n\n const src = Object(_plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_4__[\"mediaPlayerURLFromFile\"])(video);\n result = result.querySelector(`iframe[src=\"${src}\"]`); // When the iframe is inserted, it doesn't allow the video to play\n // because the wrapping span captures the click events. Setting\n // contentEditable to false disables this behavior.\n\n if ((_result = result) !== null && _result !== void 0 && _result.parentElement) {\n editor.dom.setAttrib(result.parentElement, 'contenteditable', false);\n }\n\n return result;\n } else {\n return insertLink(editor, { ...video,\n href: Object(_plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_4__[\"mediaPlayerURLFromFile\"])(video)\n });\n }\n}\nfunction insertAudio(editor, audio) {\n if (editor.selection.isCollapsed()) {\n var _result2;\n\n let result = insertContent(editor, Object(_contentRendering__WEBPACK_IMPORTED_MODULE_1__[\"renderAudio\"])(audio));\n const src = Object(_plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_4__[\"mediaPlayerURLFromFile\"])(audio);\n result = result.querySelector(`iframe[src=\"${src}\"]`); // When the iframe is inserted, it doesn't allow the audio to play\n // because the wrapping span captures the click events. Setting\n // contentEditable to false disables this behavior.\n\n if ((_result2 = result) !== null && _result2 !== void 0 && _result2.parentElement) {\n editor.dom.setAttrib(result.parentElement, 'contenteditable', false);\n }\n\n return result;\n } else {\n return insertLink(editor, { ...audio,\n href: Object(_plugins_shared_fileTypeUtils__WEBPACK_IMPORTED_MODULE_4__[\"mediaPlayerURLFromFile\"])(audio)\n });\n }\n}\n\n//# sourceURL=webpack:///./src/rce/contentInsertion.js?");
|
|
17451
17463
|
|
|
17452
17464
|
/***/ }),
|
|
17453
17465
|
|
|
@@ -17550,11 +17562,11 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _wra
|
|
|
17550
17562
|
/*!*****************************************************************!*\
|
|
17551
17563
|
!*** ./src/rce/plugins/instructure_icon_maker/svg/constants.js ***!
|
|
17552
17564
|
\*****************************************************************/
|
|
17553
|
-
/*! exports provided: TYPE, BUTTON_ID, TOOLBAR_ID, ICON_MAKER_ATTRIBUTE, ICON_MAKER_DOWNLOAD_URL_ATTR, ICON_MAKER_ICONS, ICON_MAKER_PARAM, SVG_XML_TYPE, SVG_TYPE, Size, DEFAULT_SETTINGS, BASE_SIZE, STROKE_WIDTH, TEXT_SIZE, MAX_CHAR_COUNT, MAX_TOTAL_TEXT_CHARS, TEXT_BACKGROUND_PADDING */
|
|
17565
|
+
/*! exports provided: TYPE, BUTTON_ID, TOOLBAR_ID, ICON_MAKER_ATTRIBUTE, ICON_MAKER_DOWNLOAD_URL_ATTR, ICON_MAKER_ICONS, ICON_MAKER_PARAM, SVG_XML_TYPE, SVG_TYPE, Size, DEFAULT_SETTINGS, BASE_SIZE, STROKE_WIDTH, TEXT_SIZE, TEXT_SIZE_FONT_DIFF, MAX_CHAR_COUNT, MAX_TOTAL_TEXT_CHARS, TEXT_BACKGROUND_PADDING */
|
|
17554
17566
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
17555
17567
|
|
|
17556
17568
|
"use strict";
|
|
17557
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TYPE\", function() { return TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BUTTON_ID\", function() { return BUTTON_ID; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TOOLBAR_ID\", function() { return TOOLBAR_ID; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ICON_MAKER_ATTRIBUTE\", function() { return ICON_MAKER_ATTRIBUTE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ICON_MAKER_DOWNLOAD_URL_ATTR\", function() { return ICON_MAKER_DOWNLOAD_URL_ATTR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ICON_MAKER_ICONS\", function() { return ICON_MAKER_ICONS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ICON_MAKER_PARAM\", function() { return ICON_MAKER_PARAM; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SVG_XML_TYPE\", function() { return SVG_XML_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SVG_TYPE\", function() { return SVG_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Size\", function() { return Size; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DEFAULT_SETTINGS\", function() { return DEFAULT_SETTINGS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BASE_SIZE\", function() { return BASE_SIZE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"STROKE_WIDTH\", function() { return STROKE_WIDTH; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TEXT_SIZE\", function() { return TEXT_SIZE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MAX_CHAR_COUNT\", function() { return MAX_CHAR_COUNT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MAX_TOTAL_TEXT_CHARS\", function() { return MAX_TOTAL_TEXT_CHARS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TEXT_BACKGROUND_PADDING\", function() { return TEXT_BACKGROUND_PADDING; });\n/*\n * Copyright (C) 2021 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nconst TYPE = 'image/svg+xml-icon-maker-icons'; // New constants added to centralize imports\n\nconst BUTTON_ID = 'inst-icon-maker-edit';\nconst TOOLBAR_ID = 'inst-icon-maker-edit-toolbar';\nconst ICON_MAKER_ATTRIBUTE = 'data-inst-icon-maker-icon';\nconst ICON_MAKER_DOWNLOAD_URL_ATTR = 'data-download-url';\nconst ICON_MAKER_ICONS = 'icon_maker_icons';\nconst ICON_MAKER_PARAM = 'icon_maker_icon'; // different definitions for filetypes\n\nconst SVG_XML_TYPE = 'image/svg+xml';\nconst SVG_TYPE = 'image/svg';\nconst Size = {\n None: 'none',\n ExtraSmall: 'x-small',\n Small: 'small',\n Medium: 'medium',\n Large: 'large',\n ExtraLarge: 'x-large'\n};\nconst DEFAULT_SETTINGS = {\n // Basic icon maker settings\n type: TYPE,\n alt: '',\n isDecorative: false,\n shape: 'square',\n size: Size.Small,\n color: null,\n outlineColor: '#000000',\n outlineSize: Size.None,\n text: '',\n textSize: Size.Small,\n textColor: '#000000',\n textBackgroundColor: null,\n textPosition: 'below',\n encodedImage: '',\n encodedImageType: '',\n encodedImageName: '',\n // Additional external attributes\n externalStyle: null,\n externalWidth: null,\n externalHeight: null,\n // Embedded image crop settings\n x: 0,\n y: 0,\n translateX: 0,\n translateY: 0,\n width: 0,\n height: 0,\n transform: '',\n imageSettings: null\n};\nconst BASE_SIZE = {\n [Size.ExtraSmall]: 74,\n [Size.Small]: 122,\n [Size.Medium]: 158,\n [Size.Large]: 218\n};\nconst STROKE_WIDTH = {\n [Size.None]: 0,\n [Size.Small]: 2,\n [Size.Medium]: 4,\n [Size.Large]: 8\n};\nconst TEXT_SIZE = {\n [Size.Small]: 14,\n [Size.Medium]: 16,\n [Size.Large]: 22,\n [Size.ExtraLarge]: 28\n};\nconst MAX_CHAR_COUNT = {\n [Size.Small]: 21,\n [Size.Medium]: 18,\n [Size.Large]: 13,\n [Size.ExtraLarge]: 10\n};\nconst MAX_TOTAL_TEXT_CHARS = 32;\nconst TEXT_BACKGROUND_PADDING = 4;\n\n//# sourceURL=webpack:///./src/rce/plugins/instructure_icon_maker/svg/constants.js?");
|
|
17569
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TYPE\", function() { return TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BUTTON_ID\", function() { return BUTTON_ID; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TOOLBAR_ID\", function() { return TOOLBAR_ID; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ICON_MAKER_ATTRIBUTE\", function() { return ICON_MAKER_ATTRIBUTE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ICON_MAKER_DOWNLOAD_URL_ATTR\", function() { return ICON_MAKER_DOWNLOAD_URL_ATTR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ICON_MAKER_ICONS\", function() { return ICON_MAKER_ICONS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ICON_MAKER_PARAM\", function() { return ICON_MAKER_PARAM; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SVG_XML_TYPE\", function() { return SVG_XML_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SVG_TYPE\", function() { return SVG_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Size\", function() { return Size; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DEFAULT_SETTINGS\", function() { return DEFAULT_SETTINGS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BASE_SIZE\", function() { return BASE_SIZE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"STROKE_WIDTH\", function() { return STROKE_WIDTH; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TEXT_SIZE\", function() { return TEXT_SIZE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TEXT_SIZE_FONT_DIFF\", function() { return TEXT_SIZE_FONT_DIFF; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MAX_CHAR_COUNT\", function() { return MAX_CHAR_COUNT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MAX_TOTAL_TEXT_CHARS\", function() { return MAX_TOTAL_TEXT_CHARS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TEXT_BACKGROUND_PADDING\", function() { return TEXT_BACKGROUND_PADDING; });\n/*\n * Copyright (C) 2021 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nconst TYPE = 'image/svg+xml-icon-maker-icons'; // New constants added to centralize imports\n\nconst BUTTON_ID = 'inst-icon-maker-edit';\nconst TOOLBAR_ID = 'inst-icon-maker-edit-toolbar';\nconst ICON_MAKER_ATTRIBUTE = 'data-inst-icon-maker-icon';\nconst ICON_MAKER_DOWNLOAD_URL_ATTR = 'data-download-url';\nconst ICON_MAKER_ICONS = 'icon_maker_icons';\nconst ICON_MAKER_PARAM = 'icon_maker_icon'; // different definitions for filetypes\n\nconst SVG_XML_TYPE = 'image/svg+xml';\nconst SVG_TYPE = 'image/svg';\nconst Size = {\n None: 'none',\n ExtraSmall: 'x-small',\n Small: 'small',\n Medium: 'medium',\n Large: 'large',\n ExtraLarge: 'x-large'\n};\nconst DEFAULT_SETTINGS = {\n // Basic icon maker settings\n type: TYPE,\n alt: '',\n isDecorative: false,\n shape: 'square',\n size: Size.Small,\n color: null,\n outlineColor: '#000000',\n outlineSize: Size.None,\n text: '',\n textSize: Size.Small,\n textColor: '#000000',\n textBackgroundColor: null,\n textPosition: 'below',\n encodedImage: '',\n encodedImageType: '',\n encodedImageName: '',\n // Additional external attributes\n externalStyle: null,\n externalWidth: null,\n externalHeight: null,\n // Embedded image crop settings\n x: 0,\n y: 0,\n translateX: 0,\n translateY: 0,\n width: 0,\n height: 0,\n transform: '',\n imageSettings: null,\n error: null\n};\nconst BASE_SIZE = {\n [Size.ExtraSmall]: 74,\n [Size.Small]: 122,\n [Size.Medium]: 158,\n [Size.Large]: 218\n};\nconst STROKE_WIDTH = {\n [Size.None]: 0,\n [Size.Small]: 2,\n [Size.Medium]: 4,\n [Size.Large]: 8\n};\nconst TEXT_SIZE = {\n [Size.Small]: 14,\n [Size.Medium]: 16,\n [Size.Large]: 22,\n [Size.ExtraLarge]: 28\n};\nconst TEXT_SIZE_FONT_DIFF = {\n [Size.Small]: -1,\n [Size.Medium]: 0,\n [Size.Large]: 1,\n [Size.ExtraLarge]: 2\n};\nconst MAX_CHAR_COUNT = {\n [Size.Small]: 21,\n [Size.Medium]: 18,\n [Size.Large]: 13,\n [Size.ExtraLarge]: 10\n};\nconst MAX_TOTAL_TEXT_CHARS = 32;\nconst TEXT_BACKGROUND_PADDING = 4;\n\n//# sourceURL=webpack:///./src/rce/plugins/instructure_icon_maker/svg/constants.js?");
|
|
17558
17570
|
|
|
17559
17571
|
/***/ }),
|
|
17560
17572
|
|
|
@@ -17590,7 +17602,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
17590
17602
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
17591
17603
|
|
|
17592
17604
|
"use strict";
|
|
17593
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return VideoOptionsTray; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @instructure/ui-a11y-content */ \"../../node_modules/@instructure/ui-a11y-content/es/index.js\");\n/* harmony import */ var _instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @instructure/ui-buttons */ \"../../node_modules/@instructure/ui-buttons/es/index.js\");\n/* harmony import */ var _instructure_ui_heading__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-heading */ \"../../node_modules/@instructure/ui-heading/es/index.js\");\n/* harmony import */ var _instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-radio-input */ \"../../node_modules/@instructure/ui-radio-input/es/index.js\");\n/* harmony import */ var _instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-simple-select */ \"../../node_modules/@instructure/ui-simple-select/es/index.js\");\n/* harmony import */ var _instructure_ui_text_area__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @instructure/ui-text-area */ \"../../node_modules/@instructure/ui-text-area/es/index.js\");\n/* harmony import */ var _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @instructure/ui-icons */ \"../../node_modules/@instructure/ui-icons/es/index.js\");\n/* harmony import */ var _instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @instructure/ui-flex */ \"../../node_modules/@instructure/ui-flex/es/index.js\");\n/* harmony import */ var _instructure_ui_form_field__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @instructure/ui-form-field */ \"../../node_modules/@instructure/ui-form-field/es/index.js\");\n/* harmony import */ var _instructure_ui_view__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @instructure/ui-view */ \"../../node_modules/@instructure/ui-view/es/index.js\");\n/* harmony import */ var _instructure_ui_tooltip__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @instructure/ui-tooltip */ \"../../node_modules/@instructure/ui-tooltip/es/index.js\");\n/* harmony import */ var _instructure_ui_tray__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @instructure/ui-tray */ \"../../node_modules/@instructure/ui-tray/es/index.js\");\n/* harmony import */ var _shared_StoreContext__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../shared/StoreContext */ \"./src/rce/plugins/shared/StoreContext.js\");\n/* harmony import */ var _instructure_canvas_media__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @instructure/canvas-media */ \"../canvas-media/es/index.js\");\n/* harmony import */ var _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../instructure_image/ImageEmbedOptions */ \"./src/rce/plugins/instructure_image/ImageEmbedOptions.js\");\n/* harmony import */ var _bridge__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../../../bridge */ \"./src/bridge/index.js\");\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../../../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _shared_DimensionsInput__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../../shared/DimensionsInput */ \"./src/rce/plugins/shared/DimensionsInput/index.js\");\n/* harmony import */ var _shared_trayUtils__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../../shared/trayUtils */ \"./src/rce/plugins/shared/trayUtils.js\");\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst getLiveRegion = () => document.getElementById('flash_screenreader_holder');\n\nfunction VideoOptionsTray(props) {\n const {\n videoOptions,\n onEntered,\n onExited,\n onRequestClose,\n onSave,\n open,\n trayProps,\n id\n } = props;\n const {\n naturalHeight,\n naturalWidth\n } = videoOptions;\n const currentHeight = videoOptions.appliedHeight || naturalHeight;\n const currentWidth = videoOptions.appliedWidth || naturalWidth;\n const [titleText, setTitleText] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(videoOptions.titleText);\n const [displayAs, setDisplayAs] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])('embed');\n const [videoSize, setVideoSize] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(videoOptions.videoSize);\n const [videoHeight, setVideoHeight] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(currentHeight);\n const [videoWidth, setVideoWidth] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(currentWidth);\n const [subtitles, setSubtitles] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(videoOptions.tracks || []);\n const [minWidth] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(_instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_16__[\"MIN_WIDTH_VIDEO\"]);\n const [minHeight] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(Math.round(videoHeight / videoWidth * _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_16__[\"MIN_WIDTH_VIDEO\"]));\n const [minPercentage] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(_instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_16__[\"MIN_PERCENTAGE\"]);\n const dimensionsState = Object(_shared_DimensionsInput__WEBPACK_IMPORTED_MODULE_19__[\"useDimensionsState\"])(videoOptions, {\n minHeight,\n minWidth,\n minPercentage\n });\n\n function handleTitleTextChange(event) {\n setTitleText(event.target.value);\n }\n\n function handleDisplayAsChange(event) {\n event.target.focus();\n setDisplayAs(event.target.value);\n }\n\n function handleVideoSizeChange(event, selectedOption) {\n setVideoSize(selectedOption.value);\n\n if (selectedOption.value === _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_16__[\"CUSTOM\"]) {\n setVideoHeight(currentHeight);\n setVideoWidth(currentWidth);\n } else {\n const {\n height,\n width\n } = Object(_instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_16__[\"scaleToSize\"])(selectedOption.value, naturalWidth, naturalHeight);\n setVideoHeight(height);\n setVideoWidth(width);\n }\n }\n\n function handleUpdateSubtitles(new_subtitles) {\n setSubtitles(new_subtitles);\n }\n\n function handleSave(event, updateMediaObject) {\n event.preventDefault();\n let appliedHeight = videoHeight;\n let appliedWidth = videoWidth;\n\n if (videoSize === _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_16__[\"CUSTOM\"]) {\n appliedHeight = dimensionsState.height;\n appliedWidth = dimensionsState.width;\n }\n\n onSave({\n media_object_id: videoOptions.id,\n titleText,\n appliedHeight,\n appliedWidth,\n displayAs,\n subtitles,\n updateMediaObject\n });\n }\n\n const tooltipText = Object(_format_message__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('Used by screen readers to describe the video');\n const textAreaLabel = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"], {\n alignItems: \"center\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"].Item, null, Object(_format_message__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('Title')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"].Item, {\n margin: \"0 0 0 xx-small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_tooltip__WEBPACK_IMPORTED_MODULE_12__[\"Tooltip\"], {\n on: ['hover', 'focus'],\n placement: \"top\",\n tip: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_11__[\"View\"], {\n display: \"block\",\n id: \"alt-text-label-tooltip\",\n maxWidth: \"14rem\"\n }, tooltipText)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_3__[\"Button\"], {\n icon: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_8__[\"IconQuestionLine\"],\n size: \"small\",\n variant: \"icon\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_2__[\"ScreenReaderContent\"], null, tooltipText)))));\n const messagesForSize = [];\n\n if (videoSize !== _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_16__[\"CUSTOM\"]) {\n messagesForSize.push({\n text: Object(_format_message__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('{width} x {height}px', {\n height: videoHeight,\n width: videoWidth\n }),\n type: 'hint'\n });\n }\n\n const saveDisabled = displayAs === 'embed' && (titleText === '' || videoSize === _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_16__[\"CUSTOM\"] && !dimensionsState.isValid);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_shared_StoreContext__WEBPACK_IMPORTED_MODULE_14__[\"StoreProvider\"], trayProps, contentProps => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_tray__WEBPACK_IMPORTED_MODULE_13__[\"Tray\"], {\n key: \"video-options-tray\",\n \"data-mce-component\": true,\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('Video Options Tray'),\n onDismiss: onRequestClose,\n onEntered: onEntered,\n onExited: onExited,\n open: open,\n placement: \"end\",\n shouldCloseOnDocumentClick: true,\n shouldContainFocus: true,\n shouldReturnFocus: true,\n size: \"regular\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"], {\n direction: \"column\",\n height: Object(_shared_trayUtils__WEBPACK_IMPORTED_MODULE_20__[\"getTrayHeight\"])()\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"].Item, {\n as: \"header\",\n padding: \"medium\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"], {\n direction: \"row\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"].Item, {\n grow: true,\n shrink: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_heading__WEBPACK_IMPORTED_MODULE_4__[\"Heading\"], {\n as: \"h2\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('Video Options'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_3__[\"CloseButton\"], {\n placemet: \"static\",\n variant: \"icon\",\n onClick: onRequestClose\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('Close'))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"].Item, {\n as: \"form\",\n grow: true,\n margin: \"none\",\n shrink: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"], {\n justifyItems: \"space-between\",\n direction: \"column\",\n height: \"100%\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"].Item, {\n grow: true,\n padding: \"small\",\n shrink: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"], {\n direction: \"column\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"].Item, {\n padding: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text_area__WEBPACK_IMPORTED_MODULE_7__[\"TextArea\"], {\n \"aria-describedby\": \"alt-text-label-tooltip\",\n disabled: displayAs === 'link',\n height: \"4rem\",\n label: textAreaLabel,\n onChange: handleTitleTextChange,\n placeholder: Object(_format_message__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('(Describe the video)'),\n resize: \"vertical\",\n value: titleText\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"].Item, {\n margin: \"small none none none\",\n padding: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_5__[\"RadioInputGroup\"], {\n description: Object(_format_message__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('Display Options'),\n name: \"display-video-as\",\n onChange: handleDisplayAsChange,\n value: displayAs\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_5__[\"RadioInput\"], {\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('Embed Video'),\n value: \"embed\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_5__[\"RadioInput\"], {\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('Display Text Link (Opens in a new tab)'),\n value: \"link\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"].Item, {\n margin: \"small none xx-small none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_11__[\"View\"], {\n as: \"div\",\n padding: \"small small xx-small small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"], {\n id: `${id}-size`,\n disabled: displayAs !== 'embed',\n renderLabel: Object(_format_message__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('Size'),\n messages: messagesForSize,\n assistiveText: Object(_format_message__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('Use arrow keys to navigate options.'),\n onChange: handleVideoSizeChange,\n value: videoSize\n }, _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_16__[\"videoSizes\"].map(size => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: `${id}-size-${size}`,\n key: size,\n value: size\n }, Object(_instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_16__[\"labelForImageSize\"])(size))))), videoSize === _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_16__[\"CUSTOM\"] && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_11__[\"View\"], {\n as: \"div\",\n padding: \"xx-small small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_shared_DimensionsInput__WEBPACK_IMPORTED_MODULE_19__[\"default\"], {\n dimensionsState: dimensionsState,\n disabled: displayAs !== 'embed',\n minHeight: minHeight,\n minWidth: minWidth,\n minPercentage: minPercentage\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"].Item, {\n padding: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_form_field__WEBPACK_IMPORTED_MODULE_10__[\"FormFieldGroup\"], {\n description: Object(_format_message__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('Closed Captions/Subtitles')\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_canvas_media__WEBPACK_IMPORTED_MODULE_15__[\"ClosedCaptionPanel\"], {\n subtitles: subtitles.map(st => ({\n locale: st.locale,\n file: {\n name: st.language || st.locale\n } // this is an artifact of ClosedCaptionCreatorRow's inards\n\n })),\n uploadMediaTranslations: _bridge__WEBPACK_IMPORTED_MODULE_17__[\"default\"].uploadMediaTranslations,\n languages: _bridge__WEBPACK_IMPORTED_MODULE_17__[\"default\"].languages,\n updateSubtitles: handleUpdateSubtitles,\n liveRegion: getLiveRegion\n }))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_9__[\"Flex\"].Item, {\n background: \"secondary\",\n borderWidth: \"small none none none\",\n padding: \"small medium\",\n textAlign: \"end\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_3__[\"Button\"], {\n disabled: saveDisabled,\n onClick: event => handleSave(event, contentProps.updateMediaObject),\n variant: \"primary\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_18__[\"default\"])('Done'))))))));\n}\nVideoOptionsTray.propTypes = {\n videoOptions: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n titleText: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n appliedHeight: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"],\n appliedWidth: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"],\n naturalHeight: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"].isRequired,\n naturalWidth: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"].isRequired,\n tracks: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"arrayOf\"])(Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n locale: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired\n }))\n }).isRequired,\n onEntered: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n onExited: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n onRequestClose: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n onSave: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n open: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"].isRequired,\n trayProps: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n host: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n jwt: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired\n }),\n id: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"]\n};\nVideoOptionsTray.defaultProps = {\n onEntered: null,\n onExited: null,\n id: 'video-options-tray'\n};\n\n//# sourceURL=webpack:///./src/rce/plugins/instructure_record/VideoOptionsTray/index.js?");
|
|
17605
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return VideoOptionsTray; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @instructure/ui-buttons */ \"../../node_modules/@instructure/ui-buttons/es/index.js\");\n/* harmony import */ var _instructure_ui_heading__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @instructure/ui-heading */ \"../../node_modules/@instructure/ui-heading/es/index.js\");\n/* harmony import */ var _instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-radio-input */ \"../../node_modules/@instructure/ui-radio-input/es/index.js\");\n/* harmony import */ var _instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-simple-select */ \"../../node_modules/@instructure/ui-simple-select/es/index.js\");\n/* harmony import */ var _instructure_ui_text_area__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-text-area */ \"../../node_modules/@instructure/ui-text-area/es/index.js\");\n/* harmony import */ var _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @instructure/ui-icons */ \"../../node_modules/@instructure/ui-icons/es/index.js\");\n/* harmony import */ var _instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @instructure/ui-flex */ \"../../node_modules/@instructure/ui-flex/es/index.js\");\n/* harmony import */ var _instructure_ui_form_field__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @instructure/ui-form-field */ \"../../node_modules/@instructure/ui-form-field/es/index.js\");\n/* harmony import */ var _instructure_ui_view__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @instructure/ui-view */ \"../../node_modules/@instructure/ui-view/es/index.js\");\n/* harmony import */ var _instructure_ui_tooltip__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @instructure/ui-tooltip */ \"../../node_modules/@instructure/ui-tooltip/es/index.js\");\n/* harmony import */ var _instructure_ui_tray__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @instructure/ui-tray */ \"../../node_modules/@instructure/ui-tray/es/index.js\");\n/* harmony import */ var _shared_StoreContext__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../shared/StoreContext */ \"./src/rce/plugins/shared/StoreContext.js\");\n/* harmony import */ var _instructure_canvas_media__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @instructure/canvas-media */ \"../canvas-media/es/index.js\");\n/* harmony import */ var _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../instructure_image/ImageEmbedOptions */ \"./src/rce/plugins/instructure_image/ImageEmbedOptions.js\");\n/* harmony import */ var _bridge__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../../../bridge */ \"./src/bridge/index.js\");\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../../../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _shared_DimensionsInput__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../shared/DimensionsInput */ \"./src/rce/plugins/shared/DimensionsInput/index.js\");\n/* harmony import */ var _shared_trayUtils__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../../shared/trayUtils */ \"./src/rce/plugins/shared/trayUtils.js\");\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst getLiveRegion = () => document.getElementById('flash_screenreader_holder');\n\nfunction VideoOptionsTray(props) {\n const {\n videoOptions,\n onEntered,\n onExited,\n onRequestClose,\n onSave,\n open,\n trayProps,\n id\n } = props;\n const {\n naturalHeight,\n naturalWidth\n } = videoOptions;\n const currentHeight = videoOptions.appliedHeight || naturalHeight;\n const currentWidth = videoOptions.appliedWidth || naturalWidth;\n const [titleText, setTitleText] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(videoOptions.titleText);\n const [displayAs, setDisplayAs] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])('embed');\n const [videoSize, setVideoSize] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(videoOptions.videoSize);\n const [videoHeight, setVideoHeight] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(currentHeight);\n const [videoWidth, setVideoWidth] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(currentWidth);\n const [subtitles, setSubtitles] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(videoOptions.tracks || []);\n const [minWidth] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(_instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_15__[\"MIN_WIDTH_VIDEO\"]);\n const [minHeight] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(Math.round(videoHeight / videoWidth * _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_15__[\"MIN_WIDTH_VIDEO\"]));\n const [minPercentage] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(_instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_15__[\"MIN_PERCENTAGE\"]);\n const dimensionsState = Object(_shared_DimensionsInput__WEBPACK_IMPORTED_MODULE_18__[\"useDimensionsState\"])(videoOptions, {\n minHeight,\n minWidth,\n minPercentage\n });\n\n function handleTitleTextChange(event) {\n setTitleText(event.target.value);\n }\n\n function handleDisplayAsChange(event) {\n event.target.focus();\n setDisplayAs(event.target.value);\n }\n\n function handleVideoSizeChange(event, selectedOption) {\n setVideoSize(selectedOption.value);\n\n if (selectedOption.value === _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_15__[\"CUSTOM\"]) {\n setVideoHeight(currentHeight);\n setVideoWidth(currentWidth);\n } else {\n const {\n height,\n width\n } = Object(_instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_15__[\"scaleToSize\"])(selectedOption.value, naturalWidth, naturalHeight);\n setVideoHeight(height);\n setVideoWidth(width);\n }\n }\n\n function handleUpdateSubtitles(new_subtitles) {\n setSubtitles(new_subtitles);\n }\n\n function handleSave(event, updateMediaObject) {\n event.preventDefault();\n let appliedHeight = videoHeight;\n let appliedWidth = videoWidth;\n\n if (videoSize === _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_15__[\"CUSTOM\"]) {\n appliedHeight = dimensionsState.height;\n appliedWidth = dimensionsState.width;\n }\n\n onSave({\n media_object_id: videoOptions.id,\n titleText,\n appliedHeight,\n appliedWidth,\n displayAs,\n subtitles,\n updateMediaObject\n });\n }\n\n const tooltipText = Object(_format_message__WEBPACK_IMPORTED_MODULE_17__[\"default\"])('Used by screen readers to describe the video');\n const textAreaLabel = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"], {\n alignItems: \"center\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"].Item, null, Object(_format_message__WEBPACK_IMPORTED_MODULE_17__[\"default\"])('Title')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"].Item, {\n margin: \"0 0 0 xx-small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_tooltip__WEBPACK_IMPORTED_MODULE_11__[\"Tooltip\"], {\n on: ['hover', 'focus'],\n placement: \"top\",\n renderTip: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_10__[\"View\"], {\n display: \"block\",\n id: \"alt-text-label-tooltip\",\n maxWidth: \"14rem\"\n }, tooltipText)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_2__[\"IconButton\"], {\n renderIcon: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_7__[\"IconQuestionLine\"],\n size: \"small\",\n screenReaderLabel: tooltipText,\n withBackground: false,\n withBorder: false\n }))));\n const messagesForSize = [];\n\n if (videoSize !== _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_15__[\"CUSTOM\"]) {\n messagesForSize.push({\n text: Object(_format_message__WEBPACK_IMPORTED_MODULE_17__[\"default\"])('{width} x {height}px', {\n height: videoHeight,\n width: videoWidth\n }),\n type: 'hint'\n });\n }\n\n const saveDisabled = displayAs === 'embed' && (titleText === '' || videoSize === _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_15__[\"CUSTOM\"] && !dimensionsState.isValid);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_shared_StoreContext__WEBPACK_IMPORTED_MODULE_13__[\"StoreProvider\"], trayProps, contentProps => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_tray__WEBPACK_IMPORTED_MODULE_12__[\"Tray\"], {\n key: \"video-options-tray\",\n \"data-mce-component\": true,\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_17__[\"default\"])('Video Options Tray'),\n onDismiss: onRequestClose,\n onEntered: onEntered,\n onExited: onExited,\n open: open,\n placement: \"end\",\n shouldCloseOnDocumentClick: true,\n shouldContainFocus: true,\n shouldReturnFocus: true,\n size: \"regular\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"], {\n direction: \"column\",\n height: Object(_shared_trayUtils__WEBPACK_IMPORTED_MODULE_19__[\"getTrayHeight\"])()\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"].Item, {\n as: \"header\",\n padding: \"medium\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"], {\n direction: \"row\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"].Item, {\n shouldGrow: true,\n shouldShrink: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_heading__WEBPACK_IMPORTED_MODULE_3__[\"Heading\"], {\n as: \"h2\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_17__[\"default\"])('Video Options'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_2__[\"CloseButton\"], {\n color: \"primary\",\n onClick: onRequestClose,\n screenReaderLabel: Object(_format_message__WEBPACK_IMPORTED_MODULE_17__[\"default\"])('Close')\n })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"].Item, {\n as: \"form\",\n shouldGrow: true,\n margin: \"none\",\n shouldShrink: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"], {\n justifyItems: \"space-between\",\n direction: \"column\",\n height: \"100%\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"].Item, {\n shouldGrow: true,\n padding: \"small\",\n shouldShrink: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"], {\n direction: \"column\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"].Item, {\n padding: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text_area__WEBPACK_IMPORTED_MODULE_6__[\"TextArea\"], {\n \"aria-describedby\": \"alt-text-label-tooltip\",\n disabled: displayAs === 'link',\n height: \"4rem\",\n label: textAreaLabel,\n onChange: handleTitleTextChange,\n placeholder: Object(_format_message__WEBPACK_IMPORTED_MODULE_17__[\"default\"])('(Describe the video)'),\n resize: \"vertical\",\n value: titleText\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"].Item, {\n margin: \"small none none none\",\n padding: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_4__[\"RadioInputGroup\"], {\n description: Object(_format_message__WEBPACK_IMPORTED_MODULE_17__[\"default\"])('Display Options'),\n name: \"display-video-as\",\n onChange: handleDisplayAsChange,\n value: displayAs\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_4__[\"RadioInput\"], {\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_17__[\"default\"])('Embed Video'),\n value: \"embed\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_4__[\"RadioInput\"], {\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_17__[\"default\"])('Display Text Link (Opens in a new tab)'),\n value: \"link\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"].Item, {\n margin: \"small none xx-small none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_10__[\"View\"], {\n as: \"div\",\n padding: \"small small xx-small small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_5__[\"SimpleSelect\"], {\n id: `${id}-size`,\n disabled: displayAs !== 'embed',\n renderLabel: Object(_format_message__WEBPACK_IMPORTED_MODULE_17__[\"default\"])('Size'),\n messages: messagesForSize,\n assistiveText: Object(_format_message__WEBPACK_IMPORTED_MODULE_17__[\"default\"])('Use arrow keys to navigate options.'),\n onChange: handleVideoSizeChange,\n value: videoSize\n }, _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_15__[\"videoSizes\"].map(size => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_5__[\"SimpleSelect\"].Option, {\n id: `${id}-size-${size}`,\n key: size,\n value: size\n }, Object(_instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_15__[\"labelForImageSize\"])(size))))), videoSize === _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_15__[\"CUSTOM\"] && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_10__[\"View\"], {\n as: \"div\",\n padding: \"xx-small small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_shared_DimensionsInput__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n dimensionsState: dimensionsState,\n disabled: displayAs !== 'embed',\n minHeight: minHeight,\n minWidth: minWidth,\n minPercentage: minPercentage\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"].Item, {\n padding: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_form_field__WEBPACK_IMPORTED_MODULE_9__[\"FormFieldGroup\"], {\n description: Object(_format_message__WEBPACK_IMPORTED_MODULE_17__[\"default\"])('Closed Captions/Subtitles')\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_canvas_media__WEBPACK_IMPORTED_MODULE_14__[\"ClosedCaptionPanel\"], {\n subtitles: subtitles.map(st => ({\n locale: st.locale,\n file: {\n name: st.language || st.locale\n } // this is an artifact of ClosedCaptionCreatorRow's inards\n\n })),\n uploadMediaTranslations: _bridge__WEBPACK_IMPORTED_MODULE_16__[\"default\"].uploadMediaTranslations,\n languages: _bridge__WEBPACK_IMPORTED_MODULE_16__[\"default\"].languages,\n updateSubtitles: handleUpdateSubtitles,\n liveRegion: getLiveRegion\n }))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_8__[\"Flex\"].Item, {\n background: \"secondary\",\n borderWidth: \"small none none none\",\n padding: \"small medium\",\n textAlign: \"end\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_2__[\"Button\"], {\n disabled: saveDisabled,\n onClick: event => handleSave(event, contentProps.updateMediaObject),\n variant: \"primary\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_17__[\"default\"])('Done'))))))));\n}\nVideoOptionsTray.propTypes = {\n videoOptions: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n titleText: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n appliedHeight: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"],\n appliedWidth: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"],\n naturalHeight: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"].isRequired,\n naturalWidth: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"].isRequired,\n tracks: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"arrayOf\"])(Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n locale: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired\n }))\n }).isRequired,\n onEntered: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n onExited: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n onRequestClose: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n onSave: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n open: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"].isRequired,\n trayProps: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n host: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n jwt: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired\n }),\n id: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"]\n};\nVideoOptionsTray.defaultProps = {\n onEntered: null,\n onExited: null,\n id: 'video-options-tray'\n};\n\n//# sourceURL=webpack:///./src/rce/plugins/instructure_record/VideoOptionsTray/index.js?");
|
|
17594
17606
|
|
|
17595
17607
|
/***/ }),
|
|
17596
17608
|
|
|
@@ -17614,7 +17626,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _for
|
|
|
17614
17626
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
17615
17627
|
|
|
17616
17628
|
"use strict";
|
|
17617
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return CanvasContentTray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"trayPropTypes\", function() { return trayPropTypes; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _instructure_ui_tray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @instructure/ui-tray */ \"../../node_modules/@instructure/ui-tray/es/index.js\");\n/* harmony import */ var _instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @instructure/ui-buttons */ \"../../node_modules/@instructure/ui-buttons/es/index.js\");\n/* harmony import */ var _instructure_ui_heading__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-heading */ \"../../node_modules/@instructure/ui-heading/es/index.js\");\n/* harmony import */ var _instructure_ui_spinner__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-spinner */ \"../../node_modules/@instructure/ui-spinner/es/index.js\");\n/* harmony import */ var _instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-flex */ \"../../node_modules/@instructure/ui-flex/es/index.js\");\n/* harmony import */ var _ErrorBoundary__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ErrorBoundary */ \"./src/rce/plugins/shared/ErrorBoundary.js\");\n/* harmony import */ var _bridge_Bridge__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../bridge/Bridge */ \"./src/bridge/Bridge.js\");\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _Filter__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Filter */ \"./src/rce/plugins/shared/Filter.js\");\n/* harmony import */ var _StoreContext__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./StoreContext */ \"./src/rce/plugins/shared/StoreContext.js\");\n/* harmony import */ var _trayUtils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./trayUtils */ \"./src/rce/plugins/shared/trayUtils.js\");\n/* harmony import */ var _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../instructure_icon_maker/svg/constants */ \"./src/rce/plugins/instructure_icon_maker/svg/constants.js\");\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Returns the translated tray label\n * @param {string} contentType - The type of content showing on tray\n * @param {string} contentSubtype - The current subtype of content loaded in the tray\n * @param {string} contextType - The user's context\n * @returns {string}\n */\n\nfunction getTrayLabel(contentType, contentSubtype, contextType) {\n if (contentType === 'links' && contextType === 'course') {\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Course Links');\n } else if (contentType === 'links' && contextType === 'group') {\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Group Links');\n }\n\n switch (contentSubtype) {\n case _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_13__[\"ICON_MAKER_ICONS\"]:\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Icon Maker Icons');\n\n case 'images':\n if (contentType === 'course_files') return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Course Images');\n if (contentType === 'group_files') return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Group Images');\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('User Images');\n\n case 'media':\n if (contentType === 'course_files') return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Course Media');\n if (contentType === 'group_files') return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Group Media');\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('User Media');\n\n case 'documents':\n if (contentType === 'course_files') return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Course Documents');\n if (contentType === 'group_files') return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Group Documents');\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('User Documents');\n\n default:\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Tray');\n // Shouldn't ever get here\n }\n}\n\nconst thePanels = {\n icon_maker_icons: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(0), __webpack_require__.e(3), __webpack_require__.e(4), __webpack_require__.e(1), __webpack_require__.e(32)]).then(__webpack_require__.bind(null, /*! ../instructure_icon_maker/components/SavedIconMakerList */ \"./src/rce/plugins/instructure_icon_maker/components/SavedIconMakerList.js\"))),\n links: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(2), __webpack_require__.e(28)]).then(__webpack_require__.bind(null, /*! ../instructure_links/components/LinksPanel */ \"./src/rce/plugins/instructure_links/components/LinksPanel.js\"))),\n images: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(0), __webpack_require__.e(3), __webpack_require__.e(4), __webpack_require__.e(1), __webpack_require__.e(33)]).then(__webpack_require__.bind(null, /*! ../instructure_image/Images */ \"./src/rce/plugins/instructure_image/Images/index.js\"))),\n documents: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(1), __webpack_require__.e(34)]).then(__webpack_require__.bind(null, /*! ../instructure_documents/components/DocumentsPanel */ \"./src/rce/plugins/instructure_documents/components/DocumentsPanel.js\"))),\n media: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(1), __webpack_require__.e(35)]).then(__webpack_require__.bind(null, /*! ../instructure_record/MediaPanel */ \"./src/rce/plugins/instructure_record/MediaPanel/index.js\"))),\n all: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(0), __webpack_require__.e(29), __webpack_require__.e(36)]).then(__webpack_require__.bind(null, /*! ./FileBrowser */ \"./src/rce/plugins/shared/FileBrowser.js\"))),\n unknown: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.lazy(() => __webpack_require__.e(/*! import() */ 74).then(__webpack_require__.bind(null, /*! ./UnknownFileTypePanel */ \"./src/rce/plugins/shared/UnknownFileTypePanel.js\")))\n}; // Returns a Suspense wrapped lazy loaded component\n// pulled from useLazy's cache\n\nfunction DynamicPanel(props) {\n let key = '';\n\n if (props.contentType === 'links') {\n key = 'links';\n } else {\n key = props.contentSubtype in thePanels ? props.contentSubtype : 'unknown';\n }\n\n const Component = thePanels[key];\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"Suspense\"], {\n fallback: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_spinner__WEBPACK_IMPORTED_MODULE_5__[\"Spinner\"], {\n renderTitle: renderLoading,\n size: \"large\"\n })\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Component, props));\n}\n\nfunction renderLoading() {\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Loading');\n}\n\nconst FILTER_SETTINGS_BY_PLUGIN = {\n user_documents: {\n contextType: 'user',\n contentType: 'user_files',\n contentSubtype: 'documents',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n course_documents: {\n contextType: 'course',\n contentType: 'course_files',\n contentSubtype: 'documents',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n group_documents: {\n contextType: 'group',\n contentType: 'group_files',\n contentSubtype: 'documents',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n user_images: {\n contextType: 'user',\n contentType: 'user_files',\n contentSubtype: 'images',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n course_images: {\n contextType: 'course',\n contentType: 'course_files',\n contentSubtype: 'images',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n group_images: {\n contextType: 'group',\n contentType: 'group_files',\n contentSubtype: 'images',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n user_media: {\n contextType: 'user',\n contentType: 'user_files',\n contentSubtype: 'media',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n course_media: {\n contextType: 'course',\n contentType: 'course_files',\n contentSubtype: 'media',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n group_media: {\n contextType: 'group',\n contentType: 'group_files',\n contentSubtype: 'media',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n course_links: {\n contextType: 'course',\n contentType: 'links',\n contentSubtype: 'all',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n group_links: {\n contextType: 'group',\n contentType: 'links',\n contentSubtype: 'all',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n list_icon_maker_icons: {\n contextType: 'course',\n contentType: 'course_files',\n contentSubtype: _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_13__[\"ICON_MAKER_ICONS\"],\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n all: {\n contextType: 'course',\n contentType: 'course_files',\n contentSubtype: 'all',\n sortValue: 'alphabetical',\n sortDir: 'asc',\n searchString: ''\n }\n};\n\nfunction isLoading(cprops) {\n var _cprops$collections$a, _cprops$collections$a2, _cprops$collections$d, _cprops$collections$m, _cprops$collections$q, _cprops$collections$w, _cprops$documents$cou, _cprops$documents$use, _cprops$documents$gro, _cprops$media$course, _cprops$media$user, _cprops$media$group, _cprops$all_files;\n\n return ((_cprops$collections$a = cprops.collections.announcements) === null || _cprops$collections$a === void 0 ? void 0 : _cprops$collections$a.isLoading) || ((_cprops$collections$a2 = cprops.collections.assignments) === null || _cprops$collections$a2 === void 0 ? void 0 : _cprops$collections$a2.isLoading) || ((_cprops$collections$d = cprops.collections.discussions) === null || _cprops$collections$d === void 0 ? void 0 : _cprops$collections$d.isLoading) || ((_cprops$collections$m = cprops.collections.modules) === null || _cprops$collections$m === void 0 ? void 0 : _cprops$collections$m.isLoading) || ((_cprops$collections$q = cprops.collections.quizzes) === null || _cprops$collections$q === void 0 ? void 0 : _cprops$collections$q.isLoading) || ((_cprops$collections$w = cprops.collections.wikiPages) === null || _cprops$collections$w === void 0 ? void 0 : _cprops$collections$w.isLoading) || ((_cprops$documents$cou = cprops.documents.course) === null || _cprops$documents$cou === void 0 ? void 0 : _cprops$documents$cou.isLoading) || ((_cprops$documents$use = cprops.documents.user) === null || _cprops$documents$use === void 0 ? void 0 : _cprops$documents$use.isLoading) || ((_cprops$documents$gro = cprops.documents.group) === null || _cprops$documents$gro === void 0 ? void 0 : _cprops$documents$gro.isLoading) || ((_cprops$media$course = cprops.media.course) === null || _cprops$media$course === void 0 ? void 0 : _cprops$media$course.isLoading) || ((_cprops$media$user = cprops.media.user) === null || _cprops$media$user === void 0 ? void 0 : _cprops$media$user.isLoading) || ((_cprops$media$group = cprops.media.group) === null || _cprops$media$group === void 0 ? void 0 : _cprops$media$group.isLoading) || ((_cprops$all_files = cprops.all_files) === null || _cprops$all_files === void 0 ? void 0 : _cprops$all_files.isLoading);\n}\n/**\n * This component is used within various plugins to handle loading in content\n * from Canvas. It is essentially the main component.\n */\n\n\nfunction CanvasContentTray(props) {\n // should the tray be rendered open?\n const [isOpen, setIsOpen] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(false); // has the tray fully opened. we use this to defer rendering the content\n // until the tray is open.\n\n const [hasOpened, setHasOpened] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(false); // should we close the tray after the user clicks on something in it?\n\n const [hidingTrayOnAction, setHidingTrayOnAction] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(true);\n const trayRef = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useRef\"])(null);\n const scrollingAreaRef = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useRef\"])(null);\n const [filterSettings, setFilterSettings] = Object(_Filter__WEBPACK_IMPORTED_MODULE_10__[\"useFilterSettings\"])();\n const {\n bridge,\n editor,\n onTrayClosing\n } = { ...props\n };\n const handleDismissTray = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useCallback\"])(() => {\n // return focus to the RCE if focus was on this tray\n if (trayRef.current && trayRef.current.contains(document.activeElement)) {\n bridge.focusActiveEditor(false);\n }\n\n onTrayClosing && onTrayClosing(CanvasContentTray.globalOpenCount); // tell RCEWrapper we're closing if we're open\n\n setIsOpen(false);\n }, [bridge, onTrayClosing]);\n Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"])(() => {\n const controller = {\n showTrayForPlugin(plugin) {\n // increment a counter that's used as the key when rendering\n // this gets us a new instance everytime, which is necessary\n // to get the queries run so we have up to date data.\n ++CanvasContentTray.globalOpenCount;\n setFilterSettings(FILTER_SETTINGS_BY_PLUGIN[plugin]);\n setIsOpen(true);\n },\n\n hideTray(forceClose) {\n if (forceClose || hidingTrayOnAction) {\n handleDismissTray();\n }\n }\n\n };\n bridge.attachController(controller, editor.id);\n return () => {\n bridge.detachController(editor.id);\n }; // it's OK the setFilterSettings is not a dependency\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [editor.id, bridge, handleDismissTray, hidingTrayOnAction]);\n Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"])(() => {\n if (hasOpened && scrollingAreaRef.current && !scrollingAreaRef.current.style.overscrollBehaviorY) {\n scrollingAreaRef.current.style.overscrollBehaviorY = 'contain';\n }\n }, [hasOpened]);\n\n function handleOpenTray() {\n bridge.focusEditor(editor);\n setHasOpened(true);\n }\n\n function handleExitTray() {\n onTrayClosing && onTrayClosing(true); // tell RCEWrapper we're closing\n }\n\n function handleCloseTray() {\n setHasOpened(false);\n onTrayClosing && onTrayClosing(false); // tell RCEWrapper we're closed\n }\n\n function handleFilterChange(newFilter, onChangeContext, onChangeSearchString, onChangeSortBy) {\n const newFilterSettings = { ...newFilter\n };\n\n if (newFilterSettings.sortValue) {\n newFilterSettings.sortDir = newFilterSettings.sortValue === 'alphabetical' ? 'asc' : 'desc';\n onChangeSortBy({\n sort: newFilterSettings.sortValue,\n dir: newFilterSettings.sortDir\n });\n }\n\n if ('searchString' in newFilterSettings && filterSettings.searchString !== newFilterSettings.searchString) {\n onChangeSearchString(newFilterSettings.searchString);\n }\n\n setFilterSettings(newFilterSettings);\n\n if (newFilterSettings.contentType) {\n let contextType, contextId;\n\n switch (newFilterSettings.contentType) {\n case 'user_files':\n contextType = 'user';\n contextId = props.containingContext.userId;\n break;\n\n case 'group_files':\n contextType = 'group';\n contextId = props.containingContext.contextId;\n break;\n\n case 'course_files':\n contextType = props.contextType;\n contextId = props.containingContext.contextId;\n break;\n\n case 'links':\n contextType = props.containingContext.contextType;\n contextId = props.containingContext.contextId;\n }\n\n onChangeContext({\n contextType,\n contextId\n });\n }\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_StoreContext__WEBPACK_IMPORTED_MODULE_11__[\"StoreProvider\"], Object.assign({}, props, {\n key: CanvasContentTray.globalOpenCount,\n contextType: filterSettings.contextType || props.contextType\n }), contentProps => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_tray__WEBPACK_IMPORTED_MODULE_2__[\"Tray\"], {\n \"data-mce-component\": true,\n \"data-testid\": \"CanvasContentTray\",\n label: getTrayLabel(filterSettings.contentType, filterSettings.contentSubtype, contentProps.contextType),\n open: isOpen,\n placement: \"end\",\n size: \"regular\",\n shouldContainFocus: true,\n shouldReturnFocus: false,\n shouldCloseOnDocumentClick: false,\n onDismiss: handleDismissTray,\n onClose: handleCloseTray,\n onExit: handleExitTray,\n onOpen: handleOpenTray,\n onEntered: () => {\n const c = document.querySelector('[role=\"main\"]');\n let target_w = 0;\n\n if (c) {\n var _trayRef$current;\n\n const margin = window.getComputedStyle(c).direction === 'ltr' ? document.body.getBoundingClientRect().right - c.getBoundingClientRect().right : c.getBoundingClientRect().left;\n target_w = c.offsetWidth - ((_trayRef$current = trayRef.current) === null || _trayRef$current === void 0 ? void 0 : _trayRef$current.offsetWidth) + margin;\n\n if (target_w >= 320 && target_w < c.offsetWidth) {\n c.style.boxSizing = 'border-box';\n c.style.width = `${target_w}px`;\n }\n }\n\n setHidingTrayOnAction(target_w < 320);\n },\n onExiting: () => {\n const c = document.querySelector('[role=\"main\"]');\n if (c) c.style.width = '';\n },\n contentRef: el => trayRef.current = el\n }, isOpen && hasOpened ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"], {\n direction: \"column\",\n as: \"div\",\n height: Object(_trayUtils__WEBPACK_IMPORTED_MODULE_12__[\"getTrayHeight\"])(),\n overflowY: \"hidden\",\n tabIndex: \"-1\",\n \"data-canvascontenttray-content\": true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"].Item, {\n padding: \"medium\",\n shadow: \"above\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"], {\n margin: \"none none medium none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"].Item, {\n shouldgrow: true,\n shouldshrink: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_heading__WEBPACK_IMPORTED_MODULE_4__[\"Heading\"], {\n level: \"h2\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Add'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_3__[\"CloseButton\"], {\n placement: \"end\",\n onClick: handleDismissTray,\n \"data-testid\": \"CloseButton_ContentTray\",\n screenReaderLabel: Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Close')\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Filter__WEBPACK_IMPORTED_MODULE_10__[\"default\"], Object.assign({}, filterSettings, {\n userContextType: props.contextType,\n containingContextType: props.containingContext.contextType,\n onChange: newFilter => {\n handleFilterChange(newFilter, contentProps.onChangeContext, contentProps.onChangeSearchString, contentProps.onChangeSortBy);\n },\n isContentLoading: isLoading(contentProps),\n use_rce_icon_maker: props.use_rce_icon_maker\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"].Item, {\n shouldgrow: true,\n shouldshrink: true,\n margin: \"xx-small xxx-small 0\",\n elementRef: el => scrollingAreaRef.current = el\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_ErrorBoundary__WEBPACK_IMPORTED_MODULE_7__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(DynamicPanel, Object.assign({\n contentType: filterSettings.contentType,\n contentSubtype: filterSettings.contentSubtype,\n sortBy: {\n sort: filterSettings.sortValue,\n order: filterSettings.sortDir\n },\n searchString: filterSettings.searchString,\n source: props.source,\n jwt: props.jwt,\n host: props.host,\n refreshToken: props.refreshToken,\n context: {\n type: props.contextType,\n id: props.contextId\n }\n }, contentProps))))) : null));\n}\nCanvasContentTray.globalOpenCount = 0;\n\nfunction requiredWithoutSource(props, propName, componentName) {\n if (props.source == null && props[propName] == null) {\n throw new Error(`The prop \\`${propName}\\` is marked as required in \\`${componentName}\\`, but its value is \\`${props[propName]}\\`.`);\n }\n}\n\nconst trayPropsMap = {\n canUploadFiles: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"].isRequired,\n contextId: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n // initial value indicating the user's context (e.g. student v teacher), not the tray's\n contextType: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n // initial value indicating the user's context, not the tray's\n containingContext: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n contextType: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n contextId: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n userId: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired\n }),\n filesTabDisabled: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"],\n host: requiredWithoutSource,\n jwt: requiredWithoutSource,\n refreshToken: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n source: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n fetchImages: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired\n }),\n themeUrl: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"]\n};\nconst trayPropTypes = Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])(trayPropsMap);\nCanvasContentTray.propTypes = {\n bridge: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"instanceOf\"])(_bridge_Bridge__WEBPACK_IMPORTED_MODULE_8__[\"default\"]).isRequired,\n editor: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n id: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"]\n }).isRequired,\n onTrayClosing: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n // called with true when the tray starts closing, false once closed\n ...trayPropsMap\n}; // the way we define trayProps, eslint doesn't recognize the following as props\n\n/* eslint-disable react/default-props-match-prop-types */\n\nCanvasContentTray.defaultProps = {\n canUploadFiles: false,\n filesTabDisabled: false,\n refreshToken: null,\n source: null,\n themeUrl: null\n};\n/* eslint-enable react/default-props-match-prop-types */\n\n//# sourceURL=webpack:///./src/rce/plugins/shared/CanvasContentTray.js?");
|
|
17629
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return CanvasContentTray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"trayPropTypes\", function() { return trayPropTypes; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _instructure_ui_tray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @instructure/ui-tray */ \"../../node_modules/@instructure/ui-tray/es/index.js\");\n/* harmony import */ var _instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @instructure/ui-buttons */ \"../../node_modules/@instructure/ui-buttons/es/index.js\");\n/* harmony import */ var _instructure_ui_heading__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-heading */ \"../../node_modules/@instructure/ui-heading/es/index.js\");\n/* harmony import */ var _instructure_ui_spinner__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-spinner */ \"../../node_modules/@instructure/ui-spinner/es/index.js\");\n/* harmony import */ var _instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-flex */ \"../../node_modules/@instructure/ui-flex/es/index.js\");\n/* harmony import */ var _ErrorBoundary__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ErrorBoundary */ \"./src/rce/plugins/shared/ErrorBoundary.js\");\n/* harmony import */ var _bridge_Bridge__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../bridge/Bridge */ \"./src/bridge/Bridge.js\");\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _Filter__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Filter */ \"./src/rce/plugins/shared/Filter.js\");\n/* harmony import */ var _StoreContext__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./StoreContext */ \"./src/rce/plugins/shared/StoreContext.js\");\n/* harmony import */ var _trayUtils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./trayUtils */ \"./src/rce/plugins/shared/trayUtils.js\");\n/* harmony import */ var _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../instructure_icon_maker/svg/constants */ \"./src/rce/plugins/instructure_icon_maker/svg/constants.js\");\n/* harmony import */ var _ContentSelection__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./ContentSelection */ \"./src/rce/plugins/shared/ContentSelection.js\");\n/* harmony import */ var _linkUtils__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./linkUtils */ \"./src/rce/plugins/shared/linkUtils.js\");\n/* harmony import */ var _LinkDisplay__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./LinkDisplay */ \"./src/rce/plugins/shared/LinkDisplay.js\");\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Returns the translated tray label\n * @param {string} contentType - The type of content showing on tray\n * @param {string} contentSubtype - The current subtype of content loaded in the tray\n * @param {string} contextType - The user's context\n * @returns {string}\n */\n\nfunction getTrayLabel(contentType, contentSubtype, contextType) {\n if (contentType === 'links' && contextType === 'course') {\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Course Links');\n } else if (contentType === 'links' && contextType === 'group') {\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Group Links');\n }\n\n switch (contentSubtype) {\n case _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_13__[\"ICON_MAKER_ICONS\"]:\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Icon Maker Icons');\n\n case 'images':\n if (contentType === 'course_files') return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Course Images');\n if (contentType === 'group_files') return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Group Images');\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('User Images');\n\n case 'media':\n if (contentType === 'course_files') return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Course Media');\n if (contentType === 'group_files') return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Group Media');\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('User Media');\n\n case 'documents':\n if (contentType === 'course_files') return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Course Documents');\n if (contentType === 'group_files') return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Group Documents');\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('User Documents');\n\n default:\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Tray');\n // Shouldn't ever get here\n }\n}\n\nconst thePanels = {\n icon_maker_icons: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(0), __webpack_require__.e(3), __webpack_require__.e(4), __webpack_require__.e(1), __webpack_require__.e(32)]).then(__webpack_require__.bind(null, /*! ../instructure_icon_maker/components/SavedIconMakerList */ \"./src/rce/plugins/instructure_icon_maker/components/SavedIconMakerList.js\"))),\n links: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(2), __webpack_require__.e(28)]).then(__webpack_require__.bind(null, /*! ../instructure_links/components/LinksPanel */ \"./src/rce/plugins/instructure_links/components/LinksPanel.js\"))),\n images: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(0), __webpack_require__.e(3), __webpack_require__.e(4), __webpack_require__.e(1), __webpack_require__.e(33)]).then(__webpack_require__.bind(null, /*! ../instructure_image/Images */ \"./src/rce/plugins/instructure_image/Images/index.js\"))),\n documents: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(1), __webpack_require__.e(34)]).then(__webpack_require__.bind(null, /*! ../instructure_documents/components/DocumentsPanel */ \"./src/rce/plugins/instructure_documents/components/DocumentsPanel.js\"))),\n media: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(1), __webpack_require__.e(35)]).then(__webpack_require__.bind(null, /*! ../instructure_record/MediaPanel */ \"./src/rce/plugins/instructure_record/MediaPanel/index.js\"))),\n all: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.lazy(() => Promise.all(/*! import() */[__webpack_require__.e(0), __webpack_require__.e(29), __webpack_require__.e(37)]).then(__webpack_require__.bind(null, /*! ./FileBrowser */ \"./src/rce/plugins/shared/FileBrowser.js\"))),\n unknown: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.lazy(() => __webpack_require__.e(/*! import() */ 74).then(__webpack_require__.bind(null, /*! ./UnknownFileTypePanel */ \"./src/rce/plugins/shared/UnknownFileTypePanel.js\")))\n}; // Returns a Suspense wrapped lazy loaded component\n// pulled from useLazy's cache\n\nfunction DynamicPanel(props) {\n let key = '';\n\n if (props.contentType === 'links') {\n key = 'links';\n } else {\n key = props.contentSubtype in thePanels ? props.contentSubtype : 'unknown';\n }\n\n const Component = thePanels[key];\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"Suspense\"], {\n fallback: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_spinner__WEBPACK_IMPORTED_MODULE_5__[\"Spinner\"], {\n renderTitle: renderLoading,\n size: \"large\"\n })\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Component, props));\n}\n\nfunction renderLoading() {\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Loading');\n}\n\nconst FILTER_SETTINGS_BY_PLUGIN = {\n user_documents: {\n contextType: 'user',\n contentType: 'user_files',\n contentSubtype: 'documents',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n course_documents: {\n contextType: 'course',\n contentType: 'course_files',\n contentSubtype: 'documents',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n group_documents: {\n contextType: 'group',\n contentType: 'group_files',\n contentSubtype: 'documents',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n user_images: {\n contextType: 'user',\n contentType: 'user_files',\n contentSubtype: 'images',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n course_images: {\n contextType: 'course',\n contentType: 'course_files',\n contentSubtype: 'images',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n group_images: {\n contextType: 'group',\n contentType: 'group_files',\n contentSubtype: 'images',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n user_media: {\n contextType: 'user',\n contentType: 'user_files',\n contentSubtype: 'media',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n course_media: {\n contextType: 'course',\n contentType: 'course_files',\n contentSubtype: 'media',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n group_media: {\n contextType: 'group',\n contentType: 'group_files',\n contentSubtype: 'media',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n course_links: {\n contextType: 'course',\n contentType: 'links',\n contentSubtype: 'all',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n course_link_edit: {\n contextType: 'course',\n contentType: 'links',\n contentSubtype: 'edit',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n group_links: {\n contextType: 'group',\n contentType: 'links',\n contentSubtype: 'all',\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n list_icon_maker_icons: {\n contextType: 'course',\n contentType: 'course_files',\n contentSubtype: _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_13__[\"ICON_MAKER_ICONS\"],\n sortValue: 'date_added',\n sortDir: 'desc',\n searchString: ''\n },\n all: {\n contextType: 'course',\n contentType: 'course_files',\n contentSubtype: 'all',\n sortValue: 'alphabetical',\n sortDir: 'asc',\n searchString: ''\n }\n};\n\nfunction isLoading(cprops) {\n var _cprops$collections$a, _cprops$collections$a2, _cprops$collections$d, _cprops$collections$m, _cprops$collections$q, _cprops$collections$w, _cprops$documents$cou, _cprops$documents$use, _cprops$documents$gro, _cprops$media$course, _cprops$media$user, _cprops$media$group, _cprops$all_files;\n\n return ((_cprops$collections$a = cprops.collections.announcements) === null || _cprops$collections$a === void 0 ? void 0 : _cprops$collections$a.isLoading) || ((_cprops$collections$a2 = cprops.collections.assignments) === null || _cprops$collections$a2 === void 0 ? void 0 : _cprops$collections$a2.isLoading) || ((_cprops$collections$d = cprops.collections.discussions) === null || _cprops$collections$d === void 0 ? void 0 : _cprops$collections$d.isLoading) || ((_cprops$collections$m = cprops.collections.modules) === null || _cprops$collections$m === void 0 ? void 0 : _cprops$collections$m.isLoading) || ((_cprops$collections$q = cprops.collections.quizzes) === null || _cprops$collections$q === void 0 ? void 0 : _cprops$collections$q.isLoading) || ((_cprops$collections$w = cprops.collections.wikiPages) === null || _cprops$collections$w === void 0 ? void 0 : _cprops$collections$w.isLoading) || ((_cprops$documents$cou = cprops.documents.course) === null || _cprops$documents$cou === void 0 ? void 0 : _cprops$documents$cou.isLoading) || ((_cprops$documents$use = cprops.documents.user) === null || _cprops$documents$use === void 0 ? void 0 : _cprops$documents$use.isLoading) || ((_cprops$documents$gro = cprops.documents.group) === null || _cprops$documents$gro === void 0 ? void 0 : _cprops$documents$gro.isLoading) || ((_cprops$media$course = cprops.media.course) === null || _cprops$media$course === void 0 ? void 0 : _cprops$media$course.isLoading) || ((_cprops$media$user = cprops.media.user) === null || _cprops$media$user === void 0 ? void 0 : _cprops$media$user.isLoading) || ((_cprops$media$group = cprops.media.group) === null || _cprops$media$group === void 0 ? void 0 : _cprops$media$group.isLoading) || ((_cprops$all_files = cprops.all_files) === null || _cprops$all_files === void 0 ? void 0 : _cprops$all_files.isLoading);\n}\n/**\n * This component is used within various plugins to handle loading in content\n * from Canvas. It is essentially the main component.\n */\n\n\nfunction CanvasContentTray(props) {\n // should the tray be rendered open?\n const [isOpen, setIsOpen] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(false); // has the tray fully opened. we use this to defer rendering the content\n // until the tray is open.\n\n const [hasOpened, setHasOpened] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(false); // should we close the tray after the user clicks on something in it?\n\n const [hidingTrayOnAction, setHidingTrayOnAction] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(true);\n const trayRef = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useRef\"])(null);\n const scrollingAreaRef = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useRef\"])(null);\n const [filterSettings, setFilterSettings] = Object(_Filter__WEBPACK_IMPORTED_MODULE_10__[\"useFilterSettings\"])();\n const [isEditTray, setIsEditTray] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(false);\n const [link, setLink] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(null);\n const [linkText, setLinkText] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(null);\n const [placeholderText, setPlaceholderText] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(null);\n const Icon = Object(_linkUtils__WEBPACK_IMPORTED_MODULE_15__[\"getIcon\"])(link === null || link === void 0 ? void 0 : link.type);\n const {\n bridge,\n editor,\n onTrayClosing\n } = { ...props\n };\n const handleDismissTray = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useCallback\"])(() => {\n // return focus to the RCE if focus was on this tray\n if (trayRef.current && trayRef.current.contains(document.activeElement)) {\n bridge.focusActiveEditor(false);\n }\n\n onTrayClosing && onTrayClosing(CanvasContentTray.globalOpenCount); // tell RCEWrapper we're closing if we're open\n\n setIsOpen(false);\n }, [bridge, onTrayClosing]);\n Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"])(() => {\n const controller = {\n showTrayForPlugin(plugin) {\n // increment a counter that's used as the key when rendering\n // this gets us a new instance everytime, which is necessary\n // to get the queries run so we have up to date data.\n ++CanvasContentTray.globalOpenCount;\n setFilterSettings(FILTER_SETTINGS_BY_PLUGIN[plugin]);\n setIsOpen(true);\n\n if (plugin === 'course_link_edit') {\n setIsEditTray(true);\n const {\n fileName,\n contentType,\n url,\n published,\n text\n } = Object(_ContentSelection__WEBPACK_IMPORTED_MODULE_14__[\"getLinkContentFromEditor\"])(editor.editor);\n setLink({\n title: fileName,\n type: contentType,\n href: url,\n published\n });\n setLinkText(text);\n setPlaceholderText(text);\n } else {\n setIsEditTray(false);\n }\n },\n\n hideTray(forceClose) {\n if (forceClose || hidingTrayOnAction) {\n handleDismissTray();\n }\n }\n\n };\n bridge.attachController(controller, editor.id);\n return () => {\n bridge.detachController(editor.id);\n }; // it's OK the setFilterSettings is not a dependency\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [editor.id, bridge, handleDismissTray, hidingTrayOnAction]);\n Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"])(() => {\n if (hasOpened && scrollingAreaRef.current && !scrollingAreaRef.current.style.overscrollBehaviorY) {\n scrollingAreaRef.current.style.overscrollBehaviorY = 'contain';\n }\n }, [hasOpened]);\n\n function handleOpenTray() {\n bridge.focusEditor(editor);\n setHasOpened(true);\n }\n\n function handleExitTray() {\n onTrayClosing && onTrayClosing(true); // tell RCEWrapper we're closing\n }\n\n function handleCloseTray() {\n setHasOpened(false);\n onTrayClosing && onTrayClosing(false); // tell RCEWrapper we're closed\n }\n\n function handleReplaceButton() {\n handleDismissTray();\n const newLink = { ...link,\n forceRename: true,\n text: linkText || placeholderText\n };\n bridge.insertLink(newLink);\n }\n\n function renderFooter() {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"].Item, {\n background: \"secondary\",\n borderWidth: \"small none none none\",\n padding: \"small medium\",\n textAlign: \"end\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_3__[\"Button\"], {\n onClick: handleDismissTray\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Cancel')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_3__[\"Button\"], {\n margin: \"0 0 0 x-small\",\n color: \"primary\",\n onClick: handleReplaceButton,\n \"data-testid\": \"replace-link-button\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Replace')));\n }\n\n function handleFilterChange(newFilter, onChangeContext, onChangeSearchString, onChangeSortBy) {\n const newFilterSettings = { ...newFilter\n };\n\n if (newFilterSettings.sortValue) {\n newFilterSettings.sortDir = newFilterSettings.sortValue === 'alphabetical' ? 'asc' : 'desc';\n onChangeSortBy({\n sort: newFilterSettings.sortValue,\n dir: newFilterSettings.sortDir\n });\n }\n\n if ('searchString' in newFilterSettings && filterSettings.searchString !== newFilterSettings.searchString) {\n onChangeSearchString(newFilterSettings.searchString);\n }\n\n setFilterSettings(newFilterSettings);\n\n if (newFilterSettings.contentType) {\n let contextType, contextId;\n\n switch (newFilterSettings.contentType) {\n case 'user_files':\n contextType = 'user';\n contextId = props.containingContext.userId;\n break;\n\n case 'group_files':\n contextType = 'group';\n contextId = props.containingContext.contextId;\n break;\n\n case 'course_files':\n contextType = props.contextType;\n contextId = props.containingContext.contextId;\n break;\n\n case 'links':\n contextType = props.containingContext.contextType;\n contextId = props.containingContext.contextId;\n }\n\n onChangeContext({\n contextType,\n contextId\n });\n }\n }\n\n function getHeader() {\n return isEditTray ? Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Edit Course Link') : Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Add');\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_StoreContext__WEBPACK_IMPORTED_MODULE_11__[\"StoreProvider\"], Object.assign({}, props, {\n key: CanvasContentTray.globalOpenCount,\n contextType: filterSettings.contextType || props.contextType\n }), contentProps => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_tray__WEBPACK_IMPORTED_MODULE_2__[\"Tray\"], {\n \"data-mce-component\": true,\n \"data-testid\": \"CanvasContentTray\",\n label: getTrayLabel(filterSettings.contentType, filterSettings.contentSubtype, contentProps.contextType),\n open: isOpen,\n placement: \"end\",\n size: \"regular\",\n shouldContainFocus: true,\n shouldReturnFocus: false,\n shouldCloseOnDocumentClick: false,\n onDismiss: handleDismissTray,\n onClose: handleCloseTray,\n onExit: handleExitTray,\n onOpen: handleOpenTray,\n onEntered: () => {\n const c = document.querySelector('[role=\"main\"]');\n let target_w = 0;\n\n if (c) {\n var _trayRef$current;\n\n const margin = window.getComputedStyle(c).direction === 'ltr' ? document.body.getBoundingClientRect().right - c.getBoundingClientRect().right : c.getBoundingClientRect().left;\n target_w = c.offsetWidth - ((_trayRef$current = trayRef.current) === null || _trayRef$current === void 0 ? void 0 : _trayRef$current.offsetWidth) + margin;\n\n if (target_w >= 320 && target_w < c.offsetWidth) {\n c.style.boxSizing = 'border-box';\n c.style.width = `${target_w}px`;\n }\n }\n\n setHidingTrayOnAction(target_w < 320);\n },\n onExiting: () => {\n const c = document.querySelector('[role=\"main\"]');\n if (c) c.style.width = '';\n },\n contentRef: el => trayRef.current = el\n }, isOpen && hasOpened ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"], {\n direction: \"column\",\n as: \"div\",\n height: Object(_trayUtils__WEBPACK_IMPORTED_MODULE_12__[\"getTrayHeight\"])(),\n overflowY: \"hidden\",\n tabIndex: \"-1\",\n \"data-canvascontenttray-content\": true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"].Item, {\n padding: \"medium\",\n shadow: \"above\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"], {\n margin: \"none none medium none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"].Item, {\n shouldgrow: true,\n shouldshrink: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_heading__WEBPACK_IMPORTED_MODULE_4__[\"Heading\"], {\n level: \"h2\"\n }, getHeader())), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_3__[\"CloseButton\"], {\n placement: \"end\",\n onClick: handleDismissTray,\n \"data-testid\": \"CloseButton_ContentTray\",\n screenReaderLabel: Object(_format_message__WEBPACK_IMPORTED_MODULE_9__[\"default\"])('Close')\n }))), isEditTray && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_LinkDisplay__WEBPACK_IMPORTED_MODULE_16__[\"LinkDisplay\"], {\n linkText: linkText,\n Icon: Icon,\n placeholderText: placeholderText,\n linkFileName: (link === null || link === void 0 ? void 0 : link.title) || '',\n published: (link === null || link === void 0 ? void 0 : link.published) || false,\n handleTextChange: setLinkText\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Filter__WEBPACK_IMPORTED_MODULE_10__[\"default\"], Object.assign({}, filterSettings, {\n userContextType: props.contextType,\n containingContextType: props.containingContext.contextType,\n onChange: newFilter => {\n handleFilterChange(newFilter, contentProps.onChangeContext, contentProps.onChangeSearchString, contentProps.onChangeSortBy);\n },\n isContentLoading: isLoading(contentProps),\n use_rce_icon_maker: props.use_rce_icon_maker\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"].Item, {\n grow: true,\n shrink: true,\n margin: \"xx-small xxx-small 0\",\n elementRef: el => scrollingAreaRef.current = el\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"], {\n justifyItems: \"space-between\",\n direction: \"column\",\n height: \"100%\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_6__[\"Flex\"].Item, {\n shouldGrow: true,\n shouldShrink: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_ErrorBoundary__WEBPACK_IMPORTED_MODULE_7__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(DynamicPanel, Object.assign({\n contentType: filterSettings.contentType,\n contentSubtype: filterSettings.contentSubtype,\n sortBy: {\n sort: filterSettings.sortValue,\n order: filterSettings.sortDir\n },\n searchString: filterSettings.searchString,\n source: props.source,\n jwt: props.jwt,\n host: props.host,\n refreshToken: props.refreshToken,\n context: {\n type: props.contextType,\n id: props.contextId\n },\n editing: isEditTray,\n onEditClick: setLink\n }, contentProps)))), isEditTray && renderFooter()))) : null));\n}\nCanvasContentTray.globalOpenCount = 0;\n\nfunction requiredWithoutSource(props, propName, componentName) {\n if (props.source == null && props[propName] == null) {\n throw new Error(`The prop \\`${propName}\\` is marked as required in \\`${componentName}\\`, but its value is \\`${props[propName]}\\`.`);\n }\n}\n\nconst trayPropsMap = {\n canUploadFiles: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"].isRequired,\n contextId: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n // initial value indicating the user's context (e.g. student v teacher), not the tray's\n contextType: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n // initial value indicating the user's context, not the tray's\n containingContext: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n contextType: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n contextId: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n userId: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired\n }),\n filesTabDisabled: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"],\n host: requiredWithoutSource,\n jwt: requiredWithoutSource,\n refreshToken: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n source: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n fetchImages: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired\n }),\n themeUrl: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"]\n};\nconst trayPropTypes = Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])(trayPropsMap);\nCanvasContentTray.propTypes = {\n bridge: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"instanceOf\"])(_bridge_Bridge__WEBPACK_IMPORTED_MODULE_8__[\"default\"]).isRequired,\n editor: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n id: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"]\n }).isRequired,\n onTrayClosing: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n // called with true when the tray starts closing, false once closed\n onEditClick: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n ...trayPropsMap\n}; // the way we define trayProps, eslint doesn't recognize the following as props\n\n/* eslint-disable react/default-props-match-prop-types */\n\nCanvasContentTray.defaultProps = {\n canUploadFiles: false,\n filesTabDisabled: false,\n refreshToken: null,\n source: null,\n themeUrl: null\n};\n/* eslint-enable react/default-props-match-prop-types */\n\n//# sourceURL=webpack:///./src/rce/plugins/shared/CanvasContentTray.js?");
|
|
17618
17630
|
|
|
17619
17631
|
/***/ }),
|
|
17620
17632
|
|
|
@@ -17626,7 +17638,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
17626
17638
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
17627
17639
|
|
|
17628
17640
|
"use strict";
|
|
17629
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LINK_TYPE\", function() { return LINK_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILE_LINK_TYPE\", function() { return FILE_LINK_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"IMAGE_EMBED_TYPE\", function() { return IMAGE_EMBED_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VIDEO_EMBED_TYPE\", function() { return VIDEO_EMBED_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TEXT_TYPE\", function() { return TEXT_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NONE_TYPE\", function() { return NONE_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DISPLAY_AS_LINK\", function() { return DISPLAY_AS_LINK; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DISPLAY_AS_EMBED\", function() { return DISPLAY_AS_EMBED; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DISPLAY_AS_EMBED_DISABLED\", function() { return DISPLAY_AS_EMBED_DISABLED; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DISPLAY_AS_DOWNLOAD_LINK\", function() { return DISPLAY_AS_DOWNLOAD_LINK; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asImageEmbed\", function() { return asImageEmbed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asLink\", function() { return asLink; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asVideoElement\", function() { return asVideoElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asAudioElement\", function() { return asAudioElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getContentFromElement\", function() { return getContentFromElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getContentFromEditor\", function() { return getContentFromEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getLinkContentFromEditor\", function() { return getLinkContentFromEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFileLink\", function() { return isFileLink; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isImageEmbed\", function() { return isImageEmbed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isVideoElement\", function() { return isVideoElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAudioElement\", function() { return isAudioElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"findMediaPlayerIframe\", function() { return findMediaPlayerIframe; });\n/* harmony import */ var _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../instructure_image/ImageEmbedOptions */ \"./src/rce/plugins/instructure_image/ImageEmbedOptions.js\");\n/* harmony import */ var _contentInsertionUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../contentInsertionUtils */ \"./src/rce/contentInsertionUtils.js\");\n/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! url */ \"../../node_modules/url/url.js\");\n/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(url__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../format-message */ \"./src/format-message.js\");\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\nconst FILE_DOWNLOAD_PATH_REGEX = /^\\/(courses\\/\\d+\\/)?files\\/\\d+\\/download$/;\nconst LINK_TYPE = 'link';\nconst FILE_LINK_TYPE = 'file-link';\nconst IMAGE_EMBED_TYPE = 'image-embed';\nconst VIDEO_EMBED_TYPE = 'video-embed';\nconst TEXT_TYPE = 'text';\nconst NONE_TYPE = 'none';\nconst DISPLAY_AS_LINK = 'link';\nconst DISPLAY_AS_EMBED = 'embed';\nconst DISPLAY_AS_EMBED_DISABLED = 'embed-disabled';\nconst DISPLAY_AS_DOWNLOAD_LINK = 'download-link';\nfunction asImageEmbed($element) {\n const nodeName = $element.nodeName.toLowerCase();\n\n if (nodeName !== 'img') {\n return null;\n }\n\n return { ...Object(_instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_0__[\"fromImageEmbed\"])($element),\n $element,\n type: IMAGE_EMBED_TYPE\n };\n}\nfunction asLink($element, editor) {\n let $link = $element;\n\n if ($link.tagName !== 'A') {\n // the user may have selected some text that is w/in a link\n // but didn't include the <a>. Let's see if that's true\n $link = editor.dom.getParent($link, 'a[href]');\n }\n\n if (!$link || $link.tagName !== 'A' || !$link.href) {\n return null;\n }\n\n const {\n pathname\n } = url__WEBPACK_IMPORTED_MODULE_2__[\"parse\"]($link.href);\n const type = FILE_DOWNLOAD_PATH_REGEX.test(pathname) ? FILE_LINK_TYPE : LINK_TYPE;\n let displayAs = DISPLAY_AS_LINK;\n\n if ($link.classList.contains('no_preview')) {\n displayAs = DISPLAY_AS_DOWNLOAD_LINK;\n } else if ($link.classList.contains('auto_open')) {\n displayAs = DISPLAY_AS_EMBED;\n } else if ($link.classList.contains('inline_disabled')) {\n displayAs = DISPLAY_AS_EMBED_DISABLED;\n }\n\n const isPreviewable = $link.hasAttribute('data-canvas-previewable') || $link.classList.contains('instructure_scribd_file'); // needed to cover docs linked while there was a bug didn't add the data attr.\n\n return {\n $element: $link,\n displayAs,\n text: $link.textContent,\n onlyTextSelected: Object(_contentInsertionUtils__WEBPACK_IMPORTED_MODULE_1__[\"isOnlyTextSelected\"])(editor.selection.getContent()),\n type,\n isPreviewable,\n url: $link.href\n };\n} // the video element is a bit tricky.\n// tinymce won't let me add many attributes to the iframe,\n// even though I've listed them in tinymce.config.js\n// extended_valid_elements.\n// we have to rely on the span tinymce wraps around the iframe\n// and it's attributes, even though this could change with future\n// tinymce releases.\n// see https://github.com/tinymce/tinymce/issues/5181\n\nfunction asVideoElement($element) {\n var _$videoElem$parentEle;\n\n const $videoElem = findMediaPlayerIframe($element);\n\n if (!isVideoElement($videoElem)) {\n return null;\n }\n\n return { ...Object(_instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_0__[\"fromVideoEmbed\"])($videoElem),\n $element,\n type: VIDEO_EMBED_TYPE,\n id: ((_$videoElem$parentEle = $videoElem.parentElement) === null || _$videoElem$parentEle === void 0 ? void 0 : _$videoElem$parentEle.getAttribute('data-mce-p-data-media-id')) || $videoElem.getAttribute('data-mce-p-data-media-id')\n };\n}\nfunction asAudioElement($element) {\n var _$element$parentEleme;\n\n if (!$element) {\n return null;\n }\n\n const $audioIframe = $element.tagName === 'IFRAME' ? $element : $element.firstElementChild;\n const $tinymceIframeShim = $audioIframe.parentElement;\n const title = ($audioIframe.getAttribute('title') || $tinymceIframeShim.getAttribute('data-mce-p-title') || '').replace(Object(_format_message__WEBPACK_IMPORTED_MODULE_3__[\"default\"])('Video player for '), '');\n const audioOptions = {\n titleText: title,\n id: ((_$element$parentEleme = $element.parentElement) === null || _$element$parentEleme === void 0 ? void 0 : _$element$parentEleme.getAttribute('data-mce-p-data-media-id')) || $element.getAttribute('data-mce-p-data-media-id')\n };\n\n if ($audioIframe.tagName === 'IFRAME') {\n const audioDoc = $audioIframe.contentDocument;\n\n try {\n var _audioDoc$querySelect;\n\n const trackSJson = (_audioDoc$querySelect = audioDoc.querySelector('[data-tracks]')) === null || _audioDoc$querySelect === void 0 ? void 0 : _audioDoc$querySelect.getAttribute('data-tracks');\n\n if (trackSJson) {\n audioOptions.tracks = JSON.parse(trackSJson);\n } // eslint-disable-next-line no-empty\n\n } catch (e) {}\n }\n\n return audioOptions;\n}\n\nfunction asText($element, editor) {\n const text = editor && editor.selection.getContent({\n format: 'text'\n });\n\n if (!text) {\n return null;\n }\n\n return {\n $element,\n text,\n type: TEXT_TYPE\n };\n}\n\nfunction asNone($element) {\n return {\n $element: $element || null,\n type: NONE_TYPE\n };\n}\n\nfunction getContentFromElement($element, editor) {\n if (!($element && $element.nodeName)) {\n return asNone();\n }\n\n const content = asLink($element, editor) || asImageEmbed($element) || asVideoElement($element) || asText($element, editor) || asNone($element);\n return content;\n}\nfunction getContentFromEditor(editor) {\n let expandSelection = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n let $element;\n\n if (editor && editor.selection) {\n // tinymce selects the element around the cursor, whether it's\n // content is selected in the copy/paste sense or not.\n // We want to include this content if it's _really_ selected,\n // or if editing the surrounding link, but not if creating a new link\n if (expandSelection || !editor.selection.isCollapsed()) {\n $element = editor.selection.getNode();\n }\n }\n\n if ($element == null) {\n return asNone();\n }\n\n return getContentFromElement($element, editor);\n} // if the selection is somewhere w/in a <a>,\n// find the <a> and return it's info\n\nfunction getLinkContentFromEditor(editor) {\n const $element = editor.selection.getNode();\n return $element ? asLink($element, editor) : null;\n}\nfunction isFileLink($element, editor) {\n return !!asLink($element, editor);\n}\nfunction isImageEmbed($element) {\n return !!asImageEmbed($element) && !$element.getAttribute('data-placeholder-for');\n}\n\nfunction isMediaElement($element, mediaType) {\n var _tinymceIframeShim$fi;\n\n // the video is hosted in an iframe, but tinymce\n // wraps it in a span with swizzled attribute names\n if (!($element !== null && $element !== void 0 && $element.getAttribute)) {\n return false;\n }\n\n const tinymceIframeShim = $element.tagName === 'IFRAME' ? $element.parentElement : $element;\n\n if (((_tinymceIframeShim$fi = tinymceIframeShim.firstElementChild) === null || _tinymceIframeShim$fi === void 0 ? void 0 : _tinymceIframeShim$fi.tagName) !== 'IFRAME') {\n return false;\n }\n\n const media_obj_id = tinymceIframeShim.getAttribute('data-mce-p-data-media-id');\n\n if (!media_obj_id) {\n return false;\n }\n\n const media_type = tinymceIframeShim.getAttribute('data-mce-p-data-media-type');\n return media_type === mediaType;\n}\n\nfunction isVideoElement($element) {\n return isMediaElement($element, 'video');\n}\nfunction isAudioElement($element) {\n return isMediaElement($element, 'audio');\n}\nfunction findMediaPlayerIframe(elem) {\n var _elem$firstElementChi;\n\n if (elem.tagName === 'IFRAME') {\n // we have the iframe\n return elem;\n }\n\n if (((_elem$firstElementChi = elem.firstElementChild) === null || _elem$firstElementChi === void 0 ? void 0 : _elem$firstElementChi.tagName) === 'IFRAME') {\n // we have the shim tinymce puts around the iframe\n return elem.firstElementChild;\n }\n\n if (elem.classList.contains('mce-shim')) {\n var _elem$previousSibling;\n\n // tinymce puts a <span class='mce-shin'> after the iframe (since v5, I think)\n if (((_elem$previousSibling = elem.previousSibling) === null || _elem$previousSibling === void 0 ? void 0 : _elem$previousSibling.tagName) === 'IFRAME') {\n return elem.previousSibling;\n }\n }\n\n return null;\n}\n\n//# sourceURL=webpack:///./src/rce/plugins/shared/ContentSelection.js?");
|
|
17641
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LINK_TYPE\", function() { return LINK_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILE_LINK_TYPE\", function() { return FILE_LINK_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"IMAGE_EMBED_TYPE\", function() { return IMAGE_EMBED_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VIDEO_EMBED_TYPE\", function() { return VIDEO_EMBED_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TEXT_TYPE\", function() { return TEXT_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NONE_TYPE\", function() { return NONE_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DISPLAY_AS_LINK\", function() { return DISPLAY_AS_LINK; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DISPLAY_AS_EMBED\", function() { return DISPLAY_AS_EMBED; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DISPLAY_AS_EMBED_DISABLED\", function() { return DISPLAY_AS_EMBED_DISABLED; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DISPLAY_AS_DOWNLOAD_LINK\", function() { return DISPLAY_AS_DOWNLOAD_LINK; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asImageEmbed\", function() { return asImageEmbed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asLink\", function() { return asLink; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asVideoElement\", function() { return asVideoElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asAudioElement\", function() { return asAudioElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getContentFromElement\", function() { return getContentFromElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getContentFromEditor\", function() { return getContentFromEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getLinkContentFromEditor\", function() { return getLinkContentFromEditor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFileLink\", function() { return isFileLink; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isImageEmbed\", function() { return isImageEmbed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isVideoElement\", function() { return isVideoElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAudioElement\", function() { return isAudioElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"findMediaPlayerIframe\", function() { return findMediaPlayerIframe; });\n/* harmony import */ var _instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../instructure_image/ImageEmbedOptions */ \"./src/rce/plugins/instructure_image/ImageEmbedOptions.js\");\n/* harmony import */ var _contentInsertionUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../contentInsertionUtils */ \"./src/rce/contentInsertionUtils.js\");\n/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! url */ \"../../node_modules/url/url.js\");\n/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(url__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../format-message */ \"./src/format-message.js\");\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\nconst FILE_DOWNLOAD_PATH_REGEX = /^\\/(courses\\/\\d+\\/)?files\\/\\d+\\/download$/;\nconst LINK_TYPE = 'link';\nconst FILE_LINK_TYPE = 'file-link';\nconst IMAGE_EMBED_TYPE = 'image-embed';\nconst VIDEO_EMBED_TYPE = 'video-embed';\nconst TEXT_TYPE = 'text';\nconst NONE_TYPE = 'none';\nconst DISPLAY_AS_LINK = 'link';\nconst DISPLAY_AS_EMBED = 'embed';\nconst DISPLAY_AS_EMBED_DISABLED = 'embed-disabled';\nconst DISPLAY_AS_DOWNLOAD_LINK = 'download-link';\nfunction asImageEmbed($element) {\n const nodeName = $element.nodeName.toLowerCase();\n\n if (nodeName !== 'img') {\n return null;\n }\n\n return { ...Object(_instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_0__[\"fromImageEmbed\"])($element),\n $element,\n type: IMAGE_EMBED_TYPE\n };\n}\nfunction asLink($element, editor) {\n let $link = $element;\n\n if ($link.tagName !== 'A') {\n // the user may have selected some text that is w/in a link\n // but didn't include the <a>. Let's see if that's true\n $link = editor.dom.getParent($link, 'a[href]');\n }\n\n if (!$link || $link.tagName !== 'A' || !$link.href) {\n return null;\n }\n\n const {\n pathname\n } = url__WEBPACK_IMPORTED_MODULE_2__[\"parse\"]($link.href);\n const type = FILE_DOWNLOAD_PATH_REGEX.test(pathname) ? FILE_LINK_TYPE : LINK_TYPE;\n let displayAs = DISPLAY_AS_LINK;\n\n if ($link.classList.contains('no_preview')) {\n displayAs = DISPLAY_AS_DOWNLOAD_LINK;\n } else if ($link.classList.contains('auto_open')) {\n displayAs = DISPLAY_AS_EMBED;\n } else if ($link.classList.contains('inline_disabled')) {\n displayAs = DISPLAY_AS_EMBED_DISABLED;\n }\n\n const contentType = $link.getAttribute('data-course-type');\n const fileName = $link.getAttribute('title');\n const published = $link.getAttribute('data-published') === 'true';\n const isPreviewable = $link.hasAttribute('data-canvas-previewable') || $link.classList.contains('instructure_scribd_file'); // needed to cover docs linked while there was a bug didn't add the data attr.\n\n return {\n $element: $link,\n displayAs,\n text: $link.textContent,\n onlyTextSelected: Object(_contentInsertionUtils__WEBPACK_IMPORTED_MODULE_1__[\"isOnlyTextSelected\"])(editor.selection.getContent()),\n type,\n isPreviewable,\n url: $link.href,\n contentType,\n fileName,\n published\n };\n} // the video element is a bit tricky.\n// tinymce won't let me add many attributes to the iframe,\n// even though I've listed them in tinymce.config.js\n// extended_valid_elements.\n// we have to rely on the span tinymce wraps around the iframe\n// and it's attributes, even though this could change with future\n// tinymce releases.\n// see https://github.com/tinymce/tinymce/issues/5181\n\nfunction asVideoElement($element) {\n var _$videoElem$parentEle;\n\n const $videoElem = findMediaPlayerIframe($element);\n\n if (!isVideoElement($videoElem)) {\n return null;\n }\n\n return { ...Object(_instructure_image_ImageEmbedOptions__WEBPACK_IMPORTED_MODULE_0__[\"fromVideoEmbed\"])($videoElem),\n $element,\n type: VIDEO_EMBED_TYPE,\n id: ((_$videoElem$parentEle = $videoElem.parentElement) === null || _$videoElem$parentEle === void 0 ? void 0 : _$videoElem$parentEle.getAttribute('data-mce-p-data-media-id')) || $videoElem.getAttribute('data-mce-p-data-media-id')\n };\n}\nfunction asAudioElement($element) {\n var _$element$parentEleme;\n\n if (!$element) {\n return null;\n }\n\n const $audioIframe = $element.tagName === 'IFRAME' ? $element : $element.firstElementChild;\n const $tinymceIframeShim = $audioIframe.parentElement;\n const title = ($audioIframe.getAttribute('title') || $tinymceIframeShim.getAttribute('data-mce-p-title') || '').replace(Object(_format_message__WEBPACK_IMPORTED_MODULE_3__[\"default\"])('Video player for '), '');\n const audioOptions = {\n titleText: title,\n id: ((_$element$parentEleme = $element.parentElement) === null || _$element$parentEleme === void 0 ? void 0 : _$element$parentEleme.getAttribute('data-mce-p-data-media-id')) || $element.getAttribute('data-mce-p-data-media-id')\n };\n\n if ($audioIframe.tagName === 'IFRAME') {\n const audioDoc = $audioIframe.contentDocument;\n\n try {\n var _audioDoc$querySelect;\n\n const trackSJson = (_audioDoc$querySelect = audioDoc.querySelector('[data-tracks]')) === null || _audioDoc$querySelect === void 0 ? void 0 : _audioDoc$querySelect.getAttribute('data-tracks');\n\n if (trackSJson) {\n audioOptions.tracks = JSON.parse(trackSJson);\n } // eslint-disable-next-line no-empty\n\n } catch (e) {}\n }\n\n return audioOptions;\n}\n\nfunction asText($element, editor) {\n const text = editor && editor.selection.getContent({\n format: 'text'\n });\n\n if (!text) {\n return null;\n }\n\n return {\n $element,\n text,\n type: TEXT_TYPE\n };\n}\n\nfunction asNone($element) {\n return {\n $element: $element || null,\n type: NONE_TYPE\n };\n}\n\nfunction getContentFromElement($element, editor) {\n if (!($element && $element.nodeName)) {\n return asNone();\n }\n\n const content = asLink($element, editor) || asImageEmbed($element) || asVideoElement($element) || asText($element, editor) || asNone($element);\n return content;\n}\nfunction getContentFromEditor(editor) {\n let expandSelection = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n let $element;\n\n if (editor && editor.selection) {\n // tinymce selects the element around the cursor, whether it's\n // content is selected in the copy/paste sense or not.\n // We want to include this content if it's _really_ selected,\n // or if editing the surrounding link, but not if creating a new link\n if (expandSelection || !editor.selection.isCollapsed()) {\n $element = editor.selection.getNode();\n }\n }\n\n if ($element == null) {\n return asNone();\n }\n\n return getContentFromElement($element, editor);\n} // if the selection is somewhere w/in a <a>,\n// find the <a> and return it's info\n\nfunction getLinkContentFromEditor(editor) {\n const $element = editor.selection.getNode();\n return $element ? asLink($element, editor) : null;\n}\nfunction isFileLink($element, editor) {\n return !!asLink($element, editor);\n}\nfunction isImageEmbed($element) {\n return !!asImageEmbed($element) && !$element.getAttribute('data-placeholder-for');\n}\n\nfunction isMediaElement($element, mediaType) {\n var _tinymceIframeShim$fi;\n\n // the video is hosted in an iframe, but tinymce\n // wraps it in a span with swizzled attribute names\n if (!($element !== null && $element !== void 0 && $element.getAttribute)) {\n return false;\n }\n\n const tinymceIframeShim = $element.tagName === 'IFRAME' ? $element.parentElement : $element;\n\n if (((_tinymceIframeShim$fi = tinymceIframeShim.firstElementChild) === null || _tinymceIframeShim$fi === void 0 ? void 0 : _tinymceIframeShim$fi.tagName) !== 'IFRAME') {\n return false;\n }\n\n const media_obj_id = tinymceIframeShim.getAttribute('data-mce-p-data-media-id');\n\n if (!media_obj_id) {\n return false;\n }\n\n const media_type = tinymceIframeShim.getAttribute('data-mce-p-data-media-type');\n return media_type === mediaType;\n}\n\nfunction isVideoElement($element) {\n return isMediaElement($element, 'video');\n}\nfunction isAudioElement($element) {\n return isMediaElement($element, 'audio');\n}\nfunction findMediaPlayerIframe(elem) {\n var _elem$firstElementChi;\n\n if (elem.tagName === 'IFRAME') {\n // we have the iframe\n return elem;\n }\n\n if (((_elem$firstElementChi = elem.firstElementChild) === null || _elem$firstElementChi === void 0 ? void 0 : _elem$firstElementChi.tagName) === 'IFRAME') {\n // we have the shim tinymce puts around the iframe\n return elem.firstElementChild;\n }\n\n if (elem.classList.contains('mce-shim')) {\n var _elem$previousSibling;\n\n // tinymce puts a <span class='mce-shin'> after the iframe (since v5, I think)\n if (((_elem$previousSibling = elem.previousSibling) === null || _elem$previousSibling === void 0 ? void 0 : _elem$previousSibling.tagName) === 'IFRAME') {\n return elem.previousSibling;\n }\n }\n\n return null;\n}\n\n//# sourceURL=webpack:///./src/rce/plugins/shared/ContentSelection.js?");
|
|
17630
17642
|
|
|
17631
17643
|
/***/ }),
|
|
17632
17644
|
|
|
@@ -17662,7 +17674,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
17662
17674
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
17663
17675
|
|
|
17664
17676
|
"use strict";
|
|
17665
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return DimensionsInput; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @instructure/ui-a11y-content */ \"../../node_modules/@instructure/ui-a11y-content/es/index.js\");\n/* harmony import */ var _instructure_ui_form_field__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @instructure/ui-form-field */ \"../../node_modules/@instructure/ui-form-field/es/index.js\");\n/* harmony import */ var _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-icons */ \"../../node_modules/@instructure/ui-icons/es/index.js\");\n/* harmony import */ var _instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-flex */ \"../../node_modules/@instructure/ui-flex/es/index.js\");\n/* harmony import */ var _instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-radio-input */ \"../../node_modules/@instructure/ui-radio-input/es/index.js\");\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _DimensionInput__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./DimensionInput */ \"./src/rce/plugins/shared/DimensionsInput/DimensionInput.js\");\n/* harmony import */ var _useDimensionsState__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./useDimensionsState */ \"./src/rce/plugins/shared/DimensionsInput/useDimensionsState.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useDimensionsState\", function() { return _useDimensionsState__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\n\nconst getMessage = (dimensionsState, minWidth, minHeight, minPercentage) => {\n let result = {\n text: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Aspect ratio will be preserved'),\n type: 'hint'\n };\n\n if (dimensionsState.usePercentageUnits) {\n if (!dimensionsState.isNumeric) {\n result = {\n text: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Percentage must be a number'),\n type: 'error'\n };\n } else if (!dimensionsState.isAtLeastMinimums) {\n result = {\n text: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Must be at least {percentage}%', {\n percentage: minPercentage\n }),\n type: 'error'\n };\n }\n } else if (!dimensionsState.isNumeric) {\n result = {\n text: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Width and height must be numbers'),\n type: 'error'\n };\n } else if (!dimensionsState.isAtLeastMinimums) {\n result = {\n text: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Must be at least {width} x {height}px', {\n width: minWidth,\n height: minHeight\n }),\n type: 'error'\n };\n }\n\n return result;\n};\n\nfunction DimensionsInput(props) {\n const {\n dimensionsState,\n minHeight,\n minWidth,\n minPercentage\n } = props;\n\n const handleDimensionTypeChange = e => {\n dimensionsState.setUsePercentageUnits(e.target.value === 'percentage');\n };\n\n const message = getMessage(dimensionsState, minWidth, minHeight, minPercentage);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"], {\n direction: \"column\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"].Item, {\n padding: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_6__[\"RadioInputGroup\"], {\n \"data-testid\": \"dimension-type\",\n name: \"dimension-type\",\n description: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Dimension Type'),\n onChange: handleDimensionTypeChange,\n value: dimensionsState.usePercentageUnits ? 'percentage' : 'pixels'\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_6__[\"RadioInput\"], {\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Pixels'),\n value: \"pixels\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_6__[\"RadioInput\"], {\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Percentage'),\n value: \"percentage\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"].Item, {\n padding: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_form_field__WEBPACK_IMPORTED_MODULE_3__[\"FormFieldGroup\"], {\n description: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_2__[\"ScreenReaderContent\"], null, Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Dimensions')),\n messages: [message]\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"], {\n alignItems: \"start\",\n direction: \"row\",\n \"data-testid\": \"input-number-container\"\n }, dimensionsState.usePercentageUnits ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"].Item, {\n shouldShrink: true,\n shouldGrow: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_DimensionInput__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n dimensionState: dimensionsState.percentageState,\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Percentage')\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"].Item, {\n padding: \"x-small small\"\n }, \"%\")) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"].Item, {\n shrink: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_DimensionInput__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n dimensionState: dimensionsState.widthState,\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Width'),\n minValue: minWidth\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"].Item, {\n padding: \"x-small small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_icons__WEBPACK_IMPORTED_MODULE_4__[\"IconLockLine\"], null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"].Item, {\n shrink: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_DimensionInput__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n dimensionState: dimensionsState.heightState,\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Height'),\n minValue: minHeight\n })))))));\n}\nDimensionsInput.propTypes = {\n dimensionsState: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n heightState: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n addOffset: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n inputValue: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n setInputValue: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired\n }).isRequired,\n isNumeric: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"].isRequired,\n usePercentageUnits: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"].isRequired,\n setUsePercentageUnits: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n widthState: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n addOffset: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n inputValue: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n setInputValue: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired\n }).isRequired,\n percentageState: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n addOffset: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n inputValue: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n setInputValue: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired\n }).isRequired\n }),\n minHeight: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"].isRequired,\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"].isRequired,\n minPercentage: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"].isRequired\n};\n\n//# sourceURL=webpack:///./src/rce/plugins/shared/DimensionsInput/index.js?");
|
|
17677
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return DimensionsInput; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @instructure/ui-a11y-content */ \"../../node_modules/@instructure/ui-a11y-content/es/index.js\");\n/* harmony import */ var _instructure_ui_form_field__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @instructure/ui-form-field */ \"../../node_modules/@instructure/ui-form-field/es/index.js\");\n/* harmony import */ var _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-icons */ \"../../node_modules/@instructure/ui-icons/es/index.js\");\n/* harmony import */ var _instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-flex */ \"../../node_modules/@instructure/ui-flex/es/index.js\");\n/* harmony import */ var _instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-radio-input */ \"../../node_modules/@instructure/ui-radio-input/es/index.js\");\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _DimensionInput__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./DimensionInput */ \"./src/rce/plugins/shared/DimensionsInput/DimensionInput.js\");\n/* harmony import */ var _useDimensionsState__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./useDimensionsState */ \"./src/rce/plugins/shared/DimensionsInput/useDimensionsState.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useDimensionsState\", function() { return _useDimensionsState__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\n\nconst getMessage = (dimensionsState, minWidth, minHeight, minPercentage) => {\n let result = {\n text: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Aspect ratio will be preserved'),\n type: 'hint'\n };\n\n if (dimensionsState.usePercentageUnits) {\n if (!dimensionsState.isNumeric) {\n result = {\n text: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Percentage must be a number'),\n type: 'error'\n };\n } else if (!dimensionsState.isAtLeastMinimums) {\n result = {\n text: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Must be at least {percentage}%', {\n percentage: minPercentage\n }),\n type: 'error'\n };\n }\n } else if (!dimensionsState.isNumeric) {\n result = {\n text: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Width and height must be numbers'),\n type: 'error'\n };\n } else if (!dimensionsState.isAtLeastMinimums) {\n result = {\n text: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Must be at least {width} x {height}px', {\n width: minWidth,\n height: minHeight\n }),\n type: 'error'\n };\n }\n\n return result;\n};\n\nfunction DimensionsInput(props) {\n const {\n dimensionsState,\n minHeight,\n minWidth,\n minPercentage\n } = props;\n\n const handleDimensionTypeChange = e => {\n dimensionsState.setUsePercentageUnits(e.target.value === 'percentage');\n };\n\n const message = getMessage(dimensionsState, minWidth, minHeight, minPercentage);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"], {\n direction: \"column\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"].Item, {\n padding: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_6__[\"RadioInputGroup\"], {\n \"data-testid\": \"dimension-type\",\n name: \"dimension-type\",\n description: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Dimension Type'),\n onChange: handleDimensionTypeChange,\n value: dimensionsState.usePercentageUnits ? 'percentage' : 'pixels'\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_6__[\"RadioInput\"], {\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Pixels'),\n value: \"pixels\"\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_radio_input__WEBPACK_IMPORTED_MODULE_6__[\"RadioInput\"], {\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Percentage'),\n value: \"percentage\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"].Item, {\n padding: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_form_field__WEBPACK_IMPORTED_MODULE_3__[\"FormFieldGroup\"], {\n description: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_2__[\"ScreenReaderContent\"], null, Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Dimensions')),\n messages: [message]\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"], {\n alignItems: \"start\",\n direction: \"row\",\n \"data-testid\": \"input-number-container\"\n }, dimensionsState.usePercentageUnits ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"].Item, {\n shouldShrink: true,\n shouldGrow: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_DimensionInput__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n dimensionState: dimensionsState.percentageState,\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Percentage')\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"].Item, {\n padding: \"x-small small\"\n }, \"%\")) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"].Item, {\n shouldShrink: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_DimensionInput__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n dimensionState: dimensionsState.widthState,\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Width'),\n minValue: minWidth\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"].Item, {\n padding: \"x-small small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_icons__WEBPACK_IMPORTED_MODULE_4__[\"IconLockLine\"], null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_5__[\"Flex\"].Item, {\n shouldShrink: true\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_DimensionInput__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n dimensionState: dimensionsState.heightState,\n label: Object(_format_message__WEBPACK_IMPORTED_MODULE_7__[\"default\"])('Height'),\n minValue: minHeight\n })))))));\n}\nDimensionsInput.propTypes = {\n dimensionsState: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n heightState: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n addOffset: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n inputValue: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n setInputValue: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired\n }).isRequired,\n isNumeric: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"].isRequired,\n usePercentageUnits: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"].isRequired,\n setUsePercentageUnits: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n widthState: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n addOffset: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n inputValue: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n setInputValue: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired\n }).isRequired,\n percentageState: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"shape\"])({\n addOffset: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n inputValue: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n setInputValue: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired\n }).isRequired\n }),\n minHeight: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"].isRequired,\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"].isRequired,\n minPercentage: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"number\"].isRequired\n};\n\n//# sourceURL=webpack:///./src/rce/plugins/shared/DimensionsInput/index.js?");
|
|
17666
17678
|
|
|
17667
17679
|
/***/ }),
|
|
17668
17680
|
|
|
@@ -17698,7 +17710,19 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
17698
17710
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
17699
17711
|
|
|
17700
17712
|
"use strict";
|
|
17701
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"useFilterSettings\", function() { return useFilterSettings; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Filter; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @instructure/ui-flex */ \"../../node_modules/@instructure/ui-flex/es/index.js\");\n/* harmony import */ var _instructure_ui_view__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-view */ \"../../node_modules/@instructure/ui-view/es/index.js\");\n/* harmony import */ var _instructure_ui_text_input__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-text-input */ \"../../node_modules/@instructure/ui-text-input/es/index.js\");\n/* harmony import */ var _instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-simple-select */ \"../../node_modules/@instructure/ui-simple-select/es/index.js\");\n/* harmony import */ var _instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @instructure/ui-buttons */ \"../../node_modules/@instructure/ui-buttons/es/index.js\");\n/* harmony import */ var _instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @instructure/ui-a11y-content */ \"../../node_modules/@instructure/ui-a11y-content/es/index.js\");\n/* harmony import */ var _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../instructure_icon_maker/svg/constants */ \"./src/rce/plugins/instructure_icon_maker/svg/constants.js\");\n/* harmony import */ var _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @instructure/ui-icons */ \"../../node_modules/@instructure/ui-icons/es/index.js\");\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\n\nconst DEFAULT_FILTER_SETTINGS = {\n contentSubtype: 'all',\n contentType: 'links',\n sortValue: 'date_added',\n searchString: ''\n};\nfunction useFilterSettings(default_settings) {\n const [filterSettings, setFilterSettings] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(default_settings || DEFAULT_FILTER_SETTINGS);\n\n function updateFilterSettings(nextSettings) {\n setFilterSettings({ ...filterSettings,\n ...nextSettings\n });\n }\n\n return [filterSettings, updateFilterSettings];\n}\n\nfunction fileLabelFromContext(contextType) {\n switch (contextType) {\n case 'user':\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('User Files');\n\n case 'course':\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Course Files');\n\n case 'group':\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Group Files');\n\n case 'files':\n default:\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Files');\n }\n}\n\nfunction renderTypeOptions(contentType, contentSubtype, userContextType) {\n const options = [/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n key: \"links\",\n id: \"links\",\n value: \"links\",\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconLinkLine\"]\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Links'))];\n\n if (userContextType === 'course' && contentType !== 'links' && contentSubtype !== 'all') {\n options.push( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n key: \"course_files\",\n id: \"course_files\",\n value: \"course_files\",\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconFolderLine\"]\n }, fileLabelFromContext('course')));\n }\n\n if (userContextType === 'group' && contentType !== 'links' && contentSubtype !== 'all') {\n options.push( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n key: \"group_files\",\n id: \"group_files\",\n value: \"group_files\",\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconFolderLine\"]\n }, fileLabelFromContext('group')));\n } // Icon Maker icons are only stored in course folders.\n\n\n if (contentSubtype !== _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_9__[\"ICON_MAKER_ICONS\"]) {\n options.push( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n key: \"user_files\",\n id: \"user_files\",\n value: \"user_files\",\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconFolderLine\"]\n }, fileLabelFromContext(contentType === 'links' || contentSubtype === 'all' ? 'files' : 'user')));\n }\n\n return options;\n}\n\nfunction renderType(contentType, contentSubtype, onChange, userContextType, containingContextType) {\n // Check containingContextType so that we always show context links\n if (containingContextType === 'course' || containingContextType === 'group') {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"], {\n renderLabel: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_8__[\"ScreenReaderContent\"], null, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Content Type')),\n assistiveText: Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Use arrow keys to navigate options.'),\n onChange: (e, selection) => {\n const changed = {\n contentType: selection.value\n };\n\n if (contentType === 'links') {\n // when changing away from links, go to all user files\n changed.contentSubtype = 'all';\n }\n\n onChange(changed);\n },\n value: contentType\n }, renderTypeOptions(contentType, contentSubtype, userContextType));\n } else {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_4__[\"View\"], {\n as: \"div\",\n borderWidth: \"small\",\n padding: \"x-small small\",\n borderRadius: \"medium\",\n width: \"100%\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_8__[\"ScreenReaderContent\"], null, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Content Type')), fileLabelFromContext('user', contentSubtype));\n }\n}\n\nfunction shouldSearch(searchString) {\n return searchString.length === 0 || searchString.length >= 3;\n}\n\nfunction Filter(props) {\n const {\n contentType,\n contentSubtype,\n onChange,\n sortValue,\n searchString,\n userContextType,\n isContentLoading,\n containingContextType\n } = props;\n const [pendingSearchString, setPendingSearchString] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(searchString);\n const [searchInputTimer, setSearchInputTimer] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(0); // only run on mounting to trigger change to correct contextType\n\n Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"])(() => {\n onChange({\n contentType\n });\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n function doSearch(value) {\n if (shouldSearch(value)) {\n if (searchInputTimer) {\n window.clearTimeout(searchInputTimer);\n setSearchInputTimer(0);\n }\n\n onChange({\n searchString: value\n });\n }\n }\n\n function handleChangeSearch(value) {\n setPendingSearchString(value);\n\n if (searchInputTimer) {\n window.clearTimeout(searchInputTimer);\n }\n\n const tid = window.setTimeout(() => doSearch(value), 250);\n setSearchInputTimer(tid);\n }\n\n function handleClear() {\n handleChangeSearch('');\n }\n\n function renderClearButton() {\n if (pendingSearchString) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_7__[\"IconButton\"], {\n screenReaderLabel: Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Clear'),\n onClick: handleClear,\n withBorder: false,\n withBackground: false,\n size: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconXLine\"], null));\n }\n\n return undefined;\n }\n\n const searchMessage = Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Enter at least 3 characters to search');\n const loadingMessage = Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Loading, please wait');\n const msg = isContentLoading ? loadingMessage : searchMessage;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_4__[\"View\"], {\n display: \"block\",\n direction: \"column\"\n }, renderType(contentType, contentSubtype, onChange, userContextType, containingContextType), contentType !== 'links' && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__[\"Flex\"], {\n margin: \"small none none none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__[\"Flex\"].Item, {\n grow: true,\n shrink: true,\n margin: \"none xx-small none none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"], {\n renderLabel: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_8__[\"ScreenReaderContent\"], null, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Content Subtype')),\n assistiveText: Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Use arrow keys to navigate options.'),\n onChange: (e, selection) => {\n const changed = {\n contentSubtype: selection.value\n };\n\n if (changed.contentSubtype === 'all') {\n // when flipped to All, the context needs to be user\n // so we can get media_objects, which are all returned in the user context\n changed.contentType = 'user_files';\n } else if (changed.contentSubtype === _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_9__[\"ICON_MAKER_ICONS\"]) {\n // Icon Maker icons only belong to Courses.\n changed.contentType = 'course_files';\n }\n\n onChange(changed);\n },\n value: contentSubtype\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: \"images\",\n value: \"images\",\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconImageLine\"]\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Images')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: \"documents\",\n value: \"documents\",\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconDocumentLine\"]\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Documents')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: \"media\",\n value: \"media\",\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconAttachMediaLine\"]\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Media')), props.use_rce_icon_maker && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_9__[\"ICON_MAKER_ICONS\"],\n value: _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_9__[\"ICON_MAKER_ICONS\"],\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconImageLine\"]\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Icon Maker Icons')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: \"all\",\n value: \"all\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('All')))), contentSubtype !== 'all' && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__[\"Flex\"].Item, {\n grow: true,\n shrink: true,\n margin: \"none none none xx-small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"], {\n renderLabel: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_8__[\"ScreenReaderContent\"], null, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Sort By')),\n assistiveText: Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Use arrow keys to navigate options.'),\n onChange: (e, selection) => {\n onChange({\n sortValue: selection.value\n });\n },\n value: sortValue\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: \"date_added\",\n value: \"date_added\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Date Added')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: \"alphabetical\",\n value: \"alphabetical\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Alphabetical'))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_4__[\"View\"], {\n as: \"div\",\n margin: \"small none none none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text_input__WEBPACK_IMPORTED_MODULE_5__[\"TextInput\"], {\n renderLabel: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_8__[\"ScreenReaderContent\"], null, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Search')),\n renderBeforeInput: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconSearchLine\"], {\n inline: false\n }),\n renderAfterInput: renderClearButton(),\n messages: [{\n type: 'hint',\n text: msg\n }],\n placeholder: Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Search'),\n value: pendingSearchString,\n onChange: (e, value) => handleChangeSearch(value),\n onKeyDown: e => {\n if (e.key === 'Enter') {\n doSearch(pendingSearchString);\n }\n }\n })));\n}\nFilter.propTypes = {\n /**\n * `contentSubtype` is the secondary filter setting, currently only used when\n * `contentType` is set to \"files\"\n */\n contentSubtype: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n\n /**\n * `contentType` is the primary filter setting (e.g. links, files)\n */\n contentType: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"oneOf\"])(['links', 'user_files', 'course_files', 'group_files']).isRequired,\n\n /**\n * `onChange` is called when any of the Filter settings are changed\n */\n onChange: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n\n /**\n * `sortValue` defines how items in the CanvasContentTray are sorted\n */\n sortValue: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n\n /**\n * `searchString` is used to search for matching file names. Must be >3 chars long\n */\n searchString: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n\n /**\n * The user's context\n */\n userContextType: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"oneOf\"])(['user', 'course', 'group']),\n\n /**\n * Is my content currently loading?\n */\n isContentLoading: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"],\n\n /**\n * The page context\n */\n containingContextType: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"oneOf\"])(['user', 'course', 'group']),\n\n /**\n * Should include Icon Maker?\n */\n use_rce_icon_maker: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"]\n};\n\n//# sourceURL=webpack:///./src/rce/plugins/shared/Filter.js?");
|
|
17713
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"useFilterSettings\", function() { return useFilterSettings; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Filter; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @instructure/ui-flex */ \"../../node_modules/@instructure/ui-flex/es/index.js\");\n/* harmony import */ var _instructure_ui_view__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-view */ \"../../node_modules/@instructure/ui-view/es/index.js\");\n/* harmony import */ var _instructure_ui_text_input__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @instructure/ui-text-input */ \"../../node_modules/@instructure/ui-text-input/es/index.js\");\n/* harmony import */ var _instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @instructure/ui-simple-select */ \"../../node_modules/@instructure/ui-simple-select/es/index.js\");\n/* harmony import */ var _instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @instructure/ui-buttons */ \"../../node_modules/@instructure/ui-buttons/es/index.js\");\n/* harmony import */ var _instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @instructure/ui-a11y-content */ \"../../node_modules/@instructure/ui-a11y-content/es/index.js\");\n/* harmony import */ var _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../instructure_icon_maker/svg/constants */ \"./src/rce/plugins/instructure_icon_maker/svg/constants.js\");\n/* harmony import */ var _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @instructure/ui-icons */ \"../../node_modules/@instructure/ui-icons/es/index.js\");\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\n\n\nconst DEFAULT_FILTER_SETTINGS = {\n contentSubtype: 'all',\n contentType: 'links',\n sortValue: 'date_added',\n searchString: ''\n};\nfunction useFilterSettings(default_settings) {\n const [filterSettings, setFilterSettings] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(default_settings || DEFAULT_FILTER_SETTINGS);\n\n function updateFilterSettings(nextSettings) {\n setFilterSettings({ ...filterSettings,\n ...nextSettings\n });\n }\n\n return [filterSettings, updateFilterSettings];\n}\n\nfunction fileLabelFromContext(contextType) {\n switch (contextType) {\n case 'user':\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('User Files');\n\n case 'course':\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Course Files');\n\n case 'group':\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Group Files');\n\n case 'files':\n default:\n return Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Files');\n }\n}\n\nfunction renderTypeOptions(contentType, contentSubtype, userContextType) {\n const options = [/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n key: \"links\",\n id: \"links\",\n value: \"links\",\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconLinkLine\"]\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Links'))];\n\n if (userContextType === 'course' && contentType !== 'links' && contentSubtype !== 'all') {\n options.push( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n key: \"course_files\",\n id: \"course_files\",\n value: \"course_files\",\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconFolderLine\"]\n }, fileLabelFromContext('course')));\n }\n\n if (userContextType === 'group' && contentType !== 'links' && contentSubtype !== 'all') {\n options.push( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n key: \"group_files\",\n id: \"group_files\",\n value: \"group_files\",\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconFolderLine\"]\n }, fileLabelFromContext('group')));\n } // Icon Maker icons are only stored in course folders.\n\n\n if (contentSubtype !== _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_9__[\"ICON_MAKER_ICONS\"]) {\n options.push( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n key: \"user_files\",\n id: \"user_files\",\n value: \"user_files\",\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconFolderLine\"]\n }, fileLabelFromContext(contentType === 'links' || contentSubtype === 'all' ? 'files' : 'user')));\n }\n\n return options;\n}\n\nfunction renderType(contentType, contentSubtype, onChange, userContextType, containingContextType) {\n // Check containingContextType so that we always show context links\n if (containingContextType === 'course' || containingContextType === 'group') {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"], {\n renderLabel: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_8__[\"ScreenReaderContent\"], null, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Content Type')),\n assistiveText: Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Use arrow keys to navigate options.'),\n onChange: (e, selection) => {\n const changed = {\n contentType: selection.value\n };\n\n if (contentType === 'links') {\n // when changing away from links, go to all user files\n changed.contentSubtype = 'all';\n }\n\n onChange(changed);\n },\n value: contentType\n }, renderTypeOptions(contentType, contentSubtype, userContextType));\n } else {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_4__[\"View\"], {\n as: \"div\",\n borderWidth: \"small\",\n padding: \"x-small small\",\n borderRadius: \"medium\",\n width: \"100%\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_8__[\"ScreenReaderContent\"], null, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Content Type')), fileLabelFromContext('user', contentSubtype));\n }\n}\n\nfunction shouldSearch(searchString) {\n return searchString.length === 0 || searchString.length >= 3;\n}\n\nfunction Filter(props) {\n const {\n contentType,\n contentSubtype,\n onChange,\n sortValue,\n searchString,\n userContextType,\n isContentLoading,\n containingContextType\n } = props;\n const [pendingSearchString, setPendingSearchString] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(searchString);\n const [searchInputTimer, setSearchInputTimer] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(0); // only run on mounting to trigger change to correct contextType\n\n Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"])(() => {\n onChange({\n contentType\n });\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n function doSearch(value) {\n if (shouldSearch(value)) {\n if (searchInputTimer) {\n window.clearTimeout(searchInputTimer);\n setSearchInputTimer(0);\n }\n\n onChange({\n searchString: value\n });\n }\n }\n\n function handleChangeSearch(value) {\n setPendingSearchString(value);\n\n if (searchInputTimer) {\n window.clearTimeout(searchInputTimer);\n }\n\n const tid = window.setTimeout(() => doSearch(value), 250);\n setSearchInputTimer(tid);\n }\n\n function handleClear() {\n handleChangeSearch('');\n }\n\n function renderClearButton() {\n if (pendingSearchString) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_buttons__WEBPACK_IMPORTED_MODULE_7__[\"IconButton\"], {\n screenReaderLabel: Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Clear'),\n onClick: handleClear,\n withBorder: false,\n withBackground: false,\n size: \"small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconXLine\"], null));\n }\n\n return undefined;\n }\n\n const searchMessage = Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Enter at least 3 characters to search');\n const loadingMessage = Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Loading, please wait');\n const msg = isContentLoading ? loadingMessage : searchMessage;\n const isEdit = contentSubtype === 'edit';\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_4__[\"View\"], {\n display: \"block\",\n direction: \"column\"\n }, !isEdit && renderType(contentType, contentSubtype, onChange, userContextType, containingContextType), contentType !== 'links' && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__[\"Flex\"], {\n margin: \"small none none none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__[\"Flex\"].Item, {\n shouldGrow: true,\n shouldShrink: true,\n margin: \"none xx-small none none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"], {\n renderLabel: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_8__[\"ScreenReaderContent\"], null, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Content Subtype')),\n assistiveText: Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Use arrow keys to navigate options.'),\n onChange: (e, selection) => {\n const changed = {\n contentSubtype: selection.value\n };\n\n if (changed.contentSubtype === 'all') {\n // when flipped to All, the context needs to be user\n // so we can get media_objects, which are all returned in the user context\n changed.contentType = 'user_files';\n } else if (changed.contentSubtype === _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_9__[\"ICON_MAKER_ICONS\"]) {\n // Icon Maker icons only belong to Courses.\n changed.contentType = 'course_files';\n }\n\n onChange(changed);\n },\n value: contentSubtype\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: \"images\",\n value: \"images\",\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconImageLine\"]\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Images')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: \"documents\",\n value: \"documents\",\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconDocumentLine\"]\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Documents')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: \"media\",\n value: \"media\",\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconAttachMediaLine\"]\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Media')), props.use_rce_icon_maker && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_9__[\"ICON_MAKER_ICONS\"],\n value: _instructure_icon_maker_svg_constants__WEBPACK_IMPORTED_MODULE_9__[\"ICON_MAKER_ICONS\"],\n renderBeforeLabel: _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconImageLine\"]\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Icon Maker Icons')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: \"all\",\n value: \"all\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('All')))), contentSubtype !== 'all' && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__[\"Flex\"].Item, {\n shouldGrow: true,\n shouldShrink: true,\n margin: \"none none none xx-small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"], {\n renderLabel: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_8__[\"ScreenReaderContent\"], null, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Sort By')),\n assistiveText: Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Use arrow keys to navigate options.'),\n onChange: (e, selection) => {\n onChange({\n sortValue: selection.value\n });\n },\n value: sortValue\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: \"date_added\",\n value: \"date_added\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Date Added')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_simple_select__WEBPACK_IMPORTED_MODULE_6__[\"SimpleSelect\"].Option, {\n id: \"alphabetical\",\n value: \"alphabetical\"\n }, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Alphabetical'))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_4__[\"View\"], {\n as: \"div\",\n margin: \"small none none none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text_input__WEBPACK_IMPORTED_MODULE_5__[\"TextInput\"], {\n renderLabel: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_a11y_content__WEBPACK_IMPORTED_MODULE_8__[\"ScreenReaderContent\"], null, Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Search')),\n renderBeforeInput: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_icons__WEBPACK_IMPORTED_MODULE_10__[\"IconSearchLine\"], {\n inline: false\n }),\n renderAfterInput: renderClearButton(),\n messages: [{\n type: 'hint',\n text: msg\n }],\n placeholder: Object(_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('Search'),\n value: pendingSearchString,\n onChange: (e, value) => handleChangeSearch(value),\n onKeyDown: e => {\n if (e.key === 'Enter') {\n doSearch(pendingSearchString);\n }\n }\n })));\n}\nFilter.propTypes = {\n /**\n * `contentSubtype` is the secondary filter setting, currently only used when\n * `contentType` is set to \"files\"\n */\n contentSubtype: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n\n /**\n * `contentType` is the primary filter setting (e.g. links, files)\n */\n contentType: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"oneOf\"])(['links', 'user_files', 'course_files', 'group_files']).isRequired,\n\n /**\n * `onChange` is called when any of the Filter settings are changed\n */\n onChange: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"].isRequired,\n\n /**\n * `sortValue` defines how items in the CanvasContentTray are sorted\n */\n sortValue: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n\n /**\n * `searchString` is used to search for matching file names. Must be >3 chars long\n */\n searchString: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"string\"].isRequired,\n\n /**\n * The user's context\n */\n userContextType: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"oneOf\"])(['user', 'course', 'group']),\n\n /**\n * Is my content currently loading?\n */\n isContentLoading: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"],\n\n /**\n * The page context\n */\n containingContextType: Object(prop_types__WEBPACK_IMPORTED_MODULE_1__[\"oneOf\"])(['user', 'course', 'group']),\n\n /**\n * Should include Icon Maker?\n */\n use_rce_icon_maker: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"bool\"]\n};\n\n//# sourceURL=webpack:///./src/rce/plugins/shared/Filter.js?");
|
|
17714
|
+
|
|
17715
|
+
/***/ }),
|
|
17716
|
+
|
|
17717
|
+
/***/ "./src/rce/plugins/shared/LinkDisplay.js":
|
|
17718
|
+
/*!***********************************************!*\
|
|
17719
|
+
!*** ./src/rce/plugins/shared/LinkDisplay.js ***!
|
|
17720
|
+
\***********************************************/
|
|
17721
|
+
/*! exports provided: LinkDisplay */
|
|
17722
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
17723
|
+
|
|
17724
|
+
"use strict";
|
|
17725
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LinkDisplay\", function() { return LinkDisplay; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _instructure_ui_view__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @instructure/ui-view */ \"../../node_modules/@instructure/ui-view/es/index.js\");\n/* harmony import */ var _instructure_ui_text__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @instructure/ui-text */ \"../../node_modules/@instructure/ui-text/es/index.js\");\n/* harmony import */ var _instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @instructure/ui-flex */ \"../../node_modules/@instructure/ui-flex/es/index.js\");\n/* harmony import */ var _instructure_ui_text_input__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @instructure/ui-text-input */ \"../../node_modules/@instructure/ui-text-input/es/index.js\");\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _canvasFileBrowser_FlashAlert__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../canvasFileBrowser/FlashAlert */ \"./src/canvasFileBrowser/FlashAlert.js\");\n/*\n * Copyright (C) 2022 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\nconst EDIT_MESSAGE = Object(_format_message__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('If left empty link, text will display as course link name');\nconst LinkDisplay = _ref => {\n let {\n linkText,\n Icon,\n placeholderText,\n linkFileName,\n published,\n handleTextChange\n } = _ref;\n Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"])(() => {\n Object(_canvasFileBrowser_FlashAlert__WEBPACK_IMPORTED_MODULE_6__[\"showFlashAlert\"])({\n message: Object(_format_message__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('Selected {linkFileName}', {\n linkFileName\n }),\n type: 'info',\n srOnly: true\n });\n }, [linkFileName]);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_1__[\"View\"], {\n as: \"div\",\n \"data-testid\": \"LinkDisplay\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_1__[\"View\"], {\n as: \"div\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__[\"Flex\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__[\"Flex\"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text_input__WEBPACK_IMPORTED_MODULE_4__[\"TextInput\"], {\n renderLabel: () => Object(_format_message__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('Text (optional)'),\n onChange: (e, value) => handleTextChange(value),\n value: linkText,\n placeholder: placeholderText,\n messages: [{\n type: 'hint',\n text: EDIT_MESSAGE\n }]\n })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_1__[\"View\"], {\n as: \"div\",\n margin: \"medium none medium none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__[\"Flex\"], {\n margin: \"small none small none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_2__[\"Text\"], {\n weight: \"bold\"\n }, \"Current Link\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__[\"Flex\"], {\n margin: \"small none none none\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__[\"Flex\"].Item, {\n padding: \"0 x-small 0 small\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_text__WEBPACK_IMPORTED_MODULE_2__[\"Text\"], {\n \"data-testid\": \"icon-wrapper\",\n color: published ? 'success' : 'primary'\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Icon, {\n size: \"x-small\"\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_flex__WEBPACK_IMPORTED_MODULE_3__[\"Flex\"].Item, {\n padding: \"0 x-small 0 0\",\n grow: true,\n shrink: true,\n textAlign: \"start\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_view__WEBPACK_IMPORTED_MODULE_1__[\"View\"], {\n as: \"div\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n \"data-testid\": \"selected-link-name\"\n }, linkFileName))))));\n};\n\n//# sourceURL=webpack:///./src/rce/plugins/shared/LinkDisplay.js?");
|
|
17702
17726
|
|
|
17703
17727
|
/***/ }),
|
|
17704
17728
|
|
|
@@ -17750,18 +17774,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
17750
17774
|
|
|
17751
17775
|
/***/ }),
|
|
17752
17776
|
|
|
17753
|
-
/***/ "./src/rce/plugins/shared/Upload/constants.js":
|
|
17754
|
-
/*!****************************************************!*\
|
|
17755
|
-
!*** ./src/rce/plugins/shared/Upload/constants.js ***!
|
|
17756
|
-
\****************************************************/
|
|
17757
|
-
/*! exports provided: RCS_MAX_BODY_SIZE, RCS_REQUEST_SIZE_BUFFER */
|
|
17758
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
17759
|
-
|
|
17760
|
-
"use strict";
|
|
17761
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RCS_MAX_BODY_SIZE\", function() { return RCS_MAX_BODY_SIZE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RCS_REQUEST_SIZE_BUFFER\", function() { return RCS_REQUEST_SIZE_BUFFER; });\n/*\n * Copyright (C) 2019 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nconst RCS_MAX_BODY_SIZE = 300000;\nconst RCS_REQUEST_SIZE_BUFFER = 5000; // account for the non-file bytes\n\n//# sourceURL=webpack:///./src/rce/plugins/shared/Upload/constants.js?");
|
|
17762
|
-
|
|
17763
|
-
/***/ }),
|
|
17764
|
-
|
|
17765
17777
|
/***/ "./src/rce/plugins/shared/buildDownloadUrl.js":
|
|
17766
17778
|
/*!****************************************************!*\
|
|
17767
17779
|
!*** ./src/rce/plugins/shared/buildDownloadUrl.js ***!
|
|
@@ -17786,6 +17798,18 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
17786
17798
|
|
|
17787
17799
|
/***/ }),
|
|
17788
17800
|
|
|
17801
|
+
/***/ "./src/rce/plugins/shared/linkUtils.js":
|
|
17802
|
+
/*!*********************************************!*\
|
|
17803
|
+
!*** ./src/rce/plugins/shared/linkUtils.js ***!
|
|
17804
|
+
\*********************************************/
|
|
17805
|
+
/*! exports provided: IconBlank, getIcon */
|
|
17806
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
17807
|
+
|
|
17808
|
+
"use strict";
|
|
17809
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"IconBlank\", function() { return IconBlank; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getIcon\", function() { return getIcon; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _instructure_ui_svg_images__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @instructure/ui-svg-images */ \"../../node_modules/@instructure/ui-svg-images/es/index.js\");\n/* harmony import */ var _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @instructure/ui-icons */ \"../../node_modules/@instructure/ui-icons/es/index.js\");\n/*\n * Copyright (C) 2022 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\nconst IconBlank = props => {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_instructure_ui_svg_images__WEBPACK_IMPORTED_MODULE_1__[\"SVGIcon\"], Object.assign({\n name: \"IconBlank\",\n viewBox: \"0 0 1920 1920\"\n }, props), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"g\", {\n role: \"presentation\"\n }));\n};\nconst getIcon = type => {\n switch (type) {\n case 'assignments':\n return _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_2__[\"IconAssignmentLine\"];\n\n case 'discussions':\n return _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_2__[\"IconDiscussionLine\"];\n\n case 'modules':\n return _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_2__[\"IconModuleLine\"];\n\n case 'quizzes':\n return _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_2__[\"IconQuizLine\"];\n\n case 'quizzes.next':\n return _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_2__[\"IconQuizSolid\"];\n\n case 'announcements':\n return _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_2__[\"IconAnnouncementLine\"];\n\n case 'wikiPages':\n return _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_2__[\"IconDocumentLine\"];\n\n case 'navigation':\n return IconBlank;\n\n default:\n return _instructure_ui_icons__WEBPACK_IMPORTED_MODULE_2__[\"IconDocumentLine\"];\n }\n};\n\n//# sourceURL=webpack:///./src/rce/plugins/shared/linkUtils.js?");
|
|
17810
|
+
|
|
17811
|
+
/***/ }),
|
|
17812
|
+
|
|
17789
17813
|
/***/ "./src/rce/plugins/shared/trayUtils.js":
|
|
17790
17814
|
/*!*********************************************!*\
|
|
17791
17815
|
!*** ./src/rce/plugins/shared/trayUtils.js ***!
|
|
@@ -17822,6 +17846,18 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
17822
17846
|
|
|
17823
17847
|
/***/ }),
|
|
17824
17848
|
|
|
17849
|
+
/***/ "./src/rce/userOS.ts":
|
|
17850
|
+
/*!***************************!*\
|
|
17851
|
+
!*** ./src/rce/userOS.ts ***!
|
|
17852
|
+
\***************************/
|
|
17853
|
+
/*! exports provided: determineUserOS, determineOSDependentKey */
|
|
17854
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
17855
|
+
|
|
17856
|
+
"use strict";
|
|
17857
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"determineUserOS\", function() { return determineUserOS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"determineOSDependentKey\", function() { return determineOSDependentKey; });\n/*\n * Copyright (C) 2022 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nconst determineUserOS = () => {\n const rawOS = navigator.userAgent;\n if (rawOS.indexOf('Mac') !== -1) return 'Mac';else if (rawOS.indexOf('Win') !== -1) return 'Windows';else return 'Other';\n};\nconst determineOSDependentKey = () => {\n switch (determineUserOS()) {\n case 'Mac':\n return 'OPTION';\n\n case 'Windows':\n default:\n return 'ALT';\n }\n};\n\n//# sourceURL=webpack:///./src/rce/userOS.ts?");
|
|
17858
|
+
|
|
17859
|
+
/***/ }),
|
|
17860
|
+
|
|
17825
17861
|
/***/ "./src/rce/wrapInitCb.js":
|
|
17826
17862
|
/*!*******************************!*\
|
|
17827
17863
|
!*** ./src/rce/wrapInitCb.js ***!
|
|
@@ -17842,7 +17878,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
|
|
|
17842
17878
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
17843
17879
|
|
|
17844
17880
|
"use strict";
|
|
17845
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"headerFor\", function() { return headerFor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"originFromHost\", function() { return originFromHost; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getSearchParam\", function() { return getSearchParam; });\n/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/includes */ \"../../node_modules/@babel/runtime-corejs3/core-js-stable/instance/includes.js\");\n/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var isomorphic_fetch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! isomorphic-fetch */ \"../../node_modules/isomorphic-fetch/fetch-npm-browserify.js\");\n/* harmony import */ var isomorphic_fetch__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(isomorphic_fetch__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! url */ \"../../node_modules/url/url.js\");\n/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(url__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _instructure_canvas_media__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @instructure/canvas-media */ \"../canvas-media/es/index.js\");\n/* harmony import */ var _common_fileUrl__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/fileUrl */ \"./src/common/fileUrl.js\");\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _rce_alertHandler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../rce/alertHandler */ \"./src/rce/alertHandler.js\");\n/* harmony import */ var _rce_plugins_shared_Upload_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../rce/plugins/shared/Upload/constants */ \"./src/rce/plugins/shared/Upload/constants.js\");\n/* harmony import */ var _sidebar_containers_sidebarHandlers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../sidebar/containers/sidebarHandlers */ \"./src/sidebar/containers/sidebarHandlers.js\");\n/* harmony import */ var _buildError__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./buildError */ \"./src/rcs/buildError.js\");\n\n\n/*\n * Copyright (C) 2018 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\n\nfunction headerFor(jwt) {\n return {\n Authorization: 'Bearer ' + jwt\n };\n}\nfunction originFromHost(host, windowOverride) {\n let origin = host;\n\n if (typeof origin !== 'string') {\n origin = '';\n } else if (origin && origin.substr(0, 4) !== 'http') {\n var _windowHandle$locatio;\n\n origin = `//${origin}`;\n const windowHandle = windowOverride || (typeof window !== 'undefined' ? window : undefined);\n\n if (origin.length > 0 && windowHandle !== null && windowHandle !== void 0 && (_windowHandle$locatio = windowHandle.location) !== null && _windowHandle$locatio !== void 0 && _windowHandle$locatio.protocol) {\n origin = `${windowHandle.location.protocol}${origin}`;\n }\n }\n\n return origin;\n} // filter a response to raise an error on a 400+ status\n\nfunction checkStatus(response) {\n if (response.status < 400) {\n return response;\n } else {\n const error = new Error(response.statusText);\n error.response = response;\n throw error;\n }\n}\n\nfunction defaultRefreshTokenHandler() {\n throw new Error('Token expired, no refresh function provided');\n}\n\nfunction normalizeFileData(file) {\n return {\n // copy the name to the default display name if none provided\n display_name: file.name,\n ...file,\n // wrap the url\n href: Object(_common_fileUrl__WEBPACK_IMPORTED_MODULE_4__[\"downloadToWrap\"])(file.href || file.url)\n };\n}\n\nfunction throwConnectionError(error) {\n if (error.name === 'TypeError') {\n // eslint-disable-next-line no-console\n console.error(`Failed to fetch from the canvas-rce-api.\n Did you forget to start it or configure it?\n Details can be found at https://github.com/instructure/canvas-rce-api\n `);\n }\n\n throw error;\n}\n\nclass RceApiSource {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.jwt = options.jwt;\n this.host = options.host;\n this.refreshToken = options.refreshToken || defaultRefreshTokenHandler;\n this.hasSession = false;\n this.alertFunc = options.alertFunc || _rce_alertHandler__WEBPACK_IMPORTED_MODULE_6__[\"default\"].handleAlert;\n }\n\n getSession() {\n const headers = headerFor(this.jwt);\n const uri = this.baseUri('session');\n return this.apiReallyFetch(uri, headers).then(data => {\n this.hasSession = true;\n return data;\n }).catch(throwConnectionError);\n } // initial state of a collection is empty, not loading, with bookmark set to\n // uri for initial page fetch\n\n\n initializeCollection(endpoint, props) {\n return {\n links: [],\n bookmark: this.uriFor(endpoint, props),\n isLoading: false,\n hasMore: true,\n searchString: props.searchString\n };\n }\n\n initializeUpload() {\n return {\n uploading: false,\n folders: {},\n formExpanded: false\n };\n }\n\n initializeImages(props) {\n return this.initializeDocuments(props);\n }\n\n initializeDocuments(props) {\n return {\n [props.contextType]: {\n files: [],\n bookmark: null,\n isLoading: false,\n hasMore: true\n },\n searchString: ''\n };\n }\n\n initializeMedia(props) {\n return this.initializeDocuments(props);\n }\n\n initializeFlickr() {\n return {\n searchResults: [],\n searching: false,\n formExpanded: false\n };\n } // fetches the given URI and filters it to either an error or parsed response\n\n\n fetchPage(uri) {\n return this.apiFetch(uri, headerFor(this.jwt));\n }\n\n fetchBookmarkedData(fetchFunction, properties, onSuccess, onError, bookmark) {\n return fetchFunction(properties, bookmark).then(result => {\n onSuccess(result);\n\n if (result.bookmark) {\n this.fetchBookmarkedData(fetchFunction, properties, onSuccess, onError, result.bookmark);\n }\n }).catch(error => {\n onError(error);\n });\n }\n\n fetchDocs(props) {\n const documents = props.documents[props.contextType];\n const uri = documents.bookmark || this.uriFor('documents', props);\n return this.apiFetch(uri, headerFor(this.jwt)).then(_ref => {\n let {\n bookmark,\n files\n } = _ref;\n return {\n bookmark,\n files: files.map(f => Object(_common_fileUrl__WEBPACK_IMPORTED_MODULE_4__[\"fixupFileUrl\"])(props.contextType, props.contextId, f))\n };\n });\n }\n\n fetchMedia(props) {\n const media = props.media[props.contextType];\n const uri = media.bookmark || this.uriFor('media', props);\n return this.apiFetch(uri, headerFor(this.jwt));\n }\n\n fetchFiles(uri) {\n return this.fetchPage(uri).then(_ref2 => {\n let {\n bookmark,\n files\n } = _ref2;\n return {\n bookmark,\n files: files.map(normalizeFileData)\n };\n });\n }\n\n fetchLinks(key, props) {\n const {\n collections\n } = props;\n const bookmark = collections[key].bookmark || this.uriFor(key, props);\n return this.fetchPage(bookmark);\n }\n\n fetchRootFolder(props) {\n return this.fetchPage(this.uriFor('folders', props), this.jwt);\n }\n\n mediaServerSession() {\n return this.apiPost(this.baseUri('v1/services/kaltura_session'), headerFor(this.jwt), {});\n }\n\n uploadMediaToCanvas(mediaObject) {\n var _context;\n\n const body = {\n id: mediaObject.entryId,\n type: {\n 2: 'image',\n 5: 'audio'\n }[mediaObject.mediaType] || _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default()(_context = mediaObject.type).call(_context, 'audio') ? 'audio' : 'video',\n context_code: mediaObject.contextCode,\n title: mediaObject.title,\n user_entered_title: mediaObject.userTitle\n };\n return this.apiPost(this.baseUri('media_objects'), headerFor(this.jwt), body);\n }\n\n updateMediaObject(apiProps, _ref3) {\n let {\n media_object_id,\n title\n } = _ref3;\n const uri = `${this.baseUri('media_objects', apiProps.host)}/${media_object_id}?user_entered_title=${encodeURIComponent(title)}`;\n return this.apiPost(uri, headerFor(this.jwt), null, 'PUT');\n } // PUT to //RCS/api/media_objects/:mediaId/media_tracks [{locale, content}, ...]\n // receive back a 200 with the new subtitles, or a 4xx error\n\n\n updateClosedCaptions(apiProps, _ref4, maxBytes) {\n let {\n media_object_id,\n subtitles\n } = _ref4;\n return Object(_instructure_canvas_media__WEBPACK_IMPORTED_MODULE_3__[\"saveClosedCaptions\"])(media_object_id, subtitles, {\n origin: originFromHost(apiProps.host),\n headers: headerFor(apiProps.jwt)\n }, maxBytes || _rce_plugins_shared_Upload_constants__WEBPACK_IMPORTED_MODULE_7__[\"RCS_MAX_BODY_SIZE\"] - _rce_plugins_shared_Upload_constants__WEBPACK_IMPORTED_MODULE_7__[\"RCS_REQUEST_SIZE_BUFFER\"]).catch(e => {\n console.error('Failed saving CC', e);\n this.alertFunc(Object(_buildError__WEBPACK_IMPORTED_MODULE_9__[\"default\"])({\n message: 'failed to save captions'\n }, e));\n });\n } // GET /media_objects/:mediaId/media_tracks\n // receive back the current list of media_tracks\n\n\n fetchClosedCaptions(_mediaId) {\n return Promise.resolve([{\n locale: 'af',\n content: '1\\r\\n00:00:00,000 --> 00:00:01,251\\r\\nThis is the content\\r\\n'\n }, {\n locale: 'es',\n content: '1\\r\\n00:00:00,000 --> 00:00:01,251\\r\\nThis is the content\\r\\n'\n }]);\n } // fetches folders for the given context to upload files to\n\n\n fetchFolders(props, bookmark) {\n const headers = headerFor(this.jwt);\n const uri = bookmark || this.uriFor('folders/all', props);\n return this.apiFetch(uri, headers);\n } // Fetches all files for a given folder\n\n\n fetchFilesForFolder(props, bookmark) {\n let uri;\n\n if (!bookmark) {\n const perPageQuery = props.perPage ? `per_page=${props.perPage}` : '';\n const categoryQuery = `category=${_sidebar_containers_sidebarHandlers__WEBPACK_IMPORTED_MODULE_8__[\"DEFAULT_FILE_CATEGORY\"]}`;\n uri = `${props.filesUrl}?${perPageQuery}&${categoryQuery}${getSearchParam(props.searchString)}`;\n\n if (props.sortBy) {\n uri += `${getSortParams(props.sortBy.sort, props.sortBy.order)}`;\n }\n }\n\n return this.fetchPage(uri || bookmark, this.jwt);\n }\n\n fetchSubFolders(props, bookmark) {\n const uri = bookmark || `${this.baseUri('folders', props.host)}/${props.folderId}`;\n return this.apiFetch(uri, headerFor(this.jwt));\n }\n\n fetchIconMakerFolder(_ref5) {\n let {\n contextId,\n contextType\n } = _ref5;\n const uri = this.uriFor('folders/icon_maker', {\n contextId,\n contextType,\n host: this.host,\n jwt: this.jwt\n });\n return this.fetchPage(uri);\n }\n\n fetchMediaFolder(props) {\n let uri;\n\n if (props.contextType === 'user') {\n uri = this.uriFor('folders', props);\n } else {\n uri = this.uriFor('folders/media', props);\n }\n\n return this.fetchPage(uri);\n }\n\n fetchMediaObjectIframe(mediaObjectId) {\n return this.fetchPage(this.uriFor(`media_objects_iframe/${mediaObjectId}`));\n }\n\n fetchImages(props) {\n const images = props.images[props.contextType];\n const uri = images.bookmark || this.uriFor('images', props);\n const headers = headerFor(this.jwt);\n return this.apiFetch(uri, headers).then(_ref6 => {\n let {\n bookmark,\n files\n } = _ref6;\n return {\n bookmark,\n files: files.map(f => Object(_common_fileUrl__WEBPACK_IMPORTED_MODULE_4__[\"fixupFileUrl\"])(props.contextType, props.contextId, f)),\n searchString: props.searchString\n };\n });\n }\n\n preflightUpload(fileProps, apiProps) {\n const headers = headerFor(this.jwt);\n const uri = this.baseUri('upload', apiProps.host);\n const body = {\n contextId: apiProps.contextId,\n contextType: apiProps.contextType,\n file: fileProps,\n no_redirect: true,\n onDuplicate: apiProps.onDuplicate,\n category: apiProps.category\n };\n return this.apiPost(uri, headers, body);\n }\n\n uploadFRD(fileDomObject, preflightProps) {\n var _context2;\n\n const data = new window.FormData();\n Object.keys(preflightProps.upload_params).forEach(uploadProp => {\n data.append(uploadProp, preflightProps.upload_params[uploadProp]);\n });\n data.append('file', fileDomObject);\n const fetchOptions = {\n method: 'POST',\n body: data\n };\n\n if (!preflightProps.upload_params['x-amz-signature'] && !_babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default()(_context2 = preflightProps.upload_url).call(_context2, 'files_api')) {\n // _not_ an S3 upload, include the credentials in the upload POST\n // local uploads can include crendentials for same-origin requests\n fetchOptions.credentials = 'include';\n }\n\n return fetch(preflightProps.upload_url, fetchOptions).then(checkStatus).then(res => res.json()).then(uploadResults => {\n return this.finalizeUpload(preflightProps, uploadResults);\n }).catch(e => {\n this.alertFunc(Object(_buildError__WEBPACK_IMPORTED_MODULE_9__[\"default\"])({}, e));\n });\n }\n\n finalizeUpload(preflightProps, uploadResults) {\n if (preflightProps.upload_params.success_url) {\n // s3 upload, follow-up at success_url to finalize. the success_url doesn't\n // require authentication\n return fetch(preflightProps.upload_params.success_url).then(checkStatus).then(res => res.json());\n } else if (uploadResults.location) {\n // inst-fs upload, follow-up by fetching file identified by location in\n // response. we can't just fetch the location as would be intended because\n // it requires Canvas authentication. we also don't have an RCE API\n // endpoint to forward it through.\n const {\n pathname\n } = Object(url__WEBPACK_IMPORTED_MODULE_2__[\"parse\"])(uploadResults.location);\n const matchData = pathname.match(/^\\/api\\/v1\\/files\\/((?:\\d+~)?\\d+)$/);\n\n if (!matchData) {\n const error = new Error('cannot determine file ID from location');\n error.location = uploadResults.location;\n throw error;\n }\n\n const fileId = matchData[1];\n return this.getFile(fileId).then(fileResults => {\n fileResults.uuid = uploadResults.uuid; // if present, we'll need the uuid for the file verifier downstream\n\n return fileResults;\n });\n } else {\n // local-storage upload, this _is_ the attachment information\n return Promise.resolve(uploadResults);\n }\n }\n\n setUsageRights(fileId, usageRights) {\n const headers = headerFor(this.jwt);\n const uri = this.baseUri('usage_rights');\n const body = {\n fileId,\n ...usageRights\n };\n return this.apiPost(uri, headers, body);\n }\n\n searchFlickr(term, apiProps) {\n const headers = headerFor(this.jwt);\n const base = this.baseUri('flickr_search', apiProps.host);\n const uri = `${base}?term=${encodeURIComponent(term)}`;\n return this.apiFetch(uri, headers);\n }\n\n searchUnsplash(term, page) {\n const headers = headerFor(this.jwt);\n const base = this.baseUri('unsplash/search');\n const uri = `${base}?term=${encodeURIComponent(term)}&page=${page}&per_page=12`;\n return this.apiFetch(uri, headers);\n }\n\n pingbackUnsplash(id) {\n const headers = headerFor(this.jwt);\n const base = this.baseUri('unsplash/pingback');\n const uri = `${base}?id=${id}`;\n return this.apiFetch(uri, headers, {\n skipParse: true\n });\n }\n\n getFile(id) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const headers = headerFor(this.jwt);\n const base = this.baseUri('file'); // Valid query parameters for getFile\n\n const {\n replacement_chain_context_type,\n replacement_chain_context_id\n } = options;\n const uri = this.addParamsIfPresent(`${base}/${id}`, {\n replacement_chain_context_type,\n replacement_chain_context_id\n });\n return this.apiFetch(uri, headers).then(normalizeFileData);\n } // @private\n\n\n addParamsIfPresent(uri, params) {\n let url;\n\n try {\n url = new URL(uri);\n } catch (e) {\n // Just return the URI if it was invalid\n return uri;\n } // Add all truthy parameters to the URL\n\n\n for (const [name, value] of Object.entries(params)) {\n if (!value) continue;\n url.searchParams.append(name, value);\n }\n\n return url.toString();\n } // @private\n\n\n async apiFetch(uri, headers, options) {\n if (!this.hasSession) {\n await this.getSession();\n }\n\n return this.apiReallyFetch(uri, headers, options);\n }\n\n apiReallyFetch(uri, headers) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n uri = this.normalizeUriProtocol(uri);\n return fetch(uri, {\n headers\n }).then(response => {\n if (response.status === 401) {\n // retry once with fresh token\n return this.buildRetryHeaders(headers).then(newHeaders => {\n return fetch(uri, {\n headers: newHeaders\n });\n });\n } else {\n return response;\n }\n }).then(checkStatus).then(options.skipParse ? () => {} : res => res.json()).catch(throwConnectionError).catch(e => {\n this.alertFunc(Object(_buildError__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(e));\n throw e;\n });\n } // @private\n\n\n apiPost(uri, headers, body) {\n let method = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'POST';\n headers = { ...headers,\n 'Content-Type': 'application/json'\n };\n const fetchOptions = {\n method,\n headers\n };\n\n if (body) {\n fetchOptions.body = JSON.stringify(body);\n } else {\n fetchOptions.form = body;\n }\n\n uri = this.normalizeUriProtocol(uri);\n return fetch(uri, fetchOptions).then(response => {\n if (response.status === 401) {\n // retry once with fresh token\n return this.buildRetryHeaders(fetchOptions.headers).then(newHeaders => {\n const newOptions = { ...fetchOptions,\n headers: newHeaders\n };\n return fetch(uri, newOptions);\n });\n } else {\n return response;\n }\n }).then(checkStatus).then(res => res.json()).catch(throwConnectionError).catch(e => e.response.json().then(body => {\n console.error(e); // eslint-disable-line no-console\n\n this.alertFunc(Object(_buildError__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(body));\n throw e;\n }));\n } // @private\n\n\n normalizeUriProtocol(uri, windowOverride) {\n const windowHandle = windowOverride || (typeof window !== 'undefined' ? window : undefined);\n\n if (windowHandle && windowHandle.location && windowHandle.location.protocol === 'https:') {\n return uri.replace('http://', 'https://');\n }\n\n return uri;\n } // @private\n\n\n buildRetryHeaders(headers) {\n return new Promise(resolve => {\n this.refreshToken(freshToken => {\n this.jwt = freshToken;\n const freshHeader = headerFor(freshToken);\n const mergedHeaders = { ...headers,\n ...freshHeader\n };\n resolve(mergedHeaders);\n });\n });\n }\n\n baseUri(endpoint, host, windowOverride) {\n if (!host && this.host) {\n host = this.host;\n }\n\n host = originFromHost(host, windowOverride);\n const sharedEndpoints = ['images', 'media', 'documents', 'all']; // 'all' will eventually be something different\n\n const endpt = _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default()(sharedEndpoints).call(sharedEndpoints, endpoint) ? 'documents' : endpoint;\n return `${host}/api/${endpt}`;\n } // returns the URI to use with the fetchPage method to fetch the first page of\n // the given endpoint. e.g. for wikiPages it might return:\n //\n // //rce.docker/api/wikiPages?context_type=course&context_id=42\n //\n\n\n uriFor(endpoint, props) {\n const {\n host,\n contextType,\n contextId,\n sortBy,\n searchString,\n perPage\n } = props;\n let extra = '';\n const pageSizeParam = perPage ? `&per_page=${perPage}` : '';\n\n switch (endpoint) {\n case 'images':\n extra = `&content_types=image${getSortParams(sortBy.sort, sortBy.dir)}${getSearchParam(searchString)}${optionalQuery(props, 'category')}`;\n break;\n\n case 'media':\n // when requesting media files via the documents endpoint\n extra = `&content_types=video,audio${getSortParams(sortBy.sort, sortBy.dir)}${getSearchParam(searchString)}`;\n break;\n\n case 'documents':\n extra = `&exclude_content_types=image,video,audio${getSortParams(sortBy.sort, sortBy.dir)}${getSearchParam(searchString)}`;\n break;\n\n case 'media_objects':\n // when requesting media objects (this is the currently used branch)\n extra = `${getSortParams(sortBy.sort === 'alphabetical' ? 'title' : 'date', sortBy.dir)}${getSearchParam(searchString)}`;\n break;\n\n default:\n extra = getSearchParam(searchString);\n }\n\n return `${this.baseUri(endpoint, host)}?contextType=${contextType}&contextId=${contextId}${pageSizeParam}${extra}`;\n }\n\n}\n\nfunction getSortParams(sort, dir) {\n let sortBy = sort;\n\n if (sortBy === 'date_added') {\n sortBy = 'created_at';\n } else if (sortBy === 'alphabetical') {\n sortBy = 'name';\n }\n\n return `&sort=${sortBy}&order=${dir}`;\n}\n\nfunction optionalQuery(props, name) {\n return props[name] ? `&${name}=${props[name]}` : '';\n}\n\nfunction getSearchParam(searchString) {\n return (searchString === null || searchString === void 0 ? void 0 : searchString.length) >= 3 ? `&search_term=${encodeURIComponent(searchString)}` : '';\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (RceApiSource);\n\n//# sourceURL=webpack:///./src/rcs/api.js?");
|
|
17881
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"headerFor\", function() { return headerFor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"originFromHost\", function() { return originFromHost; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getSearchParam\", function() { return getSearchParam; });\n/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/includes */ \"../../node_modules/@babel/runtime-corejs3/core-js-stable/instance/includes.js\");\n/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var isomorphic_fetch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! isomorphic-fetch */ \"../../node_modules/isomorphic-fetch/fetch-npm-browserify.js\");\n/* harmony import */ var isomorphic_fetch__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(isomorphic_fetch__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! url */ \"../../node_modules/url/url.js\");\n/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(url__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _instructure_canvas_media__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @instructure/canvas-media */ \"../canvas-media/es/index.js\");\n/* harmony import */ var _common_fileUrl__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/fileUrl */ \"./src/common/fileUrl.js\");\n/* harmony import */ var _format_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../format-message */ \"./src/format-message.js\");\n/* harmony import */ var _rce_alertHandler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../rce/alertHandler */ \"./src/rce/alertHandler.js\");\n/* harmony import */ var _sidebar_containers_sidebarHandlers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../sidebar/containers/sidebarHandlers */ \"./src/sidebar/containers/sidebarHandlers.js\");\n/* harmony import */ var _buildError__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./buildError */ \"./src/rcs/buildError.js\");\n\n\n/*\n * Copyright (C) 2018 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n\n\n\n\n\n\n\nfunction headerFor(jwt) {\n return {\n Authorization: 'Bearer ' + jwt\n };\n}\nfunction originFromHost(host, windowOverride) {\n let origin = host;\n\n if (typeof origin !== 'string') {\n origin = '';\n } else if (origin && origin.substr(0, 4) !== 'http') {\n var _windowHandle$locatio;\n\n origin = `//${origin}`;\n const windowHandle = windowOverride || (typeof window !== 'undefined' ? window : undefined);\n\n if (origin.length > 0 && windowHandle !== null && windowHandle !== void 0 && (_windowHandle$locatio = windowHandle.location) !== null && _windowHandle$locatio !== void 0 && _windowHandle$locatio.protocol) {\n origin = `${windowHandle.location.protocol}${origin}`;\n }\n }\n\n return origin;\n} // filter a response to raise an error on a 400+ status\n\nfunction checkStatus(response) {\n if (response.status < 400) {\n return response;\n } else {\n const error = new Error(response.statusText);\n error.response = response;\n throw error;\n }\n}\n\nfunction defaultRefreshTokenHandler() {\n throw new Error('Token expired, no refresh function provided');\n}\n\nfunction normalizeFileData(file) {\n return {\n // copy the name to the default display name if none provided\n display_name: file.name,\n ...file,\n // wrap the url\n href: Object(_common_fileUrl__WEBPACK_IMPORTED_MODULE_4__[\"downloadToWrap\"])(file.href || file.url)\n };\n}\n\nfunction throwConnectionError(error) {\n if (error.name === 'TypeError') {\n // eslint-disable-next-line no-console\n console.error(`Failed to fetch from the canvas-rce-api.\n Did you forget to start it or configure it?\n Details can be found at https://github.com/instructure/canvas-rce-api\n `);\n }\n\n throw error;\n}\n\nclass RceApiSource {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.jwt = options.jwt;\n this.host = options.host;\n this.refreshToken = options.refreshToken || defaultRefreshTokenHandler;\n this.hasSession = false;\n this.alertFunc = options.alertFunc || _rce_alertHandler__WEBPACK_IMPORTED_MODULE_6__[\"default\"].handleAlert;\n }\n\n getSession() {\n const headers = headerFor(this.jwt);\n const uri = this.baseUri('session');\n return this.apiReallyFetch(uri, headers).then(data => {\n this.hasSession = true;\n return data;\n }).catch(throwConnectionError);\n } // initial state of a collection is empty, not loading, with bookmark set to\n // uri for initial page fetch\n\n\n initializeCollection(endpoint, props) {\n return {\n links: [],\n bookmark: this.uriFor(endpoint, props),\n isLoading: false,\n hasMore: true,\n searchString: props.searchString\n };\n }\n\n initializeUpload() {\n return {\n uploading: false,\n folders: {},\n formExpanded: false\n };\n }\n\n initializeImages(props) {\n return this.initializeDocuments(props);\n }\n\n initializeDocuments(props) {\n return {\n [props.contextType]: {\n files: [],\n bookmark: null,\n isLoading: false,\n hasMore: true\n },\n searchString: ''\n };\n }\n\n initializeMedia(props) {\n return this.initializeDocuments(props);\n }\n\n initializeFlickr() {\n return {\n searchResults: [],\n searching: false,\n formExpanded: false\n };\n } // fetches the given URI and filters it to either an error or parsed response\n\n\n fetchPage(uri) {\n return this.apiFetch(uri, headerFor(this.jwt));\n }\n\n fetchBookmarkedData(fetchFunction, properties, onSuccess, onError, bookmark) {\n return fetchFunction(properties, bookmark).then(result => {\n onSuccess(result);\n\n if (result.bookmark) {\n this.fetchBookmarkedData(fetchFunction, properties, onSuccess, onError, result.bookmark);\n }\n }).catch(error => {\n onError(error);\n });\n }\n\n fetchDocs(props) {\n const documents = props.documents[props.contextType];\n const uri = documents.bookmark || this.uriFor('documents', props);\n return this.apiFetch(uri, headerFor(this.jwt)).then(_ref => {\n let {\n bookmark,\n files\n } = _ref;\n return {\n bookmark,\n files: files.map(f => Object(_common_fileUrl__WEBPACK_IMPORTED_MODULE_4__[\"fixupFileUrl\"])(props.contextType, props.contextId, f))\n };\n });\n }\n\n fetchMedia(props) {\n const media = props.media[props.contextType];\n const uri = media.bookmark || this.uriFor('media', props);\n return this.apiFetch(uri, headerFor(this.jwt));\n }\n\n fetchFiles(uri) {\n return this.fetchPage(uri).then(_ref2 => {\n let {\n bookmark,\n files\n } = _ref2;\n return {\n bookmark,\n files: files.map(normalizeFileData)\n };\n });\n }\n\n fetchLinks(key, props) {\n const {\n collections\n } = props;\n const bookmark = collections[key].bookmark || this.uriFor(key, props);\n return this.fetchPage(bookmark);\n }\n\n fetchRootFolder(props) {\n return this.fetchPage(this.uriFor('folders', props), this.jwt);\n }\n\n mediaServerSession() {\n return this.apiPost(this.baseUri('v1/services/kaltura_session'), headerFor(this.jwt), {});\n }\n\n uploadMediaToCanvas(mediaObject) {\n var _context;\n\n const body = {\n id: mediaObject.entryId,\n type: {\n 2: 'image',\n 5: 'audio'\n }[mediaObject.mediaType] || _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default()(_context = mediaObject.type).call(_context, 'audio') ? 'audio' : 'video',\n context_code: mediaObject.contextCode,\n title: mediaObject.title,\n user_entered_title: mediaObject.userTitle\n };\n return this.apiPost(this.baseUri('media_objects'), headerFor(this.jwt), body);\n }\n\n updateMediaObject(apiProps, _ref3) {\n let {\n media_object_id,\n title\n } = _ref3;\n const uri = `${this.baseUri('media_objects', apiProps.host)}/${media_object_id}?user_entered_title=${encodeURIComponent(title)}`;\n return this.apiPost(uri, headerFor(this.jwt), null, 'PUT');\n } // PUT to //RCS/api/media_objects/:mediaId/media_tracks [{locale, content}, ...]\n // receive back a 200 with the new subtitles, or a 4xx error\n\n\n updateClosedCaptions(apiProps, _ref4, maxBytes) {\n let {\n media_object_id,\n subtitles\n } = _ref4;\n return Object(_instructure_canvas_media__WEBPACK_IMPORTED_MODULE_3__[\"saveClosedCaptions\"])(media_object_id, subtitles, {\n origin: originFromHost(apiProps.host),\n headers: headerFor(apiProps.jwt)\n }, maxBytes || _instructure_canvas_media__WEBPACK_IMPORTED_MODULE_3__[\"CONSTANTS\"].CC_FILE_MAX_BYTES).catch(e => {\n console.error('Failed saving CC', e);\n this.alertFunc(Object(_buildError__WEBPACK_IMPORTED_MODULE_8__[\"default\"])({\n message: 'failed to save captions'\n }, e));\n });\n } // GET /media_objects/:mediaId/media_tracks\n // receive back the current list of media_tracks\n\n\n fetchClosedCaptions(_mediaId) {\n return Promise.resolve([{\n locale: 'af',\n content: '1\\r\\n00:00:00,000 --> 00:00:01,251\\r\\nThis is the content\\r\\n'\n }, {\n locale: 'es',\n content: '1\\r\\n00:00:00,000 --> 00:00:01,251\\r\\nThis is the content\\r\\n'\n }]);\n } // fetches folders for the given context to upload files to\n\n\n fetchFolders(props, bookmark) {\n const headers = headerFor(this.jwt);\n const uri = bookmark || this.uriFor('folders/all', props);\n return this.apiFetch(uri, headers);\n } // Fetches all files for a given folder\n\n\n fetchFilesForFolder(props, bookmark) {\n let uri;\n\n if (!bookmark) {\n const perPageQuery = props.perPage ? `per_page=${props.perPage}` : '';\n const categoryQuery = `category=${_sidebar_containers_sidebarHandlers__WEBPACK_IMPORTED_MODULE_7__[\"DEFAULT_FILE_CATEGORY\"]}`;\n uri = `${props.filesUrl}?${perPageQuery}&${categoryQuery}${getSearchParam(props.searchString)}`;\n\n if (props.sortBy) {\n uri += `${getSortParams(props.sortBy.sort, props.sortBy.order)}`;\n }\n }\n\n return this.fetchPage(uri || bookmark, this.jwt);\n }\n\n fetchSubFolders(props, bookmark) {\n const uri = bookmark || `${this.baseUri('folders', props.host)}/${props.folderId}`;\n return this.apiFetch(uri, headerFor(this.jwt));\n }\n\n fetchIconMakerFolder(_ref5) {\n let {\n contextId,\n contextType\n } = _ref5;\n const uri = this.uriFor('folders/icon_maker', {\n contextId,\n contextType,\n host: this.host,\n jwt: this.jwt\n });\n return this.fetchPage(uri);\n }\n\n fetchMediaFolder(props) {\n let uri;\n\n if (props.contextType === 'user') {\n uri = this.uriFor('folders', props);\n } else {\n uri = this.uriFor('folders/media', props);\n }\n\n return this.fetchPage(uri);\n }\n\n fetchMediaObjectIframe(mediaObjectId) {\n return this.fetchPage(this.uriFor(`media_objects_iframe/${mediaObjectId}`));\n }\n\n fetchImages(props) {\n const images = props.images[props.contextType];\n const uri = images.bookmark || this.uriFor('images', props);\n const headers = headerFor(this.jwt);\n return this.apiFetch(uri, headers).then(_ref6 => {\n let {\n bookmark,\n files\n } = _ref6;\n return {\n bookmark,\n files: files.map(f => Object(_common_fileUrl__WEBPACK_IMPORTED_MODULE_4__[\"fixupFileUrl\"])(props.contextType, props.contextId, f)),\n searchString: props.searchString\n };\n });\n }\n\n preflightUpload(fileProps, apiProps) {\n const headers = headerFor(this.jwt);\n const uri = this.baseUri('upload', apiProps.host);\n const body = {\n contextId: apiProps.contextId,\n contextType: apiProps.contextType,\n file: fileProps,\n no_redirect: true,\n onDuplicate: apiProps.onDuplicate,\n category: apiProps.category\n };\n return this.apiPost(uri, headers, body);\n }\n\n uploadFRD(fileDomObject, preflightProps) {\n var _context2;\n\n const data = new window.FormData();\n Object.keys(preflightProps.upload_params).forEach(uploadProp => {\n data.append(uploadProp, preflightProps.upload_params[uploadProp]);\n });\n data.append('file', fileDomObject);\n const fetchOptions = {\n method: 'POST',\n body: data\n };\n\n if (!preflightProps.upload_params['x-amz-signature'] && !_babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default()(_context2 = preflightProps.upload_url).call(_context2, 'files_api')) {\n // _not_ an S3 upload, include the credentials in the upload POST\n // local uploads can include crendentials for same-origin requests\n fetchOptions.credentials = 'include';\n }\n\n return fetch(preflightProps.upload_url, fetchOptions).then(checkStatus).then(res => res.json()).then(uploadResults => {\n return this.finalizeUpload(preflightProps, uploadResults);\n }).catch(e => {\n this.alertFunc(Object(_buildError__WEBPACK_IMPORTED_MODULE_8__[\"default\"])({}, e));\n });\n }\n\n finalizeUpload(preflightProps, uploadResults) {\n if (preflightProps.upload_params.success_url) {\n // s3 upload, follow-up at success_url to finalize. the success_url doesn't\n // require authentication\n return fetch(preflightProps.upload_params.success_url).then(checkStatus).then(res => res.json());\n } else if (uploadResults.location) {\n // inst-fs upload, follow-up by fetching file identified by location in\n // response. we can't just fetch the location as would be intended because\n // it requires Canvas authentication. we also don't have an RCE API\n // endpoint to forward it through.\n const {\n pathname\n } = Object(url__WEBPACK_IMPORTED_MODULE_2__[\"parse\"])(uploadResults.location);\n const matchData = pathname.match(/^\\/api\\/v1\\/files\\/((?:\\d+~)?\\d+)$/);\n\n if (!matchData) {\n const error = new Error('cannot determine file ID from location');\n error.location = uploadResults.location;\n throw error;\n }\n\n const fileId = matchData[1];\n return this.getFile(fileId).then(fileResults => {\n fileResults.uuid = uploadResults.uuid; // if present, we'll need the uuid for the file verifier downstream\n\n return fileResults;\n });\n } else {\n // local-storage upload, this _is_ the attachment information\n return Promise.resolve(uploadResults);\n }\n }\n\n setUsageRights(fileId, usageRights) {\n const headers = headerFor(this.jwt);\n const uri = this.baseUri('usage_rights');\n const body = {\n fileId,\n ...usageRights\n };\n return this.apiPost(uri, headers, body);\n }\n\n searchFlickr(term, apiProps) {\n const headers = headerFor(this.jwt);\n const base = this.baseUri('flickr_search', apiProps.host);\n const uri = `${base}?term=${encodeURIComponent(term)}`;\n return this.apiFetch(uri, headers);\n }\n\n searchUnsplash(term, page) {\n const headers = headerFor(this.jwt);\n const base = this.baseUri('unsplash/search');\n const uri = `${base}?term=${encodeURIComponent(term)}&page=${page}&per_page=12`;\n return this.apiFetch(uri, headers);\n }\n\n pingbackUnsplash(id) {\n const headers = headerFor(this.jwt);\n const base = this.baseUri('unsplash/pingback');\n const uri = `${base}?id=${id}`;\n return this.apiFetch(uri, headers, {\n skipParse: true\n });\n }\n\n getFile(id) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const headers = headerFor(this.jwt);\n const base = this.baseUri('file'); // Valid query parameters for getFile\n\n const {\n replacement_chain_context_type,\n replacement_chain_context_id\n } = options;\n const uri = this.addParamsIfPresent(`${base}/${id}`, {\n replacement_chain_context_type,\n replacement_chain_context_id\n });\n return this.apiFetch(uri, headers).then(normalizeFileData);\n } // @private\n\n\n addParamsIfPresent(uri, params) {\n let url;\n\n try {\n url = new URL(uri);\n } catch (e) {\n // Just return the URI if it was invalid\n return uri;\n } // Add all truthy parameters to the URL\n\n\n for (const [name, value] of Object.entries(params)) {\n if (!value) continue;\n url.searchParams.append(name, value);\n }\n\n return url.toString();\n } // @private\n\n\n async apiFetch(uri, headers, options) {\n if (!this.hasSession) {\n await this.getSession();\n }\n\n return this.apiReallyFetch(uri, headers, options);\n }\n\n apiReallyFetch(uri, headers) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n uri = this.normalizeUriProtocol(uri);\n return fetch(uri, {\n headers\n }).then(response => {\n if (response.status === 401) {\n // retry once with fresh token\n return this.buildRetryHeaders(headers).then(newHeaders => {\n return fetch(uri, {\n headers: newHeaders\n });\n });\n } else {\n return response;\n }\n }).then(checkStatus).then(options.skipParse ? () => {} : res => res.json()).catch(throwConnectionError).catch(e => {\n this.alertFunc(Object(_buildError__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(e));\n throw e;\n });\n } // @private\n\n\n apiPost(uri, headers, body) {\n let method = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'POST';\n headers = { ...headers,\n 'Content-Type': 'application/json'\n };\n const fetchOptions = {\n method,\n headers\n };\n\n if (body) {\n fetchOptions.body = JSON.stringify(body);\n } else {\n fetchOptions.form = body;\n }\n\n uri = this.normalizeUriProtocol(uri);\n return fetch(uri, fetchOptions).then(response => {\n if (response.status === 401) {\n // retry once with fresh token\n return this.buildRetryHeaders(fetchOptions.headers).then(newHeaders => {\n const newOptions = { ...fetchOptions,\n headers: newHeaders\n };\n return fetch(uri, newOptions);\n });\n } else {\n return response;\n }\n }).then(checkStatus).then(res => res.json()).catch(throwConnectionError).catch(e => e.response.json().then(body => {\n console.error(e); // eslint-disable-line no-console\n\n this.alertFunc(Object(_buildError__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(body));\n throw e;\n }));\n } // @private\n\n\n normalizeUriProtocol(uri, windowOverride) {\n const windowHandle = windowOverride || (typeof window !== 'undefined' ? window : undefined);\n\n if (windowHandle && windowHandle.location && windowHandle.location.protocol === 'https:') {\n return uri.replace('http://', 'https://');\n }\n\n return uri;\n } // @private\n\n\n buildRetryHeaders(headers) {\n return new Promise(resolve => {\n this.refreshToken(freshToken => {\n this.jwt = freshToken;\n const freshHeader = headerFor(freshToken);\n const mergedHeaders = { ...headers,\n ...freshHeader\n };\n resolve(mergedHeaders);\n });\n });\n }\n\n baseUri(endpoint, host, windowOverride) {\n if (!host && this.host) {\n host = this.host;\n }\n\n host = originFromHost(host, windowOverride);\n const sharedEndpoints = ['images', 'media', 'documents', 'all']; // 'all' will eventually be something different\n\n const endpt = _babel_runtime_corejs3_core_js_stable_instance_includes__WEBPACK_IMPORTED_MODULE_0___default()(sharedEndpoints).call(sharedEndpoints, endpoint) ? 'documents' : endpoint;\n return `${host}/api/${endpt}`;\n } // returns the URI to use with the fetchPage method to fetch the first page of\n // the given endpoint. e.g. for wikiPages it might return:\n //\n // //rce.docker/api/wikiPages?context_type=course&context_id=42\n //\n\n\n uriFor(endpoint, props) {\n const {\n host,\n contextType,\n contextId,\n sortBy,\n searchString,\n perPage\n } = props;\n let extra = '';\n const pageSizeParam = perPage ? `&per_page=${perPage}` : '';\n\n switch (endpoint) {\n case 'images':\n extra = `&content_types=image${getSortParams(sortBy.sort, sortBy.dir)}${getSearchParam(searchString)}${optionalQuery(props, 'category')}`;\n break;\n\n case 'media':\n // when requesting media files via the documents endpoint\n extra = `&content_types=video,audio${getSortParams(sortBy.sort, sortBy.dir)}${getSearchParam(searchString)}`;\n break;\n\n case 'documents':\n extra = `&exclude_content_types=image,video,audio${getSortParams(sortBy.sort, sortBy.dir)}${getSearchParam(searchString)}`;\n break;\n\n case 'media_objects':\n // when requesting media objects (this is the currently used branch)\n extra = `${getSortParams(sortBy.sort === 'alphabetical' ? 'title' : 'date', sortBy.dir)}${getSearchParam(searchString)}`;\n break;\n\n default:\n extra = getSearchParam(searchString);\n }\n\n return `${this.baseUri(endpoint, host)}?contextType=${contextType}&contextId=${contextId}${pageSizeParam}${extra}`;\n }\n\n}\n\nfunction getSortParams(sort, dir) {\n let sortBy = sort;\n\n if (sortBy === 'date_added') {\n sortBy = 'created_at';\n } else if (sortBy === 'alphabetical') {\n sortBy = 'name';\n }\n\n return `&sort=${sortBy}&order=${dir}`;\n}\n\nfunction optionalQuery(props, name) {\n return props[name] ? `&${name}=${props[name]}` : '';\n}\n\nfunction getSearchParam(searchString) {\n return (searchString === null || searchString === void 0 ? void 0 : searchString.length) >= 3 ? `&search_term=${encodeURIComponent(searchString)}` : '';\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (RceApiSource);\n\n//# sourceURL=webpack:///./src/rcs/api.js?");
|
|
17846
17882
|
|
|
17847
17883
|
/***/ }),
|
|
17848
17884
|
|