PageSourceSearch

https://xn--24-dlc0boz3e.xn--p1ai/bitrix/templates/volt/js/blocks/controls.js

js xn--24-dlc0boz3e.xn--p1ai collected 2026-10-08 16:13:42 UTC 5,838 bytes, 171 lines download raw bytes

1$(document).ready(function () {
2  // dropdown-select
3  $(document).on("click", ".dropdown-select--with-dropdown .dropdown-select__title", function (event) {
4		if (event.target.closest('.delete_filter')) return;
5
6    var _this = $(this),
7      menu = _this.parent().find("> .dropdown-select__list");
8    if (!_this.hasClass("clicked") && menu.length) {
9      _this.addClass("clicked");
10
11      if (_this.attr('data-expanded-prop')) {
12        _this.removeAttr('data-expanded-prop');
13      }
14
15      _this.toggleClass("opened", menu.is(':hidden'));
16
17      menu.stop().slideToggle(100, function () {
18        _this.removeClass("clicked");
19      });
20    }
21  });
22
23  // dropdown-select change item
24  $(document).on("click", ".dropdown-select__list .mixitup-item", function () {
25    var $select = $(this).closest('.dropdown-select');
26    $select.find('.dropdown-select__title span').text($(this).text());
27    $select.find('.dropdown-select__title.opened').click();
28  });
29
30  // close select
31  $("html, body").on("mousedown", function (e) {
32    if (typeof e.target.className == "string" && e.target.className.indexOf("adm") < 0) {
33      e.stopPropagation();
34      $(".dropdown-select .dropdown-select__title.opened").each(function(){
35        if ($(this).closest('#mobilefilter').length) return
36        var $select = $(this).closest('.dropdown-select');
37        if ($select.data('visible_by_class') && $($select.data('visible_by_class')).is(':visible')) return;
38        if(!$(e.target).closest($select).length) {
39          $(this).click();
40        }
41      });
42    }
43  });
44
45  // mixitUp
46  /*
47  const containerEl = document.querySelector(".mixitup-container");
48  if (containerEl) {
49    var config = {
50      selectors: {
51        target: '[data-ref="mixitup-target"]',
52      },
53      animation: {
54        effects: "", // Set a 'stagger' effect for the loading animation
55      },
56      load: {
57        filter: "none", // Ensure all targets start from hidden (i.e. display: none;)
58      },
59      animation: {
60        duration: 350,
61      },
62      controls: {
63        scope: "local",
64      },
65      callbacks: {
66        onMixStart: function (state) {
67          // console.log(state);
68        },
69        onMixClick: function (state, event) {
70          let $item = event.target.children.length ? event.target : event.target.parentElement;
71          $($item).siblings().removeClass("color-theme head-block__item--active active");
72          $($item).addClass("color-theme head-block__item--active active");
73        },
74        onMixEnd: function () {
75          // InitLazyLoad();
76        },
77      },
78    };
79    var mixer = mixitup(containerEl, config);
80
81    containerEl.classList.add("mixitup-ready");
82
83    mixer.show().then(function () {
84      // Remove the stagger effect for any subsequent operations
85      mixer.configure({
86        animation: {
87          effects: "fade scale",
88        },
89      });
90    });
91  }*/
92
93  /*show password*/
94  $(".form-group:not(.eye-password-ignore) [type=password]").each(function (item) {
95    let inputBlock = $(this).closest(".input");
96    if (inputBlock.length) {
97      inputBlock.addClass("eye-password");
98    } else {
99      let passBlock = $(this).closest(".form-group");
100      let labelBlock = passBlock.find(".label_block");
101      if (labelBlock.length) {
102        labelBlock.addClass("eye-password");
103      } else {
104        passBlock.addClass("eye-password");
105      }
106    }
107  });
108
109  $(document).on("click", ".eye-password:not(.eye-password-ignore)", function (event) {
110    let input = this.querySelector("input");
111    let eyeWidth = 56;
112    if (this.clientWidth - eyeWidth < event.offsetX) {
113      if (input.type == "password") {
114        input.type = "text";
115        this.classList.add("password-show");
116      } else if (input.type == "text") {
117        input.type = "password";
118        this.classList.remove("password-show");
119      }
120      event.stopPropagation();
121    }
122  });
123  /**/
124});
125
126// gallery switch
127$(document).on("click", ".gallery-view_switch__icons:not(.active)", function () {
128  var $this = $(this);
129  var animationTime = 200;
130  var bSmall = $this.hasClass("gallery-view_switch__icons--small");
131  var $switchGallery = $this.closest(".gallery-view_switch");
132  var $bigGallery = ($this.closest(".big_gallery").length
133    ? $this.closest(".big_gallery")
134    : $this.closest(".gallery")
135  ).find(".gallery-big");
136  var $bigGalleryCounter = $switchGallery.find(".gallery-view_switch__count-wrapper--big");
137  var $smallGallery = ($this.closest(".big_gallery").length
138    ? $this.closest(".big_gallery")
139    : $this.closest(".gallery")
140  ).find(".gallery-small");
141  var $smallGalleryCounter = $switchGallery.find(".gallery-view_switch__count-wrapper--small");
142  var $toHideGallery = bSmall ? $bigGallery : $smallGallery;
143  var $toHideGalleryCounter = bSmall ? $bigGalleryCounter : $smallGalleryCounter;
144  var $toShowGallery = bSmall ? $smallGallery : $bigGallery;
145  var $toShowGalleryCounter = bSmall ? $smallGalleryCounter : $bigGalleryCounter;
146
147  $this.addClass("active");
148  $this.siblings(".active").removeClass("active");
149
150  $toHideGalleryCounter.fadeOut(animationTime, function () {
151    $toShowGalleryCounter.fadeIn(animationTime);
152  });
153
154  $toHideGallery.fadeOut(animationTime, function () {
155    $toShowGallery.fadeIn(animationTime);
156  });
157});
158
159// reload captcha
160$(document).on("click", ".refresh", function (e) {
161  var captcha = $(this).parents(".captcha-row");
162  e.preventDefault();
163  $.ajax({
164    url: arAsproOptions["SITE_DIR"] + "ajax/captcha.php",
165  }).done(function (text) {
166    captcha.find("input[name=captcha_sid],input[name=captcha_code]").val(text);
167    captcha.find("img").attr("src", "/bitrix/tools/captcha.php?captcha_sid=" + text);
168    captcha.find("input[name=captcha_word]").val("").removeClass("error");
169    captcha.find(".captcha_input").removeClass("error").find(".error").remove();
170  });
171});

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.