Chris@0
|
1 /**
|
Chris@0
|
2 * DO NOT EDIT THIS FILE.
|
Chris@0
|
3 * See the following change record for more information,
|
Chris@0
|
4 * https://www.drupal.org/node/2815083
|
Chris@0
|
5 * @preserve
|
Chris@0
|
6 **/
|
Chris@0
|
7
|
Chris@0
|
8 (function (Drupal, Backbone, Modernizr) {
|
Chris@0
|
9 Drupal.contextual.VisualView = Backbone.View.extend({
|
Chris@0
|
10 events: function events() {
|
Chris@0
|
11 var touchEndToClick = function touchEndToClick(event) {
|
Chris@0
|
12 event.preventDefault();
|
Chris@0
|
13 event.target.click();
|
Chris@0
|
14 };
|
Chris@0
|
15 var mapping = {
|
Chris@0
|
16 'click .trigger': function clickTrigger() {
|
Chris@0
|
17 this.model.toggleOpen();
|
Chris@0
|
18 },
|
Chris@0
|
19 'touchend .trigger': touchEndToClick,
|
Chris@0
|
20 'click .contextual-links a': function clickContextualLinksA() {
|
Chris@0
|
21 this.model.close().blur();
|
Chris@0
|
22 },
|
Chris@0
|
23 'touchend .contextual-links a': touchEndToClick
|
Chris@0
|
24 };
|
Chris@0
|
25
|
Chris@0
|
26 if (!Modernizr.touchevents) {
|
Chris@0
|
27 mapping.mouseenter = function () {
|
Chris@0
|
28 this.model.focus();
|
Chris@0
|
29 };
|
Chris@0
|
30 }
|
Chris@0
|
31 return mapping;
|
Chris@0
|
32 },
|
Chris@0
|
33 initialize: function initialize() {
|
Chris@0
|
34 this.listenTo(this.model, 'change', this.render);
|
Chris@0
|
35 },
|
Chris@0
|
36 render: function render() {
|
Chris@0
|
37 var isOpen = this.model.get('isOpen');
|
Chris@0
|
38
|
Chris@0
|
39 var isVisible = this.model.get('isLocked') || this.model.get('regionIsHovered') || isOpen;
|
Chris@0
|
40
|
Chris@0
|
41 this.$el.toggleClass('open', isOpen).find('.trigger').toggleClass('visually-hidden', !isVisible);
|
Chris@0
|
42
|
Chris@0
|
43 if ('isOpen' in this.model.changed) {
|
Chris@0
|
44 this.$el.closest('.contextual-region').find('.contextual .trigger:not(:first)').toggle(!isOpen);
|
Chris@0
|
45 }
|
Chris@0
|
46
|
Chris@0
|
47 return this;
|
Chris@0
|
48 }
|
Chris@0
|
49 });
|
Chris@0
|
50 })(Drupal, Backbone, Modernizr); |