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

219 commits

Author SHA1 Message Date
Neil Jenkins
aa3857ab77 Use default block config when inserting plain text 2016-05-25 12:41:57 +10:00
Neil Jenkins
f7774c8cf3 Always save selection on blur.
Hopefully fixes #194
2016-05-18 18:07:55 +10:00
Neil Jenkins
1f4baefda4 Remove dragover/drop from custom events list.
Fixes #183
2016-05-05 12:22:56 +10:00
Neil Jenkins
6c4f8e1aaf Add support for default <a> attributes
Resolves #186.
2016-05-05 11:50:36 +10:00
Andy Kauffman
f50962db7f Add a modifyDocument method
There are certain times when it is necessary to modify the document
programmatically, such as to set attributes, add tooltips, etc. Such
edits should not be observed as inputs. This method allows edits to be
ignored by the editor.
2016-05-05 11:30:27 +10:00
Andy Kauffman
64ee5db293 insertElement should register as input for older browsers 2016-05-02 13:47:39 -04:00
Neil Jenkins
d9122222b2 Restore range more accurately from bookmark 2016-03-30 16:39:04 +11:00
Neil Jenkins
ed44d72ca7 Add dragover and drop to custom events list
Since these are fired by the clipboard handler.
2016-03-30 13:23:47 +11:00
Neil Jenkins
5b4aa6b764 Add getRoot method 2016-03-30 10:42:41 +11:00
Neil Jenkins
bac7c5d2cc Restore selection on focus, unless explicit click 2016-03-28 09:58:50 +11:00
Neil Jenkins
4ca3b20b8a Handle old browsers w/o range.getBoundingClientRect 2016-03-24 21:25:14 +11:00
Neil Jenkins
072a2d9fce Add getCursorPosition method, remove scrollRangeIntoView
Scrolling depends so much on the integration. Better to allow the cursor
position to be fetched, and then the integration can do the scrolling when it
wants (for example on each "input" event).
2016-03-24 13:48:09 +11:00
Neil Jenkins
6a348e084b Make Squire work without an iframe(!) 2016-03-23 17:41:09 +11:00
Neil Jenkins
e133f26db1 Fix getFontInfo iteration up tree 2016-03-18 18:55:21 +11:00
Neil Jenkins
62616ef4ec Add saveUndoState method to public API
For #174
2016-03-11 15:58:32 +11:00
Neil Jenkins
6413034884 Improve copy/paste
* In browsers that support it, we now tell it to copy exactly what was selected
  in the DOM, and not to add extra gunk which browsers do to preserve exact
  styling if pasted into another document.
* Don't use the clipboard APIs with MS Edge, since it only supports plain text.
  If we let it fallback to the browser implementation it will insert HTML.
2016-03-11 15:22:49 +11:00
Neil Jenkins
9b88aca813 Fix crash in scrollRangeIntoView if no bounding rect 2016-03-07 17:19:51 +11:00
Neil Jenkins
2fccc317ad Fix getFontInfo method.
Resolves #169
2016-02-03 15:35:13 +11:00
Neil Jenkins
93f7867214 Fix Meta-Left/Right handling in Firefox.
Fixes #167.
2015-12-29 11:15:01 +11:00
Neil Jenkins
8b183c6ef6 Add scrollPointIntoView event for integrations. 2015-12-09 17:29:47 +11:00
Neil Jenkins
9ccf765ba8 Scroll cursor into view after setting selection.
Fixes #162 and fixes #165.
2015-12-09 15:12:47 +11:00
Neil Jenkins
df25d6d596 Add colour/background-colour to result of getFontInfo
Resolves #158
2015-12-03 18:14:49 +11:00
Neil Jenkins
0d1f1cf44b Consistently don't use a space in CSS when setting colour.
Fixes #159.
2015-12-03 17:55:22 +11:00
priceld
abfebbab16 change the walker's currentNode to reflect the changes being made to the tree 2015-12-01 10:53:30 -05:00
Neil Jenkins
987f3afd52 Fix escaping first/last line plain text on insertion.
Fixes #157.
2015-11-20 13:55:57 +11:00
Neil Jenkins
8d178e1a65 Merge pull request #141 from gertsonderby/test/hasFormat
Added test suite that checks a number of cases for hasFormat().
2015-10-13 09:10:13 +02:00
Gert Sønderby
c40f900b7d Fixed copypasta-mistake, nextSibling -> previousSibling. 2015-10-13 08:46:44 +02:00
Ray Brooks
08e85c912b [Issue-147] Fix Firefox hidden iframe win.getSelection() bug
[Issue-147] Fixed code convention errors
2015-10-12 21:52:10 +01:00
Gert K. Sønderby
49ca521704 Fix up ranges in weird cases generated by IE (both start and end to be safe). 2015-10-02 15:26:30 +02:00
Neil Jenkins
9461368a5c Fix whitespace errors.
Thanks to @gertsonderby who pointed these out in #138.
2015-09-28 15:48:23 +02:00
Gert K. Sønderby
94f5a56255 Added getFontInfo() function, which extracts font-family and font-size styles. 2015-09-03 11:48:47 +01:00
Neil Jenkins
02df8f9ed4 Merge pull request #127 from gertsonderby/remove-all-cleans-inputs 2015-08-27 11:16:20 +01:00
Gert K. Sønderby
8238b7a8e4 Removing all formatting also removes INPUT elements. 2015-08-26 15:42:01 +02:00
Gert K. Sønderby
5a46d51671 Lone IMG tags in a range will be accepted by _addFormat, so that they can be made into links. 2015-08-26 15:07:58 +02:00
Neil Jenkins
a8fcd55cf4 Make event.preventDefault() cancel default key actions.
Fixes #107
2015-07-13 09:25:44 +07:00
Neil Jenkins
7fc3ab55c3 Better cleanTree fn.
- Better checks to precisely trim white space only at beginning and end of block
- Don't keep the contents of <head> or <style> tags if inserted into body.
- Always keep styles to preserve fidelity on paste.

Fixes #95.
2015-06-19 14:20:19 +07:00
Neil Jenkins
c3701ba026 Move addLinks fn into Editor.js
It's only used by insertHTML, and isn't really about cleaning.
2015-06-19 14:19:49 +07:00
Neil Jenkins
bc523f83e8 Better paste handling
Get paste data directly from browser when supported. Funnel all pastes through
the insertHTML method for consistent results.
2015-06-19 14:19:21 +07:00
Neil Jenkins
395a5825e9 Split cleaning fns and clipboard handlers into separate file. 2015-06-19 14:18:32 +07:00
Neil Jenkins
a1ff33da9f Squire#removeAllFormatting fixes.
* Update the path after making the changes, so UI buttons can update correctly.
* Focus the editor on completion, to match the behaviour of other commands.
* Merge all the gathered text nodes if they're adjacent, so we have a normalised
  result.
2015-06-17 19:07:29 +07:00
Neil Jenkins
345159b4c4 Better algorithm for remove all formatting action.
1. Keeps all leaf nodes not just text nodes, so images etc. are not removed.
2. If the selection is not within a single block, it is expanded to the edges
   of the blocks rather than splitting the blocks; this is unlikely to have
   been what the user wanted.
3. More efficient tree traversal and manipulation; no duplication of nodes.
4. Records undo state before performing the action.
2015-06-17 15:43:27 +07:00
Neil Jenkins
d9872fb4b2 More efficient forEachChildInRange fn.
No need for a tree walker, and we don't waste time iterating into children
that can never match the filter function.
2015-06-17 15:43:27 +07:00
Neil Jenkins
8b112b7615 Ensure removeAllFormatting always returns self. 2015-06-17 15:43:27 +07:00
Neil Jenkins
36432d45bd Fix whitespace. 2015-06-17 15:43:27 +07:00
Gert Sønderby
90660e8e4f Updated README, aligned return value with other API functions. 2015-06-17 15:43:26 +07:00
Gert Sønderby
6aba099388 Tests run in latest Chrome, FF, Safari + IE10 and 11. 2015-06-17 15:43:26 +07:00
Gert K. Sønderby
654706f15f Squire#removeAllFormatting() implemented, replaces range contents with style-sanitized version. 2015-06-17 15:43:26 +07:00
Gert K. Sønderby
d16de00a23 Added option to persist splits in inline nodes when fetching range from bookmark. 2015-06-17 15:43:26 +07:00
Neil Jenkins
c29a8c639b Wrap rather than split to replace <br>s.
Fixes #81.
2015-06-13 11:44:32 +07:00
Neil Jenkins
27b1532ca6 Add Squire#moveCursorTo(Start|End) methods.
I've got 99 GitHub issues, but #99 ain't one (any more).
2015-06-13 11:20:07 +07:00