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

2074 Commits

Author SHA1 Message Date
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
Spencer Baynton
2d7c470c94 Changed metaKey to crtlKey (#1508)
Fixes documentation suggested in issue #690.
2018-01-08 13:38:46 -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
slate@0.32.0 slate-simulator@0.4.17 slate-react@0.11.0 slate-prop-types@0.4.17 slate-plain-serializer@0.5.0 slate-hyperscript@0.5.0 slate-html-serializer@0.5.0 slate-base64-serializer@0.2.19
2018-01-04 15:39:37 -08:00
Ian Storm Taylor
68bf8a00bf fix syncing-operations example 2018-01-04 15:38:16 -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
slate@0.31.8 slate-simulator@0.4.16 slate-react@0.10.23 slate-prop-types@0.4.16 slate-plain-serializer@0.4.16 slate-hyperscript@0.4.16 slate-html-serializer@0.4.16 slate-base64-serializer@0.2.18
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
Ryan
7dc93dced9 Docs: Fix method capitalization on resetKeyGenerator (#1474) 2017-12-29 10:43:02 -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
Ian Storm Taylor
22576e521f Publish
- slate-base64-serializer@0.2.17
 - slate-html-serializer@0.4.15
 - slate-hyperscript@0.4.15
 - slate-plain-serializer@0.4.15
 - slate-prop-types@0.4.15
 - slate-react@0.10.22
 - slate-simulator@0.4.15
 - slate@0.31.7
slate@0.31.7 slate-simulator@0.4.15 slate-react@0.10.22 slate-prop-types@0.4.15 slate-plain-serializer@0.4.15 slate-hyperscript@0.4.15 slate-html-serializer@0.4.15 slate-base64-serializer@0.2.17
2017-12-12 18:10:57 -05:00
Justin Weiss
8be1f9f3a1 Remove value from operation.fromJSON (#1451)
* Remove `value` from `operation.fromJSON`

Value is only used for local undo / redo, so it shouldn't be
serialized along with the rest of the data.

* Continue to parse a specified `value` into an Operation
2017-12-12 18:09:15 -05:00
Evan Henley
a3d91b6daa fix: account for container padding in scrollToSelection (#1462) 2017-12-11 10:35:02 -08:00
Ian Storm Taylor
fafa607e54 Publish
- slate-base64-serializer@0.2.16
 - slate-html-serializer@0.4.14
 - slate-hyperscript@0.4.14
 - slate-plain-serializer@0.4.14
 - slate-prop-types@0.4.14
 - slate-react@0.10.21
 - slate-simulator@0.4.14
 - slate@0.31.6
slate@0.31.6 slate-simulator@0.4.14 slate-react@0.10.21 slate-prop-types@0.4.14 slate-plain-serializer@0.4.14 slate-hyperscript@0.4.14 slate-html-serializer@0.4.14 slate-base64-serializer@0.2.16
2017-12-11 10:40:51 -05:00
David Silva
f8c74426a5 fix(at-range): forward deletion now stays with next block. (#1459)
* fix(at-range): forward deletion now stays with next block.

* fix(at-range): use select instead of moveToRangeOf

* Revert "fix(at-range): use select instead of moveToRangeOf"

This reverts commit 43bf33e29daeaa609bf92196df1b25de42c12d96.

* fix(at-range): moveOffsetsTo

* fix(at-range): change to change.moveToStartOf(nextBlock)
2017-12-11 07:14:25 -08:00
David Silva
c58e53364f fix(scroll-to-selection): use getClientRects when selectionRect.top/height is still 0 in Safari (#1446)
* fix(scroll-to-selection): use getClientRects when startContainer.length is 1

* fix(scroll-to-selection): rewrite and check if selectionRect.top/height still 0, use getClientRects

* fix(scroll-to-selection): identation whoopsie

* fix(scroll-to-selection): tabs !== spaces

* fix(scroll-to-selection): check for getClientRects length

* feat(scroll-to-selection): add IS_SAFARI check
2017-12-11 06:59:31 -08:00
Justin Weiss
082fb53633 Add a copyFragment helper for plugin onCut/onCopy functions (#1429)
* Add a `copyFragment` helper for plugin onCut/onCopy functions

* Rename `copyFragment` to `cloneFragment`

* Fix a missing clone-fragment reference
2017-12-11 06:56:38 -08:00
Conor Cussell
b2e0612149 Deal with invalid range passed to getSelectionIndexes (#1443)
* Deal with invalid range in getSelectionIndexes

* Use range is unset
2017-12-11 06:54:46 -08:00
Ian Storm Taylor
cef33de6aa Publish
- slate-base64-serializer@0.2.15
 - slate-html-serializer@0.4.13
 - slate-hyperscript@0.4.13
 - slate-plain-serializer@0.4.13
 - slate-prop-types@0.4.13
 - slate-react@0.10.20
 - slate-simulator@0.4.13
 - slate@0.31.5
slate@0.31.5 slate-simulator@0.4.13 slate-react@0.10.20 slate-prop-types@0.4.13 slate-plain-serializer@0.4.13 slate-hyperscript@0.4.13 slate-html-serializer@0.4.13 slate-base64-serializer@0.2.15
2017-12-04 11:31:07 -08:00
Evan Henley
4f1c26961d refactor scroll logic (#1428) 2017-12-04 11:27:54 -08:00
Thomas Preusse
a4028cac6b fix nodes validation with an optional first child (#1444)
When moving to the next definition because of a fulfilled min a child could
slip through without being valid.
2017-12-04 11:27:26 -08:00
Ian Storm Taylor
199c32a2b5 Publish
- slate-react@0.10.19
slate-react@0.10.19
2017-12-02 13:53:25 -08:00
Ian Storm Taylor
4e021f58b5
handle native selectionchange event, closes #1135 (#1441) 2017-12-02 13:52:23 -08:00
Ian Storm Taylor
e06281bcf2 update packages readme 2017-12-02 13:51:32 -08:00
Ian Storm Taylor
a3fcb5dfa2 update packages readme 2017-12-02 13:49:38 -08:00
Ian Storm Taylor
5df62975a9 update readmes 2017-12-02 13:48:51 -08:00
Ian Storm Taylor
ac9965151a Publish
- slate-base64-serializer@0.2.14
 - slate-html-serializer@0.4.12
 - slate-hyperscript@0.4.12
 - slate-plain-serializer@0.4.12
 - slate-prop-types@0.4.12
 - slate-react@0.10.18
 - slate-simulator@0.4.12
 - slate@0.31.4
slate@0.31.4 slate-simulator@0.4.12 slate-react@0.10.18 slate-prop-types@0.4.12 slate-plain-serializer@0.4.12 slate-hyperscript@0.4.12 slate-html-serializer@0.4.12 slate-base64-serializer@0.2.14
2017-12-02 13:07:39 -08:00
Justin Weiss
105b384ccb Fix activeMarks at the beginning of a line (#1434)
If you move to the beginning of a text node, and the previous text
node has marks, `marks` is set but `activeMarks` is not. This was
caused by `getActiveMarksAtRangeAsArray` looking for a function that
didn't exist. With this change, `activeMarks` is brought in line with
how `marks` works for collapsed selections.
2017-12-02 12:35:16 -08:00
Conor Cussell
7032339ca2 Fix small error in docs (#1435)
- make the placeholder have an opacity
- correct `contentEditable` jsx attribute
2017-12-02 12:34:38 -08:00
Justin Weiss
1ae4471692 Document the position field of merge_node (#1440)
`merge_node` has a `position` field, which is exactly what I needed in order to transform some operations. It should be documented.
2017-12-02 12:30:05 -08:00
David Hrdlicka
8928363471 Fix inserting text with hanging selection, issue #1189 (#1432) 2017-12-02 12:29:00 -08:00
Raffy Li
b3324db24c fix editor auto focus (#1438)
current implement of auto focus is buggy, HTMLElement.focus method
have no effect on selection state of editor, another re-render will
cause editor blur unexpectedly.
2017-12-02 12:06:17 -08:00
Ian Storm Taylor
f3b1a806d7 Publish
- slate-base64-serializer@0.2.13
 - slate-html-serializer@0.4.11
 - slate-hyperscript@0.4.11
 - slate-plain-serializer@0.4.11
 - slate-prop-types@0.4.11
 - slate-react@0.10.17
 - slate-simulator@0.4.11
 - slate@0.31.3
slate@0.31.3 slate-simulator@0.4.11 slate-react@0.10.17 slate-prop-types@0.4.11 slate-plain-serializer@0.4.11 slate-hyperscript@0.4.11 slate-html-serializer@0.4.11 slate-base64-serializer@0.2.13
2017-11-19 13:04:26 -08:00
dmitrizzle
5542766092 Managing History limits (#1421)
* Undo size is measured in  rather than

* Revert local settings
2017-11-19 13:01:08 -08:00
Nicolas Gaborit
aec62f06ba Update benchmark to use Value (#1420) 2017-11-19 12:46:52 -08:00
Ian Storm Taylor
0d43d26f91 Publish
- slate-react@0.10.16
slate-react@0.10.16
2017-11-16 13:13:26 -08:00
Ian Storm Taylor
ed32159be7 fix to default window in findDOM* utils 2017-11-16 13:12:42 -08:00
Ian Storm Taylor
7cfc7fae68 Publish
- slate-base64-serializer@0.2.12
 - slate-dev-logger@0.1.36
 - slate-html-serializer@0.4.10
 - slate-hyperscript@0.4.10
 - slate-plain-serializer@0.4.10
 - slate-prop-types@0.4.10
 - slate-react@0.10.15
 - slate-simulator@0.4.10
 - slate@0.31.2
slate@0.31.2 slate-simulator@0.4.10 slate-react@0.10.15 slate-prop-types@0.4.10 slate-plain-serializer@0.4.10 slate-hyperscript@0.4.10 slate-html-serializer@0.4.10 slate-dev-logger@0.1.36 slate-base64-serializer@0.2.12
2017-11-16 12:21:24 -08:00
Ian Storm Taylor
59a7197f81 fix inverting of split_node and merge_node operations 2017-11-16 12:20:30 -08:00
Ian Storm Taylor
65c583f695 update syncing-operations example 2017-11-16 11:53:59 -08:00