diff --git a/packages/ckeditor5-autosave/LICENSE.md b/packages/ckeditor5-autosave/LICENSE.md index 38b082db0cd..f8b3bf572f9 100644 --- a/packages/ckeditor5-autosave/LICENSE.md +++ b/packages/ckeditor5-autosave/LICENSE.md @@ -13,7 +13,7 @@ Where not otherwise indicated, all CKEditor content is authored by CKSource engi The following libraries are included in CKEditor under the [MIT license](https://opensource.org/licenses/MIT): -* Lodash - Copyright (c) JS Foundation and other contributors https://js.foundation/. Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors http://underscorejs.org/. +* es-toolkit - Copyright (c) 2024 Viva Republica, Inc. Trademarks ---------- diff --git a/packages/ckeditor5-autosave/package.json b/packages/ckeditor5-autosave/package.json index 23c7b02e6e9..91c1c34d004 100644 --- a/packages/ckeditor5-autosave/package.json +++ b/packages/ckeditor5-autosave/package.json @@ -16,7 +16,7 @@ "@ckeditor/ckeditor5-core": "43.3.1", "@ckeditor/ckeditor5-utils": "43.3.1", "ckeditor5": "43.3.1", - "lodash-es": "4.17.21" + "es-toolkit": "1.27.0" }, "devDependencies": { "@ckeditor/ckeditor5-dev-utils": "^45.0.0", diff --git a/packages/ckeditor5-autosave/src/autosave.ts b/packages/ckeditor5-autosave/src/autosave.ts index 2c3bae29726..3f440b2a5fb 100644 --- a/packages/ckeditor5-autosave/src/autosave.ts +++ b/packages/ckeditor5-autosave/src/autosave.ts @@ -20,7 +20,7 @@ import { DomEmitterMixin, type DomEmitter } from 'ckeditor5/src/utils.js'; import type { DocumentChangeEvent } from 'ckeditor5/src/engine.js'; -import { debounce, type DebouncedFunc } from 'lodash-es'; +import { debounce } from 'es-toolkit/compat'; /* globals window */ @@ -81,7 +81,7 @@ export default class Autosave extends Plugin { * Debounced save method. The `save()` method is called the specified `waitingTime` after `debouncedSave()` is called, * unless a new action happens in the meantime. */ - private _debouncedSave: DebouncedFunc<( () => void )>; + private _debouncedSave: ReturnType Promise )>>; /** * The last saved document version. diff --git a/packages/ckeditor5-ckbox/LICENSE.md b/packages/ckeditor5-ckbox/LICENSE.md index 7cab3f861b7..e189499a648 100644 --- a/packages/ckeditor5-ckbox/LICENSE.md +++ b/packages/ckeditor5-ckbox/LICENSE.md @@ -14,6 +14,7 @@ Where not otherwise indicated, all CKEditor content is authored by CKSource engi The following libraries are included in CKEditor under the [MIT license](https://opensource.org/licenses/MIT): * blurhash - Copyright (c) 2018 Wolt Enterprises (MIT license). +* es-toolkit - Copyright (c) 2024 Viva Republica, Inc. Trademarks ---------- diff --git a/packages/ckeditor5-ckbox/package.json b/packages/ckeditor5-ckbox/package.json index 2a3c3a1caff..1b056a89f0b 100644 --- a/packages/ckeditor5-ckbox/package.json +++ b/packages/ckeditor5-ckbox/package.json @@ -20,7 +20,7 @@ "@ckeditor/ckeditor5-utils": "43.3.1", "ckeditor5": "43.3.1", "blurhash": "2.0.5", - "lodash-es": "4.17.21" + "es-toolkit": "1.27.0" }, "devDependencies": { "@ckeditor/ckeditor5-autosave": "43.3.1", diff --git a/packages/ckeditor5-ckbox/src/ckboximageedit/ckboximageeditcommand.ts b/packages/ckeditor5-ckbox/src/ckboximageedit/ckboximageeditcommand.ts index fa5e86ccd69..3b38f53c8a8 100644 --- a/packages/ckeditor5-ckbox/src/ckboximageedit/ckboximageeditcommand.ts +++ b/packages/ckeditor5-ckbox/src/ckboximageedit/ckboximageeditcommand.ts @@ -20,7 +20,7 @@ import { } from 'ckeditor5/src/utils.js'; import type { Element as ModelElement } from 'ckeditor5/src/engine.js'; import { Notification } from 'ckeditor5/src/ui.js'; -import { isEqual } from 'lodash-es'; +import { isEqual } from 'es-toolkit/compat'; import { sendHttpRequest } from '../utils.js'; import { prepareImageAssetAttributes } from '../ckboxcommand.js'; diff --git a/packages/ckeditor5-ckbox/tests/ckboximageedit/ckboximageeditcommand.js b/packages/ckeditor5-ckbox/tests/ckboximageedit/ckboximageeditcommand.js index 39b94370bb0..7e0ebc0e617 100644 --- a/packages/ckeditor5-ckbox/tests/ckboximageedit/ckboximageeditcommand.js +++ b/packages/ckeditor5-ckbox/tests/ckboximageedit/ckboximageeditcommand.js @@ -23,7 +23,7 @@ import { setData as setModelData, getData as getModelData } from '@ckeditor/cked import { getData as getViewData } from '@ckeditor/ckeditor5-engine/src/dev-utils/view.js'; import { Notification } from 'ckeditor5/src/ui.js'; import TokenMock from '@ckeditor/ckeditor5-cloud-services/tests/_utils/tokenmock.js'; -import _ from 'lodash-es'; +import * as _ from 'es-toolkit'; import CloudServicesCoreMock from '../_utils/cloudservicescoremock.js'; import CKBoxEditing from '../../src/ckboxediting.js'; import CKBoxImageEditEditing from '../../src/ckboximageedit/ckboximageeditediting.js'; diff --git a/packages/ckeditor5-clipboard/LICENSE.md b/packages/ckeditor5-clipboard/LICENSE.md index f482a8a118d..eeb0992a754 100644 --- a/packages/ckeditor5-clipboard/LICENSE.md +++ b/packages/ckeditor5-clipboard/LICENSE.md @@ -13,7 +13,7 @@ Where not otherwise indicated, all CKEditor content is authored by CKSource engi The following libraries are included in CKEditor under the [MIT license](https://opensource.org/licenses/MIT): -* Lodash - Copyright (c) JS Foundation and other contributors https://js.foundation/. Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors http://underscorejs.org/. +* es-toolkit - Copyright (c) 2024 Viva Republica, Inc. Trademarks ---------- diff --git a/packages/ckeditor5-clipboard/package.json b/packages/ckeditor5-clipboard/package.json index 924a6a3fe5d..c9188a9cc02 100644 --- a/packages/ckeditor5-clipboard/package.json +++ b/packages/ckeditor5-clipboard/package.json @@ -18,7 +18,7 @@ "@ckeditor/ckeditor5-ui": "43.3.1", "@ckeditor/ckeditor5-utils": "43.3.1", "@ckeditor/ckeditor5-widget": "43.3.1", - "lodash-es": "4.17.21" + "es-toolkit": "1.27.0" }, "devDependencies": { "@ckeditor/ckeditor5-alignment": "43.3.1", diff --git a/packages/ckeditor5-clipboard/src/clipboardmarkersutils.ts b/packages/ckeditor5-clipboard/src/clipboardmarkersutils.ts index fe73de1aa5e..94b08b2a492 100644 --- a/packages/ckeditor5-clipboard/src/clipboardmarkersutils.ts +++ b/packages/ckeditor5-clipboard/src/clipboardmarkersutils.ts @@ -6,7 +6,7 @@ /** * @module clipboard/clipboardmarkersutils */ -import { mapValues } from 'lodash-es'; +import { mapValues } from 'es-toolkit/compat'; import { uid } from '@ckeditor/ckeditor5-utils'; import { Plugin, type NonEmptyArray } from '@ckeditor/ckeditor5-core'; diff --git a/packages/ckeditor5-clipboard/src/dragdroptarget.ts b/packages/ckeditor5-clipboard/src/dragdroptarget.ts index ed852de8367..99cbbaab290 100644 --- a/packages/ckeditor5-clipboard/src/dragdroptarget.ts +++ b/packages/ckeditor5-clipboard/src/dragdroptarget.ts @@ -34,7 +34,7 @@ import { import LineView from './lineview.js'; -import { throttle } from 'lodash-es'; +import { throttle } from 'es-toolkit/compat'; /** * Part of the Drag and Drop handling. Responsible for finding and displaying the drop target. diff --git a/packages/ckeditor5-core/LICENSE.md b/packages/ckeditor5-core/LICENSE.md index 0f1ea04f29d..bc2e1e1bf08 100644 --- a/packages/ckeditor5-core/LICENSE.md +++ b/packages/ckeditor5-core/LICENSE.md @@ -13,7 +13,7 @@ Where not otherwise indicated, all CKEditor content is authored by CKSource engi The following libraries are included in CKEditor under the [MIT license](https://opensource.org/licenses/MIT): -* Lodash - Copyright (c) JS Foundation and other contributors https://js.foundation/. Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors http://underscorejs.org/. +* es-toolkit - Copyright (c) 2024 Viva Republica, Inc. Trademarks ---------- diff --git a/packages/ckeditor5-core/package.json b/packages/ckeditor5-core/package.json index 497d41cd908..7cd44684504 100644 --- a/packages/ckeditor5-core/package.json +++ b/packages/ckeditor5-core/package.json @@ -27,7 +27,7 @@ "@ckeditor/ckeditor5-engine": "43.3.1", "@ckeditor/ckeditor5-utils": "43.3.1", "@ckeditor/ckeditor5-watchdog": "43.3.1", - "lodash-es": "4.17.21" + "es-toolkit": "1.27.0" }, "devDependencies": { "@ckeditor/ckeditor5-autoformat": "43.3.1", diff --git a/packages/ckeditor5-core/src/editor/editor.ts b/packages/ckeditor5-core/src/editor/editor.ts index 16f5b65ff45..ebf5cf3cbc5 100644 --- a/packages/ckeditor5-core/src/editor/editor.ts +++ b/packages/ckeditor5-core/src/editor/editor.ts @@ -7,7 +7,7 @@ * @module core/editor/editor */ -import { set, get } from 'lodash-es'; +import { set, get } from 'es-toolkit/compat'; import { Config, diff --git a/packages/ckeditor5-core/src/editor/utils/attachtoform.ts b/packages/ckeditor5-core/src/editor/utils/attachtoform.ts index 6fbfb02d37c..1b4112ed48a 100644 --- a/packages/ckeditor5-core/src/editor/utils/attachtoform.ts +++ b/packages/ckeditor5-core/src/editor/utils/attachtoform.ts @@ -7,7 +7,7 @@ * @module core/editor/utils/attachtoform */ -import { isFunction } from 'lodash-es'; +import { isFunction } from 'es-toolkit/compat'; import { CKEditorError } from '@ckeditor/ckeditor5-utils'; diff --git a/packages/ckeditor5-core/tests/_utils/classictesteditor.js b/packages/ckeditor5-core/tests/_utils/classictesteditor.js index e52c456dfe2..6171613fdb3 100644 --- a/packages/ckeditor5-core/tests/_utils/classictesteditor.js +++ b/packages/ckeditor5-core/tests/_utils/classictesteditor.js @@ -3,6 +3,7 @@ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license */ +/* globals HTMLElement */ /* eslint-disable new-cap */ import Editor from '../../src/editor/editor.js'; @@ -12,7 +13,6 @@ import BoxedEditorUIView from '@ckeditor/ckeditor5-ui/src/editorui/boxed/boxeded import ElementReplacer from '@ckeditor/ckeditor5-utils/src/elementreplacer.js'; import InlineEditableUIView from '@ckeditor/ckeditor5-ui/src/editableui/inline/inlineeditableuiview.js'; import getDataFromElement from '@ckeditor/ckeditor5-utils/src/dom/getdatafromelement.js'; -import { isElement } from 'lodash-es'; import CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror.js'; /** @@ -28,7 +28,7 @@ export default class ClassicTestEditor extends ElementApiMixin( Editor ) { constructor( sourceElementOrData, config ) { super( config ); - if ( isElement( sourceElementOrData ) ) { + if ( sourceElementOrData instanceof HTMLElement ) { this.sourceElement = sourceElementOrData; } @@ -84,9 +84,9 @@ export default class ClassicTestEditor extends ElementApiMixin( Editor ) { editor.initPlugins() // Simulate EditorUI.init() (e.g. like in ClassicEditorUI). The ui#view // should be rendered after plugins are initialized. - .then( () => editor.ui.init( isElement( sourceElementOrData ) ? sourceElementOrData : null ) ) + .then( () => editor.ui.init( sourceElementOrData instanceof HTMLElement ? sourceElementOrData : null ) ) .then( () => { - if ( !isElement( sourceElementOrData ) && config.initialData ) { + if ( !( sourceElementOrData instanceof HTMLElement ) && config.initialData ) { // Documented in core/editor/editorconfig.jsdoc. // eslint-disable-next-line ckeditor5-rules/ckeditor-error-message throw new CKEditorError( 'editor-create-initial-data', null ); @@ -171,5 +171,5 @@ export class ClassicTestEditorUI extends EditorUI { } function getInitialData( sourceElementOrData ) { - return isElement( sourceElementOrData ) ? getDataFromElement( sourceElementOrData ) : sourceElementOrData; + return sourceElementOrData instanceof HTMLElement ? getDataFromElement( sourceElementOrData ) : sourceElementOrData; } diff --git a/packages/ckeditor5-core/tests/accessibility.js b/packages/ckeditor5-core/tests/accessibility.js index b29aa968bbe..d4ac5308852 100644 --- a/packages/ckeditor5-core/tests/accessibility.js +++ b/packages/ckeditor5-core/tests/accessibility.js @@ -5,7 +5,7 @@ import { Editor } from '@ckeditor/ckeditor5-core'; import { expectToThrowCKEditorError } from '@ckeditor/ckeditor5-utils/tests/_utils/utils.js'; -import { cloneDeep } from 'lodash-es'; +import { cloneDeep } from 'es-toolkit'; describe( 'Accessibility', () => { let editor, accessibility; diff --git a/packages/ckeditor5-editor-balloon/LICENSE.md b/packages/ckeditor5-editor-balloon/LICENSE.md index e64d79c7384..d619e1d0dec 100644 --- a/packages/ckeditor5-editor-balloon/LICENSE.md +++ b/packages/ckeditor5-editor-balloon/LICENSE.md @@ -11,10 +11,6 @@ Sources of Intellectual Property Included in CKEditor Where not otherwise indicated, all CKEditor content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, CKEditor will incorporate work done by developers outside of CKSource with their express permission. -The following libraries are included in CKEditor under the [MIT license](https://opensource.org/licenses/MIT): - -* Lodash - Copyright (c) JS Foundation and other contributors https://js.foundation/. Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors http://underscorejs.org/. - Trademarks ---------- diff --git a/packages/ckeditor5-editor-balloon/package.json b/packages/ckeditor5-editor-balloon/package.json index 9f1f8e928c8..22423f28551 100644 --- a/packages/ckeditor5-editor-balloon/package.json +++ b/packages/ckeditor5-editor-balloon/package.json @@ -16,8 +16,7 @@ "@ckeditor/ckeditor5-engine": "43.3.1", "@ckeditor/ckeditor5-ui": "43.3.1", "@ckeditor/ckeditor5-utils": "43.3.1", - "ckeditor5": "43.3.1", - "lodash-es": "4.17.21" + "ckeditor5": "43.3.1" }, "devDependencies": { "@ckeditor/ckeditor5-basic-styles": "43.3.1", diff --git a/packages/ckeditor5-editor-balloon/src/ballooneditor.ts b/packages/ckeditor5-editor-balloon/src/ballooneditor.ts index e75a991b97a..65bed1351b3 100644 --- a/packages/ckeditor5-editor-balloon/src/ballooneditor.ts +++ b/packages/ckeditor5-editor-balloon/src/ballooneditor.ts @@ -22,8 +22,6 @@ import { CKEditorError, getDataFromElement } from 'ckeditor5/src/utils.js'; import BalloonEditorUI from './ballooneditorui.js'; import BalloonEditorUIView from './ballooneditoruiview.js'; -import { isElement as _isElement } from 'lodash-es'; - /** * The balloon editor implementation (Medium-like editor). * It uses an inline editable and a toolbar based on the {@link module:ui/toolbar/balloon/balloontoolbar~BalloonToolbar}. @@ -230,5 +228,5 @@ function getInitialData( sourceElementOrData: HTMLElement | string ): string { } function isElement( value: any ): value is Element { - return _isElement( value ); + return value instanceof HTMLElement; } diff --git a/packages/ckeditor5-editor-balloon/tests/ballooneditorui.js b/packages/ckeditor5-editor-balloon/tests/ballooneditorui.js index 925f9cae34b..ea26a119598 100644 --- a/packages/ckeditor5-editor-balloon/tests/ballooneditorui.js +++ b/packages/ckeditor5-editor-balloon/tests/ballooneditorui.js @@ -3,7 +3,7 @@ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license */ -/* globals document, Event */ +/* globals document, Event, HTMLElement */ import BalloonEditor from '../src/ballooneditor.js'; import BalloonEditorUI from '../src/ballooneditorui.js'; @@ -15,7 +15,6 @@ import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph.js'; import Heading from '@ckeditor/ckeditor5-heading/src/heading.js'; import { keyCodes } from '@ckeditor/ckeditor5-utils/src/keyboard.js'; -import { isElement } from 'lodash-es'; import VirtualTestEditor from '@ckeditor/ckeditor5-core/tests/_utils/virtualtesteditor.js'; import { setData as setModelData } from '@ckeditor/ckeditor5-engine/src/dev-utils/model.js'; import { assertBinding } from '@ckeditor/ckeditor5-utils/tests/_utils/utils.js'; @@ -354,7 +353,7 @@ class VirtualBalloonTestEditor extends VirtualTestEditor { constructor( sourceElementOrData, config ) { super( config ); - if ( isElement( sourceElementOrData ) ) { + if ( sourceElementOrData instanceof HTMLElement ) { this.sourceElement = sourceElementOrData; } @@ -377,7 +376,7 @@ class VirtualBalloonTestEditor extends VirtualTestEditor { .then( () => { editor.ui.init(); - const initialData = isElement( sourceElementOrData ) ? + const initialData = sourceElementOrData instanceof HTMLElement ? sourceElementOrData.innerHTML : sourceElementOrData; diff --git a/packages/ckeditor5-editor-classic/LICENSE.md b/packages/ckeditor5-editor-classic/LICENSE.md index 7a4cba4b9b1..9be7fefa0d3 100644 --- a/packages/ckeditor5-editor-classic/LICENSE.md +++ b/packages/ckeditor5-editor-classic/LICENSE.md @@ -11,10 +11,6 @@ Sources of Intellectual Property Included in CKEditor Where not otherwise indicated, all CKEditor content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, CKEditor will incorporate work done by developers outside of CKSource with their express permission. -The following libraries are included in CKEditor under the [MIT license](https://opensource.org/licenses/MIT): - -* Lodash - Copyright (c) JS Foundation and other contributors https://js.foundation/. Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors http://underscorejs.org/. - Trademarks ---------- diff --git a/packages/ckeditor5-editor-classic/package.json b/packages/ckeditor5-editor-classic/package.json index a0d864a3cc1..93334124445 100644 --- a/packages/ckeditor5-editor-classic/package.json +++ b/packages/ckeditor5-editor-classic/package.json @@ -16,8 +16,7 @@ "@ckeditor/ckeditor5-engine": "43.3.1", "@ckeditor/ckeditor5-ui": "43.3.1", "@ckeditor/ckeditor5-utils": "43.3.1", - "ckeditor5": "43.3.1", - "lodash-es": "4.17.21" + "ckeditor5": "43.3.1" }, "devDependencies": { "@ckeditor/ckeditor5-basic-styles": "43.3.1", diff --git a/packages/ckeditor5-editor-classic/src/classiceditor.ts b/packages/ckeditor5-editor-classic/src/classiceditor.ts index 41275c1681d..de12672afdf 100644 --- a/packages/ckeditor5-editor-classic/src/classiceditor.ts +++ b/packages/ckeditor5-editor-classic/src/classiceditor.ts @@ -19,8 +19,6 @@ import { } from 'ckeditor5/src/core.js'; import { getDataFromElement, CKEditorError } from 'ckeditor5/src/utils.js'; -import { isElement as _isElement } from 'lodash-es'; - /** * The classic editor implementation. It uses an inline editable and a sticky toolbar, all enclosed in a boxed UI. * See the {@glink examples/builds/classic-editor demo}. @@ -215,5 +213,5 @@ function getInitialData( sourceElementOrData: HTMLElement | string ): string { } function isElement( value: any ): value is Element { - return _isElement( value ); + return value instanceof HTMLElement; } diff --git a/packages/ckeditor5-editor-classic/tests/classiceditorui.js b/packages/ckeditor5-editor-classic/tests/classiceditorui.js index e9fb8bbe3ae..934a0cfeec8 100644 --- a/packages/ckeditor5-editor-classic/tests/classiceditorui.js +++ b/packages/ckeditor5-editor-classic/tests/classiceditorui.js @@ -3,7 +3,7 @@ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license */ -/* globals window, document, Event, console */ +/* globals window, document, Event, console, HTMLElement */ import View from '@ckeditor/ckeditor5-ui/src/view.js'; @@ -19,7 +19,6 @@ import { setData as setModelData } from '@ckeditor/ckeditor5-engine/src/dev-util import { keyCodes } from '@ckeditor/ckeditor5-utils/src/keyboard.js'; import testUtils from '@ckeditor/ckeditor5-core/tests/_utils/utils.js'; import { assertBinding } from '@ckeditor/ckeditor5-utils/tests/_utils/utils.js'; -import { isElement } from 'lodash-es'; import { ContextualBalloon, Dialog, DialogViewPosition } from '@ckeditor/ckeditor5-ui'; describe( 'ClassicEditorUI', () => { @@ -1028,7 +1027,7 @@ class VirtualClassicTestEditor extends VirtualTestEditor { constructor( sourceElementOrData, config ) { super( config ); - if ( isElement( sourceElementOrData ) ) { + if ( sourceElementOrData instanceof HTMLElement ) { this.sourceElement = sourceElementOrData; } @@ -1054,7 +1053,7 @@ class VirtualClassicTestEditor extends VirtualTestEditor { .then( () => { editor.ui.init(); - const initialData = isElement( sourceElementOrData ) ? + const initialData = sourceElementOrData instanceof HTMLElement ? sourceElementOrData.innerHTML : sourceElementOrData; diff --git a/packages/ckeditor5-editor-decoupled/LICENSE.md b/packages/ckeditor5-editor-decoupled/LICENSE.md index eae2a721304..314cb2e9c3f 100644 --- a/packages/ckeditor5-editor-decoupled/LICENSE.md +++ b/packages/ckeditor5-editor-decoupled/LICENSE.md @@ -11,10 +11,6 @@ Sources of Intellectual Property Included in CKEditor Where not otherwise indicated, all CKEditor content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, CKEditor will incorporate work done by developers outside of CKSource with their express permission. -The following libraries are included in CKEditor under the [MIT license](https://opensource.org/licenses/MIT): - -* Lodash - Copyright (c) JS Foundation and other contributors https://js.foundation/. Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors http://underscorejs.org/. - Trademarks ---------- diff --git a/packages/ckeditor5-editor-decoupled/package.json b/packages/ckeditor5-editor-decoupled/package.json index fd49d0981ab..ad8c3248c24 100644 --- a/packages/ckeditor5-editor-decoupled/package.json +++ b/packages/ckeditor5-editor-decoupled/package.json @@ -16,8 +16,7 @@ "@ckeditor/ckeditor5-engine": "43.3.1", "@ckeditor/ckeditor5-ui": "43.3.1", "@ckeditor/ckeditor5-utils": "43.3.1", - "ckeditor5": "43.3.1", - "lodash-es": "4.17.21" + "ckeditor5": "43.3.1" }, "devDependencies": { "@ckeditor/ckeditor5-basic-styles": "43.3.1", diff --git a/packages/ckeditor5-editor-decoupled/src/decouplededitor.ts b/packages/ckeditor5-editor-decoupled/src/decouplededitor.ts index 5f7116ef330..b2433ab328c 100644 --- a/packages/ckeditor5-editor-decoupled/src/decouplededitor.ts +++ b/packages/ckeditor5-editor-decoupled/src/decouplededitor.ts @@ -22,8 +22,6 @@ import { import DecoupledEditorUI from './decouplededitorui.js'; import DecoupledEditorUIView from './decouplededitoruiview.js'; -import { isElement as _isElement } from 'lodash-es'; - /** * The decoupled editor implementation. It provides an inline editable and a toolbar. However, unlike other editors, * it does not render these components anywhere in the DOM unless configured. @@ -257,5 +255,5 @@ function getInitialData( sourceElementOrData: HTMLElement | string ): string { } function isElement( value: any ): value is Element { - return _isElement( value ); + return value instanceof HTMLElement; } diff --git a/packages/ckeditor5-editor-decoupled/tests/decouplededitorui.js b/packages/ckeditor5-editor-decoupled/tests/decouplededitorui.js index 3da9f3d4133..1729ba5e01a 100644 --- a/packages/ckeditor5-editor-decoupled/tests/decouplededitorui.js +++ b/packages/ckeditor5-editor-decoupled/tests/decouplededitorui.js @@ -3,7 +3,7 @@ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license */ -/* globals document, Event */ +/* globals document, Event, HTMLElement */ import View from '@ckeditor/ckeditor5-ui/src/view.js'; @@ -18,7 +18,6 @@ import VirtualTestEditor from '@ckeditor/ckeditor5-core/tests/_utils/virtualtest import { keyCodes } from '@ckeditor/ckeditor5-utils/src/keyboard.js'; import testUtils from '@ckeditor/ckeditor5-core/tests/_utils/utils.js'; import { assertBinding } from '@ckeditor/ckeditor5-utils/tests/_utils/utils.js'; -import { isElement } from 'lodash-es'; import { setData as setModelData } from '@ckeditor/ckeditor5-engine/src/dev-utils/model.js'; describe( 'DecoupledEditorUI', () => { @@ -422,7 +421,7 @@ class VirtualDecoupledTestEditor extends VirtualTestEditor { constructor( sourceElementOrData, config ) { super( config ); - if ( isElement( sourceElementOrData ) ) { + if ( sourceElementOrData instanceof HTMLElement ) { this.sourceElement = sourceElementOrData; } @@ -448,7 +447,7 @@ class VirtualDecoupledTestEditor extends VirtualTestEditor { .then( () => { editor.ui.init(); - const initialData = isElement( sourceElementOrData ) ? + const initialData = sourceElementOrData instanceof HTMLElement ? sourceElementOrData.innerHTML : sourceElementOrData; diff --git a/packages/ckeditor5-editor-inline/LICENSE.md b/packages/ckeditor5-editor-inline/LICENSE.md index 0d3da44d71b..c1abfd1a7c7 100644 --- a/packages/ckeditor5-editor-inline/LICENSE.md +++ b/packages/ckeditor5-editor-inline/LICENSE.md @@ -11,10 +11,6 @@ Sources of Intellectual Property Included in CKEditor Where not otherwise indicated, all CKEditor content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, CKEditor will incorporate work done by developers outside of CKSource with their express permission. -The following libraries are included in CKEditor under the [MIT license](https://opensource.org/licenses/MIT): - -* Lodash - Copyright (c) JS Foundation and other contributors https://js.foundation/. Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors http://underscorejs.org/. - Trademarks ---------- diff --git a/packages/ckeditor5-editor-inline/package.json b/packages/ckeditor5-editor-inline/package.json index 7ee574a5067..b39eccab7f0 100644 --- a/packages/ckeditor5-editor-inline/package.json +++ b/packages/ckeditor5-editor-inline/package.json @@ -16,8 +16,7 @@ "@ckeditor/ckeditor5-engine": "43.3.1", "@ckeditor/ckeditor5-ui": "43.3.1", "@ckeditor/ckeditor5-utils": "43.3.1", - "ckeditor5": "43.3.1", - "lodash-es": "4.17.21" + "ckeditor5": "43.3.1" }, "devDependencies": { "@ckeditor/ckeditor5-basic-styles": "43.3.1", diff --git a/packages/ckeditor5-editor-inline/src/inlineeditor.ts b/packages/ckeditor5-editor-inline/src/inlineeditor.ts index fdb4a1b42e7..6cba08a2135 100644 --- a/packages/ckeditor5-editor-inline/src/inlineeditor.ts +++ b/packages/ckeditor5-editor-inline/src/inlineeditor.ts @@ -20,8 +20,6 @@ import { getDataFromElement, CKEditorError } from 'ckeditor5/src/utils.js'; import InlineEditorUI from './inlineeditorui.js'; import InlineEditorUIView from './inlineeditoruiview.js'; -import { isElement as _isElement } from 'lodash-es'; - /** * The inline editor implementation. It uses an inline editable and a floating toolbar. * See the {@glink examples/builds/inline-editor demo}. @@ -222,6 +220,6 @@ function getInitialData( sourceElementOrData: HTMLElement | string ): string { return isElement( sourceElementOrData ) ? getDataFromElement( sourceElementOrData ) : sourceElementOrData; } -function isElement( value: any ): value is Element { - return _isElement( value ); +function isElement( value: any ): value is HTMLElement { + return value instanceof HTMLElement; } diff --git a/packages/ckeditor5-editor-inline/tests/inlineeditorui.js b/packages/ckeditor5-editor-inline/tests/inlineeditorui.js index 896df6a8330..a3182e9671d 100644 --- a/packages/ckeditor5-editor-inline/tests/inlineeditorui.js +++ b/packages/ckeditor5-editor-inline/tests/inlineeditorui.js @@ -3,7 +3,7 @@ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license */ -/* globals document, Event, console */ +/* globals document, Event, console, HTMLElement */ import View from '@ckeditor/ckeditor5-ui/src/view.js'; @@ -18,7 +18,6 @@ import VirtualTestEditor from '@ckeditor/ckeditor5-core/tests/_utils/virtualtest import { keyCodes } from '@ckeditor/ckeditor5-utils/src/keyboard.js'; import testUtils from '@ckeditor/ckeditor5-core/tests/_utils/utils.js'; import { assertBinding } from '@ckeditor/ckeditor5-utils/tests/_utils/utils.js'; -import { isElement } from 'lodash-es'; import { setData as setModelData } from '@ckeditor/ckeditor5-engine/src/dev-utils/model.js'; describe( 'InlineEditorUI', () => { @@ -505,7 +504,7 @@ class VirtualInlineTestEditor extends VirtualTestEditor { constructor( sourceElementOrData, config ) { super( config ); - if ( isElement( sourceElementOrData ) ) { + if ( sourceElementOrData instanceof HTMLElement ) { this.sourceElement = sourceElementOrData; } @@ -531,7 +530,7 @@ class VirtualInlineTestEditor extends VirtualTestEditor { .then( () => { editor.ui.init(); - const initialData = isElement( sourceElementOrData ) ? + const initialData = sourceElementOrData instanceof HTMLElement ? sourceElementOrData.innerHTML : sourceElementOrData; diff --git a/packages/ckeditor5-editor-multi-root/LICENSE.md b/packages/ckeditor5-editor-multi-root/LICENSE.md index dfb9578e30d..76e25340f7b 100644 --- a/packages/ckeditor5-editor-multi-root/LICENSE.md +++ b/packages/ckeditor5-editor-multi-root/LICENSE.md @@ -11,10 +11,6 @@ Sources of Intellectual Property Included in CKEditor Where not otherwise indicated, all CKEditor content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, CKEditor will incorporate work done by developers outside of CKSource with their express permission. -The following libraries are included in CKEditor under the [MIT license](https://opensource.org/licenses/MIT): - -* Lodash - Copyright (c) JS Foundation and other contributors https://js.foundation/. Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors http://underscorejs.org/. - Trademarks ---------- diff --git a/packages/ckeditor5-editor-multi-root/package.json b/packages/ckeditor5-editor-multi-root/package.json index 18975eaca27..5bf6d810e26 100644 --- a/packages/ckeditor5-editor-multi-root/package.json +++ b/packages/ckeditor5-editor-multi-root/package.json @@ -16,8 +16,7 @@ "@ckeditor/ckeditor5-engine": "43.3.1", "@ckeditor/ckeditor5-ui": "43.3.1", "@ckeditor/ckeditor5-utils": "43.3.1", - "ckeditor5": "43.3.1", - "lodash-es": "4.17.21" + "ckeditor5": "43.3.1" }, "devDependencies": { "@ckeditor/ckeditor5-basic-styles": "43.3.1", diff --git a/packages/ckeditor5-editor-multi-root/src/multirooteditor.ts b/packages/ckeditor5-editor-multi-root/src/multirooteditor.ts index 8899a6d2135..6d5102e29dc 100644 --- a/packages/ckeditor5-editor-multi-root/src/multirooteditor.ts +++ b/packages/ckeditor5-editor-multi-root/src/multirooteditor.ts @@ -26,7 +26,6 @@ import { import MultiRootEditorUI from './multirooteditorui.js'; import MultiRootEditorUIView from './multirooteditoruiview.js'; -import { isElement as _isElement } from 'lodash-es'; import { type RootElement, type ViewRootEditableElement, @@ -935,8 +934,8 @@ function getInitialData( sourceElementOrData: HTMLElement | string ): string { return isElement( sourceElementOrData ) ? getDataFromElement( sourceElementOrData ) : sourceElementOrData; } -function isElement( value: any ): value is Element { - return _isElement( value ); +function isElement( value: any ): value is HTMLElement { + return value instanceof HTMLElement; } /** diff --git a/packages/ckeditor5-engine/LICENSE.md b/packages/ckeditor5-engine/LICENSE.md index 3cd6b5d7535..1d8890f0fce 100644 --- a/packages/ckeditor5-engine/LICENSE.md +++ b/packages/ckeditor5-engine/LICENSE.md @@ -14,6 +14,7 @@ Where not otherwise indicated, all CKEditor content is authored by CKSource engi The following libraries are included in CKEditor under the [MIT license](https://opensource.org/licenses/MIT): * Lodash - Copyright (c) JS Foundation and other contributors https://js.foundation/. Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors http://underscorejs.org/. +* es-toolkit - Copyright (c) 2024 Viva Republica, Inc. Trademarks ---------- diff --git a/packages/ckeditor5-engine/package.json b/packages/ckeditor5-engine/package.json index 5e1cb0cbf83..86985a6314f 100644 --- a/packages/ckeditor5-engine/package.json +++ b/packages/ckeditor5-engine/package.json @@ -25,6 +25,7 @@ "main": "src/index.ts", "dependencies": { "@ckeditor/ckeditor5-utils": "43.3.1", + "es-toolkit": "1.27.0", "lodash-es": "4.17.21" }, "devDependencies": { diff --git a/packages/ckeditor5-engine/src/conversion/downcasthelpers.ts b/packages/ckeditor5-engine/src/conversion/downcasthelpers.ts index 08894318a79..2c98ccd5e5e 100644 --- a/packages/ckeditor5-engine/src/conversion/downcasthelpers.ts +++ b/packages/ckeditor5-engine/src/conversion/downcasthelpers.ts @@ -57,7 +57,7 @@ import { type PriorityString } from '@ckeditor/ckeditor5-utils'; -import { cloneDeep } from 'lodash-es'; +import { cloneDeep } from 'es-toolkit/compat'; /** * Downcast conversion helper functions. diff --git a/packages/ckeditor5-engine/src/conversion/upcasthelpers.ts b/packages/ckeditor5-engine/src/conversion/upcasthelpers.ts index a1c0030fa18..29f6319fbf4 100644 --- a/packages/ckeditor5-engine/src/conversion/upcasthelpers.ts +++ b/packages/ckeditor5-engine/src/conversion/upcasthelpers.ts @@ -19,7 +19,7 @@ import { isParagraphable, wrapInParagraph } from '../model/utils/autoparagraphin import { priorities, type EventInfo, type PriorityString } from '@ckeditor/ckeditor5-utils'; -import { cloneDeep } from 'lodash-es'; +import { cloneDeep } from 'es-toolkit/compat'; /** * Contains the {@link module:engine/view/view view} to {@link module:engine/model/model model} converters for diff --git a/packages/ckeditor5-engine/src/dev-utils/model.ts b/packages/ckeditor5-engine/src/dev-utils/model.ts index e05ef401910..f1b63094afe 100644 --- a/packages/ckeditor5-engine/src/dev-utils/model.ts +++ b/packages/ckeditor5-engine/src/dev-utils/model.ts @@ -67,7 +67,7 @@ import type ModelElement from '../model/element.js'; import { toMap, type EventInfo } from '@ckeditor/ckeditor5-utils'; -import { isPlainObject } from 'lodash-es'; +import { isPlainObject } from 'es-toolkit/compat'; /** * Writes the content of a model {@link module:engine/model/document~Document document} to an HTML-like string. diff --git a/packages/ckeditor5-engine/src/dev-utils/utils.ts b/packages/ckeditor5-engine/src/dev-utils/utils.ts index 22db760e32d..a8c5ebb1bfd 100644 --- a/packages/ckeditor5-engine/src/dev-utils/utils.ts +++ b/packages/ckeditor5-engine/src/dev-utils/utils.ts @@ -13,7 +13,7 @@ /* globals console */ -// @if CK_DEBUG_TYPING // const { debounce } = require( 'lodash-es' ); +// @if CK_DEBUG_TYPING // const { debounce } = require( 'es-toolkit/compat' ); /** * Helper function, converts a map to the 'key1="value1" key2="value1"' format. diff --git a/packages/ckeditor5-engine/src/model/document.ts b/packages/ckeditor5-engine/src/model/document.ts index 8b6eae77679..4f75593cbbf 100644 --- a/packages/ckeditor5-engine/src/model/document.ts +++ b/packages/ckeditor5-engine/src/model/document.ts @@ -28,7 +28,7 @@ import { isInsideCombinedSymbol } from '@ckeditor/ckeditor5-utils'; -import { clone } from 'lodash-es'; +import { clone } from 'es-toolkit/compat'; // @if CK_DEBUG_ENGINE // const { logDocument } = require( '../dev-utils/utils' ); diff --git a/packages/ckeditor5-engine/src/model/operation/attributeoperation.ts b/packages/ckeditor5-engine/src/model/operation/attributeoperation.ts index a43fc1e5b1c..2b1f0f141b7 100644 --- a/packages/ckeditor5-engine/src/model/operation/attributeoperation.ts +++ b/packages/ckeditor5-engine/src/model/operation/attributeoperation.ts @@ -14,7 +14,7 @@ import Range from '../range.js'; import type Document from '../document.js'; import { CKEditorError } from '@ckeditor/ckeditor5-utils'; -import { isEqual } from 'lodash-es'; +import { isEqual } from 'es-toolkit/compat'; import type { Selectable } from '../selection.js'; /** diff --git a/packages/ckeditor5-engine/src/view/downcastwriter.ts b/packages/ckeditor5-engine/src/view/downcastwriter.ts index 9c7e6c55823..d1e3f5aa41d 100644 --- a/packages/ckeditor5-engine/src/view/downcastwriter.ts +++ b/packages/ckeditor5-engine/src/view/downcastwriter.ts @@ -23,7 +23,7 @@ import { CKEditorError, isIterable } from '@ckeditor/ckeditor5-utils'; import DocumentFragment from './documentfragment.js'; import Text from './text.js'; import EditableElement from './editableelement.js'; -import { isPlainObject } from 'lodash-es'; +import { isPlainObject } from 'es-toolkit/compat'; import type Document from './document.js'; import type Node from './node.js'; diff --git a/packages/ckeditor5-engine/src/view/matcher.ts b/packages/ckeditor5-engine/src/view/matcher.ts index 70b1fd81604..40c605d3fc0 100644 --- a/packages/ckeditor5-engine/src/view/matcher.ts +++ b/packages/ckeditor5-engine/src/view/matcher.ts @@ -9,7 +9,7 @@ import type Element from './element.js'; -import { isPlainObject } from 'lodash-es'; +import { isPlainObject } from 'es-toolkit/compat'; import { logWarning } from '@ckeditor/ckeditor5-utils'; diff --git a/packages/ckeditor5-engine/src/view/node.ts b/packages/ckeditor5-engine/src/view/node.ts index f6bdfd9de6f..8ca847cda7f 100644 --- a/packages/ckeditor5-engine/src/view/node.ts +++ b/packages/ckeditor5-engine/src/view/node.ts @@ -15,7 +15,7 @@ import { compareArrays } from '@ckeditor/ckeditor5-utils'; -import { clone } from 'lodash-es'; +import { clone } from 'es-toolkit/compat'; import type { default as Document, ChangeType } from './document.js'; import type DocumentFragment from './documentfragment.js'; diff --git a/packages/ckeditor5-engine/src/view/observer/fakeselectionobserver.ts b/packages/ckeditor5-engine/src/view/observer/fakeselectionobserver.ts index 8f9be25966e..b5835adaa3a 100644 --- a/packages/ckeditor5-engine/src/view/observer/fakeselectionobserver.ts +++ b/packages/ckeditor5-engine/src/view/observer/fakeselectionobserver.ts @@ -17,7 +17,7 @@ import type { ViewDocumentSelectionEventData } from './selectionobserver.js'; import { keyCodes } from '@ckeditor/ckeditor5-utils'; -import { debounce, type DebouncedFunc } from 'lodash-es'; +import { debounce } from 'es-toolkit/compat'; /** * Fake selection observer class. If view selection is fake it is placed in dummy DOM container. This observer listens @@ -30,7 +30,7 @@ export default class FakeSelectionObserver extends Observer { /** * Fires debounced event `selectionChangeDone`. It uses `lodash#debounce` method to delay function call. */ - private readonly _fireSelectionChangeDoneDebounced: DebouncedFunc<( data: ViewDocumentSelectionEventData ) => void>; + private readonly _fireSelectionChangeDoneDebounced: ReturnType void>>; /** * Creates new FakeSelectionObserver instance. diff --git a/packages/ckeditor5-engine/src/view/observer/mutationobserver.ts b/packages/ckeditor5-engine/src/view/observer/mutationobserver.ts index 28b4cf8c22c..52b5d99e002 100644 --- a/packages/ckeditor5-engine/src/view/observer/mutationobserver.ts +++ b/packages/ckeditor5-engine/src/view/observer/mutationobserver.ts @@ -11,7 +11,7 @@ import Observer from './observer.js'; import { startsWithFiller } from '../filler.js'; -import { isEqualWith } from 'lodash-es'; +import { isEqualWith } from 'es-toolkit/compat'; import type DomConverter from '../domconverter.js'; import type View from '../view.js'; diff --git a/packages/ckeditor5-engine/src/view/observer/selectionobserver.ts b/packages/ckeditor5-engine/src/view/observer/selectionobserver.ts index e6c29374ed3..03b41c2b525 100644 --- a/packages/ckeditor5-engine/src/view/observer/selectionobserver.ts +++ b/packages/ckeditor5-engine/src/view/observer/selectionobserver.ts @@ -13,7 +13,7 @@ import Observer from './observer.js'; import MutationObserver from './mutationobserver.js'; import FocusObserver from './focusobserver.js'; import { env } from '@ckeditor/ckeditor5-utils'; -import { debounce, type DebouncedFunc } from 'lodash-es'; +import { debounce } from 'es-toolkit/compat'; import type View from '../view.js'; import type DocumentSelection from '../documentselection.js'; @@ -69,7 +69,7 @@ export default class SelectionObserver extends Observer { /** * Fires debounced event `selectionChangeDone`. It uses `lodash#debounce` method to delay function call. */ - private readonly _fireSelectionChangeDoneDebounced: DebouncedFunc<( data: ViewDocumentSelectionEventData ) => void>; + private readonly _fireSelectionChangeDoneDebounced: ReturnType void>>; /** * When called, starts clearing the {@link #_loopbackCounter} counter in time intervals. When the number of selection @@ -83,7 +83,7 @@ export default class SelectionObserver extends Observer { * correctly (for whatever reason). It is a safeguard (paranoid check), that returns document to the normal state * after a certain period of time (debounced, postponed by each selectionchange event). */ - private readonly _documentIsSelectingInactivityTimeoutDebounced: DebouncedFunc<() => void>; + private readonly _documentIsSelectingInactivityTimeoutDebounced: ReturnType boolean>>; /** * Private property to check if the code does not enter infinite loop. diff --git a/packages/ckeditor5-engine/src/view/stylesmap.ts b/packages/ckeditor5-engine/src/view/stylesmap.ts index 2217e4feca7..0efd0eb3166 100644 --- a/packages/ckeditor5-engine/src/view/stylesmap.ts +++ b/packages/ckeditor5-engine/src/view/stylesmap.ts @@ -7,7 +7,7 @@ * @module engine/view/stylesmap */ -import { get, isObject, merge, set, unset } from 'lodash-es'; +import { get, isObject, merge, set, unset } from 'es-toolkit/compat'; /** * Styles map. Allows handling (adding, removing, retrieving) a set of style rules (usually, of an element). diff --git a/packages/ckeditor5-engine/src/view/upcastwriter.ts b/packages/ckeditor5-engine/src/view/upcastwriter.ts index 97a7e45a0cd..0e27086cf5b 100644 --- a/packages/ckeditor5-engine/src/view/upcastwriter.ts +++ b/packages/ckeditor5-engine/src/view/upcastwriter.ts @@ -10,7 +10,7 @@ import DocumentFragment from './documentfragment.js'; import Element, { type ElementAttributes } from './element.js'; import Text from './text.js'; -import { isPlainObject } from 'lodash-es'; +import { isPlainObject } from 'es-toolkit/compat'; import Position, { type PositionOffset } from './position.js'; import Range from './range.js'; import Selection, { diff --git a/packages/ckeditor5-engine/src/view/view.ts b/packages/ckeditor5-engine/src/view/view.ts index 0a5812dd94f..7aecc709cad 100644 --- a/packages/ckeditor5-engine/src/view/view.ts +++ b/packages/ckeditor5-engine/src/view/view.ts @@ -46,7 +46,7 @@ import { import { injectUiElementHandling } from './uielement.js'; import { injectQuirksHandling } from './filler.js'; -import { cloneDeep } from 'lodash-es'; +import { cloneDeep } from 'es-toolkit/compat'; type IfTrue = T extends true ? true : never; type DomRange = globalThis.Range; diff --git a/packages/ckeditor5-find-and-replace/LICENSE.md b/packages/ckeditor5-find-and-replace/LICENSE.md index e4fb4bb6412..c90d5223e2e 100644 --- a/packages/ckeditor5-find-and-replace/LICENSE.md +++ b/packages/ckeditor5-find-and-replace/LICENSE.md @@ -13,7 +13,7 @@ Where not otherwise indicated, all CKEditor content is authored by CKSource engi The following libraries are included in CKEditor under the [MIT license](https://opensource.org/licenses/MIT): -* Lodash - Copyright (c) JS Foundation and other contributors https://js.foundation/. Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors http://underscorejs.org/. +* es-toolkit - Copyright (c) 2024 Viva Republica, Inc. Trademarks ---------- diff --git a/packages/ckeditor5-find-and-replace/package.json b/packages/ckeditor5-find-and-replace/package.json index d1b9c33db18..25ea1340b32 100644 --- a/packages/ckeditor5-find-and-replace/package.json +++ b/packages/ckeditor5-find-and-replace/package.json @@ -17,7 +17,7 @@ "@ckeditor/ckeditor5-ui": "43.3.1", "@ckeditor/ckeditor5-utils": "43.3.1", "ckeditor5": "43.3.1", - "lodash-es": "4.17.21" + "es-toolkit": "1.27.0" }, "devDependencies": { "@ckeditor/ckeditor5-dev-utils": "^45.0.0", diff --git a/packages/ckeditor5-find-and-replace/src/findandreplaceediting.ts b/packages/ckeditor5-find-and-replace/src/findandreplaceediting.ts index c16dff96538..3ba400d6f8e 100644 --- a/packages/ckeditor5-find-and-replace/src/findandreplaceediting.ts +++ b/packages/ckeditor5-find-and-replace/src/findandreplaceediting.ts @@ -25,7 +25,7 @@ import FindAndReplaceState, { type FindCallback } from './findandreplacestate.js import FindAndReplaceUtils from './findandreplaceutils.js'; import type { ResultType } from './findandreplace.js'; -import { debounce } from 'lodash-es'; +import { debounce } from 'es-toolkit/compat'; import '../theme/findandreplace.css'; diff --git a/packages/ckeditor5-find-and-replace/src/findandreplaceutils.ts b/packages/ckeditor5-find-and-replace/src/findandreplaceutils.ts index b8b0adb267f..6b58e54ec07 100644 --- a/packages/ckeditor5-find-and-replace/src/findandreplaceutils.ts +++ b/packages/ckeditor5-find-and-replace/src/findandreplaceutils.ts @@ -10,7 +10,7 @@ import type { Element, Item, Marker, Model, Range } from 'ckeditor5/src/engine.js'; import { Plugin } from 'ckeditor5/src/core.js'; import { Collection, uid } from 'ckeditor5/src/utils.js'; -import { escapeRegExp } from 'lodash-es'; +import { escapeRegExp } from 'es-toolkit/compat'; import type { ResultType } from './findandreplace.js'; /** diff --git a/packages/ckeditor5-html-embed/package.json b/packages/ckeditor5-html-embed/package.json index 38808cb8453..edfaa6dedfc 100644 --- a/packages/ckeditor5-html-embed/package.json +++ b/packages/ckeditor5-html-embed/package.json @@ -29,7 +29,7 @@ "@ckeditor/ckeditor5-paragraph": "43.3.1", "@ckeditor/ckeditor5-table": "43.3.1", "@ckeditor/ckeditor5-theme-lark": "43.3.1", - "lodash-es": "^4.17.15", + "es-toolkit": "1.27.0", "sanitize-html": "^2.13.0", "typescript": "5.0.4", "webpack": "^5.94.0", diff --git a/packages/ckeditor5-html-embed/tests/manual/htmlembed.js b/packages/ckeditor5-html-embed/tests/manual/htmlembed.js index 22431e4e140..3590cdf2f16 100644 --- a/packages/ckeditor5-html-embed/tests/manual/htmlembed.js +++ b/packages/ckeditor5-html-embed/tests/manual/htmlembed.js @@ -6,7 +6,7 @@ /* globals window, document */ import sanitizeHtml from 'sanitize-html'; -import { clone } from 'lodash-es'; +import { clone } from 'es-toolkit'; import ClassicEditor from '@ckeditor/ckeditor5-editor-classic/src/classiceditor.js'; import ArticlePluginSet from '@ckeditor/ckeditor5-core/tests/_utils/articlepluginset.js'; import MediaEmbed from '@ckeditor/ckeditor5-media-embed/src/mediaembed.js'; diff --git a/packages/ckeditor5-html-support/LICENSE.md b/packages/ckeditor5-html-support/LICENSE.md index f00477fa734..c6b1923a407 100644 --- a/packages/ckeditor5-html-support/LICENSE.md +++ b/packages/ckeditor5-html-support/LICENSE.md @@ -13,7 +13,7 @@ Where not otherwise indicated, all CKEditor content is authored by CKSource engi The following libraries are included in CKEditor under the [MIT license](https://opensource.org/licenses/MIT): -* Lodash - Copyright (c) JS Foundation and other contributors https://js.foundation/. Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors http://underscorejs.org/. +* es-toolkit - Copyright (c) 2024 Viva Republica, Inc. Trademarks ---------- diff --git a/packages/ckeditor5-html-support/package.json b/packages/ckeditor5-html-support/package.json index 42761866420..e1f54e87b56 100644 --- a/packages/ckeditor5-html-support/package.json +++ b/packages/ckeditor5-html-support/package.json @@ -23,7 +23,7 @@ "@ckeditor/ckeditor5-utils": "43.3.1", "@ckeditor/ckeditor5-widget": "43.3.1", "ckeditor5": "43.3.1", - "lodash-es": "4.17.21" + "es-toolkit": "1.27.0" }, "devDependencies": { "@ckeditor/ckeditor5-alignment": "43.3.1", diff --git a/packages/ckeditor5-html-support/src/datafilter.ts b/packages/ckeditor5-html-support/src/datafilter.ts index 8d3608fb65a..6cce4a6322e 100644 --- a/packages/ckeditor5-html-support/src/datafilter.ts +++ b/packages/ckeditor5-html-support/src/datafilter.ts @@ -53,7 +53,7 @@ import { type GHSViewAttributes } from './utils.js'; -import { isPlainObject } from 'lodash-es'; +import { isPlainObject } from 'es-toolkit/compat'; import '../theme/datafilter.css'; diff --git a/packages/ckeditor5-html-support/src/dataschema.ts b/packages/ckeditor5-html-support/src/dataschema.ts index 04d784d5043..82655a2159a 100644 --- a/packages/ckeditor5-html-support/src/dataschema.ts +++ b/packages/ckeditor5-html-support/src/dataschema.ts @@ -10,7 +10,7 @@ import { Plugin } from 'ckeditor5/src/core.js'; import { toArray } from 'ckeditor5/src/utils.js'; import defaultConfig from './schemadefinitions.js'; -import { mergeWith } from 'lodash-es'; +import { mergeWith } from 'es-toolkit/compat'; import type { AttributeProperties, SchemaItemDefinition } from 'ckeditor5/src/engine.js'; /** diff --git a/packages/ckeditor5-html-support/src/integrations/list.ts b/packages/ckeditor5-html-support/src/integrations/list.ts index 9d0e13ddd83..d284bed3a8d 100644 --- a/packages/ckeditor5-html-support/src/integrations/list.ts +++ b/packages/ckeditor5-html-support/src/integrations/list.ts @@ -7,7 +7,7 @@ * @module html-support/integrations/list */ -import { isEqual } from 'lodash-es'; +import { isEqual } from 'es-toolkit/compat'; import { Plugin } from 'ckeditor5/src/core.js'; import type { UpcastElementEvent } from 'ckeditor5/src/engine.js'; import type { GetCallback } from 'ckeditor5/src/utils.js'; diff --git a/packages/ckeditor5-html-support/src/utils.ts b/packages/ckeditor5-html-support/src/utils.ts index 74c797e1cb1..b5fa91d052a 100644 --- a/packages/ckeditor5-html-support/src/utils.ts +++ b/packages/ckeditor5-html-support/src/utils.ts @@ -14,7 +14,7 @@ import type { ViewElement, Writer } from 'ckeditor5/src/engine.js'; -import { startCase, cloneDeep } from 'lodash-es'; +import { startCase, cloneDeep } from 'es-toolkit/compat'; export interface GHSViewAttributes { attributes?: Record; diff --git a/packages/ckeditor5-html-support/tests/integrations/image.js b/packages/ckeditor5-html-support/tests/integrations/image.js index 26a8f1f0119..f9020dbf664 100644 --- a/packages/ckeditor5-html-support/tests/integrations/image.js +++ b/packages/ckeditor5-html-support/tests/integrations/image.js @@ -3,7 +3,7 @@ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license */ -import { range } from 'lodash-es'; +import { range } from 'es-toolkit'; import ClassicTestEditor from '@ckeditor/ckeditor5-core/tests/_utils/classictesteditor.js'; import Image from '@ckeditor/ckeditor5-image/src/image.js'; diff --git a/packages/ckeditor5-html-support/tests/integrations/mediaembed.js b/packages/ckeditor5-html-support/tests/integrations/mediaembed.js index ae12b69700f..cfd8997c315 100644 --- a/packages/ckeditor5-html-support/tests/integrations/mediaembed.js +++ b/packages/ckeditor5-html-support/tests/integrations/mediaembed.js @@ -8,7 +8,7 @@ import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph.js'; import MediaEmbed from '@ckeditor/ckeditor5-media-embed/src/mediaembed.js'; import GeneralHtmlSupport from '../../src/generalhtmlsupport.js'; import { getModelDataWithAttributes } from '../_utils/utils.js'; -import { range } from 'lodash-es'; +import { range } from 'es-toolkit'; import MediaEmbedElementSupport from '../../src/integrations/mediaembed.js'; /* global document */ diff --git a/packages/ckeditor5-html-support/tests/integrations/table.js b/packages/ckeditor5-html-support/tests/integrations/table.js index b2874efa865..6b0fc589a14 100644 --- a/packages/ckeditor5-html-support/tests/integrations/table.js +++ b/packages/ckeditor5-html-support/tests/integrations/table.js @@ -17,7 +17,7 @@ import GeneralHtmlSupport from '../../src/generalhtmlsupport.js'; import { getModelDataWithAttributes } from '../_utils/utils.js'; import TableElementSupport from '../../src/integrations/table.js'; -import { range } from 'lodash-es'; +import { range } from 'es-toolkit'; /* global document */ diff --git a/packages/ckeditor5-image/LICENSE.md b/packages/ckeditor5-image/LICENSE.md index 27e8b29576b..0eb1d00570b 100644 --- a/packages/ckeditor5-image/LICENSE.md +++ b/packages/ckeditor5-image/LICENSE.md @@ -13,7 +13,7 @@ Where not otherwise indicated, all CKEditor content is authored by CKSource engi The following libraries are included in CKEditor under the [MIT license](https://opensource.org/licenses/MIT): -* Lodash - Copyright (c) JS Foundation and other contributors https://js.foundation/. Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors http://underscorejs.org/. +* es-toolkit - Copyright (c) 2024 Viva Republica, Inc. Trademarks ---------- diff --git a/packages/ckeditor5-image/package.json b/packages/ckeditor5-image/package.json index eba7d4ee9ab..8e137186513 100644 --- a/packages/ckeditor5-image/package.json +++ b/packages/ckeditor5-image/package.json @@ -23,7 +23,7 @@ "@ckeditor/ckeditor5-utils": "43.3.1", "@ckeditor/ckeditor5-widget": "43.3.1", "ckeditor5": "43.3.1", - "lodash-es": "4.17.21" + "es-toolkit": "1.27.0" }, "devDependencies": { "@ckeditor/ckeditor5-adapter-ckfinder": "43.3.1", diff --git a/packages/ckeditor5-image/src/imageresize/imageresizebuttons.ts b/packages/ckeditor5-image/src/imageresize/imageresizebuttons.ts index edbd37ed55f..d940f1b6fc9 100644 --- a/packages/ckeditor5-image/src/imageresize/imageresizebuttons.ts +++ b/packages/ckeditor5-image/src/imageresize/imageresizebuttons.ts @@ -6,7 +6,6 @@ /** * @module image/imageresize/imageresizebuttons */ -import { map } from 'lodash-es'; import { Plugin, icons, type Editor } from 'ckeditor5/src/core.js'; import { @@ -301,7 +300,7 @@ export default class ImageResizeButtons extends Plugin { } ) }; - const allDropdownValues = map( optionsWithSerializedValues, 'valueWithUnits' ); + const allDropdownValues = Object.values( optionsWithSerializedValues ).map( option => option.valueWithUnits ); definition.model.bind( 'isOn' ).to( command, 'value', getIsOnCustomButtonCallback( allDropdownValues ) ); } else { diff --git a/packages/ckeditor5-image/src/imagestyle/imagestyleui.ts b/packages/ckeditor5-image/src/imagestyle/imagestyleui.ts index bf2a478ed7c..07141398ade 100644 --- a/packages/ckeditor5-image/src/imagestyle/imagestyleui.ts +++ b/packages/ckeditor5-image/src/imagestyle/imagestyleui.ts @@ -9,7 +9,7 @@ import { Plugin } from 'ckeditor5/src/core.js'; import { ButtonView, createDropdown, addToolbarToDropdown, SplitButtonView } from 'ckeditor5/src/ui.js'; -import { isObject, identity } from 'lodash-es'; +import { isObject, identity } from 'es-toolkit/compat'; import ImageStyleEditing from './imagestyleediting.js'; import utils from './utils.js'; import type { ImageStyleDropdownDefinition, ImageStyleOptionDefinition } from '../imageconfig.js'; diff --git a/packages/ckeditor5-image/src/imagetoolbar.ts b/packages/ckeditor5-image/src/imagetoolbar.ts index ed1b446b133..c72a053f416 100644 --- a/packages/ckeditor5-image/src/imagetoolbar.ts +++ b/packages/ckeditor5-image/src/imagetoolbar.ts @@ -13,7 +13,7 @@ import { WidgetToolbarRepository } from 'ckeditor5/src/widget.js'; import ImageUtils from './imageutils.js'; import type { ImageStyleDropdownDefinition } from './imageconfig.js'; -import { isObject } from 'lodash-es'; +import { isObject } from 'es-toolkit/compat'; /** * The image toolbar plugin. It creates and manages the image toolbar (the toolbar displayed when an image is selected). diff --git a/packages/ckeditor5-link/LICENSE.md b/packages/ckeditor5-link/LICENSE.md index cfb02dbc79f..b653721ba1c 100644 --- a/packages/ckeditor5-link/LICENSE.md +++ b/packages/ckeditor5-link/LICENSE.md @@ -13,7 +13,7 @@ Where not otherwise indicated, all CKEditor content is authored by CKSource engi The following libraries are included in CKEditor under the [MIT license](https://opensource.org/licenses/MIT): -* Lodash - Copyright (c) JS Foundation and other contributors https://js.foundation/. Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors http://underscorejs.org/. +* es-toolkit - Copyright (c) 2024 Viva Republica, Inc. Trademarks ---------- diff --git a/packages/ckeditor5-link/package.json b/packages/ckeditor5-link/package.json index bdfcd4bdae7..4dd644695c7 100644 --- a/packages/ckeditor5-link/package.json +++ b/packages/ckeditor5-link/package.json @@ -21,7 +21,7 @@ "@ckeditor/ckeditor5-utils": "43.3.1", "@ckeditor/ckeditor5-widget": "43.3.1", "ckeditor5": "43.3.1", - "lodash-es": "4.17.21" + "es-toolkit": "1.27.0" }, "devDependencies": { "@ckeditor/ckeditor5-basic-styles": "43.3.1", diff --git a/packages/ckeditor5-link/src/utils.ts b/packages/ckeditor5-link/src/utils.ts index c7060ef8e2b..18178b93b3e 100644 --- a/packages/ckeditor5-link/src/utils.ts +++ b/packages/ckeditor5-link/src/utils.ts @@ -30,7 +30,7 @@ import type { import type { LinkActionsViewOptions } from './ui/linkactionsview.js'; -import { upperFirst } from 'lodash-es'; +import { upperFirst } from 'es-toolkit/compat'; const ATTRIBUTE_WHITESPACES = /[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g; // eslint-disable-line no-control-regex diff --git a/packages/ckeditor5-media-embed/package.json b/packages/ckeditor5-media-embed/package.json index d12b4302e41..b6f45fd47ef 100644 --- a/packages/ckeditor5-media-embed/package.json +++ b/packages/ckeditor5-media-embed/package.json @@ -33,10 +33,10 @@ "@ckeditor/ckeditor5-paragraph": "43.3.1", "@ckeditor/ckeditor5-table": "43.3.1", "@ckeditor/ckeditor5-theme-lark": "43.3.1", + "es-toolkit": "1.27.0", "typescript": "5.0.4", "webpack": "^5.94.0", - "webpack-cli": "^5.1.4", - "lodash-es": "^4.17.15" + "webpack-cli": "^5.1.4" }, "author": "CKSource (http://cksource.com/)", "license": "GPL-2.0-or-later", diff --git a/packages/ckeditor5-media-embed/tests/mediaembedediting.js b/packages/ckeditor5-media-embed/tests/mediaembedediting.js index d47a5c77ee1..c3cd44b3693 100644 --- a/packages/ckeditor5-media-embed/tests/mediaembedediting.js +++ b/packages/ckeditor5-media-embed/tests/mediaembedediting.js @@ -11,7 +11,7 @@ import { setData as setModelData, getData as getModelData } from '@ckeditor/cked import { getData as getViewData } from '@ckeditor/ckeditor5-engine/src/dev-utils/view.js'; import normalizeHtml from '@ckeditor/ckeditor5-utils/tests/_utils/normalizehtml.js'; import testUtils from '@ckeditor/ckeditor5-core/tests/_utils/utils.js'; -import { escapeRegExp } from 'lodash-es'; +import { escapeRegExp } from 'es-toolkit'; describe( 'MediaEmbedEditing', () => { let editor, model, doc, view; diff --git a/packages/ckeditor5-mention/LICENSE.md b/packages/ckeditor5-mention/LICENSE.md index b84c2dd4aa7..7e18eeb888a 100644 --- a/packages/ckeditor5-mention/LICENSE.md +++ b/packages/ckeditor5-mention/LICENSE.md @@ -13,7 +13,7 @@ Where not otherwise indicated, all CKEditor content is authored by CKSource engi The following libraries are included in CKEditor under the [MIT license](https://opensource.org/licenses/MIT): -* Lodash - Copyright (c) JS Foundation and other contributors https://js.foundation/. Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors http://underscorejs.org/. +* es-toolkit - Copyright (c) 2024 Viva Republica, Inc. Trademarks ---------- diff --git a/packages/ckeditor5-mention/package.json b/packages/ckeditor5-mention/package.json index a2c41ba7b0c..08e1fe886e7 100644 --- a/packages/ckeditor5-mention/package.json +++ b/packages/ckeditor5-mention/package.json @@ -18,7 +18,7 @@ "@ckeditor/ckeditor5-ui": "43.3.1", "@ckeditor/ckeditor5-utils": "43.3.1", "ckeditor5": "43.3.1", - "lodash-es": "4.17.21" + "es-toolkit": "1.27.0" }, "devDependencies": { "@ckeditor/ckeditor5-basic-styles": "43.3.1", diff --git a/packages/ckeditor5-mention/src/mentionui.ts b/packages/ckeditor5-mention/src/mentionui.ts index 4a870b241a1..a478f746d84 100644 --- a/packages/ckeditor5-mention/src/mentionui.ts +++ b/packages/ckeditor5-mention/src/mentionui.ts @@ -36,7 +36,7 @@ import { import { TextWatcher, type TextWatcherMatchedEvent } from 'ckeditor5/src/typing.js'; -import { debounce } from 'lodash-es'; +import { debounce } from 'es-toolkit/compat'; import MentionsView from './ui/mentionsview.js'; import DomWrapperView from './ui/domwrapperview.js'; diff --git a/packages/ckeditor5-mention/tests/_utils/asyncserver/index.js b/packages/ckeditor5-mention/tests/_utils/asyncserver/index.js index b2f62260c02..2fcc8c15942 100644 --- a/packages/ckeditor5-mention/tests/_utils/asyncserver/index.js +++ b/packages/ckeditor5-mention/tests/_utils/asyncserver/index.js @@ -9,7 +9,7 @@ const http = require( 'http' ); const fs = require( 'fs' ); const querystring = require( 'querystring' ); const url = require( 'url' ); -const { upperFirst } = require( 'lodash-es' ); +const { upperFirst } = require( 'es-toolkit' ); const hostname = '127.0.0.1'; const port = 3000; diff --git a/packages/ckeditor5-style/LICENSE.md b/packages/ckeditor5-style/LICENSE.md index 02a8d73efe2..5d253abbbbc 100644 --- a/packages/ckeditor5-style/LICENSE.md +++ b/packages/ckeditor5-style/LICENSE.md @@ -11,6 +11,10 @@ Sources of Intellectual Property Included in CKEditor Where not otherwise indicated, all CKEditor content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, CKEditor will incorporate work done by developers outside of CKSource with their express permission. +The following libraries are included in CKEditor under the [MIT license](https://opensource.org/licenses/MIT): + +* es-toolkit - Copyright (c) 2024 Viva Republica, Inc. + Trademarks ---------- diff --git a/packages/ckeditor5-style/package.json b/packages/ckeditor5-style/package.json index 085c29a5780..b78cb0202ed 100644 --- a/packages/ckeditor5-style/package.json +++ b/packages/ckeditor5-style/package.json @@ -18,7 +18,7 @@ "@ckeditor/ckeditor5-ui": "43.3.1", "@ckeditor/ckeditor5-utils": "43.3.1", "ckeditor5": "43.3.1", - "lodash-es": "4.17.21" + "es-toolkit": "1.27.0" }, "devDependencies": { "@ckeditor/ckeditor5-alignment": "43.3.1", diff --git a/packages/ckeditor5-style/src/styleutils.ts b/packages/ckeditor5-style/src/styleutils.ts index daff7edbc64..570a55b31b1 100644 --- a/packages/ckeditor5-style/src/styleutils.ts +++ b/packages/ckeditor5-style/src/styleutils.ts @@ -15,7 +15,7 @@ import type { TemplateDefinition } from 'ckeditor5/src/ui.js'; import type { DataFilter, DataSchema, GeneralHtmlSupport, DataSchemaBlockElementDefinition } from '@ckeditor/ckeditor5-html-support'; import type { StyleDefinition } from './styleconfig.js'; -import { isObject } from 'lodash-es'; +import { isObject } from 'es-toolkit/compat'; // These are intermediate element names that can't be rendered as style preview because they don't make sense standalone. const NON_PREVIEWABLE_ELEMENT_NAMES = [ diff --git a/packages/ckeditor5-table/LICENSE.md b/packages/ckeditor5-table/LICENSE.md index afc7c6bac3f..f5dbd6512ca 100644 --- a/packages/ckeditor5-table/LICENSE.md +++ b/packages/ckeditor5-table/LICENSE.md @@ -13,7 +13,7 @@ Where not otherwise indicated, all CKEditor content is authored by CKSource engi The following libraries are included in CKEditor under the [MIT license](https://opensource.org/licenses/MIT): -* Lodash - Copyright (c) JS Foundation and other contributors https://js.foundation/. Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors http://underscorejs.org/. +* es-toolkit - Copyright (c) 2024 Viva Republica, Inc. Trademarks ---------- diff --git a/packages/ckeditor5-table/package.json b/packages/ckeditor5-table/package.json index 14e2be60f61..3f5a9c4c3a7 100644 --- a/packages/ckeditor5-table/package.json +++ b/packages/ckeditor5-table/package.json @@ -20,7 +20,7 @@ "@ckeditor/ckeditor5-ui": "43.3.1", "@ckeditor/ckeditor5-utils": "43.3.1", "@ckeditor/ckeditor5-widget": "43.3.1", - "lodash-es": "4.17.21" + "es-toolkit": "1.27.0" }, "devDependencies": { "@ckeditor/ckeditor5-alignment": "43.3.1", diff --git a/packages/ckeditor5-table/src/tablecellproperties/tablecellpropertiesui.ts b/packages/ckeditor5-table/src/tablecellproperties/tablecellpropertiesui.ts index 020b063e486..77afe037604 100644 --- a/packages/ckeditor5-table/src/tablecellproperties/tablecellpropertiesui.ts +++ b/packages/ckeditor5-table/src/tablecellproperties/tablecellpropertiesui.ts @@ -27,7 +27,7 @@ import { lengthFieldValidator, lineWidthFieldValidator } from '../utils/ui/table-properties.js'; -import { debounce } from 'lodash-es'; +import { debounce } from 'es-toolkit/compat'; import { getTableWidgetAncestor } from '../utils/ui/widget.js'; import { getBalloonCellPositionData, repositionContextualBalloon } from '../utils/ui/contextualballoon.js'; diff --git a/packages/ckeditor5-table/src/tablecolumnresize/tablecolumnresizeediting.ts b/packages/ckeditor5-table/src/tablecolumnresize/tablecolumnresizeediting.ts index eb38a21152f..b9b94c148d3 100644 --- a/packages/ckeditor5-table/src/tablecolumnresize/tablecolumnresizeediting.ts +++ b/packages/ckeditor5-table/src/tablecolumnresize/tablecolumnresizeediting.ts @@ -7,7 +7,7 @@ * @module table/tablecolumnresize/tablecolumnresizeediting */ -import { throttle, isEqual } from 'lodash-es'; +import { throttle, isEqual } from 'es-toolkit/compat'; import { global, diff --git a/packages/ckeditor5-table/src/tableproperties/tablepropertiesui.ts b/packages/ckeditor5-table/src/tableproperties/tablepropertiesui.ts index ef87cdda99d..5da6a8b7858 100644 --- a/packages/ckeditor5-table/src/tableproperties/tablepropertiesui.ts +++ b/packages/ckeditor5-table/src/tableproperties/tablepropertiesui.ts @@ -17,7 +17,7 @@ import { type LabeledFieldView } from 'ckeditor5/src/ui.js'; -import { debounce } from 'lodash-es'; +import { debounce } from 'es-toolkit/compat'; import TablePropertiesView from './ui/tablepropertiesview.js'; import tableProperties from './../../theme/icons/table-properties.svg'; diff --git a/packages/ckeditor5-table/src/utils/table-properties.ts b/packages/ckeditor5-table/src/utils/table-properties.ts index 21a58fe9cbf..0a67441b61d 100644 --- a/packages/ckeditor5-table/src/utils/table-properties.ts +++ b/packages/ckeditor5-table/src/utils/table-properties.ts @@ -8,7 +8,7 @@ */ import type { BoxSides } from 'ckeditor5/src/engine.js'; -import { isObject } from 'lodash-es'; +import { isObject } from 'es-toolkit/compat'; /** * Returns a string if all four values of box sides are equal. diff --git a/packages/ckeditor5-table/tests/manual/tablemocking.js b/packages/ckeditor5-table/tests/manual/tablemocking.js index a4900271731..d9817bd0f4f 100644 --- a/packages/ckeditor5-table/tests/manual/tablemocking.js +++ b/packages/ckeditor5-table/tests/manual/tablemocking.js @@ -11,7 +11,7 @@ import ClassicEditor from '@ckeditor/ckeditor5-editor-classic/src/classiceditor. import { setData as setModelData } from '@ckeditor/ckeditor5-engine/src/dev-utils/model.js'; import { diffString } from 'json-diff'; -import { debounce } from 'lodash-es'; +import { debounce } from 'es-toolkit'; import ArticlePluginSet from '@ckeditor/ckeditor5-core/tests/_utils/articlepluginset.js'; import TableWalker from '../../src/tablewalker.js'; diff --git a/packages/ckeditor5-typing/LICENSE.md b/packages/ckeditor5-typing/LICENSE.md index 13602860ac4..2fc3f96112d 100644 --- a/packages/ckeditor5-typing/LICENSE.md +++ b/packages/ckeditor5-typing/LICENSE.md @@ -13,7 +13,7 @@ Where not otherwise indicated, all CKEditor content is authored by CKSource engi The following libraries are included in CKEditor under the [MIT license](https://opensource.org/licenses/MIT): -* Lodash - Copyright (c) JS Foundation and other contributors https://js.foundation/. Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors http://underscorejs.org/. +* es-toolkit - Copyright (c) 2024 Viva Republica, Inc. Trademarks ---------- diff --git a/packages/ckeditor5-typing/package.json b/packages/ckeditor5-typing/package.json index aa8485bdb52..bc83ec888d6 100644 --- a/packages/ckeditor5-typing/package.json +++ b/packages/ckeditor5-typing/package.json @@ -16,7 +16,7 @@ "@ckeditor/ckeditor5-core": "43.3.1", "@ckeditor/ckeditor5-engine": "43.3.1", "@ckeditor/ckeditor5-utils": "43.3.1", - "lodash-es": "4.17.21" + "es-toolkit": "1.27.0" }, "devDependencies": { "@ckeditor/ckeditor5-autoformat": "43.3.1", diff --git a/packages/ckeditor5-typing/src/input.ts b/packages/ckeditor5-typing/src/input.ts index e2262faf0f7..5dec25de9eb 100644 --- a/packages/ckeditor5-typing/src/input.ts +++ b/packages/ckeditor5-typing/src/input.ts @@ -28,7 +28,7 @@ import { type ViewDocumentMutationsEvent } from '@ckeditor/ckeditor5-engine'; -import { debounce } from 'lodash-es'; +import { debounce } from 'es-toolkit/compat'; /** * Handles text input coming from the keyboard or other input methods. diff --git a/packages/ckeditor5-typing/src/texttransformation.ts b/packages/ckeditor5-typing/src/texttransformation.ts index 72469b277cd..2ca9f005f10 100644 --- a/packages/ckeditor5-typing/src/texttransformation.ts +++ b/packages/ckeditor5-typing/src/texttransformation.ts @@ -18,7 +18,7 @@ import TextWatcher, { type TextWatcherMatchedDataEvent } from './textwatcher.js' import type { TextTransformationConfig, TextTransformationDescription } from './typingconfig.js'; import type Delete from './delete.js'; -import { escapeRegExp } from 'lodash-es'; +import { escapeRegExp } from 'es-toolkit/compat'; // All named transformations. const TRANSFORMATIONS: Record = { diff --git a/packages/ckeditor5-typing/tests/manual/beforeinput-contenteditable.js b/packages/ckeditor5-typing/tests/manual/beforeinput-contenteditable.js index 52a19108b96..d3bc56d9791 100644 --- a/packages/ckeditor5-typing/tests/manual/beforeinput-contenteditable.js +++ b/packages/ckeditor5-typing/tests/manual/beforeinput-contenteditable.js @@ -5,7 +5,7 @@ /* globals console, window, document */ -import { debounce } from 'lodash-es'; +import { debounce } from 'es-toolkit'; if ( window.logNative === undefined ) { window.logNative = true; diff --git a/packages/ckeditor5-ui/LICENSE.md b/packages/ckeditor5-ui/LICENSE.md index 64d4fd821d1..f2061381a16 100644 --- a/packages/ckeditor5-ui/LICENSE.md +++ b/packages/ckeditor5-ui/LICENSE.md @@ -14,6 +14,7 @@ Where not otherwise indicated, all CKEditor content is authored by CKSource engi The following libraries are included in CKEditor under the [MIT license](https://opensource.org/licenses/MIT): * Lodash - Copyright (c) JS Foundation and other contributors https://js.foundation/. Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors http://underscorejs.org/. +* es-toolkit - Copyright (c) 2024 Viva Republica, Inc. Trademarks ---------- diff --git a/packages/ckeditor5-ui/package.json b/packages/ckeditor5-ui/package.json index 2a7e5c37f62..d4341e4def6 100644 --- a/packages/ckeditor5-ui/package.json +++ b/packages/ckeditor5-ui/package.json @@ -17,6 +17,7 @@ "@ckeditor/ckeditor5-utils": "43.3.1", "color-convert": "2.0.1", "color-parse": "1.4.2", + "es-toolkit": "1.27.0", "lodash-es": "4.17.21", "vanilla-colorful": "0.7.2" }, diff --git a/packages/ckeditor5-ui/src/badge/badge.ts b/packages/ckeditor5-ui/src/badge/badge.ts index fe64bba2b86..d22e7cfb0af 100644 --- a/packages/ckeditor5-ui/src/badge/badge.ts +++ b/packages/ckeditor5-ui/src/badge/badge.ts @@ -18,7 +18,7 @@ import { import type View from '../view.js'; import BalloonPanelView from '../panel/balloon/balloonpanelview.js'; -import { throttle } from 'lodash-es'; +import { throttle } from 'es-toolkit/compat'; // ⚠ Note, whenever changing the threshold, make sure to update the docs/support/managing-ckeditor-logo.md docs // as this information is also mentioned there ⚠. diff --git a/packages/ckeditor5-ui/src/colorpicker/colorpickerview.ts b/packages/ckeditor5-ui/src/colorpicker/colorpickerview.ts index 9dfa07226c6..5be8f810d0e 100644 --- a/packages/ckeditor5-ui/src/colorpicker/colorpickerview.ts +++ b/packages/ckeditor5-ui/src/colorpicker/colorpickerview.ts @@ -11,7 +11,7 @@ import { convertColor, convertToHex, registerCustomElement, type ColorPickerView import type { HexColor } from '@ckeditor/ckeditor5-core'; import { type Locale, global, env } from '@ckeditor/ckeditor5-utils'; -import { debounce, type DebouncedFunc } from 'lodash-es'; +import { debounce } from 'es-toolkit/compat'; import View from '../view.js'; import type InputTextView from '../inputtext/inputtextview.js'; import type ViewCollection from '../viewcollection.js'; @@ -76,7 +76,7 @@ export default class ColorPickerView extends View { * * @private */ - private _debounceColorPickerEvent: DebouncedFunc<( arg: string ) => void>; + private _debounceColorPickerEvent: ReturnType void>>; /** * A reference to the configuration of the color picker specified in the constructor. diff --git a/packages/ckeditor5-ui/src/highlightedtext/highlightedtextview.ts b/packages/ckeditor5-ui/src/highlightedtext/highlightedtextview.ts index 10baef9337a..5b4a5787387 100644 --- a/packages/ckeditor5-ui/src/highlightedtext/highlightedtextview.ts +++ b/packages/ckeditor5-ui/src/highlightedtext/highlightedtextview.ts @@ -8,7 +8,7 @@ */ import View from '../view.js'; -import { escape } from 'lodash-es'; +import { escape } from 'es-toolkit/compat'; import '../../theme/components/highlightedtext/highlightedtext.css'; diff --git a/packages/ckeditor5-ui/src/menubar/menubarview.ts b/packages/ckeditor5-ui/src/menubar/menubarview.ts index 1d43cce432e..9d0e192b6e6 100644 --- a/packages/ckeditor5-ui/src/menubar/menubarview.ts +++ b/packages/ckeditor5-ui/src/menubar/menubarview.ts @@ -15,7 +15,7 @@ import { } from '@ckeditor/ckeditor5-utils'; import { type FocusableView } from '../focuscycler.js'; import View from '../view.js'; -import { isObject } from 'lodash-es'; +import { isObject } from 'es-toolkit/compat'; import ListItemView from '../list/listitemview.js'; import ListSeparatorView from '../list/listseparatorview.js'; import type ViewCollection from '../viewcollection.js'; diff --git a/packages/ckeditor5-ui/src/menubar/utils.ts b/packages/ckeditor5-ui/src/menubar/utils.ts index 3d7a6884631..0ad6ae163cb 100644 --- a/packages/ckeditor5-ui/src/menubar/utils.ts +++ b/packages/ckeditor5-ui/src/menubar/utils.ts @@ -34,7 +34,7 @@ import { type ObservableChangeEvent, type PositioningFunction } from '@ckeditor/ckeditor5-utils'; -import { cloneDeep } from 'lodash-es'; +import { cloneDeep } from 'es-toolkit/compat'; const NESTED_PANEL_HORIZONTAL_OFFSET = 5; diff --git a/packages/ckeditor5-ui/src/panel/balloon/balloonpanelview.ts b/packages/ckeditor5-ui/src/panel/balloon/balloonpanelview.ts index 3fda8cbbcc8..eb78abfa66e 100644 --- a/packages/ckeditor5-ui/src/panel/balloon/balloonpanelview.ts +++ b/packages/ckeditor5-ui/src/panel/balloon/balloonpanelview.ts @@ -26,7 +26,6 @@ import { type PositioningFunction } from '@ckeditor/ckeditor5-utils'; -import { isElement } from 'lodash-es'; import '../../../theme/components/panel/balloonpanel.css'; const toPx = /* #__PURE__ */ toUnit( 'px' ); @@ -1240,7 +1239,7 @@ export default class BalloonPanelView extends View { * e.g. when the passed object is a Rect instance or so. */ function getDomElement( object: any ): HTMLElement | null { - if ( isElement( object ) ) { + if ( object instanceof HTMLElement ) { return object; } diff --git a/packages/ckeditor5-ui/src/search/text/searchtextview.ts b/packages/ckeditor5-ui/src/search/text/searchtextview.ts index 22b212674fc..a30d1322e67 100644 --- a/packages/ckeditor5-ui/src/search/text/searchtextview.ts +++ b/packages/ckeditor5-ui/src/search/text/searchtextview.ts @@ -13,7 +13,7 @@ import { default as SearchTextQueryView, type SearchTextQueryViewConfig } from ' import SearchInfoView from '../searchinfoview.js'; import SearchResultsView from '../searchresultsview.js'; import FocusCycler, { type FocusableView } from '../../focuscycler.js'; -import { escapeRegExp } from 'lodash-es'; +import { escapeRegExp } from 'es-toolkit/compat'; import type FilteredView from '../filteredview.js'; import type ViewCollection from '../../viewcollection.js'; diff --git a/packages/ckeditor5-ui/src/template.ts b/packages/ckeditor5-ui/src/template.ts index 04f58aa399e..ce6cb57b22f 100644 --- a/packages/ckeditor5-ui/src/template.ts +++ b/packages/ckeditor5-ui/src/template.ts @@ -23,7 +23,8 @@ import { type ObservableChangeEvent } from '@ckeditor/ckeditor5-utils'; -import { isObject, cloneDeepWith } from 'lodash-es'; +import { isObject } from 'es-toolkit/compat'; +import { cloneDeepWith } from 'lodash-es'; const xhtmlNs = 'http://www.w3.org/1999/xhtml'; diff --git a/packages/ckeditor5-ui/src/toolbar/balloon/balloontoolbar.ts b/packages/ckeditor5-ui/src/toolbar/balloon/balloontoolbar.ts index e9f6c60984f..b96f5fb3ce8 100644 --- a/packages/ckeditor5-ui/src/toolbar/balloon/balloontoolbar.ts +++ b/packages/ckeditor5-ui/src/toolbar/balloon/balloontoolbar.ts @@ -40,7 +40,7 @@ import { type Schema } from '@ckeditor/ckeditor5-engine'; -import { debounce, type DebouncedFunc } from 'lodash-es'; +import { debounce } from 'es-toolkit/compat'; const toPx = /* #__PURE__ */ toUnit( 'px' ); @@ -91,7 +91,7 @@ export default class BalloonToolbar extends Plugin { * This function is stored as a plugin property to make possible to cancel * trailing debounced invocation on destroy. */ - private readonly _fireSelectionChangeDebounced: DebouncedFunc<() => void>; + private readonly _fireSelectionChangeDebounced: ReturnType unknown>>; /** * @inheritDoc diff --git a/packages/ckeditor5-ui/src/toolbar/toolbarview.ts b/packages/ckeditor5-ui/src/toolbar/toolbarview.ts index e07e2ac9a63..3a08a3ce5f9 100644 --- a/packages/ckeditor5-ui/src/toolbar/toolbarview.ts +++ b/packages/ckeditor5-ui/src/toolbar/toolbarview.ts @@ -41,7 +41,7 @@ import { type ToolbarConfigItem } from '@ckeditor/ckeditor5-core'; -import { isObject } from 'lodash-es'; +import { isObject } from 'es-toolkit/compat'; import '../../theme/components/toolbar/toolbar.css'; diff --git a/packages/ckeditor5-ui/src/tooltipmanager.ts b/packages/ckeditor5-ui/src/tooltipmanager.ts index 21834edeb4a..4b3b7c6dc40 100644 --- a/packages/ckeditor5-ui/src/tooltipmanager.ts +++ b/packages/ckeditor5-ui/src/tooltipmanager.ts @@ -22,7 +22,7 @@ import { import type { Editor } from '@ckeditor/ckeditor5-core'; -import { isElement, debounce, type DebouncedFunc } from 'lodash-es'; +import { debounce } from 'es-toolkit/compat'; import '../theme/components/tooltip/tooltip.css'; @@ -122,12 +122,12 @@ export default class TooltipManager extends /* #__PURE__ */ DomEmitterMixin() { * A debounced version of {@link #_pinTooltip}. Tooltips show with a delay to avoid flashing and * to improve the UX. */ - private _pinTooltipDebounced!: DebouncedFunc<( targetDomElement: HTMLElement, data: TooltipData ) => void>; + private _pinTooltipDebounced!: ReturnType void>>; /** * A debounced version of {@link #_unpinTooltip}. Tooltips hide with a delay to allow hovering of their titles. */ - private _unpinTooltipDebounced!: DebouncedFunc; + private _unpinTooltipDebounced!: ReturnType>; private readonly _watchdogExcluded!: true; @@ -318,7 +318,7 @@ export default class TooltipManager extends /* #__PURE__ */ DomEmitterMixin() { private _onLeaveOrBlur( evt: EventInfo, { target, relatedTarget }: any ) { if ( evt.name === 'mouseleave' ) { // Don't act when the event does not concern a DOM element (e.g. a mouseleave out of an entire document), - if ( !isElement( target ) ) { + if ( !( target instanceof HTMLElement ) ) { return; } @@ -484,7 +484,7 @@ export default class TooltipManager extends /* #__PURE__ */ DomEmitterMixin() { export type TooltipPosition = 's' | 'n' | 'e' | 'w' | 'sw' | 'se'; function getDescendantWithTooltip( element: HTMLElement ) { - if ( !isElement( element ) ) { + if ( !( element instanceof HTMLElement ) ) { return null; } diff --git a/packages/ckeditor5-utils/LICENSE.md b/packages/ckeditor5-utils/LICENSE.md index 53a17c0e569..65f49f4682e 100644 --- a/packages/ckeditor5-utils/LICENSE.md +++ b/packages/ckeditor5-utils/LICENSE.md @@ -14,6 +14,7 @@ Where not otherwise indicated, all CKEditor content is authored by CKSource engi The following libraries are included in CKEditor under the [MIT license](https://opensource.org/licenses/MIT): * Lodash - Copyright (c) JS Foundation and other contributors https://js.foundation/. Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors http://underscorejs.org/. +* es-toolkit - Copyright (c) 2024 Viva Republica, Inc. Trademarks ---------- diff --git a/packages/ckeditor5-utils/package.json b/packages/ckeditor5-utils/package.json index e7f323dca37..5aa1e77c485 100644 --- a/packages/ckeditor5-utils/package.json +++ b/packages/ckeditor5-utils/package.json @@ -12,6 +12,7 @@ "type": "module", "main": "src/index.ts", "dependencies": { + "es-toolkit": "1.27.0", "lodash-es": "4.17.21", "@ckeditor/ckeditor5-ui": "43.3.1" }, diff --git a/packages/ckeditor5-utils/src/config.ts b/packages/ckeditor5-utils/src/config.ts index 66b703a3303..5b515329b7d 100644 --- a/packages/ckeditor5-utils/src/config.ts +++ b/packages/ckeditor5-utils/src/config.ts @@ -7,7 +7,8 @@ * @module utils/config */ -import { isPlainObject, isElement, cloneDeepWith } from 'lodash-es'; +import { isPlainObject } from 'es-toolkit/compat'; +import { cloneDeepWith } from 'lodash-es'; /** * Handles a configuration dictionary. @@ -281,7 +282,7 @@ function cloneConfig( source: T ): T { * If it's a function it will leave reference to actuall function. */ function leaveItemReferences( value: unknown ): unknown { - return isElement( value ) || typeof value === 'function' ? value : undefined; + return value instanceof HTMLElement || typeof value === 'function' ? value : undefined; } /** diff --git a/packages/ckeditor5-utils/src/dom/createelement.ts b/packages/ckeditor5-utils/src/dom/createelement.ts index 74bac58bf61..302c565a475 100644 --- a/packages/ckeditor5-utils/src/dom/createelement.ts +++ b/packages/ckeditor5-utils/src/dom/createelement.ts @@ -8,7 +8,7 @@ */ import isIterable from '../isiterable.js'; -import { isString } from 'lodash-es'; +import { isString } from 'es-toolkit/compat'; /** * Attributes to be applied to the HTML element. diff --git a/packages/ckeditor5-utils/src/dom/position.ts b/packages/ckeditor5-utils/src/dom/position.ts index e014b5441f0..8172ea9d75f 100644 --- a/packages/ckeditor5-utils/src/dom/position.ts +++ b/packages/ckeditor5-utils/src/dom/position.ts @@ -10,7 +10,7 @@ import global from './global.js'; import Rect, { type RectSource } from './rect.js'; import getPositionedAncestor from './getpositionedancestor.js'; -import { isFunction } from 'lodash-es'; +import { isFunction } from 'es-toolkit/compat'; // @if CK_DEBUG_POSITION // const { // @if CK_DEBUG_POSITION // default: RectDrawer, diff --git a/packages/ckeditor5-utils/src/focustracker.ts b/packages/ckeditor5-utils/src/focustracker.ts index 7b049e29d2a..aaefd71366c 100644 --- a/packages/ckeditor5-utils/src/focustracker.ts +++ b/packages/ckeditor5-utils/src/focustracker.ts @@ -13,7 +13,6 @@ import DomEmitterMixin from './dom/emittermixin.js'; import ObservableMixin from './observablemixin.js'; import CKEditorError from './ckeditorerror.js'; import { type View } from '@ckeditor/ckeditor5-ui'; -import { isElement as _isElement } from 'lodash-es'; /** * Allows observing a group of DOM `Element`s or {@link module:ui/view~View view instances} whether at least one of them (or their child) @@ -326,7 +325,7 @@ export function isViewWithFocusTracker( view: any ): view is ViewWithFocusTracke } function isElement( value: any ): value is Element { - return _isElement( value ); + return value instanceof Element; } function isExternalViewSubtreeFocused( subTreeRoot: Element, view: ViewWithFocusTracker ): boolean { diff --git a/packages/ckeditor5-utils/src/observablemixin.ts b/packages/ckeditor5-utils/src/observablemixin.ts index 7df48c083a0..df597002486 100644 --- a/packages/ckeditor5-utils/src/observablemixin.ts +++ b/packages/ckeditor5-utils/src/observablemixin.ts @@ -13,7 +13,7 @@ import EmitterMixin, { type Emitter } from './emittermixin.js'; import CKEditorError from './ckeditorerror.js'; import type { Constructor, Mixed } from './mix.js'; -import { isObject } from 'lodash-es'; +import { isObject } from 'es-toolkit/compat'; const observablePropertiesSymbol = Symbol( 'observableProperties' ); const boundObservablesSymbol = Symbol( 'boundObservables' ); diff --git a/packages/ckeditor5-utils/src/translation-service.ts b/packages/ckeditor5-utils/src/translation-service.ts index 81c35a3b74f..1016173ad5a 100644 --- a/packages/ckeditor5-utils/src/translation-service.ts +++ b/packages/ckeditor5-utils/src/translation-service.ts @@ -12,7 +12,7 @@ import type { Translations } from './locale.js'; import CKEditorError from './ckeditorerror.js'; import global from './dom/global.js'; -import { merge } from 'lodash-es'; +import { merge } from 'es-toolkit/compat'; import { type ArrayOrItem } from './toarray.js'; declare global { diff --git a/packages/ckeditor5-watchdog/LICENSE.md b/packages/ckeditor5-watchdog/LICENSE.md index 3972c69b0af..04cad612ff3 100644 --- a/packages/ckeditor5-watchdog/LICENSE.md +++ b/packages/ckeditor5-watchdog/LICENSE.md @@ -14,6 +14,7 @@ Where not otherwise indicated, all CKEditor content is authored by CKSource engi The following libraries are included in CKEditor under the [MIT license](https://opensource.org/licenses/MIT): * Lodash - Copyright (c) JS Foundation and other contributors https://js.foundation/. Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors http://underscorejs.org/. +* es-toolkit - Copyright (c) 2024 Viva Republica, Inc. Trademarks ---------- diff --git a/packages/ckeditor5-watchdog/package.json b/packages/ckeditor5-watchdog/package.json index 7d203cb350b..d2e50338221 100644 --- a/packages/ckeditor5-watchdog/package.json +++ b/packages/ckeditor5-watchdog/package.json @@ -12,6 +12,7 @@ "type": "module", "main": "src/index.ts", "dependencies": { + "es-toolkit": "1.27.0", "lodash-es": "4.17.21" }, "devDependencies": { diff --git a/packages/ckeditor5-watchdog/src/editorwatchdog.ts b/packages/ckeditor5-watchdog/src/editorwatchdog.ts index 0919c38968c..bd297307632 100644 --- a/packages/ckeditor5-watchdog/src/editorwatchdog.ts +++ b/packages/ckeditor5-watchdog/src/editorwatchdog.ts @@ -21,7 +21,8 @@ import type { RootAttributes } from '@ckeditor/ckeditor5-editor-multi-root'; import areConnectedThroughProperties from './utils/areconnectedthroughproperties.js'; import Watchdog, { type WatchdogConfig } from './watchdog.js'; -import { throttle, cloneDeepWith, isElement, type DebouncedFunc } from 'lodash-es'; +import { throttle } from 'es-toolkit/compat'; +import { cloneDeepWith } from 'lodash-es'; // eslint-disable-next-line ckeditor5-rules/no-cross-package-imports import type { Node, Text, Element, Writer } from 'ckeditor5/src/engine.js'; @@ -50,7 +51,7 @@ export default class EditorWatchdog extends Wat * Throttled save method. The `save()` method is called the specified `saveInterval` after `throttledSave()` is called, * unless a new action happens in the meantime. */ - private _throttledSave: DebouncedFunc<() => void>; + private _throttledSave: ReturnType void>>; /** * The latest saved editor data represented as a root name -> root data object. @@ -233,7 +234,7 @@ export default class EditorWatchdog extends Wat // // If one element was initially set in `elementOrData`, then use that original element to restart the editor. // This is for compatibility purposes with single-root editor types. - if ( isElement( this._elementOrData ) ) { + if ( this._elementOrData instanceof HTMLElement ) { return this.create( this._elementOrData, updatedConfig, updatedConfig.context ); } else { return this.create( this._editables, updatedConfig, updatedConfig.context ); @@ -452,7 +453,7 @@ export default class EditorWatchdog extends Wat private _cloneEditorConfiguration( config: EditorConfig ): EditorConfig { return cloneDeepWith( config, ( value, key ) => { // Leave DOM references. - if ( isElement( value ) ) { + if ( value instanceof HTMLElement ) { return value; } diff --git a/packages/ckeditor5-widget/LICENSE.md b/packages/ckeditor5-widget/LICENSE.md index ea97bc4f7f9..1dc3f076a74 100644 --- a/packages/ckeditor5-widget/LICENSE.md +++ b/packages/ckeditor5-widget/LICENSE.md @@ -13,7 +13,7 @@ Where not otherwise indicated, all CKEditor content is authored by CKSource engi The following libraries are included in CKEditor under the [MIT license](https://opensource.org/licenses/MIT): -* Lodash - Copyright (c) JS Foundation and other contributors https://js.foundation/. Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors http://underscorejs.org/. +* es-toolkit - Copyright (c) 2024 Viva Republica, Inc. Trademarks ---------- diff --git a/packages/ckeditor5-widget/package.json b/packages/ckeditor5-widget/package.json index 0c07b3303ab..982ee98b89a 100644 --- a/packages/ckeditor5-widget/package.json +++ b/packages/ckeditor5-widget/package.json @@ -18,7 +18,7 @@ "@ckeditor/ckeditor5-ui": "43.3.1", "@ckeditor/ckeditor5-utils": "43.3.1", "@ckeditor/ckeditor5-typing": "43.3.1", - "lodash-es": "4.17.21" + "es-toolkit": "1.27.0" }, "devDependencies": { "@ckeditor/ckeditor5-basic-styles": "43.3.1", diff --git a/packages/ckeditor5-widget/src/widgetresize.ts b/packages/ckeditor5-widget/src/widgetresize.ts index b4a44a8954a..55cb2dbb303 100644 --- a/packages/ckeditor5-widget/src/widgetresize.ts +++ b/packages/ckeditor5-widget/src/widgetresize.ts @@ -39,7 +39,7 @@ import { type EventInfo } from '@ckeditor/ckeditor5-utils'; -import { throttle, type DebouncedFunc } from 'lodash-es'; +import { throttle } from 'es-toolkit/compat'; import '../theme/widgetresize.css'; @@ -73,7 +73,7 @@ export default class WidgetResize extends Plugin { private _observer!: DomEmitter; - private _redrawSelectedResizerThrottled!: DebouncedFunc<() => void>; + private _redrawSelectedResizerThrottled!: ReturnType void>>; /** * @inheritDoc diff --git a/packages/ckeditor5-word-count/LICENSE.md b/packages/ckeditor5-word-count/LICENSE.md index 718a6d6bfb7..5265c9904af 100644 --- a/packages/ckeditor5-word-count/LICENSE.md +++ b/packages/ckeditor5-word-count/LICENSE.md @@ -13,7 +13,7 @@ Where not otherwise indicated, all CKEditor content is authored by CKSource engi The following libraries are included in CKEditor under the [MIT license](https://opensource.org/licenses/MIT): -* Lodash - Copyright (c) JS Foundation and other contributors https://js.foundation/. Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors http://underscorejs.org/. +* es-toolkit - Copyright (c) 2024 Viva Republica, Inc. Trademarks ---------- diff --git a/packages/ckeditor5-word-count/package.json b/packages/ckeditor5-word-count/package.json index ea456a78ca8..db7b5fa6156 100644 --- a/packages/ckeditor5-word-count/package.json +++ b/packages/ckeditor5-word-count/package.json @@ -16,7 +16,7 @@ "@ckeditor/ckeditor5-core": "43.3.1", "@ckeditor/ckeditor5-ui": "43.3.1", "@ckeditor/ckeditor5-utils": "43.3.1", - "lodash-es": "4.17.21", + "es-toolkit": "1.27.0", "ckeditor5": "43.3.1" }, "devDependencies": { diff --git a/packages/ckeditor5-word-count/src/wordcount.ts b/packages/ckeditor5-word-count/src/wordcount.ts index cc1507009dd..b9105180350 100644 --- a/packages/ckeditor5-word-count/src/wordcount.ts +++ b/packages/ckeditor5-word-count/src/wordcount.ts @@ -15,7 +15,7 @@ import { env } from 'ckeditor5/src/utils.js'; import { modelElementToPlainText } from './utils.js'; import type { WordCountConfig } from './wordcountconfig.js'; -import { throttle, isElement } from 'lodash-es'; +import { throttle } from 'es-toolkit/compat'; /** * The word count plugin. @@ -166,7 +166,7 @@ export default class WordCount extends Plugin { } ); } - if ( isElement( this._config.container ) ) { + if ( this._config.container instanceof HTMLElement ) { this._config.container!.appendChild( this.wordCountContainer ); } }