Mailspring/src
Evan Morikawa d18642fb3e refactor(contenteditable): new ContenteditableExtension API
Summary:
This provides a new API for `ContenteditableExtension`s. Instead of
manually manipulating the raw DOM and `Selection` objects, there's a new
`Editor` interface that encapsulates it and provides helper methods.

You can now do:

      editor.select(someNode).createLink("foo").collapseToEnd()

Now raw methods like `execCommand` ONLY show up in the `Editor` interface
as well as most of the raw `Selection` APIs.

There are also more integration tests :)

Another major goal was cleaning up the contenteditable file itself. To
that end:

1. The DOMNormalizer got pulled out into its own extension
1. The TabManager is now its own extension
1. Url wrangling got moved into the FloatingToolbar control
1. There is now the concept of a `ContenteditableService`, which are
tightly-couple blocks of code separated out into logical units. These are
dependent on the core state, innerState, and props and are not full
extensions.
1. `MouseService` now handles all the click event logic
1. `ClipboardService` was modified to the new service architecture

Test Plan: script/grunt run-integration-tests

Reviewers: drew, juan, bengotow

Reviewed By: juan, bengotow

Differential Revision: https://phab.nylas.com/D2367
2015-12-21 19:58:01 -08:00
..
browser fix(feedback-window): Close correctly when in fullscreen mode 2015-12-20 13:11:58 -08:00
compile-support fix(hot-api): remove react-hot-api 2015-12-11 11:22:22 -05:00
components refactor(contenteditable): new ContenteditableExtension API 2015-12-21 19:58:01 -08:00
extensions refactor(contenteditable): new ContenteditableExtension API 2015-12-21 19:58:01 -08:00
flux refactor(contenteditable): new ContenteditableExtension API 2015-12-21 19:58:01 -08:00
global feat(transactions): Explicit (and faster) database transactions 2015-12-17 11:46:05 -08:00
react-remote bump(electron): 0.34.3 => 0.35.1 2015-11-23 22:09:17 -08:00
services feat(paste): Paste accepts more HTML, paste and match style now available 2015-12-07 15:34:03 -08:00
apm-wrapper.coffee refactor(env): new NylasEnv global 2015-11-17 16:41:20 -08:00
buffered-process.coffee refactor(env): new NylasEnv global 2015-11-17 16:41:20 -08:00
canvas-utils.coffee fix(tray): Retina tray icon with template image for dark menu bar mode 2015-11-17 15:36:52 -08:00
chaos-monkey.coffee Add ChaosMonkey to test misbehaving servers 2015-10-09 09:37:56 -07:00
chrome-user-agent-stylesheet-string.coffee feat(composer): sanitizes and inlines CSS styles for replies and fwd 2015-09-01 11:53:38 -07:00
clipboard.coffee bump(electron): 0.34.3 => 0.35.1 2015-11-23 22:09:17 -08:00
color.coffee refactor(env): new NylasEnv global 2015-11-17 16:41:20 -08:00
command-installer.coffee refactor(env): new NylasEnv global 2015-11-17 16:41:20 -08:00
command-registry.coffee refactor(env): new NylasEnv global 2015-11-17 16:41:20 -08:00
compile-cache.js fix(compile-cache): Add .jsx extension to be transbiled using babel 2015-11-18 12:35:37 -08:00
component-registry.coffee update(extensions): Rename DraftStoreExtension and MessageStoreExtension 2015-11-30 16:08:05 -08:00
config-schema.coffee update(tray): Show 'Open Inbox' tray menu option and option to disable 2015-12-20 21:32:59 -08:00
config-utils.js refactor(utils): switch to regular underscore 2015-05-19 16:06:59 -07:00
config.coffee refactor(env): new NylasEnv global 2015-11-17 16:41:20 -08:00
database-object-registry.coffee bump(electron): 0.34.3 => 0.35.1 2015-11-23 22:09:17 -08:00
deprecate-utils.coffee fix(warnings): Remove deprecate warnings from specs 2015-12-13 23:32:24 -08:00
dom-utils.coffee refactor(contenteditable): new ContenteditableExtension API 2015-12-21 19:58:01 -08:00
error-logger.js refactor(env): new NylasEnv global 2015-11-17 16:41:20 -08:00
extension-registry.es6 refactor(extensions): Move extensions outside of flux/ folder 2015-12-13 23:33:42 -08:00
keymap-manager.coffee refactor(env): new NylasEnv global 2015-11-17 16:41:20 -08:00
keymap-utils.coffee fix(keymaps): Small tweaks to fix broken key behaviors 2015-11-13 16:05:40 -08:00
launch-services.coffee Fix default mail client detection on Linux. 2015-10-05 03:49:52 -07:00
less-compile-cache.coffee feat(spec): add config dir to integration specs 2015-12-10 10:52:20 -05:00
mail-view-filter.coffee feat(sidebar): Add sidebar controls to add and remove categories 2015-11-23 19:43:56 -08:00
menu-helpers.coffee refactor(utils): switch to regular underscore 2015-05-19 16:06:59 -07:00
menu-manager.coffee bump(electron): 0.34.3 => 0.35.1 2015-11-23 22:09:17 -08:00
module-cache.coffee refactor(env): new NylasEnv global 2015-11-17 16:41:20 -08:00
native-notifications.coffee fix(docs): fix docs so they compile properly. 2015-11-17 15:48:59 -08:00
nylas-env.coffee fix(onboarding): AccountStore only listens to changes to account obj when window 2015-12-11 12:01:25 -08:00
nylas-spellchecker.coffee fix(spellcheck): let win < 8 fallback to hunspell 2015-12-11 16:41:41 -05:00
package-manager.coffee refactor(env): new NylasEnv global 2015-11-17 16:41:20 -08:00
package.coffee feat(theme-selector): Add theme selector to preferences page 2015-12-15 10:29:58 -08:00
priority-ui-coordinator.coffee refactor(utils): switch to regular underscore 2015-05-19 16:06:59 -07:00
regexp-utils.coffee fix email validation 2015-10-21 10:04:22 -07:00
scope-descriptor.coffee refactor(env): new NylasEnv global 2015-11-17 16:41:20 -08:00
scoped-properties.coffee refactor(env): new NylasEnv global 2015-11-17 16:41:20 -08:00
serializable-registry.coffee fix(tasks): don't continue if dependent task fails 2015-10-21 10:33:43 -07:00
sheet-container.cjsx refactor(env): new NylasEnv global 2015-11-17 16:41:20 -08:00
sheet-toolbar.cjsx fix(menu): On Win32, display autoupdate / debug toggle in menu 2015-12-01 17:00:11 -08:00
sheet.cjsx refactor(env): new NylasEnv global 2015-11-17 16:41:20 -08:00
sound-registry.coffee refactor(env): new NylasEnv global 2015-11-17 16:41:20 -08:00
space-pen-extensions.coffee refactor(env): new NylasEnv global 2015-11-17 16:41:20 -08:00
space-pen-utils.js refactor(utils): switch to regular underscore 2015-05-19 16:06:59 -07:00
style-manager.coffee refactor(env): new NylasEnv global 2015-11-17 16:41:20 -08:00
styles-element.coffee refactor(env): new NylasEnv global 2015-11-17 16:41:20 -08:00
subscriber-mixin.coffee
task-bootstrap.coffee feat(counts): Unread counts for all folders and labels across all accounts 2015-11-23 17:12:22 -08:00
task-registry.coffee refactor(models): Enables 3rd party plugins to add Models & Tasks 2015-08-19 16:25:56 -07:00
task.coffee feat(counts): Unread counts for all folders and labels across all accounts 2015-11-23 17:12:22 -08:00
theme-manager.coffee feat(theme-selector): Add theme selector to preferences page 2015-12-15 10:29:58 -08:00
theme-package.coffee feat(theme-selector): Add theme selector to preferences page 2015-12-15 10:29:58 -08:00
undo-manager.coffee fix(composer): support Chinese & others - handle composition events 2015-10-30 20:03:33 -04:00
window-bootstrap.coffee fix(bluebird): setImmediate > MutationObserver 2015-12-11 11:56:22 -08:00
window-bridge.coffee fix(serialization): Inflate / deflate JSON from database with registered object system 2015-12-08 15:14:43 -08:00
window-event-handler.coffee fix(contextualmenu): Disable for non-selectable inputs 2015-12-11 11:55:31 -08:00
window-secondary-bootstrap.coffee fix(bluebird): setImmediate > MutationObserver 2015-12-11 11:56:22 -08:00
window-thin-bootstrap.coffee fix(*): Fix for "apply is not a function" lost in revert of e275f35 2015-12-10 14:12:16 -08:00
window.coffee