PageSourceSearch

https://felicia.md/local/templates/aspro-lite/components/bitrix/menu/header/script.js

js felicia.md collected 2026-10-04 02:54:05 UTC 4,552 bytes, 147 lines download raw bytes

1$(document).ready(function () {
2  $(document).on(
3    "click",
4    ".header-menu__wide-submenu-item-inner .toggle_block",
5    function (e) {
6      e.preventDefault();
7      var _this = $(this),
8        menu = _this
9          .closest(".header-menu__wide-submenu-item-inner")
10          .find("> .submenu-wrapper");
11
12      if (!_this.hasClass("clicked")) {
13        _this.addClass("clicked");
14
15        menu.slideToggle(150, function () {
16          _this.removeClass("clicked");
17        });
18
19        _this
20          .closest(".header-menu__wide-submenu-item-inner")
21          .toggleClass("opened");
22      }
23    }
24  );
25
26  $(document).on(
27    "click",
28    ".header-menu__wide-submenu-item--more_items",
29    function (e) {
30      e.stopImmediatePropagation();
31
32      var _this = $(this);
33      var bOpened = _this.hasClass("opened");
34      var childSpan = _this.find("span");
35      var childSvg = childSpan.find(".svg");
36      var parent = _this.closest(".header-menu__wide-submenu");
37      var collapsed = parent.find(".collapsed");
38      var useDelimetr = parent.hasClass("header-menu__wide-submenu--delimiter");
39      var lastSeparator = parent.find(".last-visible");
40
41      if (collapsed.length) {
42        if (useDelimetr) {
43          collapsed.fadeToggle(200);
44          if (lastSeparator.length) lastSeparator.fadeToggle(200);
45        } else {
46          collapsed.slideToggle(200);
47        }
48
49        if (bOpened) {
50          childSpan.text(BX.message("SHOW") + " ").append(childSvg);
51        } else {
52          childSpan.text(BX.message("HIDE") + " ").append(childSvg);
53        }
54        _this.toggleClass("opened");
55      }
56    }
57  );
58
59  $(document).on("click", ".header-menu__link--only-catalog", function (e) {
60    e.preventDefault();
61    let catalogButton = $(this);
62    let curSvg = catalogButton.find("use").attr("xlink:href");
63    if (catalogButton.hasClass("opened")) {
64      catalogButton.removeClass("opened");
65      catalogButton
66        .find("use")
67        .attr("xlink:href", curSvg.replace("#close", "#burger"));
68    } else {
69      catalogButton.addClass("opened");
70      catalogButton
71        .find("use")
72        .attr("xlink:href", curSvg.replace("#burger", "#close"));
73      onlyCatalogMenuOpen(catalogButton);
74    }
75  });
76
77  $(document).on("click", "body", function (e) {
78    let catalogButton = $(".header-menu__link--only-catalog.opened");
79
80    if (
81      catalogButton.length &&
82      !$(e.target).closest(".header-menu__wrapper").length
83    ) {
84      onlyCatalogMenuClose();
85    }
86  });
87
88  onlyCatalogMenuClose = function () {
89    let catalogButton = $(".header-menu__link--only-catalog.opened");
90
91    if (catalogButton.length) {
92      let curSvg = catalogButton.find("use").attr("xlink:href");
93      catalogButton.removeClass("opened");
94      catalogButton
95        .find("use")
96        .attr("xlink:href", curSvg.replace("#close", "#burger"));
97    }
98  };
99
100  onlyCatalogMenuOpen = function (catalogButton) {
101    var menuNLO = catalogButton.siblings("[data-nlo]");
102
103    if (menuNLO.length) {
104      if (!menuNLO.hasClass("nlo-loadings")) {
105        menuNLO.addClass("nlo-loadings");
106        var menuCatalog = $(
107          ".header-menu__link--only-catalog ~ .header-menu__dropdown-menu"
108        );
109        if (menuCatalog.length) {
110          menuNLO.replaceWith(menuCatalog.clone());
111          catalogButton.parent().find(".aim-init").removeClass("aim-init");
112          if (funcDefined("InitMenuNavigationAim")) {
113            InitMenuNavigationAim();
114          }
115        } else {
116          var buttonTitle = catalogButton.find(".header-menu__title");
117          buttonTitle.addClass("loadings");
118          $.ajax({
119            data: { nlo: menuNLO.attr("data-nlo") },
120            error: function () {
121              menuNLO.removeClass("nlo-loadings");
122            },
123            complete: function (jqXHR, textStatus) {
124              if (textStatus === "success" || jqXHR.status == 404) {
125                var ob = BX.processHTML($.trim(jqXHR.responseText));
126                BX.ajax.processScripts(ob.SCRIPT);
127                menuNLO.replaceWith(ob.HTML);
128                if (funcDefined("InitMenuNavigationAim")) {
129                  InitMenuNavigationAim();
130                }
131              }
132              buttonTitle.removeClass("loadings");
133            },
134          });
135        }
136      }
137    }
138  };
139
140  BX.addCustomEvent("onAjaxChangeWidgetValue", function (eventdata) {
141    if (eventdata && eventdata["NAME"] === "PAGE_WIDTH") {
142      if (funcDefined("CheckTopMenuDotted")) {
143        CheckTopMenuDotted();
144      }
145    }
146  });
147});

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.