Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / web / core / misc / displace.js
1 /**
2 * DO NOT EDIT THIS FILE.
3 * See the following change record for more information,
4 * https://www.drupal.org/node/2815083
5 * @preserve
6 **/
7
8 (function ($, Drupal, debounce) {
9   var offsets = {
10     top: 0,
11     right: 0,
12     bottom: 0,
13     left: 0
14   };
15
16   function getRawOffset(el, edge) {
17     var $el = $(el);
18     var documentElement = document.documentElement;
19     var displacement = 0;
20     var horizontal = edge === 'left' || edge === 'right';
21
22     var placement = $el.offset()[horizontal ? 'left' : 'top'];
23
24     placement -= window['scroll' + (horizontal ? 'X' : 'Y')] || document.documentElement['scroll' + (horizontal ? 'Left' : 'Top')] || 0;
25
26     switch (edge) {
27       case 'top':
28         displacement = placement + $el.outerHeight();
29         break;
30
31       case 'left':
32         displacement = placement + $el.outerWidth();
33         break;
34
35       case 'bottom':
36         displacement = documentElement.clientHeight - placement;
37         break;
38
39       case 'right':
40         displacement = documentElement.clientWidth - placement;
41         break;
42
43       default:
44         displacement = 0;
45     }
46     return displacement;
47   }
48
49   function calculateOffset(edge) {
50     var edgeOffset = 0;
51     var displacingElements = document.querySelectorAll('[data-offset-' + edge + ']');
52     var n = displacingElements.length;
53     for (var i = 0; i < n; i++) {
54       var el = displacingElements[i];
55
56       if (el.style.display === 'none') {
57         continue;
58       }
59
60       var displacement = parseInt(el.getAttribute('data-offset-' + edge), 10);
61
62       if (isNaN(displacement)) {
63         displacement = getRawOffset(el, edge);
64       }
65
66       edgeOffset = Math.max(edgeOffset, displacement);
67     }
68
69     return edgeOffset;
70   }
71
72   function calculateOffsets() {
73     return {
74       top: calculateOffset('top'),
75       right: calculateOffset('right'),
76       bottom: calculateOffset('bottom'),
77       left: calculateOffset('left')
78     };
79   }
80
81   function displace(broadcast) {
82     offsets = calculateOffsets();
83     Drupal.displace.offsets = offsets;
84     if (typeof broadcast === 'undefined' || broadcast) {
85       $(document).trigger('drupalViewportOffsetChange', offsets);
86     }
87     return offsets;
88   }
89
90   Drupal.behaviors.drupalDisplace = {
91     attach: function attach() {
92       if (this.displaceProcessed) {
93         return;
94       }
95       this.displaceProcessed = true;
96
97       $(window).on('resize.drupalDisplace', debounce(displace, 200));
98     }
99   };
100
101   Drupal.displace = displace;
102   $.extend(Drupal.displace, {
103     offsets: offsets,
104
105     calculateOffset: calculateOffset
106   });
107 })(jQuery, Drupal, Drupal.debounce);