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.