0
Fork 0
mirror of https://github.com/fastmail/Squire.git synced 2024-12-22 15:23:29 -05:00
Commit graph

570 commits

Author SHA1 Message Date
Neil Jenkins
9b654a82b1 Convert adjacent space to nbsp when extracting range
This resolves the issue where if you selected a word and then typed to replace
it, the following space would be deleted as well.

Fixes #331
2018-10-05 11:36:20 +10:00
Neil Jenkins
625d10139e Add support for <pre>/<code> formatting 2018-07-27 10:47:38 +10:00
Neil Jenkins
e07150192f Make shift-enter always just add <br> 2018-07-27 09:23:26 +10:00
Neil Jenkins
2d5114c669 Make TreeWalker filter argument optional 2018-07-27 09:22:06 +10:00
Neil Jenkins
e3e7c17315 Add config.willCutCopy option
Is an optional function that transforms the HTML being cut/copied before
placing it on the clipboard.
2018-07-12 15:40:01 +10:00
Neil Jenkins
f0594091c5 Allow class names to be configured 2018-07-12 15:22:18 +10:00
Neil Jenkins
7a24d6c505 Make check for link protocol case-insensitive
Resolves #308.
2018-06-23 14:39:59 +10:00
Neil Jenkins
35a25e6d44 Simplify regex for matching link query params 2018-06-23 14:35:16 +10:00
dhoko
55fa0ae8e9 Build lib 2018-06-23 14:21:47 +10:00
dhoko
10bf787651 Parse url and create anchor with queryparams 2018-06-23 14:21:46 +10:00
Neil Jenkins
db005b379b Make createRange method public 2018-05-09 17:43:11 +10:00
Neil Jenkins
74d0127974 Release v1.8.14 2018-04-04 20:15:30 +10:00
Neil Jenkins
23b95e6594 Update built version from latest source 2018-04-04 20:14:53 +10:00
Neil Jenkins
00dbc089c4 Fix documentation error 2018-04-04 14:41:18 +10:00
Neil Jenkins
7131fee891 Release v1.8.13 2018-03-26 10:06:44 +01:00
Neil Jenkins
389daab664 If ctrl/meta held down, key is not inserting text 2018-03-26 10:06:01 +01:00
Neil Jenkins
e4566b8b3a Release v1.8.12 2018-03-18 10:41:40 +00:00
Neil Jenkins
b0ac7d32d0 Handle all cases of overwriting content
Modern browsers tell you which character will be inserted with event.key, so
we can make sure we handle content deletion ourselves in these cases too.
2018-03-18 10:40:03 +00:00
Neil Jenkins
9dda7cc845 Fix FF does not leave <a> on space 2018-03-18 10:34:12 +00:00
Neil Jenkins
465c1268be Release v1.8.11 2018-01-02 09:01:00 +11:00
Neil Jenkins
070f2e52a3 Support pasting images in Edge 2017-12-13 16:43:43 +11:00
Neil Jenkins
50fb7c7c53 Preserve block style if pasting on blank line
If the clipboard contains block contents, e.g.

<blockquote><p>Foo</p></blockquote>

Then if you paste it into a block that already has content we merge the inline
content from the first block and discard its surrounding block.

However, if you paste into an empty block, we'll now keep the block and remove
the empty one in the document. This seems a reasonable heuristic for determining
user intent.
2017-11-01 10:45:21 +11:00
Neil Jenkins
306230d0df Better handling of <pre>
* Pasting <pre> should not attempt to merge with block.
* Hitting enter should produce a new <pre>, otherwise all new lines after the
  break are lost.
2017-09-05 11:42:54 +10:00
Neil Jenkins
60842e3b71 Release v1.8.10 2017-09-04 10:24:26 +10:00
Neil Jenkins
033370ebee Don't try to merge table cell into block on paste 2017-09-04 10:22:49 +10:00
Neil Jenkins
c5be1b79dc Fix broken variable reference 2017-08-17 14:12:29 +10:00
Neil Jenkins
833d7dfdbd New (increase|decrease)ListLevel algorithms
Fixes #287
2017-08-15 11:11:48 +10:00
Neil Jenkins
6842cb94eb Fix undo does not always restore cursor position.
If the content hasn't changed before an undo point is requested we ignore the
request, but the cursor position may have changed and users expect undo to
restore the cursor position immediately before the requested change was made.

So in this instance we now still record an undo state, but replace the previous
one if the content is unchanged.
2017-07-19 14:29:36 +02:00
Neil Jenkins
48fabd491a Improved algorithm for inserting tree into range
Fixes #283
2017-07-19 14:29:16 +02:00
Neil Jenkins
239b7d19e9 Ignore saved selection if not in document
The browser will rewrite the range if the nodes it refers to are removed from
the document, so check that it's still in the document before returning.
2017-07-07 11:48:42 +10:00
Neil Jenkins
0ae8322d04 Code tidying 2017-07-07 11:32:37 +10:00
Neil Jenkins
0b59a746f7 Ignore selectionchange events outside of editor
The selectionchange event handler can only be registered on the document
but we are not interested in changes of focus/selection that happen
outside of the editor, so check we have focus before firing the update
path event.
2017-07-07 11:32:18 +10:00
Neil Jenkins
a8f07d9adb Default to allowing URIs with unknown protocols 2017-06-28 16:03:31 +10:00
Neil Jenkins
601043f020 Fire a 'cursor' event so selection end can be monitored 2017-06-21 17:03:14 +10:00
Neil Jenkins
283a7d1d85 Don't consider editor focused if sub-element focused
Fixes #267
2017-05-10 14:22:56 +10:00
Neil Jenkins
632aae016b Code style fixup 2017-05-10 14:00:28 +10:00
kyuwoo.choi
9eacfb7b22 fix: handle insert table by CF_HTML
ms html clipboard format CF_HTML handles table like below if we copy part of table.
it makes problem when copying table from ms product such as ie, excel, powerpoint then pasting to squire.

<TABLE BORDER>
<!--StartFragment-->
<TR><TD>Item 6</TD><TD>Item 7</TD></TR><TR><TD>Item 10</TD><TD>Item 11</TD></TR>
<!--EndFragment-->
</TABLE>

and

<TABLE BORDER><TR>
<!--StartFragment-->
<TD>Item</TD>
<!--EndFragment-->
</TR></TABLE>

https://msdn.microsoft.com/en-us/library/windows/desktop/ms649015(v=vs.85).aspx
#274
2017-05-10 13:59:30 +10:00
Neil Jenkins
bb593e879a Don't insert <br> inside end of <a> on enter
Fixes #271
2017-03-21 17:06:44 +11:00
Neil Jenkins
52b92abe47 Release v1.8.9 2017-02-11 09:43:01 -08:00
Neil Jenkins
70a2b48333 Return cached selection if not focused
If an action modifies the selection while the editor is not focused, we cannot
immediately set it in the DOM as this triggers focus. So instead we cache it and
restore on focus. If getSelection is called before the editor is next focused,
we need to return this new selection, not the current DOM selection.

Fixes #259
2017-02-11 09:40:56 -08:00
Neil Jenkins
d8917a291c Release v1.8.8 2017-01-19 17:15:06 +11:00
Neil Jenkins
45fee4c858 Fix potential infinite loop on cut
Common ancestor of range may change while range is manipulated for deletion.
2017-01-19 17:08:39 +11:00
Neil Jenkins
056133fbdf Release v1.8.7 2017-01-13 15:23:50 +11:00
Neil Jenkins
9596f4ecf8 Ensure moving boundaries up tree never passes root 2017-01-13 15:15:59 +11:00
Neil Jenkins
3a17d3793b Release v1.8.6 2017-01-13 10:25:38 +11:00
Neil Jenkins
79ffc02557 Unify cut and copy implementations
* Data added to clipboard should now always be the same for cut as for copy
* Fixes bug when cutting across blocks, where not all parents would be included
  in the data added to the clipboard
2017-01-13 10:24:01 +11:00
Neil Jenkins
15fdf05e76 Release v1.8.5 2017-01-10 10:08:29 +11:00
Neil Jenkins
6f83f23881 Fix delete behaviour
1. Fixes cursor position when deleting starting with a selection at beginning
   of block.
2. Fixes block disappears when whole inline contents is deleted.
2017-01-10 10:06:28 +11:00
Neil Jenkins
066bdd2cde Ignore "cut" if no selection 2017-01-10 10:05:56 +11:00
Neil Jenkins
e645489f5f Fix empty lines missing when copying plain text 2017-01-10 10:05:35 +11:00