Commit graph

71 commits

Author SHA1 Message Date
JackUait
c48898bb5b refactor: update inline tool interfaces and remove deprecated methods
- Refactored inline tool interfaces to use MenuConfig directly.
- Removed deprecated methods and properties from InlineTool and related types.
- Updated tests to reflect changes in inline tool handling and ensure proper functionality.
- Enhanced test coverage for inline tools, including link and italic tools.
- Cleaned up unused code and improved overall test structure.
2025-11-22 02:46:08 +03:00
JackUait
df5f7c8c6e fix: failing tests 2025-11-20 21:43:32 +03:00
JackUait
aadbabfa6e refactor: clean up selection tests and remove unused rectangle selection logic
refactor: simplify read-only tests by removing drag-and-drop functionality

test: update sanitisation tests to check for safe attributes in HTML

test: enhance configuration tests to ensure proper toolbox popover visibility

test: adjust keyboard shortcuts tests for inline tool handling and modifier key mapping

test: modify toolbox tests to use more specific selectors for paragraph blocks

test: improve UI module tests to utilize block selection methods directly

chore: remove deprecated drag-and-drop tests and related code

fix: update paste module error messages for clarity on configuration issues
2025-11-18 03:56:47 +03:00
JackUait
181e73f3c9 test: add missing test coverage 2025-11-16 07:32:01 +03:00
JackUait
5d5f19a61c fix: replace deprecated APIs with the modern ones 2025-11-16 00:00:30 +03:00
JackUait
d5ba62f70c test: cover untested parts with tests 2025-11-15 15:30:08 +03:00
JackUait
6a64b139f9 fix: get rid of all nested if statements 2025-11-15 04:49:30 +03:00
JackUait
0379064dbb test: move part of the tests from Cypress to Playwright 2025-11-14 18:51:31 +03:00
JackUait
3b97e0fbd8 fix: lint issues fixed and tests added for modules 2025-11-13 23:06:17 +03:00
JackUait
41484abd5f fix: add tests and fix lint issues for some files 2025-11-12 06:31:39 +03:00
JackUait
334b85981d fix: add tests and fix lint issues for blocks.ts/block.ts 2025-11-11 12:53:13 +03:00
JackUait
cae0b37779 fix: add tests and fix lint issues in caret.ts 2025-11-11 11:15:58 +03:00
JackUait
8372ee46b8 fix: add tests and fix lint issues in popover-desktop.ts 2025-11-11 05:42:56 +03:00
JackUait
1548a56d2d fix: add unit tests and fix lint issues for sanitizer.ts 2025-11-11 04:36:18 +03:00
JackUait
f02e838dc7 fix: write tests for tooltip.ts and fix lint issues 2025-11-11 04:17:03 +03:00
JackUait
3ec36a5d7c test: add tests for i18n 2025-11-10 22:13:35 +03:00
JackUait
bd40b0ff69 test: add tests for sanitisation 2025-11-10 20:50:34 +03:00
JackUait
f26202e8d7 fix: get rid of deprecated API in inline-tool-bold.ts 2025-11-10 16:54:40 +03:00
JackUait
fdcfef6f5a test: add tests for inline-link-tool 2025-11-10 05:04:38 +03:00
Omotayo Obafemi
d15a8c2b2f
Added fix for memory leak issue (#2893)
* Added fix for memory leak issue

* Documented the fix in docs/CHANGELOG.md

* v2.31.0

* Documented the fix in docs/CHANGELOG.md

* Documented the fix in docs/CHANGELOG.md

* Documented the fix in docs/CHANGELOG.md

* Documented the fix in docs/CHANGELOG.md

---------

Co-authored-by: Omotayo Obafemi <omotayo@testlio.com>
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
2025-01-08 20:52:40 +03:00
Peter
6893462d4b
fix(inline-tools): inline tools shortcuts now works in read-only mode (#2891)
* fix(inline-tools): inline tools shortcuts now works in read-only mode

* use ubuntu-20.04 instead of latest
2024-12-21 11:28:55 +03:00
e11sy
da4257a67f
Feat (Conversion-config): pass target tool config to the conversionConfig.import method (#2848)
* pass config to the conversionConfig.import method

- Now `convertStringToBlockData` method passes target tool config the import method
- Fixed types in convesion config file (somehow imprort could return function that returns string, but import should return method that would return ToolData) this caused just type error that never been reached because types were actually ignored
- Added test that checks, that import method actualy gets passed config

* update changelog

* eslint fix

* updated test description

* jsdoc improved

* typos in changelog
2024-10-17 19:38:02 +03:00
Angus MacIsaac
2f9696a000
Swallow getLayoutMap() error (#2790)
* Fix getLayoutMap() bug

* Update CHANGELOG.md

---------

Co-authored-by: Angus <angus@coefficient.io>
Co-authored-by: Peter <specc.dev@gmail.com>
2024-09-14 01:00:52 +03:00
VolgaIgor
c82933616c
Fixed display of conversion menu for blocks without export rule (#2799)
* Fixed display of convert menu for blocks without export rule

According to the workflow script from the documentation:
https://editorjs.io/tools-api/#conversionconfig

* Update CHANGELOG.md

* some improvements and tests

---------

Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
2024-09-14 00:39:19 +03:00
Peter
3d01be4a69
fix(types): tools export types added (#2802)
* fix types export

* lint

* changelog

* tests fixed

* fix tests imports

* lint tests

* upd submodule

* Update yarn.lock

* rename wrapper to factory

* Update package.json

* rename to adapters

* Update tools.d.ts

* BlockTool -> BlockToolAdapter etc

* Update nested-list

* Update collection.ts
2024-08-09 18:04:57 +03:00
Tatiana Fomina
057bf17a6f
Fix i18n in nested popover (#2779) 2024-07-11 22:25:36 +03:00
Tatiana Fomina
b6674367a5
Fix form submit on bold inline tool click (#2775) 2024-07-10 23:13:37 +03:00
Tatiana Fomina
ba8fa7344a
fix(Inline-toolbar): fake selection stays on screen after toggling convert to (#2768)
* Fix not removing fake selection on convert to toggle

* Update version and changelog

* Update docs/CHANGELOG.md

Co-authored-by: Peter <specc.dev@gmail.com>

---------

Co-authored-by: Peter <specc.dev@gmail.com>
2024-07-09 21:46:42 +03:00
Peter Savchenko
9c1e2e59ba
feat(ui): placeholders updated (#2758)
* data-empty mark

* Update CHANGELOG.md

* lint

* tests added

* Update DataEmpty.cy.ts

* lint

* fix tests

* Update Placeholders.cy.ts

* upd paragraph

* rm redundant test

* lint fix

* disable test for firefox
2024-07-04 14:55:01 +03:00
Tatiana Fomina
fb3089cd0d
Fix fast toggling of link tool in safari (#2757) 2024-07-03 20:39:13 +03:00
Tatiana Fomina
a6473877f6
Disable flipper in inline toolbar actions (#2756) 2024-07-03 19:22:47 +03:00
Tatiana Fomina
439658a912
feat(inline-tools): Inline tools rendered as popover (#2718) 2024-06-30 22:27:37 +03:00
Peter Savchenko
afa99a4a8e
fix(caret): trailing spaces handling (#2741)
* Imporove caret.isAtStart

* use selection to simplify caret at start/end check

* caret util and tests

* lint

* eslint fix

* fix tests

* patch version, changelog

* fix navigation out of delimiter

* arrow left tests

* left/right arrow tests

* chore: Fix typo in comment for block navigation

* lint fix

* resolve some ts errors in strict mode

* Revert "resolve some ts errors in strict mode"

This reverts commit 3252ac679f.

* ts errors fix

* rename utils
2024-06-28 21:20:53 +03:00
Tatiana Fomina
d18eeb5dc8
feat(popover): Add hint support (#2711)
* Add custom item

* Remove customcontent parameter from popover

* Tests

* Cleanup

* Cleanup

* Lint

* Cleanup

* Rename custom to html, add enum with item types

* Fix tests

* Support hint

* Rename hint content to hint

* Align hint left

* Move types and exports

* Update changelog

* Cleanup

* Add todos

* Change the way hint is disabled for mobile

* Get rid of buildItems override

* Update comment
2024-05-16 15:26:25 +03:00
Tatiana Fomina
f78972ee09
feat(popover): custom content becomes a popover item (#2707)
* Add custom item

* Remove customcontent parameter from popover

* Tests

* Cleanup

* Cleanup

* Lint

* Cleanup

* Rename custom to html, add enum with item types

* Fix tests

* Add order test

* Update jsdoc

* Update changelog

* Fix issue with html item not hiding on search

* Fix flipper issue

* Update changelog
2024-05-04 15:35:36 +00:00
Peter Savchenko
23858e0025
fix(conversion): restore caret after conversion though the Inline Toolbar and API (#2699)
* fix caret loosing after caret

* Refactor convert method to return Promise in Blocks API

* changelog upd

* Fix missing semicolon in blocks.cy.ts and BlockTunes.cy.ts

* add test for inline toolbar conversion

* Fix missing semicolon in InlineToolbar.cy.ts

* add test for toolbox shortcut

* api caret.setToBlock now can accept block api or index or id

* eslint fix

* Refactor test descriptions in caret.cy.ts

* rm tsconfig change

* lint

* lint

* Update CHANGELOG.md
2024-04-29 22:24:31 +03:00
Peter Savchenko
1028577521
fix(scroll): acidental scroll to top on iOS devices (#2695)
* fix scroll on ios typing

* Update tsconfig.json

* Update CHANGELOG.md

* Update CHANGELOG.md

* Update package.json

* Fix popover hide method to use isHidden flag
2024-04-27 21:04:26 +03:00
Tatiana Fomina
7821e35302
feat(block tunes): Conversion Menu in Block Tunes (#2692)
* Support delimiter

* Rename types, move types to popover-item folder

* Fix ts errors

* Add tests

* Review fixes

* Review fixes 2

* Fix delimiter while search

* Fix flipper issue

* Fix block tunes types

* Fix types

* tmp

* Fixes

* Make search input emit event

* Fix types

* Rename delimiter to separator

* Update chengelog

* Add convert to to block tunes

* i18n

* Lint

* Fix tests

* Fix tests 2

* Tests

* Add caching

* Rename

* Fix for miltiple toolbox entries

* Update changelog

* Update changelog

* Fix popover test

* Fix flipper tests

* Fix popover tests

* Remove type: 'default'

* Create isSameBlockData util

* Add testcase
2024-04-27 16:57:52 +03:00
Tatiana Fomina
e1c70b4fb8
feat(popover): separator (#2690)
* Support delimiter

* Rename types, move types to popover-item folder

* Fix ts errors

* Add tests

* Review fixes

* Review fixes 2

* Fix delimiter while search

* Fix flipper issue

* Fix block tunes types

* Fix types

* Fixes

* Make search input emit event

* Fix types

* Rename delimiter to separator

* Update chengelog
2024-04-22 22:38:20 +03:00
Tatiana Fomina
5125f015dc
feat: nested popover (#2649)
* Move popover types to separate file

* tmp

* open top

* Fix bug with keyboard navigation

* Fix bug with scroll

* Fix mobile

* Add popover header class

* Display nested items on mobile

* Refactor history

* Fix positioning on desktop

* Fix tests

* Fix child popover indent left

* Fix ts errors in popover files

* Move files

* Rename cn to bem

* Clarify comments and rename method

* Refactor popover css classes

* Rename cls to css

* Split popover desktop and mobile classes

* Add ability to open popover to the left if not enough space to open to the right

* Add nested popover test

* Add popover test for mobile screens

* Fix tests

* Add union type for both popovers

* Add global window resize event

* Multiple fixes

* Move nodes initialization to constructor

* Rename handleShowingNestedItems to showNestedItems

* Replace WindowResize with EditorMobileLayoutToggled

* New doze of fixes

* Review fixes

* Fixes

* Fixes

* Make each nested popover decide itself if it should open top

* Update changelog

* Update changelog

* Update changelog
2024-04-13 17:34:26 +00:00
Peter Savchenko
1320b047a2
feat(merge): blocks of different types can be merged (#2671)
* feature: possibilities to merge blocks of different types

* fix: remove scope change

* feat: use convert config instead of defined property

* chore:: use built-in function for type check

* fix: remove console.log

* chore: remove styling added by mistakes

* test: add testing for different blocks types merging

* fix: remove unused import

* fix: remove type argument

* fix: use existing functions for data export

* chore: update changelog

* fix: re put await

* fix: remove unnecessary check

* fix: typo in test name

* fix: re-add condition for merge

* test: add caret position test

* fix caret issues, add sanitize

* make if-else statement more clear

* upgrade cypress

* Update cypress.yml

* upd cypress to 13

* make sanitize test simpler

* patch rc version

---------

Co-authored-by: GuillaumeOnepilot <guillaume@onepilot.co>
Co-authored-by: Guillaume Leon <97881811+GuillaumeOnepilot@users.noreply.github.com>
2024-04-01 12:29:47 +03:00
Peter Savchenko
ee6433201d
fix(block-tunes): enter keydown problems (#2650)
* debug enter press

* fix sync set caret

* fix enter keydown problems + tests addedd

* Update search-input.ts

* add changelog

* add useful log to cypress custom comand

* Update commands.ts
2024-03-13 17:30:16 +03:00
VikhorKonstantin
8138ce95b2
fix issue #2523 (#2639)
* fix isMutationBelongsToElement function: make it return true if the whole text node is deleted inside of some descendant of the passed element

* isMutationBelongsToElement function shouldn't return true if some of the ancestors of the passed element were added or deleted, only if the element itself

* add test case verifying that 'onChange' is fired when the whole text inside some nested  descendant of the block is removed

* replace introduced dependency with ToolMock

* add comment explaining isMutationBelongsToElement behaviour in case of adding/removing the passed element itself

* fix formatting

* added some more explanation

* added record to the changelog

---------

Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
2024-02-28 20:08:08 +03:00
Peter Savchenko
b619946e8f
fix(slash): do not handle / + shift/alt, support for ascii keyboard (#2599)
* fix(slash): do not handle / + shift/alt, support for ascii keyboard

* support keyboards without physical '/'
2024-01-28 13:45:01 +03:00
Peter Savchenko
cd29c52e51
feat(ui): native-like tab behaviour, slash for toolbox (#2569)
* slash to open toolbox, tab for navigation

* tab, focus improvements

- remove "focused" block state
- tab navigation respects inputs
- allow to focus contentless blocks

* fix tests

* tests for Slash

* tab tests

* test for tabbing out of editor

* tests fixed

* review fixes
2023-12-22 23:15:35 +03:00
Peter Savchenko
ec569f9981
fix(toolbar): layout shrink after blocks removing (#2484) 2023-09-20 11:07:25 +03:00
Peter Savchenko
b39996616c
chore(perf): initialisation and rendering performance optimisations (#2430)
* renderer batching

* initialization and rendering performance optimized

* insertMany api method added

* Update index.html

* rm old method

* upd changelog

* upd paragraph

* paste tests fixed

* api blocks tests fixed

* backspace event tests fixed

* async issues in tests fixed

* eslint

* stub block added, tests added

* eslint

* eslint

* add test for insertMany()

* Update package.json
2023-08-08 22:17:09 +03:00
Peter Savchenko
022320940e
feat(shortcuts): convert block by tools shortcut (#2419)
* feat(conversion): allow to convert block using shortcut

* display shortcuts in conversion toolbar

* tests for the blocks.convert

* tests for the toolbox shortcuts

* Update CHANGELOG.md

* Update toolbox.cy.ts

* rm unused imports

* firefox test fixed

* test errors via to.throw
2023-07-20 23:27:18 +03:00
Peter Savchenko
2ab9eb13bc
feat(block-events): delete keydown handling added (#2402)
* feat(block-events): delete keydown logic added

* chore(ui-events): delete keydown will remove selected blocks

* backspace tests added

* delete keydown tests

* tests for ui added

* fix ci

* separate block events tests for several files

* Delete BlockEvents.cy.ts

* rm unused change

* add code-review fixes + corner cases handling

* Update blockEvents.ts

* allow merging only same type blocks
2023-07-06 23:45:12 +03:00
Peter Savchenko
c8993332e3
fix(onchange): callback will be fired on removing of a whole text (#2392)
* fix(onchange): callback will be fired when the whole text is removed in a block

* whops
2023-06-21 20:32:25 +03:00