PageSourceSearch

https://www.caminsdedinosaures.com/modules/contrib/pagerer/js/mini.js?v=8.9.20

js caminsdedinosaures.com collected 2026-10-04 04:28:11 UTC 5,249 bytes, 166 lines download raw bytes

1/**
2 * @file
3 * Pagerer mini pager scripts.
4 */
5
6(function ($) {
7
8  'use strict';
9
10  Drupal.behaviors.pagererMini = {
11
12    attach: function (context, settings) {
13
14      /**
15       * Pagerer page input box event binding.
16       */
17      $('.pagerer-page', context).once('pagerer').each(function (index) {
18        Drupal.pagerer.state.isRelocating = false;
19        this.pagererState = Drupal.pagerer.evalState(this);
20        // Item ranges do not really work on widget.
21        if (this.pagererState.display === 'item_ranges') {
22          this.pagererState.display = 'items';
23        }
24        // Page number formatting does not work in widget.
25        if (this.pagererState.display === 'items') {
26          this.pagererState.pageTag = {
27            page_current: '@item',
28            page_previous: '@item',
29            page_next: '@item'
30          };
31        }
32        else {
33          this.pagererState.pageTag = {
34            page_current: '@number',
35            page_previous: '@number',
36            page_next: '@number'
37          };
38        }
39        // Adjust width of the input box.
40        if (this.pagererState.widgetResize) {
41          var valueLength = String(Drupal.pagerer.indexToTag(this.pagererState.total - 1, this.pagererState, 'page')).length;
42          $(this).css({
43            width: (valueLength + 1) + '.5em'
44          });
45        }
46        // Adjust the navigation button.
47        if (this.pagererState.widgetButton !== 'no') {
48          var button = $(this).parent().find('.pagerer-page-button');
49          button.css('visibility', 'hidden');
50          if (this.pagererState.widgetButton === 'auto') {
51            var inputHeight = $(this).outerHeight(true);
52            button.css('height', inputHeight + 'px');
53          }
54        }
55      })
56        .on('change', function (event) {
57          // Show the navigation button.
58          $(this).parent().find('.pagerer-page-button').css('visibility', 'visible');
59        })
60        .on('focus', function (event) {
61          Drupal.pagerer.reset();
62          this.select();
63          $(this).addClass('pagerer-page-has-focus');
64        })
65        .on('blur', function (event) {
66          $(this).removeClass('pagerer-page-has-focus');
67        })
68        .on('keydown', function (event) {
69          switch (event.keyCode) {
70            case 13:
71            case 10:
72              // Return key pressed, relocate.
73              var targetPage = Drupal.pagerer.valueToIndex($(this).val(), this);
74              if (targetPage !== this.pagererState.current) {
75                Drupal.pagerer.relocate(this, targetPage);
76              }
77              event.stopPropagation();
78              event.preventDefault();
79              return false;
80
81            case 27:
82              // Escape.
83              $(this).val(Drupal.pagerer.indexToTag(this.pagererState.current, this.pagererState, 'page'));
84              // Hide the navigation button.
85              $(this).parent().find('.pagerer-page-button').css('visibility', 'hidden');
86              return false;
87
88            case 33:
89              // Page up.
90              offsetValue(this, 5);
91              return false;
92
93            case 34:
94              // Page down.
95              offsetValue(this, -5);
96              return false;
97
98            case 35:
99              // End.
100              offsetValue(this, 'last');
101              return false;
102
103            case 36:
104              // Home.
105              offsetValue(this, 'first');
106              return false;
107
108          }
109        });
110
111      /**
112        * Pagerer page button event binding.
113        */
114      $('.pagerer-page-button', context).each(function (index) {
115        $(this).button();
116        $(this).on('click', function (event) {
117          var pageWidget = $(this).parent().find('.pagerer-page').get(0);
118          var targetPage = Drupal.pagerer.valueToIndex($(pageWidget).val(), pageWidget);
119          if (targetPage !== pageWidget.pagererState.current) {
120            $(this).css('visibility', 'hidden');
121            Drupal.pagerer.relocate(pageWidget, targetPage);
122          }
123        });
124      });
125
126      /**
127       * Update value based on an offset.
128       *
129       * @param {HTMLElement} element
130       *   Input box element.
131       * @param {number} offset
132       *   Offset from current value.
133       */
134      function offsetValue(element, offset) {
135        var widgetValue = Drupal.pagerer.valueToIndex($(element).val(), element);
136        var newValue;
137        if (offset === 'first') {
138          newValue = 0;
139        }
140        else if (offset === 'last') {
141          newValue = element.pagererState.total - 1;
142        }
143        else {
144          newValue = widgetValue + offset;
145          if (newValue < 0) {
146            newValue = 0;
147          }
148          else if (newValue >= element.pagererState.total) {
149            newValue = element.pagererState.total - 1;
150          }
151        }
152        if (newValue !== widgetValue) {
153          $(element).val(Drupal.pagerer.indexToTag(newValue, element.pagererState, 'page'));
154          $(element).trigger('change');
155        }
156      }
157
158    },
159
160    detach: function (context, settings) {
161      $('.pagerer-page', context).each(function (index) {
162        Drupal.pagerer.detachState(this);
163      });
164    }
165  };
166})(jQuery);

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.