1
0
mirror of https://github.com/ianstormtaylor/slate.git synced 2025-02-13 11:44:55 +01:00

296 Commits

Author SHA1 Message Date
Renaud Chaput
3339d088e1 Add Prettier with ESLint integration (#1589)
* Add Prettier, with basic config and ESLint integration

* Apply Prettier to all files using `yarn lint --fix`

* Tell Prettier to ignore an empty text in a test output.

* Run Prettier on JS files not handled by ESLint, and lint them too
2018-02-06 15:12:00 -08:00
Jinxuan Zhu
f28c59a26e Use getAncestors in getDescendant (#1604) 2018-02-06 14:12:48 -08:00
Tobias Andersen
329787a07a fix(updateSelection): make sure there is a node to extend from (#1603)
* fix(updateSelection): make sure there is a node to extend from

* fix(updateSelection): use setBaseAndExtent over collapse/extend
2018-02-06 14:07:41 -08:00
DamareYoh
eda5c02e79 Bugfix/undo merge node (#1594)
* fixed build for windows

* fixed issue where undo of merge node does not restore the node back to its original properties

* fixed lint issue

* updated operation docs for additional property on split_node and merge_node

* finished incomplete sentence in the docs.

* updated test to also verify data is restored

* renamed the 'original' property to 'properties' to be more consistent with similar operation interfaces, updated docs

* got rid of extra operations property.

* deserializing properties in merge_node and split_node, passing properties object in splitNodeByKey

* missed committing operations modles.

* updated operations.toJSON for new properties on merge_node and split_node

* fix linting error

* remove outdated comment.

* expanded check for split node inverse to include inline nodes

* partially revert update to test with deletion across inlines
2018-02-05 10:16:55 -08:00
Zach Schneider
228b97ff29 Switch to using Rollup for bundling (#1568)
* Implement first working rollup config for main slate pkg

* Convert slate-base64-serializer to rollup

* Convert slate-dev-logger to rollup

* Convert slate-html-serializer to rollup

* Convert slate-hyperscript to rollup

* Convert slate-plain-serializer to rollup

* Convert slate-prop-types to rollup

* Convert (mostly) slate-react to rollup

* Convert slate-simulator to rollup

* Misc cleanup and configuration tweaks/fixes

* Convert slate-schema-violations to rollup

* Successful rollup build for top-level examples

* Add plugin to replace process.env.NODE_ENV

* Only rebuild modules and dev examples in watch mode

* Enable sourcemaps for development builds

* Force debug to use browser version, remove builtins plugin

* Remove is-image from example
It relies on node `path` and wouldn't work well in-browser anyway

* Use browser version of react-dom/server

* Move stray require to import

* Configure examples to watch child package output

* Fix tests

* Remove unneeded preferBuiltins from resolve config

* Use more precise files array to ensure sourcemaps aren't included

* Use lodash instead of lodash.throttle
It's pulled in anyway since slate-react needs slate, so using the
minipackage actually causes code duplication

* Improve naming/fix UMD builds, update UMD doc

* Add rollup configs to linting, add a missing dep to package.json

* Use longform rollup CLI flags

* Add rollup-plugin-auto-external to reduce external module configuration

* Combine rollup config into a unioned helper

* Centralize to a single rollup configuration

* Update dist structure and package field naming for PR feedback

* Add comments and address PR feedback on rollup config

* i.e. -> e.g.

* Add some spacing to the configuration to improve readability

* Add a bit more spacing

* Remove umd from example Slate unpkg link
2018-02-02 15:46:36 -08:00
Jamie Talbot
c044d048ad Warn during normalization when range offsets are not numbers. (#1578) 2018-02-02 10:19:01 -08:00
Jinxuan Zhu
566c71c1d1 Fix range.moveToRangeOf when range is a backward range; (#1575)
* fix range.moveToRangeOf when isBackward

* add test for unwrapBlock with backward selection

* Always return isBackward:false in moveToRangeOf

* Update range.js
2018-01-31 13:01:58 -08:00
Conor Cussell
1ea96baf9f Fix selecting with shift+(left|right) key (#1570)
* Account for zero-width whitespace chars when selecting with arrow keys

* Change the correct line 😳

* Remove unused const

* Fix lint error

* Proper fix for shift select towards void nodes
2018-01-31 13:01:43 -08:00
Jinxuan Zhu
b1e5330ad5 Continue normalize next child when and only when the node exists still (#1538)
* Continue normalize next child when and only when the node exists still

* use the refindNode and refindPath provided

* Use Array.includes instead of Array.indexOf
2018-01-31 12:59:58 -08:00
Kelly Joseph Price
28450334a7 Edge browser selection edge case (#1574)
* Handle Edge browser selection case

* Re-use const
2018-01-30 18:09:39 -08:00
Jinxuan Zhu
2a1da72c70 Faster (but also safe) method about re-find node by path (#1548) 2018-01-30 18:05:43 -08:00
Ian Storm Taylor
44eccca60a Publish
- slate-base64-serializer@0.2.21
 - slate-dev-logger@0.1.37
 - slate-html-serializer@0.5.2
 - slate-hyperscript@0.5.2
 - slate-plain-serializer@0.5.2
 - slate-prop-types@0.4.19
 - slate-react@0.11.2
 - slate-schema-violations@0.1.0
 - slate-simulator@0.4.19
 - slate@0.32.2
2018-01-26 12:34:47 -08:00
Ian Storm Taylor
598513a5fc fix linter 2018-01-26 12:33:54 -08:00
Ian Storm Taylor
4db6b1d7fe update docs 2018-01-26 12:31:51 -08:00
Ian Storm Taylor
b8ca5d04df update docs 2018-01-26 12:31:15 -08:00
Ian Storm Taylor
10eea06a8a refactor schema violations to be a separate package 2018-01-26 12:28:40 -08:00
CameronAckermanSEL
ef5106e30f Improve normalize suppression to make less verbose and safer (#1549)
* change normalization can be set with setOperationFlag, and changes can be executed in sequence with automatic suppression with guaranteed document normalization at the end.

* responded to developer feedback by renaming execute to withMutations (to mirror immutable JS), implemented tests, updated documentation

* fixed typos discovered in review.

* fixed missing normalize flag usages and added withMutations to the schemas guide

* responded to developer feedback

* fixed lint errors and cleaned up code

* readd missing tests

* getFlag now allows options to override the change flags

* removed normalize restoration asserts from unit tests

* unit test cleanup
2018-01-26 11:32:37 -08:00
Zach Schneider
00165a3155 Convert to babel-preset-env and upgrade build and linting packages. (#1557) 2018-01-26 10:55:29 -08:00
Zach Schneider
1e128fffdd Switch to package.json "files" configuration rather than .npmignore (#1559) 2018-01-26 10:14:05 -08:00
Blake Embrey
4e8dd7405a Fix selection replacement and marks (#1473)
* Fix selection replacement and marks

* Create `getInsertMarks` method for text insertion
2018-01-25 13:08:17 -08:00
DamareYoh
7d5a33025b added export constant enum for schema violations (#1532)
* added export constant enum for schema violations

* updated examples to use the schema violations enum

* use SchemaViolations enum in tests and docs

* fixed path for schema violations import
2018-01-17 10:24:28 -05:00
Jenna Nichols
bc7acefff2 Append copied fragment to editor DOM node instead of page body (#1533)
* append fragment to editor DOM node instead of body

* remove semicolon
2018-01-16 22:46:22 -05:00
Conor Cussell
62ffb4681b Remove parse5 (#1531)
Fix stripUnwantedAttrs

Remove .only

Remove parse5 from deps

Better imports

Cleanup

More succint removal of attributes
2018-01-13 15:41:48 -08:00
Sunny Hirai
6673e1ec6d
Merge pull request #1515 from thesunny/ios-fix
Fixed scroll-to-selection jumping to top on iOS 11
2018-01-11 15:41:53 -08:00
Ian Storm Taylor
6cfc864472 Publish
- slate-base64-serializer@0.2.20
 - slate-html-serializer@0.5.1
 - slate-hyperscript@0.5.1
 - slate-plain-serializer@0.5.1
 - slate-prop-types@0.4.18
 - slate-react@0.11.1
 - slate-simulator@0.4.18
 - slate@0.32.1
2018-01-11 12:02:39 -08:00
David Hrdlicka
6f1fd08fcd Expose core plugins (#1524) 2018-01-11 12:01:03 -08:00
Sunny Hirai
3d86533b5b Updated scroll-to-selection so it skips the scroll only on version 11 of iOS. 2018-01-11 10:06:41 -08:00
Sunny Hirai
69e53cb556 Merged upstream/master 2018-01-11 09:55:07 -08:00
Ryan Grove
b991d71abf Fix double-handling of iOS return and backspace keypresses (#1520)
Fixes #1519
2018-01-10 22:26:42 -08:00
Sunny Hirai
9d2c6d4e05 Merge remote-tracking branch 'upstream/master' into ios-fix 2018-01-10 17:13:50 -08:00
Sunny Hirai
7dee55d066 Updated scroll-to-selection to abort only if on iOS 11 2018-01-10 16:57:39 -08:00
Justin Weiss
4781a0ea66 Change operation tests to take a list of operations 2018-01-10 15:36:09 -08:00
Sunny Hirai
d96a528ac0 Fixed scroll-to-selection jumping to top on iOS 2018-01-09 13:07:40 -08:00
Justin Weiss
a6b069603f Move selection to the offset of remove_text if it's in its bounds
If selection is inside a block of text that's removed, the part of the
selection that's inside the bounds should clamp to the offset of the
removed text. So if your cursor is at offset 5, and you're deleting
from 2-10, your cursor should end up at offset 2.
2018-01-09 11:13:44 -08:00
Ryan Grove
df5b4a5d61 Fix iOS autocorrect issues with Backspace and Return (#1475)
* Fix iOS autocorrect issues with Backspace and Return

Handling Backspace and Return keystrokes in `onNativeBeforeInput`
ensures that iOS recognizes word and paragraph breaks and generates
appropriate autocorrect suggestions.

Fixes #1471

* Cleaner `onKeyDown` iOS check courtesy of @davidlibland
2018-01-08 13:34:59 -08:00
Ryan Yurkanin
7b8760fe60 Adding normalize false to the moveNodeByKey call in deleteAtRange (#1506) 2018-01-05 16:06:18 -08:00
Ian Storm Taylor
fc121b5821 Publish
- slate-base64-serializer@0.2.19
 - slate-html-serializer@0.5.0
 - slate-hyperscript@0.5.0
 - slate-plain-serializer@0.5.0
 - slate-prop-types@0.4.17
 - slate-react@0.11.0
 - slate-simulator@0.4.17
 - slate@0.32.0
2018-01-04 15:39:37 -08:00
Ian Storm Taylor
1b73d5531c update changelogs 2018-01-04 15:32:04 -08:00
Ian Storm Taylor
85f4a7618c Merge branch 'master' of github.com:ianstormtaylor/slate 2018-01-04 15:27:06 -08:00
Ian Storm Taylor
5444a300b8
rename kind to object for clarity (#1501)
* rename `kind` to `object` for clarity

* add deprecation warning for direct access

* add deprecation warning for node creation
2018-01-04 15:26:53 -08:00
Ian Storm Taylor
e01a2e2dfb switch html-serializer tests to use jsdom 2018-01-04 15:20:02 -08:00
Yoel
a6c56a2c56 slate-html-serializer: consistent element.value lookups (#1503)
* consistent element.value lookups

* fix JSDOC / lint

* remove getValue util in favor of element.nodeValue lookup
2018-01-04 15:08:25 -08:00
Ian Storm Taylor
bfe3124b01 Publish
- slate-base64-serializer@0.2.18
 - slate-html-serializer@0.4.16
 - slate-hyperscript@0.4.16
 - slate-plain-serializer@0.4.16
 - slate-prop-types@0.4.16
 - slate-react@0.10.23
 - slate-simulator@0.4.16
 - slate@0.31.8
2018-01-02 17:02:19 -08:00
Stan Chang Khin Boon
9c07a6baa4 Flush change immediately (#1479) (#1480)
Propose to flush change immediately instead of delaying it using `setTimeout()`.

- Flushing change is only use for `props.onChange()` callback and invoked at the end of render lifecycle (didMount/didUpdate), can't find the rationale for delaying it.
- `setTimeout()` delay are not dependable for a predictive behaviour
- `onChange()` is an important callback for a controlled component, delaying it can cause race condition. e.g. any changes outside of the component lifecycle that happen between the delay of flushing change will be overridden
2017-12-29 11:07:55 -08:00
Justin Weiss
23ab02626f Properly invert merge_node operations (#1477) 2017-12-29 10:57:21 -08:00
Charlie Martin
29bcb1c8d6 Don't attempt to remove event listeners from non-existent window (#1495)
```
<IFrameComponent>
  <SlateEditor {...props} />
</IFrameComponent>
```

Since react unmounts from top down, `IFrameComponent` will unmount first (destroying its window), then `SlateEditor` will unmount and attempt to access the iframe window (which no longer exists) throwing `Uncaught TypeError: Cannot read property 'document' of undefined`.

It should be safe to skip removing event listeners from windows that no longer exist since they will be garbage collected upon destruction of the window anyway
2017-12-29 10:49:54 -08:00
Stan Chang Khin Boon
02c4837d4c this.element might be null when the callback is executed (#1489) 2017-12-29 10:48:53 -08:00
Brian Kim
6f5f2db271 fix #1487 (#1488) 2017-12-29 10:48:28 -08:00
Julien Poissonnier
0e33c8bb35 Fix schema marks validation (#1483) 2017-12-29 10:47:06 -08:00
Stan Chang Khin Boon
1b9d3944a9 change.operations is immutable List thus we should size property instead of length (#1478) 2017-12-29 10:42:32 -08:00