* refactor to extract applyOperation util
* change handlers to receive transform instead of state
* change onChange to receive a transform, update rich-text example
* fix stack iterationg, convert check-list example
* convert code-highlighting, embeds, emojis examples
* change operations to use full paths, not indexes
* switch split and join to be recursive
* fix linter
* fix onChange calls
* make all operations invertable, add src/operations/* logic
* rename "join" to "merge"
* remove .length property of nodes
* fix node.getFragmentAtRange logic
* convert remaining examples, fix existing changes
* fix .apply() calls and tests
* change setSave and setIsNative transforms
* fix insert_text operations to include marks always
* cleanup and fixes
* fix node inheritance
* fix core onCut handler
* skip constructor in node inheritance
* cleanup
* change updateDescendant to updateNode
* add and update docs
* eliminate need for .apply(), change history to mutable
* add missing file
* add deprecation support to Transform objects
* rename "transform" to "change"
* update benchmark
* add deprecation util to logger
* update transform isNative attr
* fix remaining warn use
* simplify history checkpointing logic
* fix tests
* revert history to being immutable
* fix history
* fix normalize
* fix syntax error from merge
* WIP getting raw marks arrays from the current range
* Always handle marksRaw as Array, fixes tests/lint
* Clean up
* Fixes collapsed selection raw marks, simpler _every_ condition, harmonize toolbar buttons in rich-text example
* raw -> perCharacter
* Add tests for toggleMark collapsed selection
* Add .DS_Store to .gitignore
* Added test for toggleMark add in partially marked selection, with and without other marks
* Added docs for state.marksPerCharacter
* replace marksPerCharacter with activeMarks
* Update the other examples
* Clarify getActiveMarksAtRange
* AddMark/RemoveMark to use getActiveMarksByRange
* User activeMarks for toggle§MarkAtRange transform
* Fix how plain text serializer serializes nested blocks
* Updated test to check for more nested blocks
* Renamed getSerializedTextForNode to serializeNode, and added comment block
* Added a test for plain serializer: nested blocks with nested inlines
* Added additional test for simple inlines within block
* fixed expected test output
* fixed case where block has inlines but not other nested blocks
Because `src/serializers/html.js` depends on `ReactDOMServer.renderToStaticMarkup`, which is no longer bundled with ReactDOM, ReactDOMServer is needed to avoid errors when the HTML serializer is used.
* When the parameter passed to `isInEditor` is a text node use its parent if the parent exists
* Add comment on `parentElement` text node browser compatibility
Old implementation was far too slow if a selection included many nodes.
The performance hit occurred when converting each and every text node
into a block. This is now avoided by using the same logic as
getTextsAtRangeAsArray for getBlocksAtRangeAsArray, but using blocks
directly.
* putting in the correct type pseudo-symbols
* getting the pseudo symbols everywhere that the instance of's are
* Making Ian's suggestions on checking types with static methods
* cleaning up leftover hard checks
* adding in slate proptypes, cleaning up unneeded whitespace
* updating documentation, moving keys to prototypes finally, al tests passing
* organizing types, prop-types, more succint type names
* eslint fix
* fixing model-types bug, changing proptype names