1let producthierarchylist = {}; 2let pageTypeValue = "Invalid Page Configuration"; 3pageFamArr.push(...fixedTagValueUpdate(document.querySelector("#datalayer-listofpagetitles")?.getAttribute("data-pagelist")?.split(',')) ?? '') 4 5let breadcrumbs = document.querySelectorAll('.datalayer-breadcrumb'); 6brudCrumbArray = Array.from(breadcrumbs).map(ele => ele.getAttribute('data-breadcrumb')); 7 8let tempType = document.getElementById("datalayer-pagetype")?.value; 9let tempPageId = document.getElementById("datalayer-productId")?.value; 10let templeadPL = document.getElementById("datalayer-leadPL")?.value; 11let tempdivisionId = document.getElementById("datalayer-divisionId")?.value; 12let templeadDivision = document.getElementById("datalayer-leadDivision")?.value; 13 14 if(tempType?.split("/").pop() == "product-end-family-template" && currentpageID[0] == tempPageId){ 15 if(pageFamArr.length != 0){ 16 producthierarchylist.productCategory = pageFamArr.shift(); 17 const loopcount = pageFamArr.length -2; 18 for (let i = 0; i <= loopcount ; i++){ // Loop to add keys & values to the object 19 let key = "product" + "Sub".repeat(i) + "Family"; 20 producthierarchylist[key] = pageFamArr[i]; 21 } 22 producthierarchylist.productEndFamily = pageFamArr.pop(); 23 } 24 pageTypeValue = Object.keys(producthierarchylist).pop(); 25 let familyNameVal = producthierarchylist[pageTypeValue[pageTypeValue.length -1]] || producthierarchylist[pageTypeValue[pageTypeValue.length -2]]; 26 let newData = {"familyName":familyNameVal,"contentType":"Products"}; 27 let prevData = JSON.parse(sessionStorage.getItem("pageValue")); 28 sessionStorage.setItem("pageValue",JSON.stringify({...prevData, ...newData})); 29 } 30 31 let breadcrumbAllLevels=brudCrumbArray.join(" > ") 32 let pageInfoObject = { 33 pageType: pageTypeValue, 34 language: language, 35 cmsId: cmsId, 36 breadcrumbAllLevels: breadcrumbAllLevels, 37 productHierarchyId: tempPageId, 38 ...producthierarchylist, 39 productLine: templeadPL, 40 division: { 41 divisionName: templeadDivision, 42 divisionId: tempdivisionId 43 } 44 } 45 for(let i=0;i<brudCrumbArray.length;i++){ //Breadcrumbs loop 46 pageInfoObject["breadcrumbLevel"+(i+1)]=brudCrumbArray[i]; 47 } 48 brudCrumbArray=null; 49 50 // Page and user info datalayer 51 window.dataLayer = window.dataLayer || []; 52 window.dataLayer.push({ 53 event: "pageMeta", 54 page: { 55 pageInfo: pageInfoObject 56 }, 57 user: { 58 segment: { 59 ...userDetailsForDataLayer, 60 loggedIn: loggedIn, 61 country: '', 62 VID: VIDValue 63 } 64 } 65 });
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.