Skip to content
Snippets Groups Projects
Commit 7e45d943 authored by Giannis Kopanas's avatar Giannis Kopanas
Browse files

Merge branch 'wax-plugins' of https://gitlab.coko.foundation/wax/wax-prosemirror into wax-plugins

parents 1c7cb4bf c801c249
No related branches found
No related tags found
1 merge request!45Develop
Showing
with 271 additions and 121 deletions
......@@ -10,7 +10,7 @@ export default {
MenuService: [
{
templateArea: "topBar",
toolGroups: ["Annotation", { name: "RedoUndo", exclude: ["Redo"] }]
toolGroups: ["Base", "Annotations", "Lists", "Images", "Tables"]
},
{
templateArea: "leftSideBar",
......
import LayoutService from "../services/LayoutService/LayoutService";
import {
AnnotationService,
ImageService,
MenuService,
SchemaService,
RedoUndoService,
PlaceholderService,
MenuService,
RulesService,
ShortCutsService,
/*TODO MOVE FROM DEFAULT CONFIG*/
AnnotationToolGroupService,
ImageService,
PlaceholderService,
TextStyleService,
InlineAnnotationsService,
LinkService,
OverlayService
ListsService,
ListToolGroupService,
TablesService,
TableToolGroupService,
BaseService,
BaseToolGroupService,
ImageToolGroupService
} from "wax-prosemirror-services";
export default {
......@@ -21,13 +28,19 @@ export default {
new ShortCutsService(),
new LayoutService(),
new MenuService(),
new RedoUndoService(),
new AnnotationService(),
new AnnotationToolGroupService(),
new ListToolGroupService(),
new TextStyleService(),
new PlaceholderService(),
new ImageService(),
new InlineAnnotationsService(),
new LinkService()
// new OverlayService()
new LinkService(),
new ListsService(),
new TableToolGroupService(),
new TablesService(),
new BaseService(),
new BaseToolGroupService(),
new ImageToolGroupService()
]
};
......@@ -28,3 +28,6 @@ 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";
export { default as bulletListNode } from "./src/nodes/bulletListNode";
export { default as listItemNode } from "./src/nodes/listItemNode";
import { tableNodes, columnResizing, tableEditing } from "prosemirror-tables";
import { tableNodes } from "prosemirror-tables";
import { parseFormatList, parseTracks, blockLevelToDOM } from "./helpers";
const pDOM = ["p", 0],
brDOM = ["br"],
......@@ -55,36 +55,6 @@ const nodes = {
return ["img", { src, alt, title }];
}
},
paragraph: {
group: "block",
content: "inline*",
attrs: {
class: { default: "paragraph" },
track: { default: [] }
},
parseDOM: [
{
tag: "p[data-track]",
getAttrs(dom) {
return {
track: parseTracks(dom.dataset.track)
};
}
},
{
tag: "p.paragraph",
getAttrs(dom) {
return {
class: dom.getAttribute("class")
};
}
}
],
toDOM(node) {
const attrs = blockLevelToDOM(node);
return ["p", attrs, 0];
}
},
author: {
content: "inline*",
group: "block",
......@@ -355,83 +325,6 @@ 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];
}
},
bullet_list: {
group: "block",
content: "list_item+",
attrs: {
track: { default: [] }
},
parseDOM: [
{
tag: "ul",
getAttrs(dom) {
return {
track: parseTracks(dom.dataset.track)
};
}
}
],
toDOM(node) {
const attrs = {};
if (node.attrs.track.length) {
attrs["data-track"] = JSON.stringify(node.attrs.track);
}
return ["ul", attrs, 0];
}
},
list_item: {
content: "block+",
attrs: {
track: { default: [] }
},
parseDOM: [
{
tag: "li",
getAttrs(dom) {
return {
track: parseTracks(dom.dataset.track)
};
}
}
],
toDOM(node) {
const attrs = {};
if (node.attrs.track.length) {
attrs["data-track"] = JSON.stringify(node.attrs.track);
}
return ["li", attrs, 0];
},
defining: true
},
blockquote: {
content: "block+",
group: "block",
......
const bulletlist = {
group: "block",
content: "list_item+",
attrs: {
track: { default: [] }
},
parseDOM: [
{
tag: "ul",
getAttrs(hook, next) {
Object.assign(hook, {
track: parseTracks(hook.dom.dataset.track)
});
next();
}
}
],
toDOM(hook, next) {
const attrs = {};
if (hook.node.attrs.track.length) {
attrs["data-track"] = JSON.stringify(hook.node.attrs.track);
}
hook.value = ["ul", attrs, 0];
next();
}
};
export default bulletlist;
const list_item = {
content: "block+",
attrs: {
track: { default: [] }
},
parseDOM: [
{
tag: "li",
getAttrs(hook, next) {
Object.assign(hook, {
track: parseTracks(hook.dom.dataset.track)
});
next();
}
}
],
toDOM(hook, next) {
const attrs = {};
if (hook.node.attrs.track.length) {
attrs["data-track"] = JSON.stringify(hook.node.attrs.track);
}
hook.value = ["li", attrs, 0];
next();
},
defining: true
};
export default 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;
export { default as LinkService } from "./src/LinkService/LinkService";
export { default as MenuService } from "./src/MenuService/MenuService";
export { default as RedoUndoService } from "./src/RedoUndoService/RedoUndoService";
export { default as AnnotationService } from "./src/AnnotationService/AnnotationService";
export { default as PlaceholderService } from "./src/PlaceholderService/PlaceholderService";
export { default as LinkService } from "./src/LinkService/LinkService";
export { default as TextStyleService } from "./src/TextStyleService/TextStyleService";
export { default as PlaceholderService } from "./src/PlaceholderService/PlaceholderService";
export { default as ImageService } from "./src/ImageService/ImageService";
......@@ -9,7 +11,27 @@ export { default as RulesService } from "./src/RulesService/RulesService";
export { default as SchemaService } from "./src/SchemaService/SchemaService";
export { default as ShortCutsService } from "./src/ShortCutsService/ShortCutsService";
export { default as InlineAnnotationsService } from "./src/InlineAnnotations/InlineAnnotationsService";
export { default as OverlayService } from "./src/OverlayService/OverlayService";
export { default as Tool } from "./src/lib/Tools";
/*
All Elements services
*/
export { default as BaseService } from "./src/BaseService/BaseService";
export { default as InlineAnnotationsService } from "./src/InlineAnnotations/InlineAnnotationsService";
export { default as ListsService } from "./src/ListsService/ListsService";
export { default as TablesService } from "./src/TablesService/TablesService";
export { default as TextBlockLevelService } from "./src/TextBlockLevel/TextBlockLevelService";
export { default as DisplayBlockLevelService } from "./src/DisplayBlockLevel/DisplayBlockLevelService";
/*
ToolGroups
*/
export { default as BaseToolGroupService } from "./src/WaxToolGroups/BaseToolGroupService/BaseToolGroupService";
export { default as AnnotationToolGroupService } from "./src/WaxToolGroups/AnnotationToolGroupService/AnnotationToolGroupService";
export { default as ListToolGroupService } from "./src/WaxToolGroups/ListToolGroupService/ListToolGroupService";
export { default as ImageToolGroupService } from "./src/WaxToolGroups/ImageToolGroupService/ImageToolGroupService";
export { default as TableToolGroupService } from "./src/WaxToolGroups/TableToolGroupService/TableToolGroupService";
import BaseServices from "./index";
import Service from "wax-prosemirror-core/src/services/Service";
class BaseService extends Service {
register() {
this.config.pushToArray("services", BaseServices);
}
}
export default BaseService;
import { redo } from "prosemirror-history";
import Tools from "../lib/Tools";
import Tools from "../../lib/Tools";
import { injectable } from "inversify";
import { icons } from "wax-prosemirror-components";
......
import RedoUndo from "./RedoUndo";
import Service from "wax-prosemirror-core/src/services/Service";
import Redo from "./Redo";
import Undo from "./Undo";
export default class RedoService extends Service {
name = "RedoService";
class RedoService extends Service {
boot() {}
register() {
this.container.bind("RedoUndo").to(RedoUndo);
this.container.bind("Redo").to(Redo);
this.container.bind("Undo").to(Undo);
}
}
export default RedoService;
import Tools from "../../lib/Tools";
import { injectable } from "inversify";
import { icons } from "wax-prosemirror-components";
@injectable()
export default class Save extends Tools {
title = "Save changes";
content = icons.save;
get run() {}
get enable() {}
}
import Service from "wax-prosemirror-core/src/services/Service";
import Save from "./Save";
class SaveService extends Service {
boot() {}
register() {
this.container.bind("Save").to(Save);
}
}
export default SaveService;
import { undo } from "prosemirror-history";
import Tools from "../lib/Tools";
import Tools from "../../lib/Tools";
import { injectable } from "inversify";
import { icons } from "wax-prosemirror-components";
......
import Service from "wax-prosemirror-core/src/services/Service";
import Undo from "./Undo";
class UndoService extends Service {
boot() {}
register() {
this.container.bind("Undo").to(Undo);
}
}
export default UndoService;
import UndoService from "./UndoService/UndoService";
import RedoService from "./RedoService/RedoService";
import SaveService from "./SaveService/SaveService";
export default [new UndoService(), new RedoService()];
import Tools from "../../lib/Tools";
import { injectable } from "inversify";
import { setBlockType } from "prosemirror-commands";
@injectable()
export default class Author extends Tools {
title = "Change to Author";
content = "Author";
get run() {
return (state, dispatch) => {
setBlockType(state.config.schema.nodes.author)(state, dispatch);
};
}
get enable() {
return state => {
return setBlockType(state.config.schema.nodes.author)(state);
};
}
}
import Service from "wax-prosemirror-core/src/services/Service";
import Author from "./Author";
class AuthorService extends Service {
boot() {}
register() {
this.container.bind("Author").to(Author);
}
}
export default AuthorService;
import DisplayServices from "./index";
import Service from "wax-prosemirror-core/src/services/Service";
class DisplayBlockLevelService extends Service {
register() {
this.config.pushToArray("services", DisplayServices);
}
}
export default DisplayBlockLevelService;
import Tools from "../../lib/Tools";
import { injectable } from "inversify";
import { setBlockType } from "prosemirror-commands";
@injectable()
export default class EpigraphPoetry extends Tools {
title = "Change to Epigraph Poetry";
content = "Epigraph Poetry";
get run() {
return (state, dispatch) => {
setBlockType(state.config.schema.nodes.epigraphPoetry)(state, dispatch);
};
}
get enable() {
return state => {
return setBlockType(state.config.schema.nodes.epigraphPoetry)(state);
};
}
}
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