diff --git a/openmetadata-ui/src/main/resources/ui/package.json b/openmetadata-ui/src/main/resources/ui/package.json
index ccbed8ab568..338d19789c5 100644
--- a/openmetadata-ui/src/main/resources/ui/package.json
+++ b/openmetadata-ui/src/main/resources/ui/package.json
@@ -23,6 +23,7 @@
"@fortawesome/react-fontawesome": "^0.1.17",
"@okta/okta-auth-js": "^6.1.0",
"@okta/okta-react": "^6.4.2",
+ "@toast-ui/react-editor": "^3.1.3",
"autoprefixer": "^9.8.6",
"axios": "^0.21.1",
"babel-plugin-named-asset-import": "^0.3.6",
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/AddDataQualityTest/Forms/ColumnTestForm.test.tsx b/openmetadata-ui/src/main/resources/ui/src/components/AddDataQualityTest/Forms/ColumnTestForm.test.tsx
index 8ddd9e7c138..0b5e3f3599d 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/AddDataQualityTest/Forms/ColumnTestForm.test.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/AddDataQualityTest/Forms/ColumnTestForm.test.tsx
@@ -5,7 +5,7 @@ import ColumnTestForm from './ColumnTestForm';
const mockFunction = jest.fn();
-jest.mock('../../common/editor/MarkdownWithPreview', () => {
+jest.mock('../../common/rich-text-editor/RichTextEditor', () => {
return jest.fn().mockReturnValue(
MarkdownWithPreview component
);
});
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/AddDataQualityTest/Forms/ColumnTestForm.tsx b/openmetadata-ui/src/main/resources/ui/src/components/AddDataQualityTest/Forms/ColumnTestForm.tsx
index 611875c5c30..c66925c09c1 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/AddDataQualityTest/Forms/ColumnTestForm.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/AddDataQualityTest/Forms/ColumnTestForm.tsx
@@ -35,7 +35,7 @@ import {
import SVGIcons from '../../../utils/SvgUtils';
import { getDataTypeString } from '../../../utils/TableUtils';
import { Button } from '../../buttons/Button/Button';
-import MarkdownWithPreview from '../../common/editor/MarkdownWithPreview';
+import RichTextEditor from '../../common/rich-text-editor/RichTextEditor';
type Props = {
data?: ColumnTest;
@@ -657,10 +657,10 @@ const ColumnTestForm = ({
htmlFor="description">
Description:
-
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/AddDataQualityTest/Forms/TableTestForm.test.tsx b/openmetadata-ui/src/main/resources/ui/src/components/AddDataQualityTest/Forms/TableTestForm.test.tsx
index 7d4b319722e..d44bd2fa832 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/AddDataQualityTest/Forms/TableTestForm.test.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/AddDataQualityTest/Forms/TableTestForm.test.tsx
@@ -5,7 +5,7 @@ import TableTestForm from './TableTestForm';
const mockFunction = jest.fn();
-jest.mock('../../common/editor/MarkdownWithPreview', () => {
+jest.mock('../../common/rich-text-editor/RichTextEditor', () => {
return jest.fn().mockReturnValue(MarkdownWithPreview component
);
});
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/AddDataQualityTest/Forms/TableTestForm.tsx b/openmetadata-ui/src/main/resources/ui/src/components/AddDataQualityTest/Forms/TableTestForm.tsx
index eae8e5372d8..41ea7acfb74 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/AddDataQualityTest/Forms/TableTestForm.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/AddDataQualityTest/Forms/TableTestForm.tsx
@@ -27,7 +27,7 @@ import {
requiredField,
} from '../../../utils/CommonUtils';
import { Button } from '../../buttons/Button/Button';
-import MarkdownWithPreview from '../../common/editor/MarkdownWithPreview';
+import RichTextEditor from '../../common/rich-text-editor/RichTextEditor';
type Props = {
data?: TableTest;
@@ -319,10 +319,10 @@ const TableTestForm = ({
htmlFor="description">
Description:
-
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/AddGlossary/AddGlossary.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/AddGlossary/AddGlossary.component.tsx
index 05bccd8fd48..f9d9d4759e0 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/AddGlossary/AddGlossary.component.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/AddGlossary/AddGlossary.component.tsx
@@ -25,7 +25,7 @@ import {
requiredField,
} from '../../utils/CommonUtils';
import { Button } from '../buttons/Button/Button';
-import MarkdownWithPreview from '../common/editor/MarkdownWithPreview';
+import RichTextEditor from '../common/rich-text-editor/RichTextEditor';
import PageLayout from '../containers/PageLayout';
import Loader from '../Loader/Loader';
import ReviewerModal from '../Modals/ReviewerModal/ReviewerModal.component';
@@ -212,11 +212,11 @@ const AddGlossary = ({
htmlFor="description">
Description:
-
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/AddGlossary/AddGlossary.test.tsx b/openmetadata-ui/src/main/resources/ui/src/components/AddGlossary/AddGlossary.test.tsx
index 915b4ad68cb..3d17b3ff10b 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/AddGlossary/AddGlossary.test.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/AddGlossary/AddGlossary.test.tsx
@@ -32,6 +32,10 @@ jest.mock('../common/rich-text-editor/RichTextEditorPreviewer', () => {
return jest.fn().mockReturnValue(RichTextEditorPreviewer
);
});
+jest.mock('../common/rich-text-editor/RichTextEditor', () => {
+ return jest.fn().mockReturnValue(RichTextEditor
);
+});
+
jest.mock('../../axiosAPIs/glossaryAPI', () => ({
addGlossaries: jest.fn().mockImplementation(() => Promise.resolve()),
}));
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/AddGlossaryTerm/AddGlossaryTerm.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/AddGlossaryTerm/AddGlossaryTerm.component.tsx
index 84270f57e45..2742da11d05 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/AddGlossaryTerm/AddGlossaryTerm.component.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/AddGlossaryTerm/AddGlossaryTerm.component.tsx
@@ -31,7 +31,7 @@ import {
} from '../../utils/CommonUtils';
import SVGIcons from '../../utils/SvgUtils';
import { Button } from '../buttons/Button/Button';
-import MarkdownWithPreview from '../common/editor/MarkdownWithPreview';
+import RichTextEditor from '../common/rich-text-editor/RichTextEditor';
import PageLayout from '../containers/PageLayout';
import Loader from '../Loader/Loader';
import RelatedTermsModal from '../Modals/RelatedTermsModal/RelatedTermsModal';
@@ -325,11 +325,11 @@ const AddGlossaryTerm = ({
htmlFor="description">
Description:
-
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/AddGlossaryTerm/AddGlossaryTerm.test.tsx b/openmetadata-ui/src/main/resources/ui/src/components/AddGlossaryTerm/AddGlossaryTerm.test.tsx
index 60b4d5ef8e9..fecad3d8db6 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/AddGlossaryTerm/AddGlossaryTerm.test.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/AddGlossaryTerm/AddGlossaryTerm.test.tsx
@@ -40,6 +40,10 @@ jest.mock('../common/rich-text-editor/RichTextEditorPreviewer', () => {
return jest.fn().mockReturnValue(RichTextEditorPreviewer
);
});
+jest.mock('../common/rich-text-editor/RichTextEditor', () => {
+ return jest.fn().mockReturnValue(RichTextEditor
);
+});
+
const mockOnCancel = jest.fn();
const mockOnSave = jest.fn();
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/AddWebhook/AddWebhook.tsx b/openmetadata-ui/src/main/resources/ui/src/components/AddWebhook/AddWebhook.tsx
index 3478ab0b185..e38af0af1b7 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/AddWebhook/AddWebhook.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/AddWebhook/AddWebhook.tsx
@@ -38,7 +38,7 @@ import {
import SVGIcons, { Icons } from '../../utils/SvgUtils';
import { Button } from '../buttons/Button/Button';
import CopyToClipboardButton from '../buttons/CopyToClipboardButton/CopyToClipboardButton';
-import MarkdownWithPreview from '../common/editor/MarkdownWithPreview';
+import RichTextEditor from '../common/rich-text-editor/RichTextEditor';
import PageLayout from '../containers/PageLayout';
import DropDown from '../dropdown/DropDown';
import Loader from '../Loader/Loader';
@@ -502,11 +502,11 @@ const AddWebhook: FunctionComponent = ({
htmlFor="description">
Description:
-
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/CreateUser/CreateUser.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/CreateUser/CreateUser.component.tsx
index 201e95dc7bf..0142600e20e 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/CreateUser/CreateUser.component.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/CreateUser/CreateUser.component.tsx
@@ -23,7 +23,7 @@ import { EntityReference as UserTeams } from '../../generated/entity/teams/user'
import jsonData from '../../jsons/en';
import { errorMsg, requiredField } from '../../utils/CommonUtils';
import { Button } from '../buttons/Button/Button';
-import MarkdownWithPreview from '../common/editor/MarkdownWithPreview';
+import RichTextEditor from '../common/rich-text-editor/RichTextEditor';
import PageLayout from '../containers/PageLayout';
import DropDown from '../dropdown/DropDown';
import { DropDownListItem } from '../dropdown/types';
@@ -246,7 +246,7 @@ const CreateUser = ({
-
+
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/CreateUser/CreateUser.test.tsx b/openmetadata-ui/src/main/resources/ui/src/components/CreateUser/CreateUser.test.tsx
index 4be5b02b997..7fad35254b2 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/CreateUser/CreateUser.test.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/CreateUser/CreateUser.test.tsx
@@ -33,7 +33,7 @@ jest.mock('../dropdown/DropDown', () => {
return jest.fn().mockReturnValue(Dropdown component
);
});
-jest.mock('../common/editor/MarkdownWithPreview', () => {
+jest.mock('../common/rich-text-editor/RichTextEditor', () => {
return jest.fn().mockReturnValue(MarkdownWithPreview component
);
});
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Modals/AddServiceModal/AddServiceModal.test.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Modals/AddServiceModal/AddServiceModal.test.tsx
index b6b34b6d8e2..5cc03fe3c21 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/Modals/AddServiceModal/AddServiceModal.test.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/Modals/AddServiceModal/AddServiceModal.test.tsx
@@ -36,7 +36,7 @@ const mockOnCancel = jest.fn();
const mockServiceList: Array = [{ name: mockData.name }];
-jest.mock('../../common/editor/MarkdownWithPreview', () => {
+jest.mock('../../common/rich-text-editor/RichTextEditor', () => {
return jest
.fn()
.mockReturnValue(MarkdownWithPreview
);
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Modals/AddServiceModal/AddServiceModal.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Modals/AddServiceModal/AddServiceModal.tsx
index 3444481d312..34ca028b5c6 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/Modals/AddServiceModal/AddServiceModal.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/Modals/AddServiceModal/AddServiceModal.tsx
@@ -69,7 +69,7 @@ import {
import SVGIcons, { Icons } from '../../../utils/SvgUtils';
import { Button } from '../../buttons/Button/Button';
import CronEditor from '../../common/CronEditor/CronEditor';
-import MarkdownWithPreview from '../../common/editor/MarkdownWithPreview';
+import RichTextEditor from '../../common/rich-text-editor/RichTextEditor';
import RichTextEditorPreviewer from '../../common/rich-text-editor/RichTextEditorPreviewer';
import IngestionStepper from '../../IngestionStepper/IngestionStepper.component';
@@ -1681,10 +1681,10 @@ export const AddServiceModal: FunctionComponent = ({
-
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Modals/ModalWithMarkdownEditor/ModalWithMarkdownEditor.test.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Modals/ModalWithMarkdownEditor/ModalWithMarkdownEditor.test.tsx
index 665065a68d7..e7450c924ad 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/Modals/ModalWithMarkdownEditor/ModalWithMarkdownEditor.test.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/Modals/ModalWithMarkdownEditor/ModalWithMarkdownEditor.test.tsx
@@ -19,7 +19,7 @@ const mockOnSave = jest.fn();
const mockOnCancel = jest.fn();
const mockValue = 'Test value';
-jest.mock('../../common/editor/MarkdownWithPreview', () => {
+jest.mock('../../common/rich-text-editor/RichTextEditor', () => {
return () => jest.fn().mockImplementation(() => mockValue);
});
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Modals/ModalWithMarkdownEditor/ModalWithMarkdownEditor.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Modals/ModalWithMarkdownEditor/ModalWithMarkdownEditor.tsx
index 6da8913c598..9304ee61fb3 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/Modals/ModalWithMarkdownEditor/ModalWithMarkdownEditor.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/Modals/ModalWithMarkdownEditor/ModalWithMarkdownEditor.tsx
@@ -11,15 +11,15 @@
* limitations under the License.
*/
+import {
+ faWindowMaximize,
+ faWindowMinimize,
+} from '@fortawesome/free-solid-svg-icons';
+import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import classnames from 'classnames';
import React, { FunctionComponent, useRef, useState } from 'react';
import { Button } from '../../buttons/Button/Button';
-import MarkdownWithPreview from '../../common/editor/MarkdownWithPreview';
-import {
- faWindowMinimize,
- faWindowMaximize,
-} from '@fortawesome/free-solid-svg-icons';
-import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
+import RichTextEditor from '../../common/rich-text-editor/RichTextEditor';
type EditorContentRef = {
getEditorContent: () => string;
@@ -98,11 +98,7 @@ export const ModalWithMarkdownEditor: FunctionComponent = ({
)}
-
+
- );
- }
-}
diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/tags/Form.test.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/tags/Form.test.tsx
index 68d0a01875f..d237a8e5170 100644
--- a/openmetadata-ui/src/main/resources/ui/src/pages/tags/Form.test.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/pages/tags/Form.test.tsx
@@ -10,7 +10,7 @@ const mockInitialData = {
name: '',
};
-jest.mock('../../components/common/editor/MarkdownWithPreview', () => {
+jest.mock('../../components/common/rich-text-editor/RichTextEditor', () => {
return jest.fn().mockReturnValue(MarkdownWithPreview component
);
});
diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/tags/Form.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/tags/Form.tsx
index 4043104b8bc..512abd90723 100644
--- a/openmetadata-ui/src/main/resources/ui/src/pages/tags/Form.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/pages/tags/Form.tsx
@@ -19,7 +19,7 @@ import React, {
useRef,
useState,
} from 'react';
-import MarkdownWithPreview from '../../components/common/editor/MarkdownWithPreview';
+import RichTextEditor from '../../components/common/rich-text-editor/RichTextEditor';
import { CreateTagCategory } from '../../generated/api/tags/createTagCategory';
import { errorMsg } from '../../utils/CommonUtils';
@@ -120,7 +120,10 @@ const Form: React.FC = forwardRef(
-
+
diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/teams/Form.test.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/teams/Form.test.tsx
index ecc282bdb7a..d1fc70c2d64 100644
--- a/openmetadata-ui/src/main/resources/ui/src/pages/teams/Form.test.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/pages/teams/Form.test.tsx
@@ -5,7 +5,7 @@ import Form from './Form';
const mockFunction = jest.fn();
-jest.mock('../../components/common/editor/MarkdownWithPreview', () => {
+jest.mock('../../components/common/rich-text-editor/RichTextEditor', () => {
return jest.fn().mockReturnValue(MarkdownWithPreview component
);
});
diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/teams/Form.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/teams/Form.tsx
index c0468960a6a..b99611221cb 100644
--- a/openmetadata-ui/src/main/resources/ui/src/pages/teams/Form.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/pages/teams/Form.tsx
@@ -19,7 +19,7 @@ import React, {
useRef,
useState,
} from 'react';
-import MarkdownWithPreview from '../../components/common/editor/MarkdownWithPreview';
+import RichTextEditor from '../../components/common/rich-text-editor/RichTextEditor';
import { errorMsg } from '../../utils/CommonUtils';
type FormProp = {
@@ -114,7 +114,10 @@ const Form: React.FC = forwardRef(
-
+
diff --git a/openmetadata-ui/src/main/resources/ui/yarn.lock b/openmetadata-ui/src/main/resources/ui/yarn.lock
index 2747a49715f..dbbf9a25f7f 100644
--- a/openmetadata-ui/src/main/resources/ui/yarn.lock
+++ b/openmetadata-ui/src/main/resources/ui/yarn.lock
@@ -1794,6 +1794,27 @@
traverse "^0.6.6"
unified "^9.2.1"
+"@toast-ui/editor@^3.1.3":
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/@toast-ui/editor/-/editor-3.1.3.tgz#12f15dab1fc9c1db336683f51208f8ba8017abb9"
+ integrity sha512-4W8nKIhct4bGOKNMkYY2nGzt2k+8LUWlINwGZvCbNgIo6WKlcOarsbWD0o8stOAleaq2TeG6ixIvYK/wTG0OxA==
+ dependencies:
+ dompurify "^2.3.3"
+ prosemirror-commands "^1.1.9"
+ prosemirror-history "^1.1.3"
+ prosemirror-inputrules "^1.1.3"
+ prosemirror-keymap "^1.1.4"
+ prosemirror-model "^1.14.1"
+ prosemirror-state "^1.3.4"
+ prosemirror-view "^1.18.7"
+
+"@toast-ui/react-editor@^3.1.3":
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/@toast-ui/react-editor/-/react-editor-3.1.3.tgz#5d55ecf08df4c6a230c104f5e4dbab9212107941"
+ integrity sha512-k5W53y/R3cZvSH3UfDgeT8L1k8MpRri4O9hcTeuXtnbkkCtPQjt0m696tKrZvSXRNeqa4mKT0m8uNbHJAqWD4g==
+ dependencies:
+ "@toast-ui/editor" "^3.1.3"
+
"@tootallnate/once@1":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
@@ -5001,6 +5022,11 @@ dompurify@^2.0.7:
resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.3.4.tgz#1cf5cf0105ccb4debdf6db162525bd41e6ddacc6"
integrity sha512-6BVcgOAVFXjI0JTjEvZy901Rghm+7fDQOrNIcxB4+gdhj6Kwp6T9VBhBY/AbagKHJocRkDYGd6wvI+p4/10xtQ==
+dompurify@^2.3.3:
+ version "2.3.6"
+ resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.3.6.tgz#2e019d7d7617aacac07cbbe3d88ae3ad354cf875"
+ integrity sha512-OFP2u/3T1R5CEgWCEONuJ1a5+MFKnOYpkywpUSxv/dj1LeBT1erK+JwM7zK0ROy2BRhqVCf0LRw/kHqKuMkVGg==
+
domutils@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a"
@@ -9930,6 +9956,11 @@ optionator@^0.8.1, optionator@^0.8.3:
type-check "~0.3.2"
word-wrap "~1.2.3"
+orderedmap@^1.1.0:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/orderedmap/-/orderedmap-1.1.5.tgz#4174c90b61bd7c25294932edf789f3b5677744d0"
+ integrity sha512-/fzlCGKRmfayGoI9UUXvJfc2nMZlJHW30QqEvwPvlg8tsX7jyiUSomYie6mYqx7Z9bOMGoag0H/q1PS/0PjYkg==
+
organize-imports-cli@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/organize-imports-cli/-/organize-imports-cli-0.7.0.tgz#a6ffcec2d31c5de60748efe8861ea8cecd727276"
@@ -10570,6 +10601,70 @@ prop-types@^15.0.0, prop-types@^15.5.10, prop-types@^15.8.1:
object-assign "^4.1.1"
react-is "^16.13.1"
+prosemirror-commands@^1.1.9:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/prosemirror-commands/-/prosemirror-commands-1.2.2.tgz#1bd167372ee20abf488aca9cece63c43fab182c9"
+ integrity sha512-TX+KpWudMon06frryfpO/u7hsQv2hu8L4VSVbCpi3/7wXHBgl+35mV85qfa3RpT8xD2f3MdeoTqH0vy5JdbXPg==
+ dependencies:
+ prosemirror-model "^1.0.0"
+ prosemirror-state "^1.0.0"
+ prosemirror-transform "^1.0.0"
+
+prosemirror-history@^1.1.3:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/prosemirror-history/-/prosemirror-history-1.2.0.tgz#04cc4df8d2f7b2a46651a2780de191ada6d465ea"
+ integrity sha512-B9v9xtf4fYbKxQwIr+3wtTDNLDZcmMMmGiI3TAPShnUzvo+Rmv1GiUrsQChY1meetHl7rhML2cppF3FTs7f7UQ==
+ dependencies:
+ prosemirror-state "^1.2.2"
+ prosemirror-transform "^1.0.0"
+ rope-sequence "^1.3.0"
+
+prosemirror-inputrules@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/prosemirror-inputrules/-/prosemirror-inputrules-1.1.3.tgz#93f9199ca02473259c30d7e352e4c14022d54638"
+ integrity sha512-ZaHCLyBtvbyIHv0f5p6boQTIJjlD6o2NPZiEaZWT2DA+j591zS29QQEMT4lBqwcLW3qRSf7ZvoKNbf05YrsStw==
+ dependencies:
+ prosemirror-state "^1.0.0"
+ prosemirror-transform "^1.0.0"
+
+prosemirror-keymap@^1.1.4:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-1.1.5.tgz#b5984c7d30f5c75956c853126c54e9e624c0327b"
+ integrity sha512-8SZgPH3K+GLsHL2wKuwBD9rxhsbnVBTwpHCO4VUO5GmqUQlxd/2GtBVWTsyLq4Dp3N9nGgPd3+lZFKUDuVp+Vw==
+ dependencies:
+ prosemirror-state "^1.0.0"
+ w3c-keyname "^2.2.0"
+
+prosemirror-model@^1.0.0, prosemirror-model@^1.14.1, prosemirror-model@^1.16.0:
+ version "1.16.1"
+ resolved "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.16.1.tgz#fb388270bc9609b66298d6a7e15d0cc1d6c61253"
+ integrity sha512-r1/w0HDU40TtkXp0DyKBnFPYwd8FSlUSJmGCGFv4DeynfeSlyQF2FD0RQbVEMOe6P3PpUSXM6LZBV7W/YNZ4mA==
+ dependencies:
+ orderedmap "^1.1.0"
+
+prosemirror-state@^1.0.0, prosemirror-state@^1.2.2, prosemirror-state@^1.3.4:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.3.4.tgz#4c6b52628216e753fc901c6d2bfd84ce109e8952"
+ integrity sha512-Xkkrpd1y/TQ6HKzN3agsQIGRcLckUMA9u3j207L04mt8ToRgpGeyhbVv0HI7omDORIBHjR29b7AwlATFFf2GLA==
+ dependencies:
+ prosemirror-model "^1.0.0"
+ prosemirror-transform "^1.0.0"
+
+prosemirror-transform@^1.0.0, prosemirror-transform@^1.1.0:
+ version "1.4.2"
+ resolved "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.4.2.tgz#35f56091bcab3359f1eb90e82ce9f20cc52105c1"
+ integrity sha512-bcIsf3uRZhfab0xRfyyxOEh6eqSszq/hJbDbmUumFnbHBoWhB/uXbpz6vvUxfk0XiEvrZDJ+5pXRrNDc1Hu3vQ==
+ dependencies:
+ prosemirror-model "^1.0.0"
+
+prosemirror-view@^1.18.7:
+ version "1.23.11"
+ resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.23.11.tgz#297f6ef8d10e1ff78c505d9c57358e062810a80e"
+ integrity sha512-iBqsyrQZz9NYcJ13JC7sPZ+4PdbBbUXhs1qzbxkDQ2tplcVROwxmAn3bnxpVFst/guv+XFI5KTHHbw5stvKt0g==
+ dependencies:
+ prosemirror-model "^1.16.0"
+ prosemirror-state "^1.0.0"
+ prosemirror-transform "^1.1.0"
property-information@^6.0.0:
version "6.1.1"
resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.1.1.tgz#5ca85510a3019726cb9afed4197b7b8ac5926a22"
@@ -11693,6 +11788,11 @@ rimraf@^3.0.0:
dependencies:
glob "^7.1.3"
+rope-sequence@^1.3.0:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/rope-sequence/-/rope-sequence-1.3.2.tgz#a19e02d72991ca71feb6b5f8a91154e48e3c098b"
+ integrity sha512-ku6MFrwEVSVmXLvy3dYph3LAMNS0890K7fabn+0YIRQ2T96T9F4gkFf0vf0WW0JUraNWwGRtInEpH7yO4tbQZg==
+
rsvp@^4.8.4:
version "4.8.5"
resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734"
@@ -13618,6 +13718,11 @@ w3c-hr-time@^1.0.1, w3c-hr-time@^1.0.2:
dependencies:
browser-process-hrtime "^1.0.0"
+w3c-keyname@^2.2.0:
+ version "2.2.4"
+ resolved "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-2.2.4.tgz#4ade6916f6290224cdbd1db8ac49eab03d0eef6b"
+ integrity sha512-tOhfEwEzFLJzf6d1ZPkYfGj+FWhIpBux9ppoP3rlclw3Z0BZv3N7b7030Z1kYth+6rDuAsXUFr+d0VE6Ed1ikw==
+
w3c-xmlserializer@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794"