Neil Jenkins
4354b46db9
Don't merge <a> tags.
...
Fixes #198
2016-05-26 10:33:18 +10:00
Neil Jenkins
aa3857ab77
Use default block config when inserting plain text
2016-05-25 12:41:57 +10:00
Andy Kauffman
4e7e290fbc
Fix block boundary issue
...
If the node is at the end of the document, this method can fail with
'TypeError: Cannot read property 'previousSibling' of null'
2016-05-19 10:28:46 +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
0f361d69c6
Add IFRAME to list of inline nodes.
...
Resolves #180 .
2016-05-01 16:36:43 +10:00
Neil Jenkins
6a28aafd2f
Add HR as a leaf node name.
2016-05-01 16:33:47 +10:00
Neil Jenkins
e3d0576a38
Workaround Facebook iOS URL copying bug
2016-04-11 16:58:13 +10:00
Neil Jenkins
44a2b5c7a8
Add guard for null nodes in insertTreeFragmentIntoRange
2016-04-08 17:42:47 +10:00
Neil Jenkins
66c0b20702
Squire: Fix possible error when deleting range
2016-04-07 13:08:45 +10: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
230520645b
Fix cleanup of white space
2016-03-28 10:14:55 +11:00
Neil Jenkins
bac7c5d2cc
Restore selection on focus, unless explicit click
2016-03-28 09:58:50 +11:00
Neil Jenkins
3ff9a46ea9
Check for null parent in getPath
2016-03-26 11:32:59 +11:00
Neil Jenkins
923a0efd1a
Fix delete/backspace removing content outside editor
2016-03-26 11:20:28 +11:00
Neil Jenkins
3dca852630
Log errors from fixCursor to track down bug
2016-03-24 22:04:42 +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
3be9a7dea8
Workaround iOS clipboardData bug
2016-03-24 09:44:35 +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
349f391075
Fix typo in cut/copy handlers
2016-03-14 15:21:48 +11:00
Neil Jenkins
c895d6b307
Set a plain text version too on cut/copy
2016-03-12 17:18: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
6ed3b93900
Workaround Firefox clipboard ignores RTF data
2016-03-07 18:38:07 +11:00
Neil Jenkins
9b88aca813
Fix crash in scrollRangeIntoView if no bounding rect
2016-03-07 17:19:51 +11:00
Neil Jenkins
6bafa1d140
Run fixContainers before merging blocks.
...
In case paste or something has got the document into a weird state with inline
content not inside a block.
2016-02-26 14:28:53 +11:00
Neil Jenkins
2fccc317ad
Fix getFontInfo method.
...
Resolves #169
2016-02-03 15:35:13 +11:00
Neil Jenkins
7330324d92
Fix Firefox throws error if initialised with display:none
...
Fixes #168 .
2016-01-06 14:38:53 +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
bf8f796ea4
Add shift-tab keyboard shortcut.
...
If at beginning of list item, shift-tab decreases indent (to mirror tab to indent).
2015-11-17 16:50:55 +11:00
Neil Jenkins
162ec9049e
Make scroll on enter logic independent of CSS.
...
Fixes #149 .
2015-10-23 17:05:32 +01:00
Trey Cordova
85c9002ce5
Add tab nesting capability to list items with text in them;
...
- This requires your cursor to be at the beginning of the list item.
- This implementation mimics Google Docs.
2015-10-23 14:22:04 +02: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
Neil Jenkins
0ec3c43791
Don't prevent default on tab unless doing something.
...
Fixes #131 .
2015-09-04 18:33:11 +01: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
xfra35
702991c2c6
Allow FIGCAPTION block tags
2015-08-31 16:41:29 +02: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
900e43cca8
Fix prefix white-space trimmed on paste of plain text.
2015-07-25 18:11:56 -07:00
Neil Jenkins
c190fab9fd
Fix deletion of range when start or end is at edge of block.
...
If the selection starts and ends in the middle of blocks, we need to merge
these after extracting the range. But we need to be careful not to merge if
the selection ends at a block, as we end up merging into a block that wasn't
selected.
2015-07-25 18:03:51 -07:00
Neil Jenkins
715166b95d
Let browser handle paste of images in FF/Safari.
2015-07-16 10:47:56 -07:00
Neil Jenkins
fdcef5fc8e
Workaround clipboard having blank text/html version.
2015-07-14 12:59:27 -07:00
Je
aac169f764
Add support for the AMD
2015-07-14 00:33:38 +08:00
Je
3f13435182
Add support for AMD
2015-07-14 00:16:16 +08:00
Neil Jenkins
8d764f6638
Fix Chrome may replace <div> with <br> if you delete all content.
...
Fixes #108 .
2015-07-13 06:39:07 -07:00
Neil Jenkins
a8fcd55cf4
Make event.preventDefault() cancel default key actions.
...
Fixes #107
2015-07-13 09:25:44 +07:00
Neil Jenkins
579cad7ff9
Fix pasting plain text in Safari.
2015-07-11 19:22:46 +07:00
Neil Jenkins
522a481dd3
Require <html data-squireinit="true"> to auto-instantiate.
...
Explicit opt-in to autoinstantiation (included in the default document.html)
means Squire may be loaded in sites that themselves are loaded in iframes,
without unexpected consequences.
Resolves #104 .
2015-07-06 12:19:21 +07:00
Neil Jenkins
4f010a5de0
Override page up/down to match expected platform behaviour.
2015-06-25 11:02:56 +07:00
Neil Jenkins
de7d7011a7
Merge pull request #103 from shiawuen/top
...
fix bug on Browserify component when embed in multi layers of iframe
2015-06-23 15:16:08 +07:00
Neil Jenkins
2a8fb93cd9
Fix erroneous white-space removal when pasting inline fragment.
2015-06-23 09:46:15 +07:00
Neil Jenkins
def56193d4
Fix dummy paste area should be removed after paste completes
2015-06-22 09:32:47 +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
926f40d033
Tidy Clean.js file layout
2015-06-19 14:20:01 +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
680c0fbbb7
Don't use old clipboard API.
...
Safari very rarely has a text/html version (even if you copy from within
Safari!) so you end up always pasting plain text. Better to use the fallback
method to grab the data.
2015-06-19 14:19:37 +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
e90f18dba9
Fix inserting partial inlines in insertTreeFragmentIntoRange
...
Needs to account for browser "<br>"s inside blocks.
2015-06-19 14:18:07 +07:00
shiawuen
ff21cb37e6
fix bug on Browserify component when embed on another window replacing containing window content
2015-06-19 12:12:37 +08: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
09167c73e4
Make it possible to delete an <img> with display other than inline
...
Based on pull request #85 from dryoma.
2015-06-17 17:18:34 +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
42139c8399
Fix error thrown inserting tree fragment at start/end of document.
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
Neil Jenkins
e59e6418af
Improve merging edges of inserted tree fragment.
...
Fixes #87 .
2015-06-12 17:48:06 +07:00
Neil Jenkins
f6cddb4626
Remove some old IE8-specific code.
2015-06-11 15:53:12 +07:00
Neil Jenkins
ae7d93a8fe
Position paste area further off screen to hide IE handlebars
...
Fixes #84 .
2015-06-09 16:38:16 +07:00
Neil Jenkins
60169dce6b
Handle browser splitting paste area.
...
Fixes #88 .
2015-06-09 16:32:20 +07:00
Neil Jenkins
884f352846
Set focus after element inserted with Squire#insertElement
...
Fixes #90 .
2015-06-02 21:15:14 +07:00
Neil Jenkins
c524772a63
Merge branch 'npm' of https://github.com/shiawuen/Squire into shiawuen-npm
2015-05-09 17:29:50 +07:00
Neil Jenkins
a2ca4a3864
Allow setting default attributes for ul/ol/li/blockquote.
...
Merges #83 , with fixes, tidying and squashing.
2015-05-09 17:22:54 +07:00
shiawuen
619a3abc5d
fix module check getting undefined for Firefox
2015-05-07 23:40:49 +08:00
shiawuen
3f643b5718
export Squire
2015-05-07 10:52:52 +08:00