diff --git a/editors/demo/src/Editoria/config/config.js b/editors/demo/src/Editoria/config/config.js index d3928aee7130b30ddcb0a4142d91185818c7db75..65fa24bc4361e60250a7a78c36bf0490d3ffd935 100644 --- a/editors/demo/src/Editoria/config/config.js +++ b/editors/demo/src/Editoria/config/config.js @@ -3,49 +3,30 @@ import { debounce } from 'lodash'; import { InlineAnnotationsService, - AnnotationToolGroupService, ImageService, - ImageToolGroupService, LinkService, ListsService, - ListToolGroupService, BaseService, - BaseToolGroupService, DisplayBlockLevelService, - DisplayToolGroupService, TextBlockLevelService, - TextToolGroupService, NoteService, - NoteToolGroupService, TrackChangeService, CommentsService, CodeBlockService, - CodeBlockToolGroupService, DisplayTextToolGroupService, MathService, FindAndReplaceService, EditingSuggestingService, - TrackingAndEditingToolGroupService, FullScreenService, - FullScreenToolGroupService, SpecialCharactersService, - SpecialCharactersToolGroupService, HighlightService, - TextHighlightToolGroupServices, - EditorInfoToolGroupServices, BottomInfoService, TransformService, - TransformToolGroupService, - TrackOptionsToolGroupService, - TrackCommentOptionsToolGroupService, - CustomTagInlineToolGroupService, - CustomTagBlockToolGroupService, CustomTagService, disallowPasteImagesPlugin, - // YjsService, BlockDropDownToolGroupService, - // TitleToolGroupService, AskAiContentService, + // YjsService, } from 'wax-prosemirror-services'; import { TablesService, tableEditing, columnResizing } from 'wax-table-service'; @@ -179,7 +160,7 @@ export default { ], ImageService: { showAlt: true }, CommentsService: { - showTitle: true + showTitle: true, }, CustomTagService: { tags: [ @@ -201,15 +182,12 @@ export default { }, services: [ - // new TitleToolGroupService(), // new YjsService(), new BlockDropDownToolGroupService(), new AskAiContentService(), new CustomTagService(), new DisplayBlockLevelService(), - new DisplayToolGroupService(), new TextBlockLevelService(), - new TextToolGroupService(), new ListsService(), new LinkService(), new InlineAnnotationsService(), @@ -218,32 +196,16 @@ export default { new ImageService(), new TablesService(), new BaseService(), - new BaseToolGroupService(), new NoteService(), - new ImageToolGroupService(), - new AnnotationToolGroupService(), - new NoteToolGroupService(), - new ListToolGroupService(), new CodeBlockService(), - new CodeBlockToolGroupService(), new EditingSuggestingService(), new DisplayTextToolGroupService(), new MathService(), new FindAndReplaceService(), - new TrackingAndEditingToolGroupService(), new FullScreenService(), - new FullScreenToolGroupService(), new SpecialCharactersService(), - new SpecialCharactersToolGroupService(), new HighlightService(), - new TextHighlightToolGroupServices(), - new EditorInfoToolGroupServices(), new BottomInfoService(), new TransformService(), - new TransformToolGroupService(), - new TrackOptionsToolGroupService(), - new TrackCommentOptionsToolGroupService(), - new CustomTagInlineToolGroupService(), - new CustomTagBlockToolGroupService(), ], }; diff --git a/editors/demo/src/Editoria/config/configMobile.js b/editors/demo/src/Editoria/config/configMobile.js index a87d5ec5e72338992b4c82cba17085f1fd71d4d5..15fbfdfa48e6f14d8df0271f5c049ddc5b03053d 100644 --- a/editors/demo/src/Editoria/config/configMobile.js +++ b/editors/demo/src/Editoria/config/configMobile.js @@ -1,35 +1,22 @@ import { emDash, ellipsis } from 'prosemirror-inputrules'; import { - AnnotationToolGroupService, ImageService, InlineAnnotationsService, LinkService, ListsService, - ListToolGroupService, BaseService, - BaseToolGroupService, DisplayBlockLevelService, - DisplayToolGroupService, - ImageToolGroupService, TextBlockLevelService, - TextToolGroupService, NoteService, - NoteToolGroupService, EditingSuggestingService, TrackChangeService, CommentsService, CodeBlockService, - CodeBlockToolGroupService, DisplayTextToolGroupService, BlockDropDownToolGroupService, HighlightService, - TextHighlightToolGroupServices, - EditorInfoToolGroupServices, BottomInfoService, TransformService, - TransformToolGroupService, - CustomTagInlineToolGroupService, - CustomTagBlockToolGroupService, CustomTagService, } from 'wax-prosemirror-services'; @@ -92,9 +79,7 @@ export default { //as it matters on how PM treats nodes and marks services: [ new DisplayBlockLevelService(), - new DisplayToolGroupService(), new TextBlockLevelService(), - new TextToolGroupService(), new ListsService(), new LinkService(), new InlineAnnotationsService(), @@ -103,25 +88,14 @@ export default { new ImageService(), new TablesService(), new BaseService(), - new BaseToolGroupService(), new NoteService(), - new ImageToolGroupService(), - new AnnotationToolGroupService(), - new NoteToolGroupService(), - new ListToolGroupService(), new CodeBlockService(), - new CodeBlockToolGroupService(), new EditingSuggestingService(), new DisplayTextToolGroupService(), new BlockDropDownToolGroupService(), new HighlightService(), - new TextHighlightToolGroupServices(), - new EditorInfoToolGroupServices(), new BottomInfoService(), new TransformService(), - new TransformToolGroupService(), new CustomTagService(), - new CustomTagInlineToolGroupService(), - new CustomTagBlockToolGroupService(), ], }; diff --git a/editors/demo/src/HHMI/HHMI.js b/editors/demo/src/HHMI/HHMI.js index 4c1d96095280c4c17b57306e3de83d781cecafdc..baed57f47ca8cabab56848efe5910e6ea477edd2 100644 --- a/editors/demo/src/HHMI/HHMI.js +++ b/editors/demo/src/HHMI/HHMI.js @@ -195,7 +195,7 @@ const Hhmi = () => { // targetFormat="JSON" readonly={readOnly} layout={HhmiLayout} - onChange={source => console.log(source)} + // onChange={source => console.log(source)} /> </> ); diff --git a/editors/demo/src/HHMI/config/config.js b/editors/demo/src/HHMI/config/config.js index 163f2146245f787854ad18b184bfe9b8764bd928..2ae6496a69b42bcfa52c64959d8a110ff9d687dc 100644 --- a/editors/demo/src/HHMI/config/config.js +++ b/editors/demo/src/HHMI/config/config.js @@ -1,18 +1,13 @@ import { emDash, ellipsis } from 'prosemirror-inputrules'; import { InlineAnnotationsService, - AnnotationToolGroupService, ImageService, - ImageToolGroupService, LinkService, ListsService, - ListToolGroupService, BaseService, - BaseToolGroupService, DisplayTextToolGroupService, MathService, FullScreenService, - FullScreenToolGroupService, } from 'wax-prosemirror-services'; import { QuestionsService } from 'wax-questions-service'; @@ -68,13 +63,8 @@ export default { new ImageService(), new TablesService(), new BaseService(), - new BaseToolGroupService(), - new ImageToolGroupService(), - new AnnotationToolGroupService(), - new ListToolGroupService(), new DisplayTextToolGroupService(), new MathService(), new FullScreenService(), - new FullScreenToolGroupService(), ], }; diff --git a/editors/demo/src/NCBI/config/configEnter.js b/editors/demo/src/NCBI/config/configEnter.js index 5b9ae803c71e27f6b3aa2105290897cd264d0837..22977ee5f9cea6a8db7606f749c753fd7a7565ea 100644 --- a/editors/demo/src/NCBI/config/configEnter.js +++ b/editors/demo/src/NCBI/config/configEnter.js @@ -1,11 +1,8 @@ import { DefaultSchema } from 'wax-prosemirror-core'; import { InlineAnnotationsService, - AnnotationToolGroupService, ListsService, - ListToolGroupService, BaseService, - BaseToolGroupService, LinkService, EnterService, } from 'wax-prosemirror-services'; @@ -48,12 +45,9 @@ const configEnter = getContent => ({ services: [ new EnterService(), new InlineAnnotationsService(), - new AnnotationToolGroupService(), new LinkService(), - new ListToolGroupService(), new BaseService(), new ListsService(), - new BaseToolGroupService(), ], }); diff --git a/editors/demo/src/NCBI/config/configMini.js b/editors/demo/src/NCBI/config/configMini.js index fa3b786b475bfae0d7793c6f8bb1950b94bbcbf2..c97443f85d91bacd035f6f2426b496a2383d3f95 100644 --- a/editors/demo/src/NCBI/config/configMini.js +++ b/editors/demo/src/NCBI/config/configMini.js @@ -1,11 +1,8 @@ import { DefaultSchema } from 'wax-prosemirror-core'; import { InlineAnnotationsService, - AnnotationToolGroupService, ListsService, - ListToolGroupService, BaseService, - BaseToolGroupService, LinkService, } from 'wax-prosemirror-services'; @@ -32,12 +29,9 @@ const config = { services: [ new InlineAnnotationsService(), - new AnnotationToolGroupService(), new LinkService(), - new ListToolGroupService(), new BaseService(), new ListsService(), - new BaseToolGroupService(), ], }; diff --git a/editors/demo/src/NCBI/config/configTitle.js b/editors/demo/src/NCBI/config/configTitle.js index eea8127077b872b4f077de8d34369fb8e8a49969..83de5727d8188bfb5a2d40cab8e7c7889751f766 100644 --- a/editors/demo/src/NCBI/config/configTitle.js +++ b/editors/demo/src/NCBI/config/configTitle.js @@ -1,8 +1,6 @@ import { InlineAnnotationsService, - AnnotationToolGroupService, BaseService, - BaseToolGroupService, LinkService, } from 'wax-prosemirror-services'; @@ -58,10 +56,8 @@ const configTitle = { services: [ new InlineAnnotationsService(), - new AnnotationToolGroupService(), new LinkService(), new BaseService(), - new BaseToolGroupService(), ], }; diff --git a/editors/demo/src/OEN/config/config.js b/editors/demo/src/OEN/config/config.js index 159cad8845432ee10f071910d351c663ccc6c38b..c468e6258ded6d4f29b721cb17604ec33bbe1d2b 100644 --- a/editors/demo/src/OEN/config/config.js +++ b/editors/demo/src/OEN/config/config.js @@ -3,48 +3,27 @@ import { debounce } from 'lodash'; import { InlineAnnotationsService, - AnnotationToolGroupService, ImageService, - ImageToolGroupService, LinkService, ListsService, - ListToolGroupService, BaseService, - BaseToolGroupService, DisplayBlockLevelService, - DisplayToolGroupService, TextBlockLevelService, - TextToolGroupService, NoteService, - NoteToolGroupService, TrackChangeService, CommentsService, CodeBlockService, - CodeBlockToolGroupService, // DisplayTextToolGroupService, MathService, FindAndReplaceService, EditingSuggestingService, - TrackingAndEditingToolGroupService, FullScreenService, - FullScreenToolGroupService, SpecialCharactersService, - SpecialCharactersToolGroupService, HighlightService, - TextHighlightToolGroupServices, - EditorInfoToolGroupServices, BottomInfoService, TransformService, - TransformToolGroupService, - TrackOptionsToolGroupService, - TrackCommentOptionsToolGroupService, - CustomTagInlineToolGroupService, - CustomTagBlockToolGroupService, CustomTagService, OENContainersService, - OENLeftToolGroupService, - OENContainersToolGroupService, - OENAsideToolGroupService, } from 'wax-prosemirror-services'; import { TablesService, tableEditing, columnResizing } from 'wax-table-service'; @@ -203,14 +182,10 @@ export default { }, services: [ - new OENContainersToolGroupService(), new OENContainersService(), - new OENLeftToolGroupService(), new CustomTagService(), new DisplayBlockLevelService(), - new DisplayToolGroupService(), new TextBlockLevelService(), - new TextToolGroupService(), new ListsService(), new LinkService(), new InlineAnnotationsService(), @@ -219,32 +194,16 @@ export default { new ImageService(), new TablesService(), new BaseService(), - new BaseToolGroupService(), new NoteService(), - new ImageToolGroupService(), - new AnnotationToolGroupService(), - new NoteToolGroupService(), - new ListToolGroupService(), new CodeBlockService(), - new CodeBlockToolGroupService(), new EditingSuggestingService(), // new DisplayTextToolGroupService(), new MathService(), new FindAndReplaceService(), - new TrackingAndEditingToolGroupService(), new FullScreenService(), - new FullScreenToolGroupService(), new SpecialCharactersService(), - new SpecialCharactersToolGroupService(), new HighlightService(), - new TextHighlightToolGroupServices(), - new EditorInfoToolGroupServices(), new BottomInfoService(), new TransformService(), - new TransformToolGroupService(), - new TrackOptionsToolGroupService(), - new TrackCommentOptionsToolGroupService(), - new CustomTagInlineToolGroupService(), - new CustomTagBlockToolGroupService(), ], }; diff --git a/wax-prosemirror-core/index.js b/wax-prosemirror-core/index.js index f6f7a4641af02902f6e26a69aa53d73baeff8075..0bc457d6c463f7ed616e3429d3e1e7e10dbef1e2 100644 --- a/wax-prosemirror-core/index.js +++ b/wax-prosemirror-core/index.js @@ -18,7 +18,6 @@ export { default as EditoriaSchema } from './src/utilities/schema/EditoriaSchema export { default as Middleware } from './src/utilities/lib/Middleware'; export { default as ToolGroup } from './src/utilities/lib/ToolGroup'; export { default as Tools } from './src/utilities/lib/Tools'; -export { default as Translation } from './src/helpers/Translation'; /* Base Services */ export { default as LayoutService } from './src/config/defaultServices/LayoutService/LayoutService'; @@ -52,3 +51,8 @@ export { default as Button } from './src/components/Button'; /* Plugins */ export { default as FakeCursorPlugin } from './src/config/plugins/FakeCursorPlugin'; + +// export * from 'prosemirror-state'; +// export * from 'prosemirror-view'; +// export * from 'prosemirror-model'; +// export * from 'prosemirror-transform'; diff --git a/wax-prosemirror-core/src/config/defaultServices/ShortCutsService/ShortCuts.js b/wax-prosemirror-core/src/config/defaultServices/ShortCutsService/ShortCuts.js index 4c98df4ce580a32ef2402ae9cc02ac1ec48624b1..a2dfada7f8d52fea8344cb3f61e54fbb9ee6661b 100644 --- a/wax-prosemirror-core/src/config/defaultServices/ShortCutsService/ShortCuts.js +++ b/wax-prosemirror-core/src/config/defaultServices/ShortCutsService/ShortCuts.js @@ -59,13 +59,13 @@ const backSpaceShortCut = (state, dispatch, view) => { }; const pressEnter = (state, dispatch) => { + const { $from, to, from } = state.selection; + // Images - if (state.selection.$head.parent.type.name === 'figcaption') { + if (state.doc.resolve(from).parent.type.name === 'figcaption') { return true; } if (state.selection.node && state.selection.node.type.name === 'image') { - const { $from, to } = state.selection; - const same = $from.sharedDepth(to); const pos = $from.before(same); @@ -88,8 +88,8 @@ const pressEnter = (state, dispatch) => { if ( title.length === 1 && - state.selection.from > title[0].pos + 1 && - state.selection.from < title[0].pos + title[0].node.nodeSize - 1 + from > title[0].pos + 1 && + from < title[0].pos + title[0].node.nodeSize - 1 ) { return true; } diff --git a/wax-prosemirror-core/src/helpers/Translation.js b/wax-prosemirror-core/src/helpers/Translation.js deleted file mode 100644 index bd4a85014d549bc2b1d8da7fd4f1fdb7b9e656db..0000000000000000000000000000000000000000 --- a/wax-prosemirror-core/src/helpers/Translation.js +++ /dev/null @@ -1,12 +0,0 @@ -/* eslint-disable react/prop-types */ -import React from 'react'; -import { isEmpty } from 'lodash'; -import { useTranslation } from 'react-i18next'; - -const Translation = ({ label, defaultTr }) => { - console.log('asdads', defaultTr); - const { t, i18n } = useTranslation(); - return <>{!isEmpty(i18n) && i18n.exists(label) ? t(label) : defaultTr}</>; -}; - -export default Translation; diff --git a/wax-prosemirror-services/index.js b/wax-prosemirror-services/index.js index 6eb076f571da213e395186ac9ea94eb56cdc17a6..af898118e764e1904a5b2276ba1f691c6ab8f193 100644 --- a/wax-prosemirror-services/index.js +++ b/wax-prosemirror-services/index.js @@ -19,7 +19,6 @@ export { default as SpecialCharactersService } from './src/SpecialCharactersServ export { default as HighlightService } from './src/HighlightService/HightlightService'; export { default as CounterInfoService } from './src/BottomInfoService/CounterInfoService/CounterInfoService'; export { default as ShortCutsInfoService } from './src/BottomInfoService/ShortCutsInfoService/ShortCutsInfoService'; - export { default as BottomInfoService } from './src/BottomInfoService/BottomInfoService'; export { default as TransformService } from './src/TransformService/TransformService'; export { default as EditingSuggestingService } from './src/EditingSuggestingService/EditingSuggestingService'; @@ -32,32 +31,12 @@ export { default as OENContainersService } from './src/OENContainersService/OENC export { default as YjsService } from './src/YjsService/YjsService'; export { default as ExternalAPIContentService } from './src/ExternalAPIContentService/ExternalAPIContentService'; export { default as AskAiContentService } from './src/AiService/AskAiContentService'; + /* 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 DisplayToolGroupService } from './src/WaxToolGroups/DisplayToolGroupService/DisplayToolGroupService'; -export { default as TextToolGroupService } from './src/WaxToolGroups/TextToolGroupService/TextToolGroupService'; -export { default as NoteToolGroupService } from './src/WaxToolGroups/NoteToolGroupService/NoteToolGroupService'; -export { default as CodeBlockToolGroupService } from './src/WaxToolGroups/CodeBlockToolGroupService/CodeBlockToolGroupService'; export { default as DisplayTextToolGroupService } from './src/WaxToolGroups/DisplayTextToolGroupService/DisplayTextToolGroupService'; export { default as BlockDropDownToolGroupService } from './src/WaxToolGroups/BlockDropDownToolGroupService/BlockDropDownToolGroupService'; -export { default as TrackingAndEditingToolGroupService } from './src/WaxToolGroups/TrackingAndEditingToolGroupService/TrackingAndEditingToolGroupService'; -export { default as FullScreenToolGroupService } from './src/WaxToolGroups/FullScreenToolGroupService/FullScreenToolGroupService'; -export { default as SpecialCharactersToolGroupService } from './src/WaxToolGroups/SpecialCharactersToolGroupService/SpecialCharactersToolGroupService'; -export { default as TextHighlightToolGroupServices } from './src/WaxToolGroups/TextHighlightToolGroupService/TextHighlightToolGroupService'; -export { default as EditorInfoToolGroupServices } from './src/WaxToolGroups/BottomToolGroupService/InfoToolGroupService/EditorInfoToolGroupService'; -export { default as TransformToolGroupService } from './src/WaxToolGroups/TransformToolGroupService/TransformToolGroupService'; -export { default as TrackOptionsToolGroupService } from './src/WaxToolGroups/TrackOptionsToolGroupService/TrackOptionsToolGroupService'; -export { default as TrackCommentOptionsToolGroupService } from './src/WaxToolGroups/TrackCommentOptionsToolGroupService/TrackCommentOptionsToolGroupService'; -export { default as CustomTagInlineToolGroupService } from './src/WaxToolGroups/CustomTagToolGroupService/CustomTagInlineToolGroupService/CustomTagInlineToolGroupService'; -export { default as CustomTagBlockToolGroupService } from './src/WaxToolGroups/CustomTagToolGroupService/CustomTagBlockToolGroupService/CustomTagBlockToolGroupService'; -export { default as OENContainersToolGroupService } from './src/WaxToolGroups/OENContainersToolGroupService/OENContainersToolGroupService'; -export { default as OENLeftToolGroupService } from './src/WaxToolGroups/OENLeftToolGroupService/OENLeftToolGroupService'; -export { default as TitleToolGroupService } from './src/WaxToolGroups/TitleToolGroupService/TitleToolGroupService'; /* Plugins */ export { default as disallowPasteImagesPlugin } from './src/ImageService/plugins/disallowPasteImagesPlugin'; diff --git a/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/Base.js b/wax-prosemirror-services/src/BaseService/BaseToolGroupService/Base.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/Base.js rename to wax-prosemirror-services/src/BaseService/BaseToolGroupService/Base.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/BaseToolGroupService.js b/wax-prosemirror-services/src/BaseService/BaseToolGroupService/BaseToolGroupService.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/BaseToolGroupService.js rename to wax-prosemirror-services/src/BaseService/BaseToolGroupService/BaseToolGroupService.js diff --git a/wax-prosemirror-services/src/BaseService/index.js b/wax-prosemirror-services/src/BaseService/index.js index d8c34fee8d615c93871137379d4cb2fa85330f9e..2f47eeb258e8033a353117a476aec3bc2e3945b9 100644 --- a/wax-prosemirror-services/src/BaseService/index.js +++ b/wax-prosemirror-services/src/BaseService/index.js @@ -1,5 +1,11 @@ import UndoService from './UndoService/UndoService'; import RedoService from './RedoService/RedoService'; import SaveService from './SaveService/SaveService'; +import BaseToolGroupService from './BaseToolGroupService/BaseToolGroupService'; -export default [new UndoService(), new RedoService(), new SaveService()]; +export default [ + new UndoService(), + new RedoService(), + new SaveService(), + new BaseToolGroupService(), +]; diff --git a/wax-prosemirror-services/src/WaxToolGroups/BottomToolGroupService/InfoToolGroupService/EditorInfoToolGroupService.js b/wax-prosemirror-services/src/BottomInfoService/InfoToolGroupService/EditorInfoToolGroupService.js similarity index 55% rename from wax-prosemirror-services/src/WaxToolGroups/BottomToolGroupService/InfoToolGroupService/EditorInfoToolGroupService.js rename to wax-prosemirror-services/src/BottomInfoService/InfoToolGroupService/EditorInfoToolGroupService.js index 8bd1e8eaf608ba87b40ed95cb148aa6050736f1b..d67eaf8356320af3c92d8b09683191646fb48b65 100644 --- a/wax-prosemirror-services/src/WaxToolGroups/BottomToolGroupService/InfoToolGroupService/EditorInfoToolGroupService.js +++ b/wax-prosemirror-services/src/BottomInfoService/InfoToolGroupService/EditorInfoToolGroupService.js @@ -1,10 +1,10 @@ import { Service } from 'wax-prosemirror-core'; import InfoToolGroup from './InfoTool'; -class EditorInfoToolGroupServices extends Service { - name = 'EditorInfoToolGroupServices'; +class EditorInfoToolGroupService extends Service { + name = 'EditorInfoToolGroupService'; register() { this.container.bind('InfoToolGroup').to(InfoToolGroup); } } -export default EditorInfoToolGroupServices; +export default EditorInfoToolGroupService; diff --git a/wax-prosemirror-services/src/WaxToolGroups/BottomToolGroupService/InfoToolGroupService/InfoTool.js b/wax-prosemirror-services/src/BottomInfoService/InfoToolGroupService/InfoTool.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/BottomToolGroupService/InfoToolGroupService/InfoTool.js rename to wax-prosemirror-services/src/BottomInfoService/InfoToolGroupService/InfoTool.js diff --git a/wax-prosemirror-services/src/BottomInfoService/index.js b/wax-prosemirror-services/src/BottomInfoService/index.js index 12755dc51e95160a42c62123f0df62fcae5e8c26..7edb939d1221934fed7daaa8b09b3ee3000ef0fa 100644 --- a/wax-prosemirror-services/src/BottomInfoService/index.js +++ b/wax-prosemirror-services/src/BottomInfoService/index.js @@ -1,4 +1,9 @@ import CounterInfoService from './CounterInfoService/CounterInfoService'; import ShortCutsInfoService from './ShortCutsInfoService/ShortCutsInfoService'; +import EditorInfoToolGroupService from './InfoToolGroupService/EditorInfoToolGroupService'; -export default [new CounterInfoService(), new ShortCutsInfoService()]; +export default [ + new CounterInfoService(), + new ShortCutsInfoService(), + new EditorInfoToolGroupService(), +]; diff --git a/wax-prosemirror-services/src/CodeBlockService/CodeBlockService.js b/wax-prosemirror-services/src/CodeBlockService/CodeBlockService.js index 29e342d4ece5d805d4cdd6676745c0359afc5d5b..fd7b7400c9dfc2521d8498271dd6764e01e2413f 100644 --- a/wax-prosemirror-services/src/CodeBlockService/CodeBlockService.js +++ b/wax-prosemirror-services/src/CodeBlockService/CodeBlockService.js @@ -2,6 +2,7 @@ import { Service } from 'wax-prosemirror-core'; import codeBlockNode from './schema/codeBlockNode'; import highlightPlugin from './plugins/highlightPlugin'; import CodeBlockTool from './CodeBlockTool'; +import CodeBlockToolGroupService from './CodeBlockToolGroupService/CodeBlockToolGroupService'; import './highlightStyles.css'; export default class CodeBlockService extends Service { @@ -17,4 +18,6 @@ export default class CodeBlockService extends Service { code_block: codeBlockNode, }); } + + dependencies = [new CodeBlockToolGroupService()]; } diff --git a/wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlock.js b/wax-prosemirror-services/src/CodeBlockService/CodeBlockToolGroupService/CodeBlock.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlock.js rename to wax-prosemirror-services/src/CodeBlockService/CodeBlockToolGroupService/CodeBlock.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlockToolGroupService.js b/wax-prosemirror-services/src/CodeBlockService/CodeBlockToolGroupService/CodeBlockToolGroupService.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlockToolGroupService.js rename to wax-prosemirror-services/src/CodeBlockService/CodeBlockToolGroupService/CodeBlockToolGroupService.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/CustomTagToolGroupService/CustomTagBlockToolGroupService/CustomTagBlockToolGroup.js b/wax-prosemirror-services/src/CustomTagService/CustomTagToolGroupService/CustomTagBlockToolGroupService/CustomTagBlockToolGroup.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/CustomTagToolGroupService/CustomTagBlockToolGroupService/CustomTagBlockToolGroup.js rename to wax-prosemirror-services/src/CustomTagService/CustomTagToolGroupService/CustomTagBlockToolGroupService/CustomTagBlockToolGroup.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/CustomTagToolGroupService/CustomTagBlockToolGroupService/CustomTagBlockToolGroupService.js b/wax-prosemirror-services/src/CustomTagService/CustomTagToolGroupService/CustomTagBlockToolGroupService/CustomTagBlockToolGroupService.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/CustomTagToolGroupService/CustomTagBlockToolGroupService/CustomTagBlockToolGroupService.js rename to wax-prosemirror-services/src/CustomTagService/CustomTagToolGroupService/CustomTagBlockToolGroupService/CustomTagBlockToolGroupService.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/CustomTagToolGroupService/CustomTagInlineToolGroupService/CustomTagInlineToolGroup.js b/wax-prosemirror-services/src/CustomTagService/CustomTagToolGroupService/CustomTagInlineToolGroupService/CustomTagInlineToolGroup.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/CustomTagToolGroupService/CustomTagInlineToolGroupService/CustomTagInlineToolGroup.js rename to wax-prosemirror-services/src/CustomTagService/CustomTagToolGroupService/CustomTagInlineToolGroupService/CustomTagInlineToolGroup.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/CustomTagToolGroupService/CustomTagInlineToolGroupService/CustomTagInlineToolGroupService.js b/wax-prosemirror-services/src/CustomTagService/CustomTagToolGroupService/CustomTagInlineToolGroupService/CustomTagInlineToolGroupService.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/CustomTagToolGroupService/CustomTagInlineToolGroupService/CustomTagInlineToolGroupService.js rename to wax-prosemirror-services/src/CustomTagService/CustomTagToolGroupService/CustomTagInlineToolGroupService/CustomTagInlineToolGroupService.js diff --git a/wax-prosemirror-services/src/CustomTagService/index.js b/wax-prosemirror-services/src/CustomTagService/index.js index 9be43edbd63afd8bb3494470420268f18637074d..adb4bd0d2b83dcbe07e535dd7a06f17c797be520 100644 --- a/wax-prosemirror-services/src/CustomTagService/index.js +++ b/wax-prosemirror-services/src/CustomTagService/index.js @@ -1,4 +1,11 @@ import CustomTagBlockService from './CustomTagBlockService/CustomTagBlockService'; import CustomTagInlineService from './CustomTagInlineService/CustomTagInlineService'; +import CustomTagBlockToolGroupService from './CustomTagToolGroupService/CustomTagBlockToolGroupService/CustomTagBlockToolGroupService'; +import CustomTagInlineToolGroupService from './CustomTagToolGroupService/CustomTagInlineToolGroupService/CustomTagInlineToolGroupService'; -export default [new CustomTagBlockService(), new CustomTagInlineService()]; +export default [ + new CustomTagBlockService(), + new CustomTagInlineService(), + new CustomTagBlockToolGroupService(), + new CustomTagInlineToolGroupService(), +]; diff --git a/wax-prosemirror-services/src/WaxToolGroups/DisplayToolGroupService/Display.js b/wax-prosemirror-services/src/DisplayBlockLevel/DisplayToolGroupService/Display.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/DisplayToolGroupService/Display.js rename to wax-prosemirror-services/src/DisplayBlockLevel/DisplayToolGroupService/Display.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/DisplayToolGroupService/DisplayToolGroupService.js b/wax-prosemirror-services/src/DisplayBlockLevel/DisplayToolGroupService/DisplayToolGroupService.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/DisplayToolGroupService/DisplayToolGroupService.js rename to wax-prosemirror-services/src/DisplayBlockLevel/DisplayToolGroupService/DisplayToolGroupService.js diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/index.js b/wax-prosemirror-services/src/DisplayBlockLevel/index.js index cf9bff85eb561b2ac0c54a4814784bede96c25d5..a744cab25bac78a7a058005acd1c3bbe91e67c39 100644 --- a/wax-prosemirror-services/src/DisplayBlockLevel/index.js +++ b/wax-prosemirror-services/src/DisplayBlockLevel/index.js @@ -4,6 +4,7 @@ import EpigraphProseService from './EpigraphProseService/EpigraphProseService'; import HeadingService from './HeadingService/HeadingService'; import SubTitleService from './SubTitleService/SubTitleService'; import TitleService from './TitleService/TitleService'; +import DisplayToolGroupService from './DisplayToolGroupService/DisplayToolGroupService'; export default [ new AuthorService(), @@ -12,4 +13,5 @@ export default [ new HeadingService(), new SubTitleService(), new TitleService(), + new DisplayToolGroupService(), ]; diff --git a/wax-prosemirror-services/src/FullScreenService/FullScreenService.js b/wax-prosemirror-services/src/FullScreenService/FullScreenService.js index ffb99230b7edfef4e67f4f085179f650a6834a04..dd31369d8b4df0dae47a5f9734d6c438cafef116 100644 --- a/wax-prosemirror-services/src/FullScreenService/FullScreenService.js +++ b/wax-prosemirror-services/src/FullScreenService/FullScreenService.js @@ -1,5 +1,6 @@ import { Service } from 'wax-prosemirror-core'; import FullScreenTool from './FullScreenTool'; +import FullScreenToolGroupService from './FullScreenToolGroupService/FullScreenToolGroupService'; class FullScreenService extends Service { name = 'FullScreenService'; @@ -7,6 +8,8 @@ class FullScreenService extends Service { register() { this.container.bind('FullScreenTool').to(FullScreenTool); } + + dependencies = [new FullScreenToolGroupService()]; } export default FullScreenService; diff --git a/wax-prosemirror-services/src/WaxToolGroups/FullScreenToolGroupService/FullScreen.js b/wax-prosemirror-services/src/FullScreenService/FullScreenToolGroupService/FullScreen.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/FullScreenToolGroupService/FullScreen.js rename to wax-prosemirror-services/src/FullScreenService/FullScreenToolGroupService/FullScreen.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/FullScreenToolGroupService/FullScreenToolGroupService.js b/wax-prosemirror-services/src/FullScreenService/FullScreenToolGroupService/FullScreenToolGroupService.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/FullScreenToolGroupService/FullScreenToolGroupService.js rename to wax-prosemirror-services/src/FullScreenService/FullScreenToolGroupService/FullScreenToolGroupService.js diff --git a/wax-prosemirror-services/src/HighlightService/HightlightService.js b/wax-prosemirror-services/src/HighlightService/HightlightService.js index 71a2b9db5c155e4c8acf184247d2385e4b078c9e..5c9a3f8357c2efeb9b4c30679f72dd36e48da028 100644 --- a/wax-prosemirror-services/src/HighlightService/HightlightService.js +++ b/wax-prosemirror-services/src/HighlightService/HightlightService.js @@ -1,6 +1,7 @@ import { Service } from 'wax-prosemirror-core'; import highlightMark from './schema/highlightMark'; import TextHighlightTool from './TextHighlightTool'; +import TextHighlightToolGroupServices from './TextHighlightToolGroupService/TextHighlightToolGroupService'; export default class HighlightService extends Service { register() { @@ -13,4 +14,6 @@ export default class HighlightService extends Service { { toWaxSchema: true }, ); } + + dependencies = [new TextHighlightToolGroupServices()]; } diff --git a/wax-prosemirror-services/src/WaxToolGroups/TextHighlightToolGroupService/HightlightToolGroup.js b/wax-prosemirror-services/src/HighlightService/TextHighlightToolGroupService/HightlightToolGroup.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/TextHighlightToolGroupService/HightlightToolGroup.js rename to wax-prosemirror-services/src/HighlightService/TextHighlightToolGroupService/HightlightToolGroup.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/TextHighlightToolGroupService/TextHighlightToolGroupService.js b/wax-prosemirror-services/src/HighlightService/TextHighlightToolGroupService/TextHighlightToolGroupService.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/TextHighlightToolGroupService/TextHighlightToolGroupService.js rename to wax-prosemirror-services/src/HighlightService/TextHighlightToolGroupService/TextHighlightToolGroupService.js diff --git a/wax-prosemirror-services/src/ImageService/ImageService.js b/wax-prosemirror-services/src/ImageService/ImageService.js index e23e55aacb3daff37a58d3eef73a286c3a6b3548..19670ecee680b0206ae07c0bfb140e6459ef7568 100644 --- a/wax-prosemirror-services/src/ImageService/ImageService.js +++ b/wax-prosemirror-services/src/ImageService/ImageService.js @@ -3,8 +3,9 @@ import { imageNode, figureCaptionNode, figureNode } from './schema'; import PlaceHolderPlugin from './plugins/placeHolderPlugin'; import captionPlugin from './plugins/captionPlugin'; import Image from './Image'; -import './image.css'; import AltComponent from './AltComponent'; +import ImageToolGroupService from './ImageToolGroupService/ImageToolGroupService'; +import './image.css'; class ImageService extends Service { name = 'ImageService'; @@ -51,6 +52,8 @@ class ImageService extends Service { }, ); } + + dependencies = [new ImageToolGroupService()]; } export default ImageService; diff --git a/wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/ImageToolGroupService.js b/wax-prosemirror-services/src/ImageService/ImageToolGroupService/ImageToolGroupService.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/ImageToolGroupService.js rename to wax-prosemirror-services/src/ImageService/ImageToolGroupService/ImageToolGroupService.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/Images.js b/wax-prosemirror-services/src/ImageService/ImageToolGroupService/Images.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/Images.js rename to wax-prosemirror-services/src/ImageService/ImageToolGroupService/Images.js diff --git a/wax-prosemirror-services/src/ImageService/fileUpload.js b/wax-prosemirror-services/src/ImageService/fileUpload.js index 901abff9172997b8ea6d1068b27e7517e8a749e8..67cf8ffabb393390961bab87bfdb22812276576b 100644 --- a/wax-prosemirror-services/src/ImageService/fileUpload.js +++ b/wax-prosemirror-services/src/ImageService/fileUpload.js @@ -30,7 +30,7 @@ export default (view, fileUpload, placeholderPlugin, context) => file => { extraData = fileData.extraData; } - const pos = findPlaceholder(view.state, id, placeholderPlugin); + let pos = findPlaceholder(view.state, id, placeholderPlugin); // If the content around the placeholder has been deleted, drop // the image if (pos == null) { @@ -38,6 +38,12 @@ export default (view, fileUpload, placeholderPlugin, context) => file => { } // Otherwise, insert it at the placeholder's position, and remove // the placeholder + + // if paragraph is empty don't break into new line + if (context.pmViews.main.state.doc.resolve(pos).parent.nodeSize === 2) { + pos -= 1; + } + context.setOption({ uploading: false }); context.pmViews.main.dispatch( context.pmViews.main.state.tr diff --git a/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/AnnotationToolGroupService.js b/wax-prosemirror-services/src/InlineAnnotations/AnnotationToolGroupService/AnnotationToolGroupService.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/AnnotationToolGroupService.js rename to wax-prosemirror-services/src/InlineAnnotations/AnnotationToolGroupService/AnnotationToolGroupService.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/Annotations.js b/wax-prosemirror-services/src/InlineAnnotations/AnnotationToolGroupService/Annotations.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/Annotations.js rename to wax-prosemirror-services/src/InlineAnnotations/AnnotationToolGroupService/Annotations.js diff --git a/wax-prosemirror-services/src/InlineAnnotations/index.js b/wax-prosemirror-services/src/InlineAnnotations/index.js index c9d9565c5337e5cde668c4b2b3b959ccd4f771d9..1d43a1848c1686c387c3015e744730b99ce48616 100644 --- a/wax-prosemirror-services/src/InlineAnnotations/index.js +++ b/wax-prosemirror-services/src/InlineAnnotations/index.js @@ -6,6 +6,7 @@ import SuperscriptService from './SuperscriptService/SuperscriptService'; import StrikeThroughService from './StrikeThroughService/StrikeThroughService'; import UnderlineService from './UnderlineService/UnderlineService'; import SmallCapsService from './SmallCapsService/SmallCapsService'; +import AnnotationToolGroupService from './AnnotationToolGroupService/AnnotationToolGroupService'; export default [ new CodeService(), @@ -16,4 +17,5 @@ export default [ new StrikeThroughService(), new UnderlineService(), new SmallCapsService(), + new AnnotationToolGroupService(), ]; diff --git a/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/ListToolGroupService.js b/wax-prosemirror-services/src/ListsService/ListToolGroupService/ListToolGroupService.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/ListToolGroupService.js rename to wax-prosemirror-services/src/ListsService/ListToolGroupService/ListToolGroupService.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/Lists.js b/wax-prosemirror-services/src/ListsService/ListToolGroupService/Lists.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/Lists.js rename to wax-prosemirror-services/src/ListsService/ListToolGroupService/Lists.js diff --git a/wax-prosemirror-services/src/ListsService/index.js b/wax-prosemirror-services/src/ListsService/index.js index 34e8c3b5d5b3cec8a47033d9fe4f7800e5582eb0..0f095ceacd035f4116a37baf04630ff23c3ea155 100644 --- a/wax-prosemirror-services/src/ListsService/index.js +++ b/wax-prosemirror-services/src/ListsService/index.js @@ -3,6 +3,7 @@ import OrderedListService from './OrderedListService/OrderedListService'; import JoinUpService from './JoinUpService/JoinUpService'; import LiftService from './LiftService/LiftService'; import ListItemService from './ListItemService/ListItemService'; +import ListToolGroupService from './ListToolGroupService/ListToolGroupService'; export default [ new ListItemService(), @@ -10,4 +11,5 @@ export default [ new OrderedListService(), new JoinUpService(), new LiftService(), + new ListToolGroupService(), ]; diff --git a/wax-prosemirror-services/src/NoteService/NoteService.js b/wax-prosemirror-services/src/NoteService/NoteService.js index 597dbb17bdbd1381e0b443658c380564f62a51bf..7ca8098e2b63fc4c1fedb16313dcc179a09bc99c 100644 --- a/wax-prosemirror-services/src/NoteService/NoteService.js +++ b/wax-prosemirror-services/src/NoteService/NoteService.js @@ -2,6 +2,7 @@ import { Service } from 'wax-prosemirror-core'; import footNoteNode from './schema/footNoteNode'; import Note from './Note'; import NoteComponent from './NoteComponent'; +import NoteToolGroupService from './NoteToolGroupService/NoteToolGroupService'; import './note.css'; class NoteService extends Service { @@ -20,6 +21,8 @@ class NoteService extends Service { footnote: footNoteNode, }); } + + dependencies = [new NoteToolGroupService()]; } export default NoteService; diff --git a/wax-prosemirror-services/src/WaxToolGroups/NoteToolGroupService/NoteToolGroupService.js b/wax-prosemirror-services/src/NoteService/NoteToolGroupService/NoteToolGroupService.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/NoteToolGroupService/NoteToolGroupService.js rename to wax-prosemirror-services/src/NoteService/NoteToolGroupService/NoteToolGroupService.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/NoteToolGroupService/Notes.js b/wax-prosemirror-services/src/NoteService/NoteToolGroupService/Notes.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/NoteToolGroupService/Notes.js rename to wax-prosemirror-services/src/NoteService/NoteToolGroupService/Notes.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/OENAsideLongToolGroupService/OENAsideLongToolGroup.js b/wax-prosemirror-services/src/OENContainersService/OENAsideLongToolGroupService/OENAsideLongToolGroup.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/OENAsideLongToolGroupService/OENAsideLongToolGroup.js rename to wax-prosemirror-services/src/OENContainersService/OENAsideLongToolGroupService/OENAsideLongToolGroup.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/OENAsideLongToolGroupService/OENAsideLongToolGroupService.js b/wax-prosemirror-services/src/OENContainersService/OENAsideLongToolGroupService/OENAsideLongToolGroupService.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/OENAsideLongToolGroupService/OENAsideLongToolGroupService.js rename to wax-prosemirror-services/src/OENContainersService/OENAsideLongToolGroupService/OENAsideLongToolGroupService.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/OENAsideShortToolGroupService/OENAsideShortToolGroup.js b/wax-prosemirror-services/src/OENContainersService/OENAsideShortToolGroupService/OENAsideShortToolGroup.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/OENAsideShortToolGroupService/OENAsideShortToolGroup.js rename to wax-prosemirror-services/src/OENContainersService/OENAsideShortToolGroupService/OENAsideShortToolGroup.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/OENAsideShortToolGroupService/OENAsideShortToolGroupService.js b/wax-prosemirror-services/src/OENContainersService/OENAsideShortToolGroupService/OENAsideShortToolGroupService.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/OENAsideShortToolGroupService/OENAsideShortToolGroupService.js rename to wax-prosemirror-services/src/OENContainersService/OENAsideShortToolGroupService/OENAsideShortToolGroupService.js diff --git a/wax-prosemirror-services/src/OENContainersService/OENContainersService.js b/wax-prosemirror-services/src/OENContainersService/OENContainersService.js index f5498c498b5dcd96a39c8caac98c0c69c065044b..18c81c74628c7655cd0a7a97ca9a13ed24b844b3 100644 --- a/wax-prosemirror-services/src/OENContainersService/OENContainersService.js +++ b/wax-prosemirror-services/src/OENContainersService/OENContainersService.js @@ -9,6 +9,8 @@ import OENAsideShortToolTip from './OENAsideShortToolTip'; import OENAsideShortToolWarning from './OENAsideShortToolWarning'; import OENAsideShortToolReminder from './OENAsideShortToolReminder'; import PopulateHeadingsComponent from './PopulateHeadingsComponent'; +import OENLeftToolGroupService from './OENLeftToolGroupService/OENLeftToolGroupService'; +import OENContainersToolGroupService from './OENContainersToolGroupService/OENContainersToolGroupService'; import './oenContainers.css'; class OENContainersService extends Service { @@ -59,6 +61,11 @@ class OENContainersService extends Service { }, ); } + + dependencies = [ + new OENLeftToolGroupService(), + new OENContainersToolGroupService(), + ]; } export default OENContainersService; diff --git a/wax-prosemirror-services/src/WaxToolGroups/OENContainersToolGroupService/OENContainersToolGroup.js b/wax-prosemirror-services/src/OENContainersService/OENContainersToolGroupService/OENContainersToolGroup.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/OENContainersToolGroupService/OENContainersToolGroup.js rename to wax-prosemirror-services/src/OENContainersService/OENContainersToolGroupService/OENContainersToolGroup.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/OENContainersToolGroupService/OENContainersToolGroupService.js b/wax-prosemirror-services/src/OENContainersService/OENContainersToolGroupService/OENContainersToolGroupService.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/OENContainersToolGroupService/OENContainersToolGroupService.js rename to wax-prosemirror-services/src/OENContainersService/OENContainersToolGroupService/OENContainersToolGroupService.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/OENLeftToolGroupService/OENLeftToolGroupService.js b/wax-prosemirror-services/src/OENContainersService/OENLeftToolGroupService/OENLeftToolGroupService.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/OENLeftToolGroupService/OENLeftToolGroupService.js rename to wax-prosemirror-services/src/OENContainersService/OENLeftToolGroupService/OENLeftToolGroupService.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/OENLeftToolGroupService/OENTools.js b/wax-prosemirror-services/src/OENContainersService/OENLeftToolGroupService/OENTools.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/OENLeftToolGroupService/OENTools.js rename to wax-prosemirror-services/src/OENContainersService/OENLeftToolGroupService/OENTools.js diff --git a/wax-prosemirror-services/src/SpecialCharactersService/SpecialCharactersService.js b/wax-prosemirror-services/src/SpecialCharactersService/SpecialCharactersService.js index e157b2d787483ac09240bf0b38448e6599bfc901..146e558931c7f1e3971701ea4e4322b129961b14 100644 --- a/wax-prosemirror-services/src/SpecialCharactersService/SpecialCharactersService.js +++ b/wax-prosemirror-services/src/SpecialCharactersService/SpecialCharactersService.js @@ -1,5 +1,6 @@ import { Service } from 'wax-prosemirror-core'; import SpecialCharactersTool from './SpecialCharactersTool'; +import SpecialCharactersToolGroupService from './SpecialCharactersToolGroupService/SpecialCharactersToolGroupService'; class SpecialCharactersService extends Service { name = 'SpecialCharactersService'; @@ -7,5 +8,7 @@ class SpecialCharactersService extends Service { register() { this.container.bind('SpecialCharactersTool').to(SpecialCharactersTool); } + + dependencies = [new SpecialCharactersToolGroupService()]; } export default SpecialCharactersService; diff --git a/wax-prosemirror-services/src/WaxToolGroups/SpecialCharactersToolGroupService/SpecialCharacters.js b/wax-prosemirror-services/src/SpecialCharactersService/SpecialCharactersToolGroupService/SpecialCharacters.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/SpecialCharactersToolGroupService/SpecialCharacters.js rename to wax-prosemirror-services/src/SpecialCharactersService/SpecialCharactersToolGroupService/SpecialCharacters.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/SpecialCharactersToolGroupService/SpecialCharactersToolGroupService.js b/wax-prosemirror-services/src/SpecialCharactersService/SpecialCharactersToolGroupService/SpecialCharactersToolGroupService.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/SpecialCharactersToolGroupService/SpecialCharactersToolGroupService.js rename to wax-prosemirror-services/src/SpecialCharactersService/SpecialCharactersToolGroupService/SpecialCharactersToolGroupService.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/TextToolGroupService/Text.js b/wax-prosemirror-services/src/TextBlockLevel/TextToolGroupService/Text.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/TextToolGroupService/Text.js rename to wax-prosemirror-services/src/TextBlockLevel/TextToolGroupService/Text.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/TextToolGroupService/TextToolGroupService.js b/wax-prosemirror-services/src/TextBlockLevel/TextToolGroupService/TextToolGroupService.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/TextToolGroupService/TextToolGroupService.js rename to wax-prosemirror-services/src/TextBlockLevel/TextToolGroupService/TextToolGroupService.js diff --git a/wax-prosemirror-services/src/TextBlockLevel/index.js b/wax-prosemirror-services/src/TextBlockLevel/index.js index 011f2941e73d71fdd81052100325f08af5762e97..880387eb2d1c3a584c49613af7131d326d115ea4 100644 --- a/wax-prosemirror-services/src/TextBlockLevel/index.js +++ b/wax-prosemirror-services/src/TextBlockLevel/index.js @@ -4,6 +4,7 @@ import ParagraphContinuedService from './ParagraphContinuedService/ParagraphCont import ParagraphService from './ParagraphService/ParagraphService'; import SourceNoteService from './SourceNoteService/SourceNoteService'; import BlockQuoteService from './BlockQuoteService/BlockQuoteService'; +import TextToolGroupService from './TextToolGroupService/TextToolGroupService'; export default [ new ExtractPoetryService(), @@ -12,4 +13,5 @@ export default [ new ParagraphService(), new SourceNoteService(), new BlockQuoteService(), + new TextToolGroupService(), ]; diff --git a/wax-prosemirror-services/src/WaxToolGroups/TrackCommentOptionsToolGroupService/TrackCommentOptions.js b/wax-prosemirror-services/src/TrackChangeService/TrackCommentOptionsToolGroupService/TrackCommentOptions.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/TrackCommentOptionsToolGroupService/TrackCommentOptions.js rename to wax-prosemirror-services/src/TrackChangeService/TrackCommentOptionsToolGroupService/TrackCommentOptions.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/TrackCommentOptionsToolGroupService/TrackCommentOptionsToolGroupService.js b/wax-prosemirror-services/src/TrackChangeService/TrackCommentOptionsToolGroupService/TrackCommentOptionsToolGroupService.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/TrackCommentOptionsToolGroupService/TrackCommentOptionsToolGroupService.js rename to wax-prosemirror-services/src/TrackChangeService/TrackCommentOptionsToolGroupService/TrackCommentOptionsToolGroupService.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/TrackOptionsToolGroupService/TrackOptions.js b/wax-prosemirror-services/src/TrackChangeService/TrackOptionsToolGroupService/TrackOptions.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/TrackOptionsToolGroupService/TrackOptions.js rename to wax-prosemirror-services/src/TrackChangeService/TrackOptionsToolGroupService/TrackOptions.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/TrackOptionsToolGroupService/TrackOptionsToolGroupService.js b/wax-prosemirror-services/src/TrackChangeService/TrackOptionsToolGroupService/TrackOptionsToolGroupService.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/TrackOptionsToolGroupService/TrackOptionsToolGroupService.js rename to wax-prosemirror-services/src/TrackChangeService/TrackOptionsToolGroupService/TrackOptionsToolGroupService.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/TrackingAndEditingToolGroupService/TrackingAndEditing.js b/wax-prosemirror-services/src/TrackChangeService/TrackingAndEditingToolGroupService/TrackingAndEditing.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/TrackingAndEditingToolGroupService/TrackingAndEditing.js rename to wax-prosemirror-services/src/TrackChangeService/TrackingAndEditingToolGroupService/TrackingAndEditing.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/TrackingAndEditingToolGroupService/TrackingAndEditingToolGroupService.js b/wax-prosemirror-services/src/TrackChangeService/TrackingAndEditingToolGroupService/TrackingAndEditingToolGroupService.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/TrackingAndEditingToolGroupService/TrackingAndEditingToolGroupService.js rename to wax-prosemirror-services/src/TrackChangeService/TrackingAndEditingToolGroupService/TrackingAndEditingToolGroupService.js diff --git a/wax-prosemirror-services/src/TrackChangeService/index.js b/wax-prosemirror-services/src/TrackChangeService/index.js index ca7a771cb05a5621457b158248715ac0dc7921db..82159a1bc190a1a6f25b0588972e570fcca7911e 100644 --- a/wax-prosemirror-services/src/TrackChangeService/index.js +++ b/wax-prosemirror-services/src/TrackChangeService/index.js @@ -2,10 +2,16 @@ import EnableTrackChangeService from './EnableTrackChangeService/EnableTrackChan import AcceptTrackChangeService from './AcceptTrackChangeService/AcceptTrackChangeService'; import RejectTrackChangeService from './RejectTrackChangeService/RejectTrackChangeService'; import ShowHideTrackChangeService from './ShowHideTrackChangeService/ShowHideTrackChangeService'; +import TrackingAndEditingToolGroupService from './TrackingAndEditingToolGroupService/TrackingAndEditingToolGroupService'; +import TrackOptionsToolGroupService from './TrackOptionsToolGroupService/TrackOptionsToolGroupService'; +import TrackCommentOptionsToolGroupService from './TrackCommentOptionsToolGroupService/TrackCommentOptionsToolGroupService'; export default [ new EnableTrackChangeService(), new AcceptTrackChangeService(), new RejectTrackChangeService(), new ShowHideTrackChangeService(), + new TrackingAndEditingToolGroupService(), + new TrackOptionsToolGroupService(), + new TrackCommentOptionsToolGroupService(), ]; diff --git a/wax-prosemirror-services/src/TransformService/TransformService.js b/wax-prosemirror-services/src/TransformService/TransformService.js index fec4cb122dc42bcaa00b4e40670ef0e45bdaa6b2..565f68f6c3cefce868c625ce64a39b23b8438be2 100644 --- a/wax-prosemirror-services/src/TransformService/TransformService.js +++ b/wax-prosemirror-services/src/TransformService/TransformService.js @@ -1,8 +1,11 @@ import { Service } from 'wax-prosemirror-core'; import TransformTool from './TransformTool'; +import TransformToolGroupService from './TransformToolGroupService/TransformToolGroupService'; export default class TransformService extends Service { register() { this.container.bind('TransformTool').to(TransformTool); } + + dependencies = [new TransformToolGroupService()]; } diff --git a/wax-prosemirror-services/src/WaxToolGroups/TransformToolGroupService/TransformToolGroup.js b/wax-prosemirror-services/src/TransformService/TransformToolGroupService/TransformToolGroup.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/TransformToolGroupService/TransformToolGroup.js rename to wax-prosemirror-services/src/TransformService/TransformToolGroupService/TransformToolGroup.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/TransformToolGroupService/TransformToolGroupService.js b/wax-prosemirror-services/src/TransformService/TransformToolGroupService/TransformToolGroupService.js similarity index 100% rename from wax-prosemirror-services/src/WaxToolGroups/TransformToolGroupService/TransformToolGroupService.js rename to wax-prosemirror-services/src/TransformService/TransformToolGroupService/TransformToolGroupService.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/TitleToolGroupService/TitleTool.js b/wax-prosemirror-services/src/WaxToolGroups/TitleToolGroupService/TitleTool.js deleted file mode 100644 index ffb22fec4ab399504d1f968bb056c4ca3ae309a2..0000000000000000000000000000000000000000 --- a/wax-prosemirror-services/src/WaxToolGroups/TitleToolGroupService/TitleTool.js +++ /dev/null @@ -1,14 +0,0 @@ -import { injectable, inject } from 'inversify'; -import { ToolGroup } from 'wax-prosemirror-core'; - -@injectable() -class TitleTool extends ToolGroup { - tools = []; - - constructor(@inject('Title') title) { - super(); - this.tools = [title]; - } -} - -export default TitleTool; diff --git a/wax-prosemirror-services/src/WaxToolGroups/TitleToolGroupService/TitleToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/TitleToolGroupService/TitleToolGroupService.js deleted file mode 100644 index b034747792b976b615b66d0a066312b1b1ca3b56..0000000000000000000000000000000000000000 --- a/wax-prosemirror-services/src/WaxToolGroups/TitleToolGroupService/TitleToolGroupService.js +++ /dev/null @@ -1,11 +0,0 @@ -import { Service } from 'wax-prosemirror-core'; -import TitleTool from './TitleTool'; -import './titleTool.css'; - -class TitleToolGroupService extends Service { - register() { - this.container.bind('TitleTool').to(TitleTool); - } -} - -export default TitleToolGroupService; diff --git a/wax-prosemirror-services/src/WaxToolGroups/TitleToolGroupService/titleTool.css b/wax-prosemirror-services/src/WaxToolGroups/TitleToolGroupService/titleTool.css deleted file mode 100644 index 4f95e94a8c5913c3a6ec11666cf393c8b0616493..0000000000000000000000000000000000000000 --- a/wax-prosemirror-services/src/WaxToolGroups/TitleToolGroupService/titleTool.css +++ /dev/null @@ -1,3 +0,0 @@ - div[data-name='TitleTool'] button { - width: 90px; - } \ No newline at end of file diff --git a/wax-questions-service/src/MultipleChoiceQuestionService/components/FeedbackComponent.js b/wax-questions-service/src/MultipleChoiceQuestionService/components/FeedbackComponent.js index 1634d5bcf22d5a3aae17c3190a6d3d9a78cdebe8..c0d48226b64135462b219977b8a38dc968287807 100644 --- a/wax-questions-service/src/MultipleChoiceQuestionService/components/FeedbackComponent.js +++ b/wax-questions-service/src/MultipleChoiceQuestionService/components/FeedbackComponent.js @@ -1,4 +1,4 @@ -import React, { useContext, useRef, useState } from 'react'; +import React, { useContext, useRef, useState, useMemo, useEffect } from 'react'; import styled from 'styled-components'; import { TextSelection } from 'prosemirror-state'; import { WaxContext, DocumentHelpers } from 'wax-prosemirror-core'; @@ -50,6 +50,7 @@ export default ({ node, getPos, readOnly }) => { pmViews: { main }, } = context; + const [isFirstRun, setFirstRun] = useState(true); const [feedBack, setFeedBack] = useState(node.attrs.feedback); const feedBackRef = useRef(null); @@ -91,21 +92,30 @@ export default ({ node, getPos, readOnly }) => { }, 50); }; - return ( - <FeedBack> - <FeedBackLabel>Feedback</FeedBackLabel> - <FeedBackInput - onChange={feedBackInput} - onFocus={onFocus} - placeholder="Insert feedback" - readOnly={readOnly} - ref={feedBackRef} - rows="1" - style={{ height: setHeight() }} - type="text" - value={feedBack} - /> - </FeedBack> + useEffect(() => { + setTimeout(() => { + setFirstRun(false); + }); + }, []); + + return useMemo( + () => ( + <FeedBack> + <FeedBackLabel>Feedback</FeedBackLabel> + <FeedBackInput + onChange={feedBackInput} + onFocus={onFocus} + placeholder="Insert feedback" + readOnly={readOnly} + ref={feedBackRef} + rows="1" + style={{ height: setHeight() }} + type="text" + value={feedBack} + /> + </FeedBack> + ), + [feedBack, isFirstRun], ); }; diff --git a/wax-questions-service/src/MultipleChoiceQuestionService/components/YesNoSwitch.js b/wax-questions-service/src/MultipleChoiceQuestionService/components/YesNoSwitch.js index 42403815b4f94e8c28bd30b3fe8207e8713c8c37..bbea9e0bd1abe9ca0c207c1673c24419ce865998 100644 --- a/wax-questions-service/src/MultipleChoiceQuestionService/components/YesNoSwitch.js +++ b/wax-questions-service/src/MultipleChoiceQuestionService/components/YesNoSwitch.js @@ -52,7 +52,7 @@ const YesNoSwitch = ({ }) => { const { testMode, showFeedBack } = customProps; - if (showFeedBack) { + if (showFeedBack && node) { const correct = node.attrs.correct ? 'YES' : 'NO'; const answer = node.attrs.answer ? 'YES' : 'NO'; const isCorrect = node.attrs.correct === node.attrs.answer; diff --git a/wax-questions-service/src/MultipleDropDownService/plugins/FakeCursorPlugin.js b/wax-questions-service/src/MultipleDropDownService/plugins/FakeCursorPlugin.js index dd51ee312763e546366c118e54eb4e8ef02eb2b4..05b0f57967ed09b97e739a38f73ce24d919c97fa 100644 --- a/wax-questions-service/src/MultipleDropDownService/plugins/FakeCursorPlugin.js +++ b/wax-questions-service/src/MultipleDropDownService/plugins/FakeCursorPlugin.js @@ -12,11 +12,13 @@ export default props => { init: (_, state) => {}, apply(tr, prev, _, newState) { let createDecoration; + if ( newState.selection.from === newState.selection.to && Commands.isInTable(newState) ) { - const widget = document.createElement('fakecursor'); + const widget = document.createElement('span'); + widget.setAttribute('id', 'fake-cursor'); createDecoration = DecorationSet.create(newState.doc, [ Decoration.widget(newState.selection.from, widget, { key: 'fakecursor', @@ -38,22 +40,34 @@ export default props => { handleDOMEvents: { focus: (view, event) => { event.preventDefault(); - const fakeCursor = document.getElementsByTagName('fakecursor'); - if (fakeCursor && fakeCursor[0]) { - for (let i = 0; i < fakeCursor.length; i++) { - fakeCursor[i].style.visibility = 'hidden'; + const fakeCursor = document.getElementById('fake-cursor'); + if (fakeCursor) { + if ( + navigator.userAgent.includes('Firefox') && + view.state.selection.$from.nodeBefore == null + ) { + fakeCursor.style.visibility = 'hidden'; + } else { + fakeCursor.style.display = 'none'; } } }, blur: (view, event) => { event.preventDefault(); if (view && event.relatedTarget === null) { - view.focus(); + setTimeout(() => { + view.focus(); + }); } else { - const fakeCursor = document.getElementsByTagName('fakecursor'); - if (fakeCursor && fakeCursor[0]) { - for (let i = 0; i < fakeCursor.length; i++) { - fakeCursor[i].style.visibility = 'visible'; + const fakeCursor = document.getElementById('fake-cursor'); + if (fakeCursor) { + if ( + navigator.userAgent.includes('Firefox') && + view.state.selection.$from.nodeBefore === null + ) { + fakeCursor.style.visibility = 'visible'; + } else { + fakeCursor.style.display = 'inline'; } } }