PageSourceSearch

https://www.linenchest.com/static/version1788913038/frontend/Linen…/en_CA/Lc_Trackers/js/lc-aic-tracking.js

js linenchest.com collected 2026-10-03 19:50:33 UTC 4,875 bytes, 1 lines download raw bytes

1!function(t,e){"use strict";var n=t.LC_AIC_TRACKING||{},r=n.storageKey||"lc_aic_attribution_v1",o=Number(n.attributionTtlMs),u=o>0?o:31536e6,a="";function c(){return Date.now()}function i(){try{var e=JSON.parse(t.localStorage.getItem(r)||"{}"),n=function(t){var e={};return Object.keys(t||{}).forEach((function(n){var r=t[n];(function(t){if(!t)return!0;var e=Number(t.expiresAt);return e>0&&e<=c()})(r)||(e[n]=r)})),e}(e);return JSON.stringify(n)!==JSON.stringify(e)&&s(n),n}catch(t){return{}}}function s(e){try{t.localStorage.setItem(r,JSON.stringify(e))}catch(t){}}function d(){var e=new URLSearchParams(t.location.search);return"1"!==e.get("lc_aic")?null:{sessionId:e.get("lc_aic_sid")||"",productSku:e.get("lc_aic_sku")||"",lang:e.get("lc_aic_lang")||"",source:e.get("lc_aic_src")||"shopping_assistant"}}function f(t){var n;for(n=0;n<t.length;n+=1){var r=e.querySelector(t[n]);if(r){var o=(r.getAttribute("content")||r.getAttribute("data-product-sku")||r.getAttribute("data-sku")||r.textContent||"").trim();if(o)return o}}return""}function l(){var t=e.body?e.body.innerText:"";if(!t)return"";var n=t.match(/\bSKU\s*:?\s*([A-Z0-9-]+)/i);return n?n[1].trim():""}function p(){var t=e.querySelector("#product_addtocart_form")||e.querySelector('form[action*="/checkout/cart/add"]')||e.querySelector('form[data-role="tocart-form"]'),n=t?t.querySelector('[name="qty"]'):null;return{productSku:f(['[itemprop="sku"]',"[data-product-sku]","[data-sku]",".product.attribute.sku .value",".sku .value"])||l(),quantity:n?Number(n.value||"1"):1}}function v(t){var e=[];return t.productSku&&e.push("sku:"+t.productSku.toLowerCase()),e}function g(){var t=i(),e={};return Object.keys(t).forEach((function(n){var r=t[n];if("__latest"!==n&&r&&r.addedToCart&&r.productSku){var o=[r.sessionId||"",r.productSku].join("::").toLowerCase(),u=e[o];(!u||Number(r.addedToCartAt||0)>Number(u.addedToCartAt||0))&&(e[o]=r)}})),Object.keys(e).map((function(t){return e[t]})).sort((function(t,e){return Number(e.addedToCartAt||0)-Number(t.addedToCartAt||0)}))}function k(t){if(t){var e=i();if(v(t).forEach((function(t){delete e[t]})),e.__latest){var n=e.__latest;n.sessionId===t.sessionId&&n.productSku===t.productSku&&delete e.__latest}s(e)}}function S(e,r){var o={event:"lc_aic_"+e,lc_aic_event_name:e,lc_aic:r};t.dataLayer=t.dataLayer||[],t.dataLayer.push(o),"function"==typeof t.dispatchEvent&&"function"==typeof t.CustomEvent&&t.dispatchEvent(new t.CustomEvent("lc_aic_tracking",{detail:o})),"function"==typeof n.onEvent&&n.onEvent(e,r),n.endpoint&&"function"==typeof t.fetch&&t.fetch(n.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({eventType:e,sessionId:r.sessionId,lang:r.lang,source:r.source,products:r.products||(r.productSku?[{productSku:r.productSku,quantity:r.quantity}]:[]),quantity:r.quantity}),keepalive:!0,credentials:"omit"}).catch((function(){}))}function y(){var e=(t.location.pathname||"").toLowerCase();return-1!==e.indexOf("/checkout/onepage/success")||-1!==e.indexOf("/onepage/success")}function _(){!function(){var t=d();if(t&&t.sessionId){var e=p(),n={sessionId:t.sessionId,lang:t.lang,source:t.source,productSku:e.productSku||t.productSku};(function(t){var e,n=i(),r={createdAt:e=c(),expiresAt:e+u},o=Object.assign({},t,r);v(o).forEach((function(t){n[t]=o})),n.__latest=o,s(n)})(n),S("view_page",{sessionId:n.sessionId,lang:n.lang,source:n.source,productSku:n.productSku})}}(),e.addEventListener("lc:add-to-cart-product",(function(t){!function(t){if(e=d(),Boolean(e&&e.sessionId)){var e,n=String(t.parentSku||"").trim(),r=String(t.productSku||"").trim();if(r){var o=function(t){var e,n=i(),r=v(t);for(e=0;e<r.length;e+=1)if(n[r[e]])return n[r[e]];return n.__latest||null}({productSku:n});if(o){var u=[o.sessionId,r,t.quantity||1].join("::");if(u!==a){a=u;var f=function(t,e,n){var r=i(),o=r["sku:"+String(e||"").toLowerCase()],u=o&&o.sessionId===t.sessionId&&Number(o.quantity)||0,a=Object.assign({},t,{productSku:e,quantity:u+(Number(n)||1),addedToCart:!0,addedToCartAt:c()});return v(a).forEach((function(t){r[t]=a})),r.__latest=a,s(r),a}(o,r,t.quantity);S("add_to_cart",{sessionId:f.sessionId,lang:f.lang,source:f.source,productSku:f.productSku,quantity:Number(t.quantity)||1})}}}}}(t&&t.detail?t.detail:{})})),function(){if(-1!==(t.location.pathname||"").toLowerCase().indexOf("/checkout")&&!y()){var e=g();if(e.length){var n=e[0],r=e.map((function(t){return{productSku:t.productSku,quantity:Number(t.quantity)||1}}));S("checkout_page",{sessionId:n.sessionId,lang:n.lang,source:n.source,products:r})}}}(),function(){if(y()){var t=g();if(t.length){var e=t[0],n=t.map((function(t){return{productSku:t.productSku,quantity:Number(t.quantity)||1}}));S("order_placed",{sessionId:e.sessionId,lang:e.lang,source:e.source,products:n}),t.forEach(k)}}}()}"loading"===e.readyState?e.addEventListener("DOMContentLoaded",_):_()}(window,document);

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.