1"use strict"; 2 3function _toConsumableArray(arr) { 4 return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread() 5} 6 7function _nonIterableSpread() { 8 throw new TypeError("Invalid attempt to spread non-iterable instance") 9} 10 11function _iterableToArray(iter) { 12 if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter) 13} 14 15function _arrayWithoutHoles(arr) { 16 if (Array.isArray(arr)) { 17 for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { 18 arr2[i] = arr[i] 19 } 20 return arr2 21 } 22} 23 24function _classCallCheck(instance, Constructor) { 25 if (!(instance instanceof Constructor)) { 26 throw new TypeError("Cannot call a class as a function") 27 } 28} 29 30function _defineProperties(target, props) { 31 for (var i = 0; i < props.length; i++) { 32 var descriptor = props[i]; 33 descriptor.enumerable = descriptor.enumerable || false; 34 descriptor.configurable = true; 35 if ("value" in descriptor) descriptor.writable = true; 36 Object.defineProperty(target, descriptor.key, descriptor) 37 } 38} 39 40function _createClass(Constructor, protoProps, staticProps) { 41 if (protoProps) _defineProperties(Constructor.prototype, protoProps); 42 if (staticProps) _defineProperties(Constructor, staticProps); 43 return Constructor 44} 45var EventBus = function() { 46 function EventBus() { 47 _classCallCheck(this, EventBus); 48 this.subs = [] 49 } 50 _createClass(EventBus, [{ 51 key: "subscribe", 52 value: function subscribe(cb) { 53 this.subs.push(cb); 54 return this 55 } 56 }, { 57 key: "notify", 58 value: function notify() { 59 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { 60 args[_key] = arguments[_key] 61 } 62 this.subs.forEach(function(cb) { 63 cb.apply(void 0, args) 64 }); 65 return this 66 } 67 }]); 68 return EventBus 69}(); 70var on = function on(element, event, handler) { 71 if (element && event && handler) { 72 document.addEventListener ? element.addEventListener(event, handler, false) : element.attachEvent("on" + event, handler) 73 } 74}; 75var getViewport = function getViewport() { 76 var width = Math.max(window.innerWidth || 0); 77 var height = Math.max(window.innerHeight || 0); 78 return { 79 width: width, 80 height: height 81 } 82}; 83var containsOrSame = function containsOrSame(parent) { 84 return function(el) { 85 return parent.contains(el) || parent.isEqualNode(el) 86 } 87}; 88var viewport = getViewport(); 89var ScrollEvent = new EventBus; 90var ClickEvent = new EventBus; 91on(document, "click", function(e) { 92 ClickEvent.notify(e) 93}); 94on(document, "scroll", function(e) { 95 ScrollEvent.notify(window.scrollY) 96}); 97on(window, "load", function() { 98 var headerEl = document.querySelector(".header"); 99 ScrollEvent.subscribe(function(top) { 100 KYB.imageLoader.update(); 101 headerEl.classList.toggle("--scroll", top > 0) 102 }); 103 try { 104 new Sticky(".js-sticky-slider", { 105 marginTop: viewport.height / 4 106 }); 107 document.querySelectorAll(".moon").forEach(function(el) { 108 setTimeout(function() { 109 el.classList.add("--off") 110 }, 32e3) 111 }); 112 document.querySelectorAll("[data-sync]").forEach(function(el) { 113 var imgs = el.querySelectorAll(".js-sticky-slider img"); 114 var leftBlocks = el.querySelectorAll("[data-sync-item]"); 115 var initialPos = []; 116 var active = []; 117 var prev = 0; 118 var sync = function sync() { 119 imgs.forEach(function(img, i) { 120 if (leftBlocks[i]) { 121 var round = leftBlocks[i].querySelector(".timeline-point"); 122 var line = leftBlocks[i].querySelector(".timeline-prev"); 123 var _prev = leftBlocks[i - 1]; 124 if (round) { 125 round.classList.toggle("--active", active[i]) 126 } 127 if (line) { 128 line.classList.toggle("--active", active[i]) 129 } 130 if (active[i]) { 131 leftBlocks[i].classList.add("--active"); 132 if (_prev) { 133 _prev.classList.add("--proc") 134 } 135 } else { 136 leftBlocks[i].classList.remove("--active"); 137 if (_prev) { 138 _prev.classList.remove("--proc") 139 } 140 } 141 } 142 img.style.display = active[i] ? "block" : "none" 143 }) 144 }; 145 leftBlocks.forEach(function(item, i) { 146 active.push(false); 147 var rect = item.getBoundingClientRect(); 148 ScrollEvent.subscribe(function(top, initial) { 149 if (initial) { 150 initialPos[i] = rect.top + top 151 } 152 console.log(initial, rect.top, top); 153 if (i === 0 || top >= initialPos[i] - viewport.height / 2) { 154 active[i] = true 155 } else { 156 active[i] = false 157 } 158 sync() 159 }) 160 }) 161 }) 162 } catch (error) { 163 console.log(error) 164 } 165 document.querySelectorAll("[data-alignby]").forEach(function(el) { 166 var pair = document.getElementById(el.dataset.alignby); 167 var childs = _toConsumableArray(el.children); 168 var pairChilds = _toConsumableArray(pair.children); 169 var horizon = new Array(childs.length + pairChilds.length).fill(null).map(function(_, i) { 170 return (i % 2 ? childs : pairChilds).shift() 171 }); 172 var sizes = horizon.map(function(item) { 173 return item.getBoundingClientRect() 174 }); 175 horizon.forEach(function(item, i) { 176 var prev = sizes[i - 1]; 177 if (!prev) { 178 return 179 } 180 item.style.marginTop = prev.height * .4 + "px" 181 }) 182 }); 183 document.querySelectorAll(".slider").forEach(function(el) { 184 var controlsContainer = el.querySelector(".slider__controls"); 185 var container = el.querySelector(".slider__container"); 186 var slider = tns({ 187 container: container, 188 items: 1, 189 sliderBy: "page", 190 autoplay: false, 191 loop: false, 192 controlsContainer: controlsContainer 193 }) 194 }); 195 document.querySelectorAll("[data-pick]").forEach(function(el) { 196 var container = el.querySelector("[data-pick-container]"); 197 var controls = el.querySelectorAll(".pick__line"); 198 var slider = tns({ 199 container: container, 200 items: 1, 201 sliderBy: "page", 202 autoplay: true, 203 autoplayTimeout: 5e3, 204 loop: true, 205 controls: false, 206 autoplayButtonOutput: false 207 }); 208 var active = null; 209 var togglePick = function togglePick(_ref) { 210 var displayIndex = _ref.displayIndex; 211 if (displayIndex === active) { 212 return 213 } 214 active = displayIndex; 215 if (displayIndex === 1) { 216 controls[0].classList.remove("--active") 217 } 218 setTimeout(function() {
219 controls.forEach(function(c, i) { 220 c.classList.toggle("--active", i < displayIndex) 221 }) 222 }) 223 }; 224 slider.events.on("indexChanged", togglePick); 225 togglePick({ 226 displayIndex: 1 227 }) 228 }); 229 var colorMap = [{ 230 backgroundColor: "#565cff", 231 backgroundImage: "repeating-radial-gradient( circle at 0 0, transparent 0, #565cff 35px ), repeating-linear-gradient( #444CF755, #444CF7 )" 232 }, { 233 backgroundColor: "#f57b33", 234 backgroundImage: "repeating-radial-gradient( circle at 0 0, transparent 0, #f57b33 35px ), repeating-linear-gradient( #eb732f55, #eb732f )" 235 }, { 236 backgroundColor: "#1F262A" 237 }, { 238 backgroundColor: "#f3689f", 239 background: "radial-gradient(circle, transparent 20%, #f3689f 20%, #f3689f 80%, transparent 80%, transparent), radial-gradient(circle, transparent 20%, #f3689f 20%, #f3689f 80%, transparent 80%, transparent) 25px 25px, linear-gradient(#fb77b0 2px, transparent 2px) 0 -1px, linear-gradient(90deg, #fb77b0 2px, #f3689f 2px) -1px 0", 240 backgroundSize: "50px 50px, 50px 50px, 25px 25px, 25px 25px" 241 }, { 242 backgroundColor: "#ffdd6a", 243 backgroundImage: "linear-gradient(30deg, #ffd168 12%, transparent 12.5%, transparent 87%, #ffd168 87.5%, #ffd168), linear-gradient(150deg, #ffd168 12%, transparent 12.5%, transparent 87%, #ffd168 87.5%, #ffd168), linear-gradient(30deg, #ffd168 12%, transparent 12.5%, transparent 87%, #ffd168 87.5%, #ffd168), linear-gradient(150deg, #ffd168 12%, transparent 12.5%, transparent 87%, #ffd168 87.5%, #ffd168), linear-gradient(60deg, #ffd16877 25%, transparent 25.5%, transparent 75%, #ffd16877 75%, #ffd16877), linear-gradient(60deg, #ffd16877 25%, transparent 25.5%, transparent 75%, #ffd16877 75%, #ffd16877)", 244 backgroundSize: "48px 84px", 245 backgroundPosition: "0 0, 0 0, 24px 42px, 24px 42px, 0 0, 24px 42px", 246 className: "text-black" 247 }]; 248 document.querySelectorAll(".js-rotate").forEach(function(elem) { 249 var row = elem.firstElementChild; 250 var lastRandom = Math.floor(Math.random() * colorMap.length); 251 _toConsumableArray(row.children).forEach(function(el) { 252 var newRandom = Math.floor(Math.random() * colorMap.length); 253 while (newRandom == lastRandom) { 254 newRandom = Math.floor(Math.random() * colorMap.length) 255 } 256 lastRandom = newRandom; 257 var _colorMap$Math$floor = colorMap[newRandom], 258 color = _colorMap$Math$floor.backgroundColor, 259 _colorMap$Math$floor$ = _colorMap$Math$floor.className, 260 className = _colorMap$Math$floor.className ? _colorMap$Math$floor.className : "text-white"; 261 el.style.background = color; 262 if (_colorMap$Math$floor.background) el.style.background = _colorMap$Math$floor.background; 263 if (_colorMap$Math$floor.backgroundImage) el.style.backgroundImage = _colorMap$Math$floor.backgroundImage; 264 if (_colorMap$Math$floor.backgroundSize) el.style.backgroundSize = _colorMap$Math$floor.backgroundSize; 265 if (_colorMap$Math$floor.backgroundPosition) el.style.backgroundPosition = _colorMap$Math$floor.backgroundPosition; 266 if (className) { 267 el.classList.add(className) 268 } 269 }); 270 elem.appendChild(row.cloneNode(true)); 271 setTimeout(function() { 272 return elem.classList.add("--active") 273 }) 274 }); 275 var setSubheader = function setSubheader(key) { 276 return document.querySelectorAll("[data-sublink]").forEach(function(el) { 277 if (el.dataset.sublink === key) { 278 el.classList.add("-active") 279 } 280 }) 281 }; 282 document.querySelectorAll(".js-about-parallax").forEach(function(item, i) { 283 ScrollEvent.subscribe(function(top) { 284 if (i === 0) { 285 item.style.opacity = 1 - top / 500 286 } 287 item.style.transform = "translateY(-".concat(top / (i + 1), "px)") 288 }) 289 }); 290 document.querySelectorAll(".js-toggle").forEach(function(root, i) { 291 var targetDIV = document.getElementById(root.dataset.toggle); 292 var items = _toConsumableArray(root.children); 293 var childs = _toConsumableArray(targetDIV.children);
294 items.forEach(function(item, index) { 295 return item.addEventListener("click", function(e) { 296 items.forEach(function(el, i) { 297 return el.classList.toggle("--active", index === i) 298 }); 299 childs.forEach(function(el, i) { 300 return el.classList.toggle("--hidden", index !== i) 301 }) 302 }) 303 }) 304 }); 305 document.querySelectorAll(".js-milestone").forEach(function(container) { 306 var controlsContainer = document.getElementById(container.dataset.controls); 307 var startIndex = _toConsumableArray(container.children).length; 308 tns({ 309 edgePadding: 380, 310 container: container, 311 items: 6, 312 sliderBy: "page", 313 autoplay: false, 314 loop: false, 315 fixedWidth: 280, 316 startIndex: startIndex, 317 controlsContainer: controlsContainer, 318 responsive: { 319 375: { 320 items: 1, 321 edgePadding: 40 322 } 323 } 324 }) 325 }); 326 document.querySelectorAll(".scrolls").forEach(function(container) { 327 var els = _toConsumableArray(container.children); 328 var index = 0; 329 setInterval(function() { 330 index += 1; 331 if (index > els.length - 1) { 332 index = 0 333 } 334 els.forEach(function(el, i) { 335 el.classList.toggle("--active", index === i) 336 }) 337 }, 2300) 338 }); 339 document.querySelectorAll("[data-toggle-menu]").forEach(function(el) { 340 var menu = document.querySelector(".mmenu"); 341 var value = el.dataset.toggleMenu === "true"; 342 var toggle = function toggle(state) { 343 return menu.classList.toggle("hidden", state) 344 }; 345 el.addEventListener("click", function(e) { 346 return toggle(!value) 347 }); 348 ClickEvent.subscribe(function(e) { 349 if (!containsOrSame(menu)(e.target)) { 350 if (value && !containsOrSame(el)(e.target)) { 351 toggle(true) 352 } 353 } 354 }) 355 }); 356 document.querySelectorAll(".dropdown").forEach(function(el) { 357 var link = el.querySelector(".dropdown__link"); 358 var overlay = el.querySelector(".dropdown__overlay"); 359 var toggle = function toggle(value) { 360 link.classList.toggle("--active", !value); 361 overlay.classList.toggle("hidden", value) 362 }; 363 link.addEventListener("click", function(e) { 364 toggle(link.classList.contains("--active")) 365 }); 366 ClickEvent.subscribe(function(e) { 367 if (!(containsOrSame(overlay)(e.target) || containsOrSame(link)(e.target))) { 368 toggle(true) 369 } 370 }) 371 }); 372 var options = window.Page; 373 options && function() { 374 options.subheader && setSubheader(options.subheader) 375 }(); 376 var CODE_ERRORS = { 377 NO_RECENT_POSTS: __("Not enough posts to make statistical conclusions."), 378 NOT_ENOUGH_FOLLOWERS: __("Not enough followers to make statistical conclusions."), 379 MORE_THAN_10M_FOLLOWERS: __("Celebrities post price depends not only on their audience quality."), 380 NO_REACH: __("Not enough data to predict price."), 381 POOR_DATA: __("Not enough data to predict price."), 382 NO_GEO_DATA: __("Not enough data to analyze audience geo."), 383 NO_POSTS_30D: __("No posts in 30 days.") 384 }; 385 var YT_CODE_ERRORS = { 386 NO_VIEWS: __("The channel has too low views count, so we donât track it."), 387 DELETED: __("Channel is unavailable."), 388 NO_VIDEOS: __("The channel has no videos, so we donât track it."), 389 NO_CHANNEL: __("Sorry, we donât track this account yet. We will add it later.") 390 }; 391 var TT_CODE_ERRORS = { 392 CHANNEL_NOT_FOUND: __("Channel not found."), 393 CHANNEL_DELETED: __("Channel is unavailable."), 394 NO_VIDEOS: __("The channel has no videos, so we donât track it."), 395 READY_PARTIALLY: __("Sorry, we donât track this account yet. We will add it later."), 396 NOT_READY: __("Sorry, we donât track this account yet. We will add it later.") 397 }; 398 try { 399 _.each(document.querySelectorAll(".emv-request-form"), function(form) { 400 var submit = document.querySelector(".js-emv-submit"), 401 again = document.querySelector(".js-emv-again"), 402 textarea = form.querySelector(".js-emv-textarea"), 403 toolSection = document.querySelector(".js-tool-section"), 404 toolField = document.querySelector(".js-tool-container"), 405 toolError = document.querySelector(".js-tool-error"); 406 var EMVTool = { 407 title: __("Auditor EMV calculator"), 408 action: "toolEmv", 409 amEvent: "Request EMV calculator", 410 utm: "?utm_source=plixi&utm_medium=free_tools&utm_campaign=EMV_calculator" 411 }; 412 textarea.placeholder = "Paste Instagram usernames here to calculate the estimated EMV. Comma separated, 15 usernames maximum.\n\nEg. @therock, @influencermh, @plixi..."; 413 textarea.addEventListener("input", function(e) { 414 toolError.classList.add("hidden"); 415 document.getElementById("toolCaptcha").classList.remove("hidden") 416 }); 417 again.addEventListener("click", function(e) { 418 textarea.value = ""; 419 submit.classList.remove("btn--preload"); 420 toolSection.classList.remove("-result") 421 }); 422 submit.addEventListener("click", function(e) { 423 if (textarea.value.length < 2) { 424 return false 425 } 426 var accounts = textarea.value.replace(/ /g, "").replace(/@/g, "").split(","); 427 if (accounts.length > 15) { 428 toolError.innerText = __("15 usernames maximum"); 429 toolError.classList.remove("hidden"); 430 return false 431 } 432 document.getElementById("toolCaptcha").classList.remove("animate__headShake"); 433 KYB.tracker.trackEvent(EMVTool.amEvent, { 434 "Page Id": KYB.pageId, 435 Action: EMVTool.amEvent 436 }); 437 if (toolCaptchaToken) { 438 submit.classList.add("btn--preload"); 439 KYB.get("https://" + KYB.domain + KYB.baseUrl + "ajax/" + EMVTool.action + "/", { 440 usernames: accounts 441 }).then(function(resp) { 442 submit.classList.remove("btn--preload"); 443 if (resp.success) { 444 if (Object.keys(resp.reports).length > 1) { 445 toolField.querySelector(".js-tool-username").innerText = "".concat(Object.keys(resp.reports)[0], " + ").concat(__n("1 other", "{n} others", Object.keys(resp.reports).length - 1, { 446 n: Object.keys(resp.reports).length - 1 447 })) 448 } else { 449 toolField.querySelector(".js-tool-username").innerText = Object.keys(resp.reports)[0] ? Object.keys(resp.reports)[0] : "" 450 } 451 var imgHtml = ""; 452 var listHtml = ""; 453 _.each(Object.keys(resp.reports), function(key, index) { 454 if (index === 0) { 455 imgHtml += '<div class="wh-74 bg-cover border-shadow bg-gray-300 rounded-full" style="z-index: '.concat(Object.keys(resp.reports).length, "; background-image: url(").concat(resp.reports[key].basic.avatar_url, ')"></div>') 456 } else { 457 imgHtml += '<div class="wh-54 mt-12 -ml-32 bg-cover border-shadow bg-gray-300 rounded-full" style="z-index: '.concat(Object.keys(resp.reports).length - index, "; background-image: url(").concat(resp.reports[key].basic.avatar_url, ')"></div>') 458 } 459 listHtml += '<tr>\n <td class="pb-20">\n <div class="flex">\n <div class="wh-40 bg-cover border-shadow rounded-full md-max:hidden" style="background-image: url('.concat(resp.reports[key].basic.avatar_url, ')"></div>\n <div class="ml-12">\n <div class="max-w-140 md-max:mt-20 text-sm truncate">').concat(resp.reports[key].basic.title, '</div>\n <div class="max-w-140 text-sm text-gray-600 truncate">@').concat(resp.reports[key].basic.username, '</div>\n </div>\n </div>\n </td>\n <td class="pb-20 font-bold text-lg text-right">').concat(KYB.numberFormat(resp.reports[key].metrics.subscribers_count.value), '</td>\n <td class="pb-20 font-bold text-lg text-right">').concat(KYB.numberFormat(resp.reports[key].metrics.er.value.toFixed(2)), "%</td>\n </tr>") 460 }); 461 toolField.querySelector(".js-tool-user-list").innerHTML = listHtml; 462 toolField.querySelector(".js-tool-img").innerHTML = imgHtml; 463 toolField.querySelector(".js-tool-emv").innerText = "$".concat(KYB.numberFormat(resp.total.emv_sum)); 464 toolField.querySelector(".js-tool-followers").innerText = "".concat(KYB.numberFormat(resp.total.followers)); 465 toolField.querySelector(".js-tool-er").innerText = "".concat(resp.total.er_avg.toFixed(2), "%"); 466 if (Object.keys(resp.skipped).length) { 467 setSkippedError(resp.skipped) 468 } 469 toolSection.classList.add("-result"); 470 resetCaptcha() 471 } else { 472 toolError.innerText = resp.error; 473 toolError.classList.remove("hidden"); 474 resetCaptcha() 475 } 476 }, function(e) { 477 submit.classList.remove("btn--preload") 478 }) 479 } else { 480 setTimeout(function() { 481 document.getElementById("toolCaptcha").classList.add("animate__headShake") 482 }, 0) 483 } 484 }); 485 486 function setSkippedError(list) { 487 var errHtml = "".concat(__("Accounts not calculated:"), "<br>"); 488 _.each(Object.keys(list), function(key) { 489 errHtml += "@".concat(key, " - ").concat(CODE_E
489RRORS[list[key]], "<br>") 490 }); 491 toolField.querySelector(".js-tool-emv-error").innerHTML = errHtml 492 } 493 494 function resetCaptcha() { 495 if (typeof grecaptcha != "undefined") { 496 grecaptcha.reset(); 497 toolCaptchaToken = null; 498 document.getElementById("toolCaptcha").classList.add("hidden") 499 } 500 } 501 }) 502 } catch (e) { 503 console.log(e) 504 } 505 try { 506 _.each(document.querySelectorAll(".tool-request-form"), function(form) { 507 var toolSection = document.querySelector(".js-tool-section"), 508 toolForm = document.querySelector(".tool-request-form"), 509 toolSubmit = document.querySelector(".js-er-calc-submit"), 510 toolField = document.querySelector(".js-tool-container"), 511 toolImg = toolField.querySelector(".js-tool-img"), 512 toolUsername = toolField.querySelector(".js-tool-username"), 513 toolLink = toolField.querySelectorAll(".js-tool-link"); 514 var erCalcER = toolField.querySelector(".js-er-calc-er"), 515 erCalcMark = toolField.querySelector(".js-er-calc-mark"), 516 erCalcFollowers = toolField.querySelector(".js-er-calc-followers"), 517 erCalcLikes = toolField.querySelector(".js-er-calc-likes"), 518 erCalcCom = toolField.querySelector(".js-er-calc-com"); 519 var toolError = document.querySelector(".js-tool-error"); 520 var META_ER = { 521 poor: "Poor", 522 fair: "Fair", 523 average: "Average", 524 good: "Good", 525 great: "Great", 526 high: "High", 527 very_good: "Very good", 528 excellent: "Excellent" 529 }; 530 var META_TOOL = [{ 531 title: __("Auditor Instagram ER Calculator"), 532 action: "toolEngagement", 533 amEvent: "Request Instagram ER Calculator", 534 utm: "?utm_source=plixi&utm_medium=free_tools&utm_campaign=Instagram_ER_Calculator" 535 }, { 536 title: __("Auditor Instagram Audit"), 537 action: "toolAudit", 538 amEvent: "Request Instagram Audit", 539 utm: "?utm_source=plixi&utm_medium=free_tools&utm_campaign=Instagram_Audit" 540 }, { 541 title: __("Auditor Instagram Money Calculator"), 542 action: "toolMoney", 543 amEvent: "Request Instagram Money Calculator", 544 utm: "?utm_source=plixi&utm_medium=free_tools&utm_campaign=Instagram_Money_Calculator" 545 }, { 546 title: __("Auditor YouTube Money calculator"), 547 action: "toolMoneyYt", 548 amEvent: "Request YouTube Money calculator", 549 utm: "?utm_source=plixi&utm_medium=free_tools&utm_campaign=YouTube_Money_calculator" 550 }, { 551 title: __("Auditor YouTube Quality Check"), 552 action: "toolYtCqs", 553 amEvent: "Request YouTube Quality Check", 554 utm: "?utm_source=plixi&utm_medium=free_tools&utm_campaign=YouTube_Quality_Check" 555 }, { 556 title: __("Auditor TikTok ER Calculator"), 557 action: "toolTtEr", 558 amEvent: "Request TikTok ER Calculator", 559 utm: "?utm_source=plixi&utm_medium=free_tools&utm_campaign=TikTok_ER_Calculator" 560 }, { 561 title: __("Auditor TikTok Quality Check"), 562 action: "toolTtAqs", 563 amEvent: "Request TikTok Quality Check", 564 utm: "?utm_source=plixi&utm_medium=free_tools&utm_campaign=TikTok__Quality_Check" 565 }]; 566 toolSubmit.addEventListener("click", function(e) { 567 document.getElementById("toolCaptcha").classList.remove("animate__headShake"); 568 var curTool = _.findWhere(META_TOOL, { 569 action: toolForm.dataset.action 570 }); 571 KYB.tracker.trackEvent(curTool.amEvent, { 572 "Page Id": KYB.pageId, 573 Action: curTool.amEvent 574 }); 575 if (toolCaptchaToken) { 576 if (!calcSuggester.activeItem.username) { 577 var p = {}; 578 if (KYB.getParams().username && KYB.getParams().username === document.querySelector(".js-er-search").value) { 579 p = { 580 username: KYB.getParams().username 581 }; 582 if (KYB.getParams().channel_id) {
583 p.channel_id = KYB.getParams().channel_id 584 } 585 } else { 586 p = { 587 username: document.querySelector(".js-er-search").value 588 } 589 } 590 toolSubmitForm(p) 591 } else { 592 toolSubmitForm(calcSuggester.activeItem) 593 } 594 } else { 595 setTimeout(function() { 596 document.getElementById("toolCaptcha").classList.add("animate__headShake") 597 }, 0) 598 } 599 }); 600 601 function setAccountError(error) { 602 var inp = toolForm.querySelectorAll("input"); 603 toolForm.insertAdjacentHTML("afterbegin", '<label for="' + inp[inp.length - 1].name + '" class="kyb-error">' + error + "</label>") 604 } 605 606 function resetCaptcha() { 607 if (typeof grecaptcha != "undefined") { 608 grecaptcha.reset(); 609 toolCaptchaToken = null; 610 document.getElementById("toolCaptcha").classList.add("hidden") 611 } 612 } 613 614 function setResultER(resp) { 615 erCalcMark.querySelector("span").innerText = META_ER[resp.data.metrics.er.mark]; 616 erCalcMark.querySelector("div").classList.remove("bg-mark-excellent", "bg-mark-great", "bg-mark-high", "bg-mark-very_good", "bg-mark-good", "bg-mark-average", "bg-mark-fair", "bg-mark-poor", "bg-mark-none"); 617 erCalcMark.querySelector("div").classList.add("bg-mark-".concat(resp.data.metrics.er.mark)); 618 erCalcER.innerText = "".concat(resp.data.metrics.er.value.toFixed(2), "%"); 619 erCalcFollowers.innerText = KYB.numberFormat(resp.data.metrics.subscribers_count.value); 620 erCalcLikes.innerText = KYB.numberFormat(resp.data.metrics.likes_avg.value); 621 erCalcCom.innerText = KYB.numberFormat(resp.data.metrics.comments_avg.value) 622 } 623 624 function setResultERTt(resp) { 625 erCalcMark.querySelector("span").innerText = META_ER[resp.data.metrics.er.performance["90d"].mark]; 626 erCalcMark.querySelector("div").classList.remove("bg-mark-excellent", "bg-mark-great", "bg-mark-high", "bg-mark-very_good", "bg-mark-good", "bg-mark-average", "bg-mark-fair", "bg-mark-poor", "bg-mark-none"); 627 erCalcMark.querySelector("div").classList.add("bg-mark-".concat(resp.data.metrics.er.performance["90d"].mark)); 628 erCalcER.innerText = "".concat(resp.data.metrics.er.performance["90d"].value.toFixed(2), "%"); 629 erCalcFollowers.innerText = KYB.numberFormat(resp.data.metrics.subscribers_count.value); 630 erCalcLikes.innerText = KYB.numberFormat(resp.data.metrics.alikes_avg.performance["90d"].value); 631 toolField.querySelector(".js-er-calc-videos").innerText = KYB.numberFormat(resp.data.metrics.media_count.value) 632 } 633 634 function setResultAudit(resp) { 635 var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; 636 toolField.querySelector(".js-tool-aqs").innerText = resp.data.features.aqs.data.value; 637 toolField.querySelector(".js-tool-mark span").innerText = resp.data.features.aqs.data.display_mark; 638 toolField.querySelector(".js-tool-mark div").classList.remove("bg-mark-excellent", "bg-mark-great", "bg-mark-high", "bg-mark-very_good", "bg-mark-good", "bg-mark-average", "bg-mark-fair", "bg-mark-poor", "bg-mark-none"); 639 toolField.querySelector(".js-tool-mark div").classList.add("bg-mark-".concat(resp.data.features.aqs.data.mark)); 640 toolField.querySelector(".js-tool-followers").innerText = KYB.numberFormat(resp.data.metrics.subscribers_count.value); 641 if (type === 1) { 642 toolField.querySelector(".js-tool-er").innerText = resp.data.metrics.er.value.toFixed(2) + "%" 643 } else if (type === 3) { 644 toolField.querySelector(".js-tool-er").innerText = resp.data.metrics.er.performance["90d"].value.toFixed(2) + "%" 645 } else { 646 toolField.querySelector(".js-tool-views").innerText = KYB.numberFormat(resp.data.metrics.views_count.value); 647 toolField.querySelector(".js-tool-videos").innerText = KYB.numberFormat(resp.data.metrics.media_count.value) 648 } 649 } 650 651 function setResultMoney(resp) { 652 if (resp.data.features.blogger_prices.status.code && resp.data.features.blogger_prices.status.code === "OK") { 653 toolField.querySelector(".js-tool-price").innerText = "$".concat(KYB.numberFormat(resp.data.features.blogger_prices.data.post_price_from), "â").concat(KYB.numberFormat(resp.data.features.blogger_prices.data.post_price_to)); 654 toolField.querySelector(".js-tool-price-error").innerText = "" 655 } else { 656 toolField.querySelector(".js-tool-price").innerText = "N/A"; 657 toolField.querySelector(".js-tool-price-error").innerText = CODE_ERRORS[resp.data.features.blogger_prices.status.code] 658 } 659 toolField.querySelector(".js-tool-followers").innerText = KYB.numberFormat(resp.data.metrics.subscribers_count.value); 660 toolField.querySelector(".js-tool-er").innerText = resp.data.metrics.er.value.toFixed(2) + "%" 661 } 662 663 function setResultMoneyYt(resp) { 664 if (resp.data.features.video_integration_price.status.code && resp.data.features.video_integration_price.status.code === "OK") { 665 toolField.querySelector(".js-tool-price").innerText = "$".concat(KYB.numberFormat(resp.data.features.video_integration_price.data.price_from), "â").concat(KYB.numberFormat(resp.data.features.video_integration_price.data.price_to)); 666 toolField.querySelector(".js-tool-price-error").innerText = "" 667 } else { 668 toolField.querySelector(".js-tool-price").innerText = "N/A"; 669 toolField.querySelector(".js-tool-price-error").innerText = CODE_ERRORS[resp.data.features.video_integration_price.status.code] 670 } 671 toolField.querySelector(".js-tool-followers").innerText = KYB.numberFormat(resp.data.metrics.subscribers_count.value); 672 toolField.querySelector(".js-tool-views").innerText = KYB.numberFormat(resp.data.metrics.views_count.value); 673 toolField.querySelector(".js-tool-videos").innerText = KYB.numberFormat(resp.data.metrics.media_count.value) 674 } 675 676 function setResultAuditTt(resp) { 677 if (resp.data.features.aqs.status && resp.data.features.aqs.status.code === "OK") { 678 toolField.querySelector(".js-tool-aqs").classList.remove("bg-mark-excellent", "bg-mark-great", "bg-mark-high", "bg-mark-very_good", "bg-mark-good", "bg-mark-average", "bg-mark-fair", "bg-mark-poor", "bg-mark-none"); 679 toolField.querySelector(".js-tool-aqs").classList.add("bg-mark-".concat(resp.data.features.aqs.data.mark)); 680 toolField.querySelector(".js-tool-aqs-value").innerText = resp.data.features.aqs.data.value; 681 toolField.querySelector(".js-tool-aqs-mark").innerText = META_ER[resp.data.features.aqs.data.mark] 682 } else { 683 toolField.querySelector(".js-tool-aqs").innerText = "N/A" 684 } 685 toolField.querySelector(".js-tool-followers").innerText = KYB.numberFormat(resp.data.metrics.subscribers_count.value); 686 toolField.querySelector(".js-tool-er").innerText = "".concat(resp.data.metrics.er.performance["90d"].value.toFixed(2), "%"); 687 toolField.querySelector(".js-tool-videos").innerText = KYB.numberFormat(resp.data.metrics.media_count.value) 688 } 689 690 function toolSubmitForm(data, token) { 691 toolError.classList.add("hidden"); 692 toolForm.classList.add("preload"); 693 var params = {}; 694 if (toolForm.dataset.type === "2") { 695 params.channel = data.channel_id 696 } else if (toolForm.dataset.type === "3") { 697 params.channel = data.username 698 } else { 699 params.username = data.username 700 } 701 KYB.get("https://" + KYB.domain + KYB.baseUrl + "ajax/" + toolForm.dataset.action + "/", params).then(function(resp) { 702 toolForm.classList.remove("preload"); 703 if (resp.success) { 704 if (!resp.data._report_state) { 705 toolImg.style.backgroundImage = "url(".concat(resp.data.basic.avatar_url, ")"); 706 toolUsername.innerText = resp.data.basic.username; 707 _.each(toolLink, function(el) { 708 if (resp.report_url) { 709 el.href = "".concat(resp.report_url).concat(_.findWhere(META_TOOL, { 710 action: toolForm.dataset.action 711 }).utm) 712 } else { 713 el.href = "/instagram/".concat(resp.data.basic.username, "/").concat(_.findWhere(META_TOOL, { 714 action: toolForm.dataset.action 715 }).utm) 716 } 717 }) 718 } 719 if (toolForm.dataset.action === "toolEngagement") { 720 setResultER(resp); 721 toolSection.classList.add("-result") 722 } else if (toolForm.dataset.action === "toolAudit" || toolForm.dataset.action === "toolYtCqs") { 723 if (toolForm.dataset.action === "toolYtCqs" && resp.data._report_state) {
724 setAccountError(YT_CODE_ERRORS[resp.data._report_state]) 725 } else { 726 setResultAudit(resp, toolForm.dataset.action === "toolAudit" ? 1 : 2); 727 toolSection.classList.add("-result") 728 } 729 } else if (toolForm.dataset.action === "toolMoney") { 730 setResultMoney(resp); 731 toolSection.classList.add("-result") 732 } else if (toolForm.dataset.action === "toolMoneyYt") { 733 if (resp.data._report_state) { 734 setAccountError(YT_CODE_ERRORS[resp.data._report_state]) 735 } else { 736 setResultMoneyYt(resp); 737 toolSection.classList.add("-result") 738 } 739 } else if (toolForm.dataset.action === "toolTtEr") { 740 setResultERTt(resp); 741 toolSection.classList.add("-result") 742 } else if (toolForm.dataset.action === "toolTtAqs") { 743 if (resp.data._report_state) {
744 setAccountError(TT_CODE_ERRORS[resp.data._report_state]) 745 } else { 746 setResultAuditTt(resp); 747 toolSection.classList.add("-result") 748 } 749 } 750 if (toolForm.dataset.type === "2") { 751 history.pushState({}, null, "".concat(location.origin).concat(location.pathname, "?username=").concat(resp.data.basic.username, "&channel_id=").concat(resp.data.basic.id)) 752 } else { 753 history.pushState({}, null, "".concat(location.origin).concat(location.pathname, "?username=").concat(resp.data.basic.username)) 754 } 755 resetCaptcha() 756 } else { 757 toolError.innerText = resp.error; 758 toolError.classList.remove("hidden"); 759 resetCaptcha() 760 } 761 }, function(e) { 762 toolForm.classList.remove("preload") 763 }) 764 } 765 var calcSuggester = KYB.channelsSuggest.init(form, { 766 type: form.dataset.type ? form.dataset.type : false, 767 hideRecent: form.dataset.type === "2" || form.dataset.type === "3" ? true : false, 768 action: false, 769 onInput: function onInput() { 770 if (form.querySelector(".kyb-error")) { 771 form.querySelector(".kyb-error").remove() 772 } 773 toolError.classList.add("hidden"); 774 document.getElementById("toolCaptcha").classList.remove("hidden") 775 }, 776 onSubmit: function onSubmit(data) { 777 toolError.classList.add("hidden"); 778 document.getElementById("toolCaptcha").classList.remove("hidden", "animate__headShake"); 779 if (typeof grecaptcha != "undefined") { 780 grecaptcha.ready(function() { 781 if (toolCaptchaToken) { 782 toolSubmitForm(data, toolCaptchaToken) 783 } else { 784 console.log("Captcha error"); 785 setTimeout(function() { 786 document.getElementById("toolCaptcha").classList.add("animate__headShake") 787 }, 0) 788 } 789 }) 790 } else { 791 toolSubmitForm(data) 792 } 793 } 794 }); 795 if (Object.keys(KYB.getParams()).length && KYB.getParams().username) { 796 document.querySelector(".js-er-search").value = KYB.getParams().username; 797 document.getElementById("toolCaptcha").classList.remove("hidden") 798 } 799 }) 800 } catch (e) { 801 console.log(e) 802 } 803 try { 804 _.each(document.querySelectorAll(".js-tool-tabs"), function(tab) { 805 var cards = _toConsumableArray(document.querySelectorAll("[data-js-free-card]")); 806 var items = tab.getElementsByTagName("li"); 807 tab.addEventListener("click", function(e) { 808 _.each(items, function(el) { 809 el.classList.remove("bg-white", "text-primary") 810 }); 811 e.target.classList.add("bg-white", "text-primary"); 812 if (e.target.dataset.tab === "") { 813 _.each(cards, function(item) { 814 item.style.display = "block" 815 }); 816 return false 817 } 818 var cur = e.target.dataset.tab; 819 cards.map(function(item) { 820 if (item.dataset.jsFreeCard === cur) { 821 item.style.display = "block" 822 } else { 823 item.style.display = "none" 824 } 825 }) 826 }) 827 }) 828 } catch (e) { 829 console.log(e) 830 } 831 try { 832 _.each(document.querySelectorAll(".category-request-form"), function(form) { 833 var categoryInput = form.querySelector('input[type="search"]'), 834 resultItems = _toConsumableArray(form.querySelectorAll(".kyb-suggest--user-link")); 835 categoryInput.addEventListener("input", function(e) { 836 if (categoryInput.value.length < 2) { 837 return false 838 } 839 form.classList.add("kyb-search-bar--form-focus"); 840 var found = resultItems.filter(function(item) { 841 return item.innerText.toLowerCase().indexOf(categoryInput.value) > -1 842 }); 843 var notFound = form.querySelector(".js-not-found");
844 resultItems.forEach(function(item) { 845 if (item.innerText.toLowerCase().indexOf(categoryInput.value) > -1) { 846 item.classList.remove("hidden") 847 } else { 848 item.classList.add("hidden") 849 } 850 }); 851 if (!found.length) { 852 notFound.classList.remove("hidden") 853 } else { 854 notFound.classList.add("hidden") 855 } 856 }) 857 }) 858 } catch (e) { 859 console.log(e) 860 } 861 try { 862 _.each(document.querySelectorAll(".index-request-form"), function(form) { 863 KYB.channelsSuggest.init(form, { 864 showVerified: true, 865 onSubmit: function onSubmit(data) { 866 if (data.redirect) { 867 window.location.href = data.redirect 868 } 869 if (data.type != "ig" && data.link) { 870 var link = KYB.domain + KYB.baseUrl + (!PRODUCTION && KYB.user ? "app/" : "") + data.link; 871 window.location.href = "https://" + (PRODUCTION && KYB.user ? "app." : "") + link 872 } 873 } 874 }) 875 }) 876 } catch (e) { 877 console.log(e) 878 } 879 KYB.imageLoader.add(document.querySelectorAll("[data-image]")); 880 ScrollEvent.notify(window.scrollY, true) 881});
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.