PageSourceSearch

https://departement974.fr/core/modules/views/js/ajax_view.js?v=9.4.8

js departement974.fr collected 2026-10-01 12:15:19 UTC 4,399 bytes, 127 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, drupalSettings) {
9  Drupal.behaviors.ViewsAjaxView = {};
10
11  Drupal.behaviors.ViewsAjaxView.attach = function (context, settings) {
12    if (settings && settings.views && settings.views.ajaxViews) {
13      var ajaxViews = settings.views.ajaxViews;
14      Object.keys(ajaxViews || {}).forEach(function (i) {
15        Drupal.views.instances[i] = new Drupal.views.ajaxView(ajaxViews[i]);
16      });
17    }
18  };
19
20  Drupal.behaviors.ViewsAjaxView.detach = function (context, settings, trigger) {
21    if (trigger === 'unload') {
22      if (settings && settings.views && settings.views.ajaxViews) {
23        var ajaxViews = settings.views.ajaxViews;
24        Object.keys(ajaxViews || {}).forEach(function (i) {
25          var selector = ".js-view-dom-id-".concat(ajaxViews[i].view_dom_id);
26
27          if ($(selector, context).length) {
28            delete Drupal.views.instances[i];
29            delete settings.views.ajaxViews[i];
30          }
31        });
32      }
33    }
34  };
35
36  Drupal.views = {};
37  Drupal.views.instances = {};
38
39  Drupal.views.ajaxView = function (settings) {
40    var selector = ".js-view-dom-id-".concat(settings.view_dom_id);
41    this.$view = $(selector);
42    var ajaxPath = drupalSettings.views.ajax_path;
43
44    if (ajaxPath.constructor.toString().indexOf('Array') !== -1) {
45      ajaxPath = ajaxPath[0];
46    }
47
48    var queryString = window.location.search || '';
49
50    if (queryString !== '') {
51      queryString = queryString.slice(1).replace(/q=[^&]+&?|&?render=[^&]+/, '');
52
53      if (queryString !== '') {
54        queryString = (/\?/.test(ajaxPath) ? '&' : '?') + queryString;
55      }
56    }
57
58    this.element_settings = {
59      url: ajaxPath + queryString,
60      submit: settings,
61      setClick: true,
62      event: 'click',
63      selector: selector,
64      progress: {
65        type: 'fullscreen'
66      }
67    };
68    this.settings = settings;
69    this.$exposed_form = $("form#views-exposed-form-".concat(settings.view_name.replace(/_/g, '-'), "-").concat(settings.view_display_id.replace(/_/g, '-')));
70    once('exposed-form', this.$exposed_form).forEach($.proxy(this.attachExposedFormAjax, this));
71    once('ajax-pager', this.$view.filter($.proxy(this.filterNestedViews, this))).forEach($.proxy(this.attachPagerAjax, this));
72    var selfSettings = $.extend({}, this.element_settings, {
73      event: 'RefreshView',
74      base: this.selector,
75      element: this.$view.get(0)
76    });
77    this.refreshViewAjax = Drupal.ajax(selfSettings);
78  };
79
80  Drupal.views.ajaxView.prototype.attachExposedFormAjax = function () {
81    var that = this;
82    this.exposedFormAjax = [];
83    $('input[type=submit], button[type=submit], input[type=image]', this.$exposed_form).not('[data-drupal-selector=edit-reset]').each(function (index) {
84      var selfSettings = $.extend({}, that.element_settings, {
85        base: $(this).attr('id'),
86        element: this
87      });
88      that.exposedFormAjax[index] = Drupal.ajax(selfSettings);
89    });
90  };
91
92  Drupal.views.ajaxView.prototype.filterNestedViews = function () {
93    return !this.$view.parents('.view').length;
94  };
95
96  Drupal.views.ajaxView.prototype.attachPagerAjax = function () {
97    this.$view.find('ul.js-pager__items > li > a, th.views-field a, .attachment .views-summary a').each($.proxy(this.attachPagerLinkAjax, this));
98  };
99
100  Drupal.views.ajaxView.prototype.attachPagerLinkAjax = function (id, link) {
101    var $link = $(link);
102    var viewData = {};
103    var href = $link.attr('href');
104    $.extend(viewData, this.settings, Drupal.Views.parseQueryString(href), Drupal.Views.parseViewArgs(href, this.settings.view_base_path));
105    var selfSettings = $.extend({}, this.element_settings, {
106      submit: viewData,
107      base: false,
108      element: link
109    });
110    this.pagerAjax = Drupal.ajax(selfSettings);
111  };
112
113  Drupal.AjaxCommands.prototype.viewsScrollTop = function (ajax, response) {
114    var offset = $(response.selector).offset();
115    var scrollTarget = response.selector;
116
117    while ($(scrollTarget).scrollTop() === 0 && $(scrollTarget).parent()) {
118      scrollTarget = $(scrollTarget).parent();
119    }
120
121    if (offset.top - 10 < $(scrollTarget).scrollTop()) {
122      $(scrollTarget).animate({
123        scrollTop: offset.top - 10
124      }, 500);
125    }
126  };
127})(jQuery, Drupal, drupalSettings);

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.