* 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>
* add data-mutation-free=deep
* just use closest and reduce waiting time in test
* Update src/components/block/index.ts
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
* Update test/cypress/tests/onchange.cy.ts
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
* add data-mutation-free=deep
* just use closest and reduce waiting time in test
* Update src/components/block/index.ts
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
* Update test/cypress/tests/onchange.cy.ts
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
* add line in Changelog
* Update docs/CHANGELOG.md
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
* add support for characterData mutations
* Update onchange.cy.ts
---------
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
* add custom Chai assertion "be.calledWithBatchedEvents" for testing onchange
* chore(api): blocks.update(id, data) method improved
- `blocks.update(id, data)` now can accept partial data object — it will update only passed properties, others will remain the same.
- `blocks.update(id, data)` now will trigger onChange with only `block-change` event.
- `blocks.update(id, data)` will return a promise with BlockAPI object of changed block.
* fix tests
* Update blocks.cy.ts
* 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
* deps: upgrade typescript to v5, upgrade ts-loader to support newest TS
* Fix (??) type of `pasteConfig`
TypeScript 4.9 found something is wrong with this code, but it's unclear (to me) which line is wrong. This PR is a guess, do with it what you will.
In paste.ts there's a check to see if `pasteConfig === false`:
https://github.com/codex-team/editor.js/blob/next/src/components/modules/paste.ts#L287
However, this getter never returns false because if the LHS of the `||` is `false`, `{ }` is returned instead.
It seems like this meant to be `??` instead so that if `this.constructable[InternalBlockToolSettings.PasteConfig]` was `undefined` (missing), then `{}` would be returned instead. But maybe you meant `false` here - I don't know.
* feat: create alias for PasteConfig, fix lint
* fix: problems with types
* test: add case for disabling preventing default behavior of paste event handler, add cases for pasteConfig getter in BlockTool wrapper
* chore: upgrade CHANGELOG.md
* fix: interface naming convention
* chore: apply CHANGELOG.md suggestion
* refactor: create custom Editor instance inside test case
* fix: remove editor instance destroy after PR feedback
---------
Co-authored-by: Ryan Cavanaugh <RyanCavanaugh@users.noreply.github.com>
* fix(onchange): fire mutation event if there are other changes along with mutation-free nodes
* update header dependency
* use node 16 for windows
* fix onChange firing by manual dispatchChange() call
* eslint
* use node 16 for ci tests
* Update CHANGELOG.md
* Make label an alias for title in tunes item
* Cleanup
* Update version and changelog
* Update changelog
* Move resolveAlias to utils
* Add fallback for popover item title
* Lint
* Lint
* Add fallback icon and title to popover
* Update version
* Lint
* Fix changelog
* Fallback to empty string
This reverts commit ae9d643557.
* Fix changelog again
* Cleanup
* Add deprecated
* toLower case added
* regression test case added
* change log update
* version updated
* Apply suggestions from code review
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
* Update docs/CHANGELOG.md
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
* Add toggle group support
* Update version and changelog
* Fix
* Simplify
* Update test/cypress/tests/utils/popover.spec.ts
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
* popover icons size increased on mobile devices
* update icon size on mobile
* some mobile styles improvements
* inline tools click on mobile devices improved
* FIX: Paste text from MS Word instead of image
* changelog added
* Update CHANGELOG.md
* rm submodule change
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>