1(function(e,t){typeof exports==`object`&&typeof module<`u`?module.exports=t():typeof define==`function`&&define.amd?define([],t):(e=typeof globalThis<`u`?globalThis:e||self,e.codyAnalytics=t())})(this,function(){function e(e){return e?String(e).toLowerCase().replace(/\s+/g,`-`).replace(/[^0-9a-z-]/g,``).replace(/-+/g,`_`):``}function t(t,n=!0){if(!t.id&&!t.name)return null;let r=parseFloat(t.baseunitprice)-parseFloat(t.price),i=r>0?+r.toFixed(2):0,a=t.gaCategory??[],o={item_id:String(t.id??``),item_name:String(t.name??``),price:parseFloat(t.price),item_variant:String(t.variant??``),item_brand:String(t.brand??``),index:t.index??1,affiliation:String(t.affiliation??``),coupon:String(t.coupon??``),location_id:String(t.location_id??``),item_list_name:String(t.list??``),item_list_id:e(t.list),quantity:t.quantity??1,baseunitprice:parseFloat(t.baseunitprice),stylecolourid:String(t.stylecolourid??``),discount:i,item_category:(a[0]??``).trim(),item_category2:(a[1]??``).trim(),item_category3:(a[2]??``).trim(),item_category4:(a[3]??``).trim(),item_category5:(a[4]??``).trim()};return n&&(o.barcode=String(t.barcode??``),o.size=String(t.size??``)),o}function n(e){return e.stylecolourid?e.stylecolourid:(e.item_id||``)+(e.item_variant?`|`+e.item_variant:``)}function r(e){if(!e.id&&!e.name)return null;let t={};for(let n of[`id`,`name`,`creative`,`position`])e[n]!==void 0&&(t[n]=e[n]);return t}var i={categoryPromotionImpression:`Category`,categoryPromotionClick:`Category`,pagebuilderImpression:`Pagebuilder`,pagebuilderClick:`Pagebuilder`,navigationImpression:`Navigation`,navigationClick:`Navigation`};function a(e,t){let n=i[t];return e&&n?`${n} - ${e}`:e}function o({baseProviders:e={},transport:n,remap:r,productSource:i={}}={}){let a=typeof r==`function`?r:t,o=new Map,s=new Map,c=typeof n==`function`?n:()=>{},l=!1;function u(t,n){let r=typeof t==`string`?e[t]:t;if(!r||!r.id)return v;o.set(r.id,d(r));let i=n&&n.transforms;if(i)for(let e of Object.keys(i))s.set(`${r.id}:${e}`,i[e]);return v}function d(e){let t=e.transforms||{};if(t.analyticsEvent)return e;let n=e.id;return{...e,transforms:{...t,analyticsEvent:e=>e[n]==null?null:e[n]}}}function f(e){return typeof e==`function`&&(c=e),v}function p(e){return e&&typeof e.debug==`boolean`&&(l=e.debug),v}function m(e,t){let n=s.get(`${e.id}:${t}`);if(n)return n;let r=e.transforms||{};return r[t]||r.default}function h(e,t){let n,r=i[e],o=r?r(t):t;function s(){return n||(n=(Array.isArray(o)?o.map(e=>e&&e.data?a(e.data,!1):null):[o?a(o):null]).filter(Boolean),n)}return{eventName:e,remap:a,products:s}}function g(e,t){e&&(l&&console.log(`[codyAnalytics] ${t}`,e),typeof c==`function`&&c(e))}function _(e,t){if(!t)return;let n=h(e,t),r=null;for(let i of o.values()){let a=m(i,e);if(typeof a!=`function`)continue;let o;try{o=a(t,n)}catch(t){console.error(`[codyAnalytics] provider "${i.id}" threw for "${e}"`,t);continue}if(o!=null){if(typeof i.sink==`function`){try{i.sink(o,e)}catch(t){console.error(`[codyAnalytics] provider "${i.id}" sink threw for "${e}"`,t)}continue}let t=i.id===`ga4`?o:{[i.id]:o};r=Object.assign(r||{},t)}}g(r,e)}let v={use:u,track:_,setTransport:f,configure:p,push:g};return v}function s(e){window.dataLayer=window.dataLayer||[],window.dataLayer.push(e)}function c(e){document.addEventListener(`click`,t=>{let n=t.target;if(!(n instanceof Element))return;let r=n.closest(`[data-layer]`);if(!r)return;let i;try{i=JSON.parse(r.getAttribute(`data-layer`))}catch(e){console.error(`[codyAnalytics] invalid data-layer JSON`,r,e);return}e(i,`data-layer`)})}function l(e){document.addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&e()}),window.addEventListener(`pagehide`,()=>e())}function u(e,t){if(typeof navigator.sendBeacon!=`function`)return!1;let n=new Blob([JSON.stringify(t)],{type:`application/json`});return navigator.sendBeacon(e,n)}var d=`cody-list-context`,f=e=>String(e?.id??e?.item_id??``),p=e=>String(e?.variantid??e?.barcode??``),m=(e,t)=>{let n=p(t);return!!(n&&e.barcodes?.includes(n))};function h(){try{return JSON.parse(sessionStorage.getItem(d))||null}catch{return _(),null}}function g(e){try{sessionStorage.setItem(d,JSON.stringify(e))}catch{}}function _(){try{sessionStorage.removeItem(d)}catch{}}var v=e=>e.item_list_name?{id:e.item_list_id,name:e.item_list_name}:null;function y(e){let t=v(e);if(!t)return null;let n=p(e);return g({...t,productId:f(e),barcodes:n?[n]:[]}),t}function b(e){if(v(e))return y(e);let t=h();if(!t)return null;let n=f(e);if(!n||!t.productId||t.productId!==n)return _(),null;let r=p(e);return r&&!t.barcodes?.includes(r)&&g({...t,barcodes:[...t.barcodes??[],r]}),{id:t.id,name:t.name}}function x(e){let t=h();return t&&m(t,e)?t:null}function S(e,t,n,r){let i=e.products()[0];if(!i)return null;let a=b(i);return a&&(i.item_list_id=a.id,i.item_list_name=a.name),{event:t,ecommerce:{currency:r||``,value:i.price||0,[n]:[i]}}}function C(e,t){return S(t,`view_item`,`items`,e.currencycode)}function ee(e,t){return S(t,`add_to_wishlist`,`wishlist`,e.gadata&&e.gadata.currencycode)}function te(e,t){let n=t.products()[0];return n?(y(n),{event:`select_item`,ecommerce:{item_list_id:n.item_list_id??`product_list`,item_list_name:n.item_list_name??`Product List`,items:[n]}}):null}function ne(e){let t=e?r(e):null;return t?{event:`promotionClick`,ecommerce:{promoClick:{promotions:[t]}}}:null}function w(e,t){let n=t.products();if(!n.length)return null;let r=n[0];return{event:`view_item_list`,ecommerce:{item_list_id:r?.item_list_id??`category`,item_list_name:r?.item_list_name??`Category`,items:n}}}function T(e){if(e.item_id===void 0&&e.item_name===void 0){let t=r(e);return t&&{creative_name:t.creative,creative_slot:t.position,promotion_id:t.
1id,promotion_name:t.name}}return{creative_name:e.item_name,creative_slot:e.creative_slot,promotion_id:e.item_id,promotion_name:e.item_name}}function E(e){let t=T(e);return t&&{...t,item_id:t.promotion_id,item_name:t.promotion_name}}function D(e){let t=(Array.isArray(e)?e:[e]).map(e=>e?.data||e),n=t.map(E).filter(Boolean),r=t.length?T(t[0]):null;return r?{list:n,first:r}:null}function O(e){let t=e?D(e):null;return t?{event:`select_promotion`,ecommerce:{...t.first,items:[]}}:null}function k(e){let t=e?D(e):null;return t?{event:`view_promotion`,ecommerce:{...t.first,items:t.list}}:null}function A(e){return{event:`eventTracking`,eventCategory:`Category Page`,eventAction:`Click`,eventLabel:e}}function j(e,t){let n=e.stylecolourid||null;return A(`${t||``} - ${n}`)}function re(e){return A(`Add to Cart Hover - ${e.stylecolourid||null} ${e.size||null}`)}function ie(e){let t={event:e.event};return e.ecommerce&&(t.ecommerce=e.ecommerce),t}function ae(e){return{...e,event:`eventTracking`}}var oe={id:`ga4`,transforms:{detail:(e,t)=>C(e,t),productClick:(e,t)=>te(e,t),view_item_list:(e,t)=>w(e,t),productClickWishlist:(e,t)=>ee(e,t),categoryPromotionClick:O,categoryPromotionImpression:k,promoClick:ne,pagebuilderClick:O,pagebuilderImpression:k,navigationClick:O,navigationImpression:k,categoryPageClickAddToCart:e=>re(e),categoryPageClickImageSlider:e=>j(e,`Image Slider`),categoryPageClickVideo:e=>j(e,`Video`),categoryPageClick2WideImage:e=>j(e,`2 Wide Images`),analyticsEvent:e=>ie(e),default:e=>ae(e)}};function se(e,t){let r=t.products()[0];return r?{content_type:`product`,content_ids:[n(r)],content_name:r.item_name||``,value:r.price||0,currency:e.currencycode||``}:null}function M(e,t){let r=t.products();return r.length?{content_type:`product`,content_ids:r.map(n),content_name:r[0].item_list_name??`Category`,content_category:r[0]?.category??`category`}:null}var N={id:`facebook`,transforms:{detail:(e,t)=>se(e,t),view_item_list:(e,t)=>M(e,t)}},P=61440,F=new TextEncoder;function I(e=P){let t=[],n=0,r=e=>F.encode(JSON.stringify(e)).length+1;function i(i){let a=r(i);n+a>e||(t.push(i),n+=a)}return{add:i,drain(){let e=t;return t=[],n=0,e},restore(e){let r=t;t=[],n=0,e.forEach(i),r.forEach(i)},size(){return t.length}}}var L=`/api/insights/discovery`;function R(){return Math.round(performance.now())}function z(e,t){return{t:e,at:R(),...t}}function B(e,t){let n=window.category,r=n&&e&&n.list===e;return{id:t.item_list_id||null,name:e||null,...r&&{type:n.type||null,categoryId:n.categoryid||null}}}var V=e=>e.stylecolourid||e.item_id;function H(e,t){let n=t.products()[0];return n?z(`view_item`,{id:V(n)}):null}function U(e,t){let n=t.products()[0];return n?z(`select_item`,{id:V(n),list:B(e.list,n)}):null}function W(e,t){let n=t.products();return n.length?z(`view_item_list`,{ids:n.map(V),list:B(n[0].item_list_name,n[0])}):null}function G(e,t){let n=t.products()[0];return n?z(`add_to_wishlist`,{id:V(n)}):null}function K(e,t){if(e.item_id===void 0&&e.item_name===void 0){let n=r(e);return n&&{...n,...n.name!==void 0&&{name:a(n.name,t)}}}return{id:e.item_id,name:a(e.item_name,t),slot:e.creative_slot}}function q(e,t){let n=(Array.isArray(e)?e:[e]).map(e=>e?.data||e),r=n.length?K(n[0],t):null;return r?{list:n,first:r}:null}function J(e,t={}){let n=e?q(e,t.eventName):null;return n?z(`select_promotion`,n.first):null}function Y(e,t={}){let n=e?q(e,t.eventName):null;return n?n.list.map(e=>K(e,t.eventName)).filter(Boolean).map(e=>z(`view_promotion`,e)):null}function X(e){return z(`eventTracking`,{category:`Category Page`,action:`Click`,label:e})}function Z(e,t){return X(`${t||``} - ${e.stylecolourid||null}`)}function ce(e){return X(`Add to Cart Hover - ${e.stylecolourid||null} ${e.size||null}`)}function le({endpoint:e=L}={}){let t=I();return{id:`cody`,sink(e){(Array.isArray(e)?e:[e]).forEach(t.add)},flush(){let n=t.drain();n.length&&(u(e,{page:{ms:R()},events:n})||t.restore(n))},transforms:{detail:H,productClick:U,view_item_list:W,productClickWishlist:G,categoryPromotionClick:J,categoryPromotionImpression:Y,promoClick:J,categoryPageClickAddToCart:ce,pagebuilderClick:J,pagebuilderImpression:Y,navigationClick:J,navigationImpression:Y,categoryPageClickImageSlider:e=>Z(e,`Image Slider`),categoryPageClickVideo:e=>Z(e,`Video`),categoryPageClick2WideImage:e=>Z(e,`2 Wide Images`),analyticsEvent:()=>null}}}var Q=le(),$=o({baseProviders:{ga4:oe,facebook:N,cody:Q},transport:s,remap:t,productSource:{productClickWishlist:e=>e.gadata}});return c((e,t)=>$.push(e,t)),l(()=>Q.flush()),$.currentList=x,$});
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.