/**
- * @file
- * A Backbone View that provides keyboard interaction for a contextual link.
- */
+* DO NOT EDIT THIS FILE.
+* See the following change record for more information,
+* https://www.drupal.org/node/2815083
+* @preserve
+**/
(function (Drupal, Backbone) {
-
- 'use strict';
-
- Drupal.contextual.KeyboardView = Backbone.View.extend(/** @lends Drupal.contextual.KeyboardView# */{
-
- /**
- * @type {object}
- */
+ Drupal.contextual.KeyboardView = Backbone.View.extend({
events: {
'focus .trigger': 'focus',
'focus .contextual-links a': 'focus',
- 'blur .trigger': function () { this.model.blur(); },
- 'blur .contextual-links a': function () {
- // Set up a timeout to allow a user to tab between the trigger and the
- // contextual links without the menu dismissing.
+ 'blur .trigger': function blurTrigger() {
+ this.model.blur();
+ },
+ 'blur .contextual-links a': function blurContextualLinksA() {
var that = this;
this.timer = window.setTimeout(function () {
that.model.close().blur();
}
},
- /**
- * Provides keyboard interaction for a contextual link.
- *
- * @constructs
- *
- * @augments Backbone.View
- */
- initialize: function () {
-
- /**
- * The timer is used to create a delay before dismissing the contextual
- * links on blur. This is only necessary when keyboard users tab into
- * contextual links without edit mode (i.e. without TabbingManager).
- * That means that if we decide to disable tabbing of contextual links
- * without edit mode, all this timer logic can go away.
- *
- * @type {NaN|number}
- */
+ initialize: function initialize() {
this.timer = NaN;
},
-
- /**
- * Sets focus on the model; Clears the timer that dismisses the links.
- */
- focus: function () {
- // Clear the timeout that might have been set by blurring a link.
+ focus: function focus() {
window.clearTimeout(this.timer);
this.model.focus();
}
-
});
-
-})(Drupal, Backbone);
+})(Drupal, Backbone);
\ No newline at end of file