aboutsummaryrefslogtreecommitdiff
path: root/src/client/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/util')
-rw-r--r--src/client/util/RichTextSchema.tsx91
-rw-r--r--src/client/util/TooltipTextMenu.tsx68
2 files changed, 19 insertions, 140 deletions
diff --git a/src/client/util/RichTextSchema.tsx b/src/client/util/RichTextSchema.tsx
index 733c50d20..6d2abfaa2 100644
--- a/src/client/util/RichTextSchema.tsx
+++ b/src/client/util/RichTextSchema.tsx
@@ -1,12 +1,6 @@
-import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
-import { Schema, NodeSpec, MarkSpec, DOMOutputSpecArray, NodeType, Slice, Mark, Node } from "prosemirror-model";
-import { joinUp, lift, setBlockType, toggleMark, wrapIn, selectNodeForward, deleteSelection } from 'prosemirror-commands';
-import { redo, undo } from 'prosemirror-history';
-import { orderedList, bulletList, listItem, } from 'prosemirror-schema-list';
-import { EditorState, Transaction, NodeSelection, TextSelection, Selection, } from "prosemirror-state";
-import { EditorView, } from "prosemirror-view";
-import { View } from '@react-pdf/renderer';
-import { TooltipTextMenu } from './TooltipTextMenu';
+import { DOMOutputSpecArray, MarkSpec, Node, NodeSpec, Schema, Slice } from "prosemirror-model";
+import { bulletList, listItem, orderedList } from 'prosemirror-schema-list';
+import { TextSelection } from "prosemirror-state";
const pDOM: DOMOutputSpecArray = ["p", 0], blockquoteDOM: DOMOutputSpecArray = ["blockquote", 0], hrDOM: DOMOutputSpecArray = ["hr"],
preDOM: DOMOutputSpecArray = ["pre", ["code", 0]], brDOM: DOMOutputSpecArray = ["br"], ulDOM: DOMOutputSpecArray = ["ul", 0];
@@ -112,18 +106,6 @@ export const nodes: { [index: string]: NodeSpec } = {
// }]
},
- checkbox: {
- inline: true,
- attrs: {
- visibility: { default: false }
- },
- group: "inline",
- toDOM(node) {
- const attrs = { style: `width: 40px` };
- return ["span", { ...node.attrs, ...attrs }];
- },
- },
-
// :: NodeSpec An inline image (`<img>`) node. Supports `src`,
// `alt`, and `href` attributes. The latter two default to the empty
// string.
@@ -203,19 +185,6 @@ export const nodes: { [index: string]: NodeSpec } = {
// toDOM() { return ulDOM }
},
- checkbox_list: {
- content: 'checklist_item+',
- marks: '_',
- group: 'block',
- // inline: true,
- parseDOM: [
- { tag: "ul" }
- ],
- toDOM() {
- return ["ul", { style: 'list-style: none' }, 0];
- },
- },
-
//bullet_list: {
// content: 'list_item+',
// group: 'block',
@@ -229,17 +198,6 @@ export const nodes: { [index: string]: NodeSpec } = {
content: 'paragraph block*'
},
- checklist_item: {
- content: 'paragraph block*',
- parseDOM: [{ tag: "li" }],
- // toDOM() {
- // return ["li", { style: 'content: checkbox' }, 0];
- // },
- toDOM() {
- return ["li", 0];
- },
- defining: true
- }
};
const emDOM: DOMOutputSpecArray = ["em", 0];
@@ -562,49 +520,6 @@ export class ImageResizeView {
}
}
-export class CheckboxView {
- _view: any;
- _collapsed: HTMLElement;
-
- constructor(node: any, view: any, getPos: any) {
- this._collapsed = document.createElement("span");
- this._collapsed.textContent = node.attrs.visibility ? "⬛" : "⬜";
- this._collapsed.style.position = "relative";
- // this._collapsed.style.width = "80px";
- this._collapsed.style.height = "20px";
- let self = this;
- this._view = view;
- const js = node.toJSON;
- node.toJSON = function () {
-
- return js.apply(this, arguments);
- };
- this._collapsed.onpointerdown = function (e: any) {
- console.log(node.attrs.visibility)
- if (node.attrs.visibility) {
- let y = getPos();
- const attrs = { ...node.attrs };
- attrs.visibility = !attrs.visibility;
- view.dispatch(view.state.tr.setNodeMarkup(y, undefined, attrs));
- self._collapsed.textContent = "⬜";
- } else {
- let y = getPos();
- const attrs = { ...node.attrs };
- attrs.visibility = !attrs.visibility;
- console.log(attrs.visibility)
- view.dispatch(view.state.tr.setNodeMarkup(y, undefined, attrs));
- self._collapsed.textContent = "⬛";
- }
- e.preventDefault();
- e.stopPropagation();
- console.log(node.attrs.visibility)
-
- };
- (this as any).dom = this._collapsed;
- }
-
-}
-
export class SummarizedView {
// TODO: highlight text that is summarized. to find end of region, walk along mark
_collapsed: HTMLElement;
diff --git a/src/client/util/TooltipTextMenu.tsx b/src/client/util/TooltipTextMenu.tsx
index 46961e416..4672dd246 100644
--- a/src/client/util/TooltipTextMenu.tsx
+++ b/src/client/util/TooltipTextMenu.tsx
@@ -1,32 +1,25 @@
-import { action, observable, observe } from "mobx";
-import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
-import { faTag, faPlus, faCloudUploadAlt } from '@fortawesome/free-solid-svg-icons';
-import { Dropdown, MenuItem, icons, } from "prosemirror-menu"; //no import css
-import { EditorState, NodeSelection, TextSelection, Transaction } from "prosemirror-state";
-import { EditorView } from "prosemirror-view";
-import { schema } from "./RichTextSchema";
-import { Schema, NodeType, MarkType, Mark, ResolvedPos } from "prosemirror-model";
-import { Node as ProsNode } from "prosemirror-model";
-import "./TooltipTextMenu.scss";
-const { toggleMark, setBlockType } = require("prosemirror-commands");
import { library } from '@fortawesome/fontawesome-svg-core';
-import { wrapInList, liftListItem, bulletList, } from 'prosemirror-schema-list';
import { faListUl } from '@fortawesome/free-solid-svg-icons';
-import { FieldViewProps } from "../views/nodes/FieldView";
-const { openPrompt, TextField } = require("./ProsemirrorCopy/prompt.js");
-import { DragManager } from "./DragManager";
-import { Doc, Opt, Field } from "../../new_fields/Doc";
+import { action, observable } from "mobx";
+import { Dropdown, icons, MenuItem } from "prosemirror-menu"; //no import css
+import { Mark, MarkType, Node as ProsNode, NodeType, ResolvedPos, Schema } from "prosemirror-model";
+import { liftListItem, wrapInList } from 'prosemirror-schema-list';
+import { EditorState, NodeSelection, TextSelection } from "prosemirror-state";
+import { EditorView } from "prosemirror-view";
+import { Doc, Field, Opt } from "../../new_fields/Doc";
+import { Id } from "../../new_fields/FieldSymbols";
+import { Utils } from "../../Utils";
import { DocServer } from "../DocServer";
import { CollectionDockingView } from "../views/collections/CollectionDockingView";
+import { FieldViewProps } from "../views/nodes/FieldView";
+import { FormattedTextBoxProps } from "../views/nodes/FormattedTextBox";
import { DocumentManager } from "./DocumentManager";
-import { Id } from "../../new_fields/FieldSymbols";
-import { FormattedTextBoxProps, FormattedTextBox } from "../views/nodes/FormattedTextBox";
-import { typeAlias } from "babel-types";
-import React, { Children } from "react";
-import ReactDOM from "react-dom";
-import { Utils } from "../../Utils";
+import { DragManager } from "./DragManager";
import { LinkManager } from "./LinkManager";
-import { bool } from "prop-types";
+import { schema } from "./RichTextSchema";
+import "./TooltipTextMenu.scss";
+const { toggleMark, setBlockType } = require("prosemirror-commands");
+const { openPrompt, TextField } = require("./ProsemirrorCopy/prompt.js");
//appears above a selection of text in a RichTextBox to give user options such as Bold, Italics, etc.
export class TooltipTextMenu {
@@ -189,7 +182,6 @@ export class TooltipTextMenu {
this.tooltip.appendChild(this._brushdom);
this.tooltip.appendChild(this.createLink().render(this.view).dom);
this.tooltip.appendChild(this.createStar().render(this.view).dom);
- this.tooltip.appendChild(this.createCheckbox().render(this.view).dom);
this.updateListItemDropdown(":", this.listTypeBtnDom);
@@ -441,14 +433,6 @@ export class TooltipTextMenu {
return true;
}
- public static insertCheckbox(state: EditorState<any>, dispatch: any) {
- let newNode = schema.nodes.checkbox.create({ visibility: false });
- if (dispatch) {
- dispatch(state.tr.replaceSelectionWith(newNode));
- }
- return true;
- }
-
//will display a remove-list-type button if selection is in list, otherwise will show list type dropdown
updateListItemDropdown(label: string, listTypeBtn: any) {
//remove old btn
@@ -461,7 +445,6 @@ export class TooltipTextMenu {
});
//option to remove the list formatting
toAdd.push(this.dropdownNodeBtn("X", "color: black; width: 40px;", undefined, this.view, this.listTypes, this.changeToNodeType));
- toAdd.push(this.dropdownNodeBtn("⬜", "color:black; width:40px;", schema.nodes.checkbox_list, this.view, this.listTypes, this.changeToNodeType))
listTypeBtn = (new Dropdown(toAdd, {
label: label,
@@ -525,11 +508,6 @@ export class TooltipTextMenu {
liftListItem(schema.nodes.list_item)(view.state, view.dispatch);
if (nodeType) { //add new
wrapInList(nodeType)(view.state, view.dispatch);
- // console.log(nodeType === schema.nodes.checkbox_list)
- // if (nodeType === schema.nodes.checkbox_list) {
- // TooltipTextMenu.insertCheckbox(view.state, view.dispatch)
- // }
-
}
}
@@ -564,20 +542,6 @@ export class TooltipTextMenu {
});
}
- createCheckbox() {
- return new MenuItem({
- title: "Checkbox",
- label: "Checkbox",
- icon: icons.code,
- css: "color:white",
- class: "checkbox",
- execEvent: "",
- run: (state, dispatch) => {
- TooltipTextMenu.insertCheckbox(state, dispatch);
- }
- })
- }
-
deleteLinkItem() {
const icon = {
height: 16, width: 16,