* Add transform .unwrapInlineByKey with test and documentation
* Add transform .unwrapBlockByKey with test and documentation
* add failing test for unwrap limited to a range
* Improve creation of selection in unwrap[Inline|Block]ByKey
* Adapt unwrapInlineAtRange to take range in consideration
* Add test to unwrapInline only one in the document
* Add base tests for isVoid with around text node
* Ensure that void nodes are surrounded by text nodes in Node.normalize
* Only wrap inline void nodes with text
* Fix indentation
* Add emojis example
* Adapt unit test "transforms/fixtures/at-current-range/set-inline/with-is-void"
* Adapt unit test "transforms/fixtures/at-current-range/insert-inline/with-inline"
* Adapt unit test "transforms/fixtures/at-current-range/insert-inline/block-start"
* add passing parent to leaf nodes, for rendering breaks
* add zero-width spaces in empty text nodes, to allow selections
* add zero-width space handling to copy/cut
* fix delete handling around inline void nodes
* fix tests for inline void nodes
* fix style
* fix void cursor handling across browsers
* fix void rendering tests
* add failing test for 340
* fix wrapBlockAtRange to handle multiple deep children (#340)
* failing test for wrapblock changes
* wrapBlockAtRange using top-most parent logic
* Revert "wrapBlockAtRange using top-most parent logic"
This reverts commit 4f056285f78e0ed2fc6ed34586f204c601fe8d29.
* Add fixture for insertFragmentAtRange with multiple blocks in nested blocks
* Small fix for the fixture's `expected` output
* Rebase on master (0.14.x)
Moved tests to new appropriate location
* Output now expects that fragment are merged to adjacent blocks
* fix insert fragment for multiple children
* Add failing test showing splitBlock with isVoid bug
Not sure what I actually expected calling `splitBlock()` on void block, but I
would expect `splitBlock()` to respect a given block type's isVoid property.
This failing test demonstrates that `splitBlock()` always creates a the new
block with `isVoid: false`.
* Fix isVoid not being copied when using splitBlock()
The bug was actually inside `splitBlockAtRange`, as that's what actual drives
`splitBlock()` (I assume the bug was therefore present in both methods). The
fix is to simply copy across the `isVoid` value from the block being copied.