mirror of
https://gitlab.com/bramw/baserow.git
synced 2025-04-04 13:15:24 +00:00
📚1️⃣ Rich text: Grid view and Row edit modal editor components
This commit is contained in:
parent
f7b75654e6
commit
220359b1c9
22 changed files with 705 additions and 176 deletions
backend/src/baserow/contrib/database
premium/web-frontend/modules/baserow_premium
assets/scss/components
components/row_comments
web-frontend
config
modules
package.jsonyarn.lock
|
@ -402,6 +402,8 @@ class TextFieldType(CollationSortMixin, FieldType):
|
|||
class LongTextFieldType(CollationSortMixin, FieldType):
|
||||
type = "long_text"
|
||||
model_class = LongTextField
|
||||
allowed_fields = ["long_text_enable_rich_text"]
|
||||
serializer_field_names = ["long_text_enable_rich_text"]
|
||||
_can_group_by = True
|
||||
|
||||
def get_serializer_field(self, instance, **kwargs):
|
||||
|
|
|
@ -257,7 +257,9 @@ class TextField(Field):
|
|||
|
||||
|
||||
class LongTextField(Field):
|
||||
pass
|
||||
long_text_enable_rich_text = models.BooleanField(
|
||||
default=False, null=True, help_text="Enable rich text formatting for the field."
|
||||
) # TODO: Remove null=True in a future release.
|
||||
|
||||
|
||||
class URLField(Field):
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
# Generated by Django 4.1.13 on 2024-02-09 15:23
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("database", "0151_tableusageupdate_tableusage"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="longtextfield",
|
||||
name="long_text_enable_rich_text",
|
||||
field=models.BooleanField(
|
||||
default=False,
|
||||
help_text="Enable rich text formatting for the field.",
|
||||
null=True,
|
||||
),
|
||||
),
|
||||
]
|
|
@ -1,13 +1,39 @@
|
|||
.rich-text-editor {
|
||||
width: 100%;
|
||||
background-color: white;
|
||||
max-height: 60vh;
|
||||
overflow-y: auto;
|
||||
height: 100%;
|
||||
text-align: left;
|
||||
|
||||
.tiptap.ProseMirror {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
color: revert;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style-type: disc;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin: 1rem;
|
||||
padding-left: 1rem;
|
||||
color: $color-neutral-700;
|
||||
border-left: 4px solid $color-neutral-300;
|
||||
}
|
||||
|
||||
pre {
|
||||
padding: 1rem;
|
||||
background-color: $color-neutral-100;
|
||||
border-radius: $rounded;
|
||||
}
|
||||
}
|
||||
|
||||
.rich-text-editor__comment {
|
||||
max-height: 60vh;
|
||||
overflow-y: auto;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
.rich-text-editor__mention {
|
||||
|
|
|
@ -60,7 +60,9 @@
|
|||
ref="editor"
|
||||
v-model="message"
|
||||
:editable="editing"
|
||||
@entered="stopEdit(true)"
|
||||
:enable-mentions="true"
|
||||
:enter-stop-edit="true"
|
||||
@stop-edit="stopEdit(true)"
|
||||
/>
|
||||
</div>
|
||||
<div v-if="editing" class="row_comments__comment-text-actions">
|
||||
|
|
|
@ -24,7 +24,11 @@
|
|||
</template>
|
||||
</i18n>
|
||||
</div>
|
||||
<RichTextEditor :editable="false" :value="notification.data.message" />
|
||||
<RichTextEditor
|
||||
:editable="false"
|
||||
:enable-mentions="true"
|
||||
:value="notification.data.message"
|
||||
/>
|
||||
</nuxt-link>
|
||||
</template>
|
||||
|
||||
|
|
|
@ -22,7 +22,11 @@
|
|||
</template>
|
||||
</i18n>
|
||||
</div>
|
||||
<RichTextEditor :editable="false" :value="notification.data.message" />
|
||||
<RichTextEditor
|
||||
:editable="false"
|
||||
:enable-mentions="true"
|
||||
:value="notification.data.message"
|
||||
/>
|
||||
</nuxt-link>
|
||||
</template>
|
||||
|
||||
|
|
|
@ -85,8 +85,11 @@
|
|||
>
|
||||
<RichTextEditor
|
||||
v-model="comment"
|
||||
editor-class="rich-text-editor__comment"
|
||||
:enable-mentions="true"
|
||||
:placeholder="$t('rowCommentSidebar.comment')"
|
||||
@entered="postComment()"
|
||||
:enter-stop-edit="true"
|
||||
@stop-edit="postComment()"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -48,9 +48,14 @@ export default function (
|
|||
build: {
|
||||
extend(config, ctx) {
|
||||
config.node = { fs: 'empty' }
|
||||
config.module.rules.push({
|
||||
test: /\.(m|c)js$/,
|
||||
include: /node_modules/,
|
||||
type: 'javascript/auto',
|
||||
})
|
||||
},
|
||||
babel: { compact: true },
|
||||
transpile: ['axios'],
|
||||
transpile: ['axios', 'tiptap-markdown'],
|
||||
},
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
@import 'fields/number';
|
||||
@import 'fields/rating';
|
||||
@import 'fields/long_text';
|
||||
@import 'fields/rich_text';
|
||||
@import 'fields/date';
|
||||
@import 'fields/link_row';
|
||||
@import 'fields/file';
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
.field-rich-text {
|
||||
@extend .field-long-text;
|
||||
|
||||
overflow-y: auto;
|
||||
|
||||
&.active {
|
||||
border-color: $palette-blue-500;
|
||||
}
|
||||
|
||||
& .rich-text-editor[conteteditable='false'] {
|
||||
background-color: $palette-neutral-700;
|
||||
}
|
||||
}
|
|
@ -32,3 +32,30 @@
|
|||
background-color: $color-primary-100;
|
||||
}
|
||||
}
|
||||
|
||||
.grid-field-long-text--uniform {
|
||||
& h1,
|
||||
h2,
|
||||
h3,
|
||||
p,
|
||||
a,
|
||||
ul,
|
||||
ol,
|
||||
li,
|
||||
blockquote,
|
||||
pre,
|
||||
code {
|
||||
@extend %ellipsis;
|
||||
|
||||
@include fixed-height(32px, 13px);
|
||||
|
||||
padding: 0;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
color: revert;
|
||||
}
|
||||
|
||||
li::marker {
|
||||
content: initial;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,11 +1,16 @@
|
|||
<template>
|
||||
<div>
|
||||
<RichTextEditorMentionsList
|
||||
v-if="editable && enableMentions"
|
||||
ref="mentionsList"
|
||||
:show-search="false"
|
||||
:add-empty-item="false"
|
||||
/>
|
||||
<EditorContent :editor="editor" />
|
||||
<EditorContent
|
||||
class="rich-text-editor"
|
||||
:class="[editorClass]"
|
||||
:editor="editor"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
@ -18,22 +23,62 @@ import { Mention } from '@tiptap/extension-mention'
|
|||
import { Document } from '@tiptap/extension-document'
|
||||
import { Paragraph } from '@tiptap/extension-paragraph'
|
||||
import { HardBreak } from '@tiptap/extension-hard-break'
|
||||
import { Heading } from '@tiptap/extension-heading'
|
||||
import { ListItem } from '@tiptap/extension-list-item'
|
||||
import { BulletList } from '@tiptap/extension-bullet-list'
|
||||
import { OrderedList } from '@tiptap/extension-ordered-list'
|
||||
import { Bold } from '@tiptap/extension-bold'
|
||||
import { Italic } from '@tiptap/extension-italic'
|
||||
import { Strike } from '@tiptap/extension-strike'
|
||||
import { Underline } from '@tiptap/extension-underline'
|
||||
import { Subscript } from '@tiptap/extension-subscript'
|
||||
import { Superscript } from '@tiptap/extension-superscript'
|
||||
import { Blockquote } from '@tiptap/extension-blockquote'
|
||||
import { CodeBlock } from '@tiptap/extension-code-block'
|
||||
import { HorizontalRule } from '@tiptap/extension-horizontal-rule'
|
||||
import { Text } from '@tiptap/extension-text'
|
||||
import { Extension, mergeAttributes } from '@tiptap/core'
|
||||
import { Plugin, PluginKey } from '@tiptap/pm/state'
|
||||
import { Markdown } from 'tiptap-markdown'
|
||||
|
||||
import RichTextEditorMentionsList from '@baserow/modules/core/components/editor/RichTextEditorMentionsList'
|
||||
import suggestion from '@baserow/modules/core/editor/suggestion'
|
||||
|
||||
const richTextEditorExtensions = [
|
||||
// Nodes
|
||||
Heading.configure({ levels: [1, 2, 3] }),
|
||||
ListItem,
|
||||
OrderedList,
|
||||
BulletList,
|
||||
CodeBlock,
|
||||
Blockquote,
|
||||
HorizontalRule,
|
||||
// Marks
|
||||
Bold,
|
||||
Italic,
|
||||
Strike,
|
||||
Underline,
|
||||
Subscript,
|
||||
Superscript,
|
||||
// Extensions
|
||||
Markdown,
|
||||
]
|
||||
|
||||
// Please, note that we need to remap Enter to Shift-Enter for every extension
|
||||
// relying on it in order to emit an event when the user presses Enter.
|
||||
const EnterKeyExtension = Extension.create({
|
||||
name: 'enterKeyEventHandler',
|
||||
const EnterStopEditExtension = Extension.create({
|
||||
name: 'enterStopEditHandler',
|
||||
|
||||
addOptions() {
|
||||
return {
|
||||
shiftKey: false,
|
||||
}
|
||||
},
|
||||
|
||||
addProseMirrorPlugins() {
|
||||
return [
|
||||
new Plugin({
|
||||
key: new PluginKey('enterKeyEventHandler'),
|
||||
key: new PluginKey('enterStopEditHandler'),
|
||||
props: {
|
||||
handleKeyDown: (view, event) => {
|
||||
const { doc } = view.state
|
||||
|
@ -41,17 +86,23 @@ const EnterKeyExtension = Extension.create({
|
|||
function isDocEmpty() {
|
||||
let isEmpty = true
|
||||
doc.descendants((node) => {
|
||||
const textNodes = ['text', 'paragraph', 'hardBreak']
|
||||
if (!textNodes.includes(node.type.name) || node.text?.trim()) {
|
||||
const isContent =
|
||||
node.type.name !== 'hardBreak' &&
|
||||
!node.isText &&
|
||||
!node.isBlock
|
||||
if (isContent || node.text?.trim()) {
|
||||
isEmpty = false
|
||||
}
|
||||
})
|
||||
return isEmpty
|
||||
}
|
||||
|
||||
if (event.key === 'Enter' && !event.shiftKey) {
|
||||
if (
|
||||
event.key === 'Enter' &&
|
||||
event.shiftKey === this.options.shiftKey
|
||||
) {
|
||||
if (!isDocEmpty()) {
|
||||
this.options.vueComponent.$emit('entered')
|
||||
this.options.vueComponent.$emit('stop-edit')
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
@ -81,6 +132,26 @@ export default {
|
|||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
editorClass: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
enableMentions: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
enterStopEdit: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
shiftEnterStopEdit: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
enableRichTextFormatting: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
@ -91,8 +162,6 @@ export default {
|
|||
...mapGetters({
|
||||
loggedUserId: 'auth/getUserId',
|
||||
workspace: 'workspace/getSelected',
|
||||
isUserIdMemberOfSelectedWorkspace:
|
||||
'workspace/isUserIdMemberOfSelectedWorkspace',
|
||||
}),
|
||||
},
|
||||
watch: {
|
||||
|
@ -103,70 +172,97 @@ export default {
|
|||
this.editor.commands.focus('end')
|
||||
},
|
||||
value(value) {
|
||||
const jsonContent = this.editor.getJSON()
|
||||
|
||||
if (_.isEqual(jsonContent, value)) {
|
||||
return
|
||||
if (!_.isEqual(value, this.editor.getJSON())) {
|
||||
this.editor.commands.setContent(value, false)
|
||||
}
|
||||
|
||||
this.editor.commands.setContent(value, false)
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
const loggedUserId = this.loggedUserId
|
||||
const originalRenderHTML = Mention.config.renderHTML
|
||||
const isUserInWorkspace =
|
||||
this.$store.getters['workspace/isUserIdMemberOfSelectedWorkspace']
|
||||
const mentionsExt = Mention.extend({
|
||||
renderHTML({ node, HTMLAttributes }) {
|
||||
const extensions = this.getConfiguredExtensions()
|
||||
this.initTiptapEditor(extensions)
|
||||
},
|
||||
unmounted() {
|
||||
this.editor.destroy()
|
||||
},
|
||||
methods: {
|
||||
getConfiguredExtensions() {
|
||||
const extensions = [Document, Paragraph, Text, HardBreak]
|
||||
|
||||
if (this.enableRichTextFormatting) {
|
||||
extensions.push(...richTextEditorExtensions)
|
||||
}
|
||||
|
||||
if (this.enterStopEdit || this.shiftEnterStopEdit) {
|
||||
const enterKeyExt = EnterStopEditExtension.configure({
|
||||
vueComponent: this,
|
||||
shiftKey: this.shiftEnterStopEdit,
|
||||
})
|
||||
extensions.push(enterKeyExt)
|
||||
}
|
||||
if (this.enableMentions) {
|
||||
const renderHTML = this.customRenderHTMLForMentions()
|
||||
const mentionsExt = Mention.configure({
|
||||
renderHTML,
|
||||
suggestion: suggestion({
|
||||
component: this.$refs.mentionsList,
|
||||
}),
|
||||
})
|
||||
extensions.push(mentionsExt)
|
||||
}
|
||||
|
||||
if (this.placeholder) {
|
||||
extensions.push(
|
||||
Placeholder.configure({
|
||||
placeholder: this.placeholder,
|
||||
})
|
||||
)
|
||||
}
|
||||
return extensions
|
||||
},
|
||||
initTiptapEditor(extensions) {
|
||||
this.editor = new Editor({
|
||||
content: this.value,
|
||||
editable: this.editable,
|
||||
extensions,
|
||||
onUpdate: () => {
|
||||
this.$emit('input', this.editor.getJSON())
|
||||
},
|
||||
onFocus: () => {
|
||||
this.$emit('focus')
|
||||
},
|
||||
onBlur: () => {
|
||||
this.$emit('blur')
|
||||
},
|
||||
})
|
||||
|
||||
if (this.editable && this.enableRichTextFormatting) {
|
||||
this.editor.commands.unsetAllMarks()
|
||||
}
|
||||
},
|
||||
customRenderHTMLForMentions() {
|
||||
const loggedUserId = this.loggedUserId
|
||||
const isUserInWorkspace =
|
||||
this.$store.getters['workspace/isUserIdMemberOfSelectedWorkspace']
|
||||
return ({ node, options }) => {
|
||||
let className = 'rich-text-editor__mention'
|
||||
if (node.attrs.id === loggedUserId) {
|
||||
className += ' rich-text-editor__mention--current-user'
|
||||
} else if (!isUserInWorkspace(node.attrs.id)) {
|
||||
className += ' rich-text-editor__mention--user-gone'
|
||||
}
|
||||
return originalRenderHTML.call(this, {
|
||||
node,
|
||||
HTMLAttributes: mergeAttributes(HTMLAttributes, { class: className }),
|
||||
})
|
||||
},
|
||||
}).configure({
|
||||
suggestion: suggestion({
|
||||
component: this.$refs.mentionsList,
|
||||
}),
|
||||
})
|
||||
const enterKeyExt = EnterKeyExtension.configure({ vueComponent: this })
|
||||
const extensions = [
|
||||
Document,
|
||||
Paragraph,
|
||||
Text,
|
||||
HardBreak,
|
||||
enterKeyExt,
|
||||
mentionsExt,
|
||||
]
|
||||
if (this.placeholder) {
|
||||
extensions.push(
|
||||
Placeholder.configure({
|
||||
placeholder: this.placeholder,
|
||||
})
|
||||
)
|
||||
}
|
||||
this.editor = new Editor({
|
||||
content: this.value,
|
||||
editable: this.editable,
|
||||
editorProps: {
|
||||
attributes: {
|
||||
class: this.editable ? 'rich-text-editor' : null,
|
||||
},
|
||||
},
|
||||
extensions,
|
||||
onUpdate: () => {
|
||||
this.$emit('input', this.editor.getJSON())
|
||||
},
|
||||
})
|
||||
},
|
||||
beforeDestroy() {
|
||||
this.editor.destroy()
|
||||
return [
|
||||
'span',
|
||||
mergeAttributes({ class: className }, this.HTMLAttributes),
|
||||
`${options.suggestion.char}${node.attrs.label ?? node.attrs.id}`,
|
||||
]
|
||||
}
|
||||
},
|
||||
focus() {
|
||||
this.editor.commands.focus('end')
|
||||
},
|
||||
serializeToMarkdown() {
|
||||
return this.editor.storage.markdown.getMarkdown()
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
<template>
|
||||
<div>
|
||||
<div v-if="$featureFlagIsEnabled('rich-text-field')" class="control">
|
||||
<div class="control__elements">
|
||||
<Checkbox v-model="values.long_text_enable_rich_text">{{
|
||||
$t('fieldLongTextSubForm.enableRichTextFormatting')
|
||||
}}</Checkbox>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import form from '@baserow/modules/core/mixins/form'
|
||||
|
||||
import fieldSubForm from '@baserow/modules/database/mixins/fieldSubForm'
|
||||
|
||||
export default {
|
||||
name: 'FieldTextSubForm',
|
||||
mixins: [form, fieldSubForm],
|
||||
data() {
|
||||
return {
|
||||
allowedValues: ['long_text_enable_rich_text'],
|
||||
values: {
|
||||
long_text_enable_rich_text: false,
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
isFormValid() {
|
||||
return true
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
|
@ -0,0 +1,44 @@
|
|||
<template>
|
||||
<div class="control__elements">
|
||||
<RichTextEditor
|
||||
ref="input"
|
||||
v-model="richCopy"
|
||||
class="input field-rich-text"
|
||||
:class="{ 'input--error': touched && !valid, active: editing }"
|
||||
:disabled="readOnly"
|
||||
:editable="!readOnly"
|
||||
:enable-rich-text-formatting="true"
|
||||
@focus="select()"
|
||||
@blur="unselect()"
|
||||
></RichTextEditor>
|
||||
|
||||
<div v-show="touched && !valid" class="error">
|
||||
{{ error }}
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import RichTextEditor from '@baserow/modules/core/components/editor/RichTextEditor.vue'
|
||||
import rowEditField from '@baserow/modules/database/mixins/rowEditField'
|
||||
import rowEditFieldInput from '@baserow/modules/database/mixins/rowEditFieldInput'
|
||||
|
||||
export default {
|
||||
components: { RichTextEditor },
|
||||
mixins: [rowEditField, rowEditFieldInput],
|
||||
data() {
|
||||
return {
|
||||
// local copy of the value storing the JSON representation of the rich text editor
|
||||
richCopy: '',
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.richCopy = this.value || ''
|
||||
},
|
||||
methods: {
|
||||
beforeSave() {
|
||||
return this.$refs.input.serializeToMarkdown()
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
|
@ -102,7 +102,7 @@ export default {
|
|||
getComponent(parent, props) {
|
||||
return parent.$registry
|
||||
.get('field', props.field.type)
|
||||
.getGridViewFieldComponent()
|
||||
.getGridViewFieldComponent(props.field)
|
||||
},
|
||||
/**
|
||||
* If the grid field component emits an update event then this method will be
|
||||
|
|
|
@ -15,7 +15,7 @@ export default {
|
|||
getComponent(field, registry) {
|
||||
return registry
|
||||
.get('formula_type', field.formula_type)
|
||||
.getGridViewFieldComponent()
|
||||
.getGridViewFieldComponent(field)
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
|
@ -0,0 +1,64 @@
|
|||
<template>
|
||||
<div
|
||||
ref="cell"
|
||||
class="grid-view__cell grid-field-long-text__cell active"
|
||||
:class="{ editing: opened }"
|
||||
@contextmenu="stopContextIfEditing($event)"
|
||||
>
|
||||
<div v-if="!opened" class="grid-field-long-text">
|
||||
{{ value }}
|
||||
</div>
|
||||
<div
|
||||
v-else-if="editing"
|
||||
v-prevent-parent-scroll
|
||||
class="grid-field-long-text__textarea"
|
||||
>
|
||||
<RichTextEditor
|
||||
ref="input"
|
||||
v-model="richCopy"
|
||||
:enable-rich-text-formatting="true"
|
||||
></RichTextEditor>
|
||||
</div>
|
||||
<div v-else class="grid-field-long-text__textarea">
|
||||
{{ richCopy }}
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import RichTextEditor from '@baserow/modules/core/components/editor/RichTextEditor.vue'
|
||||
import gridField from '@baserow/modules/database/mixins/gridField'
|
||||
import gridFieldInput from '@baserow/modules/database/mixins/gridFieldInput'
|
||||
|
||||
export default {
|
||||
components: { RichTextEditor },
|
||||
mixins: [gridField, gridFieldInput],
|
||||
data() {
|
||||
return {
|
||||
// local copy of the value storing the JSON representation of the rich text editor
|
||||
richCopy: '',
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
value: {
|
||||
handler(value) {
|
||||
this.richCopy = value || ''
|
||||
},
|
||||
immediate: true,
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
beforeSave() {
|
||||
return this.$refs.input.serializeToMarkdown()
|
||||
},
|
||||
afterEdit() {
|
||||
this.$nextTick(() => {
|
||||
this.$refs.input.focus()
|
||||
})
|
||||
},
|
||||
canSaveByPressingEnter(event) {
|
||||
return false
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
|
@ -24,6 +24,7 @@ import FieldAutonumberSubForm from '@baserow/modules/database/components/field/F
|
|||
import FieldDurationSubForm from '@baserow/modules/database/components/field/FieldDurationSubForm'
|
||||
import FieldRatingSubForm from '@baserow/modules/database/components/field/FieldRatingSubForm'
|
||||
import FieldTextSubForm from '@baserow/modules/database/components/field/FieldTextSubForm'
|
||||
import FieldLongTextSubForm from '@baserow/modules/database/components/field/FieldLongTextSubForm'
|
||||
import FieldDateSubForm from '@baserow/modules/database/components/field/FieldDateSubForm'
|
||||
import FieldLinkRowSubForm from '@baserow/modules/database/components/field/FieldLinkRowSubForm'
|
||||
import FieldSelectOptionsSubForm from '@baserow/modules/database/components/field/FieldSelectOptionsSubForm'
|
||||
|
@ -31,6 +32,7 @@ import FieldCollaboratorSubForm from '@baserow/modules/database/components/field
|
|||
|
||||
import GridViewFieldText from '@baserow/modules/database/components/view/grid/fields/GridViewFieldText'
|
||||
import GridViewFieldLongText from '@baserow/modules/database/components/view/grid/fields/GridViewFieldLongText'
|
||||
import GridViewFieldRichText from '@baserow/modules/database/components/view/grid/fields/GridViewFieldRichText'
|
||||
import GridViewFieldURL from '@baserow/modules/database/components/view/grid/fields/GridViewFieldURL'
|
||||
import GridViewFieldEmail from '@baserow/modules/database/components/view/grid/fields/GridViewFieldEmail'
|
||||
import GridViewFieldLinkRow from '@baserow/modules/database/components/view/grid/fields/GridViewFieldLinkRow'
|
||||
|
@ -69,6 +71,7 @@ import FunctionalGridViewFieldLastModifiedBy from '@baserow/modules/database/com
|
|||
|
||||
import RowEditFieldText from '@baserow/modules/database/components/row/RowEditFieldText'
|
||||
import RowEditFieldLongText from '@baserow/modules/database/components/row/RowEditFieldLongText'
|
||||
import RowEditFieldRichText from '@baserow/modules/database/components/row/RowEditFieldRichText'
|
||||
import RowEditFieldURL from '@baserow/modules/database/components/row/RowEditFieldURL'
|
||||
import RowEditFieldEmail from '@baserow/modules/database/components/row/RowEditFieldEmail'
|
||||
import RowEditFieldLinkRow from '@baserow/modules/database/components/row/RowEditFieldLinkRow'
|
||||
|
@ -170,7 +173,7 @@ export class FieldType extends Registerable {
|
|||
* example if we are creating a number fields this component should contain
|
||||
* the inputs to choose of it is an integer of decimal.
|
||||
*/
|
||||
getFormComponent() {
|
||||
getFormComponent(field) {
|
||||
return null
|
||||
}
|
||||
|
||||
|
@ -179,7 +182,7 @@ export class FieldType extends Registerable {
|
|||
* type. It will only be used in the grid view and it also responsible for editing
|
||||
* the value.
|
||||
*/
|
||||
getGridViewFieldComponent() {
|
||||
getGridViewFieldComponent(field) {
|
||||
throw new Error(
|
||||
'Not implement error. This method should return a component.'
|
||||
)
|
||||
|
@ -847,8 +850,16 @@ export class LongTextFieldType extends FieldType {
|
|||
return i18n.t('fieldType.longText')
|
||||
}
|
||||
|
||||
getGridViewFieldComponent() {
|
||||
return GridViewFieldLongText
|
||||
getFormComponent() {
|
||||
return FieldLongTextSubForm
|
||||
}
|
||||
|
||||
getGridViewFieldComponent(field) {
|
||||
if (field?.long_text_enable_rich_text) {
|
||||
return GridViewFieldRichText
|
||||
} else {
|
||||
return GridViewFieldLongText
|
||||
}
|
||||
}
|
||||
|
||||
getFunctionalGridViewFieldComponent() {
|
||||
|
@ -856,7 +867,11 @@ export class LongTextFieldType extends FieldType {
|
|||
}
|
||||
|
||||
getRowEditFieldComponent(field) {
|
||||
return RowEditFieldLongText
|
||||
if (field?.long_text_enable_rich_text) {
|
||||
return RowEditFieldRichText
|
||||
} else {
|
||||
return RowEditFieldLongText
|
||||
}
|
||||
}
|
||||
|
||||
getCardComponent() {
|
||||
|
|
|
@ -425,6 +425,9 @@
|
|||
"formulaInputPlaceholder": "Click to edit the formula",
|
||||
"refreshFormulaOptions": "Refresh formula options"
|
||||
},
|
||||
"fieldLongTextSubForm": {
|
||||
"enableRichTextFormatting": "Enable rich text formatting"
|
||||
},
|
||||
"formulaFieldItemDescription": {
|
||||
"syntax": "Syntax",
|
||||
"examples": "Examples"
|
||||
|
|
|
@ -33,15 +33,31 @@
|
|||
"@nuxtjs/sentry": "7.1.11",
|
||||
"@storybook/core-client": "6.5.9",
|
||||
"@tiptap/core": "^2.0.3",
|
||||
"@tiptap/extension-document": "^2.0.3",
|
||||
"@tiptap/extension-hard-break": "^2.0.3",
|
||||
"@tiptap/extension-mention": "^2.0.3",
|
||||
"@tiptap/extension-paragraph": "^2.0.3",
|
||||
"@tiptap/extension-placeholder": "^2.0.3",
|
||||
"@tiptap/extension-text": "^2.0.3",
|
||||
"@tiptap/pm": "^2.0.3",
|
||||
"@tiptap/suggestion": "^2.0.3",
|
||||
"@tiptap/vue-2": "^2.0.3",
|
||||
"@tiptap/extension-blockquote": "^2.2.2",
|
||||
"@tiptap/extension-bold": "^2.2.2",
|
||||
"@tiptap/extension-bullet-list": "^2.2.2",
|
||||
"@tiptap/extension-code": "^2.2.2",
|
||||
"@tiptap/extension-code-block": "^2.2.2",
|
||||
"@tiptap/extension-document": "2.2.3",
|
||||
"@tiptap/extension-hard-break": "2.2.3",
|
||||
"@tiptap/extension-heading": "^2.0.3",
|
||||
"@tiptap/extension-highlight": "^2.2.2",
|
||||
"@tiptap/extension-horizontal-rule": "^2.2.2",
|
||||
"@tiptap/extension-italic": "^2.2.2",
|
||||
"@tiptap/extension-link": "^2.2.2",
|
||||
"@tiptap/extension-list-item": "^2.2.2",
|
||||
"@tiptap/extension-mention": "2.2.3",
|
||||
"@tiptap/extension-ordered-list": "^2.2.2",
|
||||
"@tiptap/extension-paragraph": "2.2.3",
|
||||
"@tiptap/extension-placeholder": "2.2.3",
|
||||
"@tiptap/extension-strike": "^2.2.3",
|
||||
"@tiptap/extension-subscript": "^2.2.3",
|
||||
"@tiptap/extension-superscript": "^2.2.3",
|
||||
"@tiptap/extension-text": "2.2.3",
|
||||
"@tiptap/extension-underline": "^2.2.3",
|
||||
"@tiptap/pm": "2.2.3",
|
||||
"@tiptap/suggestion": "2.2.3",
|
||||
"@tiptap/vue-2": "2.2.3",
|
||||
"antlr4": "4.9.3",
|
||||
"async-mutex": "0.4.0",
|
||||
"axios": "^1.6.7",
|
||||
|
@ -55,7 +71,7 @@
|
|||
"jwt-decode": "^3.1.2",
|
||||
"lodash": "^4.17.21",
|
||||
"markdown-it": "13.0.1",
|
||||
"moment": "2.29.4",
|
||||
"moment": "^2.30.1",
|
||||
"moment-guess": "^1.2.4",
|
||||
"moment-timezone": "0.5.43",
|
||||
"node-sass": "8.0.0",
|
||||
|
@ -67,6 +83,7 @@
|
|||
"resize-observer-polyfill": "^1.5.1",
|
||||
"sass-loader": "10.4.1",
|
||||
"thenby": "^1.3.4",
|
||||
"tiptap-markdown": "^0.8.9",
|
||||
"uuid": "9.0.0",
|
||||
"vue-chartjs": "4.1.2",
|
||||
"vuejs-datepicker": "1.6.2",
|
||||
|
|
|
@ -4263,86 +4263,168 @@
|
|||
resolved "https://registry.yarnpkg.com/@tiptap/core/-/core-2.1.13.tgz#e21f566e81688c826c6f26d2940886734189e193"
|
||||
integrity sha512-cMC8bgTN63dj1Mv82iDeeLl6sa9kY0Pug8LSalxVEptRmyFVsVxGgu2/6Y3T+9aCYScxfS06EkA8SdzFMAwYTQ==
|
||||
|
||||
"@tiptap/extension-bubble-menu@^2.1.13":
|
||||
version "2.1.13"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.1.13.tgz#884cd2e4e0c9586998baac3d0a14621b177f1859"
|
||||
integrity sha512-Hm7e1GX3AI6lfaUmr6WqsS9MMyXIzCkhh+VQi6K8jj4Q4s8kY4KPoAyD/c3v9pZ/dieUtm2TfqrOCkbHzsJQBg==
|
||||
"@tiptap/extension-blockquote@^2.2.2":
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-blockquote/-/extension-blockquote-2.2.3.tgz#0951a321f56c70b3f276e11bd17fa1ff109042e7"
|
||||
integrity sha512-gN23d/ADhTOB0YIM4lR0VrVczdyaXpmIVYYWZ45tQEVJzFWRSIScE9m9NaVqtqwEMpYHyTHxLth0OQutZ91sog==
|
||||
|
||||
"@tiptap/extension-bold@^2.2.2":
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-bold/-/extension-bold-2.2.3.tgz#e4cd91de4e8dbdabd915bbc10c86eda321e91d17"
|
||||
integrity sha512-bHeFkRY5+Nf2DKupstV8EIVn359tw/9MFwDEDoF9F+Sn/vjuS35vm0OqjXYg/Ya9CQvwl/2oym/fKv5kO+Q6og==
|
||||
|
||||
"@tiptap/extension-bubble-menu@^2.2.3":
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.2.3.tgz#e3b603324726aa2f96b2500855622ace625117df"
|
||||
integrity sha512-6ybColxLznGilzOY/yk3KcpV4JQy+QDDW6Za6zWV6OEs9D8I8VUeMAS77isMMc1dffvHfmgZpVZm/lsva8UuCw==
|
||||
dependencies:
|
||||
tippy.js "^6.3.7"
|
||||
|
||||
"@tiptap/extension-document@^2.0.3":
|
||||
version "2.1.13"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-document/-/extension-document-2.1.13.tgz#5b68fa08e8a79eebd41f1360982db2ddd28ad010"
|
||||
integrity sha512-wLwiTWsVmZTGIE5duTcHRmW4ulVxNW4nmgfpk95+mPn1iKyNGtrVhGWleLhBlTj+DWXDtcfNWZgqZkZNzhkqYQ==
|
||||
"@tiptap/extension-bullet-list@^2.2.2":
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-bullet-list/-/extension-bullet-list-2.2.3.tgz#98b82afd9a6c553278d4b613b29dbed99da063f9"
|
||||
integrity sha512-BpYg1pIfLE+2LTC90ts53deEWGSmAojhM/jJ84U19qfbfXt/7/KHrZJ4SAMxJSW3pLpy0bIq2XuOuvppOYVR5g==
|
||||
|
||||
"@tiptap/extension-floating-menu@^2.1.13":
|
||||
version "2.1.13"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-floating-menu/-/extension-floating-menu-2.1.13.tgz#e12e6e73ee095319d4a723a9b46b8f7b1a9f4b1a"
|
||||
integrity sha512-9Oz7pk1Nts2+EyY+rYfnREGbLzQ5UFazAvRhF6zAJdvyuDmAYm0Jp6s0GoTrpV0/dJEISoFaNpPdMJOb9EBNRw==
|
||||
"@tiptap/extension-code-block@^2.2.2":
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-code-block/-/extension-code-block-2.2.3.tgz#caeaad4f4ccf92963e73ddf1b90265edd94c7af3"
|
||||
integrity sha512-1xFM2Aj/JEWAT1PWjQ/7hEVmo1Av6JHxTANxMIjXUcmrMJkXDA+BQ7yItlwrrHxY0SJdxBbR/WWFn4dWIxd7iA==
|
||||
|
||||
"@tiptap/extension-code@^2.2.2":
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-code/-/extension-code-2.2.3.tgz#183847b126496f9d4d473a72b7e1d2ab2a90da68"
|
||||
integrity sha512-ZMp3CrbAV+PVOnPbGmruvlxFENLc+J/Fos8Y4mWvS1nDbrGuu19OKgKimwdzfDBpZVFVnHpEUnDTMBDzDe0hkg==
|
||||
|
||||
"@tiptap/extension-document@2.2.3":
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-document/-/extension-document-2.2.3.tgz#40e4faac7369d0fea31ea4eb57716ed7393f24b7"
|
||||
integrity sha512-60Egd9yKb5SzpQlstQAP2A/2a/Qr+A+TblMRKZugrT+NENUhAj6Tx1HxWlblqGu2MsS1iXvQLZ6BQO1jHkL2IQ==
|
||||
|
||||
"@tiptap/extension-floating-menu@^2.2.3":
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-floating-menu/-/extension-floating-menu-2.2.3.tgz#3e200f51760fd1d48cb572223dcaf54c70f244a6"
|
||||
integrity sha512-ZeQGmIFNImhu/zzn//Xzupwa82j2vIwiMoviX2zd+2DutoFnm4qRIAU6qpjzV+ZOSHAq3aBMGnYwEAY6vl4f3g==
|
||||
dependencies:
|
||||
tippy.js "^6.3.7"
|
||||
|
||||
"@tiptap/extension-hard-break@^2.0.3":
|
||||
version "2.1.13"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-hard-break/-/extension-hard-break-2.1.13.tgz#fc84d0ff7e2fe861bf421bc8000194ecc26979b0"
|
||||
integrity sha512-TGkMzMQayuKg+vN4du0x1ahEItBLcCT1jdWeRsjdM8gHfzbPLdo4PQhVsvm1I0xaZmbJZelhnVsUwRZcIu1WNA==
|
||||
"@tiptap/extension-hard-break@2.2.3":
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-hard-break/-/extension-hard-break-2.2.3.tgz#7d7b8e7bcf99be5f518a705c65ebcc1dacaaa514"
|
||||
integrity sha512-P7sP4WBEaQyiiFAswy9lKvaUWUAUwnfTSN3svTAgx0fpU3/ZeVWg+SDi5ve474Ym2oz2eRAr09mNTdWEUsL32Q==
|
||||
|
||||
"@tiptap/extension-mention@^2.0.3":
|
||||
version "2.1.13"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-mention/-/extension-mention-2.1.13.tgz#6359c563268c46539660958847fe76c22131f2c8"
|
||||
integrity sha512-OYqaucyBiCN/CmDYjpOVX74RJcIEKmAqiZxUi8Gfaq7ryEO5a8Gk93nK+8uZ0onaqHE+mHpoLFFbcAFbOPgkUQ==
|
||||
"@tiptap/extension-heading@^2.0.3":
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-heading/-/extension-heading-2.2.3.tgz#4934e3a887d8843f85706a809fd6293b2b42b2b5"
|
||||
integrity sha512-7atctuvtwPqIAdnBPOhAMsJZd41UPnWN3CktzgzfsfEoplq/86QR1hGIE4JXVB2wAZDmbnKP9Fe8PCNr7Q8JCQ==
|
||||
|
||||
"@tiptap/extension-paragraph@^2.0.3":
|
||||
version "2.1.13"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-paragraph/-/extension-paragraph-2.1.13.tgz#30f8ae3f8833c606b339f3554b9ffdbe1e604463"
|
||||
integrity sha512-cEoZBJrsQn69FPpUMePXG/ltGXtqKISgypj70PEHXt5meKDjpmMVSY4/8cXvFYEYsI9GvIwyAK0OrfAHiSoROA==
|
||||
"@tiptap/extension-highlight@^2.2.2":
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-highlight/-/extension-highlight-2.2.3.tgz#b9cf810547d2abc8b3b7567b9002397b6add3477"
|
||||
integrity sha512-3K9WbrR2WCYq7a/2JSQi5K2zzG/5ebNfTOXyDcT3kn5B5PutyWuDCzqjkPxGXmkf8yEZTQ9Sn2lQPRMG3sNwFw==
|
||||
|
||||
"@tiptap/extension-placeholder@^2.0.3":
|
||||
version "2.1.13"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-placeholder/-/extension-placeholder-2.1.13.tgz#b735591f719b9fe89c90dcc6327d2ef2851be510"
|
||||
integrity sha512-vIY7y7UbqsrAW/y8bDE9eRenbQEU16kNHB5Wri8RU1YiUZpkPgdXP/pLqyjIIq95SwP/vdTIHjHoQ77VLRl1hA==
|
||||
"@tiptap/extension-horizontal-rule@^2.2.2":
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.2.3.tgz#ff76b7627b6fea3ba5397fbfccd818f0f2e6efbd"
|
||||
integrity sha512-pc0J0hBcvj9ymJkFau1W/3L+OhB1PQzMjsx4ZWJvxURL8U7zdDqvYvJjfCA0i5Qw2ZuSVXFACGbEVr6NoCMRAw==
|
||||
|
||||
"@tiptap/extension-text@^2.0.3":
|
||||
version "2.1.13"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-text/-/extension-text-2.1.13.tgz#ac17a0220aef1bae1bbd646a91491353e57bb5d1"
|
||||
integrity sha512-zzsTTvu5U67a8WjImi6DrmpX2Q/onLSaj+LRWPh36A1Pz2WaxW5asZgaS+xWCnR+UrozlCALWa01r7uv69jq0w==
|
||||
"@tiptap/extension-italic@^2.2.2":
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-italic/-/extension-italic-2.2.3.tgz#d01e075bf0db5ac01113a19ab80cc39af39033fc"
|
||||
integrity sha512-SSsFuRnm4Y4Qnc6EuvmA4iarLCt/sg8qkqCKiNPjDUP5JR8HGESeoYVjQzprLHY8jusT9qoC26TP1Sin5vZmWQ==
|
||||
|
||||
"@tiptap/pm@^2.0.3":
|
||||
version "2.1.13"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/pm/-/pm-2.1.13.tgz#857753691580be760da13629fab2712c52750741"
|
||||
integrity sha512-zNbA7muWsHuVg12GrTgN/j119rLePPq5M8dZgkKxUwdw8VmU3eUyBp1SihPEXJ2U0MGdZhNhFX7Y74g11u66sg==
|
||||
"@tiptap/extension-link@^2.2.2":
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-link/-/extension-link-2.2.3.tgz#5c6571dffebbe328277b0abfae0deccfb20c2559"
|
||||
integrity sha512-AKKgkllpj0Po/hi2bVz719OMqyB1nBhKU/Q05yeWVirOYwF2ZwfM4iK2Iab7xWUVhvlyIG3lrWFQL8A30yuqwQ==
|
||||
dependencies:
|
||||
prosemirror-changeset "^2.2.0"
|
||||
prosemirror-collab "^1.3.0"
|
||||
prosemirror-commands "^1.3.1"
|
||||
prosemirror-dropcursor "^1.5.0"
|
||||
prosemirror-gapcursor "^1.3.1"
|
||||
prosemirror-history "^1.3.0"
|
||||
prosemirror-inputrules "^1.2.0"
|
||||
prosemirror-keymap "^1.2.0"
|
||||
prosemirror-markdown "^1.10.1"
|
||||
prosemirror-menu "^1.2.1"
|
||||
prosemirror-model "^1.18.1"
|
||||
prosemirror-schema-basic "^1.2.0"
|
||||
prosemirror-schema-list "^1.2.2"
|
||||
prosemirror-state "^1.4.1"
|
||||
prosemirror-tables "^1.3.0"
|
||||
prosemirror-trailing-node "^2.0.2"
|
||||
prosemirror-transform "^1.7.0"
|
||||
prosemirror-view "^1.28.2"
|
||||
linkifyjs "^4.1.0"
|
||||
|
||||
"@tiptap/suggestion@^2.0.3":
|
||||
version "2.1.13"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/suggestion/-/suggestion-2.1.13.tgz#0a8317260baed764a523a09099c0889a0e5b507e"
|
||||
integrity sha512-Y05TsiXTFAJ5SrfoV+21MAxig5UNbY0AVa03lQlh/yicTRPpIc6hgZzblB0uxDSYoj6+kaHE4MIZvPvhUD8BJQ==
|
||||
"@tiptap/extension-list-item@^2.2.2":
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-list-item/-/extension-list-item-2.2.3.tgz#dfdc268cc2063947dc46749464d6d91afc0842a4"
|
||||
integrity sha512-eyfk4f1jOioj+mkIN2m6XQK61MpV0fi17utt8VNx893Td8kS0g7HHuuYMwyjIRtG35ENUaAt7c216JQwnLsrAw==
|
||||
|
||||
"@tiptap/vue-2@^2.0.3":
|
||||
version "2.1.13"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/vue-2/-/vue-2-2.1.13.tgz#e84c144fa36f79c36db3cf6913aef197002bd298"
|
||||
integrity sha512-OsCINarPGyT3sDIXDrhVyaoH0I0VxeDDm+NgS5P0fPbBCnsHZ8csvxD9UB9/KZ/UoxYDfJ1zLplKQn1AIlnRzg==
|
||||
"@tiptap/extension-mention@2.2.3":
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-mention/-/extension-mention-2.2.3.tgz#3b43619b572db693a1e776d1269ceef2c9474192"
|
||||
integrity sha512-HFSZcGLUJ/31aiOsc2CnkjS5EBg6EbU+SKLQZx7/pA4/ew4uSWOPI7a03mgGmNoRfR16est55OrauEuBj8hKrQ==
|
||||
|
||||
"@tiptap/extension-ordered-list@^2.2.2":
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-ordered-list/-/extension-ordered-list-2.2.3.tgz#07588d9091076e0577f5e4873e2e65c27d69a7be"
|
||||
integrity sha512-YIWpjkHAJN74tY185ZqatlG4+KbXQOdkJpc5cKWqO89gVWLi7+4xwdeeXbTEG64/LOOWS4Q6r1/EJmDy2FCbyA==
|
||||
|
||||
"@tiptap/extension-paragraph@2.2.3":
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-paragraph/-/extension-paragraph-2.2.3.tgz#39e705198eba640a57f58276044950d3d77067ff"
|
||||
integrity sha512-4dP+Ecb2iEWW33ckFKjXRnSfEygaFUN19qzc7mUYD8e61ZA8caWL6//uL7DFIz4Q1rchyefbU52gCwTh2P42kQ==
|
||||
|
||||
"@tiptap/extension-placeholder@2.2.3":
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-placeholder/-/extension-placeholder-2.2.3.tgz#d538bff70db199433a256fb37fac8e4058a3cfc1"
|
||||
integrity sha512-Kc+9a/uACY9XBT0uB/qFVpIHm8MzVr0uWA7MCjwDcMneANRLsXEBzWBzyHxRFoNRECfocivV9hQIhuO4i09c9A==
|
||||
|
||||
"@tiptap/extension-strike@^2.2.3":
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-strike/-/extension-strike-2.2.3.tgz#9caaca60d4f717863b03a8ade71af22a1579096c"
|
||||
integrity sha512-3wwFk01ociZajRzD08hp4j/4isFUeD6BIkKPDnZeGD5HKPdTOaDciE3dJ3JaZZrRZPPdPV3yMt5hkBOapqEKzQ==
|
||||
|
||||
"@tiptap/extension-subscript@^2.2.3":
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-subscript/-/extension-subscript-2.2.3.tgz#91c994222ea8120e0a19bd870cf47c8cfdc82353"
|
||||
integrity sha512-zWN8MOfYSaGXNI5yKTk4I4hHSpCUz//NQASHD8OOKN+rt6i8RUTNynpJyCZC77RXdlvTY70Ox2vNgp/rriz+Qw==
|
||||
|
||||
"@tiptap/extension-superscript@^2.2.3":
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-superscript/-/extension-superscript-2.2.3.tgz#51cb2bde41656688ea6088e02d89d43195f6c1c6"
|
||||
integrity sha512-4V4PoXPuxCiiISFxz1StP/5azQqUmlwCECJg8ketrQ6WFfUf54lzCEjMeo9RwwdBbfpL6dhwJ8mmv6qil4j1KA==
|
||||
|
||||
"@tiptap/extension-text@2.2.3":
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-text/-/extension-text-2.2.3.tgz#3adc14b6f5956f2fb6102702beb0adbfe1f86131"
|
||||
integrity sha512-BrWGCkmuzVcsNy7dSCfJyVwedPzeNz6BR/OUNzM8Mqt2KSxfoIRy7cg16HvFB4YW+ijrM9XUqDIFvqYI0TY+Jg==
|
||||
|
||||
"@tiptap/extension-underline@^2.2.3":
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-underline/-/extension-underline-2.2.3.tgz#ce77652d6d8d0a4337460be98910e5ff239ea41b"
|
||||
integrity sha512-Y6PTaXmDFay39+Knk77T+Ezc5vuC/gFxZFD6cQhjctZHMJ2QMAguMKWtBVaSs78HBkKnwTU9EViAFBurz++Geg==
|
||||
|
||||
"@tiptap/pm@2.2.3":
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/pm/-/pm-2.2.3.tgz#88c8547015098ebd438211e839de64b043b655f3"
|
||||
integrity sha512-jYZX+0fjN+a1J8qY72Poz1LK6X6oHVQkJIq6qzcx3rm0voYZNVRzP2GIfzstncZiEqRXABHY3mWfOi2I4K9tQA==
|
||||
dependencies:
|
||||
"@tiptap/extension-bubble-menu" "^2.1.13"
|
||||
"@tiptap/extension-floating-menu" "^2.1.13"
|
||||
prosemirror-changeset "^2.2.1"
|
||||
prosemirror-collab "^1.3.1"
|
||||
prosemirror-commands "^1.5.2"
|
||||
prosemirror-dropcursor "^1.8.1"
|
||||
prosemirror-gapcursor "^1.3.2"
|
||||
prosemirror-history "^1.3.2"
|
||||
prosemirror-inputrules "^1.3.0"
|
||||
prosemirror-keymap "^1.2.2"
|
||||
prosemirror-markdown "^1.12.0"
|
||||
prosemirror-menu "^1.2.4"
|
||||
prosemirror-model "^1.19.4"
|
||||
prosemirror-schema-basic "^1.2.2"
|
||||
prosemirror-schema-list "^1.3.0"
|
||||
prosemirror-state "^1.4.3"
|
||||
prosemirror-tables "^1.3.5"
|
||||
prosemirror-trailing-node "^2.0.7"
|
||||
prosemirror-transform "^1.8.0"
|
||||
prosemirror-view "^1.32.7"
|
||||
|
||||
"@tiptap/suggestion@2.2.3":
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/suggestion/-/suggestion-2.2.3.tgz#d9286d53b0e37816628205a09035c344f6d46e7f"
|
||||
integrity sha512-pMInbk8+rYNaCz4oT/uS498mxSGIJXU32mkXv7wdDqMT2nnZQ2AHtJDUtMuB1RX+DS4ll9vdzrKqQHSW5t2ybQ==
|
||||
|
||||
"@tiptap/vue-2@2.2.3":
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@tiptap/vue-2/-/vue-2-2.2.3.tgz#a1bee805e4b3df43a22d6738ed23d412127f6b5d"
|
||||
integrity sha512-RWiqbD1UrWQMbClHO3fr7hQcKVzJaKs6MI9cWTJ9xktb3GiHqXVFm/WECgoUGo1MVliGs7v2NoSWQlh9PVcP3w==
|
||||
dependencies:
|
||||
"@tiptap/extension-bubble-menu" "^2.2.3"
|
||||
"@tiptap/extension-floating-menu" "^2.2.3"
|
||||
vue-ts-types "^1.6.0"
|
||||
|
||||
"@tootallnate/once@1":
|
||||
|
@ -4542,11 +4624,24 @@
|
|||
resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
|
||||
integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==
|
||||
|
||||
"@types/linkify-it@*":
|
||||
version "3.0.5"
|
||||
resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-3.0.5.tgz#1e78a3ac2428e6d7e6c05c1665c242023a4601d8"
|
||||
integrity sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==
|
||||
|
||||
"@types/lodash@^4.14.167":
|
||||
version "4.14.202"
|
||||
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.202.tgz#f09dbd2fb082d507178b2f2a5c7e74bd72ff98f8"
|
||||
integrity sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==
|
||||
|
||||
"@types/markdown-it@^12.2.3":
|
||||
version "12.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-12.2.3.tgz#0d6f6e5e413f8daaa26522904597be3d6cd93b51"
|
||||
integrity sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==
|
||||
dependencies:
|
||||
"@types/linkify-it" "*"
|
||||
"@types/mdurl" "*"
|
||||
|
||||
"@types/mdast@^3.0.0":
|
||||
version "3.0.15"
|
||||
resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.15.tgz#49c524a263f30ffa28b71ae282f813ed000ab9f5"
|
||||
|
@ -4554,6 +4649,11 @@
|
|||
dependencies:
|
||||
"@types/unist" "^2"
|
||||
|
||||
"@types/mdurl@*":
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-1.0.5.tgz#3e0d2db570e9fb6ccb2dc8fde0be1d79ac810d39"
|
||||
integrity sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==
|
||||
|
||||
"@types/mime@*":
|
||||
version "3.0.4"
|
||||
resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.4.tgz#2198ac274de6017b44d941e00261d5bc6a0e0a45"
|
||||
|
@ -12373,6 +12473,11 @@ linkify-it@^5.0.0:
|
|||
dependencies:
|
||||
uc.micro "^2.0.0"
|
||||
|
||||
linkifyjs@^4.1.0:
|
||||
version "4.1.3"
|
||||
resolved "https://registry.yarnpkg.com/linkifyjs/-/linkifyjs-4.1.3.tgz#0edbc346428a7390a23ea2e5939f76112c9ae07f"
|
||||
integrity sha512-auMesunaJ8yfkHvK4gfg1K0SaKX/6Wn9g2Aac/NwX+l5VdmFZzo/hdPGxEOETj+ryRa4/fiOPjeeKURSAJx1sg==
|
||||
|
||||
lit-element@^3.3.0:
|
||||
version "3.3.3"
|
||||
resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-3.3.3.tgz#10bc19702b96ef5416cf7a70177255bfb17b3209"
|
||||
|
@ -12745,6 +12850,11 @@ markdown-escapes@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535"
|
||||
integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==
|
||||
|
||||
markdown-it-task-lists@^2.1.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/markdown-it-task-lists/-/markdown-it-task-lists-2.1.1.tgz#f68f4d2ac2bad5a2c373ba93081a1a6848417088"
|
||||
integrity sha512-TxFAc76Jnhb2OUu+n3yz9RMu4CwGfaT788br6HhEDlvWfdeJcLUsxk1Hgw2yJio0OXsxv7pyIPmvECY7bMbluA==
|
||||
|
||||
markdown-it@13.0.1:
|
||||
version "13.0.1"
|
||||
resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-13.0.1.tgz#c6ecc431cacf1a5da531423fc6a42807814af430"
|
||||
|
@ -12756,6 +12866,17 @@ markdown-it@13.0.1:
|
|||
mdurl "^1.0.1"
|
||||
uc.micro "^1.0.5"
|
||||
|
||||
markdown-it@^13.0.1:
|
||||
version "13.0.2"
|
||||
resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-13.0.2.tgz#1bc22e23379a6952e5d56217fbed881e0c94d536"
|
||||
integrity sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==
|
||||
dependencies:
|
||||
argparse "^2.0.1"
|
||||
entities "~3.0.1"
|
||||
linkify-it "^4.0.1"
|
||||
mdurl "^1.0.1"
|
||||
uc.micro "^1.0.5"
|
||||
|
||||
markdown-it@^14.0.0:
|
||||
version "14.0.0"
|
||||
resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-14.0.0.tgz#b4b2ddeb0f925e88d981f84c183b59bac9e3741b"
|
||||
|
@ -13256,11 +13377,16 @@ moment-timezone@0.5.43:
|
|||
dependencies:
|
||||
moment "^2.29.4"
|
||||
|
||||
moment@2.29.4, moment@^2.29.4:
|
||||
moment@^2.29.4:
|
||||
version "2.29.4"
|
||||
resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108"
|
||||
integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==
|
||||
|
||||
moment@^2.30.1:
|
||||
version "2.30.1"
|
||||
resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae"
|
||||
integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==
|
||||
|
||||
move-concurrently@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
|
||||
|
@ -15454,21 +15580,21 @@ property-information@^5.0.0, property-information@^5.3.0:
|
|||
dependencies:
|
||||
xtend "^4.0.0"
|
||||
|
||||
prosemirror-changeset@^2.2.0:
|
||||
prosemirror-changeset@^2.2.1:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/prosemirror-changeset/-/prosemirror-changeset-2.2.1.tgz#dae94b63aec618fac7bb9061648e6e2a79988383"
|
||||
integrity sha512-J7msc6wbxB4ekDFj+n9gTW/jav/p53kdlivvuppHsrZXCaQdVgRghoZbSS3kwrRyAstRVQ4/+u5k7YfLgkkQvQ==
|
||||
dependencies:
|
||||
prosemirror-transform "^1.0.0"
|
||||
|
||||
prosemirror-collab@^1.3.0:
|
||||
prosemirror-collab@^1.3.1:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/prosemirror-collab/-/prosemirror-collab-1.3.1.tgz#0e8c91e76e009b53457eb3b3051fb68dad029a33"
|
||||
integrity sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==
|
||||
dependencies:
|
||||
prosemirror-state "^1.0.0"
|
||||
|
||||
prosemirror-commands@^1.0.0, prosemirror-commands@^1.3.1:
|
||||
prosemirror-commands@^1.0.0, prosemirror-commands@^1.5.2:
|
||||
version "1.5.2"
|
||||
resolved "https://registry.yarnpkg.com/prosemirror-commands/-/prosemirror-commands-1.5.2.tgz#e94aeea52286f658cd984270de9b4c3fff580852"
|
||||
integrity sha512-hgLcPaakxH8tu6YvVAaILV2tXYsW3rAdDR8WNkeKGcgeMVQg3/TMhPdVoh7iAmfgVjZGtcOSjKiQaoeKjzd2mQ==
|
||||
|
@ -15477,7 +15603,7 @@ prosemirror-commands@^1.0.0, prosemirror-commands@^1.3.1:
|
|||
prosemirror-state "^1.0.0"
|
||||
prosemirror-transform "^1.0.0"
|
||||
|
||||
prosemirror-dropcursor@^1.5.0:
|
||||
prosemirror-dropcursor@^1.8.1:
|
||||
version "1.8.1"
|
||||
resolved "https://registry.yarnpkg.com/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.1.tgz#49b9fb2f583e0d0f4021ff87db825faa2be2832d"
|
||||
integrity sha512-M30WJdJZLyXHi3N8vxN6Zh5O8ZBbQCz0gURTfPmTIBNQ5pxrdU7A58QkNqfa98YEjSAL1HUyyU34f6Pm5xBSGw==
|
||||
|
@ -15486,7 +15612,7 @@ prosemirror-dropcursor@^1.5.0:
|
|||
prosemirror-transform "^1.1.0"
|
||||
prosemirror-view "^1.1.0"
|
||||
|
||||
prosemirror-gapcursor@^1.3.1:
|
||||
prosemirror-gapcursor@^1.3.2:
|
||||
version "1.3.2"
|
||||
resolved "https://registry.yarnpkg.com/prosemirror-gapcursor/-/prosemirror-gapcursor-1.3.2.tgz#5fa336b83789c6199a7341c9493587e249215cb4"
|
||||
integrity sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ==
|
||||
|
@ -15496,7 +15622,7 @@ prosemirror-gapcursor@^1.3.1:
|
|||
prosemirror-state "^1.0.0"
|
||||
prosemirror-view "^1.0.0"
|
||||
|
||||
prosemirror-history@^1.0.0, prosemirror-history@^1.3.0:
|
||||
prosemirror-history@^1.0.0, prosemirror-history@^1.3.2:
|
||||
version "1.3.2"
|
||||
resolved "https://registry.yarnpkg.com/prosemirror-history/-/prosemirror-history-1.3.2.tgz#ce6ad7ab9db83e761aee716f3040d74738311b15"
|
||||
integrity sha512-/zm0XoU/N/+u7i5zepjmZAEnpvjDtzoPWW6VmKptcAnPadN/SStsBjMImdCEbb3seiNTpveziPTIrXQbHLtU1g==
|
||||
|
@ -15506,15 +15632,15 @@ prosemirror-history@^1.0.0, prosemirror-history@^1.3.0:
|
|||
prosemirror-view "^1.31.0"
|
||||
rope-sequence "^1.3.0"
|
||||
|
||||
prosemirror-inputrules@^1.2.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/prosemirror-inputrules/-/prosemirror-inputrules-1.3.0.tgz#d43ce469ffe09a1b4cbac3f0ad367b0e4b504875"
|
||||
integrity sha512-z1GRP2vhh5CihYMQYsJSa1cOwXb3SYxALXOIfAkX8nZserARtl9LiL+CEl+T+OFIsXc3mJIHKhbsmRzC0HDAXA==
|
||||
prosemirror-inputrules@^1.3.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/prosemirror-inputrules/-/prosemirror-inputrules-1.4.0.tgz#ef1519bb2cb0d1e0cec74bad1a97f1c1555068bb"
|
||||
integrity sha512-6ygpPRuTJ2lcOXs9JkefieMst63wVJBgHZGl5QOytN7oSZs3Co/BYbc3Yx9zm9H37Bxw8kVzCnDsihsVsL4yEg==
|
||||
dependencies:
|
||||
prosemirror-state "^1.0.0"
|
||||
prosemirror-transform "^1.0.0"
|
||||
|
||||
prosemirror-keymap@^1.0.0, prosemirror-keymap@^1.1.2, prosemirror-keymap@^1.2.0:
|
||||
prosemirror-keymap@^1.0.0, prosemirror-keymap@^1.1.2, prosemirror-keymap@^1.2.2:
|
||||
version "1.2.2"
|
||||
resolved "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-1.2.2.tgz#14a54763a29c7b2704f561088ccf3384d14eb77e"
|
||||
integrity sha512-EAlXoksqC6Vbocqc0GtzCruZEzYgrn+iiGnNjsJsH4mrnIGex4qbLdWWNza3AW5W36ZRrlBID0eM6bdKH4OStQ==
|
||||
|
@ -15522,7 +15648,7 @@ prosemirror-keymap@^1.0.0, prosemirror-keymap@^1.1.2, prosemirror-keymap@^1.2.0:
|
|||
prosemirror-state "^1.0.0"
|
||||
w3c-keyname "^2.2.0"
|
||||
|
||||
prosemirror-markdown@^1.10.1:
|
||||
prosemirror-markdown@^1.11.1, prosemirror-markdown@^1.12.0:
|
||||
version "1.12.0"
|
||||
resolved "https://registry.yarnpkg.com/prosemirror-markdown/-/prosemirror-markdown-1.12.0.tgz#d2de09d37897abf7adb6293d925ff132dac5b0a6"
|
||||
integrity sha512-6F5HS8Z0HDYiS2VQDZzfZP6A0s/I0gbkJy8NCzzDMtcsz3qrfqyroMMeoSjAmOhDITyon11NbXSzztfKi+frSQ==
|
||||
|
@ -15530,7 +15656,7 @@ prosemirror-markdown@^1.10.1:
|
|||
markdown-it "^14.0.0"
|
||||
prosemirror-model "^1.0.0"
|
||||
|
||||
prosemirror-menu@^1.2.1:
|
||||
prosemirror-menu@^1.2.4:
|
||||
version "1.2.4"
|
||||
resolved "https://registry.yarnpkg.com/prosemirror-menu/-/prosemirror-menu-1.2.4.tgz#3cfdc7c06d10f9fbd1bce29082c498bd11a0a79a"
|
||||
integrity sha512-S/bXlc0ODQup6aiBbWVsX/eM+xJgCTAfMq/nLqaO5ID/am4wS0tTCIkzwytmao7ypEtjj39i7YbJjAgO20mIqA==
|
||||
|
@ -15540,21 +15666,21 @@ prosemirror-menu@^1.2.1:
|
|||
prosemirror-history "^1.0.0"
|
||||
prosemirror-state "^1.0.0"
|
||||
|
||||
prosemirror-model@^1.0.0, prosemirror-model@^1.16.0, prosemirror-model@^1.18.1, prosemirror-model@^1.19.0, prosemirror-model@^1.8.1:
|
||||
prosemirror-model@^1.0.0, prosemirror-model@^1.16.0, prosemirror-model@^1.19.0, prosemirror-model@^1.19.4, prosemirror-model@^1.8.1:
|
||||
version "1.19.4"
|
||||
resolved "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.19.4.tgz#e45e84480c97dd3922095dbe579e1c98c86c0704"
|
||||
integrity sha512-RPmVXxUfOhyFdayHawjuZCxiROsm9L4FCUA6pWI+l7n2yCBsWy9VpdE1hpDHUS8Vad661YLY9AzqfjLhAKQ4iQ==
|
||||
dependencies:
|
||||
orderedmap "^2.0.0"
|
||||
|
||||
prosemirror-schema-basic@^1.2.0:
|
||||
prosemirror-schema-basic@^1.2.2:
|
||||
version "1.2.2"
|
||||
resolved "https://registry.yarnpkg.com/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.2.tgz#6695f5175e4628aab179bf62e5568628b9cfe6c7"
|
||||
integrity sha512-/dT4JFEGyO7QnNTe9UaKUhjDXbTNkiWTq/N4VpKaF79bBjSExVV2NXmJpcM7z/gD7mbqNjxbmWW5nf1iNSSGnw==
|
||||
dependencies:
|
||||
prosemirror-model "^1.19.0"
|
||||
|
||||
prosemirror-schema-list@^1.2.2:
|
||||
prosemirror-schema-list@^1.3.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/prosemirror-schema-list/-/prosemirror-schema-list-1.3.0.tgz#05374702cf35a3ba5e7ec31079e355a488d52519"
|
||||
integrity sha512-Hz/7gM4skaaYfRPNgr421CU4GSwotmEwBVvJh5ltGiffUJwm7C8GfN/Bc6DR1EKEp5pDKhODmdXXyi9uIsZl5A==
|
||||
|
@ -15563,7 +15689,7 @@ prosemirror-schema-list@^1.2.2:
|
|||
prosemirror-state "^1.0.0"
|
||||
prosemirror-transform "^1.7.3"
|
||||
|
||||
prosemirror-state@^1.0.0, prosemirror-state@^1.2.2, prosemirror-state@^1.3.1, prosemirror-state@^1.4.1:
|
||||
prosemirror-state@^1.0.0, prosemirror-state@^1.2.2, prosemirror-state@^1.3.1, prosemirror-state@^1.4.3:
|
||||
version "1.4.3"
|
||||
resolved "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.4.3.tgz#94aecf3ffd54ec37e87aa7179d13508da181a080"
|
||||
integrity sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==
|
||||
|
@ -15572,7 +15698,7 @@ prosemirror-state@^1.0.0, prosemirror-state@^1.2.2, prosemirror-state@^1.3.1, pr
|
|||
prosemirror-transform "^1.0.0"
|
||||
prosemirror-view "^1.27.0"
|
||||
|
||||
prosemirror-tables@^1.3.0:
|
||||
prosemirror-tables@^1.3.5:
|
||||
version "1.3.5"
|
||||
resolved "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-1.3.5.tgz#80f03394f5b9991f9693bcb3a90b6dba6b16254d"
|
||||
integrity sha512-JSZ2cCNlApu/ObAhdPyotrjBe2cimniniTpz60YXzbL0kZ+47nEYk2LWbfKU2lKpBkUNquta2PjteoNi4YCluQ==
|
||||
|
@ -15583,7 +15709,7 @@ prosemirror-tables@^1.3.0:
|
|||
prosemirror-transform "^1.2.1"
|
||||
prosemirror-view "^1.13.3"
|
||||
|
||||
prosemirror-trailing-node@^2.0.2:
|
||||
prosemirror-trailing-node@^2.0.7:
|
||||
version "2.0.7"
|
||||
resolved "https://registry.yarnpkg.com/prosemirror-trailing-node/-/prosemirror-trailing-node-2.0.7.tgz#ba782a7929f18bcae650b1c7082a2d10443eab19"
|
||||
integrity sha512-8zcZORYj/8WEwsGo6yVCRXFMOfBo0Ub3hCUvmoWIZYfMP26WqENU0mpEP27w7mt8buZWuGrydBewr0tOArPb1Q==
|
||||
|
@ -15592,14 +15718,14 @@ prosemirror-trailing-node@^2.0.2:
|
|||
"@remirror/core-helpers" "^3.0.0"
|
||||
escape-string-regexp "^4.0.0"
|
||||
|
||||
prosemirror-transform@^1.0.0, prosemirror-transform@^1.1.0, prosemirror-transform@^1.2.1, prosemirror-transform@^1.7.0, prosemirror-transform@^1.7.3:
|
||||
prosemirror-transform@^1.0.0, prosemirror-transform@^1.1.0, prosemirror-transform@^1.2.1, prosemirror-transform@^1.7.3, prosemirror-transform@^1.8.0:
|
||||
version "1.8.0"
|
||||
resolved "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.8.0.tgz#a47c64a3c373c1bd0ff46e95be3210c8dda0cd11"
|
||||
integrity sha512-BaSBsIMv52F1BVVMvOmp1yzD3u65uC3HTzCBQV1WDPqJRQ2LuHKcyfn0jwqodo8sR9vVzMzZyI+Dal5W9E6a9A==
|
||||
dependencies:
|
||||
prosemirror-model "^1.0.0"
|
||||
|
||||
prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.13.3, prosemirror-view@^1.27.0, prosemirror-view@^1.28.2, prosemirror-view@^1.31.0:
|
||||
prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.13.3, prosemirror-view@^1.27.0, prosemirror-view@^1.31.0:
|
||||
version "1.32.6"
|
||||
resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.32.6.tgz#8e8a366ea1ce9b59dbb7f4c6fa7aacf4af2532d7"
|
||||
integrity sha512-26r5LvyDlPgUNVf7ZdNdGrMJnylwjJtUJTfDuYOANIVx9lqWD1WCBlGg283weYQGKUC64DXR25LeAmliB9CrFQ==
|
||||
|
@ -15608,6 +15734,15 @@ prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.13.3, pros
|
|||
prosemirror-state "^1.0.0"
|
||||
prosemirror-transform "^1.1.0"
|
||||
|
||||
prosemirror-view@^1.32.7:
|
||||
version "1.33.1"
|
||||
resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.33.1.tgz#58dfd154f4fb1c9f7353bf1097c54d6afc6f57ea"
|
||||
integrity sha512-62qkYgSJIkwIMMCpuGuPzc52DiK1Iod6TWoIMxP4ja6BTD4yO8kCUL64PZ/WhH/dJ9fW0CDO39FhH1EMyhUFEg==
|
||||
dependencies:
|
||||
prosemirror-model "^1.16.0"
|
||||
prosemirror-state "^1.0.0"
|
||||
prosemirror-transform "^1.1.0"
|
||||
|
||||
proto-list@~1.2.1:
|
||||
version "1.2.4"
|
||||
resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
|
||||
|
@ -17847,6 +17982,16 @@ tippy.js@^6.3.7:
|
|||
dependencies:
|
||||
"@popperjs/core" "^2.9.0"
|
||||
|
||||
tiptap-markdown@^0.8.9:
|
||||
version "0.8.9"
|
||||
resolved "https://registry.yarnpkg.com/tiptap-markdown/-/tiptap-markdown-0.8.9.tgz#e13f3ae9a1b1649f8c28bb3cae4516a53da7492c"
|
||||
integrity sha512-TykSDcsb94VFCzPbSSTfB6Kh2HJi7x4B9J3Jm9uSOAMPy8App1YfrLW/rEJLajTxwMVhWBdOo4nidComSlLQsQ==
|
||||
dependencies:
|
||||
"@types/markdown-it" "^12.2.3"
|
||||
markdown-it "^13.0.1"
|
||||
markdown-it-task-lists "^2.1.1"
|
||||
prosemirror-markdown "^1.11.1"
|
||||
|
||||
tmp@^0.0.33:
|
||||
version "0.0.33"
|
||||
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
|
||||
|
|
Loading…
Add table
Reference in a new issue