From e6194c15f3c4e7a9f18079a53eceb82c6c172540 Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Sat, 22 Oct 2022 22:28:21 +0300 Subject: [PATCH] nodes in progress --- wax-prosemirror-schema/index.js | 12 +------- .../src/nodes/headingNode.js | 30 ------------------- .../src/nodes/paragraphContNode.js | 27 ----------------- .../AuthorService/schema}/authorNode.js | 4 +-- .../EpigraphPoetryService.js | 2 +- .../schema}/epigraphPoetryNode.js | 4 +-- .../EpigraphProseService.js | 2 +- .../schema}/epigraphProseNode.js | 4 +-- .../SubTitleService/SubTitleService.js | 2 +- .../SubTitleService/schema}/subTitleNode.js | 4 +-- .../TitleService/TitleService.js | 2 +- .../TitleService/schema}/titleNode.js | 4 +-- .../components/MatchingContainerComponent.js | 16 +++++++++- .../BlockQuoteService/BlockQuoteService.js | 2 +- .../schema}/blockQuoteNode.js | 4 +-- .../ExtractPoetryService.js | 2 +- .../schema/extractPoetryNode.js | 27 +++++++++++++++++ .../ExtractProseService.js | 2 +- .../schema}/extractProseNode.js | 4 +-- .../ParagraphContinuedService.js | 2 +- .../schema/paragraphContNode.js | 27 +++++++++++++++++ .../SourceNoteService/SourceNoteService.js | 2 +- .../schema}/sourceNoteNode.js | 4 +-- 23 files changed, 95 insertions(+), 94 deletions(-) delete mode 100644 wax-prosemirror-schema/src/nodes/headingNode.js delete mode 100644 wax-prosemirror-schema/src/nodes/paragraphContNode.js rename {wax-prosemirror-schema/src/nodes => wax-prosemirror-services/src/DisplayBlockLevel/AuthorService/schema}/authorNode.js (90%) rename {wax-prosemirror-schema/src/nodes => wax-prosemirror-services/src/DisplayBlockLevel/EpigraphPoetryService/schema}/epigraphPoetryNode.js (88%) rename {wax-prosemirror-schema/src/nodes => wax-prosemirror-services/src/DisplayBlockLevel/EpigraphProseService/schema}/epigraphProseNode.js (88%) rename {wax-prosemirror-schema/src/nodes => wax-prosemirror-services/src/DisplayBlockLevel/SubTitleService/schema}/subTitleNode.js (89%) rename {wax-prosemirror-schema/src/nodes => wax-prosemirror-services/src/DisplayBlockLevel/TitleService/schema}/titleNode.js (88%) rename {wax-prosemirror-schema/src/nodes => wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/schema}/blockQuoteNode.js (72%) create mode 100644 wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/schema/extractPoetryNode.js rename {wax-prosemirror-schema/src/nodes => wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/schema}/extractProseNode.js (88%) create mode 100644 wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/schema/paragraphContNode.js rename {wax-prosemirror-schema/src/nodes => wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/schema}/sourceNoteNode.js (89%) diff --git a/wax-prosemirror-schema/index.js b/wax-prosemirror-schema/index.js index ff6b30a45..3ce70cf0a 100644 --- a/wax-prosemirror-schema/index.js +++ b/wax-prosemirror-schema/index.js @@ -1,26 +1,16 @@ /* LIST OF SUPPORTED NODES */ -export { default as authorNode } from './src/nodes/authorNode'; -export { default as epigraphPoetryNode } from './src/nodes/epigraphPoetryNode'; -export { default as epigraphProseNode } from './src/nodes/epigraphProseNode'; -export { default as sourceNoteNode } from './src/nodes/sourceNoteNode'; -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'; -export { default as subTitleNode } from './src/nodes/subTitleNode'; export { default as figureNode } from './src/nodes/figureNode'; export { default as figureCaptionNode } from './src/nodes/figureCaptionNode'; export { default as imageNode } from './src/nodes/imageNode'; -export { default as headingNode } from './src/nodes/headingNode'; -export { default as blockQuoteNode } from './src/nodes/blockQuoteNode'; export { default as footNoteNode } from './src/nodes/footNoteNode'; export { default as codeBlockNode } from './src/nodes/codeBlockNode'; export { default as mathInlineNode } from './src/nodes/mathInlineNode'; export { default as mathDisplayNode } from './src/nodes/mathDisplayNode'; export { default as customBlockNode } from './src/nodes/customBlockNode'; + export { default as OenNodes } from './src/nodes/oenNodes'; diff --git a/wax-prosemirror-schema/src/nodes/headingNode.js b/wax-prosemirror-schema/src/nodes/headingNode.js deleted file mode 100644 index b876438c3..000000000 --- a/wax-prosemirror-schema/src/nodes/headingNode.js +++ /dev/null @@ -1,30 +0,0 @@ -/* eslint-disable no-param-reassign */ -const heading = { - attrs: { - level: { default: 2 }, - }, - content: 'inline*', - group: 'block', - defining: true, - parseDOM: [ - { - tag: 'h2', - attrs: { level: 2 }, - }, - { - tag: 'h3', - attrs: { level: 3 }, - }, - { - tag: 'h4', - attrs: { level: 4 }, - }, - ], - toDOM(hook, next) { - const attrs = {}; - hook.value = [`h${hook.node.attrs.level}`, attrs, 0]; - next(); - }, -}; - -export default heading; diff --git a/wax-prosemirror-schema/src/nodes/paragraphContNode.js b/wax-prosemirror-schema/src/nodes/paragraphContNode.js deleted file mode 100644 index 08e09467a..000000000 --- a/wax-prosemirror-schema/src/nodes/paragraphContNode.js +++ /dev/null @@ -1,27 +0,0 @@ -const paragraphCont = { - content: "inline*", - group: "block", - priority: 0, - defining: true, - attrs: { - class: { default: "paragraph-cont" } - }, - parseDOM: [ - { - tag: "p.paragraph-cont", - getAttrs(hook, next) { - Object.assign(hook, { - class: hook.dom.getAttribute("class") - }); - next(); - } - } - ], - toDOM(hook, next) { - const attrs = { class: hook.node.attrs.class }; - hook.value = ["p", attrs, 0]; - next(); - } -}; - -export default paragraphCont; diff --git a/wax-prosemirror-schema/src/nodes/authorNode.js b/wax-prosemirror-services/src/DisplayBlockLevel/AuthorService/schema/authorNode.js similarity index 90% rename from wax-prosemirror-schema/src/nodes/authorNode.js rename to wax-prosemirror-services/src/DisplayBlockLevel/AuthorService/schema/authorNode.js index ceff388df..9c8cf01b0 100644 --- a/wax-prosemirror-schema/src/nodes/authorNode.js +++ b/wax-prosemirror-services/src/DisplayBlockLevel/AuthorService/schema/authorNode.js @@ -1,4 +1,4 @@ -const author = { +const authorNode = { content: 'inline*', group: 'block', priority: 0, @@ -24,4 +24,4 @@ const author = { }, }; -export default author; +export default authorNode; diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphPoetryService/EpigraphPoetryService.js b/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphPoetryService/EpigraphPoetryService.js index 19bad11b0..4f4f7ff5a 100644 --- a/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphPoetryService/EpigraphPoetryService.js +++ b/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphPoetryService/EpigraphPoetryService.js @@ -1,5 +1,5 @@ import { Service } from 'wax-prosemirror-core'; -import { epigraphPoetryNode } from 'wax-prosemirror-schema'; +import epigraphPoetryNode from './schema/epigraphPoetryNode'; import EpigraphPoetry from './EpigraphPoetry'; class EpigraphPoetryService extends Service { diff --git a/wax-prosemirror-schema/src/nodes/epigraphPoetryNode.js b/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphPoetryService/schema/epigraphPoetryNode.js similarity index 88% rename from wax-prosemirror-schema/src/nodes/epigraphPoetryNode.js rename to wax-prosemirror-services/src/DisplayBlockLevel/EpigraphPoetryService/schema/epigraphPoetryNode.js index e3bea1e30..a626f53dd 100644 --- a/wax-prosemirror-schema/src/nodes/epigraphPoetryNode.js +++ b/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphPoetryService/schema/epigraphPoetryNode.js @@ -1,4 +1,4 @@ -const epigraphPoetry = { +const epigraphPoetryNode = { content: 'inline*', group: 'block', priority: 0, @@ -24,4 +24,4 @@ const epigraphPoetry = { }, }; -export default epigraphPoetry; +export default epigraphPoetryNode; diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphProseService/EpigraphProseService.js b/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphProseService/EpigraphProseService.js index 192e6b72b..e710671ca 100644 --- a/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphProseService/EpigraphProseService.js +++ b/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphProseService/EpigraphProseService.js @@ -1,5 +1,5 @@ import { Service } from 'wax-prosemirror-core'; -import { epigraphProseNode } from 'wax-prosemirror-schema'; +import epigraphProseNode from './schema/epigraphProseNode'; import EpigraphProse from './EpigraphProse'; class EpigraphProseService extends Service { diff --git a/wax-prosemirror-schema/src/nodes/epigraphProseNode.js b/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphProseService/schema/epigraphProseNode.js similarity index 88% rename from wax-prosemirror-schema/src/nodes/epigraphProseNode.js rename to wax-prosemirror-services/src/DisplayBlockLevel/EpigraphProseService/schema/epigraphProseNode.js index 328ed0846..d2e03dd47 100644 --- a/wax-prosemirror-schema/src/nodes/epigraphProseNode.js +++ b/wax-prosemirror-services/src/DisplayBlockLevel/EpigraphProseService/schema/epigraphProseNode.js @@ -1,4 +1,4 @@ -const epigraphProse = { +const epigraphProseNode = { content: 'inline*', group: 'block', priority: 0, @@ -24,4 +24,4 @@ const epigraphProse = { }, }; -export default epigraphProse; +export default epigraphProseNode; diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/SubTitleService/SubTitleService.js b/wax-prosemirror-services/src/DisplayBlockLevel/SubTitleService/SubTitleService.js index 4014b0038..6da7e53ed 100644 --- a/wax-prosemirror-services/src/DisplayBlockLevel/SubTitleService/SubTitleService.js +++ b/wax-prosemirror-services/src/DisplayBlockLevel/SubTitleService/SubTitleService.js @@ -1,5 +1,5 @@ import { Service } from 'wax-prosemirror-core'; -import { subTitleNode } from 'wax-prosemirror-schema'; +import subTitleNode from './schema/subTitleNode'; import SubTitle from './SubTitle'; class SubTitleService extends Service { diff --git a/wax-prosemirror-schema/src/nodes/subTitleNode.js b/wax-prosemirror-services/src/DisplayBlockLevel/SubTitleService/schema/subTitleNode.js similarity index 89% rename from wax-prosemirror-schema/src/nodes/subTitleNode.js rename to wax-prosemirror-services/src/DisplayBlockLevel/SubTitleService/schema/subTitleNode.js index 2356004cf..e188aeaf5 100644 --- a/wax-prosemirror-schema/src/nodes/subTitleNode.js +++ b/wax-prosemirror-services/src/DisplayBlockLevel/SubTitleService/schema/subTitleNode.js @@ -1,4 +1,4 @@ -const subtitle = { +const subTitleNode = { content: 'inline*', group: 'block', priority: 0, @@ -24,4 +24,4 @@ const subtitle = { }, }; -export default subtitle; +export default subTitleNode; diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/TitleService/TitleService.js b/wax-prosemirror-services/src/DisplayBlockLevel/TitleService/TitleService.js index 67644481e..238fb30ce 100644 --- a/wax-prosemirror-services/src/DisplayBlockLevel/TitleService/TitleService.js +++ b/wax-prosemirror-services/src/DisplayBlockLevel/TitleService/TitleService.js @@ -1,5 +1,5 @@ import { Service } from 'wax-prosemirror-core'; -import { titleNode } from 'wax-prosemirror-schema'; +import titleNode from './schema/titleNode'; import Title from './Title'; class TitleService extends Service { diff --git a/wax-prosemirror-schema/src/nodes/titleNode.js b/wax-prosemirror-services/src/DisplayBlockLevel/TitleService/schema/titleNode.js similarity index 88% rename from wax-prosemirror-schema/src/nodes/titleNode.js rename to wax-prosemirror-services/src/DisplayBlockLevel/TitleService/schema/titleNode.js index ee57cf95e..f03bfa092 100644 --- a/wax-prosemirror-schema/src/nodes/titleNode.js +++ b/wax-prosemirror-services/src/DisplayBlockLevel/TitleService/schema/titleNode.js @@ -1,4 +1,4 @@ -const title = { +const titleNode = { attrs: { level: { default: 1 }, }, @@ -19,4 +19,4 @@ const title = { }, }; -export default title; +export default titleNode; diff --git a/wax-prosemirror-services/src/MatchingService/components/MatchingContainerComponent.js b/wax-prosemirror-services/src/MatchingService/components/MatchingContainerComponent.js index 77a27ccd1..21e525157 100644 --- a/wax-prosemirror-services/src/MatchingService/components/MatchingContainerComponent.js +++ b/wax-prosemirror-services/src/MatchingService/components/MatchingContainerComponent.js @@ -125,6 +125,7 @@ export default ({ node, view, getPos }) => { const [optionText, setOptionText] = useState(''); const [addingOption, setAddingOption] = useState(false); const addOptionRef = useRef(null); + const addOptionBtnRef = useRef(null); const customProps = main.props.customValues; @@ -134,6 +135,19 @@ export default ({ node, view, getPos }) => { const readOnly = !isEditable; + useEffect(() => { + const listener = event => { + if (event.code === 'Enter') { + event.preventDefault(); + addOptionBtnRef.current.click(); + } + }; + addOptionBtnRef.current.addEventListener('keydown', listener); + return () => { + addOptionBtnRef.current.removeEventListener('keydown', listener); + }; + }, []); + useEffect(() => { const allNodes = getNodes(main); @@ -246,7 +260,7 @@ export default ({ node, view, getPos }) => { type="text" value={optionText} /> - <button onClick={addOption} type="button"> + <button onClick={addOption} ref={addOptionBtnRef} type="button"> Add Option </button> </AddOption> diff --git a/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuoteService.js b/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuoteService.js index 4bf42c506..e1b053302 100644 --- a/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuoteService.js +++ b/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuoteService.js @@ -1,5 +1,5 @@ import { Service } from 'wax-prosemirror-core'; -import { blockQuoteNode } from 'wax-prosemirror-schema'; +import blockQuoteNode from './schema/blockQuoteNode'; import BlockQuote from './BlockQuote'; import './blockQuote.css'; diff --git a/wax-prosemirror-schema/src/nodes/blockQuoteNode.js b/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/schema/blockQuoteNode.js similarity index 72% rename from wax-prosemirror-schema/src/nodes/blockQuoteNode.js rename to wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/schema/blockQuoteNode.js index 9ffb0e76e..86b5a7675 100644 --- a/wax-prosemirror-schema/src/nodes/blockQuoteNode.js +++ b/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/schema/blockQuoteNode.js @@ -1,4 +1,4 @@ -const blockquote = { +const blockQuoteNode = { content: 'block+', group: 'block', defining: true, @@ -8,4 +8,4 @@ const blockquote = { }, }; -export default blockquote; +export default blockQuoteNode; diff --git a/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetryService.js b/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetryService.js index d2243b604..46209a3e4 100644 --- a/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetryService.js +++ b/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetryService.js @@ -1,5 +1,5 @@ import { Service } from 'wax-prosemirror-core'; -import { extractPoetryNode } from 'wax-prosemirror-schema'; +import extractPoetryNode from './schema/extractPoetryNode'; import ExtractPoetry from './ExtractPoetry'; class ExtractPoetryService extends Service { diff --git a/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/schema/extractPoetryNode.js b/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/schema/extractPoetryNode.js new file mode 100644 index 000000000..aaa69508d --- /dev/null +++ b/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/schema/extractPoetryNode.js @@ -0,0 +1,27 @@ +const extractPoetryNode = { + content: 'inline*', + group: 'block', + priority: 0, + defining: true, + attrs: { + class: { default: 'extract-poetry' }, + }, + parseDOM: [ + { + tag: 'p.extract-poetry', + getAttrs(hook, next) { + Object.assign(hook, { + class: hook.dom.getAttribute('class'), + }); + next(); + }, + }, + ], + toDOM(hook, next) { + const attrs = { class: hook.node.attrs.class }; + hook.value = ['p', attrs, 0]; + next(); + }, +}; + +export default extractPoetryNode; diff --git a/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProseService.js b/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProseService.js index 38469d807..dc2d94d46 100644 --- a/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProseService.js +++ b/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProseService.js @@ -1,5 +1,5 @@ import { Service } from 'wax-prosemirror-core'; -import { extractProseNode } from 'wax-prosemirror-schema'; +import extractProseNode from './schema/extractProseNode'; import ExtractProse from './ExtractProse'; class ExtractProseService extends Service { diff --git a/wax-prosemirror-schema/src/nodes/extractProseNode.js b/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/schema/extractProseNode.js similarity index 88% rename from wax-prosemirror-schema/src/nodes/extractProseNode.js rename to wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/schema/extractProseNode.js index deea59771..ca1597528 100644 --- a/wax-prosemirror-schema/src/nodes/extractProseNode.js +++ b/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/schema/extractProseNode.js @@ -1,4 +1,4 @@ -const extractProse = { +const extractProseNode = { content: 'inline*', group: 'block', priority: 0, @@ -24,4 +24,4 @@ const extractProse = { }, }; -export default extractProse; +export default extractProseNode; diff --git a/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinuedService.js b/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinuedService.js index 456b57cab..91ac808e6 100644 --- a/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinuedService.js +++ b/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinuedService.js @@ -1,5 +1,5 @@ import { Service } from 'wax-prosemirror-core'; -import { paragraphContNode } from 'wax-prosemirror-schema'; +import paragraphContNode from './schema/paragraphContNode'; import ParagraphContinued from './ParagraphContinued'; class ParagraphContinuedService extends Service { diff --git a/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/schema/paragraphContNode.js b/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/schema/paragraphContNode.js new file mode 100644 index 000000000..c45b9546a --- /dev/null +++ b/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/schema/paragraphContNode.js @@ -0,0 +1,27 @@ +const paragraphContNode = { + content: 'inline*', + group: 'block', + priority: 0, + defining: true, + attrs: { + class: { default: 'paragraph-cont' }, + }, + parseDOM: [ + { + tag: 'p.paragraph-cont', + getAttrs(hook, next) { + Object.assign(hook, { + class: hook.dom.getAttribute('class'), + }); + next(); + }, + }, + ], + toDOM(hook, next) { + const attrs = { class: hook.node.attrs.class }; + hook.value = ['p', attrs, 0]; + next(); + }, +}; + +export default paragraphContNode; diff --git a/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNoteService.js b/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNoteService.js index 00aea7265..47b113139 100644 --- a/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNoteService.js +++ b/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNoteService.js @@ -1,5 +1,5 @@ import { Service } from 'wax-prosemirror-core'; -import { sourceNoteNode } from 'wax-prosemirror-schema'; +import sourceNoteNode from './schema/sourceNoteNode'; import SourceNote from './SourceNote'; class SourceNoteService extends Service { diff --git a/wax-prosemirror-schema/src/nodes/sourceNoteNode.js b/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/schema/sourceNoteNode.js similarity index 89% rename from wax-prosemirror-schema/src/nodes/sourceNoteNode.js rename to wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/schema/sourceNoteNode.js index b530ec835..6b244c979 100644 --- a/wax-prosemirror-schema/src/nodes/sourceNoteNode.js +++ b/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/schema/sourceNoteNode.js @@ -1,4 +1,4 @@ -const sourceNote = { +const sourceNoteNode = { content: 'inline*', group: 'block', priority: 0, @@ -24,4 +24,4 @@ const sourceNote = { }, }; -export default sourceNote; +export default sourceNoteNode; -- GitLab