* 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