@ckeditor/ckeditor5-utils 38.2.0-alpha.1 → 39.0.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.
Files changed (47) hide show
  1. package/README.md +0 -1
  2. package/package.json +2 -3
  3. package/src/collection.d.ts +2 -2
  4. package/src/collection.js +4 -4
  5. package/src/diff.d.ts +1 -1
  6. package/src/diff.js +1 -1
  7. package/src/difftochanges.d.ts +1 -1
  8. package/src/dom/createelement.js +1 -1
  9. package/src/dom/emittermixin.d.ts +3 -3
  10. package/src/dom/emittermixin.js +4 -4
  11. package/src/dom/findclosestscrollableancestor.js +1 -1
  12. package/src/dom/getcommonancestor.js +1 -1
  13. package/src/dom/getelementsintersectionrect.d.ts +17 -0
  14. package/src/dom/getelementsintersectionrect.js +42 -0
  15. package/src/dom/getpositionedancestor.js +1 -1
  16. package/src/dom/getscrollableancestors.d.ts +14 -0
  17. package/src/dom/getscrollableancestors.js +28 -0
  18. package/src/dom/isvalidattributename.js +1 -1
  19. package/src/dom/position.d.ts +1 -1
  20. package/src/dom/position.js +4 -4
  21. package/src/dom/rect.js +4 -4
  22. package/src/dom/resizeobserver.js +1 -1
  23. package/src/dom/scroll.d.ts +3 -1
  24. package/src/dom/scroll.js +12 -7
  25. package/src/emittermixin.d.ts +4 -4
  26. package/src/emittermixin.js +6 -6
  27. package/src/eventinfo.js +1 -1
  28. package/src/fastdiff.d.ts +2 -2
  29. package/src/focustracker.d.ts +4 -4
  30. package/src/focustracker.js +3 -3
  31. package/src/index.d.ts +55 -53
  32. package/src/index.js +54 -52
  33. package/src/inserttopriorityarray.d.ts +1 -1
  34. package/src/inserttopriorityarray.js +1 -1
  35. package/src/keyboard.d.ts +1 -1
  36. package/src/keyboard.js +2 -2
  37. package/src/keystrokehandler.d.ts +3 -3
  38. package/src/keystrokehandler.js +2 -2
  39. package/src/locale.d.ts +2 -2
  40. package/src/locale.js +3 -3
  41. package/src/observablemixin.d.ts +4 -2
  42. package/src/observablemixin.js +2 -2
  43. package/src/tomap.js +2 -2
  44. package/src/translation-service.js +2 -2
  45. package/src/verifylicense.js +1 -1
  46. package/src/version.d.ts +1 -1
  47. package/src/version.js +13 -13
package/README.md CHANGED
@@ -4,7 +4,6 @@ CKEditor 5 utilities
4
4
  [![npm version](https://badge.fury.io/js/%40ckeditor%2Fckeditor5-utils.svg)](https://www.npmjs.com/package/@ckeditor/ckeditor5-utils)
5
5
  [![Coverage Status](https://coveralls.io/repos/github/ckeditor/ckeditor5/badge.svg?branch=master)](https://coveralls.io/github/ckeditor/ckeditor5?branch=master)
6
6
  [![Build Status](https://travis-ci.com/ckeditor/ckeditor5.svg?branch=master)](https://app.travis-ci.com/github/ckeditor/ckeditor5)
7
- ![Dependency Status](https://img.shields.io/librariesio/release/npm/@ckeditor/ckeditor5-utils)
8
7
 
9
8
  Various utilities used by CKEditor 5 and its features. This is a sort of CKEditor 5's standard library.
10
9
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckeditor/ckeditor5-utils",
3
- "version": "38.2.0-alpha.1",
3
+ "version": "39.0.0",
4
4
  "description": "Miscellaneous utilities used by CKEditor 5.",
5
5
  "keywords": [
6
6
  "ckeditor",
@@ -10,9 +10,8 @@
10
10
  "ckeditor5-dll"
11
11
  ],
12
12
  "main": "src/index.js",
13
- "type": "module",
14
13
  "dependencies": {
15
- "lodash-es": "^4.17.15"
14
+ "lodash-es": "4.17.21"
16
15
  },
17
16
  "engines": {
18
17
  "node": ">=16.0.0",
@@ -3,8 +3,8 @@
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  declare const Collection_base: {
6
- new (): import("./emittermixin.js").Emitter;
7
- prototype: import("./emittermixin.js").Emitter;
6
+ new (): import("./emittermixin").Emitter;
7
+ prototype: import("./emittermixin").Emitter;
8
8
  };
9
9
  /**
10
10
  * Collections are ordered sets of objects. Items in the collection can be retrieved by their indexes
package/src/collection.js CHANGED
@@ -5,10 +5,10 @@
5
5
  /**
6
6
  * @module utils/collection
7
7
  */
8
- import EmitterMixin from './emittermixin.js';
9
- import CKEditorError from './ckeditorerror.js';
10
- import uid from './uid.js';
11
- import isIterable from './isiterable.js';
8
+ import EmitterMixin from './emittermixin';
9
+ import CKEditorError from './ckeditorerror';
10
+ import uid from './uid';
11
+ import isIterable from './isiterable';
12
12
  /**
13
13
  * Collections are ordered sets of objects. Items in the collection can be retrieved by their indexes
14
14
  * in the collection (like in an array) or by their ids.
package/src/diff.d.ts CHANGED
@@ -22,7 +22,7 @@
22
22
  */
23
23
  declare function diff<T>(a: ArrayLike<T>, b: ArrayLike<T>, cmp?: (a: T, b: T) => boolean): Array<DiffResult>;
24
24
  declare namespace diff {
25
- var fastDiff: typeof import("./fastdiff.js").default;
25
+ var fastDiff: typeof import("./fastdiff").default;
26
26
  }
27
27
  export default diff;
28
28
  /**
package/src/diff.js CHANGED
@@ -5,7 +5,7 @@
5
5
  /**
6
6
  * @module utils/diff
7
7
  */
8
- import fastDiff from './fastdiff.js';
8
+ import fastDiff from './fastdiff';
9
9
  // The following code is based on the "O(NP) Sequence Comparison Algorithm"
10
10
  // by Sun Wu, Udi Manber, Gene Myers, Webb Miller.
11
11
  /**
@@ -2,7 +2,7 @@
2
2
  * @license Copyright (c) 2003-2023, 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 type { DiffResult } from './diff.js';
5
+ import type { DiffResult } from './diff';
6
6
  /**
7
7
  * @module utils/difftochanges
8
8
  */
@@ -5,7 +5,7 @@
5
5
  /**
6
6
  * @module utils/dom/createelement
7
7
  */
8
- import isIterable from '../isiterable.js';
8
+ import isIterable from '../isiterable';
9
9
  import { isString } from 'lodash-es';
10
10
  /**
11
11
  * Creates an HTML or SVG element with attributes and children elements.
@@ -5,9 +5,9 @@
5
5
  /**
6
6
  * @module utils/dom/emittermixin
7
7
  */
8
- import { type Emitter, type CallbackOptions, type BaseEvent, type GetCallback } from '../emittermixin.js';
9
- import type EventInfo from '../eventinfo.js';
10
- import type { Constructor, Mixed } from '../mix.js';
8
+ import { type Emitter, type CallbackOptions, type BaseEvent, type GetCallback } from '../emittermixin';
9
+ import type EventInfo from '../eventinfo';
10
+ import type { Constructor, Mixed } from '../mix';
11
11
  /**
12
12
  * Mixin that injects the DOM events API into its host. It provides the API
13
13
  * compatible with {@link module:utils/emittermixin~Emitter}.
@@ -5,10 +5,10 @@
5
5
  /**
6
6
  * @module utils/dom/emittermixin
7
7
  */
8
- import EmitterMixin, { _getEmitterListenedTo, _setEmitterId } from '../emittermixin.js';
9
- import uid from '../uid.js';
10
- import isNode from './isnode.js';
11
- import isWindow from './iswindow.js';
8
+ import EmitterMixin, { _getEmitterListenedTo, _setEmitterId } from '../emittermixin';
9
+ import uid from '../uid';
10
+ import isNode from './isnode';
11
+ import isWindow from './iswindow';
12
12
  const defaultEmitterClass = DomEmitterMixin(EmitterMixin());
13
13
  export default function DomEmitterMixin(base) {
14
14
  if (!base) {
@@ -5,7 +5,7 @@
5
5
  /**
6
6
  * @module utils/dom/findclosestscrollableancestor
7
7
  */
8
- import global from './global.js';
8
+ import global from './global';
9
9
  /**
10
10
  * Returns the closest scrollable ancestor of a DOM element.
11
11
  *
@@ -5,7 +5,7 @@
5
5
  /**
6
6
  * @module utils/dom/getcommonancestor
7
7
  */
8
- import getAncestors from './getancestors.js';
8
+ import getAncestors from './getancestors';
9
9
  /**
10
10
  * Searches and returns the lowest common ancestor of two given nodes.
11
11
  *
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @module utils/dom/getelementsintersectionrect
7
+ */
8
+ import Rect from './rect';
9
+ /**
10
+ * Calculates the intersection `Rect` of a given set of elements (and/or a `document`).
11
+ * Also, takes into account the viewport top offset configuration.
12
+ *
13
+ * @internal
14
+ * @param elements
15
+ * @param viewportTopOffset
16
+ */
17
+ export default function getElementsIntersectionRect(elements: Array<HTMLElement | Document>, viewportTopOffset?: number): Rect | null;
@@ -0,0 +1,42 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @module utils/dom/getelementsintersectionrect
7
+ */
8
+ import Rect from './rect';
9
+ /**
10
+ * Calculates the intersection `Rect` of a given set of elements (and/or a `document`).
11
+ * Also, takes into account the viewport top offset configuration.
12
+ *
13
+ * @internal
14
+ * @param elements
15
+ * @param viewportTopOffset
16
+ */
17
+ export default function getElementsIntersectionRect(elements, viewportTopOffset = 0) {
18
+ const elementRects = elements.map(element => {
19
+ // The document (window) is yet another "element", but cropped by the top offset.
20
+ if (element instanceof Document) {
21
+ const windowRect = new Rect(global.window);
22
+ windowRect.top += viewportTopOffset;
23
+ windowRect.height -= viewportTopOffset;
24
+ return windowRect;
25
+ }
26
+ else {
27
+ return new Rect(element);
28
+ }
29
+ });
30
+ let intersectionRect = elementRects[0];
31
+ // @if CK_DEBUG_GETELEMENTSINTERSECTIONRECT // for ( const rect of elementRects ) {
32
+ // @if CK_DEBUG_GETELEMENTSINTERSECTIONRECT // RectDrawer.draw( rect, {
33
+ // @if CK_DEBUG_GETELEMENTSINTERSECTIONRECT // outlineWidth: '1px', opacity: '.7', outlineStyle: 'dashed'
34
+ // @if CK_DEBUG_GETELEMENTSINTERSECTIONRECT // }, 'Scrollable element' );
35
+ // @if CK_DEBUG_GETELEMENTSINTERSECTIONRECT // }
36
+ for (const rect of elementRects.slice(1)) {
37
+ if (intersectionRect) {
38
+ intersectionRect = intersectionRect.getIntersection(rect);
39
+ }
40
+ }
41
+ return intersectionRect;
42
+ }
@@ -5,7 +5,7 @@
5
5
  /**
6
6
  * @module utils/dom/getpositionedancestor
7
7
  */
8
- import global from './global.js';
8
+ import global from './global';
9
9
  /**
10
10
  * For a given element, returns the nearest ancestor element which CSS position is not "static".
11
11
  *
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * Loops over the given element's ancestors to find all the scrollable elements.
7
+ *
8
+ * **Note**: The `document` is always included in the returned array.
9
+ *
10
+ * @internal
11
+ * @param element
12
+ * @returns An array of scrollable element's ancestors (including the `document`).
13
+ */
14
+ export default function getScrollableAncestors(element: HTMLElement): Array<HTMLElement | Document>;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @module utils/dom/getscrollableancestors
7
+ */
8
+ import global from './global';
9
+ import findClosestScrollableAncestor from './findclosestscrollableancestor';
10
+ /**
11
+ * Loops over the given element's ancestors to find all the scrollable elements.
12
+ *
13
+ * **Note**: The `document` is always included in the returned array.
14
+ *
15
+ * @internal
16
+ * @param element
17
+ * @returns An array of scrollable element's ancestors (including the `document`).
18
+ */
19
+ export default function getScrollableAncestors(element) {
20
+ const scrollableAncestors = [];
21
+ let scrollableAncestor = findClosestScrollableAncestor(element);
22
+ while (scrollableAncestor && scrollableAncestor !== global.document.body) {
23
+ scrollableAncestors.push(scrollableAncestor);
24
+ scrollableAncestor = findClosestScrollableAncestor(scrollableAncestor);
25
+ }
26
+ scrollableAncestors.push(global.document);
27
+ return scrollableAncestors;
28
+ }
@@ -5,7 +5,7 @@
5
5
  /**
6
6
  * @module utils/dom/isvalidattributename
7
7
  */
8
- import global from './global.js';
8
+ import global from './global';
9
9
  /**
10
10
  * Checks if the given attribute name is valid in terms of HTML.
11
11
  *
@@ -2,7 +2,7 @@
2
2
  * @license Copyright (c) 2003-2023, 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 Rect, { type RectSource } from './rect.js';
5
+ import Rect, { type RectSource } from './rect';
6
6
  /**
7
7
  * Calculates the `position: absolute` coordinates of a given element so it can be positioned with respect to the
8
8
  * target in the visually most efficient way, taking various restrictions like viewport or limiter geometry
@@ -5,10 +5,10 @@
5
5
  /**
6
6
  * @module utils/dom/position
7
7
  */
8
- import global from './global.js';
9
- import Rect from './rect.js';
10
- import getPositionedAncestor from './getpositionedancestor.js';
11
- import getBorderWidths from './getborderwidths.js';
8
+ import global from './global';
9
+ import Rect from './rect';
10
+ import getPositionedAncestor from './getpositionedancestor';
11
+ import getBorderWidths from './getborderwidths';
12
12
  import { isFunction } from 'lodash-es';
13
13
  // @if CK_DEBUG_POSITION // const RectDrawer = require( '@ckeditor/ckeditor5-utils/tests/_utils/rectdrawer' ).default
14
14
  /**
package/src/dom/rect.js CHANGED
@@ -5,10 +5,10 @@
5
5
  /**
6
6
  * @module utils/dom/rect
7
7
  */
8
- import isRange from './isrange.js';
9
- import isWindow from './iswindow.js';
10
- import getBorderWidths from './getborderwidths.js';
11
- import isText from './istext.js';
8
+ import isRange from './isrange';
9
+ import isWindow from './iswindow';
10
+ import getBorderWidths from './getborderwidths';
11
+ import isText from './istext';
12
12
  const rectProperties = ['top', 'right', 'bottom', 'left', 'width', 'height'];
13
13
  /**
14
14
  * A helper class representing a `ClientRect` object, e.g. value returned by
@@ -5,7 +5,7 @@
5
5
  /**
6
6
  * @module utils/dom/resizeobserver
7
7
  */
8
- import global from './global.js';
8
+ import global from './global';
9
9
  /**
10
10
  * A helper class which instances allow performing custom actions when native DOM elements are resized.
11
11
  *
@@ -66,6 +66,8 @@ export declare function scrollViewportToShowTarget<T extends boolean, U extends
66
66
  * @param target A target, which supposed to become visible to the user.
67
67
  * @param ancestorOffset An offset between the target and the boundary of scrollable ancestors
68
68
  * to be maintained while scrolling.
69
+ * @param limiterElement The outermost ancestor that should be scrolled. If specified, it can prevent
70
+ * scrolling the whole page.
69
71
  */
70
- export declare function scrollAncestorsToShowTarget(target: HTMLElement | Range, ancestorOffset?: number): void;
72
+ export declare function scrollAncestorsToShowTarget(target: HTMLElement | Range, ancestorOffset?: number, limiterElement?: HTMLElement): void;
71
73
  export {};
package/src/dom/scroll.js CHANGED
@@ -5,9 +5,9 @@
5
5
  /**
6
6
  * @module utils/dom/scroll
7
7
  */
8
- import isRange from './isrange.js';
9
- import Rect from './rect.js';
10
- import isText from './istext.js';
8
+ import isRange from './isrange';
9
+ import Rect from './rect';
10
+ import isText from './istext';
11
11
  /**
12
12
  * Makes any page `HTMLElement` or `Range` (`target`) visible inside the browser viewport.
13
13
  * This helper will scroll all `target` ancestors and the web browser viewport to reveal the target to
@@ -124,13 +124,16 @@ export function scrollViewportToShowTarget({ target, viewportOffset = 0, ancesto
124
124
  * @param target A target, which supposed to become visible to the user.
125
125
  * @param ancestorOffset An offset between the target and the boundary of scrollable ancestors
126
126
  * to be maintained while scrolling.
127
+ * @param limiterElement The outermost ancestor that should be scrolled. If specified, it can prevent
128
+ * scrolling the whole page.
127
129
  */
128
- export function scrollAncestorsToShowTarget(target, ancestorOffset) {
130
+ export function scrollAncestorsToShowTarget(target, ancestorOffset, limiterElement) {
129
131
  const targetParent = getParentElement(target);
130
132
  scrollAncestorsToShowRect({
131
133
  parent: targetParent,
132
134
  getRect: () => new Rect(target),
133
- ancestorOffset
135
+ ancestorOffset,
136
+ limiterElement
134
137
  });
135
138
  }
136
139
  /**
@@ -246,12 +249,14 @@ function scrollWindowToShowRect({ window, rect, alignToTop, forceScroll, viewpor
246
249
  * anyway.
247
250
  * @param options.forceScroll When set `true`, the `rect` will be aligned to the top of scrollable ancestors
248
251
  * whether it is already visible or not. This option will only work when `alignToTop` is `true`
252
+ * @param options.limiterElement The outermost ancestor that should be scrolled. Defaults to the `<body>` element.
249
253
  */
250
- function scrollAncestorsToShowRect({ parent, getRect, alignToTop, forceScroll, ancestorOffset = 0 }) {
254
+ function scrollAncestorsToShowRect({ parent, getRect, alignToTop, forceScroll, ancestorOffset = 0, limiterElement }) {
251
255
  const parentWindow = getWindow(parent);
252
256
  const forceScrollToTop = alignToTop && forceScroll;
253
257
  let parentRect, targetRect, targetFitsInTarget;
254
- while (parent != parentWindow.document.body) {
258
+ const limiter = limiterElement || parentWindow.document.body;
259
+ while (parent != limiter) {
255
260
  targetRect = getRect();
256
261
  parentRect = new Rect(parent).excludeScrollbarsAndBorders();
257
262
  targetFitsInTarget = parentRect.contains(targetRect);
@@ -5,10 +5,10 @@
5
5
  /**
6
6
  * @module utils/emittermixin
7
7
  */
8
- import EventInfo from './eventinfo.js';
9
- import { type PriorityString } from './priorities.js';
10
- import type { Constructor, Mixed } from './mix.js';
11
- import './version.js';
8
+ import EventInfo from './eventinfo';
9
+ import { type PriorityString } from './priorities';
10
+ import type { Constructor, Mixed } from './mix';
11
+ import './version';
12
12
  /**
13
13
  * Mixin that injects the {@link ~Emitter events API} into its host.
14
14
  *
@@ -5,13 +5,13 @@
5
5
  /**
6
6
  * @module utils/emittermixin
7
7
  */
8
- import EventInfo from './eventinfo.js';
9
- import uid from './uid.js';
10
- import priorities from './priorities.js';
11
- import insertToPriorityArray from './inserttopriorityarray.js';
8
+ import EventInfo from './eventinfo';
9
+ import uid from './uid';
10
+ import priorities from './priorities';
11
+ import insertToPriorityArray from './inserttopriorityarray';
12
12
  // To check if component is loaded more than once.
13
- import './version.js';
14
- import CKEditorError from './ckeditorerror.js';
13
+ import './version';
14
+ import CKEditorError from './ckeditorerror';
15
15
  const _listeningTo = Symbol('listeningTo');
16
16
  const _emitterId = Symbol('emitterId');
17
17
  const _delegations = Symbol('delegations');
package/src/eventinfo.js CHANGED
@@ -5,7 +5,7 @@
5
5
  /**
6
6
  * @module utils/eventinfo
7
7
  */
8
- import spy from './spy.js';
8
+ import spy from './spy';
9
9
  /**
10
10
  * The event object passed to event callbacks. It is used to provide information about the event as well as a tool to
11
11
  * manipulate it.
package/src/fastdiff.d.ts CHANGED
@@ -2,8 +2,8 @@
2
2
  * @license Copyright (c) 2003-2023, 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 type { DiffResult } from './diff.js';
6
- import type { Change } from './difftochanges.js';
5
+ import type { DiffResult } from './diff';
6
+ import type { Change } from './difftochanges';
7
7
  /**
8
8
  * @module utils/fastdiff
9
9
  */
@@ -2,10 +2,10 @@
2
2
  * @license Copyright (c) 2003-2023, 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
- declare const FocusTracker_base: import("./mix.js").Mixed<{
6
- new (): import("./observablemixin.js").Observable;
7
- prototype: import("./observablemixin.js").Observable;
8
- }, import("./dom/emittermixin.js").DomEmitter>;
5
+ declare const FocusTracker_base: import("./mix").Mixed<{
6
+ new (): import("./observablemixin").Observable;
7
+ prototype: import("./observablemixin").Observable;
8
+ }, import("./dom/emittermixin").DomEmitter>;
9
9
  /**
10
10
  * Allows observing a group of `Element`s whether at least one of them is focused.
11
11
  *
@@ -6,9 +6,9 @@
6
6
  /**
7
7
  * @module utils/focustracker
8
8
  */
9
- import DomEmitterMixin from './dom/emittermixin.js';
10
- import ObservableMixin from './observablemixin.js';
11
- import CKEditorError from './ckeditorerror.js';
9
+ import DomEmitterMixin from './dom/emittermixin';
10
+ import ObservableMixin from './observablemixin';
11
+ import CKEditorError from './ckeditorerror';
12
12
  /**
13
13
  * Allows observing a group of `Element`s whether at least one of them is focused.
14
14
  *
package/src/index.d.ts CHANGED
@@ -5,56 +5,58 @@
5
5
  /**
6
6
  * @module utils
7
7
  */
8
- export { default as env } from './env.js';
9
- export { default as diff, type DiffResult } from './diff.js';
10
- export { default as fastDiff } from './fastdiff.js';
11
- export { default as diffToChanges } from './difftochanges.js';
12
- export { default as mix } from './mix.js';
13
- export type { Constructor, Mixed } from './mix.js';
14
- export { default as EmitterMixin, type Emitter, type BaseEvent, type CallbackOptions, type EmitterMixinDelegateChain, type GetCallback, type GetCallbackOptions, type GetEventInfo, type GetNameOrEventInfo } from './emittermixin.js';
15
- export { default as EventInfo } from './eventinfo.js';
16
- export { default as ObservableMixin, type Observable, type DecoratedMethodEvent, type ObservableChangeEvent, type ObservableSetEvent } from './observablemixin.js';
17
- export { default as CKEditorError, logError, logWarning } from './ckeditorerror.js';
18
- export { default as ElementReplacer } from './elementreplacer.js';
19
- export { default as count } from './count.js';
20
- export { default as compareArrays } from './comparearrays.js';
21
- export { default as createElement } from './dom/createelement.js';
22
- export { default as Config } from './config.js';
23
- export { default as isIterable } from './isiterable.js';
24
- export { default as DomEmitterMixin, type DomEmitter } from './dom/emittermixin.js';
25
- export { default as findClosestScrollableAncestor } from './dom/findclosestscrollableancestor.js';
26
- export { default as global } from './dom/global.js';
27
- export { default as getAncestors } from './dom/getancestors.js';
28
- export { default as getDataFromElement } from './dom/getdatafromelement.js';
29
- export { default as isText } from './dom/istext.js';
30
- export { default as Rect, type RectSource } from './dom/rect.js';
31
- export { default as ResizeObserver } from './dom/resizeobserver.js';
32
- export { default as setDataInElement } from './dom/setdatainelement.js';
33
- export { default as toUnit } from './dom/tounit.js';
34
- export { default as indexOf } from './dom/indexof.js';
35
- export { default as insertAt } from './dom/insertat.js';
36
- export { default as isComment } from './dom/iscomment.js';
37
- export { default as isNode } from './dom/isnode.js';
38
- export { default as isRange } from './dom/isrange.js';
39
- export { default as isValidAttributeName } from './dom/isvalidattributename.js';
40
- export { default as isVisible } from './dom/isvisible.js';
41
- export { getOptimalPosition, type Options as PositionOptions, type PositioningFunction } from './dom/position.js';
42
- export { default as remove } from './dom/remove.js';
43
- export * from './dom/scroll.js';
44
- export * from './keyboard.js';
45
- export * from './language.js';
46
- export { default as Locale, type LocaleTranslate } from './locale.js';
47
- export { default as Collection, type CollectionAddEvent, type CollectionChangeEvent, type CollectionRemoveEvent } from './collection.js';
48
- export { default as first } from './first.js';
49
- export { default as FocusTracker } from './focustracker.js';
50
- export { default as KeystrokeHandler } from './keystrokehandler.js';
51
- export { default as toArray, type ArrayOrItem, type ReadonlyArrayOrItem } from './toarray.js';
52
- export { default as toMap } from './tomap.js';
53
- export { default as priorities, type PriorityString } from './priorities.js';
54
- export { default as insertToPriorityArray } from './inserttopriorityarray.js';
55
- export { default as spliceArray } from './splicearray.js';
56
- export { default as uid } from './uid.js';
57
- export { default as delay, type DelayedFunc } from './delay.js';
58
- export { default as verifyLicense } from './verifylicense.js';
59
- export * from './unicode.js';
60
- export { default as version, releaseDate } from './version.js';
8
+ export { default as env } from './env';
9
+ export { default as diff, type DiffResult } from './diff';
10
+ export { default as fastDiff } from './fastdiff';
11
+ export { default as diffToChanges } from './difftochanges';
12
+ export { default as mix } from './mix';
13
+ export type { Constructor, Mixed } from './mix';
14
+ export { default as EmitterMixin, type Emitter, type BaseEvent, type CallbackOptions, type EmitterMixinDelegateChain, type GetCallback, type GetCallbackOptions, type GetEventInfo, type GetNameOrEventInfo } from './emittermixin';
15
+ export { default as EventInfo } from './eventinfo';
16
+ export { default as ObservableMixin, type Observable, type DecoratedMethodEvent, type ObservableChangeEvent, type ObservableSetEvent } from './observablemixin';
17
+ export { default as CKEditorError, logError, logWarning } from './ckeditorerror';
18
+ export { default as ElementReplacer } from './elementreplacer';
19
+ export { default as count } from './count';
20
+ export { default as compareArrays } from './comparearrays';
21
+ export { default as createElement } from './dom/createelement';
22
+ export { default as Config } from './config';
23
+ export { default as isIterable } from './isiterable';
24
+ export { default as DomEmitterMixin, type DomEmitter } from './dom/emittermixin';
25
+ export { default as findClosestScrollableAncestor } from './dom/findclosestscrollableancestor';
26
+ export { default as global } from './dom/global';
27
+ export { default as getAncestors } from './dom/getancestors';
28
+ export { default as getElementsIntersectionRect } from './dom/getelementsintersectionrect';
29
+ export { default as getScrollableAncestors } from './dom/getscrollableancestors';
30
+ export { default as getDataFromElement } from './dom/getdatafromelement';
31
+ export { default as isText } from './dom/istext';
32
+ export { default as Rect, type RectSource } from './dom/rect';
33
+ export { default as ResizeObserver } from './dom/resizeobserver';
34
+ export { default as setDataInElement } from './dom/setdatainelement';
35
+ export { default as toUnit } from './dom/tounit';
36
+ export { default as indexOf } from './dom/indexof';
37
+ export { default as insertAt } from './dom/insertat';
38
+ export { default as isComment } from './dom/iscomment';
39
+ export { default as isNode } from './dom/isnode';
40
+ export { default as isRange } from './dom/isrange';
41
+ export { default as isValidAttributeName } from './dom/isvalidattributename';
42
+ export { default as isVisible } from './dom/isvisible';
43
+ export { getOptimalPosition, type Options as PositionOptions, type PositioningFunction, type Position } from './dom/position';
44
+ export { default as remove } from './dom/remove';
45
+ export * from './dom/scroll';
46
+ export * from './keyboard';
47
+ export * from './language';
48
+ export { default as Locale, type LocaleTranslate } from './locale';
49
+ export { default as Collection, type CollectionAddEvent, type CollectionChangeEvent, type CollectionRemoveEvent } from './collection';
50
+ export { default as first } from './first';
51
+ export { default as FocusTracker } from './focustracker';
52
+ export { default as KeystrokeHandler } from './keystrokehandler';
53
+ export { default as toArray, type ArrayOrItem, type ReadonlyArrayOrItem } from './toarray';
54
+ export { default as toMap } from './tomap';
55
+ export { default as priorities, type PriorityString } from './priorities';
56
+ export { default as insertToPriorityArray } from './inserttopriorityarray';
57
+ export { default as spliceArray } from './splicearray';
58
+ export { default as uid } from './uid';
59
+ export { default as delay, type DelayedFunc } from './delay';
60
+ export { default as verifyLicense } from './verifylicense';
61
+ export * from './unicode';
62
+ export { default as version, releaseDate } from './version';
package/src/index.js CHANGED
@@ -5,55 +5,57 @@
5
5
  /**
6
6
  * @module utils
7
7
  */
8
- export { default as env } from './env.js';
9
- export { default as diff } from './diff.js';
10
- export { default as fastDiff } from './fastdiff.js';
11
- export { default as diffToChanges } from './difftochanges.js';
12
- export { default as mix } from './mix.js';
13
- export { default as EmitterMixin } from './emittermixin.js';
14
- export { default as EventInfo } from './eventinfo.js';
15
- export { default as ObservableMixin } from './observablemixin.js';
16
- export { default as CKEditorError, logError, logWarning } from './ckeditorerror.js';
17
- export { default as ElementReplacer } from './elementreplacer.js';
18
- export { default as count } from './count.js';
19
- export { default as compareArrays } from './comparearrays.js';
20
- export { default as createElement } from './dom/createelement.js';
21
- export { default as Config } from './config.js';
22
- export { default as isIterable } from './isiterable.js';
23
- export { default as DomEmitterMixin } from './dom/emittermixin.js';
24
- export { default as findClosestScrollableAncestor } from './dom/findclosestscrollableancestor.js';
25
- export { default as global } from './dom/global.js';
26
- export { default as getAncestors } from './dom/getancestors.js';
27
- export { default as getDataFromElement } from './dom/getdatafromelement.js';
28
- export { default as isText } from './dom/istext.js';
29
- export { default as Rect } from './dom/rect.js';
30
- export { default as ResizeObserver } from './dom/resizeobserver.js';
31
- export { default as setDataInElement } from './dom/setdatainelement.js';
32
- export { default as toUnit } from './dom/tounit.js';
33
- export { default as indexOf } from './dom/indexof.js';
34
- export { default as insertAt } from './dom/insertat.js';
35
- export { default as isComment } from './dom/iscomment.js';
36
- export { default as isNode } from './dom/isnode.js';
37
- export { default as isRange } from './dom/isrange.js';
38
- export { default as isValidAttributeName } from './dom/isvalidattributename.js';
39
- export { default as isVisible } from './dom/isvisible.js';
40
- export { getOptimalPosition } from './dom/position.js';
41
- export { default as remove } from './dom/remove.js';
42
- export * from './dom/scroll.js';
43
- export * from './keyboard.js';
44
- export * from './language.js';
45
- export { default as Locale } from './locale.js';
46
- export { default as Collection } from './collection.js';
47
- export { default as first } from './first.js';
48
- export { default as FocusTracker } from './focustracker.js';
49
- export { default as KeystrokeHandler } from './keystrokehandler.js';
50
- export { default as toArray } from './toarray.js';
51
- export { default as toMap } from './tomap.js';
52
- export { default as priorities } from './priorities.js';
53
- export { default as insertToPriorityArray } from './inserttopriorityarray.js';
54
- export { default as spliceArray } from './splicearray.js';
55
- export { default as uid } from './uid.js';
56
- export { default as delay } from './delay.js';
57
- export { default as verifyLicense } from './verifylicense.js';
58
- export * from './unicode.js';
59
- export { default as version, releaseDate } from './version.js';
8
+ export { default as env } from './env';
9
+ export { default as diff } from './diff';
10
+ export { default as fastDiff } from './fastdiff';
11
+ export { default as diffToChanges } from './difftochanges';
12
+ export { default as mix } from './mix';
13
+ export { default as EmitterMixin } from './emittermixin';
14
+ export { default as EventInfo } from './eventinfo';
15
+ export { default as ObservableMixin } from './observablemixin';
16
+ export { default as CKEditorError, logError, logWarning } from './ckeditorerror';
17
+ export { default as ElementReplacer } from './elementreplacer';
18
+ export { default as count } from './count';
19
+ export { default as compareArrays } from './comparearrays';
20
+ export { default as createElement } from './dom/createelement';
21
+ export { default as Config } from './config';
22
+ export { default as isIterable } from './isiterable';
23
+ export { default as DomEmitterMixin } from './dom/emittermixin';
24
+ export { default as findClosestScrollableAncestor } from './dom/findclosestscrollableancestor';
25
+ export { default as global } from './dom/global';
26
+ export { default as getAncestors } from './dom/getancestors';
27
+ export { default as getElementsIntersectionRect } from './dom/getelementsintersectionrect';
28
+ export { default as getScrollableAncestors } from './dom/getscrollableancestors';
29
+ export { default as getDataFromElement } from './dom/getdatafromelement';
30
+ export { default as isText } from './dom/istext';
31
+ export { default as Rect } from './dom/rect';
32
+ export { default as ResizeObserver } from './dom/resizeobserver';
33
+ export { default as setDataInElement } from './dom/setdatainelement';
34
+ export { default as toUnit } from './dom/tounit';
35
+ export { default as indexOf } from './dom/indexof';
36
+ export { default as insertAt } from './dom/insertat';
37
+ export { default as isComment } from './dom/iscomment';
38
+ export { default as isNode } from './dom/isnode';
39
+ export { default as isRange } from './dom/isrange';
40
+ export { default as isValidAttributeName } from './dom/isvalidattributename';
41
+ export { default as isVisible } from './dom/isvisible';
42
+ export { getOptimalPosition } from './dom/position';
43
+ export { default as remove } from './dom/remove';
44
+ export * from './dom/scroll';
45
+ export * from './keyboard';
46
+ export * from './language';
47
+ export { default as Locale } from './locale';
48
+ export { default as Collection } from './collection';
49
+ export { default as first } from './first';
50
+ export { default as FocusTracker } from './focustracker';
51
+ export { default as KeystrokeHandler } from './keystrokehandler';
52
+ export { default as toArray } from './toarray';
53
+ export { default as toMap } from './tomap';
54
+ export { default as priorities } from './priorities';
55
+ export { default as insertToPriorityArray } from './inserttopriorityarray';
56
+ export { default as spliceArray } from './splicearray';
57
+ export { default as uid } from './uid';
58
+ export { default as delay } from './delay';
59
+ export { default as verifyLicense } from './verifylicense';
60
+ export * from './unicode';
61
+ export { default as version, releaseDate } from './version';
@@ -2,7 +2,7 @@
2
2
  * @license Copyright (c) 2003-2023, 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 { type PriorityString } from './priorities.js';
5
+ import { type PriorityString } from './priorities';
6
6
  /**
7
7
  * @module utils/inserttopriorityarray
8
8
  */
@@ -2,7 +2,7 @@
2
2
  * @license Copyright (c) 2003-2023, 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 priorities from './priorities.js';
5
+ import priorities from './priorities';
6
6
  /**
7
7
  * Inserts any object with priority at correct index by priority so registered objects are always sorted from highest to lowest priority.
8
8
  *
package/src/keyboard.d.ts CHANGED
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * @module utils/keyboard
9
9
  */
10
- import type { LanguageDirection } from './language.js';
10
+ import type { LanguageDirection } from './language';
11
11
  /**
12
12
  * An object with `keyName => keyCode` pairs for a set of known keys.
13
13
  *
package/src/keyboard.js CHANGED
@@ -2,8 +2,8 @@
2
2
  * @license Copyright (c) 2003-2023, 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 './ckeditorerror.js';
6
- import env from './env.js';
5
+ import CKEditorError from './ckeditorerror';
6
+ import env from './env';
7
7
  const modifiersToGlyphsMac = {
8
8
  ctrl: '⌃',
9
9
  cmd: '⌘',
@@ -2,9 +2,9 @@
2
2
  * @license Copyright (c) 2003-2023, 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 type { Emitter } from './emittermixin.js';
6
- import { type KeystrokeInfo } from './keyboard.js';
7
- import type { PriorityString } from './priorities.js';
5
+ import type { Emitter } from './emittermixin';
6
+ import { type KeystrokeInfo } from './keyboard';
7
+ import type { PriorityString } from './priorities';
8
8
  /**
9
9
  * Keystroke handler allows registering callbacks for given keystrokes.
10
10
  *
@@ -5,8 +5,8 @@
5
5
  /**
6
6
  * @module utils/keystrokehandler
7
7
  */
8
- import DomEmitterMixin from './dom/emittermixin.js';
9
- import { getCode, parseKeystroke } from './keyboard.js';
8
+ import DomEmitterMixin from './dom/emittermixin';
9
+ import { getCode, parseKeystroke } from './keyboard';
10
10
  /**
11
11
  * Keystroke handler allows registering callbacks for given keystrokes.
12
12
  *
package/src/locale.d.ts CHANGED
@@ -2,8 +2,8 @@
2
2
  * @license Copyright (c) 2003-2023, 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 { type Message } from './translation-service.js';
6
- import { type LanguageDirection } from './language.js';
5
+ import { type Message } from './translation-service';
6
+ import { type LanguageDirection } from './language';
7
7
  /**
8
8
  * Represents the localization services.
9
9
  */
package/src/locale.js CHANGED
@@ -6,9 +6,9 @@
6
6
  * @module utils/locale
7
7
  */
8
8
  /* globals console */
9
- import toArray from './toarray.js';
10
- import { _translate } from './translation-service.js';
11
- import { getLanguageDirection } from './language.js';
9
+ import toArray from './toarray';
10
+ import { _translate } from './translation-service';
11
+ import { getLanguageDirection } from './language';
12
12
  /**
13
13
  * Represents the localization services.
14
14
  */
@@ -5,8 +5,8 @@
5
5
  /**
6
6
  * @module utils/observablemixin
7
7
  */
8
- import { type Emitter } from './emittermixin.js';
9
- import type { Constructor, Mixed } from './mix.js';
8
+ import { type Emitter } from './emittermixin';
9
+ import type { Constructor, Mixed } from './mix';
10
10
  /**
11
11
  * A mixin that injects the "observable properties" and data binding functionality described in the
12
12
  * {@link ~Observable} interface.
@@ -531,6 +531,8 @@ interface SingleBindChain<TKey extends string, TVal> {
531
531
  to<O1 extends Observable, K1 extends keyof O1, O2 extends Observable, K2 extends keyof O2, O3 extends Observable, K3 extends keyof O3>(observable1: O1, key1: K1, observable2: O2, key2: K2, observable3: O3, key3: K3, callback: (value1: O1[K1], value2: O2[K2], value3: O3[K3]) => TVal): void;
532
532
  to<O1 extends ObservableWithProperty<TKey>, O2 extends ObservableWithProperty<TKey>, O3 extends ObservableWithProperty<TKey>, O4 extends ObservableWithProperty<TKey>>(observable1: O1, observable2: O2, observable3: O3, observable4: O4, callback: (value1: O1[TKey], value2: O2[TKey], value3: O3[TKey], value4: O4[TKey]) => TVal): void;
533
533
  to<O1 extends Observable, K1 extends keyof O1, O2 extends Observable, K2 extends keyof O2, O3 extends Observable, K3 extends keyof O3, O4 extends Observable, K4 extends keyof O4>(observable1: O1, key1: K1, observable2: O2, key2: K2, observable3: O3, key3: K3, observable4: O4, key4: K4, callback: (value1: O1[K1], value2: O2[K2], value3: O3[K3], value4: O4[K4]) => TVal): void;
534
+ to<O1 extends ObservableWithProperty<TKey>, O2 extends ObservableWithProperty<TKey>, O3 extends ObservableWithProperty<TKey>, O4 extends ObservableWithProperty<TKey>, O5 extends ObservableWithProperty<TKey>>(observable1: O1, observable2: O2, observable3: O3, observable4: O4, observable5: O5, callback: (value1: O1[TKey], value2: O2[TKey], value3: O3[TKey], value4: O4[TKey], value5: O5[TKey]) => TVal): void;
535
+ to<O1 extends Observable, K1 extends keyof O1, O2 extends Observable, K2 extends keyof O2, O3 extends Observable, K3 extends keyof O3, O4 extends Observable, K4 extends keyof O4, O5 extends Observable, K5 extends keyof O5>(observable1: O1, key1: K1, observable2: O2, key2: K2, observable3: O3, key3: K3, observable4: O4, key4: K4, observable5: O5, key5: K5, callback: (value1: O1[K1], value2: O2[K2], value3: O3[K3], value4: O4[K4], value5: O5[K5]) => TVal): void;
534
536
  }
535
537
  /**
536
538
  * A helper type that can be used as a constraint, ensuring the type is both observable and have the given property.
@@ -6,8 +6,8 @@
6
6
  /**
7
7
  * @module utils/observablemixin
8
8
  */
9
- import EmitterMixin from './emittermixin.js';
10
- import CKEditorError from './ckeditorerror.js';
9
+ import EmitterMixin from './emittermixin';
10
+ import CKEditorError from './ckeditorerror';
11
11
  import { isObject } from 'lodash-es';
12
12
  const observablePropertiesSymbol = Symbol('observableProperties');
13
13
  const boundObservablesSymbol = Symbol('boundObservables');
package/src/tomap.js CHANGED
@@ -5,8 +5,8 @@
5
5
  /**
6
6
  * @module utils/tomap
7
7
  */
8
- import objectToMap from './objecttomap.js';
9
- import isIterable from './isiterable.js';
8
+ import objectToMap from './objecttomap';
9
+ import isIterable from './isiterable';
10
10
  /**
11
11
  * Transforms object or iterable to map. Iterable needs to be in the format acceptable by the `Map` constructor.
12
12
  *
@@ -6,8 +6,8 @@
6
6
  /**
7
7
  * @module utils/translation-service
8
8
  */
9
- import CKEditorError from './ckeditorerror.js';
10
- import global from './dom/global.js';
9
+ import CKEditorError from './ckeditorerror';
10
+ import global from './dom/global';
11
11
  /* istanbul ignore else -- @preserve */
12
12
  if (!global.window.CKEDITOR_TRANSLATIONS) {
13
13
  global.window.CKEDITOR_TRANSLATIONS = {};
@@ -5,7 +5,7 @@
5
5
  /**
6
6
  * @module utils/verifylicense
7
7
  */
8
- import { releaseDate } from './version.js';
8
+ import { releaseDate } from './version';
9
9
  /**
10
10
  * Checks whether the given string contains information that allows you to verify the license status.
11
11
  *
package/src/version.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * @license Copyright (c) 2003-2023, 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
- declare const version = "38.2.0-alpha.0";
5
+ declare const version = "39.0.0";
6
6
  export default version;
7
7
  export declare const releaseDate: Date;
8
8
  declare global {
package/src/version.js CHANGED
@@ -6,11 +6,11 @@
6
6
  * @module utils/version
7
7
  */
8
8
  /* globals window, global */
9
- import CKEditorError from './ckeditorerror.js';
10
- const version = '38.2.0-alpha.0';
9
+ import CKEditorError from './ckeditorerror';
10
+ const version = '39.0.0';
11
11
  export default version;
12
12
  // The second argument is not a month. It is `monthIndex` and starts from `0`.
13
- export const releaseDate = new Date(2023, 6, 17);
13
+ export const releaseDate = new Date(2023, 7, 2);
14
14
  /* istanbul ignore next -- @preserve */
15
15
  const windowOrGlobal = typeof window === 'object' ? window : global;
16
16
  /* istanbul ignore next -- @preserve */
@@ -29,7 +29,7 @@ if (windowOrGlobal.CKEDITOR_VERSION) {
29
29
  *
30
30
  * ```ts
31
31
  * import ClassicEditor from '@ckeditor/ckeditor5-build-classic';
32
- * import Highlight from '@ckeditor/ckeditor5-highlight/src/highlight.js';
32
+ * import Highlight from '@ckeditor/ckeditor5-highlight/src/highlight';
33
33
  * ```
34
34
  *
35
35
  * Then your project loads some CKEditor 5 packages twice. How does it happen?
@@ -59,11 +59,11 @@ if (windowOrGlobal.CKEDITOR_VERSION) {
59
59
  * The correct way to do so is to import an editor and plugins and run them together like this:
60
60
  *
61
61
  * ```ts
62
- * import ClassicEditor from '@ckeditor/ckeditor5-editor-classic/src/classiceditor.js';
63
- * import Essentials from '@ckeditor/ckeditor5-essentials/src/essentials.js';
64
- * import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph.js';
65
- * import Bold from '@ckeditor/ckeditor5-basic-styles/src/bold.js';
66
- * import Italic from '@ckeditor/ckeditor5-basic-styles/src/italic.js';
62
+ * import ClassicEditor from '@ckeditor/ckeditor5-editor-classic/src/classiceditor';
63
+ * import Essentials from '@ckeditor/ckeditor5-essentials/src/essentials';
64
+ * import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph';
65
+ * import Bold from '@ckeditor/ckeditor5-basic-styles/src/bold';
66
+ * import Italic from '@ckeditor/ckeditor5-basic-styles/src/italic';
67
67
  *
68
68
  * ClassicEditor
69
69
  * .create( document.querySelector( '#editor' ), {
@@ -83,10 +83,10 @@ if (windowOrGlobal.CKEDITOR_VERSION) {
83
83
  *
84
84
  * ```ts
85
85
  * import ClassicEditor from '@ckeditor/ckeditor5-build-classic';
86
- * import Essentials from '@ckeditor/ckeditor5-essentials/src/essentials.js';
87
- * import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph.js';
88
- * import Bold from '@ckeditor/ckeditor5-basic-styles/src/bold.js';
89
- * import Italic from '@ckeditor/ckeditor5-basic-styles/src/italic.js';
86
+ * import Essentials from '@ckeditor/ckeditor5-essentials/src/essentials';
87
+ * import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph';
88
+ * import Bold from '@ckeditor/ckeditor5-basic-styles/src/bold';
89
+ * import Italic from '@ckeditor/ckeditor5-basic-styles/src/italic';
90
90
  * ```
91
91
  *
92
92
  * This creates the same situation as in the previous section because you use a build together with source plugins.