@ckeditor/ckeditor5-core 35.3.2 → 35.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckeditor/ckeditor5-core",
3
- "version": "35.3.2",
3
+ "version": "35.4.0",
4
4
  "description": "The core architecture of CKEditor 5 – the best browser-based rich text editor.",
5
5
  "keywords": [
6
6
  "wysiwyg",
@@ -23,25 +23,25 @@
23
23
  ],
24
24
  "main": "src/index.js",
25
25
  "dependencies": {
26
- "@ckeditor/ckeditor5-engine": "^35.3.2",
27
- "@ckeditor/ckeditor5-ui": "^35.3.2",
28
- "@ckeditor/ckeditor5-utils": "^35.3.2",
26
+ "@ckeditor/ckeditor5-engine": "^35.4.0",
27
+ "@ckeditor/ckeditor5-ui": "^35.4.0",
28
+ "@ckeditor/ckeditor5-utils": "^35.4.0",
29
29
  "lodash-es": "^4.17.15"
30
30
  },
31
31
  "devDependencies": {
32
- "@ckeditor/ckeditor5-autoformat": "^35.3.2",
33
- "@ckeditor/ckeditor5-basic-styles": "^35.3.2",
34
- "@ckeditor/ckeditor5-block-quote": "^35.3.2",
35
- "@ckeditor/ckeditor5-editor-classic": "^35.3.2",
36
- "@ckeditor/ckeditor5-essentials": "^35.3.2",
37
- "@ckeditor/ckeditor5-heading": "^35.3.2",
38
- "@ckeditor/ckeditor5-image": "^35.3.2",
39
- "@ckeditor/ckeditor5-indent": "^35.3.2",
40
- "@ckeditor/ckeditor5-link": "^35.3.2",
41
- "@ckeditor/ckeditor5-list": "^35.3.2",
42
- "@ckeditor/ckeditor5-media-embed": "^35.3.2",
43
- "@ckeditor/ckeditor5-paragraph": "^35.3.2",
44
- "@ckeditor/ckeditor5-table": "^35.3.2",
32
+ "@ckeditor/ckeditor5-autoformat": "^35.4.0",
33
+ "@ckeditor/ckeditor5-basic-styles": "^35.4.0",
34
+ "@ckeditor/ckeditor5-block-quote": "^35.4.0",
35
+ "@ckeditor/ckeditor5-editor-classic": "^35.4.0",
36
+ "@ckeditor/ckeditor5-essentials": "^35.4.0",
37
+ "@ckeditor/ckeditor5-heading": "^35.4.0",
38
+ "@ckeditor/ckeditor5-image": "^35.4.0",
39
+ "@ckeditor/ckeditor5-indent": "^35.4.0",
40
+ "@ckeditor/ckeditor5-link": "^35.4.0",
41
+ "@ckeditor/ckeditor5-list": "^35.4.0",
42
+ "@ckeditor/ckeditor5-media-embed": "^35.4.0",
43
+ "@ckeditor/ckeditor5-paragraph": "^35.4.0",
44
+ "@ckeditor/ckeditor5-table": "^35.4.0",
45
45
  "typescript": "^4.8.4",
46
46
  "webpack": "^5.58.1",
47
47
  "webpack-cli": "^4.9.0"
package/src/command.js CHANGED
@@ -2,27 +2,30 @@
2
2
  * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
- import { Observable } from '@ckeditor/ckeditor5-utils/src/observablemixin';
6
5
  /**
7
- * The base class for CKEditor commands.
6
+ * @module core/command
7
+ */
8
+ import { ObservableMixin } from '@ckeditor/ckeditor5-utils';
9
+ /**
10
+ * Base class for the CKEditor commands.
8
11
  *
9
- * Commands are the main way to manipulate editor contents and state. They are mostly used by UI elements (or by other
10
- * commands) to make changes in the model. Commands are available in every part of code that has access to
12
+ * Commands are the main way to manipulate the editor contents and state. They are mostly used by UI elements (or by other
13
+ * commands) to make changes in the model. Commands are available in every part of the code that has access to
11
14
  * the {@link module:core/editor/editor~Editor editor} instance.
12
15
  *
13
16
  * Instances of registered commands can be retrieved from {@link module:core/editor/editor~Editor#commands `editor.commands`}.
14
17
  * The easiest way to execute a command is through {@link module:core/editor/editor~Editor#execute `editor.execute()`}.
15
18
  *
16
- * By default, commands are disabled when the editor is in {@link module:core/editor/editor~Editor#isReadOnly read-only} mode
19
+ * By default, commands are disabled when the editor is in the {@link module:core/editor/editor~Editor#isReadOnly read-only} mode
17
20
  * but commands with the {@link module:core/command~Command#affectsData `affectsData`} flag set to `false` will not be disabled.
18
21
  *
19
22
  * @mixes module:utils/observablemixin~ObservableMixin
20
23
  */
21
- export default class Command extends Observable {
24
+ export default class Command extends ObservableMixin() {
22
25
  /**
23
26
  * Creates a new `Command` instance.
24
27
  *
25
- * @param {module:core/editor/editor~Editor} editor Editor on which this command will be used.
28
+ * @param {module:core/editor/editor~Editor} editor The editor on which this command will be used.
26
29
  */
27
30
  constructor(editor) {
28
31
  super();
@@ -34,14 +37,14 @@ export default class Command extends Observable {
34
37
  */
35
38
  this.editor = editor;
36
39
  /**
37
- * The value of the command. A concrete command class should define what it represents for it.
40
+ * The value of the command. A given command class should define what it represents for it.
38
41
  *
39
42
  * For example, the `'bold'` command's value indicates whether the selection starts in a bolded text.
40
- * And the value of the `'link'` command may be an object with links details.
43
+ * And the value of the `'link'` command may be an object with link details.
41
44
  *
42
45
  * It is possible for a command to have no value (e.g. for stateless actions such as `'uploadImage'`).
43
46
  *
44
- * A concrete command class should control this value by overriding the {@link #refresh `refresh()`} method.
47
+ * A given command class should control this value by overriding the {@link #refresh `refresh()`} method.
45
48
  *
46
49
  * @observable
47
50
  * @readonly
@@ -52,9 +55,9 @@ export default class Command extends Observable {
52
55
  * Flag indicating whether a command is enabled or disabled.
53
56
  * A disabled command will do nothing when executed.
54
57
  *
55
- * A concrete command class should control this value by overriding the {@link #refresh `refresh()`} method.
58
+ * A given command class should control this value by overriding the {@link #refresh `refresh()`} method.
56
59
  *
57
- * It is possible to disable a command from "outside". For instance, in your integration you may want to disable
60
+ * It is possible to disable a command "from outside". For instance, in your integration you may want to disable
58
61
  * a certain set of commands for the time being. To do that, you can use the fact that `isEnabled` is observable
59
62
  * and it fires the `set:isEnabled` event every time anyone tries to modify its value:
60
63
  *
@@ -149,7 +152,7 @@ export default class Command extends Observable {
149
152
  * Disables the command.
150
153
  *
151
154
  * Command may be disabled by multiple features or algorithms (at once). When disabling a command, unique id should be passed
152
- * (e.g. feature name). The same identifier should be used when {@link #clearForceDisabled enabling back} the command.
155
+ * (e.g. the feature name). The same identifier should be used when {@link #clearForceDisabled enabling back} the command.
153
156
  * The command becomes enabled only after all features {@link #clearForceDisabled enabled it back}.
154
157
  *
155
158
  * Disabling and enabling a command:
@@ -5,7 +5,7 @@
5
5
  /**
6
6
  * @module core/commandcollection
7
7
  */
8
- import CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';
8
+ import { CKEditorError } from '@ckeditor/ckeditor5-utils';
9
9
  /**
10
10
  * Collection of commands. Its instance is available in {@link module:core/editor/editor~Editor#commands `editor.commands`}.
11
11
  */
package/src/context.js CHANGED
@@ -5,17 +5,14 @@
5
5
  /**
6
6
  * @module core/context
7
7
  */
8
- import Config from '@ckeditor/ckeditor5-utils/src/config';
9
- import Collection from '@ckeditor/ckeditor5-utils/src/collection';
8
+ import { Config, Collection, CKEditorError, Locale } from '@ckeditor/ckeditor5-utils';
10
9
  import PluginCollection from './plugincollection';
11
- import Locale from '@ckeditor/ckeditor5-utils/src/locale';
12
- import CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';
13
10
  /**
14
11
  * Provides a common, higher-level environment for solutions that use multiple {@link module:core/editor/editor~Editor editors}
15
12
  * or plugins that work outside the editor. Use it instead of {@link module:core/editor/editor~Editor.create `Editor.create()`}
16
13
  * in advanced application integrations.
17
14
  *
18
- * All configuration options passed to a context will be used as default options for editor instances initialized in that context.
15
+ * All configuration options passed to a context will be used as default options for the editor instances initialized in that context.
19
16
  *
20
17
  * {@link module:core/contextplugin~ContextPlugin Context plugins} passed to a context instance will be shared among all
21
18
  * editor instances initialized in this context. These will be the same plugin instances for all the editors.
@@ -33,7 +30,7 @@ import CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';
33
30
  * enable and configure them using the context.
34
31
  *
35
32
  * If you are using only a single editor on each page, use {@link module:core/editor/editor~Editor.create `Editor.create()`} instead.
36
- * In such case, a context instance will be created by the editor instance in a transparent way.
33
+ * In such a case, a context instance will be created by the editor instance in a transparent way.
37
34
  *
38
35
  * See {@link module:core/context~Context.create `Context.create()`} for usage examples.
39
36
  */
@@ -5,7 +5,7 @@
5
5
  /**
6
6
  * @module core/contextplugin
7
7
  */
8
- import { Observable } from '@ckeditor/ckeditor5-utils/src/observablemixin';
8
+ import { ObservableMixin } from '@ckeditor/ckeditor5-utils';
9
9
  /**
10
10
  * The base class for {@link module:core/context~Context} plugin classes.
11
11
  *
@@ -23,7 +23,7 @@ import { Observable } from '@ckeditor/ckeditor5-utils/src/observablemixin';
23
23
  * @implements module:core/plugin~PluginInterface
24
24
  * @mixes module:utils/observablemixin~ObservableMixin
25
25
  */
26
- export default class ContextPlugin extends Observable {
26
+ export default class ContextPlugin extends ObservableMixin() {
27
27
  /**
28
28
  * Creates a new plugin instance.
29
29
  *
@@ -5,7 +5,7 @@
5
5
  /**
6
6
  * @module core/editingkeystrokehandler
7
7
  */
8
- import KeystrokeHandler from '@ckeditor/ckeditor5-utils/src/keystrokehandler';
8
+ import { KeystrokeHandler } from '@ckeditor/ckeditor5-utils';
9
9
  /**
10
10
  * A keystroke handler for editor editing. Its instance is available
11
11
  * in {@link module:core/editor/editor~Editor#keystrokes} so plugins
@@ -5,18 +5,12 @@
5
5
  /**
6
6
  * @module core/editor/editor
7
7
  */
8
+ import { Config, CKEditorError, ObservableMixin } from '@ckeditor/ckeditor5-utils';
9
+ import { Conversion, DataController, EditingController, Model, StylesProcessor } from '@ckeditor/ckeditor5-engine';
8
10
  import Context from '../context';
9
- import Config from '@ckeditor/ckeditor5-utils/src/config';
10
- import EditingController from '@ckeditor/ckeditor5-engine/src/controller/editingcontroller';
11
11
  import PluginCollection from '../plugincollection';
12
12
  import CommandCollection from '../commandcollection';
13
- import DataController from '@ckeditor/ckeditor5-engine/src/controller/datacontroller';
14
- import Conversion from '@ckeditor/ckeditor5-engine/src/conversion/conversion';
15
- import Model from '@ckeditor/ckeditor5-engine/src/model/model';
16
13
  import EditingKeystrokeHandler from '../editingkeystrokehandler';
17
- import { Observable } from '@ckeditor/ckeditor5-utils/src/observablemixin';
18
- import CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';
19
- import { StylesProcessor } from '@ckeditor/ckeditor5-engine/src/view/stylesmap';
20
14
  /**
21
15
  * The class representing a basic, generic editor.
22
16
  *
@@ -38,7 +32,7 @@ import { StylesProcessor } from '@ckeditor/ckeditor5-engine/src/view/stylesmap';
38
32
  * @abstract
39
33
  * @mixes module:utils/observablemixin~ObservableMixin
40
34
  */
41
- export default class Editor extends Observable {
35
+ export default class Editor extends ObservableMixin() {
42
36
  /**
43
37
  * Creates a new instance of the editor class.
44
38
  *
@@ -2,17 +2,17 @@
2
2
  * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
+ // TODO: can't import it from `@ckeditor/ckeditor5-ui` because of indirect circular dependency
6
+ // between `@ckeditor/ckeditor5-{ui,core}/src/index.ts`.
5
7
  import ComponentFactory from '@ckeditor/ckeditor5-ui/src/componentfactory';
6
- import FocusTracker from '@ckeditor/ckeditor5-utils/src/focustracker';
7
8
  import TooltipManager from '@ckeditor/ckeditor5-ui/src/tooltipmanager';
8
- import { Observable } from '@ckeditor/ckeditor5-utils/src/observablemixin';
9
- import isVisible from '@ckeditor/ckeditor5-utils/src/dom/isvisible';
9
+ import { ObservableMixin, isVisible, FocusTracker } from '@ckeditor/ckeditor5-utils';
10
10
  /**
11
11
  * A class providing the minimal interface that is required to successfully bootstrap any editor UI.
12
12
  *
13
13
  * @mixes module:utils/emittermixin~EmitterMixin
14
14
  */
15
- export default class EditorUI extends Observable {
15
+ export default class EditorUI extends ObservableMixin() {
16
16
  /**
17
17
  * Creates an instance of the editor UI class.
18
18
  *
@@ -3,7 +3,7 @@
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  import { isFunction } from 'lodash-es';
6
- import CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';
6
+ import { CKEditorError } from '@ckeditor/ckeditor5-utils';
7
7
  /**
8
8
  * @module core/editor/utils/attachtoform
9
9
  */
@@ -3,8 +3,7 @@
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
6
- import CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';
7
- import setDataInElement from '@ckeditor/ckeditor5-utils/src/dom/setdatainelement';
6
+ import { CKEditorError, setDataInElement } from '@ckeditor/ckeditor5-utils';
8
7
  /**
9
8
  * @module core/editor/utils/elementapimixin
10
9
  */
@@ -2,7 +2,7 @@
2
2
  * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
- import CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';
5
+ import { CKEditorError } from '@ckeditor/ckeditor5-utils';
6
6
  /**
7
7
  * @module core/editor/utils/securesourceelement
8
8
  */
@@ -3,7 +3,7 @@
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  import Command from './command';
6
- import insertToPriorityArray from '@ckeditor/ckeditor5-utils/src/inserttopriorityarray';
6
+ import { insertToPriorityArray } from '@ckeditor/ckeditor5-utils';
7
7
  /**
8
8
  * @module core/multicommand
9
9
  */
@@ -12,7 +12,7 @@ import insertToPriorityArray from '@ckeditor/ckeditor5-utils/src/inserttopriorit
12
12
  *
13
13
  * This command is used to proxy multiple commands. The multi-command is enabled when
14
14
  * at least one of its registered child commands is enabled.
15
- * When executing a multi-command the first enabled command with highest priority will be executed.
15
+ * When executing a multi-command, the first enabled command with highest priority will be executed.
16
16
  *
17
17
  * const multiCommand = new MultiCommand( editor );
18
18
  *
@@ -69,7 +69,7 @@ export default class MultiCommand extends Command {
69
69
  */
70
70
  registerChildCommand(command, options = {}) {
71
71
  insertToPriorityArray(this._childCommandsDefinitions, { command, priority: options.priority || 'normal' });
72
- // Change multi command enabled state when one of registered commands changes state.
72
+ // Change multi-command enabled state when one of registered commands changes state.
73
73
  command.on('change:isEnabled', () => this._checkEnabled());
74
74
  this._checkEnabled();
75
75
  }
@@ -6,9 +6,7 @@
6
6
  * @module core/pendingactions
7
7
  */
8
8
  import ContextPlugin from './contextplugin';
9
- import { Observable } from '@ckeditor/ckeditor5-utils/src/observablemixin';
10
- import Collection from '@ckeditor/ckeditor5-utils/src/collection';
11
- import CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';
9
+ import { CKEditorError, Collection, ObservableMixin } from '@ckeditor/ckeditor5-utils';
12
10
  /**
13
11
  * The list of pending editor actions.
14
12
  *
@@ -95,7 +93,7 @@ export default class PendingActions extends ContextPlugin {
95
93
  */
96
94
  throw new CKEditorError('pendingactions-add-invalid-message', this);
97
95
  }
98
- const action = new Observable();
96
+ const action = new (ObservableMixin())();
99
97
  action.set('message', message);
100
98
  this._actions.add(action);
101
99
  this.hasAny = true;
@@ -111,7 +109,7 @@ export default class PendingActions extends ContextPlugin {
111
109
  this.hasAny = !!this._actions.length;
112
110
  }
113
111
  /**
114
- * Returns the first action from the list or null when list is empty
112
+ * Returns the first action from the list or null if the list is empty
115
113
  *
116
114
  * returns {Object|null} The pending action object.
117
115
  */
package/src/plugin.js CHANGED
@@ -6,14 +6,14 @@
6
6
  /**
7
7
  * @module core/plugin
8
8
  */
9
- import { Observable } from '@ckeditor/ckeditor5-utils/src/observablemixin';
9
+ import { ObservableMixin } from '@ckeditor/ckeditor5-utils';
10
10
  /**
11
11
  * The base class for CKEditor plugin classes.
12
12
  *
13
13
  * @implements module:core/plugin~PluginInterface
14
14
  * @mixes module:utils/observablemixin~ObservableMixin
15
15
  */
16
- export default class Plugin extends Observable {
16
+ export default class Plugin extends ObservableMixin() {
17
17
  /**
18
18
  * @inheritDoc
19
19
  */
@@ -5,14 +5,13 @@
5
5
  /**
6
6
  * @module core/plugincollection
7
7
  */
8
- import CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';
9
- import { Emitter } from '@ckeditor/ckeditor5-utils/src/emittermixin';
8
+ import { CKEditorError, EmitterMixin } from '@ckeditor/ckeditor5-utils';
10
9
  /**
11
10
  * Manages a list of CKEditor plugins, including loading, resolving dependencies and initialization.
12
11
  *
13
12
  * @mixes module:utils/emittermixin~EmitterMixin
14
13
  */
15
- export default class PluginCollection extends Emitter {
14
+ export default class PluginCollection extends EmitterMixin() {
16
15
  /**
17
16
  * Creates an instance of the plugin collection class.
18
17
  * Allows loading and initializing plugins and their dependencies.