# 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'
