UNPKG

spincycle

Version:

A reactive message router and object manager that lets clients subscribe to object property changes on the server

82 lines (66 loc) 2.12 kB
<!-- @license Copyright (c) 2015 The Polymer Project Authors. All rights reserved. This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as part of the polymer project is also subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt --> <link rel="import" href="../polymer/polymer.html"> <link rel="import" href="iron-menu-behavior.html"> <script> /** * `Polymer.IronMenubarBehavior` implements accessible menubar behavior. * * @polymerBehavior Polymer.IronMenubarBehavior */ Polymer.IronMenubarBehaviorImpl = { hostAttributes: { 'role': 'menubar' }, keyBindings: { 'left': '_onLeftKey', 'right': '_onRightKey' }, _onUpKey: function(event) { this.focusedItem.click(); event.detail.keyboardEvent.preventDefault(); }, _onDownKey: function(event) { this.focusedItem.click(); event.detail.keyboardEvent.preventDefault(); }, get _isRTL() { return window.getComputedStyle(this)['direction'] === 'rtl'; }, _onLeftKey: function(event) { if (this._isRTL) { this._focusNext(); } else { this._focusPrevious(); } event.detail.keyboardEvent.preventDefault(); }, _onRightKey: function(event) { if (this._isRTL) { this._focusPrevious(); } else { this._focusNext(); } event.detail.keyboardEvent.preventDefault(); }, _onKeydown: function(event) { if (this.keyboardEventMatchesKeys(event, 'up down left right esc')) { return; } // all other keys focus the menu item starting with that character this._focusWithKeyboardEvent(event); } }; /** @polymerBehavior Polymer.IronMenubarBehavior */ Polymer.IronMenubarBehavior = [ Polymer.IronMenuBehavior, Polymer.IronMenubarBehaviorImpl ]; </script>