PageSourceSearch

https://www.ffbatiment.fr/-/media/Themes/FFB/FFBatiment/FFBatiment…=-1&hash=5954FD224B299694633006E45D742F97

js ffbatiment.fr collected 2026-09-24 18:18:34 UTC 3,214 bytes, 94 lines download raw bytes

1jQuery.noConflict();
2jQuery(document).ready(function ($) {
3  $(".section-component").each(function () {
4    var component = $(this);
5    var title = component.find(".heading > .field-title > .field-title");
6    var userNameEl = $("[data-user-name]").first();
7    var showUserName = component.hasClass("show-user-name");
8    var userCompanyEl = $("[data-company-name]").first();
9    var showCompanyName = component.hasClass("show-company-name");
10
11    if (showUserName && userNameEl.length > 0 && notOnPageEditor()) {
12      var userName = userNameEl.data("user-name");
13      title.html("".concat(title.text(), " <span class=\"user-name\">").concat(userName, "</span>"));
14    } else if (showCompanyName && userCompanyEl.length > 0 && notOnPageEditor()) {
15      var companyName = userCompanyEl.data("company-name");
16      title.html("".concat(title.text(), " <span class=\"user-name\">").concat(companyName, "</span>"));
17    }
18  });
19  $(".section-accordion").each(function () {
20    var component = $(this);
21    var heading = component.find(".heading");
22    var arrow = heading.find(".custom-arrow");
23    var content = component.find(".container:first > .row:nth-child(2)");
24
25    function contentObserver() {
26      var nodes = content.find(">
26 div:first");
27      var MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
28      var obsConfig = {
29        childList: true,
30        subtree: true,
31        characterData: false,
32        characterDataOldValue: false,
33        attributes: false,
34        attributeOldValue: false
35      };
36      formObserver = new MutationObserver(mutationHandler);
37      nodes.each(function () {
38        formObserver.observe(this, obsConfig);
39      });
40
41      function mutationHandler(mutationRecords) {
42        if (component.hasClass("hidden")) {
43          content.css({
44            'height': '0'
45          });
46        } else {
47          content.css({
48            'height': content.find("> div:first").outerHeight(true)
49          });
50        }
51      }
52    }
53
54    heading.click(function () {
55      if (component.hasClass("hidden")) {
56        component.removeClass("hidden");
57        arrow.addClass("custom-arrow-anim-up");
58        content.css({
59          'height': content.find("> div:first").outerHeight(true)
60        });
61      } else {
62        arrow.removeClass("custom-arrow-anim-up");
63        component.addClass("hidden");
64        content.css({
65          'height': '0'
66        });
67      }
68    });
69    contentObserver();
70  });
71  $(".section-search-result-title").each(function () {
72    var component = $(this);
73    var searchTitle = $("header .search-box-input.tt-input").val();
74    var titleField = component.find("div.field-title > *:first-child");
75
76    function setTitle(title) {
77      if (title != "") {
78        titleField.text(title);
79        component.addClass("visible");
80        component.removeClass("hidden");
81      } else {
82        titleField.text("");
83        component.addClass("hidden");
84        component.removeClass("Visible");
85      }
86    }
87
88    XA.component.search.vent.on("results-loaded", function (results) {
89      searchTitle = $("header .search-box-input.tt-input").val();
90      setTitle(searchTitle);
91    });
92    setTitle(searchTitle);
93  });
94});

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.