* create function for getting changes from a string
* remove useless variables
* add more test cases
* refactor: return array of operations
* refactor: rename function, conditions, add docs
* refactor: use interfeces, move them to separate file, add comments
* refactor: rename test cases
* refactor: rename test cases
* refactor: change types schema
* refactor: rename function
* test: add the case for multiple changes
* the popover component, vertical toolbox
* toolbox position improved
* popover width improved
* always show the plus button
* search field added
* search input in popover
* trying to create mobile toolbox
* FIx mobile popover fixed positioning
* Add mobile popover overlay
* Hide mobile popover on scroll
* Tmp
* feat(toolbox): popover adapted for mobile devices (#2004)
* FIx mobile popover fixed positioning
* Add mobile popover overlay
* Hide mobile popover on scroll
* Alter toolbox buttons hover
* Fix closing popover on overlay click
* Tests fix
* Fix onchange test
* restore focus after toolbox closing by ESC
* don't move toolbar by block-hover on mobile
Resolves#1972
* popover mobile styles improved
* Cleanup
* Remove scroll event listener
* Lock scroll on mobile
* don't show shortcuts in mobile popover
* Change data attr name
* Remove unused styles
* Remove unused listeners
* disable hover on mobile popover
* Scroll fix
* Lint
* Revert "Scroll fix"
This reverts commit 82deae543e.
* Return back background color for active state of toolbox buttons
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
* Vertical toolbox fixes (#2017)
* Replace visibility property with display for hiding popover
* Disable arrow right and left keys for popover
* Revert "Replace visibility property with display for hiding popover"
This reverts commit af521cf6f2.
* Hide popover via setting max-height to 0 to fix animation in safari
* Remove redundant condition
* Extend element interface to avoid ts errors
* Do not subscribe to block hovered if mobile
* Add unsubscribing from overlay click event
* Rename isMobile to isMobileScreen
* Cleanup
* fix: popover opening direction (#2022)
* Change popover opening direction based on available space below it
* Update check
* Use cacheable decorator
* Update src/components/flipper.ts
Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com>
* Fixes
* Fix test
* Clear search on popover hide
* Fix popover width
* Fix for tests
* Update todos
* Linter fixes
* rm todo about beforeInsert
because I have no idea what does it mean
* i18n for search labels done
* rm methods for hiding/showing of +
* some code style update
* Update CHANGELOG.md
* make the list items a little bit compact
* fix z-index issue caused by block-appearing animation
also, improve popover padding for two reasons:
- make the popover more consistent with the Table tool popover (in future, it can be done with the same api method)
- make popover looks better
* Some progress
Use overriden config
tmp
* Cleanup
* Proceed cleanup
* Update tool-settings.d.ts
* Get rid of isToolboxItemActive
* Get rid of key
* Filter out duplicates in conversion menu
* Rename hash to id
* Change function for generating hash
* Cleanup
* Further cleanup
* [Feature] Multiple toolbox items: using of data overrides instead of config overrides (#2064)
* Use data instead of config
* check if active toolbox entry exists
* comparison improved
* eslint fix
* rename toolbox types, simplify hasTools method
* add empty line
* wrong line
* add multiple toobox note to the doc
* Update toolbox configs merge logic
* Add a test case
* Add toolbox ui tests
* Update tests
* upd doc
* Update header
* Update changelog and package.json
* Update changelog
* Update jsdoc
* Remove unused dependency
* Make BlockTool's toolbox getter always return an array
* Fix for unconfigured toolbox
* Revert "Fix for unconfigured toolbox"
This reverts commit dff1df2304.
* Change return type
* Merge data overrides with actual block data when inserting a block
* Revert "Merge data overrides with actual block data when inserting a block"
This reverts commit eb0a59cc64.
* Merge tool's data with data overrides
* Move merging block data with data overrides to insertNewBlock
* Update changelog
* Rename getDefaultBlockData to composeBlockData
* Create block data on condition
* Update types/api/blocks.d.ts
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
* Update src/components/modules/api/blocks.ts
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com>
* Stop jumping to block start when on toolbox close
* Update changelog and version
* Set caret on esc press
* Update package.json
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
* Add padding only to opened popover
* Update version and changelog
* Update docs/CHANGELOG.md
Co-authored-by: Ilya Moroz <37909603+ilyamore88@users.noreply.github.com>
* Use pointer event approach
Co-authored-by: Ilya Moroz <37909603+ilyamore88@users.noreply.github.com>
* add state manager with demo file
* remove initial state
* move Store type to Store.ts
* add new actions
* change store schema
* add docs
* type -> interface, add deepCopy function
* move types to the /types/ folder
* rename types files, change state type (add blocks: key)
* fix createStore.ts func
* add documentation for reducer
* use BlockMutationType instead of ActionType
* add doc
* deep copy of initial state
* add doc for createStore
* Apply suggestions from code review
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
* rename `reducer` to `blocksReducer`
* add a listener type, pass changed state to the listener
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
* Fix scrolling issue on mobile when locking scroll on body
* Simplify
* Fix typo
* Add popup example
* Update changelog
* update popup example page
* Use hard scroll lock only for ios
* Update version in changelog
* Remove unused css class name
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
* the popover component, vertical toolbox
* toolbox position improved
* popover width improved
* always show the plus button
* search field added
* search input in popover
* trying to create mobile toolbox
* feat(toolbox): popover adapted for mobile devices (#2004)
* FIx mobile popover fixed positioning
* Add mobile popover overlay
* Hide mobile popover on scroll
* Alter toolbox buttons hover
* Fix closing popover on overlay click
* Tests fix
* Fix onchange test
* restore focus after toolbox closing by ESC
* don't move toolbar by block-hover on mobile
Resolves#1972
* popover mobile styles improved
* Cleanup
* Remove scroll event listener
* Lock scroll on mobile
* don't show shortcuts in mobile popover
* Change data attr name
* Remove unused styles
* Remove unused listeners
* disable hover on mobile popover
* Scroll fix
* Lint
* Revert "Scroll fix"
This reverts commit 82deae543e.
* Return back background color for active state of toolbox buttons
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
* Vertical toolbox fixes (#2017)
* Replace visibility property with display for hiding popover
* Disable arrow right and left keys for popover
* Revert "Replace visibility property with display for hiding popover"
This reverts commit af521cf6f2.
* Hide popover via setting max-height to 0 to fix animation in safari
* Remove redundant condition
* Extend element interface to avoid ts errors
* Do not subscribe to block hovered if mobile
* Add unsubscribing from overlay click event
* Rename isMobile to isMobileScreen
* Cleanup
* fix: popover opening direction (#2022)
* Change popover opening direction based on available space below it
* Update check
* Use cacheable decorator
* Update src/components/flipper.ts
Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com>
* Fixes
* Fix test
* Clear search on popover hide
* Fix popover width
* Fix for tests
* Update todos
* Linter fixes
* rm todo about beforeInsert
because I have no idea what does it mean
* i18n for search labels done
* rm methods for hiding/showing of +
* some code style update
* Update CHANGELOG.md
* make the list items a little bit compact
* fix z-index issue caused by block-appearing animation
also, improve popover padding for two reasons:
- make the popover more consistent with the Table tool popover (in future, it can be done with the same api method)
- make popover looks better
Co-authored-by: Tanya Fomina <fomina.tatianaaa@yandex.ru>
Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com>
* fix: call onchange event after block insert
* changelog updated
* patch version updated
* removed the modification observer from saver
* only changelog version added
* delimiter added
* feat: test case added for save inside the onchange
* fix test of async function, fix TS type because Function is banned type
* add tests for isFunction function
* fix eslint
* add changelog for 2.23.1
* fix changelog
* fix changelog
* chore(block-tune-toggler): toggler moved to the left (draft)
* toolbox ui updated
* fixd caret jumpling, improved some styles
* toolbar moving by block-hover
- UI module triggers 'block-hovered' event
- Toolbar uses 'block-hovered' for appearing
- `currentBlock` setter added to the BlockManager
- (reactangle-selection): the throttling added to the mousemove and scroll handlers
- `getBlockIndex` method added to the Api
- (api-blocks): toolbar moving logic removed from `blocks.move()` and `blocks.swap()` methods. Instead, MoveUp and MoveDown tunes uses Toolbar API
* the dark-theme to the example-dev.html
* positioning improved
* fix(rectangle-selection): first click after RS does not clears selection state
* toolbox position fixed
* the toolbox module became a standalone class
- Toolbox became a standalone class from the editor module. It can be accessed only via the owner (the Toolbar module)
- (api.blocks) the insert() method now has the `replace` param. Also, it returns inserted Block API now.
* new(api.listeners): `on()` now returns the listener id. The new `offById()` method added
* fix bug with Tab pressing on hovered but not focused block
* mobile version improved
* upd example dev
* small updaets
* add nested-list
* linting
* (api.toolbar): `toggleBlockSettings` now fires toggling event with the same state
* EventDispatcher used instead of callbacks for the Toolbox
* UIApi added
* fix ci
* git submodules removed from the ci flow
* add paragraph submodule to the ci flow
* Update CHANGELOG.md
* Update package.json
* use ubuntu-latest for chrome ci
The new `dispatchChange()` method allows to manually trigger the 'onChange' callback. Useful when Tool made a state mutation that is invisible for editor core.