diff --git a/wax-prosemirror-schema/index.js b/wax-prosemirror-schema/index.js index ff6b30a452862714692eca71df6e7d7ae76d8151..3ce70cf0a0055e0530e40059c3fcaffbfa80da38 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 b876438c3e7ca713325afac25529a0de69f0dc4d..0000000000000000000000000000000000000000 --- 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 08e09467a84c68ffd8af26a595bc637b93d7adf8..0000000000000000000000000000000000000000 --- 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 ceff388df662a3bc73a5e7fa23f362cd533cce0c..9c8cf01b0cafde4dd35e3ed3f2e44fbe166e220c 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 19bad11b08f3157bae39423d28f5f5a2eafc576d..4f4f7ff5af7949b4ddc2c69cd70bf0a3b42e801a 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 e3bea1e30aafda1ed8dcc28b7d1e13f66c9537bd..a626f53dd0d1430d9e11d12e132d294d09600b05 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 192e6b72b8e8236820a33b9f9fc183f37765cdef..e710671cad9bbcedbbd1056d5324c5f22a1357d3 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 328ed0846ad8060a80633260d2a2a49c1175db2f..d2e03dd477b015371ade0c29f64c84847a96288e 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 4014b0038f22de779f15393d7dab1111acc03052..6da7e53ed7a74029de054f4667adf3a575e28df4 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 2356004cfdec37710d59e20859265a0d22868235..e188aeaf5723fdb37764a77e80e2263c6f7c1615 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 67644481eb5236b44cd7ff9f5e035f37b159341f..238fb30cebf57f10c6ff57314d25fdd09c0e61df 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 ee57cf95e0a03a0d724dae0d10f6925f7cd5aa4d..f03bfa092dcdd55f0b966a9383bf6229898cf0a7 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 77a27ccd10b86ee4c0c31d0f2ed87f73e7252a9d..21e525157cf85ee3323fc28a6c992d58707dcf4d 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 4bf42c506573dcd4f46e8fb7c1df39fb8e0024f3..e1b053302a8ed43e906933ebdd0286f1329ebcd5 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 9ffb0e76ebaca850745cdf18a24017be6883b158..86b5a76759ecbce06d2c79179c7a5c9c56e0c260 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 d2243b6045c738bc2a3f6f4af091df75014fadda..46209a3e47f15c90807cf70f7e048fac79d16ccb 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 0000000000000000000000000000000000000000..aaa69508d89469563e38c227e959bf7be2e9635b --- /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 38469d807a1a203aba26e7bba64b1efcd673932f..dc2d94d461056f0c5c529022131f6de612ad83a1 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 deea5977161b410697653a65eb85e46195dd2894..ca159752816ffe64891e035527c4102e2f092c12 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 456b57cab56a6f6db0d9f0cad9e519c3352e38b5..91ac808e62ff2eec795815266fb4d87a67d8689c 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 0000000000000000000000000000000000000000..c45b9546a78ac668999c6cafa008af1932e1aad6 --- /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 00aea726593d411fc6ecc67eea68ad2b9f0f901b..47b113139b5869125a902e681f2c5ac12e7f17ac 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 b530ec83588bfda28764c67d8c053e9898167668..6b244c979e1aa31033fcfc63ddee386aa8eae163 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;