Skip to content
Snippets Groups Projects
Commit 3c03b952 authored by chris's avatar chris
Browse files

add authorTrackNode

parent d6b1afb4
No related branches found
No related tags found
1 merge request!45Develop
Showing
with 51 additions and 22 deletions
......@@ -39,3 +39,4 @@ export { default as blockQuoteNode } from "./src/nodes/blockQuoteNode";
/*
LIST OF TRACK CHANGES NODES
*/
export { default as trackChangesNodes } from "./src/nodes/trackChangesNodes";
import { parseTracks, blockLevelToDOM } from "./helpers";
const author = {
content: "inline*",
group: "block",
priority: 0,
defining: true,
attrs: {
class: { default: "author" },
track: { default: [] }
class: { default: "author" }
},
parseDOM: [
{
tag: "p.author",
getAttrs(hook, next) {
Object.assign(hook, {
class: hook.dom.getAttribute("class"),
track: parseTracks(hook.dom.dataset.track)
class: hook.dom.getAttribute("class")
});
next();
}
}
],
toDOM(hook, next) {
const attrs = blockLevelToDOM(hook.node);
const attrs = { class: hook.node.attrs.class };
hook.value = ["p", attrs, 0];
next();
}
......
import { parseTracks } from "../helpers";
const author = {
content: "inline*",
group: "block",
priority: 0,
defining: true,
attrs: {
track: { default: [] }
},
parseDOM: [
{
tag: "p.author",
getAttrs(hook, next) {
Object.assign(hook, {
track: parseTracks(hook.dom.dataset.track)
});
next();
}
}
],
toDOM(hook, next) {
Object.assign(hook.value[1], {
"data-track": JSON.stringify(hook.node.attrs.track)
});
next();
}
};
export default author;
import authorTrackNode from "./authorTrackNode";
export default {
author: authorTrackNode
};
const blockLevelToDOM = node => {
const attrs = node.attrs.track.length
? {
class: node.attrs.class,
"data-track": JSON.stringify(node.attrs.track)
}
: { class: node.attrs.class };
return attrs;
};
export default {
nodes: {
doc: {
......@@ -29,8 +19,7 @@ export default {
group: "block",
content: "inline*",
attrs: {
class: { default: "paragraph" },
track: { default: [] }
class: { default: "paragraph" }
},
parseDOM: [
{
......@@ -43,7 +32,7 @@ export default {
}
],
toDOM(node) {
const attrs = blockLevelToDOM(node);
const attrs = { class: node.attrs.class };
return ["p", attrs, 0];
}
}
......
import Service from "wax-prosemirror-core/src/services/Service";
import { trackChangesMarks } from "wax-prosemirror-schema";
import { trackChangesMarks, trackChangesNodes } from "wax-prosemirror-schema";
class TrackChangeService extends Service {
boot() {}
register() {
const createMark = this.container.get("CreateMark");
const createNode = this.container.get("CreateNode");
Object.keys(trackChangesMarks).forEach(mark => {
createMark({
[mark]: trackChangesMarks[mark]
});
});
Object.keys(trackChangesNodes).forEach(node => {
createNode(
{
[node]: trackChangesNodes[node]
},
{ toWaxSchema: true }
);
});
}
}
......
import Service from "wax-prosemirror-core/src/services/Service";
import Annotations from "./Annotations";
import * as Tools from "./tools";
class AnnotationToolGroupService extends Service {
name = "AnnotationToolGroupService";
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment