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

feat: ordered list

parent 0453da4a
No related branches found
No related tags found
1 merge request!45Develop
......@@ -10,7 +10,8 @@ import {
ShortCutsService,
TextStyleService,
InlineAnnotationsService,
LinkService
LinkService,
ListsService
} from "wax-prosemirror-services";
export default {
......@@ -26,6 +27,7 @@ export default {
new PlaceholderService(),
new ImageService(),
new InlineAnnotationsService(),
new LinkService()
new LinkService(),
new ListsService()
]
};
......@@ -28,3 +28,4 @@ export { default as paragraphContNode } from "./src/nodes/paragraphContNode";
export { default as extractProseNode } from "./src/nodes/extractProseNode";
export { default as extractPoetryNode } from "./src/nodes/extractPoetryNode";
export { default as titleNode } from "./src/nodes/titleNode";
export { default as orderedListNode } from "./src/nodes/orderedListNode";
......@@ -355,35 +355,35 @@ const nodes = {
return [`h${node.attrs.level}`, attrs, 0];
}
},
ordered_list: {
group: "block",
content: "list_item+",
attrs: {
order: { default: 1 },
track: { default: [] }
},
parseDOM: [
{
tag: "ol",
getAttrs(dom) {
return {
order: dom.hasAttribute("start") ? +dom.getAttribute("start") : 1,
track: parseTracks(dom.dataset.track)
};
}
}
],
toDOM(node) {
const attrs = {};
if (node.attrs.order !== 1) {
attrs.start = node.attrs.order;
}
if (node.attrs.track.length) {
attrs["data-track"] = JSON.stringify(node.attrs.track);
}
return ["ol", attrs, 0];
}
},
// ordered_list: {
// group: "block",
// content: "list_item+",
// attrs: {
// order: { default: 1 },
// track: { default: [] }
// },
// parseDOM: [
// {
// tag: "ol",
// getAttrs(dom) {
// return {
// order: dom.hasAttribute("start") ? +dom.getAttribute("start") : 1,
// track: parseTracks(dom.dataset.track)
// };
// }
// }
// ],
// toDOM(node) {
// const attrs = {};
// if (node.attrs.order !== 1) {
// attrs.start = node.attrs.order;
// }
// if (node.attrs.track.length) {
// attrs["data-track"] = JSON.stringify(node.attrs.track);
// }
// return ["ol", attrs, 0];
// }
// },
bullet_list: {
group: "block",
content: "list_item+",
......
const orderedlist = {
group: "block",
content: "list_item+",
attrs: {
order: { default: 1 },
track: { default: [] }
},
parseDOM: [
{
tag: "ol",
getAttrs(hook, next) {
Object.assign(hook, {
order: hook.dom.hasAttribute("start")
? +hook.dom.getAttribute("start")
: 1,
track: parseTracks(hook.dom.dataset.track)
});
next();
}
}
],
toDOM(hook, next) {
const attrs = {};
if (hook.node.attrs.order !== 1) {
attrs.start = hook.node.attrs.order;
}
if (hook.node.attrs.track.length) {
attrs["data-track"] = JSON.stringify(hook.node.attrs.track);
}
hook.value = ["ol", attrs, 0];
next();
}
};
export default orderedlist;
......@@ -22,5 +22,6 @@ export {
export {
default as InlineAnnotationsService
} from "./src/InlineAnnotations/InlineAnnotationsService";
export { default as ListsService } from "./src/ListsService/ListsService";
export { default as Tool } from "./src/lib/Tools";
......@@ -16,6 +16,7 @@ export default class Annotation extends ToolGroup {
@inject("Underline") underline,
@inject("Blockquote") blockquote,
@inject("Image") image,
@inject("OrderedList") orderedlist,
@inject("Table") table,
@inject("TableDropDownOptions") tableDropDownOptions
) {
......@@ -33,7 +34,8 @@ export default class Annotation extends ToolGroup {
blockquote,
tableDropDownOptions,
image,
table
table,
orderedlist
];
}
......
......@@ -11,19 +11,19 @@ export default class OrderedList extends Tools {
get run() {
return (state, dispatch) => {
wrapInList(state.config.schema.nodes.ordered_list)(state, dispatch);
wrapInList(state.config.schema.nodes.orderedlist)(state, dispatch);
};
}
get enable() {
return state => {
return wrapInList(state.config.schema.nodes.ordered_list)(state);
};
}
// get enable() {
// return state => {
// return wrapInList(state.config.schema.nodes.orderedlist)(state);
// };
// }
get active() {
return state => {
return blockActive(state.config.schema.nodes.ordered_list)(state);
return blockActive(state.config.schema.nodes.orderedlist)(state);
};
}
}
import { orderedListNode } from "wax-prosemirror-schema";
import Service from "wax-prosemirror-core/src/services/Service";
import OrderedList from "./OrderedList";
console.log(orderedListNode);
class OrderedListService extends Service {
boot() {}
register() {
this.container.bind("OrderedList").to(OrderedList);
this.container
.bind("schema")
.toConstantValue({ orderedlist: orderedListNode })
.whenTargetNamed("node");
}
}
......
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