Sha256: 26198d40998f8159bae27bf1397678a4cc95bc921de5d1445cfa37456e8190b3

Contents?: true

Size: 1014 Bytes

Versions: 5

Compression:

Stored size: 1014 Bytes

Contents

(function() {
  var KEY_TAB = 9;

  pageflow.FocusOutline = pageflow.Object.extend({
    initialize: function(element) {
      this.element = element;
    },

    showOnlyAfterKeyboardInteraction: function() {
      var focusOutline = this;

      this.disable();

      this.element.on('keydown', function(event) {
        if (event.which === KEY_TAB) {
          focusOutline.enable();
        }
      });

      this.element.on('mousedown', function() {
        focusOutline.disable();
      });
    },

    disable: function() {
      if (!this.disabled) {
        this.disabled = true;
        this.element.addClass('disable_focus_outline');
      }
    },

    enable: function() {
      if (this.disabled) {
        this.disabled = false;
        this.element.removeClass('disable_focus_outline');
      }
    }
  });

  pageflow.FocusOutline.setup = function(element) {
    pageflow.focusOutline = new pageflow.FocusOutline(element);
    pageflow.focusOutline.showOnlyAfterKeyboardInteraction();
  };
})();

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
pageflow-0.11.4 app/assets/javascripts/pageflow/focus_outline.js
pageflow-0.11.3 app/assets/javascripts/pageflow/focus_outline.js
pageflow-0.11.2 app/assets/javascripts/pageflow/focus_outline.js
pageflow-0.11.1 app/assets/javascripts/pageflow/focus_outline.js
pageflow-0.11.0 app/assets/javascripts/pageflow/focus_outline.js