Commit 7ab063ca by Рамис

new editor

parent 1ce37a2c
...@@ -54,12 +54,20 @@ ...@@ -54,12 +54,20 @@
"dist" "dist"
], ],
"dependencies": { "dependencies": {
"@tiptap/core": "^2.0.0-beta.176",
"@tiptap/extension-image": "^2.0.0-beta.27",
"@tiptap/extension-link": "^2.0.0-beta.38",
"@tiptap/extension-table": "^2.0.0-beta.49",
"@tiptap/extension-table-cell": "^2.0.0-beta.20",
"@tiptap/extension-table-header": "^2.0.0-beta.22",
"@tiptap/extension-table-row": "^2.0.0-beta.19",
"@tiptap/extension-text-align": "^2.0.0-beta.29",
"@tiptap/extension-underline": "^2.0.0-beta.23",
"@tiptap/react": "^2.0.0-beta.109",
"@tiptap/starter-kit": "^2.0.0-beta.185",
"katex": "^0.15.3", "katex": "^0.15.3",
"quill-blot-formatter": "^1.0.5",
"quill-image-resize-module-react": "^3.0.0",
"rc-upload": "^4.3.3", "rc-upload": "^4.3.3",
"react": "^18.0.0", "react": "^18.0.0",
"react-quill": "^1.3.5",
"sass": "^1.49.9" "sass": "^1.49.9"
} }
} }
import React, { Fragment } from 'react' import React, { Fragment, useEffect, useState, useRef } from 'react'
import ReactQuill, { Quill } from 'react-quill'
import 'react-quill/dist/quill.snow.css'
import './index.scss' import './index.scss'
import "katex/dist/katex.min.css" // import "katex/dist/katex.min.css"
import ImageBlot from "./blots/ImageBlot" // import EditorModal from "./components/EditorModal"
import VideoBlot from "./blots/VideoBlot" // import Uploader from "./components/Uploader"
import VideoLocalBlot from "./blots/VideoLocalBlot"
import { useEditor, EditorContent, BubbleMenu, isMarkActive, isActive } from '@tiptap/react'
import StarterKit from '@tiptap/starter-kit'
import Underline from '@tiptap/extension-underline'
import Table from '@tiptap/extension-table'
import TableCell from '@tiptap/extension-table-cell'
import TableRow from '@tiptap/extension-table-row'
import TableHeader from '@tiptap/extension-table-header'
import Link from '@tiptap/extension-link'
import Image from '@tiptap/extension-image'
import TextAlign from '@tiptap/extension-text-align';
import ToolBar from "./components/ToolBar"
import EditorModal from "./components/EditorModal" import EditorModal from "./components/EditorModal"
import Uploader from "./components/Uploader" import Uploader from "./components/Uploader"
import BlotFormatter from 'quill-blot-formatter' import Video from './extensions/Video'
import ResizeImageBlot from "./blots/ResizeImageBlot" import Iframe from './extensions/Iframe'
import katex from "katex";
const initialBubbleItems = ['bold', 'italic', 'underline', 'strike'];
export default class QEditor extends React.Component {
constructor (props) { const QEditor = ({ value, onChange, style, uploadOptions }) => {
super(props) const [innerModalType, setInnerModalType] = useState(null);
this.state = { const [embedContent, setEmbedContent] = useState('');
init: false, const [uploaderUid, setUploaderUid] = useState('uid' + new Date());
modalIsOpen: false, const [uploadedPaths, setUploadedPaths] = useState([]);
innerModalType: null, const [modalIsOpen, setModalIsOpen] = useState(false);
quillRef: null, const [modalTitle, setModalTitle] = useState('');
uploadedPaths: [], const [bubbleItems, setBubbleItems] = useState(initialBubbleItems);
uploaderUid: 'uid' + new Date(),
embedContent: '', const modalOpener = (type, title) => {
focusedIndex: 0 setModalTitle(title);
} setInnerModalType(type);
setModalIsOpen(true);
Quill.register('formats/videoLocal', VideoLocalBlot)
Quill.register('modules/blotFormatter', BlotFormatter)
Quill.register('formats/image', ImageBlot)
Quill.register('formats/video', VideoBlot)
} }
componentDidMount () { const toolsLib = {
this.setState({ video: {
init: true title: 'Загрузить видео',
}); onClick: () => modalOpener('video', 'Загрузить видео')
},
// if(window.checkOptimizeVideo === undefined){ iframe: {
// window.checkOptimizeVideo = setInterval(()=>{ title: 'Видео по ссылке',
// const children = [...document.getElementsByTagName('video')]; onClick: () => modalOpener('iframe', 'Видео по ссылке')
// },
// if(children.length > 0){ image: {
// children.forEach((video, i) => { title: 'Загрузить изображение',
// if(video.duration === 2.48){ onClick: () => modalOpener('image', 'Загрузить изображение')
// video.setAttribute('src', video.getAttribute('src').split('?')[0] + `?f=${parseInt(Date.now()/1000)}`) },
// } h2: {
// }) title: 'Заголовок 2',
// } onClick: () => editor.chain().focus().toggleHeading({ level: 2 }).run()
// }, 3000); },
// } h3: {
} title: 'Заголовок 3',
onClick: () => editor.chain().focus().toggleHeading({ level: 3 }).run()
modules = { },
toolbar: { h4: {
container: [ title: 'Заголовок 4',
[{header: [2, 3, 4, false]}], onClick: () => editor.chain().focus().toggleHeading({ level: 4 }).run()
['bold', 'italic', 'underline', 'strike', 'blockquote'], },
[ paragraph: {
{list: 'ordered'}, title: 'Обычный',
{list: 'bullet'}, onClick: () => editor.chain().focus().setParagraph().run()
{indent: '-1'}, },
{indent: '+1'} bold: {
], title: 'Жирный',
[{align: []}, {color: []}, {background: []}], onClick: () => editor.chain().focus().toggleBold().run()
['link', 'image', 'video', 'videoLocal'], },
['formula'], italic: {
['clean'] title: 'Курсив',
], onClick: () => editor.chain().focus().toggleItalic().run()
},
handlers: { underline: {
video: (a) => { title: 'Подчеркнутый',
const quill = this.quillRef.getEditor(); onClick: () => editor.chain().focus().toggleUnderline().run()
let range = quill.getSelection(); },
let index = range ? range.index : 0; strike: {
title: 'Зачеркнутый',
this.setState( onClick: () => editor.chain().focus().toggleStrike().run()
{ },
innerModalType: 'video', codeBlock: {
focusedIndex: index title: 'Код',
}, onClick: () => editor.chain().focus().toggleCodeBlock().run()
() => this.editorModal.show({title: 'Видео по ссылке'}) },
) clearMarks: {
}, title: 'Очистить форматирование',
videoLocal: (a) => { onClick: () => editor.chain().focus().unsetAllMarks().run()
const quill = this.quillRef.getEditor(); },
let range = quill.getSelection(); bulletList: {
let index = range ? range.index : 0; title: 'Маркированный список',
onClick: () => editor.chain().focus().toggleBulletList().run()
},
this.setState({ orderedList: {
innerModalType: 'videoLocal', title: 'Нумированный список',
focusedIndex: index onClick: () => editor.chain().focus().toggleOrderedList().run()
}, () => this.editorModal.show({title: 'Загрузить видео'})); },
}, blockquote: {
image: (a) => { title: 'Цитата',
const quill = this.quillRef.getEditor(); onClick: () => editor.chain().focus().toggleBlockquote().run()
let range = quill.getSelection(); },
let index = range ? range.index : 0; hardBreak: {
title: 'Перенос строки',
this.setState({ onClick: () => editor.chain().focus().setHardBreak().run()
innerModalType: 'image', },
focusedIndex: index hr: {
}, () => this.editorModal.show({title: 'Загрузить изображение'})); title: 'Горизонтальная линия',
} onClick: () => editor.chain().focus().setHorizontalRule().run()
} },
undo: {
title: 'Действие назад',
onClick: () => editor.chain().focus().undo().run()
},
redo: {
title: 'Действие вперед',
onClick: () => editor.chain().focus().redo().run()
},
alignLeft: {
title: 'По левому краю',
onClick: () => editor.commands.setTextAlign('left')
},
alignCenter: {
title: 'По центру',
onClick: () => editor.commands.setTextAlign('center')
},
alignRight: {
title: 'По правому краю',
onClick: () => editor.commands.setTextAlign('right')
},
insertTable: {
title: 'Вставить таблицу',
onClick: () => editor.chain().focus().insertTable({ rows: 4, cols: 4 }).run()
},
deleteTable: {
title: 'Удалить таблицу',
onClick: () => editor.chain().focus().deleteTable().run()
},
addRowBefore: {
title: 'Вставить строку перед',
onClick: () => editor.chain().focus().addRowBefore().run()
},
addRowAfter: {
title: 'Вставить строку после',
onClick: () => editor.chain().focus().addRowBefore().run()
},
addColumnBefore: {
title: 'Вставить столбец перед',
onClick: () => editor.chain().focus().addColumnBefore().run()
},
addColumnAfter: {
title: 'Вставить столбец после',
onClick: () => editor.chain().focus().addColumnAfter().run()
}, },
blotFormatter: {
specs: [ ResizeImageBlot ],
}
} }
formats = [ const editor = useEditor({
'header', extensions: [
'bold', 'italic', 'underline', 'strike', 'blockquote', StarterKit,
'list', 'bullet', 'indent', Underline,
'align', Image,
'link', 'image', 'color', 'background', 'video', 'videoLocal', Link,
'formula', Video,
] Iframe,
Table.configure({
buildActionsModal (buttons = []) { resizable: true,
}),
TableRow,
TableHeader,
TableCell,
BubbleMenu,
TextAlign.configure({
defaultAlignment: 'left',
types: ['heading', 'paragraph'],
alignments: ['left', 'center', 'right', 'justify'],
})
],
content: value,
})
const buildActionsModal = (buttons = []) => {
if (buttons.length === 0) { if (buttons.length === 0) {
return null; return null;
} }
...@@ -138,16 +198,41 @@ export default class QEditor extends React.Component { ...@@ -138,16 +198,41 @@ export default class QEditor extends React.Component {
) )
} }
getInnerModal () { const getUploader = ({ accept = '*' }) => {
switch (this.state.innerModalType) { return <Uploader
case 'video': key={uploaderUid}
accept={ accept }
action={ uploadOptions.url }
errorMessage={ uploadOptions.errorMessage }
onSuccess={(file) => {
let _uploadedPaths = [...uploadedPaths];
_uploadedPaths.push(file);
setUploadedPaths(_uploadedPaths)
}}
onDelete={(deleteFile)=>{
let deleteIdx = null;
let _uploadedPaths = [...uploadedPaths];
_uploadedPaths.map((f, i)=>{
if(f.uid === deleteFile.uid){
deleteIdx = i;
}
});
_uploadedPaths.splice(deleteIdx, 1);
setUploadedPaths(_uploadedPaths)
}}
multiple={true}
/>
}
const getInnerModal = () => {
switch (innerModalType) {
case 'iframe':
return ( return (
<Fragment> <Fragment>
<input type="text" value={this.state.embedContent} placeholder={'https://'} onInput={(e) => { <input type="text" value={embedContent} placeholder={'https://'} onInput={(e) => setEmbedContent(e.target.value)
this.setState({ }/>
embedContent: e.target.value
})
}}/>
<ul className={'atma-editor-soc-video'}> <ul className={'atma-editor-soc-video'}>
<li className={'youtube'}/> <li className={'youtube'}/>
<li className={'vimeo'}/> <li className={'vimeo'}/>
...@@ -157,121 +242,30 @@ export default class QEditor extends React.Component { ...@@ -157,121 +242,30 @@ export default class QEditor extends React.Component {
</ul> </ul>
</Fragment> </Fragment>
) )
case 'videoLocal': case 'video':
return ( return (
<Fragment> <Fragment>{ getUploader({ accept: 'video/*' }) }</Fragment>
<Uploader
key={this.state.uploaderUid}
accept={'video/*'}
action={ this.props.uploadOptions.url }
errorMessage={ this.props.uploadOptions.errorMessage }
onSuccess={(file) => {
let uploadedPaths = this.state.uploadedPaths;
uploadedPaths.push(file);
this.setState({uploadedPaths});
}}
onDelete={(deleteFile)=>{
let deleteIdx = null;
let uploadedPaths = this.state.uploadedPaths;
uploadedPaths.map((f, i)=>{
if(f.uid === deleteFile.uid){
deleteIdx = i;
}
});
uploadedPaths.splice(deleteIdx, 1);
this.setState({
uploadedPaths
})
}}
multiple={true}
/>
</Fragment>
) )
case 'image': case 'image':
return ( return (
<Fragment> <Fragment>{ getUploader({ accept: 'image/*' }) }</Fragment>
<Uploader
key={this.state.uploaderUid}
accept={'image/*'}
action={ this.props.uploadOptions.url }
errorMessage={ this.props.uploadOptions.errorMessage }
onSuccess={(file) => {
let uploadedPaths = this.state.uploadedPaths;
uploadedPaths.push(file);
this.setState({uploadedPaths});
}}
onDelete={(deleteFile)=>{
let deleteIdx = null;
let uploadedPaths = this.state.uploadedPaths;
uploadedPaths.map((f, i)=>{
if(f.uid === deleteFile.uid){
deleteIdx = i;
}
});
uploadedPaths.splice(deleteIdx, 1);
this.setState({
uploadedPaths
})
}}
multiple={true}
/>
</Fragment>
) )
default: default:
return <div>Пусто</div> return <div>Пусто</div>
} }
} }
quillInsert () { const isDisabledAction = () => {
const quill = this.quillRef.getEditor();
let range = quill.getSelection();
let index = range ? range.index : 0;
if(this.state.focusedIndex > 0){
index = this.state.focusedIndex;
}
switch (this.state.innerModalType) {
case 'image':
case 'videoLocal':
this.state.uploadedPaths.map((file, i) => {
quill.insertEmbed(index, this.state.innerModalType, file.path, Quill.sources.USER);
quill.setSelection(index + 1);
});
this.setState({
uploadedPaths: []
})
break
default:
quill.insertEmbed(index, this.state.innerModalType, this.state.embedContent, Quill.sources.USER);
quill.setSelection(index + 1);
}
this.setState({
uploaderUid: `uid${new Date()}`,
embedContent: '',
uplodedPaths: [],
focusedIndex: 0
}, () => this.editorModal.hide());
}
isDisabledAction(){
let { innerModalType, uploadedPaths, embedContent } = this.state;
let isDisabled = false; let isDisabled = false;
switch(innerModalType){ switch(innerModalType){
case 'videoLocal': case 'video':
case 'image': case 'image':
if(this.props.uploadOptions.url === null || uploadedPaths.length === 0){ if(uploadOptions.url === null || uploadedPaths.length === 0){
isDisabled = true; isDisabled = true;
} }
break; break;
case 'video': case 'iframe':
try{ try{
let url = new URL(embedContent); let url = new URL(embedContent);
...@@ -298,86 +292,186 @@ export default class QEditor extends React.Component { ...@@ -298,86 +292,186 @@ export default class QEditor extends React.Component {
return isDisabled; return isDisabled;
} }
render () { // useEffect(()=>{
let {init, innerModalType, modalIsOpen} = this.state; // if(uploaderUid){
let { value, style } = this.props; //
// }
//
// setModalIsOpen(false);
// }, [uploaderUid])
window.katex = katex; if (!editor) {
return null
}
if ( !this.state.init) { return (
return null; <div className="atma-editor-wrap" style={style}>
} <div className="atma-editor">
return ( <ToolBar
<Fragment> editor={editor}
<div className="atma-editor-wrap" style={style}> {...{toolsLib}}
<div className={'atma-editor'} data-lang={ this.props.lang ? this.props.lang : 'ru' }> />
<ReactQuill <BubbleMenu editor={editor} shouldShow={({...o}) => {
ref={ref => this.quillRef = ref} let items = [];
defaultValue={value}
theme="snow" if(o.from !== o.to && editor.isActive('paragraph')){
onChange={value => { items = initialBubbleItems;
this.props.onChange(value) console.log('das');
}} }
modules={this.modules}
formats={this.formats} if(editor.isActive('table')){
onChangeSelection={(range, source, editor) => { items = [...items, ...['video']];
// console.log(range, source, editor.getText()); }
}}
scrollingContainer={'html'}
/>
console.log(o);
console.log('>', o.from, o.to, editor.isActive('paragraph'));
console.log('items', [...['1','2'], ...['3', '4']]);
if(editor.isActive('image') === true){
setBubbleItems(['alignLeft', 'alignCenter', 'alignRight']);
}
setBubbleItems(items)
return true
}} tippyOptions={{ duration: 100 }}>
<div className="atma-editor-bubble">
{
bubbleItems.map((type, i)=>(
<div
key={ 'bubbleItems' + i }
className={'qicon q' + type + (editor.isActive(type) ? ' active' : '')}
title={ toolsLib[type] ? toolsLib[type].title : '' }
onClick={ toolsLib[type].onClick }
/>
))
}
</div> </div>
<EditorModal
isOpen={modalIsOpen} {/* <button onClick={() => editor.commands.setTextAlign('left')}>left</button> */}
ref={ref => this.editorModal = ref} {/* <button onClick={() => editor.commands.setTextAlign('center')}>center</button> */}
> {/* <button onClick={() => editor.commands.setTextAlign('right')}>right</button> */}
{this.getInnerModal()} </BubbleMenu>
{this.buildActionsModal([ <EditorContent
{ editor={editor}
title: 'Отмена', className={'atma-editor-content'}
className: ' atma-editor-cancel', />
onClick: () => { </div>
const quill = this.quillRef.getEditor();
let range = quill.getSelection(); <EditorModal
let index = range ? range.index : 0; isOpen={modalIsOpen}
title={modalTitle}
this.setState( >
{ { getInnerModal() }
uploaderUid: `uid${new Date()}`, {buildActionsModal([
uploadedPaths: [] {
}, title: 'Отмена',
() => this.editorModal.hide() className: ' atma-editor-cancel',
) onClick: () => {
// const quill = this.quillRef.getEditor();
// let range = quill.getSelection();
// let index = range ? range.index : 0;
setUploaderUid(`uid${new Date()}`);
setUploadedPaths([]);
setModalIsOpen(false)
}
},
{
title: 'Вставить',
className: ' atma-editor-complete',
onClick: () => {
if(document.querySelectorAll('.atma-editor-uploader-progress').length > 0){
if(!confirm('Не полностью загруженные файлы будут утеряны. Вы уверены, что хотите продолжить?')){
return false;
} }
}, }
{ try {
title: 'Вставить', switch (innerModalType) {
className: ' atma-editor-complete', case 'image':
onClick: () => { uploadedPaths.map((file, i) => {
if(document.querySelectorAll('.atma-editor-uploader-progress').length > 0){ editor.chain().focus().setImage({ src: file.path }).run();
if(!confirm('Не полностью загруженные файлы будут утеряны. Вы уверены, что хотите продолжить?')){ });
return false; break
case 'video':
uploadedPaths.map((file, i) => {
editor.chain().focus().setVideo({ src: file.path, poster: file.path + '.jpg' }).run();
});
break
case 'iframe':
let _url = embedContent;
let reg = /(http|https):\/\/([\w.]+\/?)\S*/;
const url = new URL(reg.test(_url) ? _url : 'https:' + _url);
let urlId = url.pathname.replace(/\/$/ig, '').split('/').pop();
console.log(url);
switch (url.hostname) {
case 'rutube.ru':
case 'www.rutube.ru':
_url = `https://rutube.ru/pl/?pl_id&pl_type&pl_video=${urlId}`;
break
case 'vimeo.com':
_url = `https://player.vimeo.com/video/${urlId}`;
break
case 'ok.ru':
case 'www.ok.ru':
_url = `//ok.ru/videoembed/${urlId}`;
break
case 'youtu.be':
case 'youtube.com':
case 'www.youtube.com':
if (url.hostname.indexOf('youtu.be') === -1 && url.search !== '') {
if (url.searchParams.get('v')) {
urlId = url.searchParams.get('v');
}
}
_url = `https://www.youtube.com/embed/${urlId}`;
console.log(_url);
break
} }
}
this.quillInsert() console.log(_url);
},
disabled: this.isDisabledAction()
editor.chain().focus().setIframe({ src: _url }).run();
break
}
setUploaderUid(`uid${new Date()}`);
setEmbedContent('');
setUploadedPaths([]);
setModalTitle('');
setModalIsOpen(false);
}catch (err){
console.log(err)
} }
])
}
</EditorModal>
</div>
</Fragment>
)
}
}
QEditor.defaultProps = {
onChange: ()=>{},
lang: 'ru', },
uploadOptions: { disabled: isDisabledAction()
url: null, }
errorMessage: 'Загрузка временно невозможна' ])
}, }
style: {} </EditorModal>
</div>
)
} }
export default QEditor;
import React from "react"; import React, { useState } from "react";
export default class EditorModal extends React.Component { const EditorModal = ({ isOpen = false, title = null, children }) => {
// const [isShow, setIsShow] = useState(false);
constructor (props) { // const [title, setTitle] = useState('');
super(props);
return (
this.state = { <div className="atma-editor-modal" style={{ display: isOpen ? 'flex' : 'none' }}>
isShow: false, <div className="atma-editor-modal-box">
title: '' {
} title && <div className="atma-editor-modal-box-header">{ title }</div>
}
this.show = this.show.bind(this); { children }
this.hide = this.hide.bind(this);
}
show = ({ title }) => {
// this.resolve = resolve;
// this.reject = reject;
this.setState({
isShow: true,
title
})
}
hide(){
// this.setState({ isShow: false }, this.reject('ab'));
this.setState({ isShow: false });
}
render () {
return (
<div className="atma-editor-modal" style={{ display: this.state.isShow ? 'flex' : 'none' }}>
<div className="atma-editor-modal-box">
{
this.state.title &&
<div className="atma-editor-modal-box-header">{ this.state.title }</div>
}
{/*<div className={'atma-editor-modal-close'} onClick={ this.hide }>×</div>*/}
{ this.props.children && this.props.children }
</div>
</div> </div>
) </div>
)
}
} }
EditorModal.defaultProps = {
title: null export default EditorModal;
};
import React, { Fragment, useState } from 'react'
const Select = ({ items }) => {
const [show, setShow] = useState(false);
return (
<div className={"atma-editor-select" + (show === true ? 'show' : '')} onClick={()=>{ setShow(!show) }}>
<div className="atma-editor-select-drop">
</div>
</div>
)
}
export default Select;
import React, { Fragment, useState } from 'react'
const ToolBar = ({ editor, toolsLib = [] }) => {
if (!editor) {
return null
}
const [toolbarItems, setToolbarItems ] = useState([
{
type: 'g',
items: [
'undo',
'redo'
]
},
{
type: 's',
items: [
'h2',
'h3',
'h4',
'paragraph'
]
},
/* {
type: 'g',
items: [
'bold',
'italic',
'underline',
'strike',
]
}, */
{
type: 'g',
items: [
'bulletList',
'orderedList',
'blockquote',
'codeBlock',
'hr',
]
},
{
type: 'g',
items: [
'image',
'video',
'iframe',
]
},
{
type: 'g',
items: [
'clearMarks',
'hardBreak',
]
}
])
const getItem = (type = null, idx) => {
let item = null;
if(toolsLib[type]){
item = toolsLib[type];
return (
<div
key={ idx }
onClick={ item.onClick }
className={ `qicon q${type}` + (editor.isActive(type) ? ' active' : '') }
title={item.title}
/>
)
}else{
return null;
}
}
const getItems = () => {
let toolItems = [];
toolbarItems.map((section, i) => {
let gItems = [];
if(section.type === 'g'){
section.items.map((gKey, idx)=>{
gItems.push(getItem(gKey, `g-${ i }-${ idx }`))
})
toolItems.push(
<div className="atma-editor-toolbar-g">{ gItems }</div>
)
}
})
return toolItems;
}
return (
<div className="atma-editor-toolbar">
{ getItems() }
</div>
)
}
export default ToolBar;
import React, { Fragment, useState } from 'react'
const Select = ({ items, onChange }) => {
const [show, setShow] = useState(false);
const onChangeHandler = (item) => {
console.log(item);
}
return (
<div className={"atma-editor-toolbar-drop" + (show === true ? 'show' : '')} onClick={()=>{ setShow(!show) }}>
<div className={"atma-editor-toolbar-drop-selected"}></div>
<div className="atma-editor-opts">
{
items.map((item, i) => (
<div className="atma-editor-opts-item" onClick={()=>onChangeHandler(item)}></div>
))
}
</div>
</div>
)
}
export default Select;
import { Node, mergeAttributes } from '@tiptap/core'
const Iframe = Node.create({
name: 'iframe',
group: 'block',
selectable: false,
draggable: true,
atom: true,
addAttributes() {
return {
"src": {
default: null
},
"frameborder": {
default: 0,
},
"allowfullscreen": {
default: true,
parseHTML: () => {
console.log(this)
},
},
}
},
parseHTML() {
return [
{
tag: 'iframe',
},
]
},
renderHTML({ HTMLAttributes }) {
return ['iframe', mergeAttributes(HTMLAttributes)];
},
addNodeView() {
return ({ editor, node, ...a }) => {
// div.className = 'aspect-w-16 aspect-h-9' + (editor.isEditable ? ' cursor-pointer' : '');
const iframe = document.createElement('iframe');
if (editor.isEditable) {
iframe.className = 'pointer-events-none';
}
iframe.src = node.attrs.src;
iframe.frameBorder = node.attrs.frameborder;
iframe.allowfullscreen = node.attrs.allowfullscreen;
iframe.style = 'width:1280px;height:auto;aspect-ratio: 16 / 9;';
// div.append(video);
return {
dom: iframe,
}
}
},
addCommands() {
return {
setIframe: (options) => ({ tr, dispatch }) => {
const { selection } = tr
const node = this.type.create(options)
//
if (dispatch) {
tr.replaceRangeWith(selection.from, selection.to, node)
}
return true
},
}
},
});
export default Iframe;
import { Node, mergeAttributes } from '@tiptap/core'
const Video = Node.create({
name: 'video',
group: 'block',
selectable: false,
draggable: true,
atom: true,
addAttributes() {
return {
"src": {
default: null
},
"poster": {
default: null
}
}
},
parseHTML() {
return [
{
tag: 'video',
},
]
},
renderHTML({ HTMLAttributes }) {
return ['video', mergeAttributes(HTMLAttributes)];
},
addNodeView() {
return ({ editor, node }) => {
const video = document.createElement('video');
if (editor.isEditable) {
video.className = 'pointer-events-none';
}
video.src = node.attrs.src;
video.poster = node.attrs.poster;
video.controls = true;
return {
dom: video,
}
}
},
addCommands() {
return {
setVideo: (options) => ({ tr, dispatch }) => {
const { selection } = tr
const node = this.type.create(options)
//
if (dispatch) {
tr.replaceRangeWith(selection.from, selection.to, node)
}
return true
},
}
},
});
export default Video;
...@@ -4,68 +4,171 @@ body{ ...@@ -4,68 +4,171 @@ body{
.atma-editor { .atma-editor {
position: relative; position: relative;
border-radius: 8px;
display: flex;
flex-direction: column;
&-wrap{ &-wrap{
//overflow-y: auto;
*{ *{
box-sizing: border-box; box-sizing: border-box;
} }
margin-bottom: 20px;
} }
.ql{
&-toolbar{
&.ql-snow{
position: sticky;
top: 0;
z-index: 10;
background-color: #fff;
border-radius: 4px 4px 0 0;
.ql-videoLocal:after{
content:'';
display: inline-block;
width: 18px;
height: 18px;
background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2249%22%20height%3D%2242%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Cpath%20d%3D%22M16.844%2024.038c.151%200%20.296-.026.435-.079.14-.053.29-.127.451-.221l8.66-5.015c.318-.181.541-.348.67-.5a.824.824%200%200%200%20.195-.551.827.827%200%200%200-.194-.548c-.13-.155-.353-.322-.671-.503l-8.66-5.014a3.08%203.08%200%200%200-.45-.222%201.21%201.21%200%200%200-.436-.08.876.876%200%200%200-.698.306c-.175.204-.263.48-.263.826v10.471c0%20.345.088.62.263.824a.876.876%200%200%200%20.698.306z%22%20fill%3D%22%23444%22%20fill-rule%3D%22nonzero%22%2F%3E%3Crect%20stroke%3D%22%23444%22%20stroke-width%3D%226%22%20x%3D%223%22%20y%3D%223%22%20width%3D%2236%22%20height%3D%2230%22%20rx%3D%223%22%2F%3E%3Ccircle%20stroke%3D%22%23FFF%22%20stroke-width%3D%222.2%22%20fill%3D%22%23444%22%20cx%3D%2239%22%20cy%3D%2232%22%20r%3D%228.9%22%2F%3E%3Cpath%20d%3D%22M34.917%2032.498a.959.959%200%200%200%20.704.291c.275%200%20.51-.097.703-.291l.433-.432%201.316-1.538-.1%204.844a.96.96%200%200%200%20.291.754c.208.208.462.315.764.322a.975.975%200%200%200%20.749-.317.974.974%200%200%200%20.296-.749l-.11-4.814%201.296%201.478.432.432a.97.97%200%200%200%20.699.296.935.935%200%200%200%20.698-.286.935.935%200%200%200%20.286-.699.97.97%200%200%200-.296-.698l-3.236-3.236c-.563-.563-1.122-.566-1.678-.01l-3.247%203.246a.959.959%200%200%200-.291.703c0%20.275.097.51.291.704z%22%20fill%3D%22%23FFF%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E');
background-repeat: no-repeat;
background-size: contain;
background-position: center center;
}
&-toolbar{
display: flex;
position: sticky;
top: 0;
flex-direction: row;
border-radius: 4px 4px 0 0;
border: 1px solid #ccc;
background-color: #ffffff;
padding: 6px;
z-index: 1;
&-g{
display: flex;
flex-direction: row;
&:after{
content: '';
display: inline-block;
width: 8px;
} }
} }
&-editor{ .qicon{
overflow: visible; width: 28px;
//white-space: normal; height: 28px;
min-height: 260px; background-repeat: no-repeat;
background-position: center;
margin-right: 2px;
//background-color: tomato;
.ql-video-local{ &.active{
display: block; background-color: #edeef0;
max-width: 100%; border-radius: 4px;
} }
&:after{ &:hover{
content: ""; cursor: pointer;
display: block; opacity: 0.8;
clear: both;
} }
} }
}
&-content{
border: 1px solid #ccc;
border-top: 0;
padding: 12px 15px;
p{
margin-top: 0;
}
img, video, iframe{
max-width: 100%;
}
blockquote{
border-left: 2px solid #ccc;
margin-left: 0;
padding: 0 0 0 30px;
}
hr{
border: none;
height: 2px;
background-color: #ccc;
}
table{
border-collapse: collapse;
table-layout: fixed;
margin: 0;
overflow: hidden;
td, th{
min-width: 1em;
border: 1px solid #ced4da;
padding: 3px 5px;
vertical-align: top;
position: relative;
}
th{
font-weight: bold;
text-align: left;
background-color: #f1f3f5;
}
.selectedCell:after{
z-index: 2;
position: absolute;
content: '';
top: 0;
bottom: 0;
left: 0;
right: 0;
background-color: rgba(200,200,255, 0.4);
pointer-events: none;
}
.column-resize-handle{
position: absolute;
right: -2px;
top: 0;
bottom: -2px;
width: 4px;
background-color: #adf;
pointer-events: none;
}
}
.tableWrapper{
overflow-x: auto;
}
&-container{ .resize-cursor{
font-size: 16px; cursor: ew-resize;
border-radius: 0 0 4px 4px; cursor: col-resize;
} }
&-clipboard { }
position: fixed !important;
&-bubble{
display: flex;
flex-direction: row;
border-radius: 8px;
box-shadow: 0 16px 24px 0 rgba(0,0,0,0.2);
background-color: #fff;
padding: 0 6px;
.qicon{
width: 28px;
height: 28px;
background-repeat: no-repeat;
background-position: center;
margin-right: 2px;
//background-color: tomato;
&.active{
opacity: 0.5;
}
&:hover{
cursor: pointer;
opacity: 0.8;
}
} }
} }
&-modal{ &-modal{
position: fixed; position: fixed;
top: 0; top: 0;
...@@ -294,57 +397,72 @@ body{ ...@@ -294,57 +397,72 @@ body{
} }
//lang RU
&[data-lang="ru"]{
.ql-snow{
.ql-picker.ql-header .ql-picker-label,
.ql-picker.ql-header .ql-picker-item{
&::before{
content: 'Обычный';
}
&[data-value="2"]::before{
content: 'H2';
}
&[data-value="3"]::before{
content: 'H3'
}
&[data-value="4"]::before{
content: 'H4'
}
}
.ql-tooltip{
z-index: 1000;
&[data-mode="formula"]{
input[type="text"]{
width: 280px;
}
}
&::before{ .qicon{
content: 'Ссылка'; &.qbold{
} background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2210%22%20height%3D%2213%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M1.021%2013h4c2.698%200%204.297-1.327%204.297-3.56%200-1.687-1.107-2.9-2.83-3.12v-.07C7.71%206.03%208.677%204.8%208.677%203.481c0-1.898-1.468-3.164-3.639-3.164H1.021c-.483%200-.79.317-.79.818v11.048c0%20.5.307.817.79.817zm.792-7.216v-4.07h2.865c1.538%200%202.4.695%202.4%201.952%200%201.371-1.02%202.118-2.892%202.118H1.813zm0%205.819V7.146h2.82c2.022%200%203.06.748%203.06%202.215%200%201.468-1.003%202.242-2.91%202.242h-2.97z%22%20fill%3D%22%231D1D1F%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E');
&[data-mode=formula]::before{ }
content: 'Вставка формулы (TeX):' &.qparagraph{
} background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2220%22%20height%3D%2214%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill%3D%22%231D1D1F%22%20fill-rule%3D%22nonzero%22%3E%3Cpath%20d%3D%22M1.274%2013.123c.396%200%20.624-.185.774-.606L3.164%209.37h5.019l1.125%203.147c.149.421.378.606.773.606.457%200%20.791-.29.791-.694%200-.115-.026-.246-.097-.44L6.688.95c-.193-.518-.51-.756-.993-.756-.518%200-.843.246-1.037.765L.58%2011.989c-.07.194-.097.325-.097.44%200%20.404.334.694.791.694zm2.347-5.098%202.03-5.783h.053l2.03%205.783H3.621zM15.012%2013.158c1.23%200%202.4-.685%202.944-1.731h.035v.958c0%20.457.299.773.73.773.422%200%20.72-.316.72-.773V6.68c0-1.82-1.353-2.98-3.498-2.98-1.485%200-2.82.66-3.34%201.661-.123.22-.184.44-.184.633%200%20.413.281.686.677.686.29%200%20.492-.115.633-.37.51-.905%201.186-1.265%202.18-1.265%201.265%200%202.003.668%202.003%201.784v.765l-2.628.15c-2.11.122-3.313%201.107-3.313%202.671%200%201.644%201.221%202.742%203.04%202.742zm.342-1.3c-1.098%200-1.828-.572-1.828-1.442%200-.861.703-1.406%201.934-1.485l2.452-.15v.747c0%201.319-1.116%202.33-2.558%202.33z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E');
&[data-mode=link]::before{ }
content: 'Вставка ссылки:' &.qh2{
} background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2218%22%20height%3D%2212%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill%3D%22%231D1D1F%22%20fill-rule%3D%22nonzero%22%3E%3Cpath%20d%3D%22M.685%2011.034c.402%200%20.659-.264.659-.681V6.119h5.8v4.234c0%20.417.257.68.66.68s.659-.263.659-.68V.94c0-.418-.256-.681-.66-.681-.402%200-.658.263-.658.68v3.993H1.344V.94c0-.418-.257-.681-.66-.681C.283.26.026.523.026.94v9.413c0%20.417.257.68.66.68zM11.246%2010.931h5.823c.373%200%20.622-.234.622-.586%200-.351-.249-.586-.622-.586h-4.615V9.73l2.652-2.725c1.809-1.853%202.336-2.724%202.336-3.881%200-1.707-1.377-2.937-3.281-2.937-2.16%200-3.325%201.406-3.48%202.49a1.537%201.537%200%200%200-.021.263c0%20.345.22.586.608.586.359%200%20.505-.19.593-.461.359-1.135%201.157-1.729%202.3-1.729%201.135%200%201.963.791%201.963%201.868%200%20.886-.337%201.45-1.758%202.937l-3.384%203.53c-.315.33-.373.447-.373.718%200%20.33.249.542.637.542z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E');
a.ql-action::after{ }
content: 'Изменить'; &.qh3{
} background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2218%22%20height%3D%2212%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill%3D%22%231D1D1F%22%20fill-rule%3D%22nonzero%22%3E%3Cpath%20d%3D%22M.685%2011.034c.402%200%20.659-.264.659-.681V6.119h5.8v4.234c0%20.417.257.68.66.68s.659-.263.659-.68V.94c0-.418-.256-.681-.66-.681-.402%200-.658.263-.658.68v3.993H1.344V.94c0-.418-.257-.681-.66-.681C.283.26.026.523.026.94v9.413c0%20.417.257.68.66.68zM14.205%2011.107c2.073%200%203.67-1.267%203.67-3.084%200-1.501-1.048-2.46-2.586-2.592V5.4c1.325-.278%202.241-1.179%202.241-2.49%200-1.509-1.223-2.724-3.34-2.724-1.465%200-2.585.607-3.142%201.662a1.71%201.71%200%200%200-.22.85c0%20.38.213.6.586.6.33%200%20.462-.139.594-.52.38-.96%201.018-1.45%202.182-1.45%201.355%200%202.014.71%202.014%201.758%200%201.055-.879%201.831-2.138%201.831h-.784c-.352%200-.593.227-.593.557%200%20.33.241.556.593.556h.842c1.487%200%202.417.733%202.41%202.036-.007%201.106-.938%201.897-2.33%201.897-1.274%200-2.028-.534-2.38-1.443-.139-.358-.307-.52-.607-.52-.381%200-.608.25-.608.616%200%20.285.073.549.241.842.638%201.084%201.78%201.648%203.355%201.648z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E');
&.ql-editing a.ql-action::after{ }
content: 'Сохранить'; &.qh4{
} background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2219%22%20height%3D%2212%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill%3D%22%231D1D1F%22%20fill-rule%3D%22nonzero%22%3E%3Cpath%20d%3D%22M.685%2011.034c.402%200%20.659-.264.659-.681V6.119h5.8v4.234c0%20.417.257.68.66.68s.659-.263.659-.68V.94c0-.418-.256-.681-.66-.681-.402%200-.658.263-.658.68v3.993H1.344V.94c0-.418-.257-.681-.66-.681C.283.26.026.523.026.94v9.413c0%20.417.257.68.66.68zM16.31%2011.056c.373%200%20.637-.279.637-.681V8.727h.967c.351%200%20.615-.227.615-.579s-.264-.579-.615-.579h-.967V1.263c0-.681-.374-1.04-1.077-1.04-.578%200-.923.256-1.516%201.113-1.487%202.132-2.944%204.285-3.706%205.647-.242.433-.315.66-.315.996%200%20.455.293.748.762.748h4.577v1.648c0%20.402.264.68.638.68zm-.638-3.487h-4.02V7.54c.856-1.501%202.043-3.245%203.998-6.042h.022v6.071z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E');
a.ql-remove::before{ }
content: 'Удалить'; &.qitalic{
} background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%226%22%20height%3D%2216%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M4.362%203.27a1.065%201.065%200%200%200%201.275-.789%201.059%201.059%200%200%200-.8-1.267%201.057%201.057%200%200%200-1.265.79c-.13.562.229%201.136.79%201.265zM1.654%2015.001c.485.112.91-.17%201.032-.694L4.64%205.839c.12-.523-.138-.964-.624-1.076-.485-.112-.911.17-1.032.694L1.03%2013.926c-.12.523.138.964.624%201.076z%22%20fill%3D%22%231D1D1F%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E');
}
} &.qstrike{
background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2211%22%20height%3D%2214%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Cpath%20d%3D%22M5.388%2013.21c2.839%200%204.684-1.467%204.684-3.814%200-1.792-1.046-2.847-3.691-3.427L4.975%205.66c-1.732-.378-2.409-1.063-2.409-2.065%200-1.292%201.222-2.066%202.804-2.066%201.371%200%202.417.563%202.857%201.846.14.404.386.615.79.615.422%200%20.721-.281.721-.712%200-.167-.017-.299-.044-.395C9.237%201.17%207.532.106%205.414.106%202.786.106.94%201.574.94%203.666c0%201.802%201.1%202.953%203.64%203.507l1.405.307c1.758.387%202.461%201.09%202.461%202.154%200%201.248-1.248%202.153-2.97%202.153-1.6%200-2.848-.615-3.235-1.925-.123-.422-.369-.624-.764-.624-.449%200-.73.317-.73.818%200%20.184.035.378.088.553.475%201.53%202.17%202.602%204.553%202.602z%22%20fill%3D%22%231D1D1F%22%20fill-rule%3D%22nonzero%22%2F%3E%3Cpath%20stroke%3D%22%231D1D1F%22%20stroke-width%3D%221.4%22%20stroke-linecap%3D%22round%22%20d%3D%22M1.43%206.726h8%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E');
}
&.qunderline{
background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2211%22%20height%3D%2218%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Ctext%20font-family%3D%22SFProRounded-Regular%2C%20SF%20Pro%20Rounded%22%20font-size%3D%2215%22%20fill%3D%22%231D1D1F%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctspan%20x%3D%220%22%20y%3D%2214%22%3EU%3C%2Ftspan%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Ftext%3E%3Cpath%20stroke%3D%22%231D1D1F%22%20stroke-width%3D%221.4%22%20stroke-linecap%3D%22round%22%20d%3D%22M1.43%2016.727h8%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E');
}
&.qcodeBlock{
background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2221%22%20height%3D%2214%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M8.262%2013.837c.388.103.74-.11.857-.498L12.766.837C12.87.485%2012.7.134%2012.312.03c-.38-.102-.71.044-.842.498L7.844%2012.966c-.117.395.008.761.418.871zM20.53%206.923a.742.742%200%200%200-.25-.556l-4.892-4.41c-.315-.278-.718-.278-.974.008-.256.285-.22.703.073.967l4.41%203.991-4.41%203.992c-.293.264-.33.674-.073.967.256.285.66.285.974.007l4.893-4.416a.716.716%200%200%200%20.249-.55zM0%206.923c0%20.205.088.403.256.55l4.893%204.416c.308.278.718.278.974-.007.256-.293.212-.703-.08-.967L1.64%206.923l4.401-3.991c.293-.264.337-.682.081-.967-.256-.286-.666-.286-.974-.008L.256%206.367A.75.75%200%200%200%200%206.923z%22%20fill%3D%22%231D1D1F%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E');
}
&.qclearMarks{
background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2215%22%20height%3D%2215%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M8.574%206.094%207.07%204.609l.47-1.093H5.995L3.965%201.484h9.355c.274%200%20.505.095.694.284.188.188.283.42.283.693a.943.943%200%200%201-.283.693.943.943%200%200%201-.694.284H9.707L8.574%206.094zm5.43%208.73L7.598%208.398l-1.465%203.438a.935.935%200%200%201-.362.43.976.976%200%200%201-.537.156.932.932%200%200%201-.82-.44.913.913%200%200%201-.078-.927l1.758-4.14L.176.995A.562.562%200%200%201%200%20.586C0%20.43.059.293.176.176A.562.562%200%200%201%20.586%200c.156%200%20.293.059.41.176l13.828%2013.828a.562.562%200%200%201%20.176.41.562.562%200%200%201-.176.41.562.562%200%200%201-.41.176.562.562%200%200%201-.41-.176z%22%20fill%3D%22%231D1D1F%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E');
}
&.qbulletList{
background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2218%22%20height%3D%2212%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20transform%3D%22translate%280%20.496%29%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Ccircle%20fill%3D%22%231D1D1F%22%20cx%3D%222%22%20cy%3D%229%22%20r%3D%222%22%2F%3E%3Cpath%20stroke%3D%22%231D1D1F%22%20stroke-width%3D%221.4%22%20stroke-linecap%3D%22round%22%20d%3D%22M8.5%209.004h8%22%2F%3E%3Ccircle%20fill%3D%22%231D1D1F%22%20cx%3D%222%22%20cy%3D%222%22%20r%3D%222%22%2F%3E%3Cpath%20stroke%3D%22%231D1D1F%22%20stroke-width%3D%221.4%22%20stroke-linecap%3D%22round%22%20d%3D%22M8.5%202.004h8%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E');
}
&.qorderedList{
background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2218%22%20height%3D%2213%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Cpath%20stroke%3D%22%231D1D1F%22%20stroke-width%3D%221.4%22%20stroke-linecap%3D%22round%22%20d%3D%22M8.5%2010.5h8M8.5%203.5h8%22%2F%3E%3Cpath%20d%3D%22M2.229%206.085c.434%200%20.724-.28.724-.714V1.792c0-.495-.307-.81-.83-.81-.28%200-.53.028-.817.22l-.896.597a.565.565%200%200%200-.273.496.47.47%200%200%200%20.478.489.512.512%200%200%200%20.339-.113l.523-.362h.027V5.37c0%20.434.29.714.725.714zM.974%2013h2.741c.363%200%20.568-.222.568-.547%200-.331-.205-.547-.568-.547H2.15v-.027l.899-.776c.765-.663%201.107-1.008%201.107-1.671%200-.896-.765-1.5-1.965-1.5-.861%200-1.555.365-1.815.953a.794.794%200%200%200-.065.321c0%20.349.226.564.595.564.277%200%20.45-.103.642-.383.185-.266.363-.386.622-.386.352%200%20.592.215.592.526%200%20.294-.158.51-.711.985L.694%2011.674c-.274.229-.397.434-.397.7%200%20.363.205.626.677.626z%22%20fill%3D%22%231D1D1F%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E');
}
&.qblockquote{
background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2219%22%20height%3D%2211%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Cpath%20stroke%3D%22%231D1D1F%22%20stroke-width%3D%221.4%22%20stroke-linecap%3D%22round%22%20d%3D%22M12.38%209.504h5%22%2F%3E%3Cg%20fill%3D%22%23222%22%20fill-rule%3D%22nonzero%22%3E%3Cpath%20d%3D%22M4.262%202.352c.047-.188%200-.282%200-.611C4.122.989%203.37.519%202.617.519c-.987%200-1.692.61-1.692%201.55%200%20.8.517%201.364%201.222%201.505L1.02%207.428h1.692l1.27-4.042c.14-.376.14-.658.281-1.034zM8.993%202.352c.047-.188%200-.282%200-.611C8.853.989%208.1.519%207.348.519c-.987%200-1.692.61-1.692%201.55%200%20.8.517%201.364%201.222%201.505L5.75%207.428h1.692l1.27-4.042c.14-.376.14-.658.281-1.034z%22%2F%3E%3C%2Fg%3E%3Cpath%20stroke%3D%22%231D1D1F%22%20stroke-width%3D%221.4%22%20stroke-linecap%3D%22round%22%20d%3D%22M12.38%202.504h5%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E');
}
&.qhardBreak{
background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2214%22%20height%3D%2213%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20stroke%3D%22%231D1D1F%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Cpath%20d%3D%22M1.148%206.24a.582.582%200%200%201-.41-.15.494.494%200%200%201-.163-.38c0-.153.054-.28.162-.38.109-.1.246-.15.411-.15h9.712c.765%200%201.408.25%201.931.75.523.5.784%201.104.784%201.81%200%20.705-.261%201.311-.784%201.817s-1.166.759-1.93.759H8.355l.88.794c.127.106.187.227.18.362a.516.516%200%200%201-.18.362.585.585%200%200%201-.412.158.555.555%200%200%201-.392-.14L6.578%2010.14a.54.54%200%200%201-.134-.177.483.483%200%200%201-.038-.194c0-.07.012-.135.038-.194a.54.54%200%200%201%20.134-.177l1.854-1.711a.627.627%200%200%201%20.411-.142c.16%200%20.29.047.392.142a.499.499%200%200%201%20.172.379.499.499%200%200%201-.172.38l-.88.811h2.505c.446%200%20.819-.15%201.119-.45.299-.3.449-.656.449-1.067%200-.412-.15-.765-.45-1.06a1.533%201.533%200%200%200-1.118-.44H1.148z%22%20stroke-width%3D%22.32%22%20fill%3D%22%231D1D1F%22%2F%3E%3Cpath%20stroke-width%3D%221.4%22%20stroke-linecap%3D%22round%22%20d%3D%22M1.042%201.68h12M1.042%209.68h3.5%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E');
}
&.qundo{
background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2211%22%20height%3D%2211%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2.587%203.104h3.308c2.185%200%203.662%201.181%204.016%203.012.355%201.595-.236%203.308-1.358%204.017a.608.608%200%201%201-.59-1.063c.649-.354%201.062-1.595.826-2.717-.295-1.24-1.24-2.068-2.894-2.068H2.587l1.95%201.95a.59.59%200%201%201-.828.827L.756%204.108a.59.59%200%200%201%200-.827L3.709.328a.59.59%200%200%201%20.827.827l-1.95%201.949z%22%20stroke%3D%22%231D1D1F%22%20stroke-width%3D%22.3%22%20fill%3D%22%231D1D1F%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E');
}
&.qredo{
background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2211%22%20height%3D%2211%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M7.93%204.406H4.623c-1.653%200-2.598.827-2.893%202.067-.237%201.18.177%202.362.826%202.716a.608.608%200%200%201-.59%201.063C.785%209.544.253%207.832.608%206.237c.354-1.772%201.771-3.012%204.015-3.012H7.93L5.981%201.276A.59.59%200%201%201%206.808.45l2.953%202.952a.59.59%200%200%201%200%20.827L6.808%207.182a.59.59%200%200%201-.827-.827l1.95-1.949z%22%20stroke%3D%22%231D1D1F%22%20stroke-width%3D%22.3%22%20fill%3D%22%231D1D1F%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E');
}
&.qlink{
background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2214%22%20height%3D%2215%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20stroke%3D%22%231D1D1F%22%20stroke-width%3D%221.4%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5.8%207.958a3%203%200%200%200%204.524.324l1.8-1.8A3%203%200%200%200%207.882%202.24L6.85%203.266%22%2F%3E%3Cpath%20d%3D%22M8.2%206.758a3%203%200%200%200-4.524-.324l-1.8%201.8a3%203%200%200%200%204.242%204.242l1.026-1.026%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E');
}
&.qimage{
background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20transform%3D%22translate%281.107%20.622%29%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20stroke%3D%22%231F1E1D%22%20stroke-width%3D%221.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20width%3D%2212%22%20height%3D%2212%22%20rx%3D%222%22%2F%3E%3Ccircle%20fill%3D%22%231F1E1D%22%20cx%3D%223.667%22%20cy%3D%223.667%22%20r%3D%221%22%2F%3E%3Cpath%20stroke%3D%22%231F1E1D%22%20stroke-width%3D%221.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22m11.467%208.006-3-3.273-6.6%207.2%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E');
}
&.qhr {
background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2219%22%20height%3D%223%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20stroke%3D%22%231D1D1F%22%20stroke-width%3D%221.4%22%20d%3D%22M1.517%201.475h16%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E');
}
&.qvideo{
background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2218%22%20height%3D%2214%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20transform%3D%22translate%28.623%20.597%29%22%20stroke%3D%22%231F1E1D%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20fill%3D%22%231F1E1D%22%20d%3D%22M6.71%203.99v4l3.654-2z%22%2F%3E%3Crect%20stroke-width%3D%221.2%22%20stroke-linecap%3D%22round%22%20width%3D%2216%22%20height%3D%2212%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E');
}
&.qiframe{
background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2218%22%20height%3D%2214%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2.623.597h12a2%202%200%200%201%202%202v8a2%202%200%200%201-2%202h-12a2%202%200%200%201-2-2v-8a2%202%200%200%201%202-2z%22%20stroke%3D%22%231F1E1D%22%20stroke-width%3D%221.2%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%20stroke-dasharray%3D%222.4%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E');
} }
} }
} }
...@@ -1466,6 +1466,11 @@ ...@@ -1466,6 +1466,11 @@
resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b"
integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==
"@popperjs/core@^2.9.0":
version "2.11.5"
resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.5.tgz#db5a11bf66bdab39569719555b0f76e138d7bd64"
integrity sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==
"@rollup/plugin-alias@^3.0.1": "@rollup/plugin-alias@^3.0.1":
version "3.1.9" version "3.1.9"
resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-3.1.9.tgz#a5d267548fe48441f34be8323fb64d1d4a1b3fdf" resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-3.1.9.tgz#a5d267548fe48441f34be8323fb64d1d4a1b3fdf"
...@@ -1719,6 +1724,232 @@ ...@@ -1719,6 +1724,232 @@
"@svgr/plugin-svgo" "^4.3.1" "@svgr/plugin-svgo" "^4.3.1"
loader-utils "^1.2.3" loader-utils "^1.2.3"
"@tiptap/core@^2.0.0-beta.176":
version "2.0.0-beta.176"
resolved "https://registry.yarnpkg.com/@tiptap/core/-/core-2.0.0-beta.176.tgz#a8bb9b57d2ecf77b6cd02340324626ef3e336a15"
integrity sha512-Gs/+yUYTNpt8PnclEHbfBnY56D/9PpKTyzrg8VZwCFK9S69aVD2dqLsYs/Gn+EjzKImXRAiqSe1/FWcNEDkmCg==
dependencies:
"@types/prosemirror-commands" "^1.0.4"
"@types/prosemirror-keymap" "^1.0.4"
"@types/prosemirror-model" "^1.16.0"
"@types/prosemirror-schema-list" "^1.0.3"
"@types/prosemirror-state" "^1.2.8"
"@types/prosemirror-transform" "^1.1.5"
"@types/prosemirror-view" "^1.23.1"
prosemirror-commands "^1.2.1"
prosemirror-keymap "^1.1.5"
prosemirror-model "^1.16.1"
prosemirror-schema-list "^1.1.6"
prosemirror-state "^1.3.4"
prosemirror-transform "^1.3.3"
prosemirror-view "^1.23.6"
"@tiptap/extension-blockquote@^2.0.0-beta.26":
version "2.0.0-beta.26"
resolved "https://registry.yarnpkg.com/@tiptap/extension-blockquote/-/extension-blockquote-2.0.0-beta.26.tgz#e5ae4b7bd9376db37407a23e22080c7b11287f3b"
integrity sha512-A6yjcYovONJfOjQFk6vDYXswaCdCtCwjL7w9VTB0R2DLTuJvvRt9DWN0IDcMrj5G+aMgDq4GUUTitv+2Y8krDg==
"@tiptap/extension-bold@^2.0.0-beta.26":
version "2.0.0-beta.26"
resolved "https://registry.yarnpkg.com/@tiptap/extension-bold/-/extension-bold-2.0.0-beta.26.tgz#aa1c7850df28cec8e0614fde437183bd4ae3e66b"
integrity sha512-pnO0I5sEQM3pmowjMGQ74adLzvc6HqGyLyqMizaGMicPu9uTYlSdId+qckYEEgPwPMaEShtv2Vg+ZHs7KVqfcg==
"@tiptap/extension-bubble-menu@^2.0.0-beta.56":
version "2.0.0-beta.56"
resolved "https://registry.yarnpkg.com/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.0.0-beta.56.tgz#d99cb673610a3af7e12444f4538463c7c58bfa04"
integrity sha512-nZozwauICdaNPmDPrSn1JFd/9/2rLtK8i2vBOcqxWHObVROvu8ZlJspnrJv23vS6P7/ZO3e/QLVHpnn+1yVq3g==
dependencies:
prosemirror-state "^1.3.4"
prosemirror-view "^1.23.6"
tippy.js "^6.3.7"
"@tiptap/extension-bullet-list@^2.0.0-beta.26":
version "2.0.0-beta.26"
resolved "https://registry.yarnpkg.com/@tiptap/extension-bullet-list/-/extension-bullet-list-2.0.0-beta.26.tgz#b42126d2d984c04041b14037e8d3ec1bcf16e7ec"
integrity sha512-1n5HV8gY1tLjPk4x48nva6SZlFHoPlRfF6pqSu9JcJxPO7FUSPxUokuz4swYNe0LRrtykfyNz44dUcxKVhoFow==
"@tiptap/extension-code-block@^2.0.0-beta.37":
version "2.0.0-beta.37"
resolved "https://registry.yarnpkg.com/@tiptap/extension-code-block/-/extension-code-block-2.0.0-beta.37.tgz#c07c007248a21d9e0434458fd05c363b7078227f"
integrity sha512-mJAM+PHaNoKRYwM3D36lZ51/aoPxxvZNQn3UBnZ6G7l0ZJSgB3JvBEzqK6S8nNFeYIIxGwv4QF6vXe4MG9ie2g==
dependencies:
prosemirror-state "^1.3.4"
"@tiptap/extension-code@^2.0.0-beta.26":
version "2.0.0-beta.26"
resolved "https://registry.yarnpkg.com/@tiptap/extension-code/-/extension-code-2.0.0-beta.26.tgz#bbfa600a252ee2cded6947b56b6c4c33d998e53a"
integrity sha512-QcFWdEFfbJ1n5UFFBD17QPPAJ3J5p/b7XV484u0shCzywO7aNPV32QeHy1z0eMoyZtCbOWf6hg/a7Ugv8IwpHw==
"@tiptap/extension-document@^2.0.0-beta.15":
version "2.0.0-beta.15"
resolved "https://registry.yarnpkg.com/@tiptap/extension-document/-/extension-document-2.0.0-beta.15.tgz#5d17a0289244a913ab2ef08e8495a1e46950711e"
integrity sha512-ypENC+xUYD5m2t+KOKNYqyXnanXd5fxyIyhR1qeEEwwQwMXGNrO3kCH6O4mIDCpy+/WqHvVay2tV5dVsXnvY8w==
"@tiptap/extension-dropcursor@^2.0.0-beta.25":
version "2.0.0-beta.25"
resolved "https://registry.yarnpkg.com/@tiptap/extension-dropcursor/-/extension-dropcursor-2.0.0-beta.25.tgz#962f290a200259533a26194daca5a4b4a53e72d3"
integrity sha512-GYf5s6dkZtsDy+TEkrQK6kLbfbitG4qnk02D+FlhlJMI/Nnx8rYCRJbwEHDdqrfX7XwZzULMqqqHvzxZYrEeNg==
dependencies:
"@types/prosemirror-dropcursor" "^1.0.3"
prosemirror-dropcursor "^1.4.0"
"@tiptap/extension-floating-menu@^2.0.0-beta.51":
version "2.0.0-beta.51"
resolved "https://registry.yarnpkg.com/@tiptap/extension-floating-menu/-/extension-floating-menu-2.0.0-beta.51.tgz#a1e53fd1c1d2ac00025d7f094d2b62eb08e81902"
integrity sha512-rEe7jADK9xr2n2LJsrGEN3Dz7sEGC1JT/7AdTdaZBxQRQvwxTjomqYGrt+LnX+v0MYggh6swMzj7upJosnKbBg==
dependencies:
prosemirror-state "^1.3.4"
prosemirror-view "^1.23.6"
tippy.js "^6.3.7"
"@tiptap/extension-gapcursor@^2.0.0-beta.34":
version "2.0.0-beta.34"
resolved "https://registry.yarnpkg.com/@tiptap/extension-gapcursor/-/extension-gapcursor-2.0.0-beta.34.tgz#0e4971affb1621934422dd5fc4bf2dd7a84f70f7"
integrity sha512-Vm8vMWWQ2kJcUOLfB5CEo5pYgyudI7JeeiZvX9ScPmUmgKVYhEpt3EAICY9pUYJ41aAVH35gZLXkUtsz2f9GHw==
dependencies:
"@types/prosemirror-gapcursor" "^1.0.4"
prosemirror-gapcursor "^1.2.1"
"@tiptap/extension-hard-break@^2.0.0-beta.30":
version "2.0.0-beta.30"
resolved "https://registry.yarnpkg.com/@tiptap/extension-hard-break/-/extension-hard-break-2.0.0-beta.30.tgz#165494f1194a7bad08907e6d64d349dd15851b72"
integrity sha512-X9xj/S+CikrbIE7ccUFVwit5QHEbflnKVxod+4zPwr1cxogFbE9AyLZE2MpYdx3z9LcnTYYi9leBqFrP4T/Olw==
"@tiptap/extension-heading@^2.0.0-beta.26":
version "2.0.0-beta.26"
resolved "https://registry.yarnpkg.com/@tiptap/extension-heading/-/extension-heading-2.0.0-beta.26.tgz#112b14b4d488772bda36abbf7cb2bc8aba7c42f5"
integrity sha512-nR6W/3rjnZH1Swo7tGBoYsmO6xMvu9MGq6jlm3WVHCB7B3CsrRvCkTwGjVIbKTaZC4bQfx5gvAUpQFvwuU+M5w==
"@tiptap/extension-history@^2.0.0-beta.21":
version "2.0.0-beta.21"
resolved "https://registry.yarnpkg.com/@tiptap/extension-history/-/extension-history-2.0.0-beta.21.tgz#5d96a17a83a7130744f0757a3275dd5b11eb1bf7"
integrity sha512-0v8Cl30V4dsabdpspLdk+f+lMoIvLFlJN5WRxtc7RRZ5gfJVxPHwooIKdvC51brfh/oJtWFCNMRjhoz0fRaF9A==
dependencies:
"@types/prosemirror-history" "^1.0.3"
prosemirror-history "^1.2.0"
"@tiptap/extension-horizontal-rule@^2.0.0-beta.31":
version "2.0.0-beta.31"
resolved "https://registry.yarnpkg.com/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.0.0-beta.31.tgz#efb383a6cedbbf4f2175d7d207eaeeba626faab0"
integrity sha512-MNc4retfjRgkv3qxqGya0+/BEd1Kmn+oMsCRvE+8x3sXyKIse+vdqMuG5qUcA6np0ZD/9hh1riiQ1GQdgc23Ng==
dependencies:
prosemirror-state "^1.3.4"
"@tiptap/extension-image@^2.0.0-beta.27":
version "2.0.0-beta.27"
resolved "https://registry.yarnpkg.com/@tiptap/extension-image/-/extension-image-2.0.0-beta.27.tgz#62152240cfa7ead03080c38485c1ebda4a603d18"
integrity sha512-kdJ7V39yNdVWUco/RBe7WgvFevd81l+pU6+Je9HpelqBBP953wDttzLMuAWQB4AeLv9WhKSlORHiFv2SKsV5NA==
"@tiptap/extension-italic@^2.0.0-beta.26":
version "2.0.0-beta.26"
resolved "https://registry.yarnpkg.com/@tiptap/extension-italic/-/extension-italic-2.0.0-beta.26.tgz#b00c9e32b81b1bd94eaed24bb2a22e44d5dc54a3"
integrity sha512-vejGe2ra4K5ipFOn1U9viqF9X9nPTX8WSJpSOux+9UbKjHpANy7bz69tp66OIi/Wh5L/MMDc+luH/04qfVnpZw==
"@tiptap/extension-link@^2.0.0-beta.38":
version "2.0.0-beta.38"
resolved "https://registry.yarnpkg.com/@tiptap/extension-link/-/extension-link-2.0.0-beta.38.tgz#e7fb0ebee0d557ef921bf3c7fa6a7c62335f66a5"
integrity sha512-j+ygwq3cpDu5/8zPBcHyfgC5cuyO3jfV+2KcJw2I6Qi73y4Kwo3PW/leEYlSHkIt7i1zjyFHo/oDfC4K9x9eQg==
dependencies:
linkifyjs "^3.0.5"
prosemirror-model "^1.16.1"
prosemirror-state "^1.3.4"
"@tiptap/extension-list-item@^2.0.0-beta.20":
version "2.0.0-beta.20"
resolved "https://registry.yarnpkg.com/@tiptap/extension-list-item/-/extension-list-item-2.0.0-beta.20.tgz#7169528b226dee4590e013bdf6e5fc6d83729b0f"
integrity sha512-5IPEspJt38t9ROj4xLUesOVEYlTT/R9Skd9meHRxJQZX1qrzBICs5PC/WRIsnexrvTBhdxpYgCYjpvpsJBlKuQ==
"@tiptap/extension-ordered-list@^2.0.0-beta.27":
version "2.0.0-beta.27"
resolved "https://registry.yarnpkg.com/@tiptap/extension-ordered-list/-/extension-ordered-list-2.0.0-beta.27.tgz#ed48a53a9b012d578613b68375db31e8664bfdc9"
integrity sha512-apFDeignxdZb3cA3p1HJu0zw1JgJdBYUBz1r7f99qdNybYuk3I/1MPUvlOuOgvIrBB/wydoyVDP+v9F7QN3tfQ==
"@tiptap/extension-paragraph@^2.0.0-beta.23":
version "2.0.0-beta.23"
resolved "https://registry.yarnpkg.com/@tiptap/extension-paragraph/-/extension-paragraph-2.0.0-beta.23.tgz#2ab77308519494994d7a9e5a4acd14042f45f28c"
integrity sha512-VWAxyzecErYWk97Kv/Gkghh97zAQTcaVOisEnYYArZAlyYDaYM48qVssAC/vnRRynP2eQxb1EkppbAxE+bMHAA==
"@tiptap/extension-strike@^2.0.0-beta.27":
version "2.0.0-beta.27"
resolved "https://registry.yarnpkg.com/@tiptap/extension-strike/-/extension-strike-2.0.0-beta.27.tgz#c5187bf3c28837f95a5c0c0617d0dd31c318353d"
integrity sha512-2dmCgtesuDdivM/54Q+Y6Tc3JbGz1SkHP6c62piuqBiYLWg3xa16zChZOhfN8szbbQlBgLT6XRTDt3c2Ux+Dug==
"@tiptap/extension-table-cell@^2.0.0-beta.20":
version "2.0.0-beta.20"
resolved "https://registry.yarnpkg.com/@tiptap/extension-table-cell/-/extension-table-cell-2.0.0-beta.20.tgz#859456fe8d7276a87161006a3f9b3642b306524c"
integrity sha512-IllQyxLQvgm1FAewz3U+DkgNHRthmuVrtUQnG6la45qdUOLCOrpFbRRaQ1LJ/BpbvZ2Xs1o2yAa97BqZOPwovQ==
"@tiptap/extension-table-header@^2.0.0-beta.22":
version "2.0.0-beta.22"
resolved "https://registry.yarnpkg.com/@tiptap/extension-table-header/-/extension-table-header-2.0.0-beta.22.tgz#a1672970d8985c383411bb21c18e71fc7e53e262"
integrity sha512-nMrghrfl+ZS4EDixs3lgXnHw1Q+ECyTugpRvS36rP7b8GFp3GXm9DfbIAUzwGGfcq1D7DwRnJUDM6ARdWXyw0w==
"@tiptap/extension-table-row@^2.0.0-beta.19":
version "2.0.0-beta.19"
resolved "https://registry.yarnpkg.com/@tiptap/extension-table-row/-/extension-table-row-2.0.0-beta.19.tgz#b45e82f29dfcc7405440ba237b069dbb93d1a94a"
integrity sha512-ldEVDpIUX7ZqbViTy4c/RfyNGRv++O/r3A/Ivuon1PykaDDTbPlp5JM89FunAD39cLAbo2HKtweqdmzCMlZsqA==
"@tiptap/extension-table@^2.0.0-beta.49":
version "2.0.0-beta.49"
resolved "https://registry.yarnpkg.com/@tiptap/extension-table/-/extension-table-2.0.0-beta.49.tgz#10e2fbc204290ae39b6768c9247f6aaced666776"
integrity sha512-7irrvMUe9z/6Y8DcFwSuxaIVQ71VUUT1xxv6NZADvdf0HJWesCaTpVORISTnNuQdO5nwEyJXXJ5Ri/82YzWe0g==
dependencies:
"@types/prosemirror-model" "^1.16.0"
"@types/prosemirror-state" "^1.2.8"
prosemirror-model "^1.16.1"
prosemirror-state "^1.3.4"
prosemirror-tables "^1.1.1"
prosemirror-view "^1.23.6"
"@tiptap/extension-text-align@^2.0.0-beta.29":
version "2.0.0-beta.29"
resolved "https://registry.yarnpkg.com/@tiptap/extension-text-align/-/extension-text-align-2.0.0-beta.29.tgz#31df3d23e7c66caf401a1850a80b88f5cedab0a8"
integrity sha512-FNGpl0tVtgG7AK9kVWF/+CGYHta05NpoME4/j6+vhNlZLBNXRA+AKg7W5T8UxmtaC9yGoJsBs2X8M9eCxWVaEQ==
"@tiptap/extension-text@^2.0.0-beta.15":
version "2.0.0-beta.15"
resolved "https://registry.yarnpkg.com/@tiptap/extension-text/-/extension-text-2.0.0-beta.15.tgz#f08cff1b78f1c6996464dfba1fef8ec1e107617f"
integrity sha512-S3j2+HyV2gsXZP8Wg/HA+YVXQsZ3nrXgBM9HmGAxB0ESOO50l7LWfip0f3qcw1oRlh5H3iLPkA6/f7clD2/TFA==
"@tiptap/extension-underline@^2.0.0-beta.23":
version "2.0.0-beta.23"
resolved "https://registry.yarnpkg.com/@tiptap/extension-underline/-/extension-underline-2.0.0-beta.23.tgz#050a31ac55b7ad63e8abf57ac941c62e255f57b8"
integrity sha512-pMjFH/NpFWLd2XQQa5rG9rGVQ9mu3ygdtu6VGfJ3aAjzBiyLXDKhE4biIFWyFsr8zLpp7DjwbrmLV0UGvbG1WQ==
"@tiptap/react@^2.0.0-beta.109":
version "2.0.0-beta.109"
resolved "https://registry.yarnpkg.com/@tiptap/react/-/react-2.0.0-beta.109.tgz#0998989f7f81e2f90a10fb37c55d531d7015bbee"
integrity sha512-kx/I+9DbiKX+LPFYTQf1Mycbw4U77nRsuztMi5UyGoONnwVwVxOUN6sxdnsNX0uo/H0Rf5ZAtQn8vQBaTWPzsQ==
dependencies:
"@tiptap/extension-bubble-menu" "^2.0.0-beta.56"
"@tiptap/extension-floating-menu" "^2.0.0-beta.51"
prosemirror-view "^1.23.6"
"@tiptap/starter-kit@^2.0.0-beta.185":
version "2.0.0-beta.185"
resolved "https://registry.yarnpkg.com/@tiptap/starter-kit/-/starter-kit-2.0.0-beta.185.tgz#a14e2de102bce662f499de82253c2621dce982ef"
integrity sha512-UN7GfYpenav9osAhUYfUnYxtGOYxq6i+k/rDEil/LsFKiRgWW7LrddX6X99TW66dmKohNXU4PaCy5RJ7IfoMdg==
dependencies:
"@tiptap/core" "^2.0.0-beta.176"
"@tiptap/extension-blockquote" "^2.0.0-beta.26"
"@tiptap/extension-bold" "^2.0.0-beta.26"
"@tiptap/extension-bullet-list" "^2.0.0-beta.26"
"@tiptap/extension-code" "^2.0.0-beta.26"
"@tiptap/extension-code-block" "^2.0.0-beta.37"
"@tiptap/extension-document" "^2.0.0-beta.15"
"@tiptap/extension-dropcursor" "^2.0.0-beta.25"
"@tiptap/extension-gapcursor" "^2.0.0-beta.34"
"@tiptap/extension-hard-break" "^2.0.0-beta.30"
"@tiptap/extension-heading" "^2.0.0-beta.26"
"@tiptap/extension-history" "^2.0.0-beta.21"
"@tiptap/extension-horizontal-rule" "^2.0.0-beta.31"
"@tiptap/extension-italic" "^2.0.0-beta.26"
"@tiptap/extension-list-item" "^2.0.0-beta.20"
"@tiptap/extension-ordered-list" "^2.0.0-beta.27"
"@tiptap/extension-paragraph" "^2.0.0-beta.23"
"@tiptap/extension-strike" "^2.0.0-beta.27"
"@tiptap/extension-text" "^2.0.0-beta.15"
"@types/babel__core@^7.1.0": "@types/babel__core@^7.1.0":
version "7.1.19" version "7.1.19"
resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.19.tgz#7b497495b7d1b4812bdb9d02804d0576f43ee460" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.19.tgz#7b497495b7d1b4812bdb9d02804d0576f43ee460"
...@@ -1815,23 +2046,104 @@ ...@@ -1815,23 +2046,104 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.32.tgz#51d59d7a90ef2d0ae961791e0900cad2393a0149" resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.32.tgz#51d59d7a90ef2d0ae961791e0900cad2393a0149"
integrity sha512-eAIcfAvhf/BkHcf4pkLJ7ECpBAhh9kcxRBpip9cTiO+hf+aJrsxYxBeS6OXvOd9WqNAJmavXVpZvY1rBjNsXmw== integrity sha512-eAIcfAvhf/BkHcf4pkLJ7ECpBAhh9kcxRBpip9cTiO+hf+aJrsxYxBeS6OXvOd9WqNAJmavXVpZvY1rBjNsXmw==
"@types/orderedmap@*":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@types/orderedmap/-/orderedmap-1.0.0.tgz#807455a192bba52cbbb4517044bc82bdbfa8c596"
integrity sha512-dxKo80TqYx3YtBipHwA/SdFmMMyLCnP+5mkEqN0eMjcTBzHkiiX0ES118DsjDBjvD+zeSsSU9jULTZ+frog+Gw==
"@types/parse-json@^4.0.0": "@types/parse-json@^4.0.0":
version "4.0.0" version "4.0.0"
resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
"@types/prosemirror-commands@*", "@types/prosemirror-commands@^1.0.4":
version "1.0.4"
resolved "https://registry.yarnpkg.com/@types/prosemirror-commands/-/prosemirror-commands-1.0.4.tgz#d08551415127d93ae62e7239d30db0b5e7208e22"
integrity sha512-utDNYB3EXLjAfYIcRWJe6pn3kcQ5kG4RijbT/0Y/TFOm6yhvYS/D9eJVnijdg9LDjykapcezchxGRqFD5LcyaQ==
dependencies:
"@types/prosemirror-model" "*"
"@types/prosemirror-state" "*"
"@types/prosemirror-view" "*"
"@types/prosemirror-dropcursor@^1.0.3":
version "1.0.3"
resolved "https://registry.yarnpkg.com/@types/prosemirror-dropcursor/-/prosemirror-dropcursor-1.0.3.tgz#49250849b8a0b86e8c29eb1ba70a463e53e46947"
integrity sha512-b0/8njnJ4lwyHKcGuCMf3x7r1KjxyugB1R/c2iMCjplsJHSC7UY9+OysqgJR5uUXRekUSGniiLgBtac/lvH6wg==
dependencies:
"@types/prosemirror-state" "*"
"@types/prosemirror-gapcursor@^1.0.4":
version "1.0.4"
resolved "https://registry.yarnpkg.com/@types/prosemirror-gapcursor/-/prosemirror-gapcursor-1.0.4.tgz#7df7d373edb33ea8da12084bfd462cf84cd69761"
integrity sha512-9xKjFIG5947dzerFvkLWp6F53JwrUYoYwh3SgcTFEp8SbSfNNrez/PFYVZKPnoqPoaK5WtTdQTaMwpCV9rXQIg==
dependencies:
"@types/prosemirror-model" "*"
"@types/prosemirror-state" "*"
"@types/prosemirror-history@^1.0.3":
version "1.0.3"
resolved "https://registry.yarnpkg.com/@types/prosemirror-history/-/prosemirror-history-1.0.3.tgz#f1110efbe758129b5475e466ff077f0a8d9b964f"
integrity sha512-5TloMDRavgLjOAKXp1Li8u0xcsspzbT1Cm9F2pwHOkgvQOz1jWQb2VIXO7RVNsFjLBZdIXlyfSLivro3DuMWXg==
dependencies:
"@types/prosemirror-model" "*"
"@types/prosemirror-state" "*"
"@types/prosemirror-keymap@^1.0.4":
version "1.0.4"
resolved "https://registry.yarnpkg.com/@types/prosemirror-keymap/-/prosemirror-keymap-1.0.4.tgz#f73c79810e8d0e0a20d153d84f998f02e5afbc0c"
integrity sha512-ycevwkqUh+jEQtPwqO7sWGcm+Sybmhu8MpBsM8DlO3+YTKnXbKA6SDz/+q14q1wK3UA8lHJyfR+v+GPxfUSemg==
dependencies:
"@types/prosemirror-commands" "*"
"@types/prosemirror-model" "*"
"@types/prosemirror-state" "*"
"@types/prosemirror-view" "*"
"@types/prosemirror-model@*", "@types/prosemirror-model@^1.16.0":
version "1.16.2"
resolved "https://registry.yarnpkg.com/@types/prosemirror-model/-/prosemirror-model-1.16.2.tgz#8896adac3a5d5d66f06491bb13940aa734a7b6e8"
integrity sha512-1XPJopkKP3oHSBP61uuSuW13DIDZPWvAzP6Pv2/6mixk8EBPUeRGIW548DjJTicMo23gEg1zvCZy9asblQdWag==
dependencies:
"@types/orderedmap" "*"
"@types/prosemirror-schema-list@^1.0.3":
version "1.0.3"
resolved "https://registry.yarnpkg.com/@types/prosemirror-schema-list/-/prosemirror-schema-list-1.0.3.tgz#bdf1893a7915fbdc5c49b3cac9368e96213d70de"
integrity sha512-uWybOf+M2Ea7rlbs0yLsS4YJYNGXYtn4N+w8HCw3Vvfl6wBAROzlMt0gV/D/VW/7J/LlAjwMezuGe8xi24HzXA==
dependencies:
"@types/orderedmap" "*"
"@types/prosemirror-model" "*"
"@types/prosemirror-state" "*"
"@types/prosemirror-state@*", "@types/prosemirror-state@^1.2.8":
version "1.3.0"
resolved "https://registry.yarnpkg.com/@types/prosemirror-state/-/prosemirror-state-1.3.0.tgz#7fd25db7244c027eef0849d79b112a8a0dfbb483"
integrity sha512-nMdUF6w8B++NH4V54X+4GvDty7M02UfuHQW0s1AS25Z4ZrOW4RSY2+s57doXBbeMSjzYV/QoMxCY2sT3KQ2VdQ==
dependencies:
"@types/prosemirror-model" "*"
"@types/prosemirror-transform" "*"
"@types/prosemirror-view" "*"
"@types/prosemirror-transform@*", "@types/prosemirror-transform@^1.1.5":
version "1.4.2"
resolved "https://registry.yarnpkg.com/@types/prosemirror-transform/-/prosemirror-transform-1.4.2.tgz#0be91da7ee962c40c19ae1db1e4bf5b6e7ee6914"
integrity sha512-FZNzjYm6YUkb1XXOrw2193TiFzwM92ui1nycNaRSd5JDbugf9yBLkXm4Rq3HGJJxBBkRcUE8niqUW5aWlXQQiQ==
dependencies:
"@types/prosemirror-model" "*"
"@types/prosemirror-view@*", "@types/prosemirror-view@^1.23.1":
version "1.23.3"
resolved "https://registry.yarnpkg.com/@types/prosemirror-view/-/prosemirror-view-1.23.3.tgz#8ad847fc45b9c7eba8362fccdafc7144c491ea35"
integrity sha512-T5dPDmZiXAazJVSvnx55D6h4mcpiH2q2wTyO9zIeOdox5zx964+zcDl9dFNaXG3qCGlERwMPckhBZL1HCxyygw==
dependencies:
"@types/prosemirror-model" "*"
"@types/prosemirror-state" "*"
"@types/prosemirror-transform" "*"
"@types/q@^1.5.1": "@types/q@^1.5.1":
version "1.5.5" version "1.5.5"
resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df"
integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==
"@types/quill@1.3.10":
version "1.3.10"
resolved "https://registry.yarnpkg.com/@types/quill/-/quill-1.3.10.tgz#dc1f7b6587f7ee94bdf5291bc92289f6f0497613"
integrity sha512-IhW3fPW+bkt9MLNlycw8u8fWb7oO7W5URC9MfZYHBlA24rex9rs23D5DETChu1zvgVdc5ka64ICjJOgQMr6Shw==
dependencies:
parchment "^1.1.2"
"@types/resolve@0.0.8": "@types/resolve@0.0.8":
version "0.0.8" version "0.0.8"
resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194"
...@@ -3248,11 +3560,6 @@ clone-deep@^4.0.1: ...@@ -3248,11 +3560,6 @@ clone-deep@^4.0.1:
kind-of "^6.0.2" kind-of "^6.0.2"
shallow-clone "^3.0.0" shallow-clone "^3.0.0"
clone@^2.1.1:
version "2.1.2"
resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=
co@^4.6.0: co@^4.6.0:
version "4.6.0" version "4.6.0"
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
...@@ -3580,14 +3887,6 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: ...@@ -3580,14 +3887,6 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
safe-buffer "^5.0.1" safe-buffer "^5.0.1"
sha.js "^2.4.8" sha.js "^2.4.8"
create-react-class@^15.6.0:
version "15.7.0"
resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.7.0.tgz#7499d7ca2e69bb51d13faf59bd04f0c65a1d6c1e"
integrity sha512-QZv4sFWG9S5RUvkTYWbflxeZX+JG7Cz0Tn33rQBJ+WFQTqTfUTjMjiv9tnfXazjsO5r0KhPs+AqCjyrQX6h2ng==
dependencies:
loose-envify "^1.3.1"
object-assign "^4.1.1"
cross-env@^7.0.2: cross-env@^7.0.2:
version "7.0.3" version "7.0.3"
resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf"
...@@ -3960,11 +4259,6 @@ deep-is@~0.1.3: ...@@ -3960,11 +4259,6 @@ deep-is@~0.1.3:
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
deepmerge@^2.0.0:
version "2.2.1"
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170"
integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==
deepmerge@^4.2.2: deepmerge@^4.2.2:
version "4.2.2" version "4.2.2"
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
...@@ -4783,11 +5077,6 @@ etag@~1.8.1: ...@@ -4783,11 +5077,6 @@ etag@~1.8.1:
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
eventemitter3@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-2.0.3.tgz#b5e1079b59fb5e1ba2771c0a993be060a58c99ba"
integrity sha1-teEHm1n7XhuidxwKmTvgYKWMmbo=
eventemitter3@^4.0.0, eventemitter3@^4.0.4: eventemitter3@^4.0.0, eventemitter3@^4.0.4:
version "4.0.7" version "4.0.7"
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
...@@ -4920,7 +5209,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: ...@@ -4920,7 +5209,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2:
assign-symbols "^1.0.0" assign-symbols "^1.0.0"
is-extendable "^1.0.1" is-extendable "^1.0.1"
extend@^3.0.2, extend@~3.0.2: extend@~3.0.2:
version "3.0.2" version "3.0.2"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
...@@ -4963,11 +5252,6 @@ fast-deep-equal@^3.1.1: ...@@ -4963,11 +5252,6 @@ fast-deep-equal@^3.1.1:
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
fast-diff@1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.1.2.tgz#4b62c42b8e03de3f848460b639079920695d0154"
integrity sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==
fast-diff@^1.1.2: fast-diff@^1.1.2:
version "1.2.0" version "1.2.0"
resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03"
...@@ -7206,6 +7490,11 @@ lines-and-columns@^1.1.6: ...@@ -7206,6 +7490,11 @@ lines-and-columns@^1.1.6:
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
linkifyjs@^3.0.5:
version "3.0.5"
resolved "https://registry.yarnpkg.com/linkifyjs/-/linkifyjs-3.0.5.tgz#99e51a3a0c0e232fcb63ebb89eea3ff923378f34"
integrity sha512-1Y9XQH65eQKA9p2xtk+zxvnTeQBG7rdAXSkUG97DmuI/Xhji9uaUzaWxRj6rf9YC0v8KKHkxav7tnLX82Sz5Fg==
load-json-file@^2.0.0: load-json-file@^2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
...@@ -7339,7 +7628,7 @@ lodash.uniq@^4.5.0: ...@@ -7339,7 +7628,7 @@ lodash.uniq@^4.5.0:
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
"lodash@>=3.5 <5", lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.17.5: "lodash@>=3.5 <5", lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.5:
version "4.17.21" version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
...@@ -7349,7 +7638,7 @@ loglevel@^1.6.8: ...@@ -7349,7 +7638,7 @@ loglevel@^1.6.8:
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.0.tgz#e7ec73a57e1e7b419cb6c6ac06bf050b67356114" resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.0.tgz#e7ec73a57e1e7b419cb6c6ac06bf050b67356114"
integrity sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA== integrity sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==
loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1, loose-envify@^1.4.0: loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0:
version "1.4.0" version "1.4.0"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
...@@ -8170,6 +8459,11 @@ optionator@^0.8.1, optionator@^0.8.3: ...@@ -8170,6 +8459,11 @@ optionator@^0.8.1, optionator@^0.8.3:
type-check "~0.3.2" type-check "~0.3.2"
word-wrap "~1.2.3" word-wrap "~1.2.3"
orderedmap@^1.1.0:
version "1.1.8"
resolved "https://registry.yarnpkg.com/orderedmap/-/orderedmap-1.1.8.tgz#9652b2584f721c1032fa04cb60d442b3d4aa097c"
integrity sha512-eWEYOAggZZpZbJ9CTsqAKOTxlbBHdHZ8pzcfEvNTxGrjQ/m+Q25nSWUiMlT9MTbgpB6FOiBDKqsgJ2FlLDVNaw==
original@^1.0.0: original@^1.0.0:
version "1.0.2" version "1.0.2"
resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f"
...@@ -8305,11 +8599,6 @@ param-case@^3.0.3: ...@@ -8305,11 +8599,6 @@ param-case@^3.0.3:
dot-case "^3.0.4" dot-case "^3.0.4"
tslib "^2.0.3" tslib "^2.0.3"
parchment@^1.1.2, parchment@^1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/parchment/-/parchment-1.1.4.tgz#aeded7ab938fe921d4c34bc339ce1168bc2ffde5"
integrity sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg==
parent-module@^1.0.0: parent-module@^1.0.0:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
...@@ -9393,7 +9682,7 @@ prompts@^2.0.1: ...@@ -9393,7 +9682,7 @@ prompts@^2.0.1:
kleur "^3.0.3" kleur "^3.0.3"
sisteransi "^1.0.5" sisteransi "^1.0.5"
prop-types@^15.5.10, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1:
version "15.8.1" version "15.8.1"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
...@@ -9402,6 +9691,102 @@ prop-types@^15.5.10, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: ...@@ -9402,6 +9691,102 @@ prop-types@^15.5.10, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1:
object-assign "^4.1.1" object-assign "^4.1.1"
react-is "^16.13.1" react-is "^16.13.1"
prosemirror-commands@^1.2.1:
version "1.3.0"
resolved "https://registry.yarnpkg.com/prosemirror-commands/-/prosemirror-commands-1.3.0.tgz#361b2e2b2a347ce7453386459f97c3f549a1113b"
integrity sha512-BwBbZ5OAScPcm0x7H8SPbqjuEJnCU2RJT9LDyOiiIl/3NbL1nJZI4SFNHwU2e/tRr2Xe7JsptpzseqvZvToLBQ==
dependencies:
prosemirror-model "^1.0.0"
prosemirror-state "^1.0.0"
prosemirror-transform "^1.0.0"
prosemirror-dropcursor@^1.4.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/prosemirror-dropcursor/-/prosemirror-dropcursor-1.5.0.tgz#edbc61d6f71f9f924130eec8e85b0861357957c9"
integrity sha512-vy7i77ddKyXlu8kKBB3nlxLBnsWyKUmQIPB5x8RkYNh01QNp/qqGmdd5yZefJs0s3rtv5r7Izfu2qbtr+tYAMQ==
dependencies:
prosemirror-state "^1.0.0"
prosemirror-transform "^1.1.0"
prosemirror-view "^1.1.0"
prosemirror-gapcursor@^1.2.1:
version "1.3.0"
resolved "https://registry.yarnpkg.com/prosemirror-gapcursor/-/prosemirror-gapcursor-1.3.0.tgz#e07c22ad959b86ec0c4cfc590cc5f484dd984d56"
integrity sha512-9Tdx83xB2W4Oqchm12FtCkSizbqvi64cjs1I9TRPblqdA5TUWoVZ4ZI+t71Jh6HSEh4cDMPzx3UwfryJtKlb/w==
dependencies:
prosemirror-keymap "^1.0.0"
prosemirror-model "^1.0.0"
prosemirror-state "^1.0.0"
prosemirror-view "^1.0.0"
prosemirror-history@^1.2.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/prosemirror-history/-/prosemirror-history-1.3.0.tgz#bf5a1ff7759aca759ddf0c722c2fa5b14fb0ddc1"
integrity sha512-qo/9Wn4B/Bq89/YD+eNWFbAytu6dmIM85EhID+fz9Jcl9+DfGEo8TTSrRhP15+fFEoaPqpHSxlvSzSEbmlxlUA==
dependencies:
prosemirror-state "^1.2.2"
prosemirror-transform "^1.0.0"
rope-sequence "^1.3.0"
prosemirror-keymap@^1.0.0, prosemirror-keymap@^1.1.2, prosemirror-keymap@^1.1.5:
version "1.2.0"
resolved "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-1.2.0.tgz#d5cc9da9b712020690a994b50b92a0e448a60bf5"
integrity sha512-TdSfu+YyLDd54ufN/ZeD1VtBRYpgZnTPnnbY+4R08DDgs84KrIPEPbJL8t1Lm2dkljFx6xeBE26YWH3aIzkPKg==
dependencies:
prosemirror-state "^1.0.0"
w3c-keyname "^2.2.0"
prosemirror-model@^1.0.0, prosemirror-model@^1.16.0, prosemirror-model@^1.16.1, prosemirror-model@^1.8.1:
version "1.17.0"
resolved "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.17.0.tgz#f99fe93e9b45e48559ebf0f50262ef900a6246b7"
integrity sha512-RJBDgZs/W26yyx1itrk5b3H9FxIro3K7Xjc2QWJI99Gu1nxYAnIggqI3fIOD8Jd/6QZfM+t6elZFJPycVexMTA==
dependencies:
orderedmap "^1.1.0"
prosemirror-schema-list@^1.1.6:
version "1.2.0"
resolved "https://registry.yarnpkg.com/prosemirror-schema-list/-/prosemirror-schema-list-1.2.0.tgz#1932268593a7396c0ac168cbe31f28187406ce24"
integrity sha512-8PT/9xOx1HHdC7fDNNfhQ50Z8Mzu7nKyA1KCDltSpcZVZIbB0k7KtsHrnXyuIhbLlScoymBiLZ00c5MH6wdFsA==
dependencies:
prosemirror-model "^1.0.0"
prosemirror-state "^1.0.0"
prosemirror-transform "^1.0.0"
prosemirror-state@^1.0.0, prosemirror-state@^1.2.2, prosemirror-state@^1.3.1, prosemirror-state@^1.3.4:
version "1.4.0"
resolved "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.4.0.tgz#0b0c23b38d9f5bb23d19ad043cf8453d876c0414"
integrity sha512-mVDZdjNX/YT5FvypiwbphJe9psA5h+j9apsSszVRFc6oKFoIInvzdujh8QW9f9lwHtSYajLxNiM1hPhd0Sl1XA==
dependencies:
prosemirror-model "^1.0.0"
prosemirror-transform "^1.0.0"
prosemirror-tables@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-1.1.1.tgz#ad66300cc49500455cf1243bb129c9e7d883321e"
integrity sha512-LmCz4jrlqQZRsYRDzCRYf/pQ5CUcSOyqZlAj5kv67ZWBH1SVLP2U9WJEvQfimWgeRlIz0y0PQVqO1arRm1+woA==
dependencies:
prosemirror-keymap "^1.1.2"
prosemirror-model "^1.8.1"
prosemirror-state "^1.3.1"
prosemirror-transform "^1.2.1"
prosemirror-view "^1.13.3"
prosemirror-transform@^1.0.0, prosemirror-transform@^1.1.0, prosemirror-transform@^1.2.1, prosemirror-transform@^1.3.3:
version "1.6.0"
resolved "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.6.0.tgz#8162dbfaf124f9253a7ab28605a9460411a96a53"
integrity sha512-MAp7AjsjEGEqQY0sSMufNIUuEyB1ZR9Fqlm8dTwwWwpEJRv/plsKjWXBbx52q3Ml8MtaMcd7ic14zAHVB3WaMw==
dependencies:
prosemirror-model "^1.0.0"
prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.13.3, prosemirror-view@^1.23.6:
version "1.25.0"
resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.25.0.tgz#a0d7fc427c41276bab643369d2f37eb6dd3addb6"
integrity sha512-9eJ7VYOqUl/l2P3Q126PoUhfrWAGF0GU4zHXZssbVnhqLZBKpHTcTYx1W9DMg1PCuS69sHLMJdm3UFHmD5SGdw==
dependencies:
prosemirror-model "^1.16.0"
prosemirror-state "^1.0.0"
prosemirror-transform "^1.1.0"
proxy-addr@~2.0.7: proxy-addr@~2.0.7:
version "2.0.7" version "2.0.7"
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
...@@ -9512,43 +9897,6 @@ querystringify@^2.1.1: ...@@ -9512,43 +9897,6 @@ querystringify@^2.1.1:
resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==
quill-blot-formatter@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/quill-blot-formatter/-/quill-blot-formatter-1.0.5.tgz#934cadd10ed9cf68b54b22b99d1e0a6a06f4479d"
integrity sha1-k0yt0Q7Zz2i1SyK5nR4Kagb0R50=
dependencies:
deepmerge "^2.0.0"
quill-delta@^3.6.2:
version "3.6.3"
resolved "https://registry.yarnpkg.com/quill-delta/-/quill-delta-3.6.3.tgz#b19fd2b89412301c60e1ff213d8d860eac0f1032"
integrity sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==
dependencies:
deep-equal "^1.0.1"
extend "^3.0.2"
fast-diff "1.1.2"
quill-image-resize-module-react@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/quill-image-resize-module-react/-/quill-image-resize-module-react-3.0.0.tgz#dec32cecd175fcdc52bfd184206174fdd111a864"
integrity sha512-3jVChLoXh+fwEELx3OswOEEuF+1KU3r/B9RAqZ//s+d+UMduVZzUepU1g/XoxjKoBJvWD2lJwBIFBRUNb8ebCw==
dependencies:
lodash "^4.17.4"
quill "^1.2.2"
raw-loader "^0.5.1"
quill@^1.2.2, quill@^1.3.7:
version "1.3.7"
resolved "https://registry.yarnpkg.com/quill/-/quill-1.3.7.tgz#da5b2f3a2c470e932340cdbf3668c9f21f9286e8"
integrity sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==
dependencies:
clone "^2.1.1"
deep-equal "^1.0.1"
eventemitter3 "^2.0.3"
extend "^3.0.2"
parchment "^1.1.4"
quill-delta "^3.6.2"
raf@^3.4.1: raf@^3.4.1:
version "3.4.1" version "3.4.1"
resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39"
...@@ -9586,11 +9934,6 @@ raw-body@2.5.1: ...@@ -9586,11 +9934,6 @@ raw-body@2.5.1:
iconv-lite "0.4.24" iconv-lite "0.4.24"
unpipe "1.0.0" unpipe "1.0.0"
raw-loader@^0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa"
integrity sha1-DD0L6u2KAclm2Xh793goElKpeao=
rc-upload@^4.3.3: rc-upload@^4.3.3:
version "4.3.3" version "4.3.3"
resolved "https://registry.yarnpkg.com/rc-upload/-/rc-upload-4.3.3.tgz#e237aa525e5313fa16f4d04d27f53c2f0e157bb8" resolved "https://registry.yarnpkg.com/rc-upload/-/rc-upload-4.3.3.tgz#e237aa525e5313fa16f4d04d27f53c2f0e157bb8"
...@@ -9651,11 +9994,6 @@ react-dev-utils@^10.2.1: ...@@ -9651,11 +9994,6 @@ react-dev-utils@^10.2.1:
strip-ansi "6.0.0" strip-ansi "6.0.0"
text-table "0.2.0" text-table "0.2.0"
react-dom-factories@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/react-dom-factories/-/react-dom-factories-1.0.2.tgz#eb7705c4db36fb501b3aa38ff759616aa0ff96e0"
integrity sha1-63cFxNs2+1AbOqOP91lhaqD/luA=
react-dom@^16.13.1: react-dom@^16.13.1:
version "16.14.0" version "16.14.0"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89"
...@@ -9676,18 +10014,6 @@ react-is@^16.12.0, react-is@^16.13.1, react-is@^16.8.4: ...@@ -9676,18 +10014,6 @@ react-is@^16.12.0, react-is@^16.13.1, react-is@^16.8.4:
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
react-quill@^1.3.5:
version "1.3.5"
resolved "https://registry.yarnpkg.com/react-quill/-/react-quill-1.3.5.tgz#8c4ad759da03365b17c79c6c52afa9772259844e"
integrity sha512-/W/rNCW+6QpGz8yQ9tFK5Ka/h/No1RqrcOOvCIOR092OiKzRFlU2xbPEwiP3Wgy/Dx13pi1YhjReDMX/5uotJg==
dependencies:
"@types/quill" "1.3.10"
create-react-class "^15.6.0"
lodash "^4.17.4"
prop-types "^15.5.10"
quill "^1.3.7"
react-dom-factories "^1.0.0"
react-scripts@^3.4.1: react-scripts@^3.4.1:
version "3.4.4" version "3.4.4"
resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-3.4.4.tgz#eef024ed5c566374005e3f509877350ba99d08a7" resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-3.4.4.tgz#eef024ed5c566374005e3f509877350ba99d08a7"
...@@ -10255,6 +10581,11 @@ rollup@^1.32.1: ...@@ -10255,6 +10581,11 @@ rollup@^1.32.1:
"@types/node" "*" "@types/node" "*"
acorn "^7.1.0" acorn "^7.1.0"
rope-sequence@^1.3.0:
version "1.3.3"
resolved "https://registry.yarnpkg.com/rope-sequence/-/rope-sequence-1.3.3.tgz#3f67fc106288b84b71532b4a5fd9d4881e4457f0"
integrity sha512-85aZYCxweiD5J8yTEbw+E6A27zSnLPNDL0WfPdw3YYodq7WjnTKo0q4dtyQ2gz23iPT8Q9CUyJtAaUNcTxRf5Q==
rsvp@^4.8.4: rsvp@^4.8.4:
version "4.8.5" version "4.8.5"
resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734"
...@@ -11267,6 +11598,13 @@ tiny-glob@^0.2.6: ...@@ -11267,6 +11598,13 @@ tiny-glob@^0.2.6:
globalyzer "0.1.0" globalyzer "0.1.0"
globrex "^0.1.2" globrex "^0.1.2"
tippy.js@^6.3.7:
version "6.3.7"
resolved "https://registry.yarnpkg.com/tippy.js/-/tippy.js-6.3.7.tgz#8ccfb651d642010ed9a32ff29b0e9e19c5b8c61c"
integrity sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==
dependencies:
"@popperjs/core" "^2.9.0"
tmp@^0.0.33: tmp@^0.0.33:
version "0.0.33" version "0.0.33"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
...@@ -11701,6 +12039,11 @@ w3c-hr-time@^1.0.1: ...@@ -11701,6 +12039,11 @@ w3c-hr-time@^1.0.1:
dependencies: dependencies:
browser-process-hrtime "^1.0.0" 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: w3c-xmlserializer@^1.1.2:
version "1.1.2" version "1.1.2"
resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794" resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment