* 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
* 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
* 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>
* 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>
* refactor: added id to the insert method to allow user pass and existing id to the method
When working with multiple editor at the same and need to link all blocks to each editor and keeping the same ids in all.
* moved the position of the block_id params to the end to aaviod breaking cha
* doc: updated the documentation on insert method params
* refactor : formatted the code to add/remove space
* refactor: moved the position of the `id` and its description to the respective position
* refactor: rollback to previous commit
* added back the removed default value
* fix error, remove garbage
* test added, changelog added
Co-authored-by: Umang G. Patel <23169768+robonetphy@users.noreply.github.com>
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>