add tiptap-models
This commit is contained in:
@@ -41,6 +41,7 @@ export default {
|
|||||||
tiptap: path.resolve(rootPath, '../packages/tiptap/src'),
|
tiptap: path.resolve(rootPath, '../packages/tiptap/src'),
|
||||||
'tiptap-commands': path.resolve(rootPath, '../packages/tiptap-commands/src'),
|
'tiptap-commands': path.resolve(rootPath, '../packages/tiptap-commands/src'),
|
||||||
'tiptap-utils': path.resolve(rootPath, '../packages/tiptap-utils/src'),
|
'tiptap-utils': path.resolve(rootPath, '../packages/tiptap-utils/src'),
|
||||||
|
'tiptap-models': path.resolve(rootPath, '../packages/tiptap-models/src'),
|
||||||
},
|
},
|
||||||
modules: [
|
modules: [
|
||||||
srcPath,
|
srcPath,
|
||||||
|
|||||||
@@ -57,83 +57,110 @@ function genConfig(opts) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export default [
|
export default [
|
||||||
{
|
// {
|
||||||
input: resolve('packages/tiptap/src/index.js'),
|
// input: resolve('packages/tiptap/src/index.js'),
|
||||||
file: resolve('packages/tiptap/dist/tiptap.js'),
|
// file: resolve('packages/tiptap/dist/tiptap.js'),
|
||||||
format: 'umd',
|
// format: 'umd',
|
||||||
env: 'development',
|
// env: 'development',
|
||||||
external: ['vue'],
|
// external: ['vue'],
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
input: resolve('packages/tiptap/src/index.js'),
|
// input: resolve('packages/tiptap/src/index.js'),
|
||||||
file: resolve('packages/tiptap/dist/tiptap.min.js'),
|
// file: resolve('packages/tiptap/dist/tiptap.min.js'),
|
||||||
format: 'umd',
|
// format: 'umd',
|
||||||
env: 'production',
|
// env: 'production',
|
||||||
external: ['vue'],
|
// external: ['vue'],
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
input: resolve('packages/tiptap/src/index.js'),
|
// input: resolve('packages/tiptap/src/index.js'),
|
||||||
file: resolve('packages/tiptap/dist/tiptap.common.js'),
|
// file: resolve('packages/tiptap/dist/tiptap.common.js'),
|
||||||
format: 'cjs',
|
// format: 'cjs',
|
||||||
external: ['vue'],
|
// external: ['vue'],
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
input: resolve('packages/tiptap/src/index.js'),
|
// input: resolve('packages/tiptap/src/index.js'),
|
||||||
file: resolve('packages/tiptap/dist/tiptap.esm.js'),
|
// file: resolve('packages/tiptap/dist/tiptap.esm.js'),
|
||||||
format: 'es',
|
// format: 'es',
|
||||||
external: ['vue'],
|
// external: ['vue'],
|
||||||
},
|
// },
|
||||||
|
|
||||||
|
// {
|
||||||
|
// input: resolve('packages/tiptap-commands/src/index.js'),
|
||||||
|
// file: resolve('packages/tiptap-commands/dist/commands.js'),
|
||||||
|
// format: 'umd',
|
||||||
|
// env: 'development',
|
||||||
|
// external: [],
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// input: resolve('packages/tiptap-commands/src/index.js'),
|
||||||
|
// file: resolve('packages/tiptap-commands/dist/commands.min.js'),
|
||||||
|
// format: 'umd',
|
||||||
|
// env: 'production',
|
||||||
|
// external: [],
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// input: resolve('packages/tiptap-commands/src/index.js'),
|
||||||
|
// file: resolve('packages/tiptap-commands/dist/commands.common.js'),
|
||||||
|
// format: 'cjs',
|
||||||
|
// external: [],
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// input: resolve('packages/tiptap-commands/src/index.js'),
|
||||||
|
// file: resolve('packages/tiptap-commands/dist/commands.esm.js'),
|
||||||
|
// format: 'es',
|
||||||
|
// external: [],
|
||||||
|
// },
|
||||||
|
|
||||||
|
// {
|
||||||
|
// input: resolve('packages/tiptap-utils/src/index.js'),
|
||||||
|
// file: resolve('packages/tiptap-utils/dist/utils.js'),
|
||||||
|
// format: 'umd',
|
||||||
|
// env: 'development',
|
||||||
|
// external: [],
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// input: resolve('packages/tiptap-utils/src/index.js'),
|
||||||
|
// file: resolve('packages/tiptap-utils/dist/utils.min.js'),
|
||||||
|
// format: 'umd',
|
||||||
|
// env: 'production',
|
||||||
|
// external: [],
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// input: resolve('packages/tiptap-utils/src/index.js'),
|
||||||
|
// file: resolve('packages/tiptap-utils/dist/utils.common.js'),
|
||||||
|
// format: 'cjs',
|
||||||
|
// external: [],
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// input: resolve('packages/tiptap-utils/src/index.js'),
|
||||||
|
// file: resolve('packages/tiptap-utils/dist/utils.esm.js'),
|
||||||
|
// format: 'es',
|
||||||
|
// external: [],
|
||||||
|
// },
|
||||||
|
|
||||||
{
|
{
|
||||||
input: resolve('packages/tiptap-commands/src/index.js'),
|
input: resolve('packages/tiptap-models/src/index.js'),
|
||||||
file: resolve('packages/tiptap-commands/dist/commands.js'),
|
file: resolve('packages/tiptap-models/dist/models.js'),
|
||||||
format: 'umd',
|
format: 'umd',
|
||||||
env: 'development',
|
env: 'development',
|
||||||
external: [],
|
external: [],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
input: resolve('packages/tiptap-commands/src/index.js'),
|
input: resolve('packages/tiptap-models/src/index.js'),
|
||||||
file: resolve('packages/tiptap-commands/dist/commands.min.js'),
|
file: resolve('packages/tiptap-models/dist/models.min.js'),
|
||||||
format: 'umd',
|
format: 'umd',
|
||||||
env: 'production',
|
env: 'production',
|
||||||
external: [],
|
external: [],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
input: resolve('packages/tiptap-commands/src/index.js'),
|
input: resolve('packages/tiptap-models/src/index.js'),
|
||||||
file: resolve('packages/tiptap-commands/dist/commands.common.js'),
|
file: resolve('packages/tiptap-models/dist/models.common.js'),
|
||||||
format: 'cjs',
|
format: 'cjs',
|
||||||
external: [],
|
external: [],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
input: resolve('packages/tiptap-commands/src/index.js'),
|
input: resolve('packages/tiptap-models/src/index.js'),
|
||||||
file: resolve('packages/tiptap-commands/dist/commands.esm.js'),
|
file: resolve('packages/tiptap-models/dist/models.esm.js'),
|
||||||
format: 'es',
|
|
||||||
external: [],
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
input: resolve('packages/tiptap-utils/src/index.js'),
|
|
||||||
file: resolve('packages/tiptap-utils/dist/utils.js'),
|
|
||||||
format: 'umd',
|
|
||||||
env: 'development',
|
|
||||||
external: [],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
input: resolve('packages/tiptap-utils/src/index.js'),
|
|
||||||
file: resolve('packages/tiptap-utils/dist/utils.min.js'),
|
|
||||||
format: 'umd',
|
|
||||||
env: 'production',
|
|
||||||
external: [],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
input: resolve('packages/tiptap-utils/src/index.js'),
|
|
||||||
file: resolve('packages/tiptap-utils/dist/utils.common.js'),
|
|
||||||
format: 'cjs',
|
|
||||||
external: [],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
input: resolve('packages/tiptap-utils/src/index.js'),
|
|
||||||
file: resolve('packages/tiptap-utils/dist/utils.esm.js'),
|
|
||||||
format: 'es',
|
format: 'es',
|
||||||
external: [],
|
external: [],
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Node } from 'tiptap/utils'
|
import { Node } from 'tiptap-models'
|
||||||
|
|
||||||
export default class IframeNode extends Node {
|
export default class IframeNode extends Node {
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,6 @@
|
|||||||
"prosemirror-commands": "^1.0.7",
|
"prosemirror-commands": "^1.0.7",
|
||||||
"prosemirror-inputrules": "^1.0.1",
|
"prosemirror-inputrules": "^1.0.1",
|
||||||
"prosemirror-schema-list": "^1.0.1",
|
"prosemirror-schema-list": "^1.0.1",
|
||||||
"tiptap-utils": "^0.1.1"
|
"tiptap-utils": "^0.2.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
22
packages/tiptap-models/package.json
Normal file
22
packages/tiptap-models/package.json
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"name": "tiptap-models",
|
||||||
|
"version": "0.1.1",
|
||||||
|
"description": "Models for tiptap",
|
||||||
|
"homepage": "https://tiptap.scrumpy.io",
|
||||||
|
"license": "MIT",
|
||||||
|
"main": "dist/models.common.js",
|
||||||
|
"module": "dist/models.esm.js",
|
||||||
|
"unpkg": "dist/models.js",
|
||||||
|
"jsdelivr": "dist/models.js",
|
||||||
|
"files": [
|
||||||
|
"src",
|
||||||
|
"dist"
|
||||||
|
],
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://github.com/heyscrumpy/tiptap.git"
|
||||||
|
},
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/heyscrumpy/tiptap/issues"
|
||||||
|
}
|
||||||
|
}
|
||||||
2
packages/tiptap-models/src/index.js
Normal file
2
packages/tiptap-models/src/index.js
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
export { default as Mark } from './models/mark'
|
||||||
|
export { default as Node } from './models/node'
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "tiptap-utils",
|
"name": "tiptap-utils",
|
||||||
"version": "0.1.1",
|
"version": "0.2.0",
|
||||||
"description": "Utility functions for tiptap",
|
"description": "Utility functions for tiptap",
|
||||||
"homepage": "https://tiptap.scrumpy.io",
|
"homepage": "https://tiptap.scrumpy.io",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
|||||||
@@ -1,2 +1,3 @@
|
|||||||
|
export { default as getMarkAttrs } from './utils/getMarkAttrs'
|
||||||
export { default as markIsActive } from './utils/markIsActive'
|
export { default as markIsActive } from './utils/markIsActive'
|
||||||
export { default as nodeIsActive } from './utils/nodeIsActive'
|
export { default as nodeIsActive } from './utils/nodeIsActive'
|
||||||
|
|||||||
@@ -91,6 +91,7 @@
|
|||||||
"prosemirror-utils": "^0.6.5",
|
"prosemirror-utils": "^0.6.5",
|
||||||
"prosemirror-view": "^1.4.3",
|
"prosemirror-view": "^1.4.3",
|
||||||
"tiptap-commands": "^0.1.0",
|
"tiptap-commands": "^0.1.0",
|
||||||
"tiptap-utils": "^0.1.1"
|
"tiptap-models": "^0.1.0",
|
||||||
|
"tiptap-utils": "^0.2.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Mark } from '../utils'
|
import { Mark } from 'tiptap-models'
|
||||||
import { toggleMark } from 'tiptap-commands'
|
import { toggleMark } from 'tiptap-commands'
|
||||||
|
|
||||||
export default class BoldMark extends Mark {
|
export default class BoldMark extends Mark {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Mark } from '../utils'
|
import { Mark } from 'tiptap-models'
|
||||||
import { toggleMark } from 'tiptap-commands'
|
import { toggleMark } from 'tiptap-commands'
|
||||||
|
|
||||||
export default class CodeMark extends Mark {
|
export default class CodeMark extends Mark {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Mark } from '../utils'
|
import { Mark } from 'tiptap-models'
|
||||||
import { toggleMark } from 'tiptap-commands'
|
import { toggleMark } from 'tiptap-commands'
|
||||||
|
|
||||||
export default class ItalicMark extends Mark {
|
export default class ItalicMark extends Mark {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Mark } from '../utils'
|
import { Mark } from 'tiptap-models'
|
||||||
import { updateMark, removeMark } from 'tiptap-commands'
|
import { updateMark, removeMark } from 'tiptap-commands'
|
||||||
|
|
||||||
export default class LinkMark extends Mark {
|
export default class LinkMark extends Mark {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Node } from '../utils'
|
import { Node } from 'tiptap-models'
|
||||||
import { wrappingInputRule, setBlockType, wrapIn } from 'tiptap-commands'
|
import { wrappingInputRule, setBlockType, wrapIn } from 'tiptap-commands'
|
||||||
|
|
||||||
export default class BlockquoteNode extends Node {
|
export default class BlockquoteNode extends Node {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Node } from '../utils'
|
import { Node } from 'tiptap-models'
|
||||||
import { wrappingInputRule, wrapInList, toggleList } from 'tiptap-commands'
|
import { wrappingInputRule, wrapInList, toggleList } from 'tiptap-commands'
|
||||||
|
|
||||||
export default class BulletNode extends Node {
|
export default class BulletNode extends Node {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Node } from '../utils'
|
import { Node } from 'tiptap-models'
|
||||||
import { toggleBlockType, setBlockType, textblockTypeInputRule } from 'tiptap-commands'
|
import { toggleBlockType, setBlockType, textblockTypeInputRule } from 'tiptap-commands'
|
||||||
|
|
||||||
export default class CodeBlockNode extends Node {
|
export default class CodeBlockNode extends Node {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Node } from '../utils'
|
import { Node } from 'tiptap-models'
|
||||||
|
|
||||||
export default class DocNode extends Node {
|
export default class DocNode extends Node {
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Node } from '../utils'
|
import { Node } from 'tiptap-models'
|
||||||
import { chainCommands, exitCode } from 'tiptap-commands'
|
import { chainCommands, exitCode } from 'tiptap-commands'
|
||||||
|
|
||||||
export default class HardBreakNode extends Node {
|
export default class HardBreakNode extends Node {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Node } from '../utils'
|
import { Node } from 'tiptap-models'
|
||||||
import { setBlockType, textblockTypeInputRule, toggleBlockType } from 'tiptap-commands'
|
import { setBlockType, textblockTypeInputRule, toggleBlockType } from 'tiptap-commands'
|
||||||
|
|
||||||
export default class HeadingNode extends Node {
|
export default class HeadingNode extends Node {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Node } from '../utils'
|
import { Node } from 'tiptap-models'
|
||||||
import { splitListItem, liftListItem, sinkListItem } from 'tiptap-commands'
|
import { splitListItem, liftListItem, sinkListItem } from 'tiptap-commands'
|
||||||
|
|
||||||
export default class OrderedListNode extends Node {
|
export default class OrderedListNode extends Node {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Node } from '../utils'
|
import { Node } from 'tiptap-models'
|
||||||
import { wrappingInputRule, wrapInList, toggleList } from 'tiptap-commands'
|
import { wrappingInputRule, wrapInList, toggleList } from 'tiptap-commands'
|
||||||
|
|
||||||
export default class OrderedListNode extends Node {
|
export default class OrderedListNode extends Node {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Node } from '../utils'
|
import { Node } from 'tiptap-models'
|
||||||
import { setBlockType } from 'tiptap-commands'
|
import { setBlockType } from 'tiptap-commands'
|
||||||
|
|
||||||
export default class ParagraphNode extends Node {
|
export default class ParagraphNode extends Node {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Node } from '../utils'
|
import { Node } from 'tiptap-models'
|
||||||
|
|
||||||
export default class TextNode extends Node {
|
export default class TextNode extends Node {
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Node } from '../utils'
|
import { Node } from 'tiptap-models'
|
||||||
import { splitListItem, liftListItem } from 'tiptap-commands'
|
import { splitListItem, liftListItem } from 'tiptap-commands'
|
||||||
|
|
||||||
export default class TodoItemNode extends Node {
|
export default class TodoItemNode extends Node {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Node } from '../utils'
|
import { Node } from 'tiptap-models'
|
||||||
import { wrapInList, wrappingInputRule } from 'tiptap-commands'
|
import { wrapInList, wrappingInputRule } from 'tiptap-commands'
|
||||||
|
|
||||||
export default class BulletNode extends Node {
|
export default class BulletNode extends Node {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { markIsActive, nodeIsActive, getMarkAttrs } from '.'
|
import { markIsActive, nodeIsActive, getMarkAttrs } from 'tiptap-utils'
|
||||||
|
|
||||||
export default function ({ schema, state, commands }) {
|
export default function ({ schema, state, commands }) {
|
||||||
|
|
||||||
|
|||||||
@@ -3,10 +3,5 @@ export { default as builtInKeymap } from './builtInKeymap'
|
|||||||
export { default as ComponentView } from './ComponentView'
|
export { default as ComponentView } from './ComponentView'
|
||||||
export { default as initNodeViews } from './initNodeViews'
|
export { default as initNodeViews } from './initNodeViews'
|
||||||
export { default as isMac } from './isMac'
|
export { default as isMac } from './isMac'
|
||||||
export { default as getMarkAttrs } from './getMarkAttrs'
|
|
||||||
export { default as markIsActive } from './markIsActive'
|
|
||||||
export { default as nodeIsActive } from './nodeIsActive'
|
|
||||||
export { default as menuBubble } from './menuBubble'
|
export { default as menuBubble } from './menuBubble'
|
||||||
export { default as Node } from './node'
|
|
||||||
export { default as Mark } from './mark'
|
|
||||||
export { default as PluginManager } from './PluginManager'
|
export { default as PluginManager } from './PluginManager'
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
export default function (state, type) {
|
|
||||||
const {
|
|
||||||
from,
|
|
||||||
$from,
|
|
||||||
to,
|
|
||||||
empty,
|
|
||||||
} = state.selection
|
|
||||||
|
|
||||||
if (empty) {
|
|
||||||
return !!type.isInSet(state.storedMarks || $from.marks())
|
|
||||||
}
|
|
||||||
|
|
||||||
return !!state.doc.rangeHasMark(from, to, type)
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
import { findParentNode } from 'prosemirror-utils'
|
|
||||||
|
|
||||||
export default function (state, type, attrs) {
|
|
||||||
const predicate = node => node.type === type
|
|
||||||
const parent = findParentNode(predicate)(state.selection)
|
|
||||||
|
|
||||||
if (attrs === {} || !parent) {
|
|
||||||
return !!parent
|
|
||||||
}
|
|
||||||
|
|
||||||
return parent.node.hasMarkup(type, attrs)
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user