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"