1(() => { 2 var e = {}, 3 t = {}; 4 t = { 5 get: function (e, t, n) { 6 let r = Array.isArray(t) ? t : t.split('.'), 7 a = e; 8 for (let e of r) if (void 0 === (a = a[e])) return n; 9 return a; 10 }, 11 has: function (e, t) { 12 let n = Array.isArray(t) ? t : t.split('.'), 13 r = e; 14 for (let e of n) { 15 if (!r?.hasOwnProperty(e)) return !1; 16 r = r[e]; 17 } 18 return !0; 19 }, 20 }; 21 var n = JSON.parse('{"version":"2.0.2"}').version, 22 r = {}, 23 a = {}; 24 a = function (e, t) { 25 let n = Object.keys(t).find(n => { 26 let r = t[n].type, 27 a = n && t[n].values, 28 i = !t[n].optional, 29 o = e[n], 30 l = typeof o, 31 c = r && l !== r, 32 f = a && !a.includes(o); 33 return i ? !o || c || f : o && (c || f); 34 }); 35 return void 0 === n; 36 }; 37 var i = {}; 38 i = { 39 event: { event: { type: 'string' }, eventInfo: { optional: !0 } }, 40 listenerOn: { 41 on: { type: 'string' }, 42 handler: { type: 'function' }, 43 scope: { type: 'string', values: ['past', 'future', 'all'], optional: !0 }, 44 path: { type: 'string', optional: !0 }, 45 }, 46 listenerOff: { 47 off: { type: 'string' }, 48 handler: { type: 'function', optional: !0 }, 49 scope: { type: 'string', values: ['past', 'future', 'all'], optional: !0 }, 50 path: { type: 'string', optional: !0 }, 51 }, 52 }; 53 var o = {}; 54 o = { 55 itemType: { 56 DATA: 'data', 57 FCTN: 'fctn', 58 EVENT: 'event', 59 LISTENER_ON: 'listenerOn', 60 LISTENER_OFF: 'listenerOff', 61 }, 62 dataLayerEvent: { CHANGE: 'adobeDataLayer:change', EVENT: 'adobeDataLayer:event' }, 63 listenerScope: { PAST: 'past', FUTURE: 'future', ALL: 'all' }, 64 }; 65 let l = e => [Object, Array].includes((e || {}).constructor) && !Object.entries(e || {}).length; 66 r = function (e, t) { 67 let n = 68 Object.keys(i).find(t => a(e, i[t])) || 69 ('function' == typeof e && o.itemType.FCTN) || 70 ((function (e) { 71 if ('object' != typeof e || null === e) return !1; 72 let t = e; 73 for (; null !== Object.getPrototypeOf(t); ) t = Object.getPrototypeOf(t); 74 return Object.getPrototypeOf(e) === t; 75 })(e) && 76 o.itemType.DATA), 77 r = (function () { 78 let t = Object.keys(e) 79 .filter(e => !Object.keys(i.event).includes(e)) 80 .reduce((t, n) => ((t[n] = e[n]), t), {}); 81 if (!l(t)) return t; 82 })(); 83 return { config: e, type: n, data: r, valid: !!n, index: t }; 84 }; 85 var c = {}; 86 c = function (e) { 87 let t = e.config.on || e.config.off, 88 n = e.config.handler || null, 89 r = e.config.scope || (e.config.on && o.listenerScope.ALL) || null, 90 a = e.config.path || null; 91 return { event: t, handler: n, scope: r, path: a }; 92 }; 93 var f = {}, 94 s = {}; 95 s = { 96 mergeWith: function e(t, n, r) { 97 if (n) 98 return ( 99 t || (t = {}), 100 Object.keys(n).forEach(a => { 101 let i = r ? r(t[a], n[a], a, t) : void 0; 102 (void 0 === i && 103 (i = 104 n[a] === Object(n[a]) && a in t && !Array.isArray(n[a]) ? e(t[a], n[a], r) : n[a]), 105 (t[a] = i)); 106 }), 107 t 108 ); 109 }, 110 cloneDeepWith: function e(t, n) { 111 let r = n ? n(t) : void 0; 112 if (void 0 === r) { 113 if (t === Object(t) && !Array.isArray(t)) { 114 r = {}; 115 let a = Object.keys(t); 116 for (let i = 0; i < a.length; i++) { 117 let o = a[i]; 118 r[o] = e(t[o], n); 119 } 120 } 121 r = structuredClone(t); 122 } 123 return r; 124 }, 125 }; 126 var u = {}, 127 p = {}; 128 function y(e, n) { 129 return !n.data || !e.path || (0, t.has)(n.data, e.path) || p(n.data, e.path); 130 } 131 ((p = function (e, n) { 132 let r = n.substring(0, n.lastIndexOf('.')); 133 for (; r; ) { 134 if ((0, t.has)(e, r)) { 135 let n = (0, t.get)(e, r); 136 if (null == n) return !0; 137 } 138 r = r.substring(0, r.lastIndexOf('.')); 139 } 140 return !1; 141 }), 142 (u = function (e, t) { 143 let n = e.event, 144 r = t.config, 145 a = !1; 146 return ( 147 t.type === o.itemType.DATA 148 ? n === o.dataLayerEvent.CHANGE && (a = y(e, t)) 149 : t.type === o.itemType.EVENT && 150 ((n === o.dataLayerEvent.EVENT || n === r.event) && (a = y(e, t)), 151 t.data && n === o.dataLayerEvent.CHANGE && (a = y(e, t))), 152 a 153 ); 154 })); 155 var d = {}; 156 ((d = function (e, t) { 157 let n = t.event; 158 if (Object.prototype.hasOwnProperty.call(e, n)) { 159 for (let [r, a] of e[n].entries()) if (a.handler === t.handler) return r; 160 } 161 return -1; 162 }), 163 (f = function (e) { 164 let t = {}, 165 n = d.bind(null, t); 166 function r(t, n) { 167 if (u(t, n)) { 168 let r = [(0, s.cloneDeepWith)(n.config)]; 169 t.handler.apply(e.getDataLayer(), r); 170 } 171 } 172 return { 173 register: function (e) { 174 let r = e.event; 175 return Object.prototype.hasOwnProperty.call(t, r) 176 ? -1 === n(e) && (t[e.event].push(e), !0) 177 : ((t[e.event] = [e]), !0); 178 }, 179 unregister: function (e) { 180 let r = e.event; 181 if (Object.prototype.hasOwnProperty.call(t, r)) { 182 if (e.handler || e.scope || e.path) { 183 let a = n(e); 184 a > -1 && t[r].splice(a, 1); 185 } else t[r] = []; 186 } 187 }, 188 triggerListeners: function (e) { 189 let n = (function (e) { 190 let t = []; 191 switch (e.type) { 192 case o.itemType.DATA: 193 t.push(o.dataLayerEvent.CHANGE); 194 break; 195 case o.itemType.EVENT: 196 (t.push(o.dataLayerEvent.EVENT), 197 e.data && t.push(o.dataLayerEvent.CHANGE), 198 e.config.event !== o.dataLayerEvent.CHANGE && t.push(e.config.event)); 199 } 200 return t; 201 })(e);
202 n.forEach(function (n) { 203 if (Object.prototype.hasOwnProperty.call(t, n)) for (let a of t[n]) r(a, e); 204 }); 205 }, 206 triggerListener: function (e, t) { 207 r(e, t); 208 }, 209 }; 210 })); 211 var g = {}, 212 h = s.cloneDeepWith, 213 v = s.mergeWith; 214 ((g = function (e, t) { 215 return ( 216 v(e, t, function (e, t) { 217 if (null == t) return null; 218 }), 219 (e = (function (e, t = e => !e) { 220 return h(e, function e(n) { 221 if (n === Object(n)) { 222 if (Array.isArray(n)) return n.filter(e => !t(e)).map(t => h(t, e)); 223 let r = {}; 224 for (let a of Object.keys(n)) t(n[a]) || (r[a] = h(n[a], e)); 225 return r; 226 } 227 }); 228 })(e, e => null == e)) 229 ); 230 }), 231 (e = function (e) { 232 let a; 233 let i = e || {}, 234 l = [], 235 s = [], 236 u = {}, 237 p = { 238 getState: function () { 239 return u; 240 }, 241 getDataLayer: function () { 242 return l; 243 }, 244 }; 245 function y(e) { 246 u = g(u, e.data); 247 } 248 function d(e) { 249 if (!e.valid) { 250 h(e); 251 return; 252 } 253 function t(e) { 254 return 0 === l.length || e.index > l.length - 1 ? [] : l.slice(0, e.index).map(e => r(e)); 255 } 256 ({ 257 data: function (e) { 258 (y(e), a.triggerListeners(e)); 259 }, 260 fctn: function (e) { 261 e.config.call(l, l); 262 }, 263 event: function (e) { 264 (e.data && y(e), a.triggerListeners(e)); 265 }, 266 listenerOn: function (e) { 267 let n = c(e); 268 switch (n.scope) { 269 case o.listenerScope.PAST: 270 for (let r of t(e)) a.triggerListener(n, r); 271 break; 272 case o.listenerScope.FUTURE: 273 a.register(n); 274 break; 275 case o.listenerScope.ALL: { 276 let r = a.register(n); 277 if (r) for (let r of t(e)) a.triggerListener(n, r); 278 } 279 } 280 }, 281 listenerOff: function (e) { 282 a.unregister(c(e)); 283 }, 284 })[e.type](e); 285 } 286 function h(e) { 287 let t = 288 'The following item cannot be handled by the data layer because it does not have a valid format: ' + 289 JSON.stringify(e.config); 290 console.error(t); 291 } 292 return ( 293 Array.isArray(i.dataLayer) || (i.dataLayer = []), 294 (s = i.dataLayer.splice(0, i.dataLayer.length)), 295 ((l = i.dataLayer).version = n), 296 (u = {}), 297 (a = f(p)), 298 (l.push = function (...e) { 299 if ( 300 (Object.keys(e).forEach(function (t) { 301 let n = e[t], 302 a = r(n); 303 switch ((a.valid || (h(a), delete e[t]), a.type)) { 304 case o.itemType.DATA: 305 case o.itemType.EVENT: 306 d(a); 307 break; 308 case o.itemType.FCTN: 309 (delete e[t], d(a)); 310 break; 311 case o.itemType.LISTENER_ON: 312 case o.itemType.LISTENER_OFF: 313 delete e[t]; 314 } 315 }), 316 e[0]) 317 ) 318 return Array.prototype.push.apply(this, e); 319 }), 320 (l.getState = function (e) { 321 return e ? (0, t.get)(structuredClone(u), e) : structuredClone(u); 322 }), 323 (l.addEventListener = function (e, t, n) { 324 let a = r({ on: e, handler: t, scope: n && n.scope, path: n && n.path }); 325 d(a); 326 }), 327 (l.removeEventListener = function (e, t) { 328 let n = r({ off: e, handler: t }); 329 d(n); 330 }), 331 (function () { 332 for (let e = 0; e < s.length; e++) l.push(s[e]); 333 })(), 334 p 335 ); 336 })); 337 let E = { Manager: e }; 338 ((window.adobeDataLayer = window.adobeDataLayer || []), 339 window.adobeDataLayer.version 340 ? console.warn( 341 `Adobe Client Data Layer v${window.adobeDataLayer.version} has already been imported/initialized on this page. You may be erroneously loading it a second time.` 342 ) 343 : E.Manager({ dataLayer: window.adobeDataLayer })); 344})(); 345//# sourceMappingURL=adobe-client-data-layer.min.js.map
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.