PageSourceSearch

https://getyourphuket.com/local/js/neti_favorite/neti_lib/dist/neti.lib.bundle.js

js getyourphuket.com collected 2026-10-07 18:14:15 UTC 6,061 bytes, 168 lines download raw bytes

1this.BX = this.BX || {};
2(function (exports) {
3  "use strict";
4  var buttonActiveClassName = "favorite-btn_active";
5  var favoriteItemsBlock = "#favorite-list";
6  BX.ready(function () {
7    var favorites = document.querySelectorAll(".js-favorite");
8    favorites.forEach(function (item) {
9      item.addEventListener("click", function (e) {
10        e.preventDefault();
11        var iblockId = item.getAttribute("data-iblock-id");
12        var favoriteEntity = item.getAttribute("data-favorite-entity");
13        if (typeof iblockId === "undefined") {
14          console.log("attribute `data-iblock-id` undefined");
15          return;
16        }
17        if (typeof favoriteEntity === "undefined") {
18          console.log("attribute `data-favorite-entity` undefined");
19          return;
20        }
21        BX.ajax
22          .runAction("neti:favorite.controllers.favorite.sendData", {
23            data: {
24              favoriteEntityId: favoriteEntity,
25              iblockId: iblockId,
26            },
27          })
28          .then(function (response) {
29            var addClasses = response.data.classAdd.split(" ");
30            var removeClasses = response.data.classDelete.split(" ");
31            removeClasses.forEach(function (cssClass) {
32              item.classList.remove(cssClass);
33            });
34            addClasses.forEach(function (cssClass) {
35              item.classList.add(cssClass);
36            });
37            var countArr = document.querySelectorAll(
38              "#neti_favorites_equation .count"
39            );
40            if (countArr.length > 0) {
41              countArr.forEach((count) => {
42                count.textContent = response.data.count;
43              });
44            }
45            var iconArr = document.querySelectorAll("#neti_favorites_equation");
46            if (iconArr.length > 0) {
47              iconArr.forEach((icon) => {
48                if (response.data.count > 0) {
49                  icon.classList.add(buttonActiveClassName);
50                } else {
51                  icon.classList.remove(buttonActiveClassName);
52                }
53              });
54            }
55            BX.onCustomEvent(
56              "controllers-netiFavoriteSendData:success",
57              response
58            );
59            var element = item.closest(".real-estate__element");
60			var favoriteBox = document.querySelector(favoriteItemsBlock);
61			if (favoriteBox) {
62              element?.remove();
63              if (response.data.count == 0) {
64                location.reload();
65              }
66            }
67          })
68          ["catch"](function (response) {
69            console.log(response);
70            BX.onCustomEvent(
71              "controllers-netiFavoriteSendData:error",
72              response
73            );
74          });
75      });
76    });
77    BX.ajax
78      .runAction("neti:favorite.controllers.favorite.setStatus", {
79        method: "get",
80        data: {},
81      })
82      .then(function (response) {
83        var countArr = document.querySelectorAll(
84          "#neti_favorites_equation .count"
85        );
86        if (countArr.length > 0) {
87          countArr.forEach((count) => {
88            count.textContent = response.data.ids.length;
89          });
90        }
91        var iconArr = document.querySelectorAll("#neti_favorites_equation");
92        if (iconArr.length > 0) {
93          iconArr.forEach((icon) => {
94            if (response.data.ids.length > 0) {
95              icon.classList.add(buttonActiveClassName);
96            } else {
97              icon.classList.remove(buttonActiveClassName);
98            }
99          });
100        }
101        var favorites = document.querySelectorAll(".js-favorite");
102        favorites.forEach(function (item) {
103          /*if (response.data.ids === []) {
104            return true;
105          }*/
106          var elementId = item.getAttribute("data-favorite-entity");
107          var ids = response.data.ids;
108          var elementFound = false;
109          ids.forEach(function (id) {
110            if (elementId == id) {
111              elementFound = true;
112            }
113          });
114          // Удаляем класс по умолчанию
115          var removeClasses = response.data.removeClass.split(" ");
116          removeClasses.forEach(function (cssClass) {
117            item.classList.remove(cssClass);
118          });
119
120          //Добавляем класс товарам из избранного
121          var addClasses = response.data.addClass.split(" ");
122          if (elementFound) {
123            addClasses.forEach(function (cssClass) {
124              item.classList.add(cssClass);
125            });
126            return;
127          }
128
129          //Добавляем класс товарам которые не в избранном
130          removeClasses.forEach(function (cssClass) {
131            item.classList.add(cssClass);
132          });
133        });
134        BX.onCustomEvent("controllers-netiFavoriteSetStatus:success", response);
135      })
136      ["catch"](function (response) {
137        console.log(response);
138        BX.onCustomEvent("controllers-netiFavoriteSetStatus:error", response);
139      });
140    var cleanButton = document.querySelector(".js-favorite-clean");
141    if (cleanButton) {
142      cleanButton.addEventListener("click", function (e) {
143        e.preventDefault();
144        BX.ajax
145          .runAction("neti:favorite.controllers.favorite.allClean", {
146            method: "post",
147            data: {},
148          })
149          .then(function (response) {
150            var countArr = document.querySelectorAll(
151              "#neti_favorites_equation .count"
152            );
153            if (countArr.length > 0) {
154              countArr.forEach((count) => {
155                count.textContent = 0;
156              });
157            }
158            location.reload();
159            BX.onCustomEvent("controllers-netiFavoriteAllClean:success");
160          })
161          ["catch"](function (response) {
162            //console.log(response);
163            BX.onCustomEvent("controllers-netiFavoriteAllClean:error");
164          });
165      });
166    }
167  });
168})((this.BX[""] = this.BX[""] || {}));

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.