PageSourceSearch

https://ump.edu.my/core/misc/displace.js?v=8.6.13

js ump.edu.my collected 2026-10-01 11:39:38 UTC 2,586 bytes, 107 lines download raw bytes

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);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.