Skip to content

Commit 80b679b

Browse files
committed
Merge branch 'development'
2 parents af7fb61 + a26d669 commit 80b679b

File tree

10 files changed

+42
-229
lines changed

10 files changed

+42
-229
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# WProofreader plugin for CKEditor 5 Changelog
22

3+
# 3.1.0 - 2024-07-19
4+
5+
* Add basic TypeScript support. [#76](https://github.com/WebSpellChecker/wproofreader-ckeditor5/issues/76).
6+
* Enable 'Proofread in dialog' for multi-root and real-time collaboration modes. [#78](https://github.com/WebSpellChecker/wproofreader-ckeditor5/issues/78).
7+
* Internal changes (updated dependencies, documentation, etc.).
8+
39
## 3.0.0 – 2024-06-26
410

511
Provide support of the new [CKEditor 5 installation methods](https://github.com/ckeditor/ckeditor5/releases/tag/v42.0.0).

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ The multilingual spelling and grammar checking solution for CKEditor 5. It provi
55

66
![WProofreader plugin for CKEditor 5 View](https://webspellchecker.com/app/images/wproofreader_plugin_for_ckeditor5_v3.png)
77

8+
Starting with version 3.1.0, the WProofreader plugin for CKEditor 5 offers basic TypeScript support. The package contains a [type definition file](https://github.com/WebSpellChecker/wproofreader-ckeditor5/blob/master/src/wproofreader.d.ts) (.d.ts), enabling integration and customization of the functionality using [WProofreader options](https://webspellchecker.com/docs/api/wscbundle/Options.html) in TypeScript projects.
9+
810
WProofreader plugin for CKEditor 5 inherits all functionality of the WProofreader component with slight adaptation to the view and features of the editor. For more details, visit the [WProofreader repo](https://github.com/WebSpellChecker/wproofreader) or [official web page](https://webspellchecker.com/wsc-proofreader/).
911

1012
## Table of contents

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@webspellchecker/wproofreader-ckeditor5",
3-
"version": "3.0.0",
3+
"version": "3.1.0",
44
"description": "Multilingual spelling and grammar checking plugin for CKEditor 5",
55
"repository": {
66
"type": "git",
@@ -23,7 +23,10 @@
2323
"main": "dist/index.js",
2424
"module": "dist/index.js",
2525
"exports": {
26-
".": "./dist/index.js",
26+
".": {
27+
"types": "./src/index.d.ts",
28+
"import": "./dist/index.js"
29+
},
2730
"./*.css": "./dist/*.css",
2831
"./src/*": "./src/*",
2932
"./theme/*": "./theme/*",
@@ -61,5 +64,6 @@
6164
},
6265
"peerDependencies": {
6366
"ckeditor5": ">=42.0.0"
64-
}
67+
},
68+
"types": "./src/index.d.ts"
6569
}

samples/app.js

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
1-
import {
2-
ClassicEditor as ClassicEditorBase,
3-
Essentials,
4-
Paragraph,
5-
Heading,
6-
List,
7-
Bold,
8-
Italic
9-
} from 'ckeditor5';
1+
import { ClassicEditor as ClassicEditorBase } from '@ckeditor/ckeditor5-editor-classic';
2+
import { Essentials } from '@ckeditor/ckeditor5-essentials';
3+
import { Paragraph } from '@ckeditor/ckeditor5-paragraph';
4+
import { Heading } from '@ckeditor/ckeditor5-heading';
5+
import { List } from '@ckeditor/ckeditor5-list';
6+
import { Bold } from '@ckeditor/ckeditor5-basic-styles';
7+
import { Italic } from '@ckeditor/ckeditor5-basic-styles';
108

119
import 'ckeditor5/ckeditor5.css'
1210

13-
import { WProofreader } from '../dist/index.js';
11+
import { WProofreader } from '../src/index.js';
1412

1513
export default class ClassicEditor extends ClassicEditorBase {}
1614

samples/multi-root-editor/app.js

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
1-
import {
2-
MultiRootEditor,
3-
Essentials,
4-
Paragraph,
5-
Heading,
6-
List,
7-
Bold,
8-
Italic,
9-
Image
10-
} from 'ckeditor5';
1+
import { MultiRootEditor } from '@ckeditor/ckeditor5-editor-multi-root';
2+
import { Essentials } from '@ckeditor/ckeditor5-essentials';
3+
import { Paragraph } from '@ckeditor/ckeditor5-paragraph';
4+
import { Heading } from '@ckeditor/ckeditor5-heading';
5+
import { List } from '@ckeditor/ckeditor5-list';
6+
import { Bold } from '@ckeditor/ckeditor5-basic-styles';
7+
import { Italic } from '@ckeditor/ckeditor5-basic-styles';
8+
import { Image } from '@ckeditor/ckeditor5-image';
119

1210
import 'ckeditor5/ckeditor5.css'
1311

14-
import { WProofreader } from '../../dist/index.js';
12+
import { WProofreader } from '../../src/index.js';
1513

1614
export default class MultirootEditor extends MultiRootEditor {}
1715

src/index.d.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { Plugin } from '@ckeditor/ckeditor5-core';
2+
3+
export class WProofreader extends Plugin {}
4+
5+
declare module '@ckeditor/ckeditor5-core' {
6+
interface EditorConfig {
7+
wproofreader?: Object;
8+
}
9+
}

src/wproofreader.js

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,6 @@ export default class WProofreader extends Plugin {
4141

4242
this._instances = [];
4343

44-
this._collaborationPluginNames = [
45-
'RealTimeCollaborativeEditing',
46-
'RealTimeCollaborativeTrackChanges',
47-
'RealTimeCollaborativeComments',
48-
'RealTimeCollaborationClient'
49-
];
50-
5144
this._restrictedEditingName = 'RestrictedEditingMode';
5245
}
5346

@@ -191,34 +184,10 @@ export default class WProofreader extends Plugin {
191184
* @private
192185
*/
193186
_setFields() {
194-
this._isMultiRoot = this._checkMultiRoot();
195-
this._isCollaborationMode = this._checkCollaborationMode();
196187
this._isRestrictedEditingMode = this._checkRestrictedEditingMode();
197188
this._options = this._createOptions();
198189
}
199190

200-
/**
201-
* Checks if the current editor has several roots.
202-
* @private
203-
*/
204-
_checkMultiRoot() {
205-
return this.editor.editing.view.domRoots.size > 1 ? true : false;
206-
}
207-
208-
/**
209-
* Checks if the current editor in the real-time collaboration mode.
210-
* @private
211-
*/
212-
_checkCollaborationMode() {
213-
for (let i = 0; i <= this._collaborationPluginNames.length; i++) {
214-
if (this.editor.plugins.has(this._collaborationPluginNames[i])) {
215-
return true;
216-
}
217-
}
218-
219-
return false;
220-
}
221-
222191
/**
223192
* Checks if the current editor in the restricted editing mode.
224193
* @private
@@ -234,7 +203,6 @@ export default class WProofreader extends Plugin {
234203
_createOptions() {
235204
return {
236205
appType: 'proofreader_ck5',
237-
disableDialog: this._isMultiRoot || this._isCollaborationMode,
238206
restrictedEditingMode: this._isRestrictedEditingMode,
239207
disableBadgePulsing: true,
240208
onCommitOptions: this._onCommitOptions.bind(this),

tests/mocks/mock-collaboration-editing.js

Lines changed: 0 additions & 45 deletions
This file was deleted.

tests/wproofreader.js

Lines changed: 0 additions & 127 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,6 @@ import { ClassicEditor } from '@ckeditor/ckeditor5-editor-classic';
22
import WProofreader from '../src/wproofreader.js';
33
import WProofreaderEditing from '../src/wproofreaderediting.js';
44
import WProofreaderUI from '../src/wproofreaderui.js';
5-
import { RealTimeCollaborativeEditing } from './mocks/mock-collaboration-editing.js';
6-
import { RealTimeCollaborativeTrackChanges } from './mocks/mock-collaboration-editing.js';
7-
import { RealTimeCollaborativeComments } from './mocks/mock-collaboration-editing.js';
8-
import { RealTimeCollaborationClient } from './mocks/mock-collaboration-editing.js';
95
import { RestrictedEditingMode } from './mocks/mock-restricted-editing-mode.js';
106

117
describe('WProofreader', () => {
@@ -77,10 +73,6 @@ describe('WProofreader', () => {
7773
expect(wproofreader._options.appType).to.be.equal('proofreader_ck5');
7874
});
7975

80-
it('should not disable dialog option', () => {
81-
expect(wproofreader._options.disableDialog).to.be.false;
82-
});
83-
8476
it('should contain restrictedEditingMode option', () => {
8577
expect(wproofreader._options.restrictedEditingMode).to.be.false;
8678
});
@@ -462,87 +454,6 @@ describe('WProofreader', () => {
462454
});
463455
});
464456

465-
describe('in CKEditor 5 collaboration mode', () => {
466-
it('should disable the dialog option of the WEBSPELLCHECKER because of RealTimeCollaborativeEditing plugin', () => {
467-
return ClassicEditor
468-
.create(element, {
469-
plugins: [WProofreader, RealTimeCollaborativeEditing],
470-
wproofreader: WPROOFREADER_CONFIG
471-
})
472-
.then((editor) => {
473-
const wproofreader = editor.plugins.get('WProofreader');
474-
475-
expect(editor.plugins.has('RealTimeCollaborativeEditing')).to.be.true;
476-
expect(wproofreader._options.disableDialog).to.be.true;
477-
});
478-
});
479-
480-
it('should disable the dialog option of the WEBSPELLCHECKER because of RealTimeCollaborativeTrackChanges plugin', () => {
481-
return ClassicEditor
482-
.create(element, {
483-
plugins: [WProofreader, RealTimeCollaborativeTrackChanges],
484-
wproofreader: WPROOFREADER_CONFIG
485-
})
486-
.then((editor) => {
487-
const wproofreader = editor.plugins.get('WProofreader');
488-
489-
expect(editor.plugins.has('RealTimeCollaborativeTrackChanges')).to.be.true;
490-
expect(wproofreader._options.disableDialog).to.be.true;
491-
});
492-
});
493-
494-
it('should disable the dialog option of the WEBSPELLCHECKER because of RealTimeCollaborativeComments plugin', () => {
495-
return ClassicEditor
496-
.create(element, {
497-
plugins: [WProofreader, RealTimeCollaborativeComments],
498-
wproofreader: WPROOFREADER_CONFIG
499-
})
500-
.then((editor) => {
501-
const wproofreader = editor.plugins.get('WProofreader');
502-
503-
expect(editor.plugins.has('RealTimeCollaborativeComments')).to.be.true;
504-
expect(wproofreader._options.disableDialog).to.be.true;
505-
});
506-
});
507-
508-
it('should disable the dialog option of the WEBSPELLCHECKER because of RealTimeCollaborationClient plugin', () => {
509-
return ClassicEditor
510-
.create(element, {
511-
plugins: [WProofreader, RealTimeCollaborationClient],
512-
wproofreader: WPROOFREADER_CONFIG
513-
})
514-
.then((editor) => {
515-
const wproofreader = editor.plugins.get('WProofreader');
516-
517-
expect(editor.plugins.has('RealTimeCollaborationClient')).to.be.true;
518-
expect(wproofreader._options.disableDialog).to.be.true;
519-
});
520-
});
521-
522-
it('should disable the dialog option of the WEBSPELLCHECKER because of collaboration plugins', () => {
523-
return ClassicEditor
524-
.create(element, {
525-
plugins: [
526-
WProofreader,
527-
RealTimeCollaborativeEditing,
528-
RealTimeCollaborativeTrackChanges,
529-
RealTimeCollaborativeComments,
530-
RealTimeCollaborationClient
531-
],
532-
wproofreader: WPROOFREADER_CONFIG
533-
})
534-
.then((editor) => {
535-
const wproofreader = editor.plugins.get('WProofreader');
536-
537-
expect(editor.plugins.has('RealTimeCollaborativeEditing')).to.be.true;
538-
expect(editor.plugins.has('RealTimeCollaborativeTrackChanges')).to.be.true;
539-
expect(editor.plugins.has('RealTimeCollaborativeComments')).to.be.true;
540-
expect(editor.plugins.has('RealTimeCollaborationClient')).to.be.true;
541-
expect(wproofreader._options.disableDialog).to.be.true;
542-
});
543-
});
544-
});
545-
546457
describe('in CKEditor 5 restricted editing mode', () => {
547458
it('should enable the restrictedEditingMode option of the WEBSPELLCHECKER because of RestrictedEditingMode plugin', () => {
548459
return ClassicEditor
@@ -560,44 +471,6 @@ describe('WProofreader', () => {
560471
});
561472

562473
describe('for multi root environment', () => {
563-
it('should disable the dialog option of the WEBSPELLCHECKER', () => {
564-
const editor = new ClassicEditor(element, {
565-
plugins: [WProofreader],
566-
wproofreader: WPROOFREADER_CONFIG
567-
});
568-
569-
editor.editing.view.domRoots.set('main', element);
570-
editor.editing.view.domRoots.set('second', element);
571-
572-
return editor.initPlugins()
573-
.then(() => {
574-
editor.ui.init(element);
575-
editor.data.init(element);
576-
577-
editor.fire('ready');
578-
579-
return editor;
580-
})
581-
.then(() => {
582-
const wproofreader = editor.plugins.get('WProofreader');
583-
584-
expect(wproofreader._options.disableDialog).to.be.true;
585-
});
586-
});
587-
588-
it('should not disable the dialog option of the WEBSPELLCHECKER', () => {
589-
return ClassicEditor
590-
.create(element, {
591-
plugins: [WProofreader],
592-
wproofreader: WPROOFREADER_CONFIG
593-
})
594-
.then((editor) => {
595-
const wproofreader = editor.plugins.get('WProofreader');
596-
597-
expect(wproofreader._options.disableDialog).to.be.false;
598-
});
599-
});
600-
601474
describe('should synchronize WEBSPELLCHECKER options in the editor with', () => {
602475
let editor;
603476

0 commit comments

Comments
 (0)