@ckeditor/ckeditor5-utils 35.3.2 → 36.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 (62) hide show
  1. package/LICENSE.md +1 -1
  2. package/package.json +5 -5
  3. package/src/areconnectedthroughproperties.js +7 -9
  4. package/src/ckeditorerror.js +52 -71
  5. package/src/collection.js +108 -150
  6. package/src/comparearrays.js +11 -9
  7. package/src/config.js +30 -84
  8. package/src/count.js +6 -4
  9. package/src/diff.js +8 -6
  10. package/src/difftochanges.js +18 -15
  11. package/src/dom/createelement.js +12 -10
  12. package/src/dom/emittermixin.js +44 -85
  13. package/src/dom/findclosestscrollableancestor.js +30 -0
  14. package/src/dom/getancestors.js +3 -3
  15. package/src/dom/getborderwidths.js +3 -3
  16. package/src/dom/getcommonancestor.js +4 -4
  17. package/src/dom/getdatafromelement.js +3 -3
  18. package/src/dom/getpositionedancestor.js +2 -3
  19. package/src/dom/global.js +13 -15
  20. package/src/dom/indexof.js +3 -3
  21. package/src/dom/insertat.js +4 -4
  22. package/src/dom/iscomment.js +1 -4
  23. package/src/dom/isnode.js +1 -4
  24. package/src/dom/isrange.js +1 -4
  25. package/src/dom/istext.js +1 -4
  26. package/src/dom/isvisible.js +1 -4
  27. package/src/dom/iswindow.js +1 -4
  28. package/src/dom/position.js +111 -134
  29. package/src/dom/rect.js +43 -53
  30. package/src/dom/remove.js +2 -2
  31. package/src/dom/resizeobserver.js +11 -36
  32. package/src/dom/scroll.js +86 -92
  33. package/src/dom/setdatainelement.js +3 -3
  34. package/src/dom/tounit.js +2 -11
  35. package/src/elementreplacer.js +3 -3
  36. package/src/emittermixin.js +49 -49
  37. package/src/env.js +15 -76
  38. package/src/eventinfo.js +3 -3
  39. package/src/fastdiff.js +116 -97
  40. package/src/first.js +1 -4
  41. package/src/focustracker.js +12 -20
  42. package/src/index.js +19 -1
  43. package/src/inserttopriorityarray.js +3 -3
  44. package/src/isiterable.js +3 -3
  45. package/src/keyboard.js +21 -22
  46. package/src/keystrokehandler.js +27 -25
  47. package/src/language.js +2 -3
  48. package/src/locale.js +12 -15
  49. package/src/mapsequal.js +5 -5
  50. package/src/mix.js +16 -14
  51. package/src/nth.js +1 -5
  52. package/src/objecttomap.js +7 -5
  53. package/src/observablemixin.js +127 -151
  54. package/src/priorities.js +1 -10
  55. package/src/splicearray.js +13 -12
  56. package/src/spy.js +2 -2
  57. package/src/toarray.js +1 -1
  58. package/src/tomap.js +8 -6
  59. package/src/translation-service.js +71 -53
  60. package/src/uid.js +6 -4
  61. package/src/unicode.js +10 -16
  62. package/src/version.js +33 -27
package/src/isiterable.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
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
5
  /**
@@ -8,8 +8,8 @@
8
8
  /**
9
9
  * Checks if value implements iterator interface.
10
10
  *
11
- * @param {*} value The value to check.
12
- * @returns {Boolean} True if value implements iterator interface.
11
+ * @param value The value to check.
12
+ * @returns True if value implements iterator interface.
13
13
  */
14
14
  export default function isIterable(value) {
15
15
  return !!(value && value[Symbol.iterator]);
package/src/keyboard.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
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
5
  import CKEditorError from './ckeditorerror';
@@ -35,9 +35,8 @@ const keyCodeNames = Object.fromEntries(Object.entries(keyCodes).map(([name, cod
35
35
  *
36
36
  * Note: Key names are matched with {@link module:utils/keyboard~keyCodes} in a case-insensitive way.
37
37
  *
38
- * @param {String|module:utils/keyboard~KeystrokeInfo} A key name (see {@link module:utils/keyboard~keyCodes})
39
- * or a keystroke data object.
40
- * @returns {Number} Key or keystroke code.
38
+ * @param key A key name (see {@link module:utils/keyboard~keyCodes}) or a keystroke data object.
39
+ * @returns Key or keystroke code.
41
40
  */
42
41
  export function getCode(key) {
43
42
  let keyCode;
@@ -81,8 +80,8 @@ export function getCode(key) {
81
80
  * For example, a registered keystroke `Ctrl+A` will be translated to `Cmd+A` on macOS. To disable the translation of some keystroke,
82
81
  * use the forced modifier: `Ctrl!+A` (note the exclamation mark).
83
82
  *
84
- * @param {String|Array.<Number|String>} keystroke The keystroke definition.
85
- * @returns {Number} Keystroke code.
83
+ * @param keystroke The keystroke definition.
84
+ * @returns Keystroke code.
86
85
  */
87
86
  export function parseKeystroke(keystroke) {
88
87
  if (typeof keystroke == 'string') {
@@ -96,8 +95,8 @@ export function parseKeystroke(keystroke) {
96
95
  * Translates any keystroke string text like `"Ctrl+A"` to an
97
96
  * environment–specific keystroke, i.e. `"⌘A"` on macOS.
98
97
  *
99
- * @param {String} keystroke The keystroke text.
100
- * @returns {String} The keystroke text specific for the environment.
98
+ * @param keystroke The keystroke text.
99
+ * @returns The keystroke text specific for the environment.
101
100
  */
102
101
  export function getEnvKeystrokeText(keystroke) {
103
102
  let keystrokeCode = parseKeystroke(keystroke);
@@ -115,8 +114,7 @@ export function getEnvKeystrokeText(keystroke) {
115
114
  /**
116
115
  * Returns `true` if the provided key code represents one of the arrow keys.
117
116
  *
118
- * @param {Number} keyCode A key code as in {@link module:utils/keyboard~KeystrokeInfo#keyCode}.
119
- * @returns {Boolean}
117
+ * @param keyCode A key code as in {@link module:utils/keyboard~KeystrokeInfo#keyCode}.
120
118
  */
121
119
  export function isArrowKeyCode(keyCode) {
122
120
  return keyCode == keyCodes.arrowright ||
@@ -131,10 +129,10 @@ export function isArrowKeyCode(keyCode) {
131
129
  * For instance, in right–to–left (RTL) content languages, pressing the left arrow means moving the selection right (forward)
132
130
  * in the model structure. Similarly, pressing the right arrow moves the selection left (backward).
133
131
  *
134
- * @param {Number} keyCode A key code as in {@link module:utils/keyboard~KeystrokeInfo#keyCode}.
135
- * @param {module:utils/language~LanguageDirection} contentLanguageDirection The content language direction, corresponding to
132
+ * @param keyCode A key code as in {@link module:utils/keyboard~KeystrokeInfo#keyCode}.
133
+ * @param contentLanguageDirection The content language direction, corresponding to
136
134
  * {@link module:utils/locale~Locale#contentLanguageDirection}.
137
- * @returns {module:utils/keyboard~ArrowKeyCodeDirection|undefined} Localized arrow direction or `undefined` for non-arrow key codes.
135
+ * @returns Localized arrow direction or `undefined` for non-arrow key codes.
138
136
  */
139
137
  export function getLocalizedArrowKeyCodeDirection(keyCode, contentLanguageDirection) {
140
138
  const isLtrContent = contentLanguageDirection === 'ltr';
@@ -149,12 +147,14 @@ export function getLocalizedArrowKeyCodeDirection(keyCode, contentLanguageDirect
149
147
  return 'down';
150
148
  }
151
149
  }
152
- // Converts a key name to the key code with mapping based on the env.
153
- //
154
- // See: {@link module:utils/keyboard~getCode}.
155
- //
156
- // @param {String} key The key name (see {@link module:utils/keyboard~keyCodes}).
157
- // @returns {Number} Key code.
150
+ /**
151
+ * Converts a key name to the key code with mapping based on the env.
152
+ *
153
+ * See: {@link module:utils/keyboard~getCode}.
154
+ *
155
+ * @param key The key name (see {@link module:utils/keyboard~keyCodes}).
156
+ * @returns Key code.
157
+ */
158
158
  function getEnvKeyCode(key) {
159
159
  // Don't remap modifier key for forced modifiers.
160
160
  if (key.endsWith('!')) {
@@ -170,10 +170,9 @@ function getEnvKeyCode(key) {
170
170
  * For instance, in right–to–left (RTL) languages, pressing the left arrow means moving forward
171
171
  * in the model structure. Similarly, pressing the right arrow moves the selection backward.
172
172
  *
173
- * @param {Number} keyCode A key code as in {@link module:utils/keyboard~KeystrokeInfo#keyCode}.
174
- * @param {module:utils/language~LanguageDirection} contentLanguageDirection The content language direction, corresponding to
173
+ * @param keyCode A key code as in {@link module:utils/keyboard~KeystrokeInfo#keyCode}.
174
+ * @param contentLanguageDirection The content language direction, corresponding to
175
175
  * {@link module:utils/locale~Locale#contentLanguageDirection}.
176
- * @returns {Boolean}
177
176
  */
178
177
  export function isForwardArrowKeyCode(keyCode, contentLanguageDirection) {
179
178
  const localizedKeyCodeDirection = getLocalizedArrowKeyCodeDirection(keyCode, contentLanguageDirection);
@@ -1,11 +1,11 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
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
5
  /**
6
6
  * @module utils/keystrokehandler
7
7
  */
8
- import { Emitter as DomEmitter } from './dom/emittermixin';
8
+ import DomEmitterMixin from './dom/emittermixin';
9
9
  import { getCode, parseKeystroke } from './keyboard';
10
10
  /**
11
11
  * Keystroke handler allows registering callbacks for given keystrokes.
@@ -13,27 +13,31 @@ import { getCode, parseKeystroke } from './keyboard';
13
13
  * The most frequent use of this class is through the {@link module:core/editor/editor~Editor#keystrokes `editor.keystrokes`}
14
14
  * property. It allows listening to keystrokes executed in the editing view:
15
15
  *
16
- * editor.keystrokes.set( 'Ctrl+A', ( keyEvtData, cancel ) => {
17
- * console.log( 'Ctrl+A has been pressed' );
18
- * cancel();
19
- * } );
16
+ * ```ts
17
+ * editor.keystrokes.set( 'Ctrl+A', ( keyEvtData, cancel ) => {
18
+ * console.log( 'Ctrl+A has been pressed' );
19
+ * cancel();
20
+ * } );
21
+ * ```
20
22
  *
21
23
  * However, this utility class can be used in various part of the UI. For instance, a certain {@link module:ui/view~View}
22
24
  * can use it like this:
23
25
  *
24
- * class MyView extends View {
25
- * constructor() {
26
- * this.keystrokes = new KeystrokeHandler();
26
+ * ```ts
27
+ * class MyView extends View {
28
+ * constructor() {
29
+ * this.keystrokes = new KeystrokeHandler();
27
30
  *
28
- * this.keystrokes.set( 'tab', handleTabKey );
29
- * }
31
+ * this.keystrokes.set( 'tab', handleTabKey );
32
+ * }
30
33
  *
31
- * render() {
32
- * super.render();
34
+ * render() {
35
+ * super.render();
33
36
  *
34
- * this.keystrokes.listenTo( this.element );
35
- * }
36
- * }
37
+ * this.keystrokes.listenTo( this.element );
38
+ * }
39
+ * }
40
+ * ```
37
41
  *
38
42
  * That keystroke handler will listen to `keydown` events fired in this view's main element.
39
43
  *
@@ -43,12 +47,10 @@ export default class KeystrokeHandler {
43
47
  * Creates an instance of the keystroke handler.
44
48
  */
45
49
  constructor() {
46
- this._listener = new DomEmitter();
50
+ this._listener = new (DomEmitterMixin())();
47
51
  }
48
52
  /**
49
53
  * Starts listening for `keydown` events from a given emitter.
50
- *
51
- * @param {module:utils/emittermixin~Emitter|HTMLElement|Window} emitter
52
54
  */
53
55
  listenTo(emitter) {
54
56
  // The #_listener works here as a kind of dispatcher. It groups the events coming from the same
@@ -67,13 +69,13 @@ export default class KeystrokeHandler {
67
69
  /**
68
70
  * Registers a handler for the specified keystroke.
69
71
  *
70
- * @param {String|Array.<String|Number>} keystroke Keystroke defined in a format accepted by
72
+ * @param keystroke Keystroke defined in a format accepted by
71
73
  * the {@link module:utils/keyboard~parseKeystroke} function.
72
- * @param {Function} callback A function called with the
74
+ * @param callback A function called with the
73
75
  * {@link module:engine/view/observer/keyobserver~KeyEventData key event data} object and
74
76
  * a helper function to call both `preventDefault()` and `stopPropagation()` on the underlying event.
75
- * @param {Object} [options={}] Additional options.
76
- * @param {module:utils/priorities~PriorityString} [options.priority='normal'] The priority of the keystroke
77
+ * @param options Additional options.
78
+ * @param options.priority The priority of the keystroke
77
79
  * callback. The higher the priority value the sooner the callback will be executed. Keystrokes having the same priority
78
80
  * are called in the order they were added.
79
81
  */
@@ -99,8 +101,8 @@ export default class KeystrokeHandler {
99
101
  /**
100
102
  * Triggers a keystroke handler for a specified key combination, if such a keystroke was {@link #set defined}.
101
103
  *
102
- * @param {module:engine/view/observer/keyobserver~KeyEventData} keyEvtData Key event data.
103
- * @returns {Boolean} Whether the keystroke was handled.
104
+ * @param keyEvtData Key event data.
105
+ * @returns Whether the keystroke was handled.
104
106
  */
105
107
  press(keyEvtData) {
106
108
  return !!this._listener.fire('_keydown:' + getCode(keyEvtData), keyEvtData);
package/src/language.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
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
5
  const RTL_LANGUAGE_CODES = [
@@ -12,8 +12,7 @@ const RTL_LANGUAGE_CODES = [
12
12
  /**
13
13
  * Helps determine whether a language text direction is LTR or RTL.
14
14
  *
15
- * @param {String} languageCode The ISO 639-1 or ISO 639-2 language code.
16
- * @returns {module:utils/language~LanguageDirection}
15
+ * @param languageCode The ISO 639-1 or ISO 639-2 language code.
17
16
  */
18
17
  export function getLanguageDirection(languageCode) {
19
18
  return RTL_LANGUAGE_CODES.includes(languageCode) ? 'rtl' : 'ltr';
package/src/locale.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
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
5
  /**
@@ -17,16 +17,16 @@ export default class Locale {
17
17
  * Creates a new instance of the locale class. Learn more about
18
18
  * {@glink features/ui-language configuring the language of the editor}.
19
19
  *
20
- * @param {Object} [options] Locale configuration.
21
- * @param {String} [options.uiLanguage='en'] The editor UI language code in the
20
+ * @param options Locale configuration.
21
+ * @param options.uiLanguage The editor UI language code in the
22
22
  * [ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1) format. See {@link #uiLanguage}.
23
- * @param {String} [options.contentLanguage] The editor content language code in the
23
+ * @param options.contentLanguage The editor content language code in the
24
24
  * [ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1) format. If not specified, the same as `options.language`.
25
25
  * See {@link #contentLanguage}.
26
26
  */
27
- constructor(options = {}) {
28
- this.uiLanguage = options.uiLanguage || 'en';
29
- this.contentLanguage = options.contentLanguage || this.uiLanguage;
27
+ constructor({ uiLanguage = 'en', contentLanguage } = {}) {
28
+ this.uiLanguage = uiLanguage;
29
+ this.contentLanguage = contentLanguage || this.uiLanguage;
30
30
  this.uiLanguageDirection = getLanguageDirection(this.uiLanguage);
31
31
  this.contentLanguageDirection = getLanguageDirection(this.contentLanguage);
32
32
  this.t = (message, values) => this._t(message, values);
@@ -38,12 +38,12 @@ export default class Locale {
38
38
  * properties instead.
39
39
  *
40
40
  * @deprecated
41
- * @member {String}
42
41
  */
43
42
  get language() {
44
43
  /**
45
44
  * The {@link module:utils/locale~Locale#language `Locale#language`} property was deprecated and will
46
- * be removed in the near future. Please use the {@link #uiLanguage} and {@link #contentLanguage} properties instead.
45
+ * be removed in the near future. Please use the {@link module:utils/locale~Locale#uiLanguage `Locale#uiLanguage`} and
46
+ * {@link module:utils/locale~Locale#contentLanguage `Locale#contentLanguage`} properties instead.
47
47
  *
48
48
  * @error locale-deprecated-language-property
49
49
  */
@@ -54,11 +54,6 @@ export default class Locale {
54
54
  }
55
55
  /**
56
56
  * An unbound version of the {@link #t} method.
57
- *
58
- * @private
59
- * @param {String|module:utils/translation-service~Message} message
60
- * @param {Number|String|Array.<Number|String>} [values]
61
- * @returns {String}
62
57
  */
63
58
  _t(message, values = []) {
64
59
  values = toArray(values);
@@ -71,7 +66,9 @@ export default class Locale {
71
66
  return interpolateString(translatedString, values);
72
67
  }
73
68
  }
74
- // Fills the `%0, %1, ...` string placeholders with values.
69
+ /**
70
+ * Fills the `%0, %1, ...` string placeholders with values.
71
+ */
75
72
  function interpolateString(string, values) {
76
73
  return string.replace(/%(\d+)/g, (match, index) => {
77
74
  return (index < values.length) ? values[index] : match;
package/src/mapsequal.js CHANGED
@@ -1,16 +1,16 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
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
5
  /**
6
6
  * @module utils/mapsequal
7
7
  */
8
8
  /**
9
- * Checks whether given {Map}s are equal, that is has same size and same key-value pairs.
9
+ * Checks whether given `Map`s are equal, that is has same size and same key-value pairs.
10
10
  *
11
- * @param {Map} mapA The first map to compare.
12
- * @param {Map} mapB The second map to compare.
13
- * @returns {Boolean} `true` if given maps are equal, `false` otherwise.
11
+ * @param mapA The first map to compare.
12
+ * @param mapB The second map to compare.
13
+ * @returns `true` if given maps are equal, `false` otherwise.
14
14
  */
15
15
  export default function mapsEqual(mapA, mapB) {
16
16
  if (mapA.size != mapB.size) {
package/src/mix.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
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
5
  /**
@@ -9,25 +9,27 @@
9
9
  * Copies enumerable properties and symbols from the objects given as 2nd+ parameters to the
10
10
  * prototype of first object (a constructor).
11
11
  *
12
- * class Editor {
13
- * ...
14
- * }
12
+ * ```
13
+ * class Editor {
14
+ * ...
15
+ * }
15
16
  *
16
- * const SomeMixin = {
17
- * a() {
18
- * return 'a';
19
- * }
20
- * };
17
+ * const SomeMixin = {
18
+ * a() {
19
+ * return 'a';
20
+ * }
21
+ * };
21
22
  *
22
- * mix( Editor, SomeMixin, ... );
23
+ * mix( Editor, SomeMixin, ... );
23
24
  *
24
- * new Editor().a(); // -> 'a'
25
+ * new Editor().a(); // -> 'a'
26
+ * ```
25
27
  *
26
28
  * Note: Properties which already exist in the base class will not be overriden.
27
29
  *
28
- * @depreciated Use mixin pattern, see: https://www.typescriptlang.org/docs/handbook/mixins.html.
29
- * @param {Function} [baseClass] Class which prototype will be extended.
30
- * @param {Object} [...mixins] Objects from which to get properties.
30
+ * @deprecated Use mixin pattern, see: https://www.typescriptlang.org/docs/handbook/mixins.html.
31
+ * @param baseClass Class which prototype will be extended.
32
+ * @param mixins Objects from which to get properties.
31
33
  */
32
34
  export default function mix(baseClass, ...mixins) {
33
35
  mixins.forEach(mixin => {
package/src/nth.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
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
5
  /**
@@ -12,10 +12,6 @@
12
12
  * If it's a normal iterator, then it consumes **all items up to the given index**.
13
13
  * Refer to the [Iterators and Generators](https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Iterators_and_Generators)
14
14
  * guide to learn differences between these interfaces.
15
- *
16
- * @param {Number} index
17
- * @param {Iterable.<*>} iterable
18
- * @returns {*}
19
15
  */
20
16
  export default function nth(index, iterable) {
21
17
  for (const item of iterable) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
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
5
  /**
@@ -8,13 +8,15 @@
8
8
  /**
9
9
  * Transforms object to map.
10
10
  *
11
- * const map = objectToMap( { 'foo': 1, 'bar': 2 } );
12
- * map.get( 'foo' ); // 1
11
+ * ```ts
12
+ * const map = objectToMap( { 'foo': 1, 'bar': 2 } );
13
+ * map.get( 'foo' ); // 1
14
+ * ```
13
15
  *
14
16
  * **Note**: For mixed data (`Object` or `Iterable`) there's a dedicated {@link module:utils/tomap~toMap} function.
15
17
  *
16
- * @param {Object|null} obj Object to transform.
17
- * @returns {Map} Map created from object.
18
+ * @param obj Object to transform.
19
+ * @returns Map created from object.
18
20
  */
19
21
  export default function objectToMap(obj) {
20
22
  const map = new Map();