PageSourceSearch

https://town-country-market.com/wp-content/themes/svt/js/handle-embed.js?ver=1791092785

js town-country-market.com collected 2026-10-04 05:47:44 UTC 32,028 bytes, 630 lines download raw bytes

1
2(function($) {
3
4    var products = '';
5
6    let isFramePostedBefore = false;
7
8    function postDataToIframe() {
9        var iframe = $('.svt-embed:visible').get(0);
10        if(typeof iframe == "undefined" || $('.svt-popup-embed:visible').length) {
11            iframe = $('.svt-popup-embed:visible').get(0);
12        }
13        // console.log(iframe);
14        if(typeof iframe != "undefined") {
15            var id = iframe.id;
16            if(id != "search-embed" && id != "category-embed" && id != "product-embed") {
17                selectedLocation = sessionStorage.getItem('ls.location');
18                selectedPricelist = sessionStorage.getItem('ls.selectedPriceList');
19                allLocation = sessionStorage.getItem('ls.allLocations');
20                var payloadData = {
21                    selectedLocation: JSON.parse(selectedLocation),
22                    selectedPriceList: JSON.parse(selectedPricelist)
23                }
24                let pListName = getUrlParameter('pListName');
25                if(pListName !== null && id != "popup-login-embed") {
26                    pListName = pListName.toLowerCase();
27                    if(pListName == 'catering') {
28                        const cateringPricelist = localStorage.getItem('ls.cateringPriceListID');
29                        payloadData.selectedPriceList = JSON.parse(cateringPricelist);
30                    }
31                    if(pListName == 'deli') {
32                        const deliPriceList = localStorage.getItem('ls.deliPriceList');
33                        payloadData.selectedPriceList = JSON.parse(deliPriceList);
34                    }
35                }
36                let plist = getUrlParameter('plist');
37                if(plist !== null && id != "popup-login-embed") {
38                    plist = plist.toLowerCase();
39                    if(plist == 'catering') {
40                        const cateringPricelist = localStorage.getItem('ls.cateringPriceListID');
41                        payloadData.selectedPriceList = JSON.parse(cateringPricelist);
42                    }
43                    if(plist == 'deli') {
44                        const deliPriceList = localStorage.getItem('ls.deliPriceList');
45                        payloadData.selectedPriceList = JSON.parse(deliPriceList);
46                    }
47                }
48                let pricelistData = $(iframe).attr('data-pricelist');
49                if(pricelistData !== null && typeof pricelistData !== "undefined" && id != "popup-login-embed") {
50                    pricelistData = JSON.parse(pricelistData);
51                    payloadData.selectedPriceList = pricelistData;
52                }
53                if(allLocation != null) {
54                    allLocationData = JSON.parse(allLocation);
55                    payloadData.allLocations = allLocationData;
56                }
57                if(id == 'order-detail-embed') {
58                    var orderLocation = getUrlParameter('l');
59                    var orderPricelist = getUrlParameter('p');
60                    if(allLocation != null) {
61                        allLocationData = JSON.parse(allLocation);
62                        payloadData.allLocations = allLocationData;
63                        const filteredLocations = allLocationData.filter((location) => location.uniqueName === orderLocation);
64                        if(filteredLocations.length) {
65                            var orderPlistData = filteredLocations[0].priceLists;
66                            const filteredPList = orderPlistData.filter((plist) => plist.uniqueName === orderPricelist);
67                            if(filteredPList.length) {
68                                payloadData.selectedLocation = filteredLocations[0];
69                                payloadData.selectedPriceList = filteredPList[0];
70                            }
71                        }
72                    }
73                }
74                user = localStorage.getItem('user');
75                // console.log(user);
76                const loggedIn = isUserLoggedIn();
77                if(loggedIn) {
78                    const basket = JSON.parse(localStorage.getItem('basket'));
79                    const shoppingLists = JSON.parse(sessionStorage.getItem('shoppingLists'));
80                    if(user != null) {
81                        payloadData.user = JSON.parse(user);
82                    }
83                    if(basket != null) {
84                        payloadData.basket = basket;
85                    }
86                    if(shoppingLists != null) {
87                        payloadData.shoppingLists = shoppingLists;
88                    }
89
90                    const coupons = JSON.parse(sessionStorage.getItem('buyAgainCoupons'));
91                    if(coupons != null && (id == "popup-promotion-embed" || id == "popup-pdp-embed")) {
92                        payloadData.birdziCouponList = coupons;
93                    }
94                }
95                /*if(id == "category-embed" || id == "search-embed") {
96                    payloadData.productList = {
97                        products: products.products.products,
98                        healthClaims: products.products.healthClaims,
99                        promotions: products.products.promotions
100                    }
101                }*/
102                //iframe.onload = function() {
103                    $('.svt-embed-wrap .bouncing-loader').hide();
104                    $('.svt-popup-content .bouncing-loader').hide();
105                    console.log('****************** ON READY ***************************');
106                    // if(allProducts && id == "popup-promotion-embed") {
107                    //     payloadData.productList = allProducts;
108                    // }
109                    if(Object.keys(productsArr).length > 0) {
110                        const priceListID = payloadData.selectedPriceList.uniqueName;
111                        console.log(productsArr[priceListID]);
112                        if(typeof productsArr[priceListID] != "undefined" && (id == "popup-pdp-embed" || id == "popup-promotion-embed")) {
113                            payloadData.productList = productsArr[priceListID];
114                        }
115                        // payloadData.productList = allProducts;
116                    }
117                    // const forterToken = getCookie('forterToken');
118                    // if(forterToken != null) {
119                    //     payloadData.forterToken = forterToken;
120                    // }
121                    console.log(payloadData);
122                    iframe.contentWindow.postMessage(
123                        {
124                            type: 'INIT', 
125                            timestamp: Date.now(), 
126                            payload: payloadData
127                        },'*');
128                //}
129            }
130        }
131    }
132
133    function loadProductListEmbeds(iframe, productsData, pricelistData) {
134        if (!iframe) {
135            console.error("Iframe not found");
136            return;
137        }
138        
139        const iframeID = iframe.id;
140        let src = iframe.dataset.src;
141        
142        if (iframeID === "category-embed" || iframeID == "product-embed" || iframeID === "search-embed") {
143            // Retrieve localStorage and sessionStorage data only once for performance
144            const selectedLocation = sessionStorage.getItem('ls.location');
145            const selectedPricelist = sessionStorage.getItem('ls.selectedPriceList');
146            const user = localStorage.getItem('user');
147
148            if(typeof pricelistData == "undefined" || pricelistData == null || pricelistData == '') {
149                pricelistData = selectedPricelist;
150            }
151
152            const payloadData = {
153                selectedLocation: selectedLocation ? JSON.parse(selectedLocation) : null,
154                selectedPriceList: pricelistData ? JSON.parse(pricelistData) : null,
155                user: user ? JSON.parse(user) : null,
156                productList: {
157                    products: productsData.products,
158                    healthClaims: productsData.healthClaims,
159                    promotions: productsData.promotions
160                }
161            };
162
163            if(src.indexOf('locName') == -1 && iframeID != "product-embed") {
164                let selectedLocation = sessionStorage.getItem('ls.location');
165                if(selectedLocation != null) {
166                    selectedLocation = JSON.parse(selectedLocation);
167                    if(src.indexOf('?') > -1) {
168                        src += '&locName='+selectedLocation.locName;
169                    }
170                    else {
171                        src += '?locName='+selectedLocation.locName;
172                    }
173                }
174                let selectedPricelist = sessionStorage.getItem('ls.selectedPriceList');
175                if(typeof pricelistData != "undefined") {
176                    selectedPricelist = pricelistData;
177                }
178                if(selectedPricelist != null) {
179                    selectedPricelist = JSON.parse(selectedPricelist);
180                    // console.log(selectedPricelist);
181                    if(src.indexOf('?') > -1) {
182                        src += '&pListName='+selectedPricelist.pListName;
183                    }
184                    else {
185                        src += '?pListName='+selectedPricelist.pListName;
186                    }
187                }
188            }
189
190            allLocation = sessionStorage.getItem('ls.allLocations');
191            if(allLocation != null) {
192                allLocationData = JSON.parse(allLocation);
193                payloadData.allLocations = allLocationData;
194            }
195
196            const forterToken = getCookie('forterToken');
197            if(forterToken != null) {
198                payloadData.forterToken = forterToken;
199            }
200
201            const loggedIn = isUserLoggedIn();
202            if(loggedIn) {
203                const basket = JSON.parse(localStorage.getItem('basket'));
204                const shoppingLists = JSON.parse(sessionStorage.getItem('shoppingLists'));
205                if(user != null) {
206                    payloadData.user = JSON.parse(user);
207                }
208                if(basket != null) {
209                    payloadData.basket = basket;
210                }
211                if(shoppingLists != null) {
212                    payloadData.shoppingLists = shoppingLists;
213                }
214
215                const coupons = JSON.parse(sessionStorage.getItem('buyAgainCoupons'));
216                if(coupons != null) {
217                    payloadData.birdziCouponList = coupons;
218                }
219            }
220            
221            iframe.src = src;
222            iframe.onload = () => {
223                isFramePostedBefore = true;
224                console.log('Iframe loaded, posting message to iframe content window.');
225                console.log(payloadData);
226                $('.svt-embed-wrap .bouncing-loader').hide();
227                iframe.contentWindow.postMessage({
228                    type: 'INIT',
229                    timestamp: Date.now(),
230                    payload: payloadData
231                }, '*');
232            };
233        }
234    }
235    
236    window.addEventListener('CACHE_DATA_READY', function(event) {
237        const iframeEl = document.querySelector('.svt-embed'); 
238        if(iframeEl != null) {
239            if(iframeEl.id == "category-embed" || iframeEl.id == "product-embed" || iframeEl.id == "search-embed") {
240                productsData = event.detail.data;
241                const plist = getUrlParameter('plist') || getUrlParameter('pListName');
242                // console.log('hasPlistParam', hasPlistParam);
243                if(plist != null) {
244                    if(plist == 'catering') {
245                        const cateringPricelist = localStorage.getItem('ls.cateringPriceListID');
246                        const cateringPricelistID = getCookie('cateringPriceListID');
247                        const priceListType = event.detail.priceListType;
248                        if(priceListType == cateringPricelistID) {
249                            loadProductListEmbeds(iframeEl, productsData, cateringPricelist);
250                        }
251                    }
252                    if(plist == 'deli') {
253                        const deliPriceList = localStorage.getItem('ls.deliPriceList');
254                        const deliPriceListID = getCookie('deliPriceListID');
255                        const priceListType = event.detail.priceListType;
256                        // console.log(priceListType == deliPriceListID);
257                        if(priceListType == deliPriceListID) {
258                            loadProductListEmbeds(iframeEl, productsData, deliPr
258iceList);
259                        }
260                    }
261                }
262                else {
263                    loadProductListEmbeds(iframeEl, productsData);
264                }
265            }
266        }
267    });
268
269    $(document).ready(function() {
270
271        // Cache DOM selection and variables outside loops
272        const iframeEl = document.querySelector('.svt-embed'); 
273        let products = '';
274        let dataFetched = false;
275        if(iframeEl != null) {
276            if(iframeEl.id == "category-embed" || iframeEl.id == "product-embed" || iframeEl.id == "search-embed") {
277                const plist = getUrlParameter('plist') || getUrlParameter('pListName');
278                if(plist != null) {
279                    if(plist == 'catering') {
280                        const cateringPricelistID = getCookie('cateringPriceListID');
281                        console.log('Catering Pricelist Fetch');
282                        loadProductListbyPL( cateringPricelistID );
283                    }
284                    if(plist == 'deli') {
285                        const deliPricelistID = getCookie('deliPriceListID');
286                        console.log('Deli Pricelist Fetch');
287                        loadProductListbyPL( deliPricelistID );
288                    }
289                }
290                // Optimize by switching from setInterval to requestIdleCallback for performance
291                function checkDataAndLoad() {
292                    getDataFromIndexedDB('products')
293                        .then(data => {
294                            if (data) {
295                                products = data.products;
296                                // loadProductListEmbeds(iframeEl, products);
297                                dataFetched = true;  // Mark as fetched to prevent unnecessary checks
298                            }
299                        })
300                        .catch(error => {
301                            console.error("Error fetching data from IndexedDB:", error);
302                        });
303                }
304
305                // Use a one-time polling with a backoff strategy for efficient retries
306                function initiateDataChecker() {
307                    let attempts = 0;
308                    const maxAttempts = 5;
309                    const backoffDelay = 1000; // 1 second delay
310
311                    function tryFetchData() {
312                        if (!dataFetched && attempts < maxAttempts) {
313                            checkDataAndLoad();
314                            attempts++;
315                            setTimeout(tryFetchData, backoffDelay);
316                        }
317                    }
318                    tryFetchData(); // Initiate the first fetch attempt
319                }
320
321                initiateDataChecker();  // Start the data checking process
322            }
323        }
324
325        if($('.svt-embed').length) {
326            var id = $('.svt-embed').attr('id');
327            var src = $('.svt-embed').attr('data-src');
328            var param = $('.svt-embed').attr('data-param');
329            if(id != "search-embed" && id != "category-embed" && id != "product-embed") {
330                if(typeof src != "undefined") {
331                    if(src.indexOf('[svt_embed_base_url]') > -1) {
332                        src = src.replace('[svt_embed_base_url]',embeddata.svt_embed_base_url);
333                    }
334                    if(typeof param != 'undefined' && (param != 'p' && param != 'l')) {
335                        var paramVal = getUrlParameter(param);
336                        if(typeof paramVal != 'undefined' && id != "search-embed") {
337                            paramVal = paramVal.replace(/[^a-zA-Z0-9\-]/g, "");
338                            paramVal = paramVal.replace('+', "");
339                            src += paramVal;
340                        }
341                        else if(id == "search-embed") {
342                            src += encodeURI(paramVal);
343                        }
344                    }
345                    if(id == "search-embed" || id != "product-embed") {
346                        var subcat = getUrlParameter('subcat');
347                        if(typeof subcat != "undefined" && subcat != false && subcat != null) {
348                            subcat = subcat.replace(/[^a-zA-Z]/g, "");
349                            subcat = subcat.replace('+', "");
350                            src += '?subcategory='+subcat;
351                        }
352                        let selectedLocation = sessionStorage.getItem('ls.location');
353                        if(selectedLocation != null && (id != "product-embed" && id != "popup-pdp-embed")) {
354                            selectedLocation = JSON.parse(selectedLocation);
355                            if(src.indexOf('?') > -1) {
356                                src += '&locName='+selectedLocation.locName;
357                            }
358                            else {
359                                src += '?locName='+selectedLocation.locName;
360                            }
361                        }
362                        let selectedPricelist = sessionStorage.getItem('ls.selectedPriceList');
363                        let pListName = getUrlParameter('pListName');
364                        if(pListName == 'catering') {
365                            const cateringPricelist = localStorage.getItem('ls.cateringPriceListID');
366                            selectedPricelist = cateringPricelist;
367                        }
368                        if(selectedPricelist != null && id != "product-embed") {
369                            selectedPricelist = JSON.parse(selectedPricelist);
370                            console.log(selectedPricelist);
371                            if(src.indexOf('?') > -1) {
372                                src += '&pListName='+selectedPricelist.pListName;
373                            }
374                            else {
375                                src += '?pListName='+selectedPricelist.pListName;
376                            }
377                        }
378                    }
379                    $('.svt-embed').attr('src',src);
380                }
381                // postDataToIframe();
382            }
383        }
384        
385        $(window).on('CACHE_DATA_READY',function(event) {
386            if(allProducts.length == 0) {
387                allProducts = event.detail.data;
388            }
389        });
390
391        $(window).on('message', function(e) {
392            // Cache commonly accessed elements outside the event
393            var iframeObj = $('iframe');
394            var iframe = $('#popup-login-embed');
395            var shortNameElement = $('.short-name');
396            var popupEmbed = $('.svt-popup-embed');
397            var popupWrap = $('.svt-popup-wrap');
398            var addToCartAction = $('.add-to-cart-action');
399            var hsBestDealsProducts = $('.hs-best-deals-products');
400
401            // Check origin for security
402            if (e.originalEvent.origin !== embeddata.svt_embed_base_url) {
403                return;
404            }
405
406            if (e.originalEvent.data) {
407                var response = e.originalEvent.data;
408                var user;
409
410                // console.log(response);
411
412                if (response.type === 'LOGIN') {
413                    user = response.payload.user;
414                    var redirect = iframe.attr('data-redirect');
415
416                    // Store user data in cookies and local/session storage
417                    var userString = JSON.stringify(user);
418                    // $.cookie('usr', userString);
419                    setUserCookie();
420                    $('body').addClass('hs-logged-in');
421                    localStorage.setItem('user', userString);
422                    const shortName = user.firstName+' '+(user.lastName).substring(0,1)+'.';
423                    shortNameElement.html(shortName);
424                    popupEmbed.removeAttr('src');
425                    popupWrap.fadeOut();
426                    addToCartAction.removeClass('login-required');
427                    updateCartCount();
428                    // console.log(allProducts);
429                    // loadBuyAgainProductsData(allProducts);
430                    // loadFeaturedProducts();
431                    // loadPointsHistory();
432                    // loadLifetimeSaving();
433                    if (typeof redirect !== 'undefined') {
434                        window.location.href = redirect;
435                    }
436                    else {
437                        window.location.reload();
438                    }
439                    // sessionStorage.setItem('user', userString);
440
441                    // Send user data via fetch
442                    /*fetch(sitedata.ajax_url, {
443                        method: 'POST',
444                        headers: {
445                            'Content-Type': 'application/x-www-form-urlencoded',
446                        },
447                        body: new URLSearchParams({
448                            action: 'set_user_session',
449                            user: userString
450                        })
451                    })
452                    .then(response => {
453                        if (!response.ok) {
454                            throw new Error('Network response was not ok');
455                        }
456                        return response.json();
457                    })
458                    .then(response => {
459                        $('body').addClass('hs-logged-in');
460
461                        if (response.short_name) {
462                            shortNameElement.html(response.short_name);
463                            popupEmbed.removeAttr('src');
464                            popupWrap.fadeOut();
465                            addToCartAction.removeClass('login-required');
466                            // sitedata.is_logged_in = 1;
467                            // sitedata.userpoints = response.userpoints;
468                            // var uid = response.uid;
469                            // sessionStorage.setItem('wpid',uid
469);
470
471                            updateCartCount();
472                            // console.log(allProducts);
473                            loadBuyAgainProductsData(allProducts);
474                            loadFeaturedProducts();
475
476                            if (typeof redirect !== 'undefined') {
477                                window.location.href = redirect;
478                            }
479                        }
480                    })
481                    .catch(error => {
482                        console.error('Fetch error:', error);
483                    });*/
484                } else if(response.type == 'READY') {
485                    postDataToIframe();
486                    if(iframeObj.length && isFramePostedBefore == true) {
487                        if(iframeObj.attr('id') == 'category-embed' || iframeObj.attr('id') == "product-embed") {
488                            iframeObj.trigger('load');
489                        }
490                    }
491                } else if(response.type == 'SET_LOCATION_PRICELIST') {
492                    var payload = response.payload;
493                    let selectedLocation = payload.selectedLocation;
494                    let selectedPriceList = payload.selectedPriceList;
495                    if(selectedLocation !== null) {
496                        let currentLocation = getCookie('selectedLocation');
497                        if(selectedLocation.uniqueName !== currentLocation) {
498                            console.log('Updating location from message');
499                            sessionStorage.setItem('ls.location',JSON.stringify(selectedLocation));
500                            document.cookie = `selectedLocation=${selectedLocation.uniqueName}; path=/`;
501                            document.cookie = `selectedLocName=${selectedLocation.locName}; path=/`;
502                            const priceLists = selectedLocation.priceLists;
503                            var cateringPricelist = priceLists.filter(priceList => priceList.pListName == "catering" );
504                            if(cateringPricelist.length) {
505                                cateringPricelist = cateringPricelist[0];
506                                document.cookie = `cateringPriceListID=${cateringPricelist.uniqueName}; path=/`;
507                                localStorage.setItem('ls.cateringPriceListID',JSON.stringify(cateringPricelist));
508                            }
509                            var deliPricelist = priceLists.find(p => p.pListName === "deli");
510                            if(deliPricelist.length) {
511                                deliPricelist = deliPricelist[0];
512                                document.cookie = `deliPriceListID=${deliPricelist.uniqueName}; path=/`;
513                                localStorage.setItem('ls.deliPriceList', JSON.stringify(deliPricelist));
514                            }
515                            localStorage.removeItem('basket');
516                            localStorage.setItem("storeName", selectedLocation.name);
517                            document.getElementById('navbar-store-location').innerHTML = selectedLocation.name;
518                            document.getElementById('navbar-store-location-tab').innerHTML = selectedLocation.name;
519                            if (navigator.serviceWorker.controller) {
520                                navigator.serviceWorker.controller.postMessage({ action: 'clear-cache' });
521                            }
522                        }
523                    }
524                    if(selectedPriceList !== null) {
525                        let currentPricelist = getCookie('selectedPriceList');
526                        let pListName = getUrlParameter('plist');
527                        if(selectedPriceList.uniqueName !== currentPricelist && pListName == null) {
528                            console.log('Updating pricelist from message');
529                            document.cookie = `selectedPriceList=${selectedPriceList.uniqueName}; path=/`;
530                            document.cookie = `selectedPListName=${selectedPriceList.pListName}; path=/`;
531                            localStorage.removeItem('basket');
532                            if (navigator.serviceWorker.controller) {
533                                navigator.serviceWorker.controller.postMessage({ action: 'clear-cache' });
534                            }
535                        }
536                    }
537                } else if (response.type === 'NAVIGATION') {
538                    var payload = response.payload;
539                    switch (payload.location) {
540                        case 'HOME':
541                            window.location.href = embeddata.home_url;
542                            break;
543                        case 'CART':
544                            var pListName = payload.params.pListName;
545                            var cartUrl = embeddata.cart;
546                            if(typeof pListName != "undefined") {
547                                cartUrl += '?pListName='+pListName;
548                            }
549                            window.location.href = cartUrl;
550                            break;
551                        case 'CHECKOUT':
552                            var pListName = getUrlParameter('pListName');
553                            var checkoutUrl = embeddata.checkout;
554                            if(typeof pListName != "undefined") {
555                                checkoutUrl += '?pListName='+pListName;
556                            }
557                            window.location.href = checkoutUrl;
558                            break;
559                        case 'MY_ORDERS':
560                            var params = payload.params;
561                            var order = params.order;
562                            window.location.href = embeddata.orderDetails+'?order='+encodeURIComponent(order);
563                            break;
564                        case 'PRODUCTS':
565                            window.location.href = embeddata.home_url;
566                            break;
567                        case 'PRODUCT':
568                            var productID = payload.params.productId;
569                            openPDPPopup(productID);
570                            // window.location.href = embeddata.product + '?product=' + productID;
571                            break;
572                        case 'PRIVACY':
573                            window.location.href = embeddata.home_url+'/privacy-policy/';
574                            break;
575                        case 'TERMS':
576                            window.location.href = embeddata.home_url+'/terms-of-service/';
577                            break;
578                        case 'RECIPES':
579                            window.location.href = embeddata.home_url+payload.directLink;
580                            break;
581                        case 'CONFIRMATION':
582                            window.location.href = embeddata.home_url+'/cart/checkout/confirm/';
583                            break;
584                    } 
585                } else if( response.type == "CART_UPDATE" ) {
586                    var payload = response.payload;
587                    const cart = payload.cart;
588                    localStorage.setItem('basket', JSON.stringify(cart.items));
589                    if(cart.itemsTotal > 0) {
590                        jQuery('.hs-cart-count').html(cart.itemsTotal);
591                        jQuery('.hs-cart-count').addClass('active');
592                    }
593                    else {
594                        jQuery('.hs-cart-count').html('');
595                        jQuery('.hs-cart-count').removeClass('active');
596                    }
597                } else if( response.type == "USER_UPDATE" ) {
598                    var payload = response.payload;
599                    const user = payload.user;
600                    localStorage.setItem('user', JSON.stringify(user));
601                } else if( response.type == "SHOPPING_LISTS_UPDATE" ) {
602                    var payload = response.payload;
603                    const lists = payload.shoppingLists.lists;
604                    sessionStorage.setItem('shoppingLists', JSON.stringify(lists));
605                }
606            }
607        });
608
609        setEmbedHeightForMobile();
610    });
611
612    function setEmbedHeightForMobile() {
613        if(jQuery(window).width() < 768) {
614            const headerHeight = jQuery('.custom_header').outerHeight();
615            jQuery('#cart-embed').css('height', `calc(100vh - ${headerHeight}px)`);
616        }
617        else {
618            jQuery('#cart-embed').css('height', '100vh');
619        }
620   }
621
622   $(window).on('resize', function() {
623        setEmbedHeightForMobile();
624   });
625})(jQuery);
626
627// window.addEventListener('message', function(event) {
628    
629//     console.log('Message received from iframe:', event.data);
630// });

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.