mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-01-04 07:10:06 +08:00
365fe400f7
Summary: tests on the schemas build input elements form builder pulls data grouping by row salesforce object store salesforce api logic successfully pulling salesforce objects into db object store saving to db refactoring tokenizing text field full documented tokenizing text field with specs linking in object picker component converting generated form to a controlled input form change handlers for controlled inputs Salesforce object creator store new way of opening windows removed atom.state.mode create new salesforce object creator in new window form creator loading in popup with generated form generated form renders select and multiselcet and textarea add checkbox creating related objects windnows know when others close remove debugger statements form submission converting data for salesforce posting hot window loading new hot window registration hot loading windows actions for listening to salesforce objects created generated form errors error handling for salesforce object creator rename saleforce object form store display errors to form submitting state passed through properly posts objects to Salesforce change name to salesforce object form add deep clone use formItemEach styling for Salesforce form creator salesforce required fields come back and populate form generated form loads related objects into fields remove console logs and fix sales schema adapter test fix task queue and formbuilder specs fix action bridge spec fix tokenizing text field spec fix draft store and tokenizing proptypes fix linter issues fix tokenizing text field bug rename to refresh window props remove console.log Test Plan: edgehill --test Reviewers: bengotow Reviewed By: bengotow Differential Revision: https://review.inboxapp.com/D1425
243 lines
5.6 KiB
Text
243 lines
5.6 KiB
Text
# Email-specific core key-mappings
|
|
#
|
|
# There are additional mappings in <platform>.cson files that bind
|
|
# menu items. In the future, we should break these into files like:
|
|
# darwin-gmail.cson, darwin-macmail.cson, win32-gmail.cson...
|
|
|
|
'body':
|
|
'c' : 'application:new-message' # Gmail
|
|
'/' : 'application:focus-search' # Gmail
|
|
|
|
'r' : 'application:reply' # Gmail
|
|
'R' : 'application:reply-all' # Edgehill
|
|
'a' : 'application:reply-all' # Gmail
|
|
'f' : 'application:forward' # Gmail
|
|
|
|
'escape': 'application:pop-sheet'
|
|
'u' : 'application:pop-sheet' # Gmail
|
|
|
|
'k' : 'core:previous-item' # Gmail
|
|
'up' : 'core:previous-item' # Mac mail
|
|
'j' : 'core:next-item' # Gmail
|
|
'down' : 'core:next-item' # Mac mail
|
|
']' : 'core:remove-and-previous' # Gmail
|
|
'[' : 'core:remove-and-next' # Gmail
|
|
'e' : 'core:remove-item' # Gmail
|
|
'delete' : 'core:remove-item' # Mac mail
|
|
'backspace': 'core:remove-item' # Outlook
|
|
'enter' : 'core:focus-item'
|
|
'x' : 'core:select-item'
|
|
|
|
# Default cross-platform core behaviors
|
|
'left': 'core:move-left'
|
|
'right': 'core:move-right'
|
|
'shift-up': 'core:select-up'
|
|
'shift-down': 'core:select-down'
|
|
'shift-left': 'core:select-left'
|
|
'shift-right': 'core:select-right'
|
|
'shift-pageup': 'core:select-page-up'
|
|
'shift-pagedown': 'core:select-page-down'
|
|
'delete': 'core:delete'
|
|
'shift-delete': 'core:cut'
|
|
|
|
# Inputs are native by default.
|
|
# Also make sure not to catch anything intended for a webview
|
|
'body input, body textarea, body *[contenteditable], body webview':
|
|
'up': 'native!'
|
|
'left': 'native!'
|
|
'down': 'native!'
|
|
'right': 'native!'
|
|
'cmd-up': 'native!'
|
|
'cmd-left': 'native!'
|
|
'cmd-down': 'native!'
|
|
'cmd-right': 'native!'
|
|
'ctrl-up': 'native!'
|
|
'ctrl-left': 'native!'
|
|
'ctrl-down': 'native!'
|
|
'ctrl-right': 'native!'
|
|
'shift-up': 'native!'
|
|
'shift-left': 'native!'
|
|
'shift-down': 'native!'
|
|
'shift-right': 'native!'
|
|
'escape': 'native!'
|
|
'pageup': 'native!'
|
|
'pagedown': 'native!'
|
|
'shift-pageup': 'native!'
|
|
'shift-pagedown': 'native!'
|
|
'enter': 'native!'
|
|
'cmd-enter': 'native!'
|
|
'ctrl-enter': 'native!'
|
|
'shift-enter': 'native!'
|
|
'backspace': 'native!'
|
|
'shift-backspace': 'native!'
|
|
'delete': 'native!'
|
|
'shift-delete': 'native!'
|
|
'cmd-y': 'native!'
|
|
'cmd-z': 'native!'
|
|
'cmd-Z': 'native!'
|
|
'cmd-x': 'native!'
|
|
'cmd-X': 'native!'
|
|
'cmd-c': 'native!'
|
|
'cmd-C': 'native!'
|
|
'cmd-v': 'native!'
|
|
'cmd-V': 'native!'
|
|
'cmd-a': 'native!'
|
|
'cmd-A': 'native!'
|
|
'cmd-b': 'native!'
|
|
'cmd-i': 'native!'
|
|
'cmd-u': 'native!'
|
|
'ctrl-y': 'native!'
|
|
'ctrl-z': 'native!'
|
|
'ctrl-Z': 'native!'
|
|
'ctrl-x': 'native!'
|
|
'ctrl-X': 'native!'
|
|
'ctrl-c': 'native!'
|
|
'ctrl-C': 'native!'
|
|
'ctrl-v': 'native!'
|
|
'ctrl-V': 'native!'
|
|
'ctrl-a': 'native!'
|
|
'ctrl-A': 'native!'
|
|
'ctrl-b': 'native!'
|
|
'ctrl-i': 'native!'
|
|
'ctrl-u': 'native!'
|
|
'a': 'native!'
|
|
'b': 'native!'
|
|
'c': 'native!'
|
|
'd': 'native!'
|
|
'e': 'native!'
|
|
'f': 'native!'
|
|
'g': 'native!'
|
|
'h': 'native!'
|
|
'i': 'native!'
|
|
'j': 'native!'
|
|
'k': 'native!'
|
|
'l': 'native!'
|
|
'm': 'native!'
|
|
'n': 'native!'
|
|
'o': 'native!'
|
|
'p': 'native!'
|
|
'q': 'native!'
|
|
'r': 'native!'
|
|
's': 'native!'
|
|
't': 'native!'
|
|
'u': 'native!'
|
|
'v': 'native!'
|
|
'w': 'native!'
|
|
'x': 'native!'
|
|
'y': 'native!'
|
|
'z': 'native!'
|
|
'A': 'native!'
|
|
'B': 'native!'
|
|
'C': 'native!'
|
|
'D': 'native!'
|
|
'E': 'native!'
|
|
'F': 'native!'
|
|
'G': 'native!'
|
|
'H': 'native!'
|
|
'I': 'native!'
|
|
'J': 'native!'
|
|
'K': 'native!'
|
|
'L': 'native!'
|
|
'M': 'native!'
|
|
'N': 'native!'
|
|
'O': 'native!'
|
|
'P': 'native!'
|
|
'Q': 'native!'
|
|
'R': 'native!'
|
|
'S': 'native!'
|
|
'T': 'native!'
|
|
'U': 'native!'
|
|
'V': 'native!'
|
|
'W': 'native!'
|
|
'X': 'native!'
|
|
'Y': 'native!'
|
|
'Z': 'native!'
|
|
'1': 'native!'
|
|
'2': 'native!'
|
|
'3': 'native!'
|
|
'4': 'native!'
|
|
'5': 'native!'
|
|
'6': 'native!'
|
|
'7': 'native!'
|
|
'8': 'native!'
|
|
'9': 'native!'
|
|
'0': 'native!'
|
|
'~': 'native!'
|
|
'!': 'native!'
|
|
'@': 'native!'
|
|
'#': 'native!'
|
|
'$': 'native!'
|
|
'%': 'native!'
|
|
'^': 'native!'
|
|
'&': 'native!'
|
|
'*': 'native!'
|
|
'(': 'native!'
|
|
')': 'native!'
|
|
'-': 'native!'
|
|
'_': 'native!'
|
|
'=': 'native!'
|
|
'+': 'native!'
|
|
'[': 'native!'
|
|
'{': 'native!'
|
|
']': 'native!'
|
|
'}': 'native!'
|
|
'\\': 'native!'
|
|
'|': 'native!'
|
|
';': 'native!'
|
|
':': 'native!'
|
|
'\'': 'native!'
|
|
'"': 'native!'
|
|
'<': 'native!'
|
|
',': 'native!'
|
|
'>': 'native!'
|
|
'.': 'native!'
|
|
'?': 'native!'
|
|
'/': 'native!'
|
|
|
|
'body input, body textarea, body *[contenteditable]':
|
|
'tab': 'core:focus-next'
|
|
'shift-tab': 'core:focus-previous'
|
|
|
|
'body webview':
|
|
'tab': 'native!'
|
|
'shift-tab': 'native!'
|
|
|
|
|
|
|
|
# For menus
|
|
'body .menu, body .menu, body .menu input':
|
|
'up': 'menu:move-up'
|
|
'down': 'menu:move-down'
|
|
'enter': 'menu:enter'
|
|
|
|
# For Popover Component
|
|
'body .popover-container':
|
|
'escape': 'popover:close'
|
|
|
|
# Tokenizing Text fields
|
|
|
|
# The default state. There's no input in the text field and there are no
|
|
# autocomplete suggestions
|
|
'.tokenizing-field input':
|
|
'backspace': 'native!'
|
|
'delete': 'native!'
|
|
'tab': 'native!'
|
|
',': 'native!'
|
|
|
|
'.tokenizing-field.empty input':
|
|
'backspace': 'tokenizing-field:remove'
|
|
'delete': 'tokenizing-field:remove'
|
|
|
|
# When we found a name to suggest
|
|
'.tokenizing-field.has-suggestions input':
|
|
',': 'tokenizing-field:add-suggestion'
|
|
'tab': 'tokenizing-field:add-suggestion'
|
|
'enter': 'tokenizing-field:add-suggestion'
|
|
'escape': 'tokenizing-field:cancel'
|
|
|
|
# When there is some text in the input field, but we have no suggestion
|
|
'.tokenizing-field:not(.has-suggestions) input':
|
|
'tab': 'native!'
|
|
',': 'tokenizing-field:add-input-value'
|
|
'enter': 'tokenizing-field:add-input-value'
|
|
'escape': 'tokenizing-field:cancel'
|