PageSourceSearch

https://cdn.plixi.com/landing/js/index.js

js plixi.com collected 2026-09-24 09:16:38 UTC 45,932 bytes, 881 lines download raw bytes

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.