disable everything

This commit is contained in:
Philipp Kühn
2020-09-08 23:49:58 +02:00
parent 26ecc20a50
commit bbccfa43e8
2 changed files with 73 additions and 64 deletions

View File

@@ -11,9 +11,6 @@ import getMarkAttrs from './utils/getMarkAttrs'
import removeElement from './utils/removeElement'
import getSchemaTypeByName from './utils/getSchemaTypeByName'
import ExtensionManager from './ExtensionManager'
import Extension from './Extension'
import Node from './Node'
import Mark from './Mark'
import EventEmitter from './EventEmitter'
import ComponentRenderer from './ComponentRenderer'
import defaultPlugins from './plugins'
@@ -30,7 +27,7 @@ type EditorContent = string | JSON | null
interface EditorOptions {
element: Element,
content: EditorContent,
extensions: (Extension | Node | Mark)[],
extensions: Function[],
injectCSS: boolean,
autoFocus: 'start' | 'end' | number | boolean | null,
editable: boolean,

View File

@@ -10,7 +10,8 @@ import Node from './Node'
import Mark from './Mark'
import capitalize from './utils/capitalize'
type Extensions = (Extension | Node | Mark)[]
// type Extensions = (Extension | Node | Mark)[]
type Extensions = Function[]
export default class ExtensionManager {
@@ -21,11 +22,12 @@ export default class ExtensionManager {
this.editor = editor
this.extensions = extensions
this.extensions.forEach(extension => {
extension.bindEditor(editor)
editor.on('schemaCreated', () => {
this.editor.registerCommands(extension.commands())
extension.created()
})
console.log({extension})
// extension.bindEditor(editor)
// editor.on('schemaCreated', () => {
// this.editor.registerCommands(extension.commands())
// extension.created()
// })
})
}
@@ -38,82 +40,92 @@ export default class ExtensionManager {
}
get nodes(): any {
return collect(this.extensions)
.where('extensionType', 'node')
.mapWithKeys((extension: Node) => [extension.name, extension.schema()])
.all()
// return collect(this.extensions)
// .where('extensionType', 'node')
// .mapWithKeys((extension: Node) => [extension.name, extension.schema()])
// .all()
return []
}
get marks(): any {
return collect(this.extensions)
.where('extensionType', 'mark')
.mapWithKeys((extension: Mark) => [extension.name, extension.schema()])
.all()
// return collect(this.extensions)
// .where('extensionType', 'mark')
// .mapWithKeys((extension: Mark) => [extension.name, extension.schema()])
// .all()
return []
}
get plugins(): Plugin[] {
const plugins = collect(this.extensions)
.flatMap(extension => extension.plugins())
.toArray()
// const plugins = collect(this.extensions)
// .flatMap(extension => extension.plugins())
// .toArray()
return [
...plugins,
...this.keymaps,
...this.pasteRules,
inputRules({ rules: this.inputRules }),
]
// return [
// ...plugins,
// ...this.keymaps,
// ...this.pasteRules,
// inputRules({ rules: this.inputRules }),
// ]
return []
}
get inputRules(): any {
return collect(this.extensions)
.flatMap(extension => extension.inputRules())
.toArray()
}
// return collect(this.extensions)
// .flatMap(extension => extension.inputRules())
// .toArray()
get pasteRules(): any {
return collect(this.extensions)
.flatMap(extension => extension.pasteRules())
.toArray()
}
get keymaps() {
return collect(this.extensions)
.map(extension => extension.keys())
.filter(keys => !!Object.keys(keys).length)
// @ts-ignore
.map(keys => keymap(keys))
.toArray()
}
get nodeViews() {
const { renderer: Renderer } = this.editor
if (!Renderer || !Renderer.type) {
return {}
}
const prop = `to${capitalize(Renderer.type)}`
return collect(this.extensions)
.where('extensionType', 'node')
.filter((extension: any) => extension.schema()[prop])
.map((extension: any) => {
return (
node: ProsemirrorNode,
view: EditorView,
getPos: (() => number) | boolean,
decorations: Decoration[],
) => {
return new Renderer(extension.schema()[prop], {
extension,
editor: this.editor,
node,
getPos,
decorations,
})
get pasteRules(): any {
// return collect(this.extensions)
// .flatMap(extension => extension.pasteRules())
// .toArray()
return {}
}
})
.all()
get keymaps() {
// return collect(this.extensions)
// .map(extension => extension.keys())
// .filter(keys => !!Object.keys(keys).length)
// // @ts-ignore
// .map(keys => keymap(keys))
// .toArray()
return []
}
get nodeViews() {
// const { renderer: Renderer } = this.editor
// if (!Renderer || !Renderer.type) {
// return {}
// }
// const prop = `to${capitalize(Renderer.type)}`
// return collect(this.extensions)
// .where('extensionType', 'node')
// .filter((extension: any) => extension.schema()[prop])
// .map((extension: any) => {
// return (
// node: ProsemirrorNode,
// view: EditorView,
// getPos: (() => number) | boolean,
// decorations: Decoration[],
// ) => {
// return new Renderer(extension.schema()[prop], {
// extension,
// editor: this.editor,
// node,
// getPos,
// decorations,
// })
// }
// })
// .all()
return {}
}
}