add tiptap-models

This commit is contained in:
Philipp Kühn
2018-08-23 11:13:59 +02:00
parent 0552faa68a
commit 9fafc6b00f
32 changed files with 136 additions and 113 deletions

View File

@@ -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,

View File

@@ -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: [],
}, },

View File

@@ -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 {

View File

@@ -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"
} }
} }

View 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"
}
}

View File

@@ -0,0 +1,2 @@
export { default as Mark } from './models/mark'
export { default as Node } from './models/node'

View File

@@ -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",

View File

@@ -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'

View File

@@ -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"
} }
} }

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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 }) {

View File

@@ -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'

View File

@@ -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)
}

View File

@@ -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)
}