35223 lines
1.7 MiB
35223 lines
1.7 MiB
/*! For license information please see h1-main.js.LICENSE.txt */
|
|
(() => {
|
|
var e, t = {
|
|
471: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
Ay: () => h,
|
|
Wt: () => p,
|
|
ec: () => d
|
|
});
|
|
var r = n(2317),
|
|
o = n(35826),
|
|
i = n(28992),
|
|
a = n(67004),
|
|
s = n(19550),
|
|
c = n(81870),
|
|
u = n(73158),
|
|
l = n(3659),
|
|
f = n(57946),
|
|
d = (0, r.Mz)(function(e) {
|
|
return o.im.selectIsCurrentPageLaunchpad()(e)
|
|
}, function(e) {
|
|
return s.IE.selectCurrentTopPickSavings(e)
|
|
}, function(e) {
|
|
return a.kF.selectVariant(c.x0)(e)
|
|
}, function(e, t, n) {
|
|
return !e && !!((0, u.A)(n) && t > 0 && t < 100)
|
|
}),
|
|
p = (0, r.Mz)(function(e) {
|
|
return s.IE.selectCurrentComparisonShoppingProduct(e)
|
|
}, function(e) {
|
|
return s.IE.selectNumUniqueInStockStores(e)
|
|
}, function(e, t) {
|
|
var n = e && !!e.canonicalClusterId || !1;
|
|
return t <= 1 ? null : n
|
|
});
|
|
const h = (0, r.Mz)(function(e) {
|
|
return o.im.selectIsCurrentPageLaunchpad()(e)
|
|
}, function(e) {
|
|
return f.A.selectCurrentProductPriceInsightsData(e)
|
|
}, function(e) {
|
|
return i.Og.selectCurrentProductOffer(e)
|
|
}, function(e) {
|
|
return s.IE.selectHasViewedWebComparisonForCurrentProduct(e)
|
|
}, function(e) {
|
|
return s.IE.selectIsCurrentProductTopPickInCluster(e)
|
|
}, function(e) {
|
|
return s.IE.selectNumUniqueInStockStores(e)
|
|
}, function(e) {
|
|
return d(e)
|
|
}, function(e) {
|
|
return a.kF.selectVariant(c.x0)(e)
|
|
}, function(e) {
|
|
return a.kF.selectVariant(l.Di)(e)
|
|
}, function(e) {
|
|
return p(e)
|
|
}, function(e, t, n, r, o, i, a, s, c, l) {
|
|
var f = t.priceInsightsVariantState,
|
|
d = t.relativePriceInsights;
|
|
if (e) return null;
|
|
var p = "on" === c;
|
|
if ((0, u.A)(s)) return a && p ? null : l ? {
|
|
hasMoreThanOneStore: i > 1,
|
|
isTopPick: o,
|
|
hasViewedWebComparison: r
|
|
} : null;
|
|
var h = Object.keys(d || {}).length > 0,
|
|
m = !!n,
|
|
g = m && n.isActivated,
|
|
y = (d || {}).numUniqueInStockStores > 1;
|
|
return h ? {
|
|
priceInsightsVariantState: f,
|
|
hasOffer: m,
|
|
offerActivated: g,
|
|
hasMoreThanOneStore: y
|
|
} : {
|
|
priceInsightsVariantState: "none"
|
|
}
|
|
})
|
|
},
|
|
1152: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
Kq: () => o
|
|
});
|
|
var r = n(9666).createContext({
|
|
shadowRoot: null
|
|
}),
|
|
o = r.Provider
|
|
},
|
|
1879: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
A: () => s
|
|
});
|
|
var r = n(32372),
|
|
o = n(3659),
|
|
i = n(81870),
|
|
a = function(e) {
|
|
return function(t) {
|
|
return t && t.experiments && t.experiments.variants && t.experiments.variants[e]
|
|
}
|
|
};
|
|
const s = {
|
|
selectVariant: a,
|
|
selectCurrentTipsContainerVariant: function(e) {
|
|
return a(i.x0)(e)
|
|
},
|
|
selectIsUniversalSaveEnabled: function(e) {
|
|
return "on" === a("droplist_universal_save")(e)
|
|
},
|
|
selectIsStandaloneOffer: function(e) {
|
|
var t = a(r.vE.STANDALONE_OFFERS)(e);
|
|
return [r.LE.CONTROL, r.LE.STANDALONE].includes(t)
|
|
},
|
|
selectFetchFallbackProductEnabled: function(e) {
|
|
return "enabled" === a(o.PU)(e)
|
|
},
|
|
selectProductOffersMode: function(e) {
|
|
return a(r.vE.STANDALONE_OFFERS)(e) === r.LE.TIPS ? "tip" : "standalone"
|
|
},
|
|
selectIsPriceComparisonVariant: function(e) {
|
|
return a(i.x0)(e) === i.yz.NO_CONQUEST
|
|
}
|
|
}
|
|
},
|
|
2481: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
Ay: () => f,
|
|
qL: () => l,
|
|
zA: () => i.A
|
|
});
|
|
var r = n(78655),
|
|
o = n(57490),
|
|
i = n(41299);
|
|
|
|
function a(e) {
|
|
return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, a(e)
|
|
}
|
|
|
|
function s(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function c(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? s(Object(n), !0).forEach(function(t) {
|
|
u(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function u(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != a(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != a(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == a(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
var l = c(c({}, o.A), r.o1);
|
|
const f = r.Ff
|
|
},
|
|
3371: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
Ay: () => f,
|
|
D$: () => i.A,
|
|
Ip: () => l
|
|
});
|
|
var r = n(21189),
|
|
o = n(75400),
|
|
i = n(46397);
|
|
|
|
function a(e) {
|
|
return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, a(e)
|
|
}
|
|
|
|
function s(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function c(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? s(Object(n), !0).forEach(function(t) {
|
|
u(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function u(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != a(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != a(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == a(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
var l = c(c({}, o.A), r.o1);
|
|
const f = r.Ff
|
|
},
|
|
3595: (e, t, n) => {
|
|
"use strict";
|
|
var r = Array.prototype.slice,
|
|
o = n(35251),
|
|
i = Object.keys,
|
|
a = i ? function(e) {
|
|
return i(e)
|
|
} : n(48541),
|
|
s = Object.keys;
|
|
a.shim = function() {
|
|
if (Object.keys) {
|
|
var e = function() {
|
|
var e = Object.keys(arguments);
|
|
return e && e.length === arguments.length
|
|
}(1, 2);
|
|
e || (Object.keys = function(e) {
|
|
return o(e) ? s(r.call(e)) : s(e)
|
|
})
|
|
} else Object.keys = a;
|
|
return Object.keys || a
|
|
}, e.exports = a
|
|
},
|
|
3650: (e, t, n) => {
|
|
"use strict";
|
|
Object.defineProperty(t, "__esModule", {
|
|
value: !0
|
|
}), t.default = void 0;
|
|
var r, o = function(e, t) {
|
|
if (!t && e && e.__esModule) return e;
|
|
if (null === e || "object" != typeof e && "function" != typeof e) return {
|
|
default: e
|
|
};
|
|
var n = u(t);
|
|
if (n && n.has(e)) return n.get(e);
|
|
var r = {
|
|
__proto__: null
|
|
},
|
|
o = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
for (var i in e)
|
|
if ("default" !== i && Object.prototype.hasOwnProperty.call(e, i)) {
|
|
var a = o ? Object.getOwnPropertyDescriptor(e, i) : null;
|
|
a && (a.get || a.set) ? Object.defineProperty(r, i, a) : r[i] = e[i]
|
|
} return r.default = e, n && n.set(e, r), r
|
|
}(n(9666)),
|
|
i = (r = n(86146)) && r.__esModule ? r : {
|
|
default: r
|
|
},
|
|
a = n(22662),
|
|
s = n(37597),
|
|
c = n(72097);
|
|
|
|
function u(e) {
|
|
if ("function" != typeof WeakMap) return null;
|
|
var t = new WeakMap,
|
|
n = new WeakMap;
|
|
return (u = function(e) {
|
|
return e ? n : t
|
|
})(e)
|
|
}
|
|
const l = 500,
|
|
f = 250,
|
|
d = {
|
|
children: i.default.node.isRequired,
|
|
onClose: i.default.func.isRequired,
|
|
open: i.default.bool.isRequired,
|
|
id: i.default.string.isRequired,
|
|
onTransitionEnd: i.default.func
|
|
},
|
|
p = {
|
|
overlay: {
|
|
position: "absolute",
|
|
bottom: 0,
|
|
zIndex: 3,
|
|
width: "100%",
|
|
height: 0,
|
|
transition: "opacity 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms",
|
|
opacity: 0,
|
|
backgroundColor: c.Colors.black
|
|
},
|
|
container: {
|
|
position: "absolute",
|
|
bottom: 0,
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
transition: "max-height 500ms cubic-bezier(0.4, 0, 0.2, 1) 0ms",
|
|
height: "auto",
|
|
maxHeight: e => e,
|
|
width: "100%",
|
|
zIndex: 4,
|
|
borderRadius: "5px",
|
|
backgroundColor: c.Colors.white
|
|
},
|
|
wrapper: {
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
overflow: "hidden",
|
|
opacity: 0,
|
|
transition: "opacity 500ms cubic-bezier(0.4, 0, 0.2, 1) 0ms"
|
|
}
|
|
},
|
|
h = (0, a.createUseStyles)(p),
|
|
m = ({
|
|
children: e,
|
|
open: t,
|
|
onTransitionEnd: n,
|
|
id: r,
|
|
onClose: i
|
|
}) => {
|
|
const [a, c] = (0, o.useState)("0px"), u = h(a), d = (0, o.useRef)(null), p = (0, o.useRef)(null);
|
|
let m;
|
|
const g = e => {
|
|
e.style.opacity = 0, e.style.height = "100%", e.style.transitionDelay = "0ms"
|
|
},
|
|
y = e => {
|
|
e.style.opacity = "0.33"
|
|
};
|
|
return (0, o.useEffect)(() => {
|
|
t && (g(p.current), y(p.current))
|
|
}, [p.current]), (0, o.useEffect)(() => () => {
|
|
clearTimeout(m)
|
|
}, []), o.default.createElement(o.Fragment, null, o.default.createElement(s.Transition, {
|
|
in: t,
|
|
onEnter: g,
|
|
onEntering: y,
|
|
onExiting: e => {
|
|
e.style.transitionDelay = "250ms"
|
|
},
|
|
onExited: e => {
|
|
e.style.opacity = 0, m = setTimeout(() => {
|
|
e.style.height = 0
|
|
}, l)
|
|
},
|
|
timeout: f
|
|
}, o.default.createElement("div", {
|
|
ref: p,
|
|
onClick: i,
|
|
onTransitionEnd: n,
|
|
className: u.overlay,
|
|
"aria-hidden": "true"
|
|
})), o.default.createElement(s.CSSTransition, {
|
|
key: r,
|
|
appear: !0,
|
|
in: t,
|
|
onEnter: e => {
|
|
e.classList.contains("appear") && (e.style.height = a), e.style.maxHeight = a, e.style.transitionDelay = "0ms", d.current.style.transitionDelay = "250ms"
|
|
},
|
|
onEntering: e => {
|
|
e.style.height = "auto", e.style.maxHeight = "calc(100% - 56px)", d.current.style.opacity = 1
|
|
},
|
|
onEntered: e => {
|
|
c(`${e.clientHeight}px`)
|
|
},
|
|
onExit: e => {
|
|
e.style.maxHeight = 0, e.style.transitionDelay = "125ms", d.current.style.opacity = 0, d.current.style.transitionDelay = "0ms", c(0)
|
|
},
|
|
timeout: l
|
|
}, o.default.createElement("div", {
|
|
className: u.container
|
|
}, o.default.createElement("div", {
|
|
ref: d,
|
|
className: u.wrapper
|
|
}, e))))
|
|
};
|
|
m.propTypes = d, m.defaultProps = {
|
|
onTransitionEnd: () => {}
|
|
};
|
|
t.default = m
|
|
},
|
|
3659: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
$f: () => p,
|
|
AX: () => i,
|
|
Di: () => u,
|
|
L5: () => l,
|
|
PU: () => s,
|
|
Q3: () => d,
|
|
fB: () => r,
|
|
nc: () => a,
|
|
ot: () => o,
|
|
s$: () => c,
|
|
yG: () => f
|
|
});
|
|
var r = "personalized_offers_for_unauth_users",
|
|
o = "pop_all_rpc",
|
|
i = "fsacc_gold_to_psb",
|
|
a = "droplist_ocs_collections_popup",
|
|
s = "tips_fetch_fallback_product",
|
|
c = "web_shipping_in_comparisons",
|
|
u = "ext_top_pick_savings_dollar",
|
|
l = "ext_atlas_mismatch",
|
|
f = "merging_fsacc_button_style_change",
|
|
d = "ext_post_purchase_xsell_v1",
|
|
p = "ext_post_purchase_xsell_lo_v2"
|
|
},
|
|
3700: e => {
|
|
var t = {}.toString;
|
|
e.exports = Array.isArray || function(e) {
|
|
return "[object Array]" == t.call(e)
|
|
}
|
|
},
|
|
5350: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
f: () => l
|
|
});
|
|
var r = n(9921),
|
|
o = n(46946),
|
|
i = n(32698);
|
|
|
|
function a(e) {
|
|
return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, a(e)
|
|
}
|
|
|
|
function s(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function c(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? s(Object(n), !0).forEach(function(t) {
|
|
u(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function u(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != a(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != a(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == a(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
var l = function(e) {
|
|
return function(t, n) {
|
|
var a = c(c({}, (0, i.A)(n())), e);
|
|
o.A.sendEvent("tip004034", a), r.A.debug("TIPS_BADGE:".concat(a.event), a)
|
|
}
|
|
}
|
|
},
|
|
6120: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
A: () => f
|
|
});
|
|
var r = n(74438),
|
|
o = n(28655),
|
|
i = (n(10823), n(20392));
|
|
|
|
function a(e) {
|
|
return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, a(e)
|
|
}
|
|
|
|
function s(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function c(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != a(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != a(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == a(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
var u = [o.A],
|
|
l = function(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? s(Object(n), !0).forEach(function(t) {
|
|
c(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}({}, i.A);
|
|
const f = (0, r.U1)({
|
|
reducer: l,
|
|
middleware: u,
|
|
devtools: !1,
|
|
enhancers: []
|
|
})
|
|
},
|
|
6202: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
A: () => a,
|
|
I: () => i
|
|
});
|
|
var r = n(23649),
|
|
o = n(36927),
|
|
i = function() {
|
|
return function(e, t) {
|
|
var n = (0, o.A)(t()).id;
|
|
e(r.Qq.hideFeedbackForm({
|
|
containerId: n
|
|
})), e(r.Qq.resetBottomSheet({
|
|
containerId: n
|
|
}))
|
|
}
|
|
};
|
|
const a = function() {
|
|
return function(e, t) {
|
|
var n = (0, o.A)(t()).id;
|
|
return e(r.Qq.closeBottomSheet({
|
|
containerId: n
|
|
}))
|
|
}
|
|
}
|
|
},
|
|
6362: (e, t, n) => {
|
|
"use strict";
|
|
t.A = void 0;
|
|
var r = c(n(9666)),
|
|
o = n(22662),
|
|
i = c(n(86146)),
|
|
a = n(72097),
|
|
s = c(n(15793));
|
|
|
|
function c(e) {
|
|
return e && e.__esModule ? e : {
|
|
default: e
|
|
}
|
|
}
|
|
const u = {
|
|
onMouseDown: i.default.func,
|
|
onMouseUp: i.default.func
|
|
},
|
|
l = {
|
|
root: {
|
|
display: "flex"
|
|
},
|
|
container: {
|
|
width: "27px",
|
|
height: "100%",
|
|
backgroundColor: a.Colors.main600,
|
|
display: "flex",
|
|
alignItems: "center",
|
|
justifyContent: "center"
|
|
}
|
|
},
|
|
f = (0, o.createUseStyles)(l),
|
|
d = ({
|
|
onMouseDown: e,
|
|
onMouseUp: t
|
|
}) => {
|
|
const n = f();
|
|
return r.default.createElement("div", {
|
|
className: n.root,
|
|
onMouseDown: e,
|
|
onMouseUp: t,
|
|
role: "button",
|
|
tabIndex: "0"
|
|
}, r.default.createElement("div", {
|
|
className: n.container
|
|
}, r.default.createElement(s.default, {
|
|
color: a.Colors.white
|
|
})))
|
|
};
|
|
d.propTypes = u, d.defaultProps = {
|
|
onMouseDown: () => {},
|
|
onMouseUp: () => {}
|
|
};
|
|
t.A = d
|
|
},
|
|
6687: (e, t, n) => {
|
|
"use strict";
|
|
var r = n(18201),
|
|
o = n(33562),
|
|
i = n(79809),
|
|
a = n(1405);
|
|
e.exports = function(e, t, n) {
|
|
if (!e || "object" != typeof e && "function" != typeof e) throw new i("`obj` must be an object or a function`");
|
|
if ("string" != typeof t && "symbol" != typeof t) throw new i("`property` must be a string or a symbol`");
|
|
if (arguments.length > 3 && "boolean" != typeof arguments[3] && null !== arguments[3]) throw new i("`nonEnumerable`, if provided, must be a boolean or null");
|
|
if (arguments.length > 4 && "boolean" != typeof arguments[4] && null !== arguments[4]) throw new i("`nonWritable`, if provided, must be a boolean or null");
|
|
if (arguments.length > 5 && "boolean" != typeof arguments[5] && null !== arguments[5]) throw new i("`nonConfigurable`, if provided, must be a boolean or null");
|
|
if (arguments.length > 6 && "boolean" != typeof arguments[6]) throw new i("`loose`, if provided, must be a boolean");
|
|
var s = arguments.length > 3 ? arguments[3] : null,
|
|
c = arguments.length > 4 ? arguments[4] : null,
|
|
u = arguments.length > 5 ? arguments[5] : null,
|
|
l = arguments.length > 6 && arguments[6],
|
|
f = !!a && a(e, t);
|
|
if (r) r(e, t, {
|
|
configurable: null === u && f ? f.configurable : !u,
|
|
enumerable: null === s && f ? f.enumerable : !s,
|
|
value: n,
|
|
writable: null === c && f ? f.writable : !c
|
|
});
|
|
else {
|
|
if (!l && (s || c || u)) throw new o("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");
|
|
e[t] = n
|
|
}
|
|
}
|
|
},
|
|
7459: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
A: () => a
|
|
});
|
|
var r = n(23649),
|
|
o = n(33118),
|
|
i = n(36927);
|
|
const a = function() {
|
|
var e = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).resetTipsShown,
|
|
t = void 0 === e || e;
|
|
return function(e, n) {
|
|
var a = (0, i.A)(n()).id;
|
|
return e((0, o.F)({
|
|
action: "close_container",
|
|
event: "action"
|
|
})), e(r.Qq.setRecentlyClosedContainer({
|
|
recentlyClosedContainer: !0
|
|
})), setTimeout(function() {
|
|
e(r.Qq.setRecentlyClosedContainer({
|
|
recentlyClosedContainer: !1
|
|
}))
|
|
}, 100), e(r.Qq.closeContainer({
|
|
containerId: a,
|
|
resetTipsShown: t
|
|
}))
|
|
}
|
|
}
|
|
},
|
|
7837: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
A: () => f
|
|
});
|
|
var r = n(44281),
|
|
o = n.n(r),
|
|
i = n(9666),
|
|
a = n(75117),
|
|
s = n(24333);
|
|
|
|
function c(e, t) {
|
|
var n = "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
|
|
if (!n) {
|
|
if (Array.isArray(e) || (n = function(e, t) {
|
|
if (e) {
|
|
if ("string" == typeof e) return u(e, t);
|
|
var n = {}.toString.call(e).slice(8, -1);
|
|
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? u(e, t) : void 0
|
|
}
|
|
}(e)) || t && e && "number" == typeof e.length) {
|
|
n && (e = n);
|
|
var r = 0,
|
|
o = function() {};
|
|
return {
|
|
s: o,
|
|
n: function() {
|
|
return r >= e.length ? {
|
|
done: !0
|
|
} : {
|
|
done: !1,
|
|
value: e[r++]
|
|
}
|
|
},
|
|
e: function(e) {
|
|
throw e
|
|
},
|
|
f: o
|
|
}
|
|
}
|
|
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
|
|
}
|
|
var i, a = !0,
|
|
s = !1;
|
|
return {
|
|
s: function() {
|
|
n = n.call(e)
|
|
},
|
|
n: function() {
|
|
var e = n.next();
|
|
return a = e.done, e
|
|
},
|
|
e: function(e) {
|
|
s = !0, i = e
|
|
},
|
|
f: function() {
|
|
try {
|
|
a || null == n.return || n.return()
|
|
} finally {
|
|
if (s) throw i
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function u(e, t) {
|
|
(null == t || t > e.length) && (t = e.length);
|
|
for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n];
|
|
return r
|
|
}
|
|
|
|
function l() {
|
|
return a.A.getUILanguage()
|
|
}
|
|
const f = {
|
|
formatPrice: function(e) {
|
|
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},
|
|
n = t.country,
|
|
r = t.currencySymbol,
|
|
i = void 0 === r ? "$" : r,
|
|
a = t.precision,
|
|
c = void 0 === a ? e % 1 == 0 ? 0 : 2 : a,
|
|
u = t.compact,
|
|
f = void 0 !== u && u;
|
|
return n ? new Intl.NumberFormat(l(), {
|
|
style: "currency",
|
|
currency: s.A.getCountryCurrencyCode(n),
|
|
minimumFractionDigits: c,
|
|
notation: f ? "compact" : "standard"
|
|
}).format(e) : o().formatMoney(e, i, c, ",", ".")
|
|
},
|
|
getCountryCode: function() {
|
|
return a.A.getCountryCode()
|
|
},
|
|
getMessage: function(e) {
|
|
return a.A.getMessage(e)
|
|
},
|
|
getMessageAndReplace: function(e, t) {
|
|
var n = [],
|
|
r = {};
|
|
Object.keys(t).forEach(function(e) {
|
|
r[e] = 0
|
|
});
|
|
var o, s = a.A.getMessage(e),
|
|
u = 0,
|
|
l = c(s.match(/(\{[A-Z]+\})/g) || []);
|
|
try {
|
|
for (l.s(); !(o = l.n()).done;) {
|
|
var f = o.value,
|
|
d = f.substr(1, f.length - 2);
|
|
d in t && (n.push(s.substring(u, s.indexOf(f, u))), u = s.indexOf(f, u) + f.length, i.isValidElement(t[d]) ? (r[d] += 1, n.push(i.cloneElement(t[d], {
|
|
key: "".concat(d, "-").concat(r[d])
|
|
}))) : n.push(t[d]))
|
|
}
|
|
} catch (e) {
|
|
l.e(e)
|
|
} finally {
|
|
l.f()
|
|
}
|
|
return n.push(s.substring(u)), n
|
|
},
|
|
getUILanguage: l
|
|
}
|
|
},
|
|
8706: (e, t, n) => {
|
|
"use strict";
|
|
Object.defineProperty(t, "__esModule", {
|
|
value: !0
|
|
}), t.default = void 0;
|
|
var r, o = function(e, t) {
|
|
if (!t && e && e.__esModule) return e;
|
|
if (null === e || "object" != typeof e && "function" != typeof e) return {
|
|
default: e
|
|
};
|
|
var n = c(t);
|
|
if (n && n.has(e)) return n.get(e);
|
|
var r = {
|
|
__proto__: null
|
|
},
|
|
o = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
for (var i in e)
|
|
if ("default" !== i && Object.prototype.hasOwnProperty.call(e, i)) {
|
|
var a = o ? Object.getOwnPropertyDescriptor(e, i) : null;
|
|
a && (a.get || a.set) ? Object.defineProperty(r, i, a) : r[i] = e[i]
|
|
} return r.default = e, n && n.set(e, r), r
|
|
}(n(9666)),
|
|
i = (r = n(86146)) && r.__esModule ? r : {
|
|
default: r
|
|
},
|
|
a = n(22662),
|
|
s = n(72097);
|
|
|
|
function c(e) {
|
|
if ("function" != typeof WeakMap) return null;
|
|
var t = new WeakMap,
|
|
n = new WeakMap;
|
|
return (c = function(e) {
|
|
return e ? n : t
|
|
})(e)
|
|
}
|
|
const u = {
|
|
header: i.default.node.isRequired,
|
|
children: i.default.any.isRequired,
|
|
footer: i.default.node
|
|
},
|
|
l = {
|
|
footer: void 0
|
|
},
|
|
f = {
|
|
contentWrapper: {
|
|
overflow: "auto"
|
|
},
|
|
headerShadowCover: {
|
|
position: "relative",
|
|
top: 0,
|
|
height: "3px",
|
|
background: s.Colors.white
|
|
},
|
|
content: {
|
|
padding: "0 24px 16px 24px"
|
|
}
|
|
},
|
|
d = (0, a.createUseStyles)(f),
|
|
p = ({
|
|
header: e,
|
|
footer: t,
|
|
children: n
|
|
}) => {
|
|
const r = d();
|
|
return o.default.createElement(o.Fragment, null, e, o.default.createElement("div", {
|
|
className: r.contentWrapper
|
|
}, o.default.createElement("div", {
|
|
className: r.headerShadowCover
|
|
}), o.default.createElement("div", {
|
|
className: r.content
|
|
}, n)), t)
|
|
};
|
|
p.propTypes = u, p.defaultProps = l;
|
|
t.default = p
|
|
},
|
|
8845: (e, t, n) => {
|
|
"use strict";
|
|
t.Ay = void 0;
|
|
var r = s(n(9666)),
|
|
o = s(n(86146)),
|
|
i = n(22662),
|
|
a = s(n(31371));
|
|
|
|
function s(e) {
|
|
return e && e.__esModule ? e : {
|
|
default: e
|
|
}
|
|
}
|
|
|
|
function c() {
|
|
return c = Object.assign ? Object.assign.bind() : function(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = arguments[t];
|
|
for (var r in n) Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r])
|
|
}
|
|
return e
|
|
}, c.apply(this, arguments)
|
|
}
|
|
const u = (0, i.createUseStyles)({
|
|
root: ({
|
|
background: e,
|
|
classes: t = {}
|
|
}) => ({
|
|
height: "48px",
|
|
display: "flex",
|
|
justifyContent: "center",
|
|
alignItems: "center",
|
|
cursor: "pointer",
|
|
border: "none",
|
|
width: "100%",
|
|
textAlign: "center",
|
|
padding: "10px",
|
|
flexDirection: "row",
|
|
...t.root || {},
|
|
background: e
|
|
}),
|
|
text: ({
|
|
classes: e = {}
|
|
}) => ({
|
|
composes: "title1",
|
|
paddingRight: 6,
|
|
...e.text || {},
|
|
verticalAlign: "middle"
|
|
})
|
|
}),
|
|
l = e => {
|
|
const {
|
|
text: t,
|
|
classes: n,
|
|
icon: o,
|
|
children: i,
|
|
...s
|
|
} = e, l = u(e);
|
|
let f;
|
|
f = i ? "string" == typeof i ? r.default.createElement("div", {
|
|
className: l.text
|
|
}, " ", i, " ") : i : "string" == typeof t ? r.default.createElement("div", {
|
|
className: l.text
|
|
}, " ", t, " ") : t;
|
|
const d = "string" == typeof o ? r.default.createElement(a.default, {
|
|
icon: o
|
|
}) : o;
|
|
return r.default.createElement("button", c({
|
|
tabIndex: 0,
|
|
"aria-label": "honey-tips-navigation-button",
|
|
className: l.root
|
|
}, s), f, d)
|
|
};
|
|
l.propTypes = {
|
|
text: o.default.oneOfType([o.default.string, o.default.node]),
|
|
icon: o.default.oneOfType([o.default.string, o.default.node]),
|
|
background: o.default.string,
|
|
classes: o.default.object,
|
|
children: o.default.oneOfType([o.default.string, o.default.node])
|
|
}, l.defaultProps = {
|
|
text: null,
|
|
icon: null,
|
|
background: "white",
|
|
classes: {},
|
|
children: null
|
|
};
|
|
t.Ay = l
|
|
},
|
|
9098: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
Kq: () => r.Kq,
|
|
Ng: () => r.Ng,
|
|
d4: () => r.d4,
|
|
wA: () => r.wA
|
|
});
|
|
var r = n(27921),
|
|
o = n(82906);
|
|
(0, n(37812).d)(o.r)
|
|
},
|
|
9996: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
A: () => l,
|
|
C: () => u
|
|
});
|
|
var r = n(9098),
|
|
o = n(24010),
|
|
i = n(99507),
|
|
a = n(31311),
|
|
s = n(5735),
|
|
c = n(18802),
|
|
u = {
|
|
SEE_MORE_TIPS: "SEE_MORE_TIPS",
|
|
SEE_DEAL_SUMMARY: "SEE_DEAL_SUMMARY",
|
|
POWERED_BY: "POWERED_BY"
|
|
};
|
|
const l = function() {
|
|
var e = (0, r.d4)(a.A),
|
|
t = ((0, r.d4)(i.A) || {}).categoryId,
|
|
n = ((0, r.d4)(s.A) || []).length > 1,
|
|
l = (0, r.d4)(o.A),
|
|
f = (0, c.A)();
|
|
return e && n ? "Main" !== t && l ? u.SEE_DEAL_SUMMARY : u.SEE_MORE_TIPS : f ? u.POWERED_BY : null
|
|
}
|
|
},
|
|
10408: e => {
|
|
"use strict";
|
|
var t, n, r, o = /[\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
|
|
i = {
|
|
"\b": "\\b",
|
|
"\t": "\\t",
|
|
"\n": "\\n",
|
|
"\f": "\\f",
|
|
"\r": "\\r",
|
|
'"': '\\"',
|
|
"\\": "\\\\"
|
|
};
|
|
|
|
function a(e) {
|
|
return o.lastIndex = 0, o.test(e) ? '"' + e.replace(o, function(e) {
|
|
var t = i[e];
|
|
return "string" == typeof t ? t : "\\u" + ("0000" + e.charCodeAt(0).toString(16)).slice(-4)
|
|
}) + '"' : '"' + e + '"'
|
|
}
|
|
|
|
function s(e, o) {
|
|
var i, c, u, l, f, d = t,
|
|
p = o[e];
|
|
switch (p && "object" == typeof p && "function" == typeof p.toJSON && (p = p.toJSON(e)), "function" == typeof r && (p = r.call(o, e, p)), typeof p) {
|
|
case "string":
|
|
return a(p);
|
|
case "number":
|
|
return isFinite(p) ? String(p) : "null";
|
|
case "boolean":
|
|
case "null":
|
|
return String(p);
|
|
case "object":
|
|
if (!p) return "null";
|
|
if (t += n, f = [], "[object Array]" === Object.prototype.toString.apply(p)) {
|
|
for (l = p.length, i = 0; i < l; i += 1) f[i] = s(i, p) || "null";
|
|
return u = 0 === f.length ? "[]" : t ? "[\n" + t + f.join(",\n" + t) + "\n" + d + "]" : "[" + f.join(",") + "]", t = d, u
|
|
}
|
|
if (r && "object" == typeof r)
|
|
for (l = r.length, i = 0; i < l; i += 1) "string" == typeof(c = r[i]) && (u = s(c, p)) && f.push(a(c) + (t ? ": " : ":") + u);
|
|
else
|
|
for (c in p) Object.prototype.hasOwnProperty.call(p, c) && (u = s(c, p)) && f.push(a(c) + (t ? ": " : ":") + u);
|
|
return u = 0 === f.length ? "{}" : t ? "{\n" + t + f.join(",\n" + t) + "\n" + d + "}" : "{" + f.join(",") + "}", t = d, u
|
|
}
|
|
}
|
|
e.exports = function(e, o, i) {
|
|
var a;
|
|
if (t = "", n = "", "number" == typeof i)
|
|
for (a = 0; a < i; a += 1) n += " ";
|
|
else "string" == typeof i && (n = i);
|
|
if (r = o, o && "function" != typeof o && ("object" != typeof o || "number" != typeof o.length)) throw new Error("JSON.stringify");
|
|
return s("", {
|
|
"": e
|
|
})
|
|
}
|
|
},
|
|
11389: function(e, t, n) {
|
|
var r, o;
|
|
/*! @preserve
|
|
* numeral.js
|
|
* version : 2.0.6
|
|
* author : Adam Draper
|
|
* license : MIT
|
|
* http://adamwdraper.github.com/Numeral-js/
|
|
*/
|
|
r = function() {
|
|
var e, t, n, r, o, i = "2.0.6",
|
|
a = {},
|
|
s = {},
|
|
c = {
|
|
currentLocale: "en",
|
|
zeroFormat: null,
|
|
nullFormat: null,
|
|
defaultFormat: "0,0",
|
|
scalePercentBy100: !0
|
|
},
|
|
u = {
|
|
currentLocale: c.currentLocale,
|
|
zeroFormat: c.zeroFormat,
|
|
nullFormat: c.nullFormat,
|
|
defaultFormat: c.defaultFormat,
|
|
scalePercentBy100: c.scalePercentBy100
|
|
};
|
|
|
|
function l(e, t) {
|
|
this._input = e, this._value = t
|
|
}
|
|
return (e = function(n) {
|
|
var r, o, i, s;
|
|
if (e.isNumeral(n)) r = n.value();
|
|
else if (0 === n || void 0 === n) r = 0;
|
|
else if (null === n || t.isNaN(n)) r = null;
|
|
else if ("string" == typeof n)
|
|
if (u.zeroFormat && n === u.zeroFormat) r = 0;
|
|
else if (u.nullFormat && n === u.nullFormat || !n.replace(/[^0-9]+/g, "").length) r = null;
|
|
else {
|
|
for (o in a)
|
|
if ((s = "function" == typeof a[o].regexps.unformat ? a[o].regexps.unformat() : a[o].regexps.unformat) && n.match(s)) {
|
|
i = a[o].unformat;
|
|
break
|
|
} r = (i = i || e._.stringToNumber)(n)
|
|
} else r = Number(n) || null;
|
|
return new l(n, r)
|
|
}).version = i, e.isNumeral = function(e) {
|
|
return e instanceof l
|
|
}, e._ = t = {
|
|
numberToFormat: function(t, n, r) {
|
|
var o, i, a, c, u, l, f, d = s[e.options.currentLocale],
|
|
p = !1,
|
|
h = !1,
|
|
m = 0,
|
|
g = "",
|
|
y = 1e12,
|
|
v = 1e9,
|
|
b = 1e6,
|
|
_ = 1e3,
|
|
S = "",
|
|
w = !1;
|
|
if (t = t || 0, i = Math.abs(t), e._.includes(n, "(") ? (p = !0, n = n.replace(/[\(|\)]/g, "")) : (e._.includes(n, "+") || e._.includes(n, "-")) && (u = e._.includes(n, "+") ? n.indexOf("+") : t < 0 ? n.indexOf("-") : -1, n = n.replace(/[\+|\-]/g, "")), e._.includes(n, "a") && (o = !!(o = n.match(/a(k|m|b|t)?/)) && o[1], e._.includes(n, " a") && (g = " "), n = n.replace(new RegExp(g + "a[kmbt]?"), ""), i >= y && !o || "t" === o ? (g += d.abbreviations.trillion, t /= y) : i < y && i >= v && !o || "b" === o ? (g += d.abbreviations.billion, t /= v) : i < v && i >= b && !o || "m" === o ? (g += d.abbreviations.million, t /= b) : (i < b && i >= _ && !o || "k" === o) && (g += d.abbreviations.thousand, t /= _)), e._.includes(n, "[.]") && (h = !0, n = n.replace("[.]", ".")), a = t.toString().split(".")[0], c = n.split(".")[1], l = n.indexOf(","), m = (n.split(".")[0].split(",")[0].match(/0/g) || []).length, c ? (e._.includes(c, "[") ? (c = (c = c.replace("]", "")).split("["), S = e._.toFixed(t, c[0].length + c[1].length, r, c[1].length)) : S = e._.toFixed(t, c.length, r), a = S.split(".")[0], S = e._.includes(S, ".") ? d.delimiters.decimal + S.split(".")[1] : "", h && 0 === Number(S.slice(1)) && (S = "")) : a = e._.toFixed(t, 0, r), g && !o && Number(a) >= 1e3 && g !== d.abbreviations.trillion) switch (a = String(Number(a) / 1e3), g) {
|
|
case d.abbreviations.thousand:
|
|
g = d.abbreviations.million;
|
|
break;
|
|
case d.abbreviations.million:
|
|
g = d.abbreviations.billion;
|
|
break;
|
|
case d.abbreviations.billion:
|
|
g = d.abbreviations.trillion
|
|
}
|
|
if (e._.includes(a, "-") && (a = a.slice(1), w = !0), a.length < m)
|
|
for (var O = m - a.length; O > 0; O--) a = "0" + a;
|
|
return l > -1 && (a = a.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1" + d.delimiters.thousands)), 0 === n.indexOf(".") && (a = ""), f = a + S + (g || ""), p ? f = (p && w ? "(" : "") + f + (p && w ? ")" : "") : u >= 0 ? f = 0 === u ? (w ? "-" : "+") + f : f + (w ? "-" : "+") : w && (f = "-" + f), f
|
|
},
|
|
stringToNumber: function(e) {
|
|
var t, n, r, o = s[u.currentLocale],
|
|
i = e,
|
|
a = {
|
|
thousand: 3,
|
|
million: 6,
|
|
billion: 9,
|
|
trillion: 12
|
|
};
|
|
if (u.zeroFormat && e === u.zeroFormat) n = 0;
|
|
else if (u.nullFormat && e === u.nullFormat || !e.replace(/[^0-9]+/g, "").length) n = null;
|
|
else {
|
|
for (t in n = 1, "." !== o.delimiters.decimal && (e = e.replace(/\./g, "").replace(o.delimiters.decimal, ".")), a)
|
|
if (r = new RegExp("[^a-zA-Z]" + o.abbreviations[t] + "(?:\\)|(\\" + o.currency.symbol + ")?(?:\\))?)?$"), i.match(r)) {
|
|
n *= Math.pow(10, a[t]);
|
|
break
|
|
} n *= (e.split("-").length + Math.min(e.split("(").length - 1, e.split(")").length - 1)) % 2 ? 1 : -1, e = e.replace(/[^0-9\.]+/g, ""), n *= Number(e)
|
|
}
|
|
return n
|
|
},
|
|
isNaN: function(e) {
|
|
return "number" == typeof e && isNaN(e)
|
|
},
|
|
includes: function(e, t) {
|
|
return -1 !== e.indexOf(t)
|
|
},
|
|
insert: function(e, t, n) {
|
|
return e.slice(0, n) + t + e.slice(n)
|
|
},
|
|
reduce: function(e, t) {
|
|
if (null === this) throw new TypeError("Array.prototype.reduce called on null or undefined");
|
|
if ("function" != typeof t) throw new TypeError(t + " is not a function");
|
|
var n, r = Object(e),
|
|
o = r.length >>> 0,
|
|
i = 0;
|
|
if (3 === arguments.length) n = arguments[2];
|
|
else {
|
|
for (; i < o && !(i in r);) i++;
|
|
if (i >= o) throw new TypeError("Reduce of empty array with no initial value");
|
|
n = r[i++]
|
|
}
|
|
for (; i < o; i++) i in r && (n = t(n, r[i], i, r));
|
|
return n
|
|
},
|
|
multiplier: function(e) {
|
|
var t = e.toString().split(".");
|
|
return t.length < 2 ? 1 : Math.pow(10, t[1].length)
|
|
},
|
|
correctionFactor: function() {
|
|
return Array.prototype.slice.call(arguments).reduce(function(e, n) {
|
|
var r = t.multiplier(n);
|
|
return e > r ? e : r
|
|
}, 1)
|
|
},
|
|
toFixed: function(e, t, n, r) {
|
|
var o, i, a, s, c = e.toString().split("."),
|
|
u = t - (r || 0);
|
|
return o = 2 === c.length ? Math.min(Math.max(c[1].length, u), t) : u, a = Math.pow(10, o), s = (n(e + "e+" + o) / a).toFixed(o), r > t - o && (i = new RegExp("\\.?0{1," + (r - (t - o)) + "}$"), s = s.replace(i, "")), s
|
|
}
|
|
}, e.options = u, e.formats = a, e.locales = s, e.locale = function(e) {
|
|
return e && (u.currentLocale = e.toLowerCase()), u.currentLocale
|
|
}, e.localeData = function(e) {
|
|
if (!e) return s[u.currentLocale];
|
|
if (e = e.toLowerCase(), !s[e]) throw new Error("Unknown locale : " + e);
|
|
return s[e]
|
|
}, e.reset = function() {
|
|
for (var e in c) u[e] = c[e]
|
|
}, e.zeroFormat = function(e) {
|
|
u.zeroFormat = "string" == typeof e ? e : null
|
|
}, e.nullFormat = function(e) {
|
|
u.nullFormat = "string" == typeof e ? e : null
|
|
}, e.defaultFormat = function(e) {
|
|
u.defaultFormat = "string" == typeof e ? e : "0.0"
|
|
}, e.register = function(e, t, n) {
|
|
if (t = t.toLowerCase(), this[e + "s"][t]) throw new TypeError(t + " " + e + " already registered.");
|
|
return this[e + "s"][t] = n, n
|
|
}, e.validate = function(t, n) {
|
|
var r, o, i, a, s, c, u, l;
|
|
if ("string" != typeof t && (t += "", console.warn && console.warn("Numeral.js: Value is not string. It has been co-erced to: ", t)), (t = t.trim()).match(/^\d+$/)) return !0;
|
|
if ("" === t) return !1;
|
|
try {
|
|
u = e.localeData(n)
|
|
} catch (t) {
|
|
u = e.localeData(e.locale())
|
|
}
|
|
return i = u.currency.symbol, s = u.abbreviations, r = u.delimiters.decimal, o = "." === u.delimiters.thousands ? "\\." : u.delimiters.thousands, !(null !== (l = t.match(/^[^\d]+/)) && (t = t.substr(1), l[0] !== i) || null !== (l = t.match(/[^\d]+$/)) && (t = t.slice(0, -1), l[0] !== s.thousand && l[0] !== s.million && l[0] !== s.billion && l[0] !== s.trillion) || (c = new RegExp(o + "{2}"), t.match(/[^\d.,]/g) || (a = t.split(r)).length > 2 || (a.length < 2 ? !a[0].match(/^\d+.*\d$/) || a[0].match(c) : 1 === a[0].length ? !a[0].match(/^\d+$/) || a[0].match(c) || !a[1].match(/^\d+$/) : !a[0].match(/^\d+.*\d$/) || a[0].match(c) || !a[1].match(/^\d+$/))))
|
|
}, e.fn = l.prototype = {
|
|
clone: function() {
|
|
return e(this)
|
|
},
|
|
format: function(t, n) {
|
|
var r, o, i, s = this._value,
|
|
c = t || u.defaultFormat;
|
|
if (n = n || Math.round, 0 === s && null !== u.zeroFormat) o = u.zeroFormat;
|
|
else if (null === s && null !== u.nullFormat) o = u.nullFormat;
|
|
else {
|
|
for (r in a)
|
|
if (c.match(a[r].regexps.format)) {
|
|
i = a[r].format;
|
|
break
|
|
} o = (i = i || e._.numberToFormat)(s, c, n)
|
|
}
|
|
return o
|
|
},
|
|
value: function() {
|
|
return this._value
|
|
},
|
|
input: function() {
|
|
return this._input
|
|
},
|
|
set: function(e) {
|
|
return this._value = Number(e), this
|
|
},
|
|
add: function(e) {
|
|
var n = t.correctionFactor.call(null, this._value, e);
|
|
|
|
function r(e, t, r, o) {
|
|
return e + Math.round(n * t)
|
|
}
|
|
return this._value = t.reduce([this._value, e], r, 0) / n, this
|
|
},
|
|
subtract: function(e) {
|
|
var n = t.correctionFactor.call(null, this._value, e);
|
|
|
|
function r(e, t, r, o) {
|
|
return e - Math.round(n * t)
|
|
}
|
|
return this._value = t.reduce([e], r, Math.round(this._value * n)) / n, this
|
|
},
|
|
multiply: function(e) {
|
|
function n(e, n, r, o) {
|
|
var i = t.correctionFactor(e, n);
|
|
return Math.round(e * i) * Math.round(n * i) / Math.round(i * i)
|
|
}
|
|
return this._value = t.reduce([this._value, e], n, 1), this
|
|
},
|
|
divide: function(e) {
|
|
function n(e, n, r, o) {
|
|
var i = t.correctionFactor(e, n);
|
|
return Math.round(e * i) / Math.round(n * i)
|
|
}
|
|
return this._value = t.reduce([this._value, e], n), this
|
|
},
|
|
difference: function(t) {
|
|
return Math.abs(e(this._value).subtract(t).value())
|
|
}
|
|
}, e.register("locale", "en", {
|
|
delimiters: {
|
|
thousands: ",",
|
|
decimal: "."
|
|
},
|
|
abbreviations: {
|
|
thousand: "k",
|
|
million: "m",
|
|
billion: "b",
|
|
trillion: "t"
|
|
},
|
|
ordinal: function(e) {
|
|
var t = e % 10;
|
|
return 1 == ~~(e % 100 / 10) ? "th" : 1 === t ? "st" : 2 === t ? "nd" : 3 === t ? "rd" : "th"
|
|
},
|
|
currency: {
|
|
symbol: "$"
|
|
}
|
|
}), e.register("format", "bps", {
|
|
regexps: {
|
|
format: /(BPS)/,
|
|
unformat: /(BPS)/
|
|
},
|
|
format: function(t, n, r) {
|
|
var o, i = e._.includes(n, " BPS") ? " " : "";
|
|
return t *= 1e4, n = n.replace(/\s?BPS/, ""), o = e._.numberToFormat(t, n, r), e._.includes(o, ")") ? ((o = o.split("")).splice(-1, 0, i + "BPS"), o = o.join("")) : o = o + i + "BPS", o
|
|
},
|
|
unformat: function(t) {
|
|
return +(1e-4 * e._.stringToNumber(t)).toFixed(15)
|
|
}
|
|
}), r = {
|
|
base: 1024,
|
|
suffixes: ["B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB"]
|
|
}, o = "(" + (o = (n = {
|
|
base: 1e3,
|
|
suffixes: ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"]
|
|
}).suffixes.concat(r.suffixes.filter(function(e) {
|
|
return n.suffixes.indexOf(e) < 0
|
|
})).join("|")).replace("B", "B(?!PS)") + ")", e.register("format", "bytes", {
|
|
regexps: {
|
|
format: /([0\s]i?b)/,
|
|
unformat: new RegExp(o)
|
|
},
|
|
format: function(t, o, i) {
|
|
var a, s, c, u = e._.includes(o, "ib") ? r : n,
|
|
l = e._.includes(o, " b") || e._.includes(o, " ib") ? " " : "";
|
|
for (o = o.replace(/\s?i?b/, ""), a = 0; a <= u.suffixes.length; a++)
|
|
if (s = Math.pow(u.base, a), c = Math.pow(u.base, a + 1), null === t || 0 === t || t >= s && t < c) {
|
|
l += u.suffixes[a], s > 0 && (t /= s);
|
|
break
|
|
} return e._.numberToFormat(t, o, i) + l
|
|
},
|
|
unformat: function(t) {
|
|
var o, i, a = e._.stringToNumber(t);
|
|
if (a) {
|
|
for (o = n.suffixes.length - 1; o >= 0; o--) {
|
|
if (e._.includes(t, n.suffixes[o])) {
|
|
i = Math.pow(n.base, o);
|
|
break
|
|
}
|
|
if (e._.includes(t, r.suffixes[o])) {
|
|
i = Math.pow(r.base, o);
|
|
break
|
|
}
|
|
}
|
|
a *= i || 1
|
|
}
|
|
return a
|
|
}
|
|
}), e.register("format", "currency", {
|
|
regexps: {
|
|
format: /(\$)/
|
|
},
|
|
format: function(t, n, r) {
|
|
var o, i, a = e.locales[e.options.currentLocale],
|
|
s = {
|
|
before: n.match(/^([\+|\-|\(|\s|\$]*)/)[0],
|
|
after: n.match(/([\+|\-|\)|\s|\$]*)$/)[0]
|
|
};
|
|
for (n = n.replace(/\s?\$\s?/, ""), o = e._.numberToFormat(t, n, r), t >= 0 ? (s.before = s.before.replace(/[\-\(]/, ""), s.after = s.after.replace(/[\-\)]/, "")) : t < 0 && !e._.includes(s.before, "-") && !e._.includes(s.before, "(") && (s.before = "-" + s.before), i = 0; i < s.before.length; i++) switch (s.before[i]) {
|
|
case "$":
|
|
o = e._.insert(o, a.currency.symbol, i);
|
|
break;
|
|
case " ":
|
|
o = e._.insert(o, " ", i + a.currency.symbol.length - 1)
|
|
}
|
|
for (i = s.after.length - 1; i >= 0; i--) switch (s.after[i]) {
|
|
case "$":
|
|
o = i === s.after.length - 1 ? o + a.currency.symbol : e._.insert(o, a.currency.symbol, -(s.after.length - (1 + i)));
|
|
break;
|
|
case " ":
|
|
o = i === s.after.length - 1 ? o + " " : e._.insert(o, " ", -(s.after.length - (1 + i) + a.currency.symbol.length - 1))
|
|
}
|
|
return o
|
|
}
|
|
}), e.register("format", "exponential", {
|
|
regexps: {
|
|
format: /(e\+|e-)/,
|
|
unformat: /(e\+|e-)/
|
|
},
|
|
format: function(t, n, r) {
|
|
var o = ("number" != typeof t || e._.isNaN(t) ? "0e+0" : t.toExponential()).split("e");
|
|
return n = n.replace(/e[\+|\-]{1}0/, ""), e._.numberToFormat(Number(o[0]), n, r) + "e" + o[1]
|
|
},
|
|
unformat: function(t) {
|
|
var n = e._.includes(t, "e+") ? t.split("e+") : t.split("e-"),
|
|
r = Number(n[0]),
|
|
o = Number(n[1]);
|
|
|
|
function i(t, n, r, o) {
|
|
var i = e._.correctionFactor(t, n);
|
|
return t * i * (n * i) / (i * i)
|
|
}
|
|
return o = e._.includes(t, "e-") ? o *= -1 : o, e._.reduce([r, Math.pow(10, o)], i, 1)
|
|
}
|
|
}), e.register("format", "ordinal", {
|
|
regexps: {
|
|
format: /(o)/
|
|
},
|
|
format: function(t, n, r) {
|
|
var o = e.locales[e.options.currentLocale],
|
|
i = e._.includes(n, " o") ? " " : "";
|
|
return n = n.replace(/\s?o/, ""), i += o.ordinal(t), e._.numberToFormat(t, n, r) + i
|
|
}
|
|
}), e.register("format", "percentage", {
|
|
regexps: {
|
|
format: /(%)/,
|
|
unformat: /(%)/
|
|
},
|
|
format: function(t, n, r) {
|
|
var o, i = e._.includes(n, " %") ? " " : "";
|
|
return e.options.scalePercentBy100 && (t *= 100), n = n.replace(/\s?\%/, ""), o = e._.numberToFormat(t, n, r), e._.includes(o, ")") ? ((o = o.split("")).splice(-1, 0, i + "%"), o = o.join("")) : o = o + i + "%", o
|
|
},
|
|
unformat: function(t) {
|
|
var n = e._.stringToNumber(t);
|
|
return e.options.scalePercentBy100 ? .01 * n : n
|
|
}
|
|
}), e.register("format", "time", {
|
|
regexps: {
|
|
format: /(:)/,
|
|
unformat: /(:)/
|
|
},
|
|
format: function(e, t, n) {
|
|
var r = Math.floor(e / 60 / 60),
|
|
o = Math.floor((e - 60 * r * 60) / 60),
|
|
i = Math.round(e - 60 * r * 60 - 60 * o);
|
|
return r + ":" + (o < 10 ? "0" + o : o) + ":" + (i < 10 ? "0" + i : i)
|
|
},
|
|
unformat: function(e) {
|
|
var t = e.split(":"),
|
|
n = 0;
|
|
return 3 === t.length ? (n += 60 * Number(t[0]) * 60, n += 60 * Number(t[1]), n += Number(t[2])) : 2 === t.length && (n += 60 * Number(t[0]), n += Number(t[1])), Number(n)
|
|
}
|
|
}), e
|
|
}, void 0 === (o = "function" == typeof r ? r.call(t, n, t, e) : r) || (e.exports = o)
|
|
},
|
|
13351: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
Ay: () => h,
|
|
dx: () => f,
|
|
yn: () => d
|
|
});
|
|
var r = n(9666),
|
|
o = n(86146),
|
|
i = n.n(o),
|
|
a = n(9098),
|
|
s = n(23649),
|
|
c = n(29020),
|
|
u = n(98119),
|
|
l = n(74428),
|
|
f = {
|
|
tipId: i().string.isRequired,
|
|
templateType: i().oneOf(["card", "teaser", "bottomSheet"]).isRequired,
|
|
isSecondary: i().bool,
|
|
scrollToCard: i().bool
|
|
},
|
|
d = {
|
|
isSecondary: !1,
|
|
scrollToCard: !1
|
|
},
|
|
p = function(e) {
|
|
var t = e.tipId,
|
|
n = e.templateType,
|
|
o = (0, a.d4)(s.fc.selectTipById(t)),
|
|
i = (0, a.d4)((0, l.A)(t)) || {},
|
|
f = (0, r.useMemo)(function() {
|
|
return {
|
|
tipId: t,
|
|
categoryData: i
|
|
}
|
|
}, [i, t]);
|
|
if (!o) return null;
|
|
var d = (0, c.A)(o.template, n);
|
|
if (!d) return null;
|
|
var p = "card" === n ? r.createElement("div", null, r.createElement(d, e)) : r.createElement(d, e);
|
|
return r.createElement(u.A.Provider, {
|
|
value: f
|
|
}, p)
|
|
};
|
|
p.propTypes = f, p.defaultProps = d;
|
|
const h = p
|
|
},
|
|
17940: (e, t, n) => {
|
|
"use strict";
|
|
Object.defineProperty(t, "__esModule", {
|
|
value: !0
|
|
}), Object.defineProperty(t, "BottomSheetFooter", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return r.default
|
|
}
|
|
}), Object.defineProperty(t, "BottomSheetHeader", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return o.default
|
|
}
|
|
}), Object.defineProperty(t, "CardFooter", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return i.default
|
|
}
|
|
}), Object.defineProperty(t, "ContainerLoader", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return a.default
|
|
}
|
|
}), Object.defineProperty(t, "ContainerWithDropdown", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return s.default
|
|
}
|
|
}), Object.defineProperty(t, "DealEstimateContent", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return c.default
|
|
}
|
|
}), Object.defineProperty(t, "Feedback", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return u.default
|
|
}
|
|
}), Object.defineProperty(t, "FeedbackButton", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return l.default
|
|
}
|
|
}), Object.defineProperty(t, "FeedbackRadio", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return f.default
|
|
}
|
|
}), Object.defineProperty(t, "Header", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return d.default
|
|
}
|
|
}), Object.defineProperty(t, "HoneyGoldProgress", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return p.default
|
|
}
|
|
}), Object.defineProperty(t, "HoneyGoldStackedProgress", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return h.default
|
|
}
|
|
}), Object.defineProperty(t, "MiniBadge", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return m.default
|
|
}
|
|
}), Object.defineProperty(t, "MiniBadgeWithTeaser", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return g.default
|
|
}
|
|
}), Object.defineProperty(t, "MovableBadge", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return y.default
|
|
}
|
|
}), Object.defineProperty(t, "Tab", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return v.default
|
|
}
|
|
}), Object.defineProperty(t, "Tooltip", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return b.default
|
|
}
|
|
});
|
|
var r = _(n(70585)),
|
|
o = _(n(33731)),
|
|
i = _(n(76631)),
|
|
a = _(n(97011)),
|
|
s = _(n(23362)),
|
|
c = _(n(49753)),
|
|
u = _(n(86633)),
|
|
l = _(n(90449)),
|
|
f = _(n(80190)),
|
|
d = _(n(96979)),
|
|
p = _(n(17130)),
|
|
h = _(n(26607)),
|
|
m = _(n(89582)),
|
|
g = _(n(22390)),
|
|
y = _(n(72695)),
|
|
v = _(n(75191)),
|
|
b = _(n(5260));
|
|
|
|
function _(e) {
|
|
return e && e.__esModule ? e : {
|
|
default: e
|
|
}
|
|
}
|
|
},
|
|
18522: (e, t, n) => {
|
|
"use strict";
|
|
var r = n(18201),
|
|
o = function() {
|
|
return !!r
|
|
};
|
|
o.hasArrayLengthDefineBug = function() {
|
|
if (!r) return null;
|
|
try {
|
|
return 1 !== r([], "length", {
|
|
value: 1
|
|
}).length
|
|
} catch (e) {
|
|
return !0
|
|
}
|
|
}, e.exports = o
|
|
},
|
|
19550: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
Ay: () => f,
|
|
IE: () => i.A,
|
|
zK: () => l
|
|
});
|
|
var r = n(53996),
|
|
o = n(83221),
|
|
i = n(56628);
|
|
|
|
function a(e) {
|
|
return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, a(e)
|
|
}
|
|
|
|
function s(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function c(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? s(Object(n), !0).forEach(function(t) {
|
|
u(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function u(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != a(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != a(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == a(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
var l = c(c({}, o.A), r.o1);
|
|
const f = r.Ff
|
|
},
|
|
20989: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
SG: () => jr,
|
|
BW: () => Cr,
|
|
Sv: () => Rr
|
|
});
|
|
var r = n(9666),
|
|
o = n(9098),
|
|
i = n(9921),
|
|
a = n(35826),
|
|
s = n(27102),
|
|
c = n(35614),
|
|
u = n(22626),
|
|
l = n(17940),
|
|
f = n(54099),
|
|
d = n(28992),
|
|
p = n(86146),
|
|
h = n.n(p),
|
|
m = n(22662),
|
|
g = (0, m.createUseStyles)({
|
|
layout: {
|
|
position: "fixed",
|
|
top: function(e) {
|
|
return e.top
|
|
},
|
|
right: 16,
|
|
zIndex: 2147483647
|
|
}
|
|
}),
|
|
y = r.forwardRef(function(e, t) {
|
|
var n = e.children,
|
|
o = e.top,
|
|
i = e.onMouseOver,
|
|
a = e.onMouseLeave,
|
|
s = g({
|
|
top: o
|
|
});
|
|
return r.createElement("div", {
|
|
className: s.layout,
|
|
ref: t,
|
|
onMouseOver: i,
|
|
onMouseLeave: a
|
|
}, n)
|
|
});
|
|
y.propTypes = {
|
|
children: h().node,
|
|
top: h().number,
|
|
onMouseOver: h().func,
|
|
onMouseLeave: h().func
|
|
}, y.defaultProps = {
|
|
children: void 0,
|
|
top: 16,
|
|
onMouseOver: function() {},
|
|
onMouseLeave: function() {}
|
|
};
|
|
const v = y;
|
|
var b = n(72097),
|
|
_ = n(23649),
|
|
S = n(36927);
|
|
const w = function() {
|
|
var e = (0, o.wA)(),
|
|
t = (0, o.d4)(S.A) || {},
|
|
n = t.id,
|
|
i = t.notificationBanner,
|
|
a = void 0 === i ? {} : i,
|
|
s = a.showBanner,
|
|
c = void 0 !== s && s,
|
|
u = a.copy,
|
|
l = a.color,
|
|
f = a.ctaAction,
|
|
d = a.ctaCopy;
|
|
return r.createElement(b.NotificationBanner, {
|
|
show: c,
|
|
copy: u,
|
|
color: l,
|
|
ctaAction: f,
|
|
ctaCopy: d,
|
|
src: "UniversalContainer",
|
|
short: !0,
|
|
stackAbove: !0,
|
|
zIndex: 3,
|
|
onClose: function() {
|
|
return e(_.Qq.resetNotificationBanner({
|
|
containerId: n
|
|
}))
|
|
}
|
|
})
|
|
};
|
|
var O = n(7837),
|
|
E = n(50618),
|
|
k = n(70481),
|
|
T = n(28555),
|
|
x = n(84949),
|
|
I = n(5350),
|
|
P = n(33118),
|
|
A = n(2236),
|
|
C = n(6525),
|
|
j = n(7459),
|
|
R = n(64287);
|
|
|
|
function M(e, t) {
|
|
return function(e) {
|
|
if (Array.isArray(e)) return e
|
|
}(e) || function(e, t) {
|
|
var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
|
|
if (null != n) {
|
|
var r, o, i, a, s = [],
|
|
c = !0,
|
|
u = !1;
|
|
try {
|
|
if (i = (n = n.call(e)).next, 0 === t) {
|
|
if (Object(n) !== n) return;
|
|
c = !1
|
|
} else
|
|
for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0);
|
|
} catch (e) {
|
|
u = !0, o = e
|
|
} finally {
|
|
try {
|
|
if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return
|
|
} finally {
|
|
if (u) throw o
|
|
}
|
|
}
|
|
return s
|
|
}
|
|
}(e, t) || function(e, t) {
|
|
if (e) {
|
|
if ("string" == typeof e) return D(e, t);
|
|
var n = {}.toString.call(e).slice(8, -1);
|
|
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? D(e, t) : void 0
|
|
}
|
|
}(e, t) || function() {
|
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
|
|
}()
|
|
}
|
|
|
|
function D(e, t) {
|
|
(null == t || t > e.length) && (t = e.length);
|
|
for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n];
|
|
return r
|
|
}
|
|
var N = function(e, t) {
|
|
var n = (0, S.z)(t());
|
|
e(_.Qq.snoozeContainer({
|
|
containerId: n
|
|
})), Rr(), e((0, I.f)({
|
|
event: "action",
|
|
action: "snooze_page"
|
|
})), e((0, P.F)({
|
|
event: "action",
|
|
action: "snooze"
|
|
}))
|
|
},
|
|
L = function(e) {
|
|
e((0, P.F)({
|
|
event: "action",
|
|
action: "click_settings"
|
|
}))
|
|
},
|
|
F = function(e) {
|
|
var t = e.noClose,
|
|
n = e.customSize,
|
|
i = e.customColor,
|
|
a = (0, o.wA)(),
|
|
s = ((0, o.d4)(E.Ax.selectUser()) || {}).isLoggedIn,
|
|
c = (0, o.d4)(k.VH.selectCurrentStoreId()),
|
|
u = ((0, o.d4)(R.fN) || {}).productId,
|
|
l = (0, o.d4)(C.A),
|
|
f = (0, o.d4)(_.fc.selectConfiguration),
|
|
d = f.links,
|
|
p = void 0 === d ? {} : d,
|
|
h = f.hasExtraSnoozeSettings,
|
|
m = void 0 !== h && h,
|
|
g = p.featureSettings || "https://www.joinhoney.com/settings/feature-settings",
|
|
y = p.debugProduct || "https://dash.joinhoney.com/product-catalog/product?productId={PRODUCT_ID}",
|
|
v = M((0, r.useState)(!1), 2),
|
|
S = v[0],
|
|
w = v[1],
|
|
P = [{
|
|
label: O.A.getMessage("Hide_on_this_page"),
|
|
key: "snooze_page",
|
|
onClick: function() {
|
|
a(N)
|
|
}
|
|
}, {
|
|
label: O.A.getMessage("Snooze_for_24_hours"),
|
|
key: "snooze_24",
|
|
onClick: function() {
|
|
a((0, A.Dg)(1)), w(!1), a((0, I.f)({
|
|
event: "action",
|
|
action: "snooze_24"
|
|
})), Rr()
|
|
}
|
|
}],
|
|
D = s ? {
|
|
label: O.A.getMessage("Go_to_settings"),
|
|
key: "go_to_settings",
|
|
onClick: function() {
|
|
w(!S), window.open(g)
|
|
}
|
|
} : {
|
|
label: O.A.getMessage("Snooze_on_all_sites"),
|
|
key: "snooze_all",
|
|
onClick: function() {
|
|
a((0, A.Dg)(30)), w(!S), a((0, I.f)({
|
|
event: "action",
|
|
action: "snooze_all"
|
|
})), Rr()
|
|
}
|
|
};
|
|
return m && P.push({
|
|
label: O.A.getMessage("Snooze_on_this_site"),
|
|
key: "snooze_store",
|
|
onClick: function() {
|
|
a((0, A.js)(c, 30)), w(!S), a((0, I.f)({
|
|
event: "action",
|
|
action: "snooze_store"
|
|
})), Rr()
|
|
}
|
|
}, D), l && P.push({
|
|
label: O.A.getMessage("Debug_product"),
|
|
key: "debug_product",
|
|
onClick: function() {
|
|
return e = y.replace("{PRODUCT_ID}", u), window.open(e, "_blank"), void a((0, I.f)({
|
|
event: "action",
|
|
action: "click_debug_product"
|
|
}));
|
|
var e
|
|
},
|
|
icon: r.createElement(b.Icon, {
|
|
name: "bug",
|
|
type: "stroke",
|
|
color: b.Colors.grey800,
|
|
style: {
|
|
marginRight: "5px"
|
|
}
|
|
})
|
|
}), r.createElement(r.Fragment, null, r.createElement(T.A, {
|
|
open: S,
|
|
onClick: function() {
|
|
w(!S), a(L)
|
|
},
|
|
options: P,
|
|
customSize: n,
|
|
customColor: i
|
|
}), t ? null : r.createElement(x.A, {
|
|
onClick: function() {
|
|
a((0, j.A)())
|
|
},
|
|
ariaLabel: O.A.getMessage("Close_Honey")
|
|
}))
|
|
};
|
|
F.propTypes = {
|
|
noClose: h().bool,
|
|
customSize: h().number,
|
|
customColor: h().string
|
|
}, F.defaultProps = {
|
|
noClose: null,
|
|
customSize: null,
|
|
customColor: null
|
|
};
|
|
const B = F;
|
|
var U = n(3650),
|
|
G = n(2317),
|
|
$ = (0, G.Mz)(S.A, function(e) {
|
|
return !!(e && e.bottomSheet && e.bottomSheet.isOpen)
|
|
});
|
|
const H = $;
|
|
var z = (0, G.Mz)(S.A, function(e) {
|
|
return !!(e && e.feedbackForm && e.feedbackForm.open)
|
|
});
|
|
const q = z;
|
|
var W = n(83701),
|
|
V = n(33731),
|
|
Y = n(70585),
|
|
J = n(8706),
|
|
K = n(35304),
|
|
Q = n(43189),
|
|
X = n(47516);
|
|
const Z = function(e) {
|
|
var t = e.tipId,
|
|
n = void 0 === t ? "" : t,
|
|
r = e.feedbackOption,
|
|
o = e.feedbackComment;
|
|
return function(e) {
|
|
var t = {
|
|
action: "feedback_detail",
|
|
event: "action",
|
|
feedbackOption: r,
|
|
feedbackComment: o,
|
|
feedback: "thumbs_down_detail",
|
|
tipId: n
|
|
};
|
|
e((0, X.J)(t))
|
|
}
|
|
};
|
|
var ee = (0, G.Mz)(S.A, function(e) {
|
|
return e && e.bottomSheet && e.bottomSheet.tipId
|
|
});
|
|
const te = ee;
|
|
const ne = function(e, t) {
|
|
var n = (0, S.A)(t()),
|
|
r = n.id,
|
|
o = n.feedbackForm,
|
|
i = void 0 === o ? {} : o,
|
|
a = te(t()),
|
|
s = (_.fc.selectTipById(a)(t()) || {}).categoryId,
|
|
c = i.feedbackComment,
|
|
u = i.feedbackOption;
|
|
if (u || (e(_.Qq.setFeedbackFormValidation({
|
|
containerId: r,
|
|
feedbackValidation: O.A.getMessage("Please_select_an_option")
|
|
})), e(_.Qq.setFeedbackFormStatus({
|
|
containerId: r,
|
|
feedbackStatus: "failed"
|
|
})), 0)) try {
|
|
e(Z({
|
|
tipId: a,
|
|
feedbackComment: c,
|
|
feedbackOption: u
|
|
})), e(_.Qq.setFeedbackThumbsState({
|
|
containerId: r,
|
|
feedbackThumbsState: Q.KM.negativeFormSubmitted,
|
|
categoryId: s
|
|
})), e(_.Qq.setFeedbackFormStatus({
|
|
containerId: r,
|
|
feedbackStatus: "success"
|
|
}))
|
|
} catch (t) {
|
|
e(_.Qq.setFeedbackFormStatus({
|
|
containerId: r,
|
|
feedbackStatus: "failed"
|
|
}))
|
|
}
|
|
};
|
|
var re = n(6202);
|
|
const oe = function() {
|
|
var e = (0, o.wA)(),
|
|
t = (0, o.d4)(a.im.selectIsCurrentPageLaunchpad()),
|
|
n = (0, o.d4)(S.A),
|
|
i = n.id,
|
|
s = n.feedbackForm,
|
|
c = void 0 === s ? {} : s,
|
|
u = c.feedbackComment,
|
|
l = c.feedbackOption,
|
|
f = c.feedbackStatus,
|
|
d = c.feedbackValidation,
|
|
p = (0, r.useCallback)(function(t) {
|
|
e(_.Qq.setFeedbackFormComment({
|
|
containerId: i,
|
|
feedbackComment: t
|
|
})), e(_.Qq.setFeedbackFormStatus({
|
|
containerId: i,
|
|
feedbackStatus: ""
|
|
}))
|
|
}, [e, i]),
|
|
h = (0, r.useCallback)(function(t) {
|
|
e(_.Qq.setFeedbackFormOption({
|
|
containerId: i,
|
|
feedbackOption: t
|
|
})), e(_.Qq.setFeedbackFormStatus({
|
|
containerId: i,
|
|
feedbackStatus: ""
|
|
}))
|
|
}, [e, i]),
|
|
m = (0, r.useCallback)(function() {
|
|
e(ne)
|
|
}, [e]),
|
|
g = (0, r.useCallback)(function() {
|
|
e((0, re.A)())
|
|
}, [e]),
|
|
y = Q.Sl[f] || O.A.getMessage("Send"),
|
|
v = Q.QJ[f] || "",
|
|
w = (0, K.A)(t).map(function(e) {
|
|
var t = e.value,
|
|
n = e.copy;
|
|
return r.createElement(b.RadioButton, {
|
|
key: "".concat("radio-", t),
|
|
value: t,
|
|
copy: n
|
|
})
|
|
}),
|
|
E = "failed" === f,
|
|
k = r.createElement(V.default, {
|
|
onClose: g,
|
|
closeButtonCopy: O.A.getMessage("Close"),
|
|
title: O.A.getMessage("What_are_your_thoughts_Q")
|
|
}),
|
|
T = r.createElement(Y.default, {
|
|
ctaCopy: y,
|
|
ctaStatus: v,
|
|
ctaType: "primary",
|
|
handleCta: m
|
|
});
|
|
return r.createElement(J.default, {
|
|
header: k,
|
|
footer: T
|
|
}, E && r.createElement(W.default, {
|
|
component: "div",
|
|
variant: "body2",
|
|
style: {
|
|
color: b.Colors.red600,
|
|
marginBottom: "8px"
|
|
}
|
|
}, d), r.createElement(b.RadioGroup, {
|
|
onChange: h,
|
|
group: "paymentAmount",
|
|
selectedValue: l
|
|
}, w), r.createElement("div", {
|
|
style: {
|
|
marginTop: "14px"
|
|
}
|
|
}, r.createElement(b.FormInput, {
|
|
size: 88,
|
|
id: "forminput",
|
|
label: O.A.getMessage("Comments_or_suggestions"),
|
|
value: u,
|
|
onChange: p
|
|
})))
|
|
};
|
|
var ie = (0, G.Mz)(S.A, function(e) {
|
|
return e && e.bottomSheet && e.bottomSheet.tipId
|
|
});
|
|
const ae = ie;
|
|
var se = n(13351),
|
|
ce = n(46529);
|
|
|
|
function ue(e) {
|
|
return ue = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, ue(e)
|
|
}
|
|
|
|
function le(e, t) {
|
|
for (var n = 0; n < t.length; n++) {
|
|
var r = t[n];
|
|
r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, me(r.key), r)
|
|
}
|
|
}
|
|
|
|
function fe(e, t, n) {
|
|
return t = pe(t),
|
|
function(e, t) {
|
|
if (t && ("object" == ue(t) || "function" == typeof t)) return t;
|
|
if (void 0 !== t) throw new TypeError("Derived constructors may only return object or undefined");
|
|
return function(e) {
|
|
if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
return e
|
|
}(e)
|
|
}(e, de() ? Reflect.construct(t, n || [], pe(e).constructor) : t.apply(e, n))
|
|
}
|
|
|
|
function de() {
|
|
try {
|
|
var e = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}))
|
|
} catch (e) {}
|
|
return (de = function() {
|
|
return !!e
|
|
})()
|
|
}
|
|
|
|
function pe(e) {
|
|
return pe = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(e) {
|
|
return e.__proto__ || Object.getPrototypeOf(e)
|
|
}, pe(e)
|
|
}
|
|
|
|
function he(e, t) {
|
|
return he = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(e, t) {
|
|
return e.__proto__ = t, e
|
|
}, he(e, t)
|
|
}
|
|
|
|
function me(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != ue(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != ue(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == ue(t) ? t : t + ""
|
|
}
|
|
var ge = function(e) {
|
|
function t() {
|
|
var e, n, r, o;
|
|
! function(e, t) {
|
|
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
|
|
}(this, t);
|
|
for (var i = arguments.length, a = new Array(i), s = 0; s < i; s++) a[s] = arguments[s];
|
|
return e = fe(this, t, [].concat(a)), n = e, o = {
|
|
error: null
|
|
}, (r = me(r = "state")) in n ? Object.defineProperty(n, r, {
|
|
value: o,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : n[r] = o, e
|
|
}
|
|
return function(e, t) {
|
|
if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function");
|
|
e.prototype = Object.create(t && t.prototype, {
|
|
constructor: {
|
|
value: e,
|
|
writable: !0,
|
|
configurable: !0
|
|
}
|
|
}), Object.defineProperty(e, "prototype", {
|
|
writable: !1
|
|
}), t && he(e, t)
|
|
}(t, e), n = t, a = [{
|
|
key: "getDerivedStateFromError",
|
|
value: function(e) {
|
|
return {
|
|
error: e
|
|
}
|
|
}
|
|
}], (o = [{
|
|
key: "componentDidCatch",
|
|
value: function(e) {
|
|
var t = this.props,
|
|
n = t.sendSdataEvent,
|
|
r = t.sdataAction;
|
|
n(e, void 0 === r ? ce.go.TIP_CARD_ERROR : r), i.A.error(e)
|
|
}
|
|
}, {
|
|
key: "render",
|
|
value: function() {
|
|
var e = this.props.children;
|
|
return this.state.error ? r.createElement(r.Fragment, null) : e
|
|
}
|
|
}]) && le(n.prototype, o), a && le(n, a), Object.defineProperty(n, "prototype", {
|
|
writable: !1
|
|
}), n;
|
|
var n, o, a
|
|
}(r.Component);
|
|
ge.propTypes = {
|
|
sendSdataEvent: h().func.isRequired,
|
|
sdataAction: h().string.isRequired,
|
|
children: h().oneOfType([h().node, h().arrayOf(h().node)])
|
|
}, ge.defaultProps = {
|
|
children: null
|
|
};
|
|
const ye = (0, o.Ng)(null, function(e) {
|
|
return {
|
|
sendSdataEvent: function(t, n) {
|
|
return e((0, I.f)({
|
|
action: n,
|
|
event: "error",
|
|
errorMessage: t.message
|
|
}))
|
|
}
|
|
}
|
|
})(ge);
|
|
var ve = function() {
|
|
var e = (0, o.d4)(q),
|
|
t = (0, o.d4)(ae);
|
|
return r.createElement(r.Fragment, null, t && r.createElement(se.Ay, {
|
|
tipId: t,
|
|
templateType: "bottomSheet"
|
|
}), e && r.createElement(oe, null))
|
|
};
|
|
const be = function() {
|
|
var e = (0, o.wA)(),
|
|
t = (0, o.d4)(H),
|
|
n = (0, r.useCallback)(function() {
|
|
e((0, re.A)())
|
|
}, [e]),
|
|
i = (0, r.useCallback)(function() {
|
|
t || e((0, re.I)())
|
|
}, [e, t]);
|
|
return r.createElement(ye, {
|
|
sdataAction: ce.go.TIP_CARD_ERROR
|
|
}, r.createElement(U.default, {
|
|
id: "bottom-sheet-1",
|
|
open: t,
|
|
onClose: n,
|
|
onTransitionEnd: i
|
|
}, r.createElement(ve, null)))
|
|
};
|
|
var _e = {
|
|
behavior: "smooth",
|
|
block: "center"
|
|
};
|
|
const Se = function() {
|
|
var e = (0, r.useRef)({
|
|
tipsRefs: {}
|
|
}),
|
|
t = (0, r.useCallback)(function(t, n) {
|
|
e.current.tipsRefs[t] = n
|
|
}, []),
|
|
n = (0, r.useCallback)(function(t) {
|
|
var n = e.current.tipsRefs[t];
|
|
n ? n.scrollIntoView(_e) : i.A.debug("".concat("honeyTips:hooks:useScrollToCategory: ", "scrollToCategory: Category '").concat(t, "' not found."))
|
|
}, []);
|
|
return (0, r.useMemo)(function() {
|
|
return {
|
|
addTipCategoryRef: t,
|
|
scrollToCategory: n
|
|
}
|
|
}, [t, n])
|
|
};
|
|
var we = n(72341),
|
|
Oe = n(9996),
|
|
Ee = (0, m.createUseStyles)({
|
|
layout: function(e) {
|
|
var t = e.footer,
|
|
n = e.isLastTip;
|
|
return {
|
|
marginBottom: t && n ? "1px" : "8px"
|
|
}
|
|
}
|
|
}),
|
|
ke = r.forwardRef(function(e, t) {
|
|
var n = e.children,
|
|
o = e.isLastTip,
|
|
i = (0, Oe.A)(),
|
|
a = Ee({
|
|
footer: i,
|
|
isLastTip: o
|
|
});
|
|
return r.createElement("div", {
|
|
className: a.layout,
|
|
ref: t
|
|
}, n)
|
|
});
|
|
ke.propTypes = {
|
|
children: h().node,
|
|
isLastTip: h().bool
|
|
}, ke.defaultProps = {
|
|
children: void 0,
|
|
isLastTip: !1
|
|
};
|
|
const Te = ke;
|
|
var xe = n(65129),
|
|
Ie = n(38707);
|
|
const Pe = function() {
|
|
return function(e, t) {
|
|
var n = (0, S.A)(t()).id;
|
|
e(_.Qq.updateShowTopTipOnly({
|
|
containerId: n,
|
|
showTopTipOnly: !1
|
|
})), e((0, P.F)({
|
|
event: "action",
|
|
action: "expand_container"
|
|
}))
|
|
}
|
|
};
|
|
const Ae = function() {
|
|
var e = (0, o.wA)();
|
|
return r.createElement(Ie.default, {
|
|
body: O.A.getMessage("View_More_Tips"),
|
|
"aria-label": O.A.getMessage("View_More_Tips"),
|
|
onClick: function() {
|
|
e(Pe())
|
|
}
|
|
})
|
|
};
|
|
var Ce = n(8845);
|
|
const je = function() {
|
|
var e = (0, o.wA)(),
|
|
t = O.A.getMessage("See_Deal_Summary");
|
|
return r.createElement(Ce.Ay, {
|
|
text: t,
|
|
"aria-label": t,
|
|
icon: "right-line-16",
|
|
onClick: function() {
|
|
e(Pe())
|
|
}
|
|
})
|
|
};
|
|
const Re = function() {
|
|
switch ((0, Oe.A)()) {
|
|
case Oe.C.POWERED_BY:
|
|
return r.createElement(xe.A, null);
|
|
case Oe.C.SEE_MORE_TIPS:
|
|
return r.createElement(Ae, null);
|
|
case Oe.C.SEE_DEAL_SUMMARY:
|
|
return r.createElement(je, null);
|
|
default:
|
|
return null
|
|
}
|
|
};
|
|
var Me = n(31311),
|
|
De = n(25094),
|
|
Ne = n(78860),
|
|
Le = n(78111);
|
|
|
|
function Fe() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return Be(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (Be(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Be(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, Be(f, "constructor", u), Be(u, "constructor", c), c.displayName = "GeneratorFunction", Be(u, o, "GeneratorFunction"), Be(f), Be(f, o, "Generator"), Be(f, r, function() {
|
|
return this
|
|
}), Be(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (Fe = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function Be(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
Be = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
Be(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, Be(e, t, n, r)
|
|
}
|
|
|
|
function Ue(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
const Ge = function() {
|
|
var e = (0, o.wA)(),
|
|
t = (0, o.d4)(E.Ax.selectUser()),
|
|
n = (0, o.d4)(k.VH.selectCurrentStore()),
|
|
i = (0, o.d4)(E.Ax.selectUserFollowsCurrentStore),
|
|
s = (0, o.d4)(E.Ax.selectSessionCountForCurrentStore),
|
|
c = (0, o.d4)(a.im.selectIsCurrentPageLaunchpad()),
|
|
u = (0, r.useCallback)(function() {
|
|
var n, r = (n = Fe().m(function n(r) {
|
|
return Fe().w(function(n) {
|
|
for (;;) switch (n.n) {
|
|
case 0:
|
|
t && t.isLoggedIn || De.A.openEmailAuth("login", "launchpad-ext", !0), e(E.Xp.updateUserFollow(r));
|
|
case 1:
|
|
return n.a(2)
|
|
}
|
|
}, n)
|
|
}), function() {
|
|
var e = this,
|
|
t = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = n.apply(e, t);
|
|
|
|
function a(e) {
|
|
Ue(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
Ue(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
});
|
|
return function(e) {
|
|
return r.apply(this, arguments)
|
|
}
|
|
}(), [e, t]);
|
|
return c && n && t ? r.createElement(Ne.d, {
|
|
inPopover: !1,
|
|
store: n,
|
|
storeFollowButton: r.createElement("div", null, r.createElement(Le.A, {
|
|
allowTooltip: !1,
|
|
isFollowing: i,
|
|
isHeaderButton: !0,
|
|
store: {
|
|
storeId: n.id,
|
|
storeName: n.name
|
|
},
|
|
storeSessionCount: s,
|
|
subSrc: "launchpad",
|
|
updateUserFollow: u,
|
|
user: t
|
|
}))
|
|
}) : null
|
|
};
|
|
var $e = n(96161),
|
|
He = n(89773),
|
|
ze = n(34570),
|
|
qe = n(84458);
|
|
|
|
function We(e, t) {
|
|
return function(e) {
|
|
if (Array.isArray(e)) return e
|
|
}(e) || function(e, t) {
|
|
var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
|
|
if (null != n) {
|
|
var r, o, i, a, s = [],
|
|
c = !0,
|
|
u = !1;
|
|
try {
|
|
if (i = (n = n.call(e)).next, 0 === t) {
|
|
if (Object(n) !== n) return;
|
|
c = !1
|
|
} else
|
|
for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0);
|
|
} catch (e) {
|
|
u = !0, o = e
|
|
} finally {
|
|
try {
|
|
if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return
|
|
} finally {
|
|
if (u) throw o
|
|
}
|
|
}
|
|
return s
|
|
}
|
|
}(e, t) || function(e, t) {
|
|
if (e) {
|
|
if ("string" == typeof e) return Ve(e, t);
|
|
var n = {}.toString.call(e).slice(8, -1);
|
|
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Ve(e, t) : void 0
|
|
}
|
|
}(e, t) || function() {
|
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
|
|
}()
|
|
}
|
|
|
|
function Ve(e, t) {
|
|
(null == t || t > e.length) && (t = e.length);
|
|
for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n];
|
|
return r
|
|
}
|
|
var Ye = function(e) {
|
|
var t = e.badgeTop,
|
|
n = e.badgeHeight,
|
|
r = e.containerRef;
|
|
if (e.isAutopop) return 15;
|
|
var o, i, a = (o = r) && o.current && o.current.offsetHeight || 0,
|
|
s = (i = {
|
|
badgeTop: t,
|
|
badgeHeight: n
|
|
}).badgeTop + i.badgeHeight / 2 < window.innerHeight / 2 ? t + n + 15 : t - 15 - a,
|
|
c = function(e) {
|
|
var t = e.containerTop,
|
|
n = e.containerHeight;
|
|
if (t < 15) return t - 15;
|
|
var r = window.innerHeight - 15,
|
|
o = t + n;
|
|
return o > r ? o - r : 0
|
|
}({
|
|
containerTop: s,
|
|
containerHeight: a
|
|
});
|
|
return s - c
|
|
};
|
|
const Je = function(e) {
|
|
var t = e.containerRef,
|
|
n = ((0, o.d4)(ze.A) || {}).top,
|
|
i = void 0 === n ? ce.oU : n,
|
|
a = (0, o.d4)(He.n2.selectBadgeHeight),
|
|
s = ((0, o.d4)(S.A) || {}).open,
|
|
c = (0, qe.A)(),
|
|
u = We((0, r.useState)(ce.ij), 2),
|
|
l = u[0],
|
|
f = u[1],
|
|
d = (0, $e.A)({
|
|
action: "show",
|
|
sub_src: "tips_container",
|
|
variant: "tips_moved"
|
|
}).topMargin;
|
|
return (0, r.useEffect)(function() {
|
|
var e = Ye({
|
|
badgeTop: i,
|
|
badgeHeight: a,
|
|
containerRef: t,
|
|
isAutopop: c
|
|
});
|
|
f(e < d ? d : e)
|
|
}, [a, i, t, c, s, d]), (0, r.useMemo)(function() {
|
|
return {
|
|
top: l
|
|
}
|
|
}, [l])
|
|
};
|
|
var Ke = n(9636),
|
|
Qe = n(49976);
|
|
|
|
function Xe(e, t) {
|
|
return function(e) {
|
|
if (Array.isArray(e)) return e
|
|
}(e) || function(e, t) {
|
|
var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
|
|
if (null != n) {
|
|
var r, o, i, a, s = [],
|
|
c = !0,
|
|
u = !1;
|
|
try {
|
|
if (i = (n = n.call(e)).next, 0 === t) {
|
|
if (Object(n) !== n) return;
|
|
c = !1
|
|
} else
|
|
for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0);
|
|
} catch (e) {
|
|
u = !0, o = e
|
|
} finally {
|
|
try {
|
|
if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return
|
|
} finally {
|
|
if (u) throw o
|
|
}
|
|
}
|
|
return s
|
|
}
|
|
}(e, t) || function(e, t) {
|
|
if (e) {
|
|
if ("string" == typeof e) return Ze(e, t);
|
|
var n = {}.toString.call(e).slice(8, -1);
|
|
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Ze(e, t) : void 0
|
|
}
|
|
}(e, t) || function() {
|
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
|
|
}()
|
|
}
|
|
|
|
function Ze(e, t) {
|
|
(null == t || t > e.length) && (t = e.length);
|
|
for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n];
|
|
return r
|
|
}
|
|
var et = function(e) {
|
|
var t = e.tipId,
|
|
n = e.children,
|
|
i = (0, o.wA)(),
|
|
a = Xe((0, r.useState)(null), 2),
|
|
s = a[0],
|
|
c = a[1],
|
|
u = (0, Ke.useInView)({
|
|
threshold: .4
|
|
}),
|
|
l = u.ref,
|
|
f = u.inView,
|
|
d = (0, r.useCallback)(function() {
|
|
i((0, Qe.A)(t))
|
|
}, [i, t]);
|
|
return (0, r.useEffect)(function() {
|
|
if (f && !s) {
|
|
var e = setTimeout(d, 1e3);
|
|
c(e)
|
|
} else !f && s && c(function(e) {
|
|
return clearTimeout(e), null
|
|
});
|
|
return function() {
|
|
clearTimeout(s)
|
|
}
|
|
}, [d, f, s]), r.createElement("div", {
|
|
ref: l
|
|
}, n)
|
|
};
|
|
et.propTypes = {
|
|
tipId: h().string.isRequired,
|
|
children: h().oneOfType([h().node, h().arrayOf(h().node)])
|
|
}, et.defaultProps = {
|
|
children: null
|
|
};
|
|
const tt = et;
|
|
const nt = {
|
|
loadingPhrases: ["Stand_by_for_some_serious_deal_science", "Cooking_up_coupons_rewards_and_tips", "Dropping_some_savings_knowledge_in_3_2_1", "Channeling_our_savings_superpowers", "Our_secret_formula_of_deals_rewards_and_tips_coming_up", "Were_whipping_up_todays_deals_and_tips", "Were_working_our_deal_finding_magic", "Finding_deals_is_a_science", "Todays_batch_of_store_deals_and_tips_coming_up", "Coiny_is_working_some_shopping_genius", "Adding_our_secret_deal_finding_ingredients", "Coiny_says_an_informed_shopper_is_a_smart_shopper", "Were_working_our_deal_searching_magic", "Doing_what_we_do_best_whipping_up_deals_and_tips", "Whos_ready_to_save_Q_Stand_by_for_deals", "Shopping_wisdom_is_worth_waiting_for", "Searching_every_corner_of_the_internet_for_deals", "Good_deals_come_to_those_who_wait", "Doing_what_we_do_best_finding_you-deals_and_tips", "Warming_up_our_shopping_muscles", "Were_consulting_our_crystal_ball_for deals", "Making_you_a_savings_mixtape", "Stick_with_us_P_Were_a_magnet_for_deals", "You_find_the_cool_stuff_well_find_the_savings"]
|
|
};
|
|
var rt;
|
|
var ot = "".concat("https://cdn.honey.io", "/images/tips/").concat("coiny_happy_scientist_beakers_transparent.gif"),
|
|
it = (0, m.createUseStyles)({
|
|
containerLoader: {
|
|
paddingTop: "60px",
|
|
backgroundColor: b.Colors.white,
|
|
display: "flex",
|
|
justifyContent: "center",
|
|
alignItems: "center"
|
|
},
|
|
container: {
|
|
lineHeight: "2rem"
|
|
}
|
|
}),
|
|
at = function() {
|
|
var e = it(),
|
|
t = (rt || (rt = nt.loadingPhrases.map(function(e) {
|
|
return O.A.getMessage(e)
|
|
})), rt).map(function(t) {
|
|
return r.createElement("div", {
|
|
className: e.container
|
|
}, t)
|
|
});
|
|
return r.createElement("div", {
|
|
className: e.containerLoader
|
|
}, r.createElement(s.ContainerLoader, {
|
|
loadingImage: ot,
|
|
loadingPhrases: t,
|
|
marqueeDelay: 2e3
|
|
}))
|
|
};
|
|
|
|
function st(e) {
|
|
return st = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, st(e)
|
|
}
|
|
|
|
function ct(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function ut(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? ct(Object(n), !0).forEach(function(t) {
|
|
lt(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : ct(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function lt(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != st(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != st(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == st(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
const ft = function() {
|
|
var e = (0, r.useCallback)(a.im.selectIsCurrentPageLaunchpad(), []),
|
|
t = (0, o.d4)(Me.A),
|
|
n = (0, o.d4)(e),
|
|
i = t || n;
|
|
return (0, r.useMemo)(function() {
|
|
return {
|
|
header: ut({}, i && {
|
|
root: {
|
|
height: "48px"
|
|
}
|
|
}),
|
|
container: ut({}, i && {
|
|
header: {
|
|
flexBasis: "48px"
|
|
}
|
|
})
|
|
}
|
|
}, [i])
|
|
};
|
|
var dt = null;
|
|
const pt = function() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0;
|
|
return function(t, n) {
|
|
return clearTimeout(dt), dt = setTimeout(function() {
|
|
var e = (0, S.A)(n()) || {},
|
|
r = e.id,
|
|
o = e.isAutopop,
|
|
i = e.isHoveringOverBadge,
|
|
a = e.isHoveringOverContainer;
|
|
o || i || a || t(_.Qq.closeContainer({
|
|
containerId: r,
|
|
resetTipsShown: !1
|
|
}))
|
|
}, e)
|
|
}
|
|
};
|
|
|
|
function ht(e, t) {
|
|
return function(e) {
|
|
if (Array.isArray(e)) return e
|
|
}(e) || function(e, t) {
|
|
var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
|
|
if (null != n) {
|
|
var r, o, i, a, s = [],
|
|
c = !0,
|
|
u = !1;
|
|
try {
|
|
if (i = (n = n.call(e)).next, 0 === t) {
|
|
if (Object(n) !== n) return;
|
|
c = !1
|
|
} else
|
|
for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0);
|
|
} catch (e) {
|
|
u = !0, o = e
|
|
} finally {
|
|
try {
|
|
if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return
|
|
} finally {
|
|
if (u) throw o
|
|
}
|
|
}
|
|
return s
|
|
}
|
|
}(e, t) || function(e, t) {
|
|
if (e) {
|
|
if ("string" == typeof e) return mt(e, t);
|
|
var n = {}.toString.call(e).slice(8, -1);
|
|
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? mt(e, t) : void 0
|
|
}
|
|
}(e, t) || function() {
|
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
|
|
}()
|
|
}
|
|
|
|
function mt(e, t) {
|
|
(null == t || t > e.length) && (t = e.length);
|
|
for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n];
|
|
return r
|
|
}
|
|
const gt = function() {
|
|
var e = (0, o.wA)(),
|
|
t = ht((0, r.useState)(!1), 2),
|
|
n = t[0],
|
|
i = t[1],
|
|
a = (0, o.d4)(S.A) || {},
|
|
s = a.id,
|
|
c = a.open,
|
|
u = (0, r.useCallback)(function() {
|
|
n || (i(!0), e(_.Qq.setIsHoveringOverContainer({
|
|
containerId: s,
|
|
isHovering: !0
|
|
})))
|
|
}, [s, e, n]),
|
|
l = (0, r.useCallback)(function() {
|
|
i(!1), e(_.Qq.setIsHoveringOverContainer({
|
|
containerId: s,
|
|
isHovering: !1
|
|
})), e(pt(1e3))
|
|
}, [s, e]);
|
|
return (0, r.useEffect)(function() {
|
|
!c && i(!1)
|
|
}, [c]), (0, r.useMemo)(function() {
|
|
return {
|
|
handleMouseOver: u,
|
|
handleMouseLeave: l
|
|
}
|
|
}, [l, u])
|
|
};
|
|
var yt = n(41502),
|
|
vt = n(13348);
|
|
|
|
function bt(e, t) {
|
|
return function(e) {
|
|
if (Array.isArray(e)) return e
|
|
}(e) || function(e, t) {
|
|
var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
|
|
if (null != n) {
|
|
var r, o, i, a, s = [],
|
|
c = !0,
|
|
u = !1;
|
|
try {
|
|
if (i = (n = n.call(e)).next, 0 === t) {
|
|
if (Object(n) !== n) return;
|
|
c = !1
|
|
} else
|
|
for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0);
|
|
} catch (e) {
|
|
u = !0, o = e
|
|
} finally {
|
|
try {
|
|
if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return
|
|
} finally {
|
|
if (u) throw o
|
|
}
|
|
}
|
|
return s
|
|
}
|
|
}(e, t) || function(e, t) {
|
|
if (e) {
|
|
if ("string" == typeof e) return _t(e, t);
|
|
var n = {}.toString.call(e).slice(8, -1);
|
|
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? _t(e, t) : void 0
|
|
}
|
|
}(e, t) || function() {
|
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
|
|
}()
|
|
}
|
|
|
|
function _t(e, t) {
|
|
(null == t || t > e.length) && (t = e.length);
|
|
for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n];
|
|
return r
|
|
}
|
|
var St = (0, m.createUseStyles)({
|
|
condensedContainer: {
|
|
boxShadow: "0px 4px 20px 0px rgba(0, 0, 0, 0.18)",
|
|
borderRadius: "5px",
|
|
backgroundColor: "white",
|
|
position: "relative",
|
|
maxWidth: "400px",
|
|
right: "20px",
|
|
marginTop: "50px"
|
|
},
|
|
honeyLogo: {
|
|
height: "24px",
|
|
marginLeft: "16px",
|
|
marginTop: "12px"
|
|
},
|
|
storeLogo: {
|
|
position: "absolute",
|
|
borderRadius: "6px",
|
|
top: "-20px",
|
|
backgroundColor: b.Colors.white,
|
|
boxShadow: "0px 0px 5px 0px rgba(0, 0, 0, 0.12)"
|
|
},
|
|
closeButtonContainer: {
|
|
position: "absolute",
|
|
right: "-11px",
|
|
top: "-14px"
|
|
},
|
|
closeButton: {
|
|
cursor: "pointer",
|
|
alignItems: "center",
|
|
backgroundColor: b.Colors.white,
|
|
borderRadius: "12px",
|
|
display: "flex",
|
|
height: "24px",
|
|
width: "24px",
|
|
justifyContent: "center",
|
|
boxShadow: "rgba(0, 0, 0, 0.08)"
|
|
},
|
|
closeButtonIcon: {
|
|
color: b.Colors.grey900
|
|
},
|
|
progressCircle: {
|
|
position: "absolute",
|
|
transform: "translateY(-24px)"
|
|
},
|
|
storeLogoContainer: {
|
|
display: "flex",
|
|
width: "100%",
|
|
justifyContent: "center"
|
|
},
|
|
logoAndSettings: {
|
|
display: "flex",
|
|
justifyContent: "space-between"
|
|
},
|
|
condensedSettingsIcon: {
|
|
marginTop: "8px",
|
|
marginRight: "8px",
|
|
lineHeight: "16px",
|
|
fontSize: "12px"
|
|
}
|
|
}),
|
|
wt = function(e) {
|
|
var t = e.children,
|
|
n = e.autoClose,
|
|
i = bt((0, r.useState)(n / 1e3), 2),
|
|
a = i[0],
|
|
s = i[1],
|
|
c = bt((0, r.useState)(), 2),
|
|
u = c[0],
|
|
l = c[1],
|
|
f = bt((0, r.useState)(0), 2),
|
|
d = f[0],
|
|
p = f[1],
|
|
h = St(),
|
|
m = (0, o.wA)(),
|
|
g = (0, o.d4)(k.VH.selectCurrentStore()),
|
|
y = (0, o.d4)(k.VH.selectStoreContent()).goldActivated,
|
|
v = (0, r.useCallback)(function() {
|
|
return m((0, j.A)())
|
|
}, [m]),
|
|
_ = (0, qe.A)(),
|
|
S = n && _ && y,
|
|
w = function() {
|
|
return l(!0)
|
|
};
|
|
return (0, r.useEffect)(function() {
|
|
var e;
|
|
return u ? (s(0), p(0)) : S && (s(n / 1e3), p(100), e = setTimeout(v, n)),
|
|
function() {
|
|
return clearTimeout(e)
|
|
}
|
|
}, [n, u, _, v, S]), r.createElement("div", {
|
|
className: h.condensedContainer,
|
|
onMouseDown: w,
|
|
onMouseOver: w,
|
|
onMouseLeave: function() {
|
|
return l(!1)
|
|
}
|
|
}, r.createElement("div", {
|
|
className: h.storeLogoContainer
|
|
}, r.createElement(b.StoreLogo, {
|
|
className: h.storeLogo,
|
|
size: 48,
|
|
overlay: !1,
|
|
storeId: g.id,
|
|
storeName: g.name
|
|
})), r.createElement("div", {
|
|
className: h.closeButtonContainer,
|
|
onClick: v
|
|
}, r.createElement("div", {
|
|
className: h.closeButton
|
|
}, r.createElement("div", {
|
|
className: h.closeButtonIcon,
|
|
alt: "close button"
|
|
}, "\xd7")), S && r.createElement("div", {
|
|
className: h.progressCircle
|
|
}, r.createElement(vt.A, {
|
|
color: "blue",
|
|
progress: d,
|
|
timing: a
|
|
}))), r.createElement("div", {
|
|
className: h.logoAndSettings
|
|
}, r.createElement("img", {
|
|
alt: "Honey",
|
|
src: "".concat("https://cdn.honey.io", "/images/honey-symbol-black.svg"),
|
|
className: h.honeyLogo
|
|
}), r.createElement("div", {
|
|
className: h.condensedSettingsIcon
|
|
}, r.createElement(B, {
|
|
noClose: !0,
|
|
customSize: 24,
|
|
customColor: b.Colors.grey900
|
|
}))), t)
|
|
};
|
|
wt.propTypes = {
|
|
children: h().node.isRequired,
|
|
autoClose: h().number
|
|
}, wt.defaultProps = {
|
|
autoClose: 4e3
|
|
};
|
|
const Ot = wt;
|
|
const Et = function() {
|
|
var e = (0, o.d4)(S.A) || {},
|
|
t = e.open,
|
|
n = e.scrollToCategoryId,
|
|
i = e.showLoader,
|
|
a = (0, o.d4)(yt.j_) || [],
|
|
p = (0, o.d4)(Me.A),
|
|
h = (0, o.d4)(f.A),
|
|
m = (0, o.d4)(d.Og.selectIsLoadingStoreOffers()),
|
|
g = (0, o.d4)(yt.vi),
|
|
y = (0, qe.A)(),
|
|
b = (0, Oe.A)(),
|
|
_ = (0, r.useRef)(),
|
|
O = Je({
|
|
containerRef: _
|
|
}).top,
|
|
E = gt(),
|
|
k = E.handleMouseOver,
|
|
T = E.handleMouseLeave,
|
|
x = ft(),
|
|
I = (0, r.useMemo)(function() {
|
|
return p && h ? [h] : a
|
|
}, [a, h, p]),
|
|
P = Se(),
|
|
A = P.addTipCategoryRef,
|
|
C = P.scrollToCategory,
|
|
j = (0, r.useMemo)(function() {
|
|
return {
|
|
scrollToCategory: C
|
|
}
|
|
}, [C]);
|
|
(0, r.useEffect)(function() {
|
|
var e;
|
|
return t && n && C && (e = setTimeout(function() {
|
|
return C(n)
|
|
}, 500)),
|
|
function() {
|
|
return clearTimeout(e)
|
|
}
|
|
}, [t, C, n]);
|
|
var R = !i && I.map(function(e, t) {
|
|
var n = e.id,
|
|
o = e.categoryId;
|
|
return r.createElement(tt, {
|
|
key: n,
|
|
tipId: n
|
|
}, r.createElement(Te, {
|
|
ref: function(e) {
|
|
return A(o, e)
|
|
},
|
|
isLastTip: t === I.length - 1
|
|
}, r.createElement(ye, {
|
|
sdataAction: ce.go.TIP_CARD_ERROR
|
|
}, r.createElement(se.Ay, {
|
|
tipId: n,
|
|
templateType: "card",
|
|
isSecondary: t > 0
|
|
}))))
|
|
}),
|
|
M = r.createElement(l.Header, {
|
|
leftContainer: r.createElement(c.default, null),
|
|
rightContainer: r.createElement(B, null),
|
|
style: x.header
|
|
}),
|
|
D = !!b && r.createElement(Re, null),
|
|
N = (i || !I.length) && r.createElement(at, null),
|
|
L = r.createElement(we.A.Provider, {
|
|
value: j
|
|
}, r.createElement(v, {
|
|
ref: _,
|
|
top: O,
|
|
onMouseOver: k,
|
|
onMouseLeave: T
|
|
}, r.createElement(Ot, {
|
|
autoClose: 4e3
|
|
}, R, N))),
|
|
F = r.createElement(we.A.Provider, {
|
|
value: j
|
|
}, r.createElement(v, {
|
|
ref: _,
|
|
top: O,
|
|
onMouseOver: k,
|
|
onMouseLeave: T
|
|
}, r.createElement(u.default, null, r.createElement(s.UniversalContainerLayout, {
|
|
header: M,
|
|
footer: D,
|
|
styles: x.container
|
|
}, r.createElement(w, null), r.createElement(Ge, null), R, N, r.createElement(be, null)))));
|
|
if (m) return null;
|
|
if (y && g) return L;
|
|
var U = F;
|
|
return g && (U = L), t ? U : null
|
|
};
|
|
var kt = n(60592),
|
|
Tt = n.n(kt),
|
|
xt = n(23525),
|
|
It = (0, m.createUseStyles)({
|
|
layout: {
|
|
position: "fixed",
|
|
top: function(e) {
|
|
return e.top
|
|
},
|
|
right: 0,
|
|
zIndex: 2147483647,
|
|
display: "flex"
|
|
}
|
|
}),
|
|
Pt = function(e) {
|
|
var t = e.children,
|
|
n = e.top,
|
|
o = It({
|
|
top: n
|
|
});
|
|
return r.createElement("div", {
|
|
className: o.layout
|
|
}, t)
|
|
};
|
|
Pt.propTypes = {
|
|
children: h().node,
|
|
top: h().number
|
|
}, Pt.defaultProps = {
|
|
children: void 0,
|
|
top: xt.o
|
|
};
|
|
const At = Pt;
|
|
var Ct = n(73639),
|
|
jt = n(6362),
|
|
Rt = n(34778),
|
|
Mt = n(74428),
|
|
Dt = n(99507);
|
|
const Nt = function(e) {
|
|
var t = _.fc.selectBadgeCtaDisabledCategoriesForCurrentStore(e),
|
|
n = (0, Dt.A)(e, t) || {},
|
|
r = n.id,
|
|
o = n.categoryId,
|
|
i = (((0, Rt.A)(r) || {}).badge || {}).notificationText,
|
|
a = (0, Mt.A)(r)(e) || {},
|
|
s = ("function" == typeof i ? i(a) : i) || null;
|
|
return {
|
|
text: s,
|
|
tipId: s ? r : null,
|
|
categoryId: s ? o : null
|
|
}
|
|
};
|
|
var Lt = {
|
|
text: h().string
|
|
},
|
|
Ft = {
|
|
"@keyframes fade": {
|
|
"0%": {
|
|
opacity: 0
|
|
},
|
|
"100%": {
|
|
opacity: 1
|
|
}
|
|
},
|
|
bottomText: {
|
|
fontSize: "12px !important",
|
|
lineHeight: "12px !important",
|
|
composes: "price2",
|
|
textAlign: "center",
|
|
padding: "8px 2px",
|
|
color: b.Colors.white,
|
|
animation: "$fade 1s forwards"
|
|
}
|
|
},
|
|
Bt = (0, m.createUseStyles)(Ft),
|
|
Ut = function(e) {
|
|
var t = e.text,
|
|
n = Bt();
|
|
return r.createElement("div", {
|
|
className: n.bottomText
|
|
}, t)
|
|
};
|
|
Ut.propTypes = Lt, Ut.defaultProps = {
|
|
text: null
|
|
};
|
|
const Gt = Ut;
|
|
var $t = (0, m.createUseStyles)({
|
|
root: function(e) {
|
|
var t = e.hasNotification;
|
|
return {
|
|
paddingTop: e.isReady && t ? "8px" : "0px",
|
|
transition: "paddingTop 500ms cubic-bezier(0.4, 0, 0.2, 1)"
|
|
}
|
|
}
|
|
}),
|
|
Ht = function(e) {
|
|
var t = e.styleVars,
|
|
n = $t(t);
|
|
return r.createElement("div", {
|
|
className: n.root
|
|
}, r.createElement(b.Logo, {
|
|
clickable: !1,
|
|
color: b.Colors.white,
|
|
size: 30,
|
|
h: !0
|
|
}))
|
|
};
|
|
Ht.propTypes = {
|
|
styleVars: h().shape({
|
|
isReady: h().bool,
|
|
hasNotification: h().bool
|
|
})
|
|
}, Ht.defaultProps = {
|
|
styleVars: {}
|
|
};
|
|
const zt = Ht;
|
|
|
|
function qt(e, t) {
|
|
return function(e) {
|
|
if (Array.isArray(e)) return e
|
|
}(e) || function(e, t) {
|
|
var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
|
|
if (null != n) {
|
|
var r, o, i, a, s = [],
|
|
c = !0,
|
|
u = !1;
|
|
try {
|
|
if (i = (n = n.call(e)).next, 0 === t) {
|
|
if (Object(n) !== n) return;
|
|
c = !1
|
|
} else
|
|
for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0);
|
|
} catch (e) {
|
|
u = !0, o = e
|
|
} finally {
|
|
try {
|
|
if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return
|
|
} finally {
|
|
if (u) throw o
|
|
}
|
|
}
|
|
return s
|
|
}
|
|
}(e, t) || function(e, t) {
|
|
if (e) {
|
|
if ("string" == typeof e) return Wt(e, t);
|
|
var n = {}.toString.call(e).slice(8, -1);
|
|
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Wt(e, t) : void 0
|
|
}
|
|
}(e, t) || function() {
|
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
|
|
}()
|
|
}
|
|
|
|
function Wt(e, t) {
|
|
(null == t || t > e.length) && (t = e.length);
|
|
for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n];
|
|
return r
|
|
}
|
|
var Vt = (0, m.createUseStyles)({
|
|
"@keyframes pulsing": {
|
|
"0%": {
|
|
transform: "scale(1)"
|
|
},
|
|
"50%": {
|
|
transform: "scale(0.5)"
|
|
},
|
|
"100%": {
|
|
transform: "scale(1)"
|
|
}
|
|
},
|
|
"@keyframes shake": {
|
|
"0%": {
|
|
transform: "translate(0, 1px)"
|
|
},
|
|
"10%": {
|
|
transform: "translate(0, -2px)"
|
|
},
|
|
"20%": {
|
|
transform: "translate(0, 3px)"
|
|
},
|
|
"30%": {
|
|
transform: "translate(0, -2px)"
|
|
},
|
|
"40%": {
|
|
transform: "translate(0, 1px)"
|
|
},
|
|
"50%": {
|
|
transform: "translate(0, -2px)"
|
|
},
|
|
"60%": {
|
|
transform: "translate(0, 1px)"
|
|
},
|
|
"70%": {
|
|
transform: "translate(0, -1px)"
|
|
},
|
|
"80%": {
|
|
transform: "translate(0, 1px)"
|
|
},
|
|
"90%": {
|
|
transform: "translate(0, -2px)"
|
|
},
|
|
"100%": {
|
|
transform: "translate(0, 2px)"
|
|
}
|
|
},
|
|
root: {
|
|
display: "flex",
|
|
cursor: "move"
|
|
},
|
|
teaserAnimateIn: function(e) {
|
|
return {
|
|
right: "1px",
|
|
marginRight: e.animateTeaserIn ? "0" : "-200px",
|
|
transition: "margin-right 800ms cubic-bezier(0.4, 0, 0.2, 1)",
|
|
textAlign: "left"
|
|
}
|
|
},
|
|
logoAnimation: function(e) {
|
|
var t = e.hasNotification;
|
|
return {
|
|
height: e.isReady && t ? "28px" : "64px",
|
|
display: "flex",
|
|
justifyContent: "center",
|
|
flexDirection: "column",
|
|
flexGrow: 1,
|
|
transition: "height 500ms cubic-bezier(0.4, 0, 0.2, 1), transform 300ms cubic-bezier(0.4, 0, 0.2, 1)",
|
|
pointerEvents: "none"
|
|
}
|
|
},
|
|
loadAnimation: function(e) {
|
|
var t = e.hasNotification,
|
|
n = e.isReady;
|
|
return {
|
|
height: "164px",
|
|
display: "flex",
|
|
justifyContent: "center",
|
|
alignItems: "center",
|
|
animation: n ? "none" : "$pulsing 1s infinite",
|
|
transform: n && t ? "scale(66.65%)" : "scale(100%)",
|
|
transition: "transform 500ms cubic-bezier(0.4, 0, 0.2, 1)",
|
|
pointerEvents: "none"
|
|
}
|
|
},
|
|
shake: function(e) {
|
|
var t = e.doNotBump,
|
|
n = e.hasBumpAnimation,
|
|
r = e.hasNotification;
|
|
return {
|
|
animation: n && r && !t ? "$shake 0.82s forwards" : "none"
|
|
}
|
|
}
|
|
});
|
|
const Yt = function() {
|
|
var e = (0, o.wA)(),
|
|
t = qt((0, r.useState)(!1), 2),
|
|
n = t[0],
|
|
i = t[1],
|
|
a = qt((0, r.useState)(!1), 2),
|
|
s = a[0],
|
|
c = a[1],
|
|
u = qt((0, r.useState)(), 2),
|
|
l = u[0],
|
|
f = u[1],
|
|
d = qt((0, r.useState)(!1), 2),
|
|
p = d[0],
|
|
h = d[1],
|
|
m = qt((0, r.useState)(!1), 2),
|
|
g = m[0],
|
|
y = m[1],
|
|
v = (0, o.d4)(S.A) || {},
|
|
b = v.ready,
|
|
_ = v.open,
|
|
w = v.hasAutopopped,
|
|
O = ((0, o.d4)(Nt) || {}).text;
|
|
(0, r.useEffect)(function() {
|
|
var e = setTimeout(function() {
|
|
return y(!0)
|
|
}, 0);
|
|
return function() {
|
|
clearTimeout(e)
|
|
}
|
|
}, []), (0, r.useEffect)(function() {
|
|
return _ && b || w ? h(!0) : b && !l && f(setTimeout(function() {
|
|
return c(!0)
|
|
}, 15e3)),
|
|
function() {
|
|
clearTimeout(l)
|
|
}
|
|
}, [l, w, b, _]), (0, r.useEffect)(function() {
|
|
O && b && e((0, I.f)({
|
|
event: "teaser_show",
|
|
notification: O
|
|
}))
|
|
}, [e, b, O]);
|
|
var E = (0, r.useCallback)(function() {
|
|
n || (i(!0), clearTimeout(l))
|
|
}, [n, l]),
|
|
k = (0, r.useCallback)(function() {
|
|
i(!1)
|
|
}, [i]),
|
|
T = {
|
|
animateTeaserIn: g,
|
|
hasBumpAnimation: s,
|
|
hasNotification: !!O,
|
|
isReady: b,
|
|
doNotBump: p
|
|
},
|
|
x = Vt(T),
|
|
P = {
|
|
width: n ? "95px" : "68px"
|
|
};
|
|
return r.createElement("div", {
|
|
className: x.shake
|
|
}, r.createElement("div", {
|
|
className: x.teaserAnimateIn
|
|
}, r.createElement("div", {
|
|
className: x.root,
|
|
onMouseOver: E,
|
|
onMouseLeave: k,
|
|
style: P
|
|
}, r.createElement(Ct.A, null, r.createElement("div", {
|
|
className: x.logoAnimation
|
|
}, r.createElement("div", {
|
|
className: x.loadAnimation
|
|
}, r.createElement(zt, {
|
|
styleVars: T
|
|
}))), b && O && r.createElement(Gt, {
|
|
text: O
|
|
})), n && r.createElement(jt.A, null))))
|
|
};
|
|
var Jt = n(7834),
|
|
Kt = n(79973),
|
|
Qt = n(67004),
|
|
Xt = n(42528),
|
|
Zt = n(47408),
|
|
en = n(66588),
|
|
tn = n(81870),
|
|
nn = n(19550),
|
|
rn = n(32372),
|
|
on = n(5735),
|
|
an = n(49194),
|
|
sn = new Set(["savings-verylow", "savings-low", "savings-medium", "savings-high", "savings-veryhigh"]),
|
|
cn = "honeyTips:canAutoPop: ",
|
|
un = (0, G.Mz)(function(e) {
|
|
return Kt.v_.selectDeviceSetting("autopopsDisabled")(e)
|
|
}, function(e) {
|
|
return Xt.HL.selectFeatureByName("tips_is_autopop_suppression_respected")(e)
|
|
}, function(e, t) {
|
|
return e && t
|
|
}),
|
|
ln = (0, G.Mz)(function(e) {
|
|
return un(e)
|
|
}, function(e) {
|
|
return (0, f.A)(e)
|
|
}, function(e) {
|
|
return Zt.fq.selectAutoPopCountForCurrentStore(e)
|
|
}, function(e, t, n) {
|
|
var r = (t || {}).id;
|
|
return !e && (!sn.has(r) && !n)
|
|
}),
|
|
fn = (0, G.Mz)(function(e) {
|
|
return Qt.kF.selectIsStandaloneOffer(e)
|
|
}, function(e) {
|
|
return d.Og.selectCurrentProductOffer(e)
|
|
}, function(e, t) {
|
|
return !(!e || !t)
|
|
}),
|
|
dn = (0, G.Mz)(function(e) {
|
|
return (0, on.A)(e)
|
|
}, function(e) {
|
|
return _.fc.selectAutopopDisabledCategoriesForCurrentStore(e)
|
|
}, function(e, t) {
|
|
return (e || []).filter(function(e) {
|
|
var n = e.categoryId;
|
|
return !(t || []).includes(n)
|
|
}).some(function(e) {
|
|
return e.score >= 10
|
|
})
|
|
}),
|
|
pn = (0, G.Mz)(function(e) {
|
|
return (0, S.A)(e)
|
|
}, function(e) {
|
|
return !!(e || {}).open
|
|
}),
|
|
hn = function(e) {
|
|
if (function(e) {
|
|
var t = (0, f.A)(e) || {};
|
|
if ((0, an.A)(t)) {
|
|
var n = Qt.kF.selectVariant(tn.x0)(e);
|
|
if (n === tn.ut.CCP_POP_ALL) return !0;
|
|
if (n === tn.ut.CCP_POP_ALL_NON_TOP_PICK && "CCP-Non-Top-Pick-Organic" === t.id) return !0
|
|
}
|
|
return !1
|
|
}(e)) return !0;
|
|
var t = ((0, f.A)(e) || {}).categoryId,
|
|
n = (Jt.A.categories[t] || {}).maxAutopopPerStoreThreshold,
|
|
r = void 0 === n ? Number.POSITIVE_INFINITY : n;
|
|
return (en.PW(t)(e) || 0) < r
|
|
},
|
|
mn = (0, G.Mz)(function(e) {
|
|
return en.X3()(e)
|
|
}, function(e) {
|
|
return e < 1
|
|
}),
|
|
gn = (0, G.Mz)(function(e) {
|
|
return fn(e)
|
|
}, function(e) {
|
|
return pn(e)
|
|
}, function(e) {
|
|
return dn(e)
|
|
}, function(e) {
|
|
return hn(e)
|
|
}, function(e) {
|
|
return function(e) {
|
|
if (!(0, R.fN)(e)) return !1;
|
|
var t = (0, f.A)(e) || {},
|
|
n = t.categoryId,
|
|
r = t.maxAutopopOverrideThreshhold;
|
|
return en.tM(n)(e) < r
|
|
}(e)
|
|
}, function(e) {
|
|
return mn(e)
|
|
}, function(e) {
|
|
return k.VH.selectCurrentStore()(e)
|
|
}, function(e) {
|
|
return nn.IE.selectIsCurrentProductTopPickInCluster(e)
|
|
}, function(e) {
|
|
return Qt.kF.selectIsPriceComparisonVariant(e)
|
|
}, function(e, t, n, r, o, a, s, c, u) {
|
|
var l = -1 !== rn.Ay.AMAZON_STORES.indexOf(s.id);
|
|
return !u || c || l ? e ? (i.A.debug("".concat(cn, "don't show autopop because standalone offer autopop is open")), !1) : t ? (i.A.debug("".concat(cn, "don't show autopop because container already open")), !1) : n ? r ? o ? (i.A.debug("".concat(cn, "show autopop because allow by tip configuration")), !0) : a ? (i.A.debug("".concat(cn, "show autopop")), !0) : (i.A.debug("".concat(cn, "don't show autopop because above max autopop per product threshold")), !1) : (i.A.debug("".concat(cn, "don't show autopop because above max autopop threshold for store and tip category")), !1) : (i.A.debug("".concat(cn, "don't show autopop because no tips have min autopop score")), !1) : (i.A.debug("".concat(cn, "don't show autopop because price comparison experiment variant no_conquest")), !1)
|
|
}),
|
|
yn = (0, G.Mz)(function(e) {
|
|
return (0, S.A)(e)
|
|
}, function(e) {
|
|
return a.im.selectIsCurrentPageLaunchpad()(e)
|
|
}, function(e) {
|
|
return He.n2.selectHasPreOpened(e)
|
|
}, function(e) {
|
|
return e
|
|
}, function(e, t, n, r) {
|
|
var o = e || {},
|
|
a = o.ready,
|
|
s = o.hasClosed;
|
|
return a ? s ? (i.A.debug("".concat(cn, "don't show autopop because container was closed")), !1) : !n && (t ? ln(r) : gn(r)) : (i.A.debug("".concat(cn, "don't show autopop because container isn't ready")), !1)
|
|
});
|
|
const vn = yn;
|
|
var bn = n(74438),
|
|
_n = n(97690);
|
|
|
|
function Sn() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return wn(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (wn(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, wn(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, wn(f, "constructor", u), wn(u, "constructor", c), c.displayName = "GeneratorFunction", wn(u, o, "GeneratorFunction"), wn(f), wn(f, o, "Generator"), wn(f, r, function() {
|
|
return this
|
|
}), wn(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (Sn = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function wn(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
wn = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
wn(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, wn(e, t, n, r)
|
|
}
|
|
|
|
function On(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
var En = function(e, t) {
|
|
var n = (0, S.A)(t()).id;
|
|
return e(_.Qq.openContainer({
|
|
containerId: n,
|
|
isAutopop: !0
|
|
}))
|
|
},
|
|
kn = function(e) {
|
|
return function(t, n) {
|
|
var r = (0, S.A)(n()).id;
|
|
t(_.Qq.updateShowTopTipOnly({
|
|
containerId: r,
|
|
showTopTipOnly: e
|
|
}))
|
|
}
|
|
};
|
|
const Tn = (0, bn.zD)("tips/initContainer", function() {
|
|
var e, t = (e = Sn().m(function e(t, n) {
|
|
var r, o, i;
|
|
return Sn().w(function(e) {
|
|
for (;;)
|
|
if (0 === e.n) return r = n.dispatch, o = n.getState, (i = a.im.selectIsCurrentPageLaunchpad()(o())) || r(kn(!0)), r(En), r((0, I.f)({
|
|
event: "implicit_hover"
|
|
})), e.a(2, r(i ? Zt.E4.incrementAutoPopCount() : (0, _n.A)()))
|
|
}, e)
|
|
}), function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
On(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
On(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
});
|
|
return function(e, n) {
|
|
return t.apply(this, arguments)
|
|
}
|
|
}());
|
|
var xn = n(24166);
|
|
const In = function() {
|
|
var e = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}).scrollToCategoryId;
|
|
return function(t, n) {
|
|
if (xn.A._visible) i.A.debug("honeyTips:openCurrentContainer: Not opening container because UI already visible.");
|
|
else {
|
|
var r = (0, S.A)(n()) || {},
|
|
o = r.id;
|
|
r.open || t(_.Qq.openContainer({
|
|
containerId: o,
|
|
scrollToCategoryId: e
|
|
}))
|
|
}
|
|
}
|
|
};
|
|
var Pn = n(94576),
|
|
An = n.n(Pn),
|
|
Cn = n(34819);
|
|
|
|
function jn(e) {
|
|
return jn = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, jn(e)
|
|
}
|
|
|
|
function Rn() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return Mn(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (Mn(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Mn(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, Mn(f, "constructor", u), Mn(u, "constructor", c), c.displayName = "GeneratorFunction", Mn(u, o, "GeneratorFunction"), Mn(f), Mn(f, o, "Generator"), Mn(f, r, function() {
|
|
return this
|
|
}), Mn(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (Rn = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function Mn(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
Mn = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
Mn(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, Mn(e, t, n, r)
|
|
}
|
|
|
|
function Dn(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function Nn(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? Dn(Object(n), !0).forEach(function(t) {
|
|
Ln(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Dn(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function Ln(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != jn(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != jn(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == jn(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
|
|
function Fn(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
const Bn = function(e) {
|
|
var t = e.top,
|
|
n = e.sendSdata,
|
|
r = void 0 !== n && n;
|
|
return function() {
|
|
var e, n = (e = Rn().m(function e(n, o) {
|
|
var i, a, s, c;
|
|
return Rn().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return r && (i = (0, ze.A)(o()), a = Nn(Nn({}, i), {}, {
|
|
top: t
|
|
}), n((0, I.f)({
|
|
event: "action",
|
|
action: "move",
|
|
badgeLocationNew: a
|
|
}))), s = k.VH.selectCurrentStoreId()(o()), c = (0, Cn.w)(s) ? ce.xw.MOVABLE_BADGE_SETTINGS_BY_STORE : ce.xw.MOVABLE_BADGE_SETTINGS, e.n = 1, n(Kt.A0.updateDeviceSetting({
|
|
key: c,
|
|
value: {
|
|
orientation: "topRight",
|
|
top: t
|
|
}
|
|
}));
|
|
case 1:
|
|
return e.a(2, n(Kt.A0.loadDeviceSettings()))
|
|
}
|
|
}, e)
|
|
}), function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
Fn(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
Fn(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
});
|
|
return function(e, t) {
|
|
return n.apply(this, arguments)
|
|
}
|
|
}()
|
|
};
|
|
|
|
function Un(e, t) {
|
|
return function(e) {
|
|
if (Array.isArray(e)) return e
|
|
}(e) || function(e, t) {
|
|
var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
|
|
if (null != n) {
|
|
var r, o, i, a, s = [],
|
|
c = !0,
|
|
u = !1;
|
|
try {
|
|
if (i = (n = n.call(e)).next, 0 === t) {
|
|
if (Object(n) !== n) return;
|
|
c = !1
|
|
} else
|
|
for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0);
|
|
} catch (e) {
|
|
u = !0, o = e
|
|
} finally {
|
|
try {
|
|
if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return
|
|
} finally {
|
|
if (u) throw o
|
|
}
|
|
}
|
|
return s
|
|
}
|
|
}(e, t) || function(e, t) {
|
|
if (e) {
|
|
if ("string" == typeof e) return Gn(e, t);
|
|
var n = {}.toString.call(e).slice(8, -1);
|
|
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Gn(e, t) : void 0
|
|
}
|
|
}(e, t) || function() {
|
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
|
|
}()
|
|
}
|
|
|
|
function Gn(e, t) {
|
|
(null == t || t > e.length) && (t = e.length);
|
|
for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n];
|
|
return r
|
|
}
|
|
var $n = function(e, t) {
|
|
return {
|
|
top: -Math.max(0, e - 150),
|
|
bottom: Math.max(0, window.innerHeight - e - t - 15)
|
|
}
|
|
},
|
|
Hn = function(e, t) {
|
|
return e + t > window.innerHeight - 15 || e < 0
|
|
};
|
|
const zn = function(e) {
|
|
var t, n = e.badgeRef,
|
|
i = e.openContainer,
|
|
a = (0, o.wA)(),
|
|
s = Un((0, r.useState)(!1), 2),
|
|
c = s[0],
|
|
u = s[1],
|
|
l = Un((0, r.useState)({}), 2),
|
|
f = l[0],
|
|
d = l[1],
|
|
p = Un((0, r.useState)(null), 2),
|
|
h = p[0],
|
|
m = p[1],
|
|
g = Un((0, r.useState)(), 2),
|
|
y = g[0],
|
|
v = g[1],
|
|
b = Un((0, r.useState)(!0), 2),
|
|
_ = b[0],
|
|
S = b[1],
|
|
w = (t = n) && t.current && t.current.offsetHeight || ce.qS,
|
|
O = ((0, o.d4)(ze.A) || {}).top,
|
|
E = void 0 === O ? ce.oU : O,
|
|
k = (0, r.useCallback)(function() {
|
|
var e = function(e) {
|
|
return window.innerHeight - 15 - e
|
|
}(w);
|
|
a(Bn({
|
|
top: e
|
|
})), m(e), d($n(e, w)), v({
|
|
x: 0,
|
|
y: 0
|
|
}), setTimeout(function() {
|
|
return v(void 0)
|
|
}, 0)
|
|
}, [w, a]),
|
|
T = (0, r.useCallback)(function() {
|
|
Hn(E, w) ? k() : d($n(h, w))
|
|
}, [w, E, h, k]);
|
|
(0, r.useEffect)(function() {
|
|
"number" != typeof h && "number" == typeof E && (m(E), d($n(E, w)), Hn(E, w) && k())
|
|
}, [w, n, E, h, k]), (0, r.useEffect)(function() {
|
|
var e = An()(T, 100);
|
|
return window.addEventListener("resize", e),
|
|
function() {
|
|
window.removeEventListener("resize", e)
|
|
}
|
|
}, [T]), (0, r.useEffect)(function() {
|
|
a(He.e5.badgeHeightUpdated(w))
|
|
}, [w, a]), (0, r.useEffect)(function() {
|
|
_ && Hn(E, w) && a(Bn({
|
|
top: ce.oU
|
|
})), S(!1)
|
|
}, [w, E, a, _]);
|
|
var x = (0, r.useCallback)(function() {
|
|
v(void 0), a((0, j.A)({
|
|
resetTipsShown: !1
|
|
})), u(!0)
|
|
}, [a]),
|
|
I = (0, r.useCallback)(function(e, t) {
|
|
var n = t.y;
|
|
u(!1);
|
|
var r = h + n,
|
|
o = r !== E;
|
|
o || i(), a(Bn({
|
|
top: r,
|
|
sendSdata: o
|
|
}))
|
|
}, [E, a, h, i]);
|
|
return {
|
|
isDragging: c,
|
|
initialBadgeTop: h,
|
|
badgeBounds: f,
|
|
badgePosition: y,
|
|
handleDragStart: x,
|
|
handleDragEnd: I
|
|
}
|
|
};
|
|
const qn = function(e) {
|
|
e((0, I.f)({
|
|
event: "show"
|
|
}))
|
|
};
|
|
const Wn = function(e) {
|
|
return function(t, n) {
|
|
var r = (0, S.A)(n()).id;
|
|
t(_.Qq.setBadgeHoverState({
|
|
containerId: r,
|
|
isHovering: e
|
|
})), e && t((0, I.f)({
|
|
event: "action",
|
|
action: "hover"
|
|
}))
|
|
}
|
|
};
|
|
|
|
function Vn(e, t) {
|
|
return function(e) {
|
|
if (Array.isArray(e)) return e
|
|
}(e) || function(e, t) {
|
|
var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
|
|
if (null != n) {
|
|
var r, o, i, a, s = [],
|
|
c = !0,
|
|
u = !1;
|
|
try {
|
|
if (i = (n = n.call(e)).next, 0 === t) {
|
|
if (Object(n) !== n) return;
|
|
c = !1
|
|
} else
|
|
for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0);
|
|
} catch (e) {
|
|
u = !0, o = e
|
|
} finally {
|
|
try {
|
|
if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return
|
|
} finally {
|
|
if (u) throw o
|
|
}
|
|
}
|
|
return s
|
|
}
|
|
}(e, t) || function(e, t) {
|
|
if (e) {
|
|
if ("string" == typeof e) return Yn(e, t);
|
|
var n = {}.toString.call(e).slice(8, -1);
|
|
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Yn(e, t) : void 0
|
|
}
|
|
}(e, t) || function() {
|
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
|
|
}()
|
|
}
|
|
|
|
function Yn(e, t) {
|
|
(null == t || t > e.length) && (t = e.length);
|
|
for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n];
|
|
return r
|
|
}
|
|
const Jn = function() {
|
|
var e = (0, o.wA)(),
|
|
t = (0, r.useRef)(),
|
|
n = Vn((0, r.useState)(!1), 2),
|
|
i = n[0],
|
|
a = n[1],
|
|
s = Vn((0, r.useState)(null), 2),
|
|
c = s[0],
|
|
u = s[1],
|
|
l = Vn((0, r.useState)(!1), 2),
|
|
f = l[0],
|
|
d = l[1],
|
|
p = ((0, o.d4)(Nt) || {}).categoryId;
|
|
(0, r.useEffect)(function() {
|
|
e(qn)
|
|
}, [e]);
|
|
var h = (0, r.useCallback)(function() {
|
|
var t = null;
|
|
p && !f && (d(!0), t = p), e(In({
|
|
scrollToCategoryId: t
|
|
}))
|
|
}, [e, f, p]),
|
|
m = zn({
|
|
badgeRef: t,
|
|
openContainer: h
|
|
}),
|
|
g = m.isDragging,
|
|
y = m.initialBadgeTop,
|
|
v = m.badgeBounds,
|
|
b = m.badgePosition,
|
|
S = m.handleDragStart,
|
|
w = m.handleDragEnd,
|
|
O = (0, o.d4)(_.fc.selectRecentlyClosedContainer()) || !1,
|
|
E = (0, r.useCallback)(function() {
|
|
i || (a(!0), g || O || e(Wn(!0)))
|
|
}, [e, g, i, O]);
|
|
(0, r.useEffect)(function() {
|
|
!i || g || c || u(setTimeout(function() {
|
|
h()
|
|
}, 1e3)), g && c && (clearTimeout(c), u(null))
|
|
}, [g, i, h, c]);
|
|
var k = (0, r.useCallback)(function() {
|
|
clearTimeout(c), u(null), a(!1), e(Wn(!1)), e(pt(2e3))
|
|
}, [e, c]),
|
|
T = (0, o.d4)(vn);
|
|
return (0, r.useEffect)(function() {
|
|
T && e(Tn())
|
|
}, [e, T]), r.createElement(At, {
|
|
top: y
|
|
}, r.createElement(Tt(), {
|
|
onStart: S,
|
|
onStop: w,
|
|
bounds: v,
|
|
axis: "y",
|
|
position: b
|
|
}, r.createElement("div", {
|
|
ref: t,
|
|
onMouseOver: E,
|
|
onMouseLeave: k,
|
|
onTouchEndCapture: h
|
|
}, r.createElement(Yt, null))))
|
|
};
|
|
var Kn = (0, m.createUseStyles)({
|
|
resetCss: {
|
|
textTransform: "none",
|
|
lineHeight: "normal",
|
|
fontWeight: "normal",
|
|
color: b.Colors.grey900
|
|
}
|
|
}),
|
|
Qn = function(e) {
|
|
var t = e.children,
|
|
n = Kn();
|
|
return r.createElement("div", {
|
|
className: n.resetCss
|
|
}, t)
|
|
};
|
|
Qn.propTypes = {
|
|
children: h().node
|
|
}, Qn.defaultProps = {
|
|
children: void 0
|
|
};
|
|
const Xn = Qn;
|
|
var Zn = new Set(["StoreSavings", "MerchantPromotions"]),
|
|
er = (0, G.Mz)(function(e) {
|
|
return (0, on.A)(e)
|
|
}, function(e) {
|
|
return (e || []).map(function(e) {
|
|
return e.categoryId
|
|
}).some(function(e) {
|
|
return Zn.has(e)
|
|
})
|
|
});
|
|
const tr = er;
|
|
var nr = n(96532);
|
|
|
|
function rr(e) {
|
|
return function(e) {
|
|
if (Array.isArray(e)) return or(e)
|
|
}(e) || function(e) {
|
|
if ("undefined" != typeof Symbol && null != e[Symbol.iterator] || null != e["@@iterator"]) return Array.from(e)
|
|
}(e) || function(e, t) {
|
|
if (e) {
|
|
if ("string" == typeof e) return or(e, t);
|
|
var n = {}.toString.call(e).slice(8, -1);
|
|
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? or(e, t) : void 0
|
|
}
|
|
}(e) || function() {
|
|
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
|
|
}()
|
|
}
|
|
|
|
function or(e, t) {
|
|
(null == t || t > e.length) && (t = e.length);
|
|
for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n];
|
|
return r
|
|
}
|
|
const ir = function() {
|
|
var e = (0, r.useCallback)(a.im.selectIsCurrentPageLaunchpad(), []),
|
|
t = (0, o.d4)(e),
|
|
n = (0, o.d4)(tr),
|
|
s = (0, o.d4)(a.im.selectHasTipsTimedOut);
|
|
return t && !n ? (i.A.debug("honeyTips:container: No valid tip categories for launchpad (".concat(rr(Zn).join(", "), ") found. Not showing badge or container")), null) : s ? (i.A.debug("honeyTips:container: Tips timed out after ".concat(nr.x, "ms. Not showing badge or container")), null) : r.createElement(ye, {
|
|
sdataAction: ce.go.BADGE_INJECTION_ERROR
|
|
}, r.createElement(Xn, null, r.createElement("slot", null, r.createElement(Jn, null), r.createElement(Et, null))))
|
|
};
|
|
var ar = n(99459),
|
|
sr = n(60191),
|
|
cr = n(22182),
|
|
ur = n(70364),
|
|
lr = n.n(ur),
|
|
fr = n(35477),
|
|
dr = n(1152),
|
|
pr = n(6120);
|
|
|
|
function hr() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return mr(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (mr(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, mr(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, mr(f, "constructor", u), mr(u, "constructor", c), c.displayName = "GeneratorFunction", mr(u, o, "GeneratorFunction"), mr(f), mr(f, o, "Generator"), mr(f, r, function() {
|
|
return this
|
|
}), mr(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (hr = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function mr(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
mr = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
mr(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, mr(e, t, n, r)
|
|
}
|
|
|
|
function gr(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
|
|
function yr(e, t) {
|
|
var n = "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
|
|
if (!n) {
|
|
if (Array.isArray(e) || (n = function(e, t) {
|
|
if (e) {
|
|
if ("string" == typeof e) return vr(e, t);
|
|
var n = {}.toString.call(e).slice(8, -1);
|
|
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? vr(e, t) : void 0
|
|
}
|
|
}(e)) || t && e && "number" == typeof e.length) {
|
|
n && (e = n);
|
|
var r = 0,
|
|
o = function() {};
|
|
return {
|
|
s: o,
|
|
n: function() {
|
|
return r >= e.length ? {
|
|
done: !0
|
|
} : {
|
|
done: !1,
|
|
value: e[r++]
|
|
}
|
|
},
|
|
e: function(e) {
|
|
throw e
|
|
},
|
|
f: o
|
|
}
|
|
}
|
|
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
|
|
}
|
|
var i, a = !0,
|
|
s = !1;
|
|
return {
|
|
s: function() {
|
|
n = n.call(e)
|
|
},
|
|
n: function() {
|
|
var e = n.next();
|
|
return a = e.done, e
|
|
},
|
|
e: function(e) {
|
|
s = !0, i = e
|
|
},
|
|
f: function() {
|
|
try {
|
|
a || null == n.return || n.return()
|
|
} finally {
|
|
if (s) throw i
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function vr(e, t) {
|
|
(null == t || t > e.length) && (t = e.length);
|
|
for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n];
|
|
return r
|
|
}
|
|
var br = "z-index: 2147483647 !important; display:block !important;",
|
|
_r = function(e) {
|
|
var t = new MutationObserver(function(n) {
|
|
var r, o = yr(n);
|
|
try {
|
|
for (o.s(); !(r = o.n()).done;) {
|
|
var i = r.value;
|
|
"attributes" === i.type && "style" === i.attributeName && (t.disconnect(), e.style = br)
|
|
}
|
|
} catch (e) {
|
|
o.e(e)
|
|
} finally {
|
|
o.f()
|
|
}
|
|
});
|
|
return t.observe(e, {
|
|
attributes: !0,
|
|
attributeFilter: ["style"]
|
|
}), t
|
|
},
|
|
Sr = function(e) {
|
|
var t = lr()();
|
|
e.setAttribute("id", t), i.A.debug("honeyTips:mountApp: Setting id = '".concat(t, "' on root element"))
|
|
},
|
|
wr = function(e, t, n, r, o) {
|
|
var i = new MutationObserver(function(a) {
|
|
var s, c = yr(a);
|
|
try {
|
|
for (c.s(); !(s = c.n()).done;) {
|
|
var u = s.value;
|
|
if (e && u.removedNodes.length) {
|
|
var l, f = yr(u.removedNodes);
|
|
try {
|
|
for (f.s(); !(l = f.n()).done;) {
|
|
if (l.value.contains(t)) {
|
|
if (i.disconnect(), r(), o > 4) return;
|
|
Or(n, o + 1)
|
|
}
|
|
}
|
|
} catch (e) {
|
|
f.e(e)
|
|
} finally {
|
|
f.f()
|
|
}
|
|
}
|
|
}
|
|
} catch (e) {
|
|
c.e(e)
|
|
} finally {
|
|
c.f()
|
|
}
|
|
});
|
|
return e && i.observe(e, {
|
|
childList: !0,
|
|
characterData: !0
|
|
}), i
|
|
},
|
|
Or = function() {
|
|
var e, t = (e = hr().m(function e(t) {
|
|
var n, i, a, s, c, u, l, f, d, p, h, g, y = arguments;
|
|
return hr().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return n = y.length > 1 && void 0 !== y[1] ? y[1] : 0, i = ce.KA.includes(window.location.host), a = (0, cr.A)(), s = a.plugins, c = document.createElement("div"), Sr(c), document.body.appendChild(c), u = _r(c), l = "closed", e.n = 1, (0, fr.Ay)(c, null, {
|
|
mode: l,
|
|
dontInjectFonts: !0
|
|
});
|
|
case 1:
|
|
return f = e.v, d = new sr.SN, (p = (0, sr.vt)()).setup({
|
|
plugins: s,
|
|
insertionPoint: f.getElementById("honey")
|
|
}), i ? f.getElementById("honey").style = br : c.style = br, h = r.createElement(o.Kq, {
|
|
store: pr.A
|
|
}, r.createElement(m.JssProvider, {
|
|
registry: d,
|
|
jss: p
|
|
}, r.createElement(dr.Kq, {
|
|
value: {
|
|
shadowContainer: c
|
|
}
|
|
}, t))), e.n = 2, (0, fr.Ay)(c, h, {
|
|
mode: l,
|
|
dontInjectFonts: !0,
|
|
feature: "honey-tips-new",
|
|
surface: "badge"
|
|
});
|
|
case 2:
|
|
return g = function() {
|
|
u.disconnect(), (0, ar.unmountComponentAtNode)(f)
|
|
}, wr(document.body, c, t, g, n), e.a(2, {
|
|
container: f,
|
|
unmountApp: g
|
|
})
|
|
}
|
|
}, e)
|
|
}), function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
gr(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
gr(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
});
|
|
return function(e) {
|
|
return t.apply(this, arguments)
|
|
}
|
|
}();
|
|
const Er = Or;
|
|
|
|
function kr() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return Tr(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (Tr(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Tr(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, Tr(f, "constructor", u), Tr(u, "constructor", c), c.displayName = "GeneratorFunction", Tr(u, o, "GeneratorFunction"), Tr(f), Tr(f, o, "Generator"), Tr(f, r, function() {
|
|
return this
|
|
}), Tr(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (kr = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function Tr(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
Tr = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
Tr(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, Tr(e, t, n, r)
|
|
}
|
|
|
|
function xr(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
|
|
function Ir(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
xr(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
xr(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}
|
|
var Pr, Ar = !1,
|
|
Cr = function() {
|
|
var e = Ir(kr().m(function e() {
|
|
var t, n, o;
|
|
return kr().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
if (Pr || Ar) {
|
|
e.n = 2;
|
|
break
|
|
}
|
|
return Ar = !0, e.n = 1, Er(r.createElement(ir, null));
|
|
case 1:
|
|
t = e.v, n = t.container, o = t.unmountApp, Pr = {
|
|
container: n,
|
|
unmountApp: o
|
|
}, Ar = !1;
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function() {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}(),
|
|
jr = function() {
|
|
return !!Pr
|
|
},
|
|
Rr = function() {
|
|
var e = Ir(kr().m(function e() {
|
|
return kr().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
Pr && Pr.unmountApp(), Pr = null;
|
|
case 1:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function() {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}()
|
|
},
|
|
21733: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
A: () => S
|
|
});
|
|
var r = n(32969),
|
|
o = n(6120),
|
|
i = n(69969),
|
|
a = n(61117),
|
|
s = n(61565),
|
|
c = n(25094),
|
|
u = n(323),
|
|
l = n(3659),
|
|
f = n(32372),
|
|
d = n(85201);
|
|
|
|
function p(e, t) {
|
|
return function(e) {
|
|
if (Array.isArray(e)) return e
|
|
}(e) || function(e, t) {
|
|
var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
|
|
if (null != n) {
|
|
var r, o, i, a, s = [],
|
|
c = !0,
|
|
u = !1;
|
|
try {
|
|
if (i = (n = n.call(e)).next, 0 === t) {
|
|
if (Object(n) !== n) return;
|
|
c = !1
|
|
} else
|
|
for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0);
|
|
} catch (e) {
|
|
u = !0, o = e
|
|
} finally {
|
|
try {
|
|
if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return
|
|
} finally {
|
|
if (u) throw o
|
|
}
|
|
}
|
|
return s
|
|
}
|
|
}(e, t) || function(e, t) {
|
|
if (e) {
|
|
if ("string" == typeof e) return h(e, t);
|
|
var n = {}.toString.call(e).slice(8, -1);
|
|
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? h(e, t) : void 0
|
|
}
|
|
}(e, t) || function() {
|
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
|
|
}()
|
|
}
|
|
|
|
function h(e, t) {
|
|
(null == t || t > e.length) && (t = e.length);
|
|
for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n];
|
|
return r
|
|
}
|
|
|
|
function m() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return g(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (g(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, g(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, g(f, "constructor", u), g(u, "constructor", c), c.displayName = "GeneratorFunction", g(u, o, "GeneratorFunction"), g(f), g(f, o, "Generator"), g(f, r, function() {
|
|
return this
|
|
}), g(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (m = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function g(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
g = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
g(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, g(e, t, n, r)
|
|
}
|
|
|
|
function y(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
|
|
function v(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
y(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
y(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}
|
|
|
|
function b() {
|
|
return _.apply(this, arguments)
|
|
}
|
|
|
|
function _() {
|
|
return (_ = v(m().m(function e() {
|
|
var t, n, r, h, g, y, v, b, _, S, w, O, E, k, T, x;
|
|
return m().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, Promise.all([s.A.getCurrent(), c.A.getInfo(), a.A.getVariant(l.Q3), a.A.getVariant(l.$f), u.A.getFeatureFlag(d.bh), u.A.getFeatureFlag(d.iA)]);
|
|
case 1:
|
|
if (t = e.v, n = p(t, 6), r = n[0], h = n[1], g = n[2], y = n[3], v = n[4], b = n[5], _ = h.isLoggedIn, S = y === f.sl.LO_VARIANT, r.id) {
|
|
e.n = 2;
|
|
break
|
|
}
|
|
return e.a(2, {});
|
|
case 2:
|
|
if (S || _) {
|
|
e.n = 3;
|
|
break
|
|
}
|
|
return e.a(2, {});
|
|
case 3:
|
|
if (O = !1, (w = !1) || O) {
|
|
e.n = 4;
|
|
break
|
|
}
|
|
if ("control" !== g) {
|
|
e.n = 4;
|
|
break
|
|
}
|
|
return e.a(2, {});
|
|
case 4:
|
|
if (!(w && !v || O && !b)) {
|
|
e.n = 5;
|
|
break
|
|
}
|
|
return e.a(2, {});
|
|
case 5:
|
|
return e.n = 6, c.A.getSettings();
|
|
case 6:
|
|
if (E = e.v, !h.isLoggedIn || 1 !== (null == E ? void 0 : E.postPurchaseAdsOptOut)) {
|
|
e.n = 7;
|
|
break
|
|
}
|
|
return e.a(2, {});
|
|
case 7:
|
|
return e.n = 8, Promise.all([o.A.dispatch(i.Zw.fetchRoktOffers({
|
|
store: r,
|
|
userAgent: navigator.userAgent,
|
|
isLoggedIn: _
|
|
})), o.A.dispatch(i.Zw.fetchUserFirstName())]);
|
|
case 8:
|
|
if (k = e.v, T = p(k, 1), (x = T[0]).payload) {
|
|
e.n = 9;
|
|
break
|
|
}
|
|
throw new Error("No offer found or temporarily rate limited");
|
|
case 9:
|
|
return e.a(2, {
|
|
isStoreEligibleForRoktOffers: x.payload.isStoreEligibleForRoktOffers
|
|
})
|
|
}
|
|
}, e)
|
|
}))).apply(this, arguments)
|
|
}
|
|
r.A.addListener("pageDetected:PAYMENTS", v(m().m(function e() {
|
|
return m().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, b();
|
|
case 1:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}))), r.A.addListener("tabs:activated", function() {
|
|
var e = v(m().m(function e(t, n) {
|
|
var o;
|
|
return m().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
o = n && n.tabId, r.A.send("rokt:tabs:activated", {
|
|
tabId: o
|
|
});
|
|
case 1:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t, n) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}());
|
|
const S = {
|
|
checkEligiblityAndFetchRoktOffers: b
|
|
}
|
|
},
|
|
22626: (e, t, n) => {
|
|
"use strict";
|
|
Object.defineProperty(t, "__esModule", {
|
|
value: !0
|
|
}), t.default = void 0;
|
|
var r, o = (r = n(29677)) && r.__esModule ? r : {
|
|
default: r
|
|
};
|
|
t.default = o.default
|
|
},
|
|
23649: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
Ay: () => f,
|
|
Qq: () => l,
|
|
fc: () => i.A
|
|
});
|
|
var r = n(83787),
|
|
o = n(60834),
|
|
i = n(59843);
|
|
|
|
function a(e) {
|
|
return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, a(e)
|
|
}
|
|
|
|
function s(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function c(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? s(Object(n), !0).forEach(function(t) {
|
|
u(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function u(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != a(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != a(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == a(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
var l = c(c({}, o.A), r.o1);
|
|
const f = r.Ff
|
|
},
|
|
27102: (e, t, n) => {
|
|
"use strict";
|
|
Object.defineProperty(t, "__esModule", {
|
|
value: !0
|
|
});
|
|
var r = {
|
|
atoms: !0,
|
|
CardLoader: !0,
|
|
hooks: !0,
|
|
LoaderGroup: !0,
|
|
ContainerLoader: !0,
|
|
molecules: !0,
|
|
organisms: !0,
|
|
templates: !0,
|
|
UniversalContainer: !0,
|
|
UniversalContainerLayout: !0,
|
|
CardHeader: !0,
|
|
Card: !0,
|
|
Collapse: !0
|
|
};
|
|
Object.defineProperty(t, "Card", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return m.default
|
|
}
|
|
}), Object.defineProperty(t, "CardHeader", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return h.default
|
|
}
|
|
}), Object.defineProperty(t, "CardLoader", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return i.default
|
|
}
|
|
}), Object.defineProperty(t, "Collapse", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return g.default
|
|
}
|
|
}), Object.defineProperty(t, "ContainerLoader", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return c.default
|
|
}
|
|
}), Object.defineProperty(t, "LoaderGroup", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return s.default
|
|
}
|
|
}), Object.defineProperty(t, "UniversalContainer", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return d.default
|
|
}
|
|
}), Object.defineProperty(t, "UniversalContainerLayout", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return p.default
|
|
}
|
|
}), Object.defineProperty(t, "atoms", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return o.default
|
|
}
|
|
}), Object.defineProperty(t, "hooks", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return a.default
|
|
}
|
|
}), Object.defineProperty(t, "molecules", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return u.default
|
|
}
|
|
}), Object.defineProperty(t, "organisms", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return l.default
|
|
}
|
|
}), Object.defineProperty(t, "templates", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return f.default
|
|
}
|
|
});
|
|
var o = v(n(35483)),
|
|
i = v(n(38757)),
|
|
a = v(n(30553)),
|
|
s = v(n(8255)),
|
|
c = v(n(97011)),
|
|
u = v(n(17940)),
|
|
l = v(n(42396)),
|
|
f = v(n(92870)),
|
|
d = v(n(22626)),
|
|
p = v(n(7992)),
|
|
h = function(e, t) {
|
|
if (!t && e && e.__esModule) return e;
|
|
if (null === e || "object" != typeof e && "function" != typeof e) return {
|
|
default: e
|
|
};
|
|
var n = y(t);
|
|
if (n && n.has(e)) return n.get(e);
|
|
var r = {
|
|
__proto__: null
|
|
},
|
|
o = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
for (var i in e)
|
|
if ("default" !== i && Object.prototype.hasOwnProperty.call(e, i)) {
|
|
var a = o ? Object.getOwnPropertyDescriptor(e, i) : null;
|
|
a && (a.get || a.set) ? Object.defineProperty(r, i, a) : r[i] = e[i]
|
|
} return r.default = e, n && n.set(e, r), r
|
|
}(n(29959));
|
|
Object.keys(h).forEach(function(e) {
|
|
"default" !== e && "__esModule" !== e && (Object.prototype.hasOwnProperty.call(r, e) || e in t && t[e] === h[e] || Object.defineProperty(t, e, {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return h[e]
|
|
}
|
|
}))
|
|
});
|
|
var m = v(n(53030)),
|
|
g = v(n(5535));
|
|
|
|
function y(e) {
|
|
if ("function" != typeof WeakMap) return null;
|
|
var t = new WeakMap,
|
|
n = new WeakMap;
|
|
return (y = function(e) {
|
|
return e ? n : t
|
|
})(e)
|
|
}
|
|
|
|
function v(e) {
|
|
return e && e.__esModule ? e : {
|
|
default: e
|
|
}
|
|
}
|
|
},
|
|
28966: e => {
|
|
"use strict";
|
|
var t, n, r, o = {
|
|
'"': '"',
|
|
"\\": "\\",
|
|
"/": "/",
|
|
b: "\b",
|
|
f: "\f",
|
|
n: "\n",
|
|
r: "\r",
|
|
t: "\t"
|
|
};
|
|
|
|
function i(e) {
|
|
throw {
|
|
name: "SyntaxError",
|
|
message: e,
|
|
at: t,
|
|
text: r
|
|
}
|
|
}
|
|
|
|
function a(e) {
|
|
return e && e !== n && i("Expected '" + e + "' instead of '" + n + "'"), n = r.charAt(t), t += 1, n
|
|
}
|
|
|
|
function s() {
|
|
var e, t = "";
|
|
for ("-" === n && (t = "-", a("-")); n >= "0" && n <= "9";) t += n, a();
|
|
if ("." === n)
|
|
for (t += "."; a() && n >= "0" && n <= "9";) t += n;
|
|
if ("e" === n || "E" === n)
|
|
for (t += n, a(), "-" !== n && "+" !== n || (t += n, a()); n >= "0" && n <= "9";) t += n, a();
|
|
return e = Number(t), isFinite(e) || i("Bad number"), e
|
|
}
|
|
|
|
function c() {
|
|
var e, t, r, s = "";
|
|
if ('"' === n)
|
|
for (; a();) {
|
|
if ('"' === n) return a(), s;
|
|
if ("\\" === n)
|
|
if (a(), "u" === n) {
|
|
for (r = 0, t = 0; t < 4 && (e = parseInt(a(), 16), isFinite(e)); t += 1) r = 16 * r + e;
|
|
s += String.fromCharCode(r)
|
|
} else {
|
|
if ("string" != typeof o[n]) break;
|
|
s += o[n]
|
|
}
|
|
else s += n
|
|
}
|
|
i("Bad string")
|
|
}
|
|
|
|
function u() {
|
|
for (; n && n <= " ";) a()
|
|
}
|
|
|
|
function l() {
|
|
switch (u(), n) {
|
|
case "{":
|
|
return function() {
|
|
var e, t = {};
|
|
if ("{" === n) {
|
|
if (a("{"), u(), "}" === n) return a("}"), t;
|
|
for (; n;) {
|
|
if (e = c(), u(), a(":"), Object.prototype.hasOwnProperty.call(t, e) && i('Duplicate key "' + e + '"'), t[e] = l(), u(), "}" === n) return a("}"), t;
|
|
a(","), u()
|
|
}
|
|
}
|
|
i("Bad object")
|
|
}();
|
|
case "[":
|
|
return function() {
|
|
var e = [];
|
|
if ("[" === n) {
|
|
if (a("["), u(), "]" === n) return a("]"), e;
|
|
for (; n;) {
|
|
if (e.push(l()), u(), "]" === n) return a("]"), e;
|
|
a(","), u()
|
|
}
|
|
}
|
|
i("Bad array")
|
|
}();
|
|
case '"':
|
|
return c();
|
|
case "-":
|
|
return s();
|
|
default:
|
|
return n >= "0" && n <= "9" ? s() : function() {
|
|
switch (n) {
|
|
case "t":
|
|
return a("t"), a("r"), a("u"), a("e"), !0;
|
|
case "f":
|
|
return a("f"), a("a"), a("l"), a("s"), a("e"), !1;
|
|
case "n":
|
|
return a("n"), a("u"), a("l"), a("l"), null;
|
|
default:
|
|
i("Unexpected '" + n + "'")
|
|
}
|
|
}()
|
|
}
|
|
}
|
|
e.exports = function(e, o) {
|
|
var a;
|
|
return r = e, t = 0, n = " ", a = l(), u(), n && i("Syntax error"), "function" == typeof o ? function e(t, n) {
|
|
var r, i, a = t[n];
|
|
if (a && "object" == typeof a)
|
|
for (r in l) Object.prototype.hasOwnProperty.call(a, r) && (void 0 === (i = e(a, r)) ? delete a[r] : a[r] = i);
|
|
return o.call(t, n, a)
|
|
}({
|
|
"": a
|
|
}, "") : a
|
|
}
|
|
},
|
|
28992: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
Ay: () => f,
|
|
Og: () => i.A,
|
|
Ru: () => l
|
|
});
|
|
var r = n(18850),
|
|
o = n(20987),
|
|
i = n(6590);
|
|
|
|
function a(e) {
|
|
return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, a(e)
|
|
}
|
|
|
|
function s(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function c(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? s(Object(n), !0).forEach(function(t) {
|
|
u(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function u(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != a(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != a(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == a(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
var l = c(c({}, o.A), r.o1);
|
|
const f = r.Ff
|
|
},
|
|
29123: (e, t, n) => {
|
|
"use strict";
|
|
var r = ("undefined" != typeof JSON ? JSON : n(55657)).stringify,
|
|
o = n(3700),
|
|
i = n(3595),
|
|
a = n(51769),
|
|
s = n(33862),
|
|
c = s("Array.prototype.join"),
|
|
u = s("Array.prototype.indexOf"),
|
|
l = s("Array.prototype.splice"),
|
|
f = s("Array.prototype.sort"),
|
|
d = function(e, t) {
|
|
for (var n = "", r = 0; r < e; r += 1) n += t;
|
|
return n
|
|
},
|
|
p = function(e, t, n) {
|
|
return n
|
|
};
|
|
e.exports = function(e) {
|
|
var t = arguments.length > 1 ? arguments[1] : void 0,
|
|
n = t && t.space || "";
|
|
"number" == typeof n && (n = d(n, " "));
|
|
var s = !!t && "boolean" == typeof t.cycles && t.cycles,
|
|
h = t && t.replacer ? a(t.replacer) : p;
|
|
if (t && void 0 !== t.collapseEmpty && "boolean" != typeof t.collapseEmpty) throw new TypeError("`collapseEmpty` must be a boolean, if provided");
|
|
var m = !!t && t.collapseEmpty,
|
|
g = "function" == typeof t ? t : t && t.cmp,
|
|
y = g && function(e) {
|
|
var t = g.length > 2 && function(t) {
|
|
return e[t]
|
|
};
|
|
return function(n, r) {
|
|
return g({
|
|
key: n,
|
|
value: e[n]
|
|
}, {
|
|
key: r,
|
|
value: e[r]
|
|
}, t ? {
|
|
__proto__: null,
|
|
get: t
|
|
} : void 0)
|
|
}
|
|
},
|
|
v = [];
|
|
return function e(t, a, p, g) {
|
|
var b = n ? "\n" + d(g, n) : "",
|
|
_ = n ? ": " : ":";
|
|
if (p && p.toJSON && "function" == typeof p.toJSON && (p = p.toJSON()), void 0 !== (p = h(t, a, p))) {
|
|
if ("object" != typeof p || null === p) return r(p);
|
|
var S = function(e, t) {
|
|
return m && 0 === e.length ? t : ("[]" === t ? "[" : "{") + c(e, ",") + b + ("[]" === t ? "]" : "}")
|
|
};
|
|
if (o(p)) {
|
|
for (var w = [], O = 0; O < p.length; O++) {
|
|
var E = e(p, O, p[O], g + 1) || r(null);
|
|
w[w.length] = b + n + E
|
|
}
|
|
return S(w, "[]")
|
|
}
|
|
if (-1 !== u(v, p)) {
|
|
if (s) return r("__cycle__");
|
|
throw new TypeError("Converting circular structure to JSON")
|
|
}
|
|
v[v.length] = p;
|
|
var k = f(i(p), y && y(p));
|
|
for (w = [], O = 0; O < k.length; O++) {
|
|
var T = e(p, a = k[O], p[a], g + 1);
|
|
if (T) {
|
|
var x = r(a) + _ + T;
|
|
w[w.length] = b + n + x
|
|
}
|
|
}
|
|
return l(v, u(v, p), 1), S(w, "{}")
|
|
}
|
|
}({
|
|
"": e
|
|
}, "", e, 0)
|
|
}
|
|
},
|
|
29926: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
A: () => r
|
|
});
|
|
const r = {
|
|
selectOffers: function() {
|
|
return function(e) {
|
|
return (e && e.roktOffers).offers
|
|
}
|
|
},
|
|
selectFirstName: function() {
|
|
return function(e) {
|
|
var t;
|
|
return null == e || null === (t = e.roktOffers) || void 0 === t ? void 0 : t.firstName
|
|
}
|
|
}
|
|
}
|
|
},
|
|
31234: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
I: () => r,
|
|
l: () => o
|
|
});
|
|
var r = "honeyTips:suppression:all:loggedOut:expirationDate",
|
|
o = "honeyTips:suppression:all:expirationDate"
|
|
},
|
|
31311: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
A: () => i
|
|
});
|
|
var r = n(2317),
|
|
o = n(36927);
|
|
const i = (0, r.Mz)(function(e) {
|
|
return (0, o.A)(e)
|
|
}, function(e) {
|
|
return !!(e || {}).showTopTipOnly
|
|
})
|
|
},
|
|
32451: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
Ay: () => f,
|
|
fS: () => l,
|
|
o2: () => i.A
|
|
});
|
|
var r = n(35501),
|
|
o = n(99488),
|
|
i = n(8741);
|
|
|
|
function a(e) {
|
|
return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, a(e)
|
|
}
|
|
|
|
function s(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function c(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? s(Object(n), !0).forEach(function(t) {
|
|
u(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function u(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != a(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != a(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == a(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
var l = c(c({}, o.A), r.o1);
|
|
const f = r.Ff
|
|
},
|
|
33118: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
F: () => l
|
|
});
|
|
var r = n(9921),
|
|
o = n(46946),
|
|
i = n(25836);
|
|
|
|
function a(e) {
|
|
return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, a(e)
|
|
}
|
|
|
|
function s(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function c(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? s(Object(n), !0).forEach(function(t) {
|
|
u(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function u(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != a(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != a(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == a(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
var l = function(e) {
|
|
return function(t, n) {
|
|
var a = c(c({}, (0, i.A)(n())), e);
|
|
o.A.sendEvent("tip004035", a), r.A.debug("TIPS_CONTAINER:".concat(a.event), a)
|
|
}
|
|
}
|
|
},
|
|
33731: (e, t, n) => {
|
|
"use strict";
|
|
Object.defineProperty(t, "__esModule", {
|
|
value: !0
|
|
}), t.default = void 0;
|
|
var r = c(n(9666)),
|
|
o = c(n(86146)),
|
|
i = n(22662),
|
|
a = c(n(62924)),
|
|
s = n(72097);
|
|
|
|
function c(e) {
|
|
return e && e.__esModule ? e : {
|
|
default: e
|
|
}
|
|
}
|
|
const u = {
|
|
backButtonCopy: o.default.string,
|
|
closeButtonCopy: o.default.string.isRequired,
|
|
handleBackClick: o.default.func,
|
|
onClose: o.default.func.isRequired,
|
|
title: o.default.string.isRequired
|
|
},
|
|
l = {
|
|
header: {
|
|
display: "flex",
|
|
justifyContent: "space-between",
|
|
alignItems: "center",
|
|
position: "sticky",
|
|
padding: "16px",
|
|
boxShadow: "0px 1px 2px rgba(0, 0, 0, 0.1)"
|
|
},
|
|
headerAction: {
|
|
composes: "body2",
|
|
color: s.Colors.grey800,
|
|
cursor: "pointer",
|
|
"&:focus": {
|
|
outline: "unset"
|
|
}
|
|
},
|
|
headerTitle: {
|
|
composes: "title1",
|
|
position: "absolute",
|
|
width: "calc(100% - 104px)",
|
|
margin: "0 36px",
|
|
textAlign: "center",
|
|
whiteSpace: "nowrap",
|
|
overflow: "hidden",
|
|
textOverflow: "ellipsis"
|
|
},
|
|
hidden: {
|
|
visibility: "hidden"
|
|
}
|
|
},
|
|
f = (0, i.createUseStyles)(l),
|
|
d = ({
|
|
backButtonCopy: e,
|
|
closeButtonCopy: t,
|
|
handleBackClick: n,
|
|
onClose: o,
|
|
title: i
|
|
}) => {
|
|
const s = f();
|
|
return r.default.createElement("div", {
|
|
className: s.header
|
|
}, r.default.createElement("div", {
|
|
id: "BottomSheetHeaderBackButton",
|
|
className: (0, a.default)(s.headerAction, {
|
|
[s.hidden]: !e
|
|
}),
|
|
onClick: n,
|
|
onKeyPress: n,
|
|
role: "button",
|
|
tabIndex: 0
|
|
}, e), r.default.createElement("div", {
|
|
className: s.headerTitle
|
|
}, i), r.default.createElement("div", {
|
|
id: "BottomSheetHeaderCloseButton",
|
|
className: s.headerAction,
|
|
onClick: o,
|
|
onKeyPress: o,
|
|
role: "button",
|
|
tabIndex: 0
|
|
}, t))
|
|
};
|
|
d.propTypes = u, d.defaultProps = {
|
|
backButtonCopy: "",
|
|
handleBackClick: () => {}
|
|
};
|
|
t.default = d
|
|
},
|
|
34570: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
A: () => u
|
|
});
|
|
var r = n(2317),
|
|
o = n(79973),
|
|
i = n(70481),
|
|
a = n(46529),
|
|
s = n(34819),
|
|
c = {
|
|
orientation: "topRight",
|
|
top: a.oU
|
|
};
|
|
const u = (0, r.Mz)(function(e) {
|
|
return o.v_.selectDeviceSetting(a.xw.MOVABLE_BADGE_SETTINGS)(e)
|
|
}, function(e) {
|
|
return o.v_.selectDeviceSetting(a.xw.MOVABLE_BADGE_SETTINGS_BY_STORE)(e)
|
|
}, function(e) {
|
|
return i.VH.selectCurrentStoreId()(e)
|
|
}, function(e, t, n) {
|
|
return (0, s.w)(n) ? (t || {})[n] || (0, s.b)(n) : e || c
|
|
})
|
|
},
|
|
34819: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
b: () => o,
|
|
w: () => i
|
|
});
|
|
var r = {
|
|
1: {
|
|
orientation: "topRight",
|
|
top: 160
|
|
}
|
|
},
|
|
o = function(e) {
|
|
return r[e]
|
|
},
|
|
i = function(e) {
|
|
return !!o(e)
|
|
}
|
|
},
|
|
35251: e => {
|
|
"use strict";
|
|
var t = Object.prototype.toString;
|
|
e.exports = function(e) {
|
|
var n = t.call(e),
|
|
r = "[object Arguments]" === n;
|
|
return r || (r = "[object Array]" !== n && null !== e && "object" == typeof e && "number" == typeof e.length && e.length >= 0 && "[object Function]" === t.call(e.callee)), r
|
|
}
|
|
},
|
|
35304: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
A: () => s
|
|
});
|
|
var r = n(43189),
|
|
o = {
|
|
helpful: !0,
|
|
not_relevant: !0,
|
|
something_wrong: !0,
|
|
not_helpful: !0
|
|
},
|
|
i = {
|
|
helpful: !0,
|
|
not_relevant: !0,
|
|
price_wrong: !0,
|
|
something_else_wrong: !0,
|
|
not_helpful: !0
|
|
},
|
|
a = {
|
|
price_wrong: !0,
|
|
something_else_wrong: !0,
|
|
not_helpful: !0
|
|
};
|
|
const s = function(e, t) {
|
|
return e ? r.Wv.filter(function(e) {
|
|
return o[e.id]
|
|
}) : t ? r.Wv.filter(function(e) {
|
|
return a[e.id]
|
|
}) : r.Wv.filter(function(e) {
|
|
return i[e.id]
|
|
})
|
|
}
|
|
},
|
|
35477: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
Ay: () => C,
|
|
MR: () => P,
|
|
jG: () => T
|
|
});
|
|
var r = n(9666),
|
|
o = n(99459),
|
|
i = n(60191),
|
|
a = n(22662),
|
|
s = n(22182),
|
|
c = n(69698),
|
|
u = n.n(c),
|
|
l = n(86531),
|
|
f = n.n(l),
|
|
d = n(7837),
|
|
p = n(24166);
|
|
|
|
function h(e) {
|
|
return h = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, h(e)
|
|
}
|
|
|
|
function m() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return g(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (g(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, g(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, g(f, "constructor", u), g(u, "constructor", c), c.displayName = "GeneratorFunction", g(u, o, "GeneratorFunction"), g(f), g(f, o, "Generator"), g(f, r, function() {
|
|
return this
|
|
}), g(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (m = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function g(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
g = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
g(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, g(e, t, n, r)
|
|
}
|
|
|
|
function y(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function v(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? y(Object(n), !0).forEach(function(t) {
|
|
b(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : y(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function b(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != h(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != h(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == h(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
|
|
function _(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
|
|
function S(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
_(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
_(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}
|
|
var w = (0, s.A)().plugins,
|
|
O = "_honeyShadowRoot",
|
|
E = {
|
|
containerId: "honey",
|
|
mode: "open",
|
|
fallbackToNonShadow: !0,
|
|
dontInjectFonts: !1
|
|
};
|
|
|
|
function k() {
|
|
u()("head").append("<link rel='stylesheet' href='".concat("https://cdn.honey.io", "/css/honey-font.min.css?v2' type='text/css' />"))
|
|
}
|
|
|
|
function T(e) {
|
|
return e && (e.shadowRoot || u()(e).data(O))
|
|
}
|
|
|
|
function x(e, t) {
|
|
return I.apply(this, arguments)
|
|
}
|
|
|
|
function I() {
|
|
return I = S(m().m(function e(t, n) {
|
|
var i, a, s, c, l, h = arguments;
|
|
return m().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
if (i = h.length > 2 && void 0 !== h[2] ? h[2] : {}, f().locale(d.A.getUILanguage()), !n) {
|
|
e.n = 2;
|
|
break
|
|
}
|
|
return e.n = 1, p.A.constructor.allowUi(i.feature, i.surface);
|
|
case 1:
|
|
if (e.v) {
|
|
e.n = 2;
|
|
break
|
|
}
|
|
return e.a(2, !1);
|
|
case 2:
|
|
if (a = v(v({}, E), i), s = r.createElement("div", {
|
|
id: a.containerId
|
|
}, r.createElement("link", {
|
|
rel: "stylesheet",
|
|
href: "".concat("https://cdn.honey.io", "/css/honey-font.min.css?v2")
|
|
}), n), !t) {
|
|
e.n = 7;
|
|
break
|
|
}
|
|
if (!(c = T(t))) {
|
|
e.n = 3;
|
|
break
|
|
}
|
|
return o.render(s, c), e.a(2, Promise.resolve(c));
|
|
case 3:
|
|
if (!t.attachShadow) {
|
|
e.n = 4;
|
|
break
|
|
}
|
|
return l = t.attachShadow({
|
|
mode: a.mode
|
|
}), a.dontInjectFonts || k(), "closed" === a.mode && u()(t).data(O, l), o.render(s, l), e.a(2, Promise.resolve(l));
|
|
case 4:
|
|
if (!a.fallbackToNonShadow) {
|
|
e.n = 5;
|
|
break
|
|
}
|
|
o.render(s, t), e.n = 6;
|
|
break;
|
|
case 5:
|
|
case 7:
|
|
return e.a(2, Promise.resolve(!1));
|
|
case 6:
|
|
e.n = 8;
|
|
break;
|
|
case 8:
|
|
return e.a(2, Promise.resolve(!0))
|
|
}
|
|
}, e)
|
|
})), I.apply(this, arguments)
|
|
}
|
|
|
|
function P(e, t) {
|
|
return A.apply(this, arguments)
|
|
}
|
|
|
|
function A() {
|
|
return A = S(m().m(function e(t, n) {
|
|
var o, s, c, u, l, f = arguments;
|
|
return m().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return o = f.length > 2 && void 0 !== f[2] ? f[2] : {
|
|
mode: "closed",
|
|
dontInjectFonts: !0
|
|
}, e.n = 1, x(t, null, o);
|
|
case 1:
|
|
return s = e.v, c = new i.SN, (u = (0, i.vt)()).setup({
|
|
plugins: w,
|
|
insertionPoint: s.getElementById("honey")
|
|
}), l = r.createElement(a.JssProvider, {
|
|
jss: u,
|
|
registry: c
|
|
}, n), e.n = 2, x(t, l, o);
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
})), A.apply(this, arguments)
|
|
}
|
|
const C = x
|
|
},
|
|
35614: (e, t, n) => {
|
|
"use strict";
|
|
Object.defineProperty(t, "__esModule", {
|
|
value: !0
|
|
}), t.default = void 0;
|
|
var r = s(n(9666)),
|
|
o = s(n(86146)),
|
|
i = n(22662),
|
|
a = n(72097);
|
|
|
|
function s(e) {
|
|
return e && e.__esModule ? e : {
|
|
default: e
|
|
}
|
|
}
|
|
const c = {
|
|
title: o.default.node
|
|
},
|
|
u = {
|
|
title: void 0
|
|
},
|
|
l = {
|
|
root: {
|
|
display: "flex",
|
|
alignItems: "center"
|
|
},
|
|
icon: {
|
|
width: "24px",
|
|
height: "24px",
|
|
backgroundColor: a.Colors.main500,
|
|
display: "flex",
|
|
alignItems: "center",
|
|
justifyContent: "center",
|
|
borderRadius: "5px",
|
|
flex: "0,0,24px",
|
|
marginTop: 0,
|
|
marginBottom: 0
|
|
},
|
|
title: {
|
|
fontSize: "18px",
|
|
fontWeight: "500",
|
|
paddingLeft: "5px",
|
|
color: a.Colors.main500,
|
|
flex: "1",
|
|
marginTop: 0,
|
|
marginBottom: 0
|
|
}
|
|
},
|
|
f = (0, i.createUseStyles)(l),
|
|
d = ({
|
|
title: e
|
|
}) => {
|
|
const t = f();
|
|
return r.default.createElement("div", {
|
|
className: t.root
|
|
}, r.default.createElement("div", {
|
|
className: t.icon
|
|
}, r.default.createElement(a.Logo, {
|
|
color: a.Colors.white,
|
|
size: 16,
|
|
clickable: !1,
|
|
h: !0
|
|
})), r.default.createElement("h1", {
|
|
className: t.title
|
|
}, e || "tips"))
|
|
};
|
|
d.propTypes = c, d.defaultProps = u;
|
|
t.default = d
|
|
},
|
|
35643: (e, t, n) => {
|
|
"use strict";
|
|
var r = n(2089),
|
|
o = n(68636),
|
|
i = n(80506);
|
|
e.exports = function() {
|
|
return i(r, o, arguments)
|
|
}
|
|
},
|
|
35826: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
Ay: () => S,
|
|
vt: () => _,
|
|
im: () => g
|
|
});
|
|
var r = n(63086),
|
|
o = n(2317),
|
|
i = function() {
|
|
return function(e) {
|
|
return e && e.page && e.page.currentPageId
|
|
}
|
|
},
|
|
a = function() {
|
|
return function(e) {
|
|
return e && e.page && e.page.pendingPageId
|
|
}
|
|
},
|
|
s = function() {
|
|
return function(e) {
|
|
return function(e) {
|
|
return e && e.page && e.page.pendingPageId
|
|
}(e) || function(e) {
|
|
return e && e.page && e.page.currentPageId
|
|
}(e)
|
|
}
|
|
},
|
|
c = function(e) {
|
|
return function(t) {
|
|
return t && t.page && t.page.pages && t.page.pages[e]
|
|
}
|
|
},
|
|
u = function(e) {
|
|
return function(t) {
|
|
return (c(e)(t) || {}).pageTypes
|
|
}
|
|
},
|
|
l = function(e) {
|
|
return function(t) {
|
|
return (c(e)(t) || {}).isGeneric
|
|
}
|
|
},
|
|
f = function(e) {
|
|
return ["PRODUCT", "SHOPIFY_PRODUCT_PAGE", "SHOPIFY_WHERE_AM_I", "WHERE_AM_I"].includes(e)
|
|
},
|
|
d = function(e) {
|
|
return ["HOMEPAGE"].includes(e)
|
|
},
|
|
p = (0, o.Mz)(function(e) {
|
|
return function(e) {
|
|
return e && e.page && e.page.pendingPageId
|
|
}(e) || function(e) {
|
|
return e && e.page && e.page.currentPageId
|
|
}(e)
|
|
}, function(e) {
|
|
return e
|
|
}, function(e, t) {
|
|
return u(e)(t)
|
|
}),
|
|
h = (0, o.Mz)(p, function(e) {
|
|
return e.some(d)
|
|
}),
|
|
m = (0, o.Mz)(p, function(e) {
|
|
return e.some(f)
|
|
});
|
|
const g = {
|
|
selectPageByPageId: c,
|
|
selectCurrentPageId: i,
|
|
selectPendingPageId: a,
|
|
selectMostRecentPageId: s,
|
|
selectContainerIdByPageId: function(e) {
|
|
return function(t) {
|
|
return (c(e)(t) || {}).containerId
|
|
}
|
|
},
|
|
selectPageTypesByPageId: u,
|
|
selectIsCurrentPageLaunchpad: function() {
|
|
return function(e) {
|
|
var t = function(e) {
|
|
return e && e.page && e.page.currentPageId
|
|
}(e);
|
|
return (u(t)(e) || []).includes("HOMEPAGE")
|
|
}
|
|
},
|
|
selectIsHomePage: h,
|
|
selectIsProductPage: m,
|
|
selectIsGenericPage: function(e) {
|
|
var t = function(e) {
|
|
return function(e) {
|
|
return e && e.page && e.page.pendingPageId
|
|
}(e) || function(e) {
|
|
return e && e.page && e.page.currentPageId
|
|
}(e)
|
|
}(e);
|
|
return l(t)(e)
|
|
},
|
|
selectIsGenericByPageId: l,
|
|
selectHasTipsTimedOut: function(e) {
|
|
var t = function(e) {
|
|
return function(e) {
|
|
return e && e.page && e.page.pendingPageId
|
|
}(e) || function(e) {
|
|
return e && e.page && e.page.currentPageId
|
|
}(e)
|
|
}(e);
|
|
if (!t) return !1;
|
|
var n = c(t)(e);
|
|
return !(!n || !n.tipsTimedOut)
|
|
}
|
|
};
|
|
|
|
function y(e) {
|
|
return y = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, y(e)
|
|
}
|
|
|
|
function v(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function b(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != y(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != y(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == y(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
var _ = function(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? v(Object(n), !0).forEach(function(t) {
|
|
b(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : v(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}({}, r.o1);
|
|
const S = r.Ff
|
|
},
|
|
36927: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
A: () => s,
|
|
z: () => a
|
|
});
|
|
var r = n(2317),
|
|
o = n(35826),
|
|
i = n(23649),
|
|
a = (0, r.Mz)(o.im.selectCurrentPageId(), function(e) {
|
|
return e
|
|
}, function(e, t) {
|
|
return o.im.selectContainerIdByPageId(e)(t)
|
|
});
|
|
const s = (0, r.Mz)(a, function(e) {
|
|
return e
|
|
}, function(e, t) {
|
|
return i.fc.selectContainerByContainerId(e)(t)
|
|
})
|
|
},
|
|
38402: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
Ay: () => f,
|
|
GF: () => i.A,
|
|
td: () => l
|
|
});
|
|
var r = n(3640),
|
|
o = n(50600),
|
|
i = n(34136);
|
|
|
|
function a(e) {
|
|
return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, a(e)
|
|
}
|
|
|
|
function s(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function c(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? s(Object(n), !0).forEach(function(t) {
|
|
u(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function u(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != a(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != a(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == a(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
var l = c(c({}, o.A), r.o1);
|
|
const f = r.Ff
|
|
},
|
|
38707: (e, t, n) => {
|
|
"use strict";
|
|
Object.defineProperty(t, "__esModule", {
|
|
value: !0
|
|
}), t.default = void 0;
|
|
var r = s(n(9666)),
|
|
o = s(n(86146)),
|
|
i = n(72097),
|
|
a = n(22662);
|
|
|
|
function s(e) {
|
|
return e && e.__esModule ? e : {
|
|
default: e
|
|
}
|
|
}
|
|
|
|
function c() {
|
|
return c = Object.assign ? Object.assign.bind() : function(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = arguments[t];
|
|
for (var r in n) Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r])
|
|
}
|
|
return e
|
|
}, c.apply(this, arguments)
|
|
}
|
|
const u = {
|
|
onClick: o.default.func,
|
|
body: o.default.string
|
|
},
|
|
l = (0, a.createUseStyles)({
|
|
main: {
|
|
width: "100%",
|
|
height: "48px",
|
|
textAlign: "center",
|
|
backgroundColor: i.Colors.white,
|
|
padding: "10px",
|
|
display: "flex",
|
|
flexDirection: "row",
|
|
justifyContent: "center",
|
|
alignItems: "center"
|
|
},
|
|
button: {
|
|
background: "none",
|
|
color: "inherit",
|
|
border: "none",
|
|
padding: "0",
|
|
font: "inherit",
|
|
cursor: "pointer",
|
|
outlineOffset: "-2px",
|
|
width: "100%"
|
|
},
|
|
expandCopy: {
|
|
composes: "title1",
|
|
paddingRight: "6px",
|
|
"&:hover": {
|
|
cursor: "pointer"
|
|
}
|
|
},
|
|
downIcon: {
|
|
"&:hover": {
|
|
cursor: "pointer"
|
|
}
|
|
}
|
|
}),
|
|
f = ({
|
|
onClick: e,
|
|
body: t,
|
|
...n
|
|
}) => {
|
|
const o = l();
|
|
return r.default.createElement("button", c({
|
|
onClick: e,
|
|
className: o.button
|
|
}, n), r.default.createElement("div", {
|
|
className: o.main
|
|
}, r.default.createElement("div", {
|
|
className: o.expandCopy
|
|
}, t), r.default.createElement("div", null, r.default.createElement(i.Icon, {
|
|
color: i.Colors.grey800,
|
|
icon: "down-line-16"
|
|
}))))
|
|
};
|
|
f.propTypes = u, f.defaultProps = {
|
|
onClick: null,
|
|
body: ""
|
|
};
|
|
t.default = f
|
|
},
|
|
41502: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
Ay: () => f,
|
|
j_: () => l,
|
|
vi: () => u
|
|
});
|
|
var r = n(81870),
|
|
o = n(67004),
|
|
i = n(5735),
|
|
a = function(e) {
|
|
return e && e.categoryId === r.Q.MAIN
|
|
},
|
|
s = function(e, t) {
|
|
var n = a(t) - a(e);
|
|
return 0 !== n ? n : t.score - e.score
|
|
},
|
|
c = function(e) {
|
|
var t = (0, i.A)(e) || [];
|
|
return o.kF.selectCurrentTipsContainerVariant(e) === r.ut.DEPRIORITIZED_MAIN_TIP ? t : function(e) {
|
|
return e && e.sort(s)
|
|
}(t)
|
|
},
|
|
u = function(e) {
|
|
return ((0, i.A)(e) || []).find(function(e) {
|
|
return e && e.categoryId === r.Q.CONDENSED_LAUNCHPAD
|
|
}) || !1
|
|
},
|
|
l = function(e) {
|
|
var t = ((0, i.A)(e) || []).find(function(e) {
|
|
return function(e) {
|
|
return e && e.categoryId === r.Q.CONDENSED_LAUNCHPAD
|
|
}(e)
|
|
});
|
|
return u(e) && t ? [t] : c(e)
|
|
};
|
|
const f = c
|
|
},
|
|
42528: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
Ay: () => f,
|
|
HL: () => i.A,
|
|
Jq: () => l
|
|
});
|
|
var r = n(23106),
|
|
o = n(23323),
|
|
i = n(71326);
|
|
|
|
function a(e) {
|
|
return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, a(e)
|
|
}
|
|
|
|
function s(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function c(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? s(Object(n), !0).forEach(function(t) {
|
|
u(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function u(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != a(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != a(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == a(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
var l = c(c({}, o.A), r.o1);
|
|
const f = r.Ff
|
|
},
|
|
43189: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
KM: () => s,
|
|
QJ: () => o,
|
|
Sl: () => i,
|
|
Wv: () => a
|
|
});
|
|
var r = n(7837),
|
|
o = {
|
|
loading: "loading",
|
|
success: "success"
|
|
},
|
|
i = {
|
|
loading: r.A.getMessage("Loading"),
|
|
success: r.A.getMessage("Sent"),
|
|
failed: r.A.getMessage("Try_Again")
|
|
},
|
|
a = [{
|
|
id: "not_relevant",
|
|
value: "not_relevant",
|
|
copy: r.A.getMessage("This_isnt_relevant")
|
|
}, {
|
|
id: "price_wrong",
|
|
value: "price_wrong",
|
|
copy: r.A.getMessage("The_price_is_wrong")
|
|
}, {
|
|
id: "something_wrong",
|
|
value: "something_wrong",
|
|
copy: r.A.getMessage("Something_is_wrong")
|
|
}, {
|
|
id: "something_else_wrong",
|
|
value: "something_wrong",
|
|
copy: r.A.getMessage("Something_else_is_wrong")
|
|
}, {
|
|
id: "not_helpful",
|
|
value: "not_helpful",
|
|
copy: r.A.getMessage("This_isnt_useful")
|
|
}],
|
|
s = {
|
|
none: "none",
|
|
positive: "thumbs_up",
|
|
negative: "thumbs_down",
|
|
negativeFormSubmitted: "thumbs_down_form_submitted"
|
|
};
|
|
Object.freeze(s)
|
|
},
|
|
46529: (e, t, n) => {
|
|
"use strict";
|
|
|
|
function r(e) {
|
|
return r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, r(e)
|
|
}
|
|
|
|
function o(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function i(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? o(Object(n), !0).forEach(function(t) {
|
|
a(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : o(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function a(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != r(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var o = n.call(e, t || "default");
|
|
if ("object" != r(o)) return o;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == r(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
n.d(t, {
|
|
qS: () => f,
|
|
oU: () => d,
|
|
ij: () => p,
|
|
kp: () => m,
|
|
xw: () => l,
|
|
PB: () => s,
|
|
Ue: () => c,
|
|
KA: () => g,
|
|
g$: () => u,
|
|
go: () => h
|
|
});
|
|
var s = {
|
|
BLOCKING_CDN: "blocking CDN",
|
|
STAND_DOWN: "stand down",
|
|
INVALID_PAGE_TYPE: "invalid page type",
|
|
DEFAULT_LAUNCHPAD_PATH_BLACKLISTED: "default launchpad path blacklisted",
|
|
STORE_LAUNCHPAD_DISABLED: "store launchpad disabled",
|
|
DYNAMIC_URL_BLACKLISTED: "dynamic url blacklisted",
|
|
STATIC_URL_BLACKLISTED: "static url blacklisted",
|
|
FIRST_PAGE_AFTER_INSTALL: "first page after install",
|
|
CANT_SHOW_LAUNCHPAD_WITH_ALLOW_LIST: "cannot show launchpad with allow list",
|
|
STORE_PDP_DISABLED: "store pdp disabled",
|
|
NO_LAUNCHPAD: "no launchpad variant for condensed container"
|
|
},
|
|
c = i(i({}, s), {
|
|
HOLDOUT_GROUP: "holdout group",
|
|
DISABLED_BY_USER: "disabled by user",
|
|
SUPPRESSED: "suppressed"
|
|
}),
|
|
u = ["BILLING", "CHECKOUT_CONFIRM", "FIND_SAVINGS", "FIND_SAVINGS_URL", "GOLD_REWARDS", "PAYMENTS", "PRODUCT", "SHOPIFY_FIND_SAVINGS", "SHOPIFY_PRODUCT_PAGE", "SHOPIFY_WHERE_AM_I", "NONPRODUCT", "HOMEPAGE", "UNSUPPORTED", "WHERE_AM_I"],
|
|
l = {
|
|
MOVABLE_BADGE_SETTINGS: "honeyTips:movableBadgeSettings",
|
|
MOVABLE_BADGE_SETTINGS_BY_STORE: "honeyTips:movableBadgeSettingsByStore",
|
|
TIPS_BUCKET_DATE: "device:tipsBucketDate"
|
|
},
|
|
f = 56,
|
|
d = 150,
|
|
p = 16,
|
|
h = {
|
|
TIP_CARD_ERROR: "tipCardError",
|
|
BADGE_INJECTION_ERROR: "badgeInjectionError"
|
|
},
|
|
m = 8,
|
|
g = ["www2.hm.com"]
|
|
},
|
|
47516: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
J: () => l,
|
|
o: () => f
|
|
});
|
|
var r = n(46946),
|
|
o = n(9921),
|
|
i = n(16670);
|
|
|
|
function a(e) {
|
|
return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, a(e)
|
|
}
|
|
|
|
function s(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function c(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? s(Object(n), !0).forEach(function(t) {
|
|
u(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function u(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != a(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != a(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == a(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
var l = function(e) {
|
|
return function(t, n) {
|
|
var a = (e || {}).tipId,
|
|
s = c(c({}, (0, i.A)(a)(n())), e);
|
|
r.A.sendEvent("tip004032", s), o.A.debug(function(e) {
|
|
var t = "TIPS_TIP:".concat(e.event);
|
|
return t + (e.action ? ":".concat(e.action) : "")
|
|
}(s), s)
|
|
}
|
|
},
|
|
f = function(e) {
|
|
var t = e.tipId,
|
|
n = e.customAction,
|
|
r = e.action;
|
|
return function(e) {
|
|
e(l({
|
|
tipId: t,
|
|
action: r || "custom_action",
|
|
event: "action",
|
|
customAction: n
|
|
}))
|
|
}
|
|
}
|
|
},
|
|
48541: (e, t, n) => {
|
|
"use strict";
|
|
var r;
|
|
if (!Object.keys) {
|
|
var o = Object.prototype.hasOwnProperty,
|
|
i = Object.prototype.toString,
|
|
a = n(35251),
|
|
s = Object.prototype.propertyIsEnumerable,
|
|
c = !s.call({
|
|
toString: null
|
|
}, "toString"),
|
|
u = s.call(function() {}, "prototype"),
|
|
l = ["toString", "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "constructor"],
|
|
f = function(e) {
|
|
var t = e.constructor;
|
|
return t && t.prototype === e
|
|
},
|
|
d = {
|
|
$applicationCache: !0,
|
|
$console: !0,
|
|
$external: !0,
|
|
$frame: !0,
|
|
$frameElement: !0,
|
|
$frames: !0,
|
|
$innerHeight: !0,
|
|
$innerWidth: !0,
|
|
$onmozfullscreenchange: !0,
|
|
$onmozfullscreenerror: !0,
|
|
$outerHeight: !0,
|
|
$outerWidth: !0,
|
|
$pageXOffset: !0,
|
|
$pageYOffset: !0,
|
|
$parent: !0,
|
|
$scrollLeft: !0,
|
|
$scrollTop: !0,
|
|
$scrollX: !0,
|
|
$scrollY: !0,
|
|
$self: !0,
|
|
$webkitIndexedDB: !0,
|
|
$webkitStorageInfo: !0,
|
|
$window: !0
|
|
},
|
|
p = function() {
|
|
if ("undefined" == typeof window) return !1;
|
|
for (var e in window) try {
|
|
if (!d["$" + e] && o.call(window, e) && null !== window[e] && "object" == typeof window[e]) try {
|
|
f(window[e])
|
|
} catch (e) {
|
|
return !0
|
|
}
|
|
} catch (e) {
|
|
return !0
|
|
}
|
|
return !1
|
|
}();
|
|
r = function(e) {
|
|
var t = null !== e && "object" == typeof e,
|
|
n = "[object Function]" === i.call(e),
|
|
r = a(e),
|
|
s = t && "[object String]" === i.call(e),
|
|
d = [];
|
|
if (!t && !n && !r) throw new TypeError("Object.keys called on a non-object");
|
|
var h = u && n;
|
|
if (s && e.length > 0 && !o.call(e, 0))
|
|
for (var m = 0; m < e.length; ++m) d.push(String(m));
|
|
if (r && e.length > 0)
|
|
for (var g = 0; g < e.length; ++g) d.push(String(g));
|
|
else
|
|
for (var y in e) h && "prototype" === y || !o.call(e, y) || d.push(String(y));
|
|
if (c)
|
|
for (var v = function(e) {
|
|
if ("undefined" == typeof window || !p) return f(e);
|
|
try {
|
|
return f(e)
|
|
} catch (e) {
|
|
return !1
|
|
}
|
|
}(e), b = 0; b < l.length; ++b) v && "constructor" === l[b] || !o.call(e, l[b]) || d.push(l[b]);
|
|
return d
|
|
}
|
|
}
|
|
e.exports = r
|
|
},
|
|
49651: (e, t, n) => {
|
|
"use strict";
|
|
|
|
function r() {
|
|
return "undefined" != typeof __SENTRY_BROWSER_BUNDLE__ && !!__SENTRY_BROWSER_BUNDLE__
|
|
}
|
|
|
|
function o() {
|
|
return "npm"
|
|
}
|
|
n.d(t, {
|
|
Z: () => r,
|
|
e: () => o
|
|
})
|
|
},
|
|
50769: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
EF: () => p,
|
|
MC: () => h,
|
|
Oo: () => d,
|
|
VK: () => m,
|
|
tY: () => f
|
|
});
|
|
var r = n(6241),
|
|
o = n.n(r),
|
|
i = n(32372),
|
|
a = n(65352);
|
|
|
|
function s(e) {
|
|
return s = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, s(e)
|
|
}
|
|
|
|
function c(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function u(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? c(Object(n), !0).forEach(function(t) {
|
|
l(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : c(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function l(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != s(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != s(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == s(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
|
|
function f() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
|
|
t = arguments.length > 1 ? arguments[1] : void 0,
|
|
n = a.A.formatInitialProduct(e),
|
|
r = e.parent_id,
|
|
s = e.variant_id,
|
|
c = function(e, t, n) {
|
|
return e && t && n && "".concat(e, "_").concat(o()(t), "_").concat(o()(n))
|
|
}(t, r, s);
|
|
return u(u({}, n), {}, {
|
|
id: c,
|
|
storeId: t,
|
|
variantId: s,
|
|
parentId: r,
|
|
productId: c,
|
|
fetcherType: i.HR.VIM
|
|
})
|
|
}
|
|
|
|
function d() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
|
|
t = arguments.length > 1 ? arguments[1] : void 0,
|
|
n = function() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
|
|
t = e.partialObservation,
|
|
n = void 0 === t ? {} : t,
|
|
r = n.title,
|
|
o = n.url,
|
|
i = n.descriptionText,
|
|
a = n.image,
|
|
s = n.alt_images,
|
|
c = n.price,
|
|
u = void 0 === c ? "" : c,
|
|
l = e.productId,
|
|
f = e.parentId,
|
|
d = e.storeId,
|
|
p = e.variations,
|
|
h = e.dealInsightHeadline,
|
|
m = void 0 === h ? {} : h;
|
|
return {
|
|
canonicalUrl: o,
|
|
description: i,
|
|
imageUrl: a,
|
|
images: s,
|
|
lastPrice: u && parseInt((100 * u.substr(1)).toFixed(), 10),
|
|
parentId: f,
|
|
productId: l,
|
|
storeId: d,
|
|
title: r,
|
|
variations: p || {},
|
|
dealInsightHeadline: m
|
|
}
|
|
}(e),
|
|
r = n.parentId,
|
|
o = e.variantId,
|
|
a = n.productId;
|
|
return u(u({}, n), {}, {
|
|
id: a,
|
|
storeId: t,
|
|
variantId: o,
|
|
merchId: r,
|
|
fetcherType: i.HR.VIM
|
|
})
|
|
}
|
|
|
|
function p() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
|
|
t = e.productId,
|
|
n = e.parentId,
|
|
r = e.variantId,
|
|
o = e.basePrice;
|
|
return {
|
|
id: t,
|
|
productId: t,
|
|
parentId: n,
|
|
variantId: r,
|
|
storeId: arguments.length > 1 ? arguments[1] : void 0,
|
|
merchId: n,
|
|
lastPrice: parseInt((100 * o).toFixed(), 10),
|
|
fetcherType: i.HR.OPTIMUS
|
|
}
|
|
}
|
|
|
|
function h() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
|
|
t = arguments.length > 1 ? arguments[1] : void 0;
|
|
return {
|
|
canonicalUrl: e.canonical_url,
|
|
imageUrl: e.image_url_primary,
|
|
lastPrice: "number" == typeof e.price_current ? parseInt((100 * e.price_current).toFixed(), 10) : "",
|
|
lastPriceCurrency: e.currency,
|
|
currencySymbol: e.currency_symbol,
|
|
title: e.title,
|
|
storeId: t,
|
|
fetcherType: i.HR.GENERIC
|
|
}
|
|
}
|
|
|
|
function m() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
|
|
t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},
|
|
n = t.parentId,
|
|
r = t.storeId;
|
|
return u(u({}, e), {}, {
|
|
id: e.productId,
|
|
lastPrice: t.priceInCents || e.priceCurrent,
|
|
imageUrl: e.imageUrlPrimary,
|
|
parentId: n,
|
|
merchId: n,
|
|
storeId: r,
|
|
fetcherType: i.HR.WHERE_AM_I
|
|
})
|
|
}
|
|
},
|
|
51769: (e, t, n) => {
|
|
"use strict";
|
|
var r = n(58303),
|
|
o = n(18201),
|
|
i = n(58144),
|
|
a = n(35643);
|
|
e.exports = function(e) {
|
|
var t = i(arguments),
|
|
n = e.length - (arguments.length - 1);
|
|
return r(t, 1 + (n > 0 ? n : 0), !0)
|
|
}, o ? o(e.exports, "apply", {
|
|
value: a
|
|
}) : e.exports.apply = a
|
|
},
|
|
54099: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
A: () => i
|
|
});
|
|
var r = n(23649),
|
|
o = n(99507);
|
|
const i = function(e) {
|
|
return (0, o.A)(e, r.fc.selectAutopopDisabledCategoriesForCurrentStore(e))
|
|
}
|
|
},
|
|
54277: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
Ay: () => f,
|
|
QS: () => l,
|
|
oj: () => i.A
|
|
});
|
|
var r = n(33736),
|
|
o = n(6806),
|
|
i = n(62295);
|
|
|
|
function a(e) {
|
|
return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, a(e)
|
|
}
|
|
|
|
function s(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function c(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? s(Object(n), !0).forEach(function(t) {
|
|
u(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function u(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != a(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != a(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == a(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
var l = c(c({}, o.A), r.o1);
|
|
const f = r.Ff
|
|
},
|
|
55657: (e, t, n) => {
|
|
"use strict";
|
|
t.parse = n(28966), t.stringify = n(10408)
|
|
},
|
|
56112: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
A: () => r
|
|
});
|
|
const r = {
|
|
selectDiscoveryData: function() {
|
|
return function(e) {
|
|
return e && e.honeyCheckout && e.honeyCheckout.discoveryData
|
|
}
|
|
}
|
|
}
|
|
},
|
|
57503: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
Ay: () => ie,
|
|
sT: () => P
|
|
});
|
|
var r = n(69698),
|
|
o = n.n(r),
|
|
i = n(262),
|
|
a = n.n(i),
|
|
s = n(12206),
|
|
c = n(9921),
|
|
u = n(7720),
|
|
l = n(32969),
|
|
f = n(46946),
|
|
d = n(61565),
|
|
p = n(88585),
|
|
h = n(25094),
|
|
m = n(24333),
|
|
g = n(12396),
|
|
y = n(2),
|
|
v = n(42108),
|
|
b = n(97856),
|
|
_ = n(34589),
|
|
S = n(73276);
|
|
|
|
function w() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return O(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (O(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, O(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, O(f, "constructor", u), O(u, "constructor", c), c.displayName = "GeneratorFunction", O(u, o, "GeneratorFunction"), O(f), O(f, o, "Generator"), O(f, r, function() {
|
|
return this
|
|
}), O(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (w = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function O(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
O = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
O(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, O(e, t, n, r)
|
|
}
|
|
|
|
function E(e, t) {
|
|
return function(e) {
|
|
if (Array.isArray(e)) return e
|
|
}(e) || function(e, t) {
|
|
var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
|
|
if (null != n) {
|
|
var r, o, i, a, s = [],
|
|
c = !0,
|
|
u = !1;
|
|
try {
|
|
if (i = (n = n.call(e)).next, 0 === t) {
|
|
if (Object(n) !== n) return;
|
|
c = !1
|
|
} else
|
|
for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0);
|
|
} catch (e) {
|
|
u = !0, o = e
|
|
} finally {
|
|
try {
|
|
if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return
|
|
} finally {
|
|
if (u) throw o
|
|
}
|
|
}
|
|
return s
|
|
}
|
|
}(e, t) || function(e, t) {
|
|
if (e) {
|
|
if ("string" == typeof e) return k(e, t);
|
|
var n = {}.toString.call(e).slice(8, -1);
|
|
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? k(e, t) : void 0
|
|
}
|
|
}(e, t) || function() {
|
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
|
|
}()
|
|
}
|
|
|
|
function k(e, t) {
|
|
(null == t || t > e.length) && (t = e.length);
|
|
for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n];
|
|
return r
|
|
}
|
|
|
|
function T(e) {
|
|
return T = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, T(e)
|
|
}
|
|
|
|
function x(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
|
|
function I(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
x(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
x(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}
|
|
|
|
function P() {
|
|
var e = window.location.href;
|
|
return new(a())(function(t) {
|
|
var n = setInterval(function() {
|
|
e !== window.location.href && (e = window.location.href, clearInterval(n), t(window.location.href))
|
|
}, 10)
|
|
})
|
|
}
|
|
var A = {},
|
|
C = {};
|
|
var j = {},
|
|
R = {};
|
|
var M = {},
|
|
D = {};
|
|
|
|
function N(e, t) {
|
|
var n = e;
|
|
"string" == typeof n && (n = [e]);
|
|
var r = t ? D : M;
|
|
return r[n.toString()] ? new(a())(function() {}) : a().all(n.map(function(e) {
|
|
return function(e, t) {
|
|
var n = t ? R : j;
|
|
return new(a())(function(t) {
|
|
n[e] || m.A.waitForElement(e).then(function() {
|
|
n[e] = !0, t(e)
|
|
})
|
|
})
|
|
}(e, t)
|
|
})).then(function(e) {
|
|
return r[n.toString()] = !0, e
|
|
})
|
|
}
|
|
var L = new(a())(function() {}),
|
|
F = L,
|
|
B = L,
|
|
U = L,
|
|
G = L;
|
|
|
|
function $() {
|
|
return H.apply(this, arguments)
|
|
}
|
|
|
|
function H() {
|
|
return H = I(w().m(function e() {
|
|
var t, n, r, o, i, s, c = arguments;
|
|
return w().w(function(e) {
|
|
for (;;)
|
|
if (0 === e.n) return n = !0 === (t = c.length > 0 && void 0 !== c[0] ? c[0] : {}).v5, r = n ? U : F, t.url && r.isPending() && (n ? U = P().then(function(e) {
|
|
return {
|
|
url: e
|
|
}
|
|
}) : F = P().then(function(e) {
|
|
return {
|
|
url: e
|
|
}
|
|
})), o = n ? G : B, "object" === T(t.selectors) && o.isPending() && (i = a().any(Object.keys(t.selectors).map(function(e) {
|
|
return N(t.selectors[e], n).then(function() {
|
|
return {
|
|
selectors: e,
|
|
url: window.location.href
|
|
}
|
|
})
|
|
})), n ? G = i : B = i), s = n ? [U, G] : [F, B], e.a(2, a().any(s).then(function(e) {
|
|
return n ? (U.isResolved() && (U = L), G.isResolved() && (G = L)) : (F.isResolved() && (F = L), B.isResolved() && (B = L)), e || {}
|
|
}))
|
|
}, e)
|
|
})), H.apply(this, arguments)
|
|
}
|
|
var z, q = {};
|
|
|
|
function W(e, t, n, r, o) {
|
|
return V.apply(this, arguments)
|
|
}
|
|
|
|
function V() {
|
|
return V = I(w().m(function e(t, n, r, o, i) {
|
|
return w().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
if (c.A.info("Triggering page type: ".concat(t)), !o || !i) {
|
|
e.n = 4;
|
|
break
|
|
}
|
|
if (!z) {
|
|
e.n = 2;
|
|
break
|
|
}
|
|
return e.n = 1, z;
|
|
case 1:
|
|
e.n = 3;
|
|
break;
|
|
case 2:
|
|
return z = d.A.getCurrent().then(function() {
|
|
var e = I(w().m(function e(t) {
|
|
var n, r, i, a;
|
|
return w().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, d.A.getStoreById(o);
|
|
case 1:
|
|
return n = e.v, r = n && n.metadata, i = "frameworkMetadata:".concat(t.id), e.n = 2, u.A.get(i);
|
|
case 2:
|
|
if (a = !!e.v, !r || a) {
|
|
e.n = 4;
|
|
break
|
|
}
|
|
return e.n = 3, u.A.set(i, r);
|
|
case 3:
|
|
return e.n = 4, l.A.send("stores:action", {
|
|
action: "refreshStoreInfo",
|
|
data: {
|
|
storeId: t.id
|
|
}
|
|
}, {
|
|
background: !0
|
|
});
|
|
case 4:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}()), e.n = 3, z;
|
|
case 3:
|
|
z = null;
|
|
case 4:
|
|
if (q[t] = n, !q.SHOPIFY_PRODUCT_PAGE && !q.SHOPIFY_WHERE_AM_I || "PRODUCT" !== t || "GENERIC" !== n) {
|
|
e.n = 5;
|
|
break
|
|
}
|
|
return e.a(2);
|
|
case 5:
|
|
p.A.getCurrent().then(function(e) {
|
|
return l.A.send("pageDetected:".concat(t), {
|
|
data: n,
|
|
isV4Result: r,
|
|
frameworkId: o,
|
|
shouldUseFramework: i
|
|
}, {
|
|
ignoreResponse: !0,
|
|
background: !1,
|
|
tab: e.id
|
|
})
|
|
});
|
|
case 6:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
})), V.apply(this, arguments)
|
|
}
|
|
|
|
function Y(e, t) {
|
|
var n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2],
|
|
r = !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3];
|
|
return arguments.length > 4 && void 0 !== arguments[4] && arguments[4] ? null : "object" === T(e) ? Object.entries(e).forEach(function(o) {
|
|
var i = E(o, 2),
|
|
a = i[0],
|
|
c = i[1];
|
|
if (c) {
|
|
var u = t && t[a],
|
|
l = u && s.dn && s.dn[u];
|
|
W(a, "PAYMENTS" === a ? {
|
|
allPageTypes: e,
|
|
value: c
|
|
} : c, r, l, n)
|
|
} else "PRODUCT" === a && W("NONPRODUCT", null, r)
|
|
}) : null
|
|
}
|
|
|
|
function J() {
|
|
return Object.assign({}, q)
|
|
}
|
|
|
|
function K() {
|
|
var e = new s.XQ;
|
|
return e.add("waitForElement", function(e) {
|
|
var t = e.payload;
|
|
return m.A.waitForElement(t.selector)
|
|
}), e.add("waitForMutation", function(e) {
|
|
var t, n, r = e.payload;
|
|
return t = r.target, "number" != typeof A[t] && (A[t] = 0), C[t] = new MutationObserver(function(e) {
|
|
e.length && Date.now() - A[t] > 800 && (A[t] = Date.now(), C[t].disconnect(), n())
|
|
}), C[t].observe(document.querySelector(t), {
|
|
childList: !0,
|
|
subtree: !0
|
|
}), new(a())(function(e) {
|
|
n = e
|
|
})
|
|
}), e.add("waitForPageUpdate", function(e) {
|
|
return $(e.payload)
|
|
}), e.add("getPageHtml", function() {
|
|
return m.A.getCurrentPageHtml()
|
|
}), e.add("getItemLocalStorage", function(e) {
|
|
var t = e.payload;
|
|
return localStorage.getItem(t.key)
|
|
}), e.add("setItemLocalStorage", function(e) {
|
|
var t = e.payload;
|
|
return localStorage.setItem(t.key, t.value)
|
|
}), e.add("getDocumentCookies", function() {
|
|
var e = {};
|
|
return document.cookie.split("; ").forEach(function(t) {
|
|
var n = t.split("=");
|
|
e[n[0]] = n[1]
|
|
}), e
|
|
}), e.add("getUserSettings", function() {
|
|
return h.A.getSettings()
|
|
}), e.add("setUserSetting", function(e) {
|
|
var t = e.payload;
|
|
return h.A.updateSetting(t.key, t.value)
|
|
}), e.add("reportPageTypes", function(e) {
|
|
return Y(e.payload.types)
|
|
}), e.add("handleFinishedRun", function() {
|
|
var e = I(w().m(function e(t) {
|
|
var n, r;
|
|
return w().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
n = t.runId, r = t.runner, n && r.state.hasRun(n) && r.state.clearRun(n);
|
|
case 1:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}()), e.addDefaultAction(function(e, t) {
|
|
return c.A.warn("Unhandled nativeAction: ".concat(e), t), null
|
|
}), e
|
|
}
|
|
|
|
function Q(e) {
|
|
return X.apply(this, arguments)
|
|
}
|
|
|
|
function X() {
|
|
return (X = I(w().m(function e(t) {
|
|
var n, r, o, i, a, u, l;
|
|
return w().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return n = "pageDetector", r = K(), e.n = 1, g.A.getStoreRecipe(t);
|
|
case 1:
|
|
o = e.v;
|
|
try {
|
|
i = new s.Y5({
|
|
platform: "extension",
|
|
nativeActionRegistry: r
|
|
})
|
|
} catch (e) {
|
|
c.A.error("Error in CoreRunner creation: ", e)
|
|
}
|
|
return a = {
|
|
storeId: t,
|
|
vimOptions: {
|
|
recipeOverride: o,
|
|
disableTimeout: !0,
|
|
v5SupportEnabled: !1
|
|
},
|
|
vimName: n,
|
|
inputData: {
|
|
url: window.location.href,
|
|
html: document.documentElement.innerHTML
|
|
}
|
|
}, e.n = 2, i.doAction({
|
|
name: "canRunVim",
|
|
options: a
|
|
});
|
|
case 2:
|
|
if (e.v) {
|
|
e.n = 3;
|
|
break
|
|
}
|
|
throw new NotFoundError;
|
|
case 3:
|
|
return e.n = 4, i.getActionHandle({
|
|
name: n,
|
|
options: a
|
|
});
|
|
case 4:
|
|
return u = e.v, e.n = 5, u.getResult();
|
|
case 5:
|
|
return l = e.v, e.a(2, l)
|
|
}
|
|
}, e)
|
|
}))).apply(this, arguments)
|
|
}
|
|
|
|
function Z(e) {
|
|
o()(function() {
|
|
v.A.check(e), y.A.check(e), _.A.check(e), S.A.check(e), b.A.check(e)
|
|
})
|
|
}
|
|
|
|
function ee(e) {
|
|
return te.apply(this, arguments)
|
|
}
|
|
|
|
function te() {
|
|
return (te = I(w().m(function e(t) {
|
|
var n, r;
|
|
return w().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, l.A.send("stores:action", {
|
|
action: "getStoresWithProductCatalogSupport"
|
|
}, {
|
|
background: !0
|
|
});
|
|
case 1:
|
|
return n = e.v, r = n && n[t], e.a(2, r)
|
|
}
|
|
}, e)
|
|
}))).apply(this, arguments)
|
|
}
|
|
|
|
function ne() {
|
|
return ne = I(w().m(function e(t, n) {
|
|
return w().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
if (n && "string" == typeof n.id && n.supported) {
|
|
e.n = 1;
|
|
break
|
|
}
|
|
return e.a(2, null);
|
|
case 1:
|
|
return e.a(2, h.A.getUserABGroup("trustV5PageDetectors").then(function() {
|
|
var e = I(w().m(function e(t) {
|
|
return w().w(function(e) {
|
|
for (;;) switch (e.p = e.n) {
|
|
case 0:
|
|
if (!t || "on" !== t.group) {
|
|
e.n = 5;
|
|
break
|
|
}
|
|
return S.A.check(n), b.A.check(n), e.p = 1, e.n = 2, ee(n.id);
|
|
case 2:
|
|
e.v || _.A.check(n), e.n = 4;
|
|
break;
|
|
case 3:
|
|
e.p = 3, e.v;
|
|
case 4:
|
|
return e.a(2, g.A.getAndRunV5Vim(n.id, "pd"));
|
|
case 5:
|
|
throw new OperationSkippedError;
|
|
case 6:
|
|
return e.a(2)
|
|
}
|
|
}, e, null, [
|
|
[1, 3]
|
|
])
|
|
}));
|
|
return function(t) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}()).catch(function(e) {
|
|
if ("TimeoutError" !== e.name) throw e
|
|
}).catch(I(w().m(function e() {
|
|
return w().w(function(e) {
|
|
for (;;)
|
|
if (0 === e.n) return e.a(2, Q(n.templateId || n.id))
|
|
}, e)
|
|
}))).catch(function() {
|
|
return Z(n)
|
|
}).catch(function(e) {
|
|
return c.A.error("Failed to run page detection:", e)
|
|
}))
|
|
}
|
|
}, e)
|
|
})), ne.apply(this, arguments)
|
|
}
|
|
l.A.addListener("vims:reportPageTypes", function() {
|
|
var e = I(w().m(function e(t, n) {
|
|
var r, o, i;
|
|
return w().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return r = n.types, o = n.frameworks, e.n = 1, ee(n.storeId);
|
|
case 1:
|
|
i = e.v, Y(r, o, n.shouldUseFramework, !1, n.ignoreForFeatures), !Object.values(r).every(function(e) {
|
|
return !1 === e
|
|
}) || Object.keys(r).includes("PRODUCT") && i || _.A.check();
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t, n) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}()), l.A.addListener("vims:waitForPageUpdate", function(e, t, n) {
|
|
var r = t.payload,
|
|
o = t.runId,
|
|
i = r.selectors;
|
|
return $({
|
|
url: r.url,
|
|
selectors: i,
|
|
v5: !0
|
|
}, n.tabId).then(function(e) {
|
|
l.A.send("vims:action", {
|
|
action: "pageChange",
|
|
data: {
|
|
result: e,
|
|
runId: o
|
|
}
|
|
}, {
|
|
background: !0,
|
|
ignoreResponse: !0
|
|
})
|
|
})
|
|
});
|
|
var re = ["BILLING", "CART_PRODUCT", "CHECKOUT_CONFIRM", "FIND_SAVINGS", "FIND_SAVINGS_URL", "GOLD_REWARDS", "HOMEPAGE", "PAYMENTS", "PRODUCT", "SEARCH", "SHOPIFY_FIND_SAVINGS", "SHOPIFY_PRODUCT_PAGE", "SHOPIFY_WHERE_AM_I", "SUBMIT_ORDER", "UNSUPPORTED", "WHERE_AM_I", "PAY_LATER"],
|
|
oe = {};
|
|
h.A.getUserABGroup("extPageDetected").then(function(e) {
|
|
var t = e || {},
|
|
n = t.unsupportedPercentage || 0,
|
|
r = t.unsupportedDelay || 1e4;
|
|
re.forEach(function(e) {
|
|
l.A.addListener("pageDetected:".concat(e), function(r, o) {
|
|
if (!oe[e] && "on" === t.group) {
|
|
var i = function(e) {
|
|
try {
|
|
var t = new URL(e),
|
|
n = {};
|
|
n.hostname = t.hostname.toLowerCase();
|
|
var r = t.pathname.replace(/\//g, " / ").replace(/_/g, " _ ").replace(/-/g, " - ").replace(/\+/g, " + "),
|
|
o = t.search.replace(/\?/g, " ? ").replace(/=/g, " = ").replace(/&/g, " & ").replace(/_/g, " _ ").replace(/-/g, " - ").replace(/\+/g, " + ");
|
|
return n.urlText = r + o, n
|
|
} catch (e) {
|
|
return {
|
|
hostname: !1,
|
|
urlText: ""
|
|
}
|
|
}
|
|
}(window.location.href),
|
|
a = "";
|
|
document && document.title && (a = document.title), i.hostname && (oe[e] = !0, ("UNSUPPORTED" !== e || Math.random() < n) && f.A.sendEvent("ext001002", {
|
|
pageTitle: a,
|
|
pageType: e,
|
|
hostname: i.hostname,
|
|
urlText: i.urlText,
|
|
isGeneric: "GENERIC" === o.data
|
|
}))
|
|
}
|
|
})
|
|
}), p.A.inPopover() || setTimeout(function() {
|
|
var e = J(),
|
|
t = Object.entries(e).length,
|
|
n = 0 === t,
|
|
r = 1 === t && "NONPRODUCT" === Object.keys(e)[0];
|
|
(n || r) && W("UNSUPPORTED", null)
|
|
}, r)
|
|
}), l.A.addListener("stores:pageview", function(e, t) {
|
|
return ne.apply(this, arguments)
|
|
});
|
|
const ie = {
|
|
getCurrentPageTypes: J,
|
|
triggerPageType: W,
|
|
PAGE_TYPES: re
|
|
}
|
|
},
|
|
58303: (e, t, n) => {
|
|
"use strict";
|
|
var r = n(73083),
|
|
o = n(6687),
|
|
i = n(18522)(),
|
|
a = n(1405),
|
|
s = n(79809),
|
|
c = r("%Math.floor%");
|
|
e.exports = function(e, t) {
|
|
if ("function" != typeof e) throw new s("`fn` is not a function");
|
|
if ("number" != typeof t || t < 0 || t > 4294967295 || c(t) !== t) throw new s("`length` must be a positive 32-bit integer");
|
|
var n = arguments.length > 2 && !!arguments[2],
|
|
r = !0,
|
|
u = !0;
|
|
if ("length" in e && a) {
|
|
var l = a(e, "length");
|
|
l && !l.configurable && (r = !1), l && !l.writable && (u = !1)
|
|
}
|
|
return (r || u || !n) && (i ? o(e, "length", t, !0, !0) : o(e, "length", t)), e
|
|
}
|
|
},
|
|
60592: (e, t, n) => {
|
|
"use strict";
|
|
const {
|
|
default: r,
|
|
DraggableCore: o
|
|
} = n(25005);
|
|
e.exports = r, e.exports.default = r, e.exports.DraggableCore = o
|
|
},
|
|
61565: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
A: () => qe,
|
|
L: () => W
|
|
});
|
|
var r = n(262),
|
|
o = n.n(r),
|
|
i = n(86531),
|
|
a = n.n(i),
|
|
s = n(69698),
|
|
c = n.n(s),
|
|
u = n(57147),
|
|
l = n.n(u),
|
|
f = n(32372),
|
|
d = n(77002),
|
|
p = n(2479),
|
|
h = n(78098),
|
|
m = n(48427),
|
|
g = n(30539),
|
|
y = n(9921),
|
|
v = n(7720),
|
|
b = n(32969),
|
|
_ = n(57503),
|
|
S = n(93744),
|
|
w = n(48158),
|
|
O = n(46946),
|
|
E = n(10051),
|
|
k = n(88585),
|
|
T = n(24166),
|
|
x = n(25094),
|
|
I = n(24333),
|
|
P = n(323),
|
|
A = n(12206),
|
|
C = n(57183);
|
|
|
|
function j(e) {
|
|
return j = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, j(e)
|
|
}
|
|
|
|
function R(e) {
|
|
return function(e) {
|
|
if (Array.isArray(e)) return M(e)
|
|
}(e) || function(e) {
|
|
if ("undefined" != typeof Symbol && null != e[Symbol.iterator] || null != e["@@iterator"]) return Array.from(e)
|
|
}(e) || function(e, t) {
|
|
if (e) {
|
|
if ("string" == typeof e) return M(e, t);
|
|
var n = {}.toString.call(e).slice(8, -1);
|
|
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? M(e, t) : void 0
|
|
}
|
|
}(e) || function() {
|
|
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
|
|
}()
|
|
}
|
|
|
|
function M(e, t) {
|
|
(null == t || t > e.length) && (t = e.length);
|
|
for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n];
|
|
return r
|
|
}
|
|
|
|
function D() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return N(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (N(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, N(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, N(f, "constructor", u), N(u, "constructor", c), c.displayName = "GeneratorFunction", N(u, o, "GeneratorFunction"), N(f), N(f, o, "Generator"), N(f, r, function() {
|
|
return this
|
|
}), N(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (D = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function N(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
N = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
N(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, N(e, t, n, r)
|
|
}
|
|
|
|
function L(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function F(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? L(Object(n), !0).forEach(function(t) {
|
|
B(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : L(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function B(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != j(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != j(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == j(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
|
|
function U(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
|
|
function G(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
U(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
U(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}
|
|
var $, H, z = h.A.NotFoundError,
|
|
q = "593104143661403249",
|
|
W = {
|
|
HBC: "hbc",
|
|
EXTENSION_LINKS: "extension_links"
|
|
};
|
|
|
|
function V(e, t, n) {
|
|
return Y.apply(this, arguments)
|
|
}
|
|
|
|
function Y() {
|
|
return (Y = G(D().m(function e(t, n, r) {
|
|
var o, i;
|
|
return D().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, k.A.getContentScriptUrl();
|
|
case 1:
|
|
return o = e.v, i = I.A.cleanString(r, o), e.a(2, b.A.send("stores:action", {
|
|
action: "activateStoreGold",
|
|
data: {
|
|
storeId: t,
|
|
taggingOptions: n,
|
|
targetUrl: i
|
|
}
|
|
}, {
|
|
background: !0
|
|
}))
|
|
}
|
|
}, e)
|
|
}))).apply(this, arguments)
|
|
}
|
|
|
|
function J(e, t) {
|
|
return o().try(function() {
|
|
return t || x.A.getUserId()
|
|
}).then(function(t) {
|
|
return b.A.send("stores:action", {
|
|
action: "deactivateStoreGold",
|
|
data: {
|
|
storeId: e,
|
|
userId: t
|
|
}
|
|
}, {
|
|
background: !0
|
|
})
|
|
})
|
|
}
|
|
|
|
function K(e, t) {
|
|
return b.A.send("stores:action", {
|
|
action: "getClaimedOffers",
|
|
data: {
|
|
userId: e,
|
|
stores: t
|
|
}
|
|
}, {
|
|
background: !0
|
|
})
|
|
}
|
|
|
|
function Q(e) {
|
|
return b.A.send("stores:action", {
|
|
action: "getStoreById",
|
|
data: {
|
|
storeId: e
|
|
}
|
|
}, {
|
|
background: !0
|
|
})
|
|
}
|
|
|
|
function X(e) {
|
|
return b.A.send("stores:action", {
|
|
action: "getStoreByUrl",
|
|
data: {
|
|
storeUrl: e
|
|
}
|
|
}, {
|
|
background: !0
|
|
})
|
|
}
|
|
|
|
function Z(e, t, n) {
|
|
return b.A.send("stores:action", {
|
|
action: "setSessionAttribute",
|
|
data: {
|
|
storeId: e,
|
|
attribute: t,
|
|
value: n
|
|
}
|
|
}, {
|
|
background: !0
|
|
})
|
|
}
|
|
|
|
function ee(e) {
|
|
return te.apply(this, arguments)
|
|
}
|
|
|
|
function te() {
|
|
return (te = G(D().m(function e(t) {
|
|
var n, r, o;
|
|
return D().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, Q(t);
|
|
case 1:
|
|
return n = e.v, r = !n.metadata.pns_overrideShopify && n.templateId || n.storeId, e.n = 2, (0, A.as)(r);
|
|
case 2:
|
|
return o = e.v, e.a(2, !!o)
|
|
}
|
|
}, e)
|
|
}))).apply(this, arguments)
|
|
}
|
|
|
|
function ne(e) {
|
|
return re.apply(this, arguments)
|
|
}
|
|
|
|
function re() {
|
|
return (re = G(D().m(function e(t) {
|
|
var n, r, o, i;
|
|
return D().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
if (!k.A.inPopover()) {
|
|
e.n = 3;
|
|
break
|
|
}
|
|
return e.n = 1, S.A.getPagesDetected();
|
|
case 1:
|
|
if (i = e.v) {
|
|
e.n = 2;
|
|
break
|
|
}
|
|
i = {};
|
|
case 2:
|
|
n = i, e.n = 4;
|
|
break;
|
|
case 3:
|
|
n = _.Ay.getCurrentPageTypes() || {};
|
|
case 4:
|
|
return r = {}, o = p.A.checkGoldStatus(t.gold), n.FIND_SAVINGS_URL && (r.hasFSRegex = !0), (n.FIND_SAVINGS || n.SHOPIFY_FIND_SAVINGS) && (r.couponsEnabled = !0), n.GOLD_REWARDS && o.active && (r.onOfferPage = !0), (r.onOfferPage || r.couponsEnabled) && (r.onFindSavingsPage = !0), e.a(2, Object.assign({}, r))
|
|
}
|
|
}, e)
|
|
}))).apply(this, arguments)
|
|
}
|
|
|
|
function oe(e) {
|
|
var t = Object.assign({}, e),
|
|
n = p.A.checkGoldStatus(e.gold);
|
|
try {
|
|
t.couponsEnabled = c()(e.metadata.pns_siteSelCartCodeBox).length > 0 && c()(e.metadata.pns_siteSelCartTotalPrice).length > 0 && e.metadata.pns_siteSelCartCodeSubmit
|
|
} catch (e) {
|
|
t.couponsEnabled = !1
|
|
}
|
|
try {
|
|
t.onOfferPage = n.active && !e.standDown && c()(e.metadata.pns_siteSelShowHoneyGold).length > 0
|
|
} catch (e) {
|
|
t.onOfferPage = !1
|
|
}
|
|
return t.onFindSavingsPage = t.couponsEnabled || t.onOfferPage, t
|
|
}
|
|
|
|
function ie(e) {
|
|
return ae.apply(this, arguments)
|
|
}
|
|
|
|
function ae() {
|
|
return (ae = G(D().m(function e(t) {
|
|
var n;
|
|
return D().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, ne(t);
|
|
case 1:
|
|
return n = e.v, e.a(2, Object.assign(oe(t), n))
|
|
}
|
|
}, e)
|
|
}))).apply(this, arguments)
|
|
}
|
|
|
|
function se() {
|
|
return ce.apply(this, arguments)
|
|
}
|
|
|
|
function ce() {
|
|
return (ce = G(D().m(function e() {
|
|
var t;
|
|
return D().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, k.A.getContentScriptUrl();
|
|
case 1:
|
|
return t = e.v, e.a(2, X(t).then(function(e) {
|
|
return e ? ie(e) : {}
|
|
}))
|
|
}
|
|
}, e)
|
|
}))).apply(this, arguments)
|
|
}
|
|
|
|
function ue(e, t) {
|
|
return se().then(function(n) {
|
|
return Z(n.id, e, t)
|
|
})
|
|
}
|
|
|
|
function le(e) {
|
|
return x.A.getUserId().then(function(t) {
|
|
return K(t, [e]).then(function() {
|
|
return (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : []).length > 0
|
|
})
|
|
})
|
|
}
|
|
|
|
function fe(e, t, n) {
|
|
return de.apply(this, arguments)
|
|
}
|
|
|
|
function de() {
|
|
return (de = G(D().m(function e(t, n, r) {
|
|
var o, i, a;
|
|
return D().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
if (r) {
|
|
e.n = 6;
|
|
break
|
|
}
|
|
return e.n = 1, le(t);
|
|
case 1:
|
|
if (!e.v) {
|
|
e.n = 6;
|
|
break
|
|
}
|
|
return e.n = 2, J(t);
|
|
case 2:
|
|
return "base" === n && (k.A.inPopover() || T.A.open({
|
|
pathname: "/stooddown",
|
|
query: {},
|
|
state: {},
|
|
force: !0,
|
|
feature: "stooddown",
|
|
surface: "popup"
|
|
})), Z(t, "hasStoodUp", !0), e.n = 3, x.A.getUserABGroup("taggingInsuranceDenylist");
|
|
case 3:
|
|
return o = e.v, i = o.denylistStoreIds, a = void 0 === i ? [] : i, e.n = 4, P.A.getFeatureFlag("ext_tagging_insurance_with_denylist");
|
|
case 4:
|
|
if (!e.v || a.includes(t)) {
|
|
e.n = 6;
|
|
break
|
|
}
|
|
return e.n = 5, I.A.sleep(5e3);
|
|
case 5:
|
|
T.A.open({
|
|
pathname: "/taggingInsurance",
|
|
query: {},
|
|
state: {
|
|
storeId: t
|
|
},
|
|
force: !1,
|
|
feature: "tagging-insurance",
|
|
surface: "badge"
|
|
});
|
|
case 6:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}))).apply(this, arguments)
|
|
}
|
|
|
|
function pe() {
|
|
return se().then(function(e) {
|
|
var t = function(e) {
|
|
if (e.metadata.pns_siteSelCartTotalPrice) {
|
|
var t = e.metadata.formatPriceDivisor || 1;
|
|
return I.A.cleanPrice(c()(e.metadata.pns_siteSelCartTotalPrice).last().text().trim()) / t
|
|
}
|
|
return null
|
|
}(e);
|
|
O.A.sendEvent("ext003024", {
|
|
cart: {
|
|
currency: e.currencyCode,
|
|
startPrice: t
|
|
}
|
|
})
|
|
})
|
|
}
|
|
|
|
function he(e) {
|
|
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
|
|
return w.A.getFindSavingsCta(e).then(function(n) {
|
|
T.A.open({
|
|
pathname: "/notification",
|
|
query: {},
|
|
state: F({
|
|
cta: n
|
|
}, t),
|
|
force: !1,
|
|
feature: "notification",
|
|
surface: "popup"
|
|
}).then(function() {
|
|
return o().all([d.A.getLastSetIcon(), ee(e.id), Z(e.id, "userInitiated", !1), Z(e.id, "applyCodesShown", a()().unix())]).spread(function(t, r) {
|
|
var o;
|
|
return $ > a()().unix() || ($ = a()().add(10, "seconds").unix()), O.A.sendEvent("ext003023", {
|
|
sub_src: "findsavings_modal",
|
|
action: "show",
|
|
cta: n,
|
|
variant: n && n.variation
|
|
}), e.popularCodes ? o = "popular_codes_test" : "ux_resillience" === n.variation && (o = n.variation), O.A.sendEvent("ext003001", {
|
|
store: e,
|
|
dac: r,
|
|
ok: e.coupons && e.coupons.length > 0,
|
|
coupons: e.coupons && e.coupons.length || 0,
|
|
coupons_tested: w.A.getNumCoupons(),
|
|
user_initiated: !1,
|
|
user_hbc: e.userHBC,
|
|
cta: n,
|
|
icon: t,
|
|
cash_bonus: m.A.getEventCashBonus(e.gold),
|
|
has_fs_regex: e.hasFSRegex,
|
|
has_fs_mixin: e.hasFindSavingsMixin,
|
|
variant: o
|
|
})
|
|
})
|
|
})
|
|
})
|
|
}
|
|
|
|
function me() {
|
|
return se().then(function(e) {
|
|
return v.A.get("stores:".concat(e.id, ":usershare")).then(function(t) {
|
|
var n = t.code,
|
|
r = t.startPrice,
|
|
o = e.coupons.some(function(e) {
|
|
return I.A.cleanStringUpper(e.code) === I.A.cleanStringUpper(n)
|
|
}),
|
|
i = function() {
|
|
var t = G(D().m(function t(a) {
|
|
var s, u = arguments;
|
|
return D().w(function(t) {
|
|
for (;;) switch (t.n) {
|
|
case 0:
|
|
s = u.length > 1 && void 0 !== u[1] ? u[1] : 20, clearTimeout(H), H = setTimeout(G(D().m(function t() {
|
|
var u, l, f, d, p, h, m, S, w, E, k;
|
|
return D().w(function(t) {
|
|
for (;;) switch (t.n) {
|
|
case 0:
|
|
if (u = /\d/.test(c()(e.metadata.pns_siteSelCartTotalPrice).last().text()), l = I.A.cleanPrice(c()(e.metadata.pns_siteSelCartTotalPrice).last().text()), u && l !== r || !(a > 0) || 20 !== s) {
|
|
t.n = 1;
|
|
break
|
|
}
|
|
return t.a(2, i(a - 100, s));
|
|
case 1:
|
|
if (f = _.Ay.getCurrentPageTypes(), !(u && l !== r && f.SHOPIFY_FIND_SAVINGS && s)) {
|
|
t.n = 2;
|
|
break
|
|
}
|
|
return t.a(2, i(a - 100, s - 1));
|
|
case 2:
|
|
return G(D().m(function t() {
|
|
var n, r;
|
|
return D().w(function(t) {
|
|
for (;;) switch (t.p = t.n) {
|
|
case 0:
|
|
return t.p = 0, t.n = 1, v.A.get("cartLastSeenTotalPrice:".concat(e.id));
|
|
case 1:
|
|
n = t.v, t.n = 3;
|
|
break;
|
|
case 2:
|
|
t.p = 2, r = t.v, y.A.error("Failed to get last seen total price", r);
|
|
case 3:
|
|
n && v.A.set("cartLastSeenPreCouponTotal:".concat(e.id), n), v.A.set("cartLastSeenTotalPrice:".concat(e.id), l);
|
|
case 4:
|
|
return t.a(2)
|
|
}
|
|
}, t, null, [
|
|
[0, 2]
|
|
])
|
|
}))(), v.A.del("stores:".concat(e.id, ":usershare")), t.n = 3, x.A.getUserId();
|
|
case 3:
|
|
if (d = t.v, p = I.A.cleanStringUpper(n), h = {
|
|
code: p,
|
|
storeId: e.id,
|
|
discount: r - l,
|
|
userId: d
|
|
}, O.A.sendEvent("ext004501", {
|
|
coupon_code: p,
|
|
savings: r - l,
|
|
has_clicked_apply: !!e.applyCodesClick
|
|
}), o && b.A.send("stores:action", {
|
|
action: "markUserSubmittedCode",
|
|
data: h
|
|
}, {
|
|
background: !0
|
|
}).reflect(), m = !1, e.ugcAllowed) {
|
|
t.n = 4;
|
|
break
|
|
}
|
|
m = "ugc-not-allowed", t.n = 10;
|
|
break;
|
|
case 4:
|
|
if (!(l >= r)) {
|
|
t.n = 5;
|
|
break
|
|
}
|
|
m = "savings-not-found", t.n = 10;
|
|
break;
|
|
case 5:
|
|
if (!o) {
|
|
t.n = 6;
|
|
break
|
|
}
|
|
m = "already-had-coupon", t.n = 10;
|
|
break;
|
|
case 6:
|
|
if (!(p.length <= 2)) {
|
|
t.n = 7;
|
|
break
|
|
}
|
|
m = "code-length-under-2", t.n = 10;
|
|
break;
|
|
case 7:
|
|
if (!(p.length >= 16)) {
|
|
t.n = 8;
|
|
break
|
|
}
|
|
m = "code-length-over-16", t.n = 10;
|
|
break;
|
|
case 8:
|
|
if (e.applyCodesClick || e.applyCodesShown || e.userHBC || !e.coupons.length) {
|
|
t.n = 10;
|
|
break
|
|
}
|
|
return t.n = 9, g.A.getCouponStats(e.id);
|
|
case 9:
|
|
S = t.v, w = e && null === e.affiliateURL, E = S && S.successRate < .2 && S.failuresCount > 10, e.id === q && (E = !0), m = (!w || !E) && "user-hasnt-seen-ui";
|
|
case 10:
|
|
return k = !1, t.n = 11, v.A.get("userCodeShareUi-shown-".concat(e.id)).then(function(e) {
|
|
k = e === n
|
|
}).catch(z, function() {});
|
|
case 11:
|
|
if (m || k) {
|
|
t.n = 12;
|
|
break
|
|
}
|
|
return T.A.open({
|
|
pathname: "/usershare",
|
|
query: {},
|
|
state: {
|
|
code: n
|
|
},
|
|
feature: "usershare",
|
|
surface: "popup",
|
|
force: !0
|
|
}), t.a(2, e.id);
|
|
case 12:
|
|
return O.A.sendEvent("ext004503", {
|
|
coupon_code: p,
|
|
savings: r - l,
|
|
skipPromptReason: m
|
|
}), t.a(2, !1);
|
|
case 13:
|
|
return t.a(2)
|
|
}
|
|
}, t)
|
|
})), 100);
|
|
case 1:
|
|
return t.a(2)
|
|
}
|
|
}, t)
|
|
}));
|
|
return function(e) {
|
|
return t.apply(this, arguments)
|
|
}
|
|
}(),
|
|
a = (e.metadata.pns_siteTimeBetween || 3e3) + 2e3;
|
|
return i(a)
|
|
}).catch(z, function() {})
|
|
}).catch(function() {})
|
|
}
|
|
var ge = !1;
|
|
|
|
function ye(e) {
|
|
var t = e.metadata.pns_siteSelCartCodeBox;
|
|
if (t) {
|
|
var n = !1;
|
|
c()(t).on("keypress paste", function() {
|
|
ge || (b.A.send("site_support:watchUGCRequest", {
|
|
store: e
|
|
}, {
|
|
background: !0
|
|
}), ge = !0), n = !0
|
|
}), c()(t).on("change blur keydown", function(t) {
|
|
if (!t.keyCode || 13 === t.keyCode) {
|
|
var r = t.target.value.slice(0, 100);
|
|
if (r && n) {
|
|
n = !1, ue("manualCoupon", r);
|
|
var o = I.A.cleanPrice(c()(e.metadata.pns_siteSelCartTotalPrice).last().text());
|
|
v.A.set("stores:".concat(e.id, ":usershare"), {
|
|
code: r,
|
|
startPrice: o
|
|
});
|
|
var i = e.coupons.some(function(e) {
|
|
return I.A.cleanStringUpper(e.code) === I.A.cleanStringUpper(r)
|
|
});
|
|
O.A.sendEvent("ext004500", {
|
|
coupon_code: r,
|
|
has_applied_coupons: !!e.applyCodesClick,
|
|
already_have_coupon: i
|
|
}), me(), ge && b.A.send("site_support:checkUGCCoupon", {
|
|
store: e,
|
|
code: r
|
|
}, {
|
|
background: !0
|
|
})
|
|
}
|
|
}
|
|
}), c()(t).attr("couponInputBound", !0)
|
|
}
|
|
}
|
|
var ve = !1;
|
|
|
|
function be(e) {
|
|
var t = e.metadata.pns_siteSelCartCodeBox;
|
|
if (t) {
|
|
new MutationObserver(function(n) {
|
|
n.some(function(e) {
|
|
return "childList" === e.type && e.addedNodes.length > 0
|
|
}) && (ve || (ve = !0, setTimeout(function() {
|
|
c()(t).length && !c()(t).attr("couponInputBound") && ye(e), ve = !1
|
|
}, 1e3)))
|
|
}).observe(document.body, {
|
|
childList: !0,
|
|
subtree: !0
|
|
})
|
|
}
|
|
}
|
|
|
|
function _e(e) {
|
|
return Se.apply(this, arguments)
|
|
}
|
|
|
|
function Se() {
|
|
return (Se = G(D().m(function e(t) {
|
|
var n, r, o;
|
|
return D().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return n = "user:findSavingsCooldown:".concat(t.id), e.n = 1, v.A.get(n).catch(function() {
|
|
return null
|
|
});
|
|
case 1:
|
|
if (r = e.v, o = a()().unix(), !(r && o < r.timestamp + 300)) {
|
|
e.n = 2;
|
|
break
|
|
}
|
|
return e.a(2, !0);
|
|
case 2:
|
|
return e.a(2, !1)
|
|
}
|
|
}, e)
|
|
}))).apply(this, arguments)
|
|
}
|
|
|
|
function we(e, t, n) {
|
|
var r, o = a()().unix();
|
|
try {
|
|
r = I.A.cleanPrice(c()(e.metadata.pns_siteSelCartTotalPrice).last().text().trim())
|
|
} catch (e) {
|
|
return !1
|
|
}
|
|
var i = e.coupons,
|
|
s = t.attemptTs,
|
|
u = void 0 === s ? 0 : s,
|
|
l = t.cartTotalPrice,
|
|
f = void 0 === l ? 0 : l,
|
|
d = t.coupons,
|
|
p = void 0 === d ? [] : d,
|
|
h = t.urlPathname,
|
|
m = void 0 === h ? "" : h;
|
|
if (t.coupons && 0 === t.coupons.length && 0 === i.length) return !0;
|
|
if (o > u + 3600 && !n) return !1;
|
|
if (r !== f && m === window.location.pathname) return !1;
|
|
var g = i.every(function(e, t) {
|
|
var n = p[t] || {};
|
|
return e.code === n.code
|
|
});
|
|
return !(!1 === g && !n) && (O.A.sendEvent("ext003003", {
|
|
store: e,
|
|
interaction: "silenced",
|
|
last_savings_attempt_ts: u,
|
|
last_savings_cart_total_price: f,
|
|
current_cart_total_price: r,
|
|
same_coupons: g
|
|
}), !0)
|
|
}
|
|
|
|
function Oe(e) {
|
|
return I.A.cleanPrice(c()(e.metadata.pns_siteSelCartTotalPrice).last().text().trim()) || 0
|
|
}
|
|
|
|
function Ee() {
|
|
return (Ee = G(D().m(function e(t) {
|
|
var n, r, o;
|
|
return D().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return n = !1, r = w.A.getCtaType(t), e.n = 1, v.A.get("user:lastSavings:".concat(t.id, ":").concat(r)).catch(z, function() {
|
|
return {}
|
|
});
|
|
case 1:
|
|
return o = e.v, Object.keys(o).length > 0 && (n = !0), e.a(2, n)
|
|
}
|
|
}, e)
|
|
}))).apply(this, arguments)
|
|
}
|
|
|
|
function ke(e, t) {
|
|
var n = !0;
|
|
e.cartTotalPrice && e.cartTotalPrice !== Oe(t) || (n = !1);
|
|
var r = !1;
|
|
return e.savings > 0 && e.initPrice !== Oe(t) && (r = !0), {
|
|
attemptTs: e.attemptTs,
|
|
bestCoupon: e.bestCoupon,
|
|
cartChanged: n,
|
|
couponsApplied: r,
|
|
savings: e.savings
|
|
}
|
|
}
|
|
|
|
function Te(e) {
|
|
return xe.apply(this, arguments)
|
|
}
|
|
|
|
function xe() {
|
|
return (xe = G(D().m(function e(t) {
|
|
var n, r, o, i, a, s, c, u;
|
|
return D().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, P.A.getFeatureFlag("ext_mixin_fallback_enabled");
|
|
case 1:
|
|
return n = e.v, r = !!t.coupons.length, e.n = 2, ee(t.id);
|
|
case 2:
|
|
return o = e.v, i = t.hasFindSavingsMixin || o || t.templateId, a = t.metadata.pns_codeTopFunnel || !1, s = !0 === t.metadata.mixinFallback || !1, c = p.A.checkGoldStatus(t.gold).active, u = r && (!i && !a || s), e.a(2, {
|
|
doMixinFallback: u,
|
|
hasGold: c,
|
|
mixinFallbackEnabled: n
|
|
})
|
|
}
|
|
}, e)
|
|
}))).apply(this, arguments)
|
|
}
|
|
var Ie, Pe, Ae = (Ie = !1, function() {
|
|
return Ie ? o().resolve() : (Ie = !0, se().then(function(e) {
|
|
var t = w.A.getCtaType(e);
|
|
o().all([w.A.isApplying(), v.A.get("stores:notification"), e.applyCodesClick ? me() : "", v.A.get("user:lastSavings:".concat(e.id, ":").concat(t)), v.A.get("store:hide:".concat(e.id)), k.A.getCurrent()]).spread(function() {
|
|
var n = G(D().m(function n(r, o, i) {
|
|
var s, c, u, d, p, h, m, y, _, S, w, E, k, x = arguments;
|
|
return D().w(function(n) {
|
|
for (;;) switch (n.n) {
|
|
case 0:
|
|
if (s = x.length > 3 && void 0 !== x[3] ? x[3] : {}, c = x.length > 4 ? x[4] : void 0, u = x.length > 5 ? x[5] : void 0, e && e.supported) {
|
|
n.n = 1;
|
|
break
|
|
}
|
|
return n.a(2);
|
|
case 1:
|
|
if (!0 !== c) {
|
|
n.n = 2;
|
|
break
|
|
}
|
|
return n.a(2);
|
|
case 2:
|
|
if ("string" != typeof c || c !== window.location.pathname) {
|
|
n.n = 3;
|
|
break
|
|
}
|
|
return n.a(2);
|
|
case 3:
|
|
if (b.A.send("stores:current:update", {
|
|
store: e
|
|
}, {
|
|
ignoreResponse: !0
|
|
}), e.onFindSavingsPage && e.couponsEnabled && (ye(e), be(e)), d = -1 !== f.Ay.AMAZON_STORES.indexOf(e.id), !(r || d && e.couponsEnabled && !e.gold.isNNA)) {
|
|
n.n = 4;
|
|
break
|
|
}
|
|
return n.a(2);
|
|
case 4:
|
|
k = e.standDown, n.n = "base" === k ? 5 : "nopopup" === k || "suspend" === k ? 6 : 7;
|
|
break;
|
|
case 5:
|
|
return n.a(3, 7);
|
|
case 6:
|
|
return n.a(2);
|
|
case 7:
|
|
if (p = o && o[e.id] || {}, !(e.couponsEnabled && p.codes && e.metadata.pns_openThrottleCodes > 0 && a()().diff(a().unix(p.codes), "minutes") < e.metadata.pns_openThrottleCodes)) {
|
|
n.n = 8;
|
|
break
|
|
}
|
|
n.n = 21;
|
|
break;
|
|
case 8:
|
|
if (!(e.onOfferPage && p.gold && e.metadata.pns_openThrottleGold > 0 && a()().diff(a().unix(p.gold), "minutes") < e.metadata.pns_openThrottleGold)) {
|
|
n.n = 9;
|
|
break
|
|
}
|
|
n.n = 21;
|
|
break;
|
|
case 9:
|
|
if (!e.onFindSavingsPage) {
|
|
n.n = 21;
|
|
break
|
|
}
|
|
if (!(i === e.id || e.tagged && e.metadata && e.metadata.pns_codeTopFunnel)) {
|
|
n.n = 10;
|
|
break
|
|
}
|
|
return n.a(2);
|
|
case 10:
|
|
return n.n = 11, _e(e);
|
|
case 11:
|
|
if (h = n.v, !0 !== we(e, s, h)) {
|
|
n.n = 12;
|
|
break
|
|
}
|
|
return n.a(2);
|
|
case 12:
|
|
return e.metadata.isGracefulFailure && T.A.open({
|
|
pathname: "/graceful-failure",
|
|
query: {
|
|
ctaType: t
|
|
},
|
|
state: {},
|
|
force: !0,
|
|
feature: "graceful-failure",
|
|
surface: "badge"
|
|
}), m = ke(s, e), y = !!e.coupons.length, _ = function() {
|
|
var t = G(D().m(function t() {
|
|
var n, r, o, i, s, c, u, l;
|
|
return D().w(function(t) {
|
|
for (;;) switch (t.n) {
|
|
case 0:
|
|
if (e.id !== C.P) {
|
|
t.n = 1;
|
|
break
|
|
}
|
|
return t.a(2, !1);
|
|
case 1:
|
|
if (!e.gold || !e.gold.isNNA) {
|
|
t.n = 2;
|
|
break
|
|
}
|
|
return t.a(2, !1);
|
|
case 2:
|
|
return t.n = 3, g.A.getCouponStats(e.id);
|
|
case 3:
|
|
if (n = t.v, r = e && null === e.affiliateURL, o = n && n.successRate < .2 && n.failuresCount > 10, i = Math.random() <= .05, e.id === q && (o = !0), !r || !o || i) {
|
|
t.n = 4;
|
|
break
|
|
}
|
|
return s = a().unix(Math.max.apply(Math, R(e.coupons.map(function(e) {
|
|
return e.created
|
|
})))), c = s > a()().subtract(12, "hours"), t.a(2, !c);
|
|
case 4:
|
|
if (u = m.cartChanged, l = n && n.successRate > .5, !u || l) {
|
|
t.n = 5;
|
|
break
|
|
}
|
|
return t.a(2, !0);
|
|
case 5:
|
|
return t.a(2, !1)
|
|
}
|
|
}, t)
|
|
}));
|
|
return function() {
|
|
return t.apply(this, arguments)
|
|
}
|
|
}(), n.n = 13, _();
|
|
case 13:
|
|
if (!n.v) {
|
|
n.n = 14;
|
|
break
|
|
}
|
|
return O.A.sendEvent("ext000013", {
|
|
action: "show",
|
|
sub_src: "findsavings_modal",
|
|
variant: "fs_suppression_lowcsr"
|
|
}), n.a(2);
|
|
case 14:
|
|
return n.n = 15, Te(e);
|
|
case 15:
|
|
if (S = n.v, w = S.doMixinFallback, E = S.hasGold, !S.mixinFallbackEnabled) {
|
|
n.n = 16;
|
|
break
|
|
}
|
|
if (!w) {
|
|
n.n = 16;
|
|
break
|
|
}
|
|
return E && !e.gold.activated && he(e, {
|
|
showMixinFallback: !0
|
|
}), n.a(2);
|
|
case 16:
|
|
return n.n = 17, v.A.get("".concat(e.id, ":").concat(u.id, ":stoodup"));
|
|
case 17:
|
|
if (!n.v) {
|
|
n.n = 18;
|
|
break
|
|
}
|
|
return n.a(2);
|
|
case 18:
|
|
if (!e.gold || l()(e.gold)) {
|
|
n.n = 20;
|
|
break
|
|
}
|
|
if (!e.gold.activated || y) {
|
|
n.n = 19;
|
|
break
|
|
}
|
|
return n.a(2);
|
|
case 19:
|
|
(!e.gold.activated || e.couponsEnabled && !d) && he(e, m), n.n = 21;
|
|
break;
|
|
case 20:
|
|
he(e, m);
|
|
case 21:
|
|
return n.a(2)
|
|
}
|
|
}, n)
|
|
}));
|
|
return function(e, t, r) {
|
|
return n.apply(this, arguments)
|
|
}
|
|
}()).catch(z, function() {}).catch(function(e) {
|
|
y.A.error(e)
|
|
})
|
|
}))
|
|
});
|
|
|
|
function Ce() {
|
|
return (Ce = G(D().m(function e() {
|
|
var t, n, r;
|
|
return D().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, se();
|
|
case 1:
|
|
return t = e.v, n = t.gold, e.n = 2, x.A.getInfo();
|
|
case 2:
|
|
return r = e.v, e.n = 3, V(t.id, {
|
|
src: "popup"
|
|
});
|
|
case 3:
|
|
r && r.isLoggedIn || x.A.openEmailAuth("login", "popup-activated-gold-ui", !0), b.A.send("ui:action", {
|
|
action: "open",
|
|
data: {
|
|
pathname: "/goldactivated",
|
|
query: {
|
|
cartPrice: 0,
|
|
exclusionText: n.description,
|
|
goldActive: !0,
|
|
honeyGoldBonus: 0,
|
|
isFlatFee: n.isFlatFee,
|
|
max: n.max,
|
|
maxFlatFee: n.maxFlatFee,
|
|
min: n.min,
|
|
minFlatFee: n.minFlatFee
|
|
},
|
|
state: {},
|
|
force: !0,
|
|
feature: "gold-activated",
|
|
surface: "popup"
|
|
}
|
|
}), O.A.sendEvent("ext003002", {
|
|
cta: {
|
|
cta_type: "c0_g1",
|
|
type: "c0_g1"
|
|
}
|
|
}), O.A.sendEvent("ext003010", {
|
|
store: {
|
|
id: t.id
|
|
}
|
|
});
|
|
case 4:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}))).apply(this, arguments)
|
|
}
|
|
|
|
function je() {
|
|
return Re.apply(this, arguments)
|
|
}
|
|
|
|
function Re() {
|
|
return (Re = G(D().m(function e() {
|
|
var t;
|
|
return D().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, se();
|
|
case 1:
|
|
return t = e.v, e.a(2, b.A.send("stores:action", {
|
|
action: "saveCurrent",
|
|
data: {
|
|
store: t
|
|
}
|
|
}, {
|
|
background: !0
|
|
}))
|
|
}
|
|
}, e)
|
|
}))).apply(this, arguments)
|
|
}
|
|
|
|
function Me() {
|
|
return De.apply(this, arguments)
|
|
}
|
|
|
|
function De() {
|
|
return (De = G(D().m(function e() {
|
|
var t, n, r;
|
|
return D().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, k.A.getCurrent();
|
|
case 1:
|
|
return t = e.v, n = t.id, r = w.A.getNumCoupons(), e.a(2, b.A.send("stores:getNumCoupons", {
|
|
numCoupons: r,
|
|
tabId: n
|
|
}, {
|
|
background: !0
|
|
}))
|
|
}
|
|
}, e)
|
|
}))).apply(this, arguments)
|
|
}
|
|
|
|
function Ne() {
|
|
return se().then(function(e) {
|
|
return e && e.metadata && e.supported ? new(o())(function(t) {
|
|
c()(function() {
|
|
t([1, 2, 3].map(function(t) {
|
|
try {
|
|
var n = e.metadata["pns_siteSelSubId".concat(t)];
|
|
if (n) {
|
|
var r = c()(n).first().text().trim();
|
|
return r ? r.toLowerCase() : null
|
|
}
|
|
} catch (e) {}
|
|
return null
|
|
}))
|
|
})
|
|
}) : null
|
|
}).catch(z, function() {
|
|
return null
|
|
})
|
|
}
|
|
|
|
function Le(e, t, n, r) {
|
|
return Fe.apply(this, arguments)
|
|
}
|
|
|
|
function Fe() {
|
|
return (Fe = G(D().m(function e(t, n, r, o) {
|
|
var i, a;
|
|
return D().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, k.A.getContentScriptUrl();
|
|
case 1:
|
|
return i = e.v, a = I.A.cleanString(r, i), Q(t).then(function(e) {
|
|
e.metadata && "true" === e.metadata.pns_affFlush && (y.A.debug("Tag - refreshing local state"), document.cookie.split(";").forEach(function(e) {
|
|
document.cookie = e.replace(/^ +/, "").replace(/=.*/, "=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/")
|
|
}), localStorage.clear(), sessionStorage.clear())
|
|
}), e.a(2, b.A.send("stores:action", {
|
|
action: "tag",
|
|
data: {
|
|
storeId: t,
|
|
type: n,
|
|
targetUrl: a,
|
|
options: o
|
|
}
|
|
}, {
|
|
background: !0
|
|
}))
|
|
}
|
|
}, e)
|
|
}))).apply(this, arguments)
|
|
}
|
|
|
|
function Be(e) {
|
|
return b.A.send("stores:action", {
|
|
action: "getSession",
|
|
data: {
|
|
storeId: e
|
|
}
|
|
}, {
|
|
background: !0
|
|
})
|
|
}
|
|
|
|
function Ue(e) {
|
|
return b.A.send("stores:action", {
|
|
action: "getStoreTabStandDownStatus",
|
|
data: {
|
|
storeId: e
|
|
}
|
|
}, {
|
|
background: !0
|
|
})
|
|
}
|
|
|
|
function Ge(e, t) {
|
|
return t && t.attributes.isBlockingCDN
|
|
}
|
|
|
|
function $e() {
|
|
return ($e = G(D().m(function e() {
|
|
var t, n;
|
|
return D().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
if (void 0 === Pe) {
|
|
e.n = 1;
|
|
break
|
|
}
|
|
return e.a(2, Pe);
|
|
case 1:
|
|
return e.n = 2, se();
|
|
case 2:
|
|
return t = e.v, e.n = 3, Be(t.id);
|
|
case 3:
|
|
return n = e.v, Pe = Ge(0, n), e.a(2, Pe)
|
|
}
|
|
}, e)
|
|
}))).apply(this, arguments)
|
|
}
|
|
|
|
function He() {
|
|
return ze.apply(this, arguments)
|
|
}
|
|
|
|
function ze() {
|
|
return (ze = G(D().m(function e() {
|
|
return D().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, o().delay(100);
|
|
case 1:
|
|
se().then(function(e) {
|
|
if (e && e.id) switch (k.A.inPopover() || b.A.send("stores:pageview", e, {
|
|
currentTab: !0,
|
|
background: !0,
|
|
ignoreResponse: !0
|
|
}).reflect(), e.standDown) {
|
|
case "base":
|
|
case "nopopup":
|
|
case "suspend":
|
|
fe(e.id, e.standDown, e.hasStoodUp)
|
|
}
|
|
}).catch(z, function() {}).catch(function(e) {
|
|
return y.A.error(e)
|
|
});
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}))).apply(this, arguments)
|
|
}
|
|
b.A.addListener("pageDetected:FIND_SAVINGS_URL", function() {
|
|
se().then(function(e) {
|
|
if (e && !e.onFindSavingsPage && -1 === document.documentElement.innerHTML.toLowerCase().indexOf("is empty")) {
|
|
var t = [];
|
|
try {
|
|
0 === c()(e.metadata.pns_siteSelCartCodeBox).length && t.push("pns_siteSelCartCodeBox")
|
|
} catch (e) {
|
|
t.push("pns_siteSelCartCodeBox")
|
|
}
|
|
try {
|
|
0 === c()(e.metadata.pns_siteSelCartTotalPrice).length && t.push("pns_siteSelCartTotalPrice")
|
|
} catch (e) {
|
|
t.push("pns_siteSelCartTotalPrice")
|
|
}
|
|
try {
|
|
e.metadata.pns_siteSelCartCodeSubmit || t.push("pns_siteSelCartCodeSubmit")
|
|
} catch (e) {
|
|
t.push("pns_siteSelCartCodeSubmit")
|
|
}
|
|
x.A.getUserId().then(function(n) {
|
|
return O.A.sendEvent("ext003021", {
|
|
store: e,
|
|
url: window.location.href,
|
|
error_type: "Apply codes not shown",
|
|
user_id: n,
|
|
affected_selectors: t.join(",")
|
|
})
|
|
})
|
|
}
|
|
})
|
|
}), b.A.addListener("pageDetected:FIND_SAVINGS", function() {
|
|
Ae(), pe()
|
|
}), b.A.addListener("pageDetected:SHOPIFY_FIND_SAVINGS", function() {
|
|
Ae()
|
|
}), b.A.addListener("pageDetected:GOLD_REWARDS", function() {
|
|
Ae()
|
|
}), b.A.addListener("tabs:activated", function() {
|
|
var e = G(D().m(function e(t, n) {
|
|
var r;
|
|
return D().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, Me();
|
|
case 1:
|
|
return e.n = 2, k.A.getCurrent();
|
|
case 2:
|
|
if (r = e.v, !n || n.tabId !== r.id) {
|
|
e.n = 3;
|
|
break
|
|
}
|
|
return e.n = 3, je();
|
|
case 3:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t, n) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}()), b.A.addListener("stores:pageview", G(D().m(function e() {
|
|
return D().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, je();
|
|
case 1:
|
|
return e.n = 2, Me();
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}))), o().try(function() {
|
|
return se()
|
|
}).then(function(e) {
|
|
! function(e) {
|
|
e && e.id && e.supported && "suspend" !== e.standDown && (E.A[e.id] || []).forEach(function(t) {
|
|
try {
|
|
new t, y.A.debug("Loaded store module ".concat(t.__honeyStoreModuleName))
|
|
} catch (n) {
|
|
y.A.error("Failed to load store module ".concat(t.__honeyStoreModuleName), {
|
|
store: e,
|
|
err: n
|
|
})
|
|
}
|
|
})
|
|
}(e), c()(He)
|
|
}).catch(z, function() {}).catch(function(e) {
|
|
return y.A.error(e)
|
|
}), b.A.addListener("stores:action", function(e) {
|
|
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
|
|
if ("getSubIds" === (t && t.action)) return Ne();
|
|
throw new InvalidParametersError("No stores:action listener for ".concat(t.action))
|
|
});
|
|
const qe = {
|
|
activateGoldUI: function() {
|
|
return Ce.apply(this, arguments)
|
|
},
|
|
activateStoreGold: V,
|
|
deactivateStoreGold: J,
|
|
getClaimedOffers: K,
|
|
getCurrencyExchangeRates: function() {
|
|
return b.A.send("stores:action", {
|
|
action: "getCurrencyExchangeRates",
|
|
data: {}
|
|
}, {
|
|
background: !0
|
|
})
|
|
},
|
|
getCurrent: se,
|
|
getCurrentStoreTabStandDownStatus: function() {
|
|
return se().then(function(e) {
|
|
return Ue(e.id)
|
|
})
|
|
},
|
|
getFindSavingsPageState: ne,
|
|
getFixedGoldRateActivation: function(e, t) {
|
|
return b.A.send("stores:action", {
|
|
action: "getFixedGoldRateActivation",
|
|
data: {
|
|
storeId: e,
|
|
userId: t
|
|
}
|
|
}, {
|
|
background: !0
|
|
})
|
|
},
|
|
getPrevious: function() {
|
|
return b.A.send("stores:action", {
|
|
action: "getPrevious",
|
|
data: {}
|
|
}, {
|
|
background: !0
|
|
})
|
|
},
|
|
getStoreById: Q,
|
|
getStoreByUrl: X,
|
|
getSession: Be,
|
|
getStoreTabStandDownStatus: Ue,
|
|
getStoreUrlTrace: function(e, t) {
|
|
return b.A.send("stores:action", {
|
|
action: "getStoreUrlTrace",
|
|
data: {
|
|
storeId: e,
|
|
sessionId: t
|
|
}
|
|
}, {
|
|
background: !0
|
|
})
|
|
},
|
|
getSubIds: Ne,
|
|
getTopStores: function() {
|
|
return b.A.send("stores:action", {
|
|
action: "getTopStores",
|
|
data: {}
|
|
}, {
|
|
background: !0
|
|
})
|
|
},
|
|
getTrending: function(e) {
|
|
return b.A.send("stores:action", {
|
|
action: "getTrending",
|
|
data: e
|
|
}, {
|
|
background: !0
|
|
})
|
|
},
|
|
getTrendingByGMV: function(e) {
|
|
return b.A.send("stores:action", {
|
|
action: "getTrendingByGMV",
|
|
data: {
|
|
country: e
|
|
}
|
|
}, {
|
|
background: !0
|
|
})
|
|
},
|
|
goToStorePage: function(e) {
|
|
e && k.A.open({
|
|
url: "".concat("https://www.joinhoney.com", "/shop/").concat(e),
|
|
active: !0
|
|
})
|
|
},
|
|
hasDac: ee,
|
|
haveCouponsBeenApplied: function(e) {
|
|
return Ee.apply(this, arguments)
|
|
},
|
|
maybeNotify: Ae,
|
|
saveCurrent: je,
|
|
search: function(e, t) {
|
|
return b.A.send("stores:action", {
|
|
action: "search",
|
|
data: {
|
|
countryCode: t,
|
|
query: e
|
|
}
|
|
}, {
|
|
background: !0
|
|
})
|
|
},
|
|
setCurrentStoreSessionAttribute: ue,
|
|
setSessionAttribute: Z,
|
|
setStoreTabStandDownStatus: function(e, t, n) {
|
|
return b.A.send("stores:action", {
|
|
action: "setStoreTabStandDownStatus",
|
|
data: {
|
|
storeId: e,
|
|
standDownStatus: t,
|
|
ttlSeconds: n
|
|
}
|
|
}, {
|
|
background: !0
|
|
})
|
|
},
|
|
determineMixinFallbackEligibility: Te,
|
|
snoozeFindSavings: function() {
|
|
return se().then(function(e) {
|
|
var t = w.A.getCtaType(e);
|
|
return v.A.get("user:lastSavings:".concat(e.id, ":").concat(t)).then(function() {
|
|
return we(e, arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {})
|
|
})
|
|
})
|
|
},
|
|
shouldShowFindSavingsAgain: _e,
|
|
updateFindSavingsCooldown: function(e) {
|
|
k.A.getCurrent().then(function(t) {
|
|
var n = "user:findSavingsCooldown:".concat(e.id);
|
|
v.A.get("".concat(e.id, ":").concat(t.id, ":stoodup")).then(function(e) {
|
|
e && v.A.del(n)
|
|
})
|
|
})
|
|
},
|
|
setFindSavingsCooldown: function() {
|
|
se().then(function(e) {
|
|
var t = "user:findSavingsCooldown:".concat(e.id),
|
|
n = {
|
|
timestamp: a()().unix()
|
|
};
|
|
return v.A.set(t, n), !0
|
|
})
|
|
},
|
|
standUpRelevantTabs: fe,
|
|
submitCoupon: function(e) {
|
|
return ue("manualCoupon", e.code), b.A.send("stores:action", {
|
|
action: "submitCoupon",
|
|
data: e
|
|
}, {
|
|
background: !0
|
|
})
|
|
},
|
|
tag: Le,
|
|
tagCurrentStore: function(e, t, n) {
|
|
return se().then(function(r) {
|
|
return Le(r.id, e, t, n)
|
|
})
|
|
},
|
|
updateStorePageDependentStatus: ie,
|
|
waitForCouponInput: ye,
|
|
waitForCouponInputChecker: be,
|
|
isBlockingCDN: function() {
|
|
return $e.apply(this, arguments)
|
|
},
|
|
isBlockingCDNLogic: Ge,
|
|
sendNumCoupons: Me
|
|
}
|
|
},
|
|
64055: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
Ay: () => f,
|
|
U7: () => l,
|
|
dK: () => a
|
|
});
|
|
var r = n(76337),
|
|
o = n(50769),
|
|
i = function(e) {
|
|
return function(t) {
|
|
var n = t.whereAmI.whereAmIByPageId[e],
|
|
r = t.whereAmI.bestMatchProductByPageId[e];
|
|
if (n && r) return (0, o.VK)(r, n)
|
|
}
|
|
};
|
|
const a = {
|
|
selectProductByPageId: i,
|
|
selectProductByProductId: function(e) {
|
|
return function(t) {
|
|
var n = t.whereAmI.bestMatchProductByPageId || {},
|
|
r = Object.keys(n).find(function(t) {
|
|
return n[t].productId === e
|
|
});
|
|
return i(r)(t)
|
|
}
|
|
}
|
|
};
|
|
|
|
function s(e) {
|
|
return s = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, s(e)
|
|
}
|
|
|
|
function c(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function u(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != s(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != s(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == s(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
var l = function(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? c(Object(n), !0).forEach(function(t) {
|
|
u(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : c(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}({}, r.o1);
|
|
const f = r.Ff
|
|
},
|
|
65129: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
A: () => d
|
|
});
|
|
var r = n(9666),
|
|
o = n(86146),
|
|
i = n.n(o),
|
|
a = n(72097),
|
|
s = n(27102),
|
|
c = n(22662),
|
|
u = n(7837),
|
|
l = (0, c.createUseStyles)({
|
|
container: {
|
|
display: "flex",
|
|
padding: function(e) {
|
|
return e.noPadding ? "unset" : "14px 0"
|
|
},
|
|
justifyContent: "center"
|
|
},
|
|
iconContainer: {
|
|
display: "flex",
|
|
width: "124px",
|
|
marginTop: "-2px",
|
|
marginLeft: "2px",
|
|
flexWrap: "nowrap",
|
|
textAlign: "left"
|
|
},
|
|
logo: {
|
|
width: "112px",
|
|
overflowX: "hidden",
|
|
display: "flex"
|
|
},
|
|
logoBtn: {
|
|
width: "12px",
|
|
overflowX: "hidden",
|
|
display: "flex"
|
|
},
|
|
logoImg: {
|
|
marginLeft: "-112px"
|
|
},
|
|
overflowVisible: {
|
|
overflow: "visible"
|
|
}
|
|
}),
|
|
f = function(e) {
|
|
var t = e.noPadding,
|
|
n = e.tooltipDirection,
|
|
o = l({
|
|
noPadding: t
|
|
}),
|
|
i = u.A.getMessage("This_feature_was_developed_by_Honey_Amazon_and_Honey_are_not_affiliated");
|
|
return r.createElement(s.Card, {
|
|
classes: {
|
|
root: o.overflowVisible
|
|
}
|
|
}, r.createElement("div", {
|
|
className: o.container
|
|
}, r.createElement("div", {
|
|
className: o.iconContainer
|
|
}, r.createElement("div", {
|
|
className: o.logo
|
|
}, r.createElement("img", {
|
|
src: "".concat("https://cdn.honey.io", "/images/powered_by_honey.svg"),
|
|
alt: "".concat(u.A.getMessage("Powered_by_HONEY").replace(/{HONEY}/g, "Honey"))
|
|
})), r.createElement(a.ToolTipIcon, {
|
|
direction: n,
|
|
dotted: !1,
|
|
copy: i,
|
|
customAnchorElement: r.createElement("div", {
|
|
className: o.logoBtn
|
|
}, r.createElement("img", {
|
|
className: o.logoImg,
|
|
src: "".concat("https://cdn.honey.io", "/images/powered_by_honey.svg"),
|
|
alt: u.A.getMessage("Info_Icon")
|
|
}))
|
|
}))))
|
|
};
|
|
f.propTypes = {
|
|
noPadding: i().bool,
|
|
tooltipDirection: i().string
|
|
}, f.defaultProps = {
|
|
noPadding: !1,
|
|
tooltipDirection: "bottom"
|
|
};
|
|
const d = f
|
|
},
|
|
65830: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
A: () => G,
|
|
G: () => M
|
|
});
|
|
var r = n(9666),
|
|
o = n(99459),
|
|
i = n(6120),
|
|
a = n(9921),
|
|
s = n(61565),
|
|
c = n(88585),
|
|
u = n(25094),
|
|
l = n(24333),
|
|
f = n(323),
|
|
d = n(63123),
|
|
p = n(98031),
|
|
h = n(13917),
|
|
m = n(43869),
|
|
g = n(91379),
|
|
y = n(20946),
|
|
v = n(80219);
|
|
|
|
function b(e) {
|
|
return b = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, b(e)
|
|
}
|
|
|
|
function _(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function S(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? _(Object(n), !0).forEach(function(t) {
|
|
w(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : _(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function w(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != b(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != b(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == b(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
|
|
function O(e) {
|
|
return function(e) {
|
|
if (Array.isArray(e)) return I(e)
|
|
}(e) || function(e) {
|
|
if ("undefined" != typeof Symbol && null != e[Symbol.iterator] || null != e["@@iterator"]) return Array.from(e)
|
|
}(e) || x(e) || function() {
|
|
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
|
|
}()
|
|
}
|
|
|
|
function E() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return k(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (k(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, k(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, k(f, "constructor", u), k(u, "constructor", c), c.displayName = "GeneratorFunction", k(u, o, "GeneratorFunction"), k(f), k(f, o, "Generator"), k(f, r, function() {
|
|
return this
|
|
}), k(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (E = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function k(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
k = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
k(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, k(e, t, n, r)
|
|
}
|
|
|
|
function T(e, t) {
|
|
return function(e) {
|
|
if (Array.isArray(e)) return e
|
|
}(e) || function(e, t) {
|
|
var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
|
|
if (null != n) {
|
|
var r, o, i, a, s = [],
|
|
c = !0,
|
|
u = !1;
|
|
try {
|
|
if (i = (n = n.call(e)).next, 0 === t) {
|
|
if (Object(n) !== n) return;
|
|
c = !1
|
|
} else
|
|
for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0);
|
|
} catch (e) {
|
|
u = !0, o = e
|
|
} finally {
|
|
try {
|
|
if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return
|
|
} finally {
|
|
if (u) throw o
|
|
}
|
|
}
|
|
return s
|
|
}
|
|
}(e, t) || x(e, t) || function() {
|
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
|
|
}()
|
|
}
|
|
|
|
function x(e, t) {
|
|
if (e) {
|
|
if ("string" == typeof e) return I(e, t);
|
|
var n = {}.toString.call(e).slice(8, -1);
|
|
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? I(e, t) : void 0
|
|
}
|
|
}
|
|
|
|
function I(e, t) {
|
|
(null == t || t > e.length) && (t = e.length);
|
|
for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n];
|
|
return r
|
|
}
|
|
|
|
function P(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
|
|
function A(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
P(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
P(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}
|
|
|
|
function C(e, t) {
|
|
return j.apply(this, arguments)
|
|
}
|
|
|
|
function j() {
|
|
return (j = A(E().m(function e(t, n) {
|
|
var r, o;
|
|
return E().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
if (void 0 !== window.MutationObserver) {
|
|
e.n = 1;
|
|
break
|
|
}
|
|
return e.a(2);
|
|
case 1:
|
|
return r = new MutationObserver(A(E().m(function e() {
|
|
var r, o, i, a;
|
|
return E().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, Promise.all([(0, m.BM)(n), c.A.getCurrent()]);
|
|
case 1:
|
|
return r = e.v, o = T(r, 2), i = o[0], a = o[1], e.n = 2, v.t.request(v.N5.checkoutCartPriceChange, {
|
|
cartPrice: i,
|
|
tabId: a.id,
|
|
storeId: t.id,
|
|
storeName: t.name
|
|
});
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}))), e.n = 2, l.A.waitForElement(n, {
|
|
timeout: 3e3
|
|
});
|
|
case 2:
|
|
try {
|
|
o = document.querySelector(n), r.observe(o, {
|
|
characterData: !0,
|
|
attributes: !1,
|
|
childList: !0,
|
|
subtree: !0
|
|
})
|
|
} catch (e) {
|
|
a.A.error("Error attaching mutation observer for store", {
|
|
storeId: t.id,
|
|
selector: n
|
|
})
|
|
}
|
|
case 3:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}))).apply(this, arguments)
|
|
}
|
|
|
|
function R(e) {
|
|
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "body",
|
|
n = document.querySelector("#".concat(e));
|
|
n || ((n = document.createElement("div")).id = e, document.querySelector(t).appendChild(n));
|
|
return n
|
|
}
|
|
|
|
function M(e, t) {
|
|
return D.apply(this, arguments)
|
|
}
|
|
|
|
function D() {
|
|
return (D = A(E().m(function e(t, n) {
|
|
var r;
|
|
return E().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, (0, m.oO)(t);
|
|
case 1:
|
|
return r = e.v, n && "SUPPORTED" !== r.status && (0, y.r)({
|
|
eligibilityReason: "store-not-enabled",
|
|
iframeLoaded: !1,
|
|
isEligible: !1
|
|
}), e.a(2, r)
|
|
}
|
|
}, e)
|
|
}))).apply(this, arguments)
|
|
}
|
|
|
|
function N() {
|
|
return L.apply(this, arguments)
|
|
}
|
|
|
|
function L() {
|
|
return L = A(E().m(function e() {
|
|
var t, n, l, f, b, _, w, k, x, I, P, j, D, N, L, F;
|
|
return E().w(function(e) {
|
|
for (;;) switch (e.p = e.n) {
|
|
case 0:
|
|
return e.n = 1, Promise.all([u.A.getInfo(), s.A.getCurrent(), c.A.getCurrent(), (0, m.te)(h.ld.devToolsEnabled)]);
|
|
case 1:
|
|
if (t = e.v, n = T(t, 4), l = n[0], f = n[1], b = n[2], _ = n[3], f.id) {
|
|
e.n = 2;
|
|
break
|
|
}
|
|
return e.a(2);
|
|
case 2:
|
|
return e.p = 2, N = Boolean, e.n = 3, (0, m.pD)(f.id);
|
|
case 3:
|
|
if (L = e.v, w = N(L), k = null, x = null, I = [], w) {
|
|
e.n = 8;
|
|
break
|
|
}
|
|
return e.n = 4, M(f.id, _);
|
|
case 4:
|
|
return k = e.v, I.push.apply(I, O(k.checkoutTypes)), e.n = 5, d.A.startDiscovery(I, b.id, k.status);
|
|
case 5:
|
|
if (x = e.v, "SUPPORTED" === k.status) {
|
|
e.n = 6;
|
|
break
|
|
}
|
|
return (0, y.r)({
|
|
discovered: k.status
|
|
}), e.a(2);
|
|
case 6:
|
|
return e.n = 7, (0, m.OX)(f);
|
|
case 7:
|
|
_ && (0, y.r)({
|
|
discovered: x.origin
|
|
});
|
|
case 8:
|
|
return x && x.origin === h.YO.VCC && C(f, f.metadata.pns_siteSelCartTotalPrice), P = function() {
|
|
var e = A(E().m(function e(t) {
|
|
var n, r, o;
|
|
return E().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
if (!_) {
|
|
e.n = 2;
|
|
break
|
|
}
|
|
return n = t ? t.eligibilityReason : "none", r = !!t && t.isEligible, e.n = 1, v.fR.request(v.r8.merchantSPBGuestEnabled, {
|
|
merchantId: k.encryptedRcvrId
|
|
});
|
|
case 1:
|
|
o = e.v, (0, y.r)(S(S({}, t), {}, {
|
|
eligibilityReason: n,
|
|
isEligible: r,
|
|
isMerchantGuestEnabled: o,
|
|
iframeLoaded: !0
|
|
}));
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}(), j = R("honeyCheckout"), e.n = 9, (0, m.te)(h.ld.iFrameOriginUrl);
|
|
case 9:
|
|
if (D = e.v, !i.A) {
|
|
e.n = 11;
|
|
break
|
|
}
|
|
return e.n = 10, i.A.dispatch(p.h$.reset());
|
|
case 10:
|
|
i.A.dispatch(p.h$.setDiscoveryData(S({}, x)));
|
|
case 11:
|
|
o.render(r.createElement(g.A, {
|
|
SPBCheckoutCoordinator: undefined,
|
|
onIFrameLoadedProp: P,
|
|
iframeSrc: D,
|
|
store: f,
|
|
storeCheckoutConfig: k,
|
|
user: l,
|
|
discoveryData: x
|
|
}), j), e.n = 13;
|
|
break;
|
|
case 12:
|
|
e.p = 12, F = e.v, a.A.error("Error loading Honey Checkout iframe: ".concat(F));
|
|
case 13:
|
|
return e.a(2)
|
|
}
|
|
}, e, null, [
|
|
[2, 12]
|
|
])
|
|
})), L.apply(this, arguments)
|
|
}
|
|
|
|
function F(e) {
|
|
return !(!e.id || ["270883781864074943", "229099436401559906"].includes(e.id))
|
|
}
|
|
|
|
function B() {
|
|
return U.apply(this, arguments)
|
|
}
|
|
|
|
function U() {
|
|
return (U = A(E().m(function e() {
|
|
var t, n, i, a, c, u;
|
|
return E().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, Promise.all([s.A.getCurrent(), (0, m.e5)(), f.A.getFeatureFlag("honey_checkout_spb_refactor_enabled")]);
|
|
case 1:
|
|
if (t = e.v, n = T(t, 3), i = n[0], a = n[1], c = n[2], a && F(i) && a[h.ld.devToolsEnabled]) {
|
|
e.n = 2;
|
|
break
|
|
}
|
|
return e.a(2);
|
|
case 2:
|
|
u = R("honeyCheckoutDevTools"), o.render(r.createElement(y.A, {
|
|
store: i,
|
|
checkoutSettings: a,
|
|
isRefactorEnabled: c
|
|
}), u);
|
|
case 3:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}))).apply(this, arguments)
|
|
}
|
|
const G = {
|
|
start: function() {
|
|
setTimeout(N, 0), setTimeout(B, 0)
|
|
}
|
|
}
|
|
},
|
|
67107: (e, t, n) => {
|
|
"use strict";
|
|
var r = {};
|
|
n.r(r), n.d(r, {
|
|
FunctionToString: () => ru,
|
|
InboundFilters: () => cu,
|
|
LinkedErrors: () => yu
|
|
});
|
|
var o = {};
|
|
n.r(o), n.d(o, {
|
|
Breadcrumbs: () => Bd,
|
|
Dedupe: () => $d,
|
|
GlobalHandlers: () => Jd,
|
|
HttpContext: () => tp,
|
|
LinkedErrors: () => op,
|
|
TryCatch: () => cp
|
|
});
|
|
var i = {};
|
|
n.r(i), n.d(i, {
|
|
Breadcrumbs: () => Bd,
|
|
BrowserClient: () => Bf,
|
|
BrowserProfilingIntegration: () => lS,
|
|
BrowserTracing: () => b_,
|
|
Dedupe: () => $d,
|
|
Feedback: () => lb,
|
|
FunctionToString: () => ru,
|
|
GlobalHandlers: () => Jd,
|
|
HttpContext: () => tp,
|
|
Hub: () => Zs,
|
|
InboundFilters: () => cu,
|
|
Integrations: () => dS,
|
|
LinkedErrors: () => op,
|
|
ModuleMetadata: () => Bu,
|
|
Replay: () => rv,
|
|
ReplayCanvas: () => Nv,
|
|
SDK_VERSION: () => Ks,
|
|
SEMANTIC_ATTRIBUTE_SENTRY_OP: () => $u,
|
|
SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN: () => Hu,
|
|
SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE: () => Gu,
|
|
SEMANTIC_ATTRIBUTE_SENTRY_SOURCE: () => Uu,
|
|
Scope: () => Ys,
|
|
TryCatch: () => cp,
|
|
WINDOW: () => wf,
|
|
addBreadcrumb: () => Tc,
|
|
addEventProcessor: () => ol,
|
|
addGlobalEventProcessor: () => vs,
|
|
addIntegration: () => Qc,
|
|
addTracingExtensions: () => Ql,
|
|
breadcrumbsIntegration: () => Fd,
|
|
browserApiErrorsIntegration: () => sp,
|
|
browserProfilingIntegration: () => uS,
|
|
browserTracingIntegration: () => O_,
|
|
captureConsoleIntegration: () => db,
|
|
captureEvent: () => Ec,
|
|
captureException: () => wc,
|
|
captureMessage: () => Oc,
|
|
captureSession: () => Wc,
|
|
captureUserFeedback: () => _p,
|
|
chromeStackLineParser: () => Xf,
|
|
close: () => Fc,
|
|
configureScope: () => kc,
|
|
contextLinesIntegration: () => mb,
|
|
continueTrace: () => xl,
|
|
createTransport: () => of,
|
|
createUserFeedbackEnvelope: () => Ff,
|
|
debugIntegration: () => yb,
|
|
dedupeIntegration: () => _b,
|
|
defaultIntegrations: () => pp,
|
|
defaultRequestInstrumentationOptions: () => p_,
|
|
defaultStackLineParsers: () => cd,
|
|
defaultStackParser: () => ud,
|
|
endSession: () => zc,
|
|
eventFromException: () => Rf,
|
|
eventFromMessage: () => Mf,
|
|
exceptionFromError: () => If,
|
|
extraErrorDataIntegration: () => Tb,
|
|
extractTraceparentData: () => yl,
|
|
feedbackIntegration: () => ub,
|
|
flush: () => Lc,
|
|
forceLoad: () => yp,
|
|
functionToStringIntegration: () => nu,
|
|
geckoStackLineParser: () => td,
|
|
getActiveSpan: () => Tl,
|
|
getActiveTransaction: () => gl,
|
|
getClient: () => Uc,
|
|
getCurrentHub: () => nc,
|
|
getCurrentScope: () => $c,
|
|
getDefaultIntegrations: () => hp,
|
|
getHubFromCarrier: () => sc,
|
|
getReplay: () => iv,
|
|
getSpanStatusFromHttpCode: () => Nl,
|
|
globalHandlersIntegration: () => Yd,
|
|
httpClientIntegration: () => Ib,
|
|
httpContextIntegration: () => ep,
|
|
inboundFiltersIntegration: () => su,
|
|
init: () => mp,
|
|
instrumentOutgoingRequests: () => h_,
|
|
isInitialized: () => Gc,
|
|
lastEventId: () => Bc,
|
|
linkedErrorsIntegration: () => rp,
|
|
makeBrowserOfflineTransport: () => L_,
|
|
makeFetchTransport: () => qf,
|
|
makeMain: () => tc,
|
|
makeMultiplexedTransport: () => cf,
|
|
makeXHRTransport: () => Vf,
|
|
metrics: () => vf,
|
|
moduleMetadataIntegration: () => Fu,
|
|
onLoad: () => vp,
|
|
onProfilingStartRouteTransaction: () => aS,
|
|
opera10StackLineParser: () => id,
|
|
opera11StackLineParser: () => sd,
|
|
parameterize: () => bf,
|
|
replayCanvasIntegration: () => Dv,
|
|
replayIntegration: () => nv,
|
|
reportingObserverIntegration: () => Lb,
|
|
rewriteFramesIntegration: () => zb,
|
|
sendFeedback: () => Vv,
|
|
sessionTimingIntegration: () => Wb,
|
|
setContext: () => xc,
|
|
setCurrentClient: () => _f,
|
|
setExtra: () => Pc,
|
|
setExtras: () => Ic,
|
|
setHttpStatus: () => Fl,
|
|
setMeasurement: () => Sf,
|
|
setTag: () => Cc,
|
|
setTags: () => Ac,
|
|
setUser: () => jc,
|
|
showReportDialog: () => gp,
|
|
spanStatusfromHttpCode: () => Ll,
|
|
startBrowserTracingNavigationSpan: () => k_,
|
|
startBrowserTracingPageLoadSpan: () => E_,
|
|
startInactiveSpan: () => kl,
|
|
startSession: () => Hc,
|
|
startSpan: () => Ol,
|
|
startSpanManual: () => El,
|
|
startTransaction: () => Nc,
|
|
trace: () => wl,
|
|
winjsStackLineParser: () => rd,
|
|
withActiveSpan: () => Dc,
|
|
withIsolationScope: () => Mc,
|
|
withScope: () => Rc,
|
|
wrap: () => bp
|
|
});
|
|
n(10499), n(78098);
|
|
var a, s = n(262),
|
|
c = n.n(s),
|
|
u = n(69698),
|
|
l = n.n(u),
|
|
f = n(24333),
|
|
d = n(76364),
|
|
p = n(68031),
|
|
h = n(77002),
|
|
m = n(69145),
|
|
g = n(18323),
|
|
y = n(65830);
|
|
|
|
function v() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return b(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (b(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, b(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, b(f, "constructor", u), b(u, "constructor", c), c.displayName = "GeneratorFunction", b(u, o, "GeneratorFunction"), b(f), b(f, o, "Generator"), b(f, r, function() {
|
|
return this
|
|
}), b(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (v = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function b(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
b = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
b(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, b(e, t, n, r)
|
|
}
|
|
|
|
function _(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}(a = v().m(function e() {
|
|
return v().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
y.A.start();
|
|
case 1:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}), function() {
|
|
var e = this,
|
|
t = arguments;
|
|
return new Promise(function(n, r) {
|
|
var o = a.apply(e, t);
|
|
|
|
function i(e) {
|
|
_(o, n, r, i, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
_(o, n, r, i, s, "throw", e)
|
|
}
|
|
i(void 0)
|
|
})
|
|
})();
|
|
var S = n(17144),
|
|
w = n(82),
|
|
O = n(31755),
|
|
E = n(61117),
|
|
k = n(67867),
|
|
T = n(7837),
|
|
x = n(38907),
|
|
I = n(9921),
|
|
P = n(32969),
|
|
A = n(24166);
|
|
P.A.addListener("mseupsell:action", function(e, t) {
|
|
var n = t && t.flow ? t.flow : "default";
|
|
switch (t && t.action) {
|
|
case "showMSEPrompt":
|
|
A.A.open({
|
|
pathname: "/msePrompt",
|
|
query: {
|
|
flow: n
|
|
},
|
|
force: !0,
|
|
feature: "qr-code-prompt",
|
|
surface: "popup"
|
|
});
|
|
break;
|
|
case "showQrCode":
|
|
A.A.open({
|
|
pathname: "/qrCode",
|
|
query: {
|
|
flow: n
|
|
},
|
|
force: !0,
|
|
feature: "qr-code-scan",
|
|
surface: "popup"
|
|
});
|
|
break;
|
|
default:
|
|
throw new InvalidParametersError("No mseupsell:action listener for ".concat(t.action))
|
|
}
|
|
});
|
|
var C = n(2733),
|
|
j = n(13038),
|
|
R = n(9666),
|
|
M = n(99459),
|
|
D = n(11389),
|
|
N = n.n(D),
|
|
L = n(7720),
|
|
F = n(25094),
|
|
B = n(61565),
|
|
U = n(88585),
|
|
G = n(86531),
|
|
$ = n.n(G),
|
|
H = n(32372),
|
|
z = n(48158);
|
|
|
|
function q() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return W(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (W(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, W(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, W(f, "constructor", u), W(u, "constructor", c), c.displayName = "GeneratorFunction", W(u, o, "GeneratorFunction"), W(f), W(f, o, "Generator"), W(f, r, function() {
|
|
return this
|
|
}), W(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (q = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function W(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
W = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
W(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, W(e, t, n, r)
|
|
}
|
|
|
|
function V(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
var Y = function(e, t) {
|
|
return e.GOLD_REWARDS && (!t.gold || t.gold && t.gold.activated)
|
|
},
|
|
J = function(e, t) {
|
|
return e && (e.FIND_SAVINGS || e.GOLD_REWARDS) && $().unix(t.applyCodesComplete).isAfter($()().subtract(2, "hours"))
|
|
},
|
|
K = function(e) {
|
|
return e && !e.FIND_SAVINGS
|
|
},
|
|
Q = function(e) {
|
|
return !e.standDown
|
|
};
|
|
|
|
function X() {
|
|
return X = function(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
V(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
V(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}(q().m(function e(t, n, r) {
|
|
var o, i, a, s, c;
|
|
return q().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
if (c = n) {
|
|
e.n = 2;
|
|
break
|
|
}
|
|
return e.n = 1, B.A.getCurrent();
|
|
case 1:
|
|
c = e.v;
|
|
case 2:
|
|
if (o = c, i = z.A.getCtaType(o), !(i === H.ct.NONE)) {
|
|
e.n = 3;
|
|
break
|
|
}
|
|
return e.a(2, !0);
|
|
case 3:
|
|
return a = [Y, J, K], r && (a = r), e.n = 4, Promise.all(a.map(function(e) {
|
|
return e(t, o)
|
|
}));
|
|
case 4:
|
|
return s = e.v, e.a(2, s.some(function(e) {
|
|
return e
|
|
}) && Q(o))
|
|
}
|
|
}, e)
|
|
})), X.apply(this, arguments)
|
|
}
|
|
const Z = {
|
|
isFsOrGoldAndMoreThanTwoHrs: J,
|
|
isNotOnFs: K,
|
|
isOnGoldRewardsOrActivated: Y,
|
|
isPaymentsViewPrioritized: function(e, t, n) {
|
|
return X.apply(this, arguments)
|
|
}
|
|
};
|
|
var ee = n(28498),
|
|
te = n(46299),
|
|
ne = n(323),
|
|
re = n(62397);
|
|
|
|
function oe(e) {
|
|
return oe = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, oe(e)
|
|
}
|
|
|
|
function ie(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function ae(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? ie(Object(n), !0).forEach(function(t) {
|
|
se(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : ie(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function se(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != oe(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != oe(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == oe(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
var ce = {
|
|
extensionRemoveIFrame: "extensionRemoveIFrame",
|
|
extensionSendSDataEvent: "extensionSendSDataEvent",
|
|
extensionUpdateStyles: "extensionUpdateStyles",
|
|
extensionExperimentsGetVariant: "extensionExperimentsGetVariant",
|
|
extensionExperimentsTrackImpression: "extensionExperimentsTrackImpression",
|
|
extensionGetUserABGroup: "extensionGetUserABGroup",
|
|
extensionGetI18nCountryCode: "extensionGetI18nCountryCode",
|
|
extensionGetI18nMessage: "extensionGetI18nMessage",
|
|
extensionSetGiftCardsEnabledForUser: "extensionSetGiftCardsEnabledForUser",
|
|
extensionOpenLoginPrompt: "extensionOpenLoginPrompt",
|
|
extensionHideContentUI: "extensionHideContentUI",
|
|
extensionGetCartPrice: "extensionGetCartPrice",
|
|
extensionSetIFrameAttribute: "extensionSetIFrameAttribute",
|
|
extensionRemoveIFrameAttribute: "extensionRemoveIFrameAttribute",
|
|
extensionSetHoneyStorageItem: "extensionSetHoneyStorageItem",
|
|
extensionGetHoneyStorageItem: "extensionGetHoneyStorageItem",
|
|
extensionRemoveHoneyStorageItem: "extensionRemoveHoneyStorageItem",
|
|
extensionSetWindowLocalStorageItem: "extensionSetWindowLocalStorageItem",
|
|
extensionGetWindowLocalStorageItem: "extensionGetWindowLocalStorageItem",
|
|
extensionRemoveWindowLocalStorageItem: "extensionRemoveWindowLocalStorageItem",
|
|
extensionGQLQuery: "extensionGQLQuery",
|
|
extensionGQLMutation: "extensionGQLMutation",
|
|
extensionOpenGiftCardDealModal: "extensionOpenGiftCardDealModal",
|
|
giftCardsInit: "giftCardsInit",
|
|
giftCardsReady: "giftCardsReady",
|
|
giftCardsUserUpdate: "giftCardsUserUpdate",
|
|
giftCardsCartPriceChange: "giftCardsCartPriceChange",
|
|
giftCardsUserLoggedIn: "giftCardsUserLoggedIn",
|
|
giftCardsFindSavingsClosed: "giftCardsFindSavingsClosed",
|
|
extensionSetIsMinimized: "extensionSetIsMinimized",
|
|
giftCardsSetIsMinimized: "giftCardsSetIsMinimized"
|
|
},
|
|
ue = Object.keys(ce).reduce(function(e, t) {
|
|
return ae(ae({}, e), {}, se({}, t, t))
|
|
}, {}),
|
|
le = new Proxy(ue, {
|
|
get: function(e, t, n) {
|
|
var r = Reflect.get(e, t, n);
|
|
if (void 0 === r) throw new Error("checkout message name not found: ".concat(t));
|
|
return r
|
|
}
|
|
});
|
|
const fe = new re.PostMessenger({
|
|
types: ce,
|
|
enableLogging: !1,
|
|
clientName: "extension",
|
|
useEncryption: !1
|
|
});
|
|
var de = n(86146),
|
|
pe = n.n(de),
|
|
he = n(46946),
|
|
me = n(65855),
|
|
ge = n(22662),
|
|
ye = n(72097),
|
|
ve = n(48611);
|
|
|
|
function be(e, t) {
|
|
return function(e) {
|
|
if (Array.isArray(e)) return e
|
|
}(e) || function(e, t) {
|
|
var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
|
|
if (null != n) {
|
|
var r, o, i, a, s = [],
|
|
c = !0,
|
|
u = !1;
|
|
try {
|
|
if (i = (n = n.call(e)).next, 0 === t) {
|
|
if (Object(n) !== n) return;
|
|
c = !1
|
|
} else
|
|
for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0);
|
|
} catch (e) {
|
|
u = !0, o = e
|
|
} finally {
|
|
try {
|
|
if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return
|
|
} finally {
|
|
if (u) throw o
|
|
}
|
|
}
|
|
return s
|
|
}
|
|
}(e, t) || function(e, t) {
|
|
if (e) {
|
|
if ("string" == typeof e) return _e(e, t);
|
|
var n = {}.toString.call(e).slice(8, -1);
|
|
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? _e(e, t) : void 0
|
|
}
|
|
}(e, t) || function() {
|
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
|
|
}()
|
|
}
|
|
|
|
function _e(e, t) {
|
|
(null == t || t > e.length) && (t = e.length);
|
|
for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n];
|
|
return r
|
|
}
|
|
var Se = {
|
|
root: {
|
|
display: "flex",
|
|
position: "fixed",
|
|
right: "0px",
|
|
top: "80px",
|
|
zIndex: 2147483647
|
|
},
|
|
container: {
|
|
backgroundColor: ye.Colors.white,
|
|
width: "280px",
|
|
right: function(e) {
|
|
return e.isExpanded ? "0px" : "-202px"
|
|
},
|
|
transition: "all 400ms ease-in-out",
|
|
height: "56px",
|
|
display: "flex",
|
|
flexDirection: "row",
|
|
alignItems: "center",
|
|
justifyContent: "flex-start",
|
|
borderRadius: "5px 0px 0px 5px",
|
|
position: "relative",
|
|
boxShadow: "0px 2px 35px rgba(0, 0, 0, 0.25)"
|
|
},
|
|
icon: {
|
|
cursor: "pointer",
|
|
width: "18px",
|
|
height: "18px",
|
|
marginLeft: "9px"
|
|
},
|
|
dotsContainer: {
|
|
alignItems: "center",
|
|
cursor: "move",
|
|
display: "flex",
|
|
height: "100%",
|
|
paddingRight: "9px"
|
|
},
|
|
dots: {
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
height: "17px",
|
|
width: "10px",
|
|
justifyContent: "space-between",
|
|
marginLeft: "16px"
|
|
},
|
|
dotRow: {
|
|
width: "100%",
|
|
display: "flex",
|
|
justifyContent: "space-between"
|
|
},
|
|
dot: {
|
|
height: "3px",
|
|
width: "3px",
|
|
display: "inline-block",
|
|
borderRadius: "50%",
|
|
backgroundColor: ye.Colors.grey600
|
|
},
|
|
content: {
|
|
cursor: "pointer",
|
|
display: "flex",
|
|
flexDirection: "row",
|
|
alignItems: "center",
|
|
justifyContent: "flex-start",
|
|
width: "100%"
|
|
},
|
|
savingsText: {
|
|
marginLeft: "18px"
|
|
},
|
|
giftCardInfo: {
|
|
fontSize: "12px"
|
|
},
|
|
title: {
|
|
color: ye.Colors.grey900,
|
|
fontSize: "12px",
|
|
fontWeight: "600"
|
|
},
|
|
savings: {
|
|
color: ye.Colors.green500,
|
|
fontWeight: "700"
|
|
},
|
|
goldAward: {
|
|
color: ye.Colors.gold900,
|
|
fontWeight: "700"
|
|
},
|
|
seeSavings: {
|
|
color: ye.Colors.grey800,
|
|
composes: "link1"
|
|
}
|
|
},
|
|
we = (0, ge.createUseStyles)(Se),
|
|
Oe = function(e) {
|
|
var t = e.handleUnMinimize,
|
|
n = e.savings,
|
|
r = e.goldAward,
|
|
o = e.autoPopType,
|
|
i = be((0, R.useState)(!1), 2),
|
|
a = i[0],
|
|
s = i[1],
|
|
c = we({
|
|
isExpanded: a
|
|
}),
|
|
u = (0, R.createRef)(),
|
|
l = function(e) {
|
|
return function() {
|
|
s(e)
|
|
}
|
|
},
|
|
f = function(e) {
|
|
var t = e.changedTouches && e.changedTouches[0].clientY || e.clientY;
|
|
(t < 0 || t > window.innerHeight - 56) && (t = t < 0 ? 0 : window.innerHeight - 56), u.current.style.top = "".concat(t, "px")
|
|
};
|
|
|
|
function d() {
|
|
window.removeEventListener("mousemove", f), window.removeEventListener("mouseup", d)
|
|
}
|
|
var p = function() {
|
|
return n && !r
|
|
},
|
|
h = Number(r).toLocaleString(),
|
|
m = "$".concat(r / 100),
|
|
g = function() {
|
|
return !n && r ? T.A.getMessageAndReplace("Get_GOLDINCURRENCY_GOLDPOINTS", {
|
|
GOLDINCURRENCY: R.createElement("span", {
|
|
className: c.goldAward
|
|
}, m),
|
|
GOLDPOINTS: R.createElement("span", null, h)
|
|
}) : p() ? T.A.getMessageAndReplace("Save_SAVINGS_with_a_gift_card", {
|
|
SAVINGS: R.createElement("span", {
|
|
className: c.savings
|
|
}, (0, ve.nT)(n))
|
|
}) : T.A.getMessageAndReplace("Save_SAVINGS_and_get_Gold", {
|
|
SAVINGS: R.createElement("span", {
|
|
className: c.savings
|
|
}, (0, ve.nT)(n))
|
|
})
|
|
};
|
|
return R.createElement("div", {
|
|
ref: u,
|
|
className: c.root
|
|
}, R.createElement("div", {
|
|
className: c.container
|
|
}, R.createElement("div", {
|
|
className: c.dotsContainer,
|
|
onMouseDown: function() {
|
|
window.addEventListener("mousemove", f), window.addEventListener("mouseup", d)
|
|
},
|
|
onMouseUp: d,
|
|
onTouchMove: f
|
|
}, R.createElement("div", {
|
|
className: c.dots
|
|
}, R.createElement("div", {
|
|
className: c.dotRow
|
|
}, R.createElement("div", {
|
|
className: c.dot
|
|
}), R.createElement("div", {
|
|
className: c.dot
|
|
})), R.createElement("div", {
|
|
className: c.dotRow
|
|
}, R.createElement("div", {
|
|
className: c.dot
|
|
}), R.createElement("div", {
|
|
className: c.dot
|
|
})), R.createElement("div", {
|
|
className: c.dotRow
|
|
}, R.createElement("div", {
|
|
className: c.dot
|
|
}), R.createElement("div", {
|
|
className: c.dot
|
|
})))), R.createElement("div", {
|
|
className: c.content,
|
|
onClick: t,
|
|
onMouseEnter: l(!0),
|
|
onMouseLeave: l(!1)
|
|
}, R.createElement("img", {
|
|
className: c.icon,
|
|
src: "".concat("https://cdn.honey.io", "/images/finance/honey-icon-orange.svg"),
|
|
alt: "Open Honey"
|
|
}), R.createElement("div", {
|
|
className: c.savingsText
|
|
}, "HOOK" === o ? R.createElement(R.Fragment, null, R.createElement("div", {
|
|
className: c.title
|
|
}, g()), R.createElement("div", {
|
|
className: c.seeSavings
|
|
}, p() ? T.A.getMessage("Click_to_see_savings") : T.A.getMessage("Click_to_see_Gift_Card_Deal"))) : R.createElement("div", {
|
|
className: c.giftCardInfo
|
|
}, T.A.getMessage("Click_for_gift_card_info"))))))
|
|
};
|
|
Oe.propTypes = {
|
|
handleUnMinimize: pe().func.isRequired,
|
|
savings: pe().number.isRequired,
|
|
goldAward: pe().number.isRequired,
|
|
autoPopType: pe().string.isRequired
|
|
};
|
|
const Ee = Oe;
|
|
|
|
function ke(e) {
|
|
return ke = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, ke(e)
|
|
}
|
|
var Te = ["eventName"];
|
|
|
|
function xe(e) {
|
|
return function(e) {
|
|
if (Array.isArray(e)) return Ne(e)
|
|
}(e) || function(e) {
|
|
if ("undefined" != typeof Symbol && null != e[Symbol.iterator] || null != e["@@iterator"]) return Array.from(e)
|
|
}(e) || De(e) || function() {
|
|
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
|
|
}()
|
|
}
|
|
|
|
function Ie(e, t) {
|
|
if (null == e) return {};
|
|
var n, r, o = function(e, t) {
|
|
if (null == e) return {};
|
|
var n = {};
|
|
for (var r in e)
|
|
if ({}.hasOwnProperty.call(e, r)) {
|
|
if (-1 !== t.indexOf(r)) continue;
|
|
n[r] = e[r]
|
|
} return n
|
|
}(e, t);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var i = Object.getOwnPropertySymbols(e);
|
|
for (r = 0; r < i.length; r++) n = i[r], -1 === t.indexOf(n) && {}.propertyIsEnumerable.call(e, n) && (o[n] = e[n])
|
|
}
|
|
return o
|
|
}
|
|
|
|
function Pe(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function Ae(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? Pe(Object(n), !0).forEach(function(t) {
|
|
Ce(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Pe(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function Ce(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != ke(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != ke(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == ke(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
|
|
function je() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return Re(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (Re(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Re(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, Re(f, "constructor", u), Re(u, "constructor", c), c.displayName = "GeneratorFunction", Re(u, o, "GeneratorFunction"), Re(f), Re(f, o, "Generator"), Re(f, r, function() {
|
|
return this
|
|
}), Re(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (je = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function Re(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
Re = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
Re(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, Re(e, t, n, r)
|
|
}
|
|
|
|
function Me(e, t) {
|
|
return function(e) {
|
|
if (Array.isArray(e)) return e
|
|
}(e) || function(e, t) {
|
|
var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
|
|
if (null != n) {
|
|
var r, o, i, a, s = [],
|
|
c = !0,
|
|
u = !1;
|
|
try {
|
|
if (i = (n = n.call(e)).next, 0 === t) {
|
|
if (Object(n) !== n) return;
|
|
c = !1
|
|
} else
|
|
for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0);
|
|
} catch (e) {
|
|
u = !0, o = e
|
|
} finally {
|
|
try {
|
|
if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return
|
|
} finally {
|
|
if (u) throw o
|
|
}
|
|
}
|
|
return s
|
|
}
|
|
}(e, t) || De(e, t) || function() {
|
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
|
|
}()
|
|
}
|
|
|
|
function De(e, t) {
|
|
if (e) {
|
|
if ("string" == typeof e) return Ne(e, t);
|
|
var n = {}.toString.call(e).slice(8, -1);
|
|
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Ne(e, t) : void 0
|
|
}
|
|
}
|
|
|
|
function Ne(e, t) {
|
|
(null == t || t > e.length) && (t = e.length);
|
|
for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n];
|
|
return r
|
|
}
|
|
|
|
function Le(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
|
|
function Fe(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
Le(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
Le(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}
|
|
var Be, Ue, Ge, $e = "https://cdn.joinhoney.com/gift-cards/index.html";
|
|
|
|
function He(e) {
|
|
for (var t = new ArrayBuffer(2 * e.length), n = new Uint16Array(t), r = 0, o = e.length; r < o; r += 1) n[r] = e.charCodeAt(r);
|
|
return t
|
|
}
|
|
|
|
function ze() {
|
|
return qe.apply(this, arguments)
|
|
}
|
|
|
|
function qe() {
|
|
return (qe = Fe(je().m(function e() {
|
|
return je().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, crypto.subtle.generateKey({
|
|
name: "AES-CBC",
|
|
length: 256
|
|
}, !0, ["encrypt", "decrypt"]);
|
|
case 1:
|
|
Be = e.v, Ue = crypto.getRandomValues(new Uint8Array(16)), Ge = {
|
|
name: "AES-CBC",
|
|
iv: Ue
|
|
};
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}))).apply(this, arguments)
|
|
}
|
|
|
|
function We(e) {
|
|
return Ve.apply(this, arguments)
|
|
}
|
|
|
|
function Ve() {
|
|
return (Ve = Fe(je().m(function e(t) {
|
|
var n, r, o, i;
|
|
return je().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return n = He(t), e.n = 1, crypto.subtle.decrypt(Ge, Be, n);
|
|
case 1:
|
|
return r = e.v, o = new TextDecoder, i = o.decode(r), e.a(2, i)
|
|
}
|
|
}, e)
|
|
}))).apply(this, arguments)
|
|
}
|
|
|
|
function Ye(e) {
|
|
var t = e.data,
|
|
n = (0, R.useRef)(!1),
|
|
r = (0, R.useRef)(),
|
|
o = (0, R.useRef)(function() {}),
|
|
i = (0, R.useRef)(document.querySelector("body")),
|
|
a = Me((0, R.useState)(null), 2),
|
|
s = a[0],
|
|
c = a[1],
|
|
u = Me((0, R.useState)(!1), 2),
|
|
l = u[0],
|
|
f = u[1],
|
|
d = Me((0, R.useState)(null), 2),
|
|
p = d[0],
|
|
h = d[1],
|
|
m = Me((0, R.useState)(null), 2),
|
|
g = m[0],
|
|
y = m[1],
|
|
v = Me((0, R.useState)(null), 2),
|
|
b = v[0],
|
|
_ = v[1];
|
|
|
|
function S() {
|
|
o.current(), fe.stopListening(), r.current.remove()
|
|
}
|
|
|
|
function w(e) {
|
|
var t = e.visible,
|
|
n = e.lockScrolling,
|
|
o = e.bodyStyle,
|
|
a = void 0 === o ? {} : o,
|
|
s = e.iframeStyle,
|
|
c = void 0 === s ? {} : s;
|
|
return Object.assign(i.current.style, Ae({
|
|
overflow: n ? "hidden" : "auto"
|
|
}, a)), Object.assign(r.current.style, Ae({
|
|
visibility: t ? "visible" : "hidden"
|
|
}, c)), !0
|
|
}
|
|
|
|
function O() {
|
|
return O = Fe(je().m(function e() {
|
|
var i, a, s;
|
|
return je().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, ze();
|
|
case 1:
|
|
return fe.setTarget(r.current.contentWindow, $e), fe.beginListening(function(e) {
|
|
return $e.match(new RegExp("^(".concat(e, ")")))
|
|
}), o.current = fe.bindResponders((Ce(Ce(Ce(Ce(Ce(Ce(Ce(Ce(Ce(Ce(i = {}, le.giftCardsReady, function() {
|
|
P.A.send("gift-cards-app:ready", {})
|
|
}), le.extensionSendSDataEvent, function() {
|
|
var e = Fe(je().m(function e(t) {
|
|
var n, r;
|
|
return je().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return n = t.eventName, r = Ie(t, Te), e.n = 1, he.A.sendEvent(n, r);
|
|
case 1:
|
|
return e.a(2, !0)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}()), le.extensionRemoveIFrame, S), le.extensionUpdateStyles, w), le.extensionExperimentsGetVariant, function(e) {
|
|
return E.A.getVariant(e.variantName)
|
|
}), le.extensionGetI18nMessage, function(e) {
|
|
return T.A.getMessage(e.messageName)
|
|
}), le.extensionSetIFrameAttribute, function(e) {
|
|
return r.current.setAttribute(e.attributeName, e.value), !0
|
|
}), le.extensionRemoveIFrameAttribute, function(e) {
|
|
return r.current.removeAttribute(e.attributeName), !0
|
|
}), le.extensionSetGiftCardsEnabledForUser, function(e) {
|
|
return F.A.updateSetting("honeyWallet", e.enabled ? 1 : 0)
|
|
}), le.extensionOpenLoginPrompt, function() {
|
|
return A.A.open({
|
|
pathname: "/gift-cards-auth",
|
|
query: {},
|
|
state: {},
|
|
force: !0,
|
|
feature: "gift-cards-auth",
|
|
surface: "popup"
|
|
})
|
|
}), Ce(Ce(Ce(Ce(Ce(Ce(Ce(Ce(Ce(Ce(i, le.extensionHideContentUI, function() {
|
|
return A.A.hide()
|
|
}), le.extensionGetCartPrice, Fe(je().m(function e() {
|
|
var t, n;
|
|
return je().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, B.A.getCurrent();
|
|
case 1:
|
|
return t = e.v, e.n = 2, it(t);
|
|
case 2:
|
|
return n = e.v, e.a(2, n)
|
|
}
|
|
}, e)
|
|
}))), le.extensionSetHoneyStorageItem, function() {
|
|
var e = Fe(je().m(function e(t) {
|
|
var n, r;
|
|
return je().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return n = t.key, r = t.value, e.n = 1, me.A.local.set(n, r);
|
|
case 1:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}()), le.extensionGetHoneyStorageItem, function() {
|
|
var e = Fe(je().m(function e(t) {
|
|
var n, r;
|
|
return je().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return n = t.key, e.n = 1, me.A.local.get(n).catch(function() {
|
|
return null
|
|
});
|
|
case 1:
|
|
return r = e.v, e.a(2, r)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}()), le.extensionRemoveHoneyStorageItem, function() {
|
|
var e = Fe(je().m(function e(t) {
|
|
var n, r;
|
|
return je().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return n = t.key, e.n = 1, me.A.local.del(n).catch(function() {
|
|
return null
|
|
});
|
|
case 1:
|
|
return r = e.v, e.a(2, r)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}()), le.extensionSetWindowLocalStorageItem, function() {
|
|
var e = Fe(je().m(function e(t) {
|
|
var n, r;
|
|
return je().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return n = t.key, r = t.value, e.n = 1, P.A.send("honey-pay-now:action:local-storage", {
|
|
action: te.f_.SET_LOCAL_STORAGE_ITEM,
|
|
data: {
|
|
key: n,
|
|
value: r
|
|
}
|
|
}, {
|
|
background: !0
|
|
});
|
|
case 1:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}()), le.extensionGetWindowLocalStorageItem, function() {
|
|
var e = Fe(je().m(function e(t) {
|
|
var n, r;
|
|
return je().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return n = t.key, e.n = 1, P.A.send("honey-pay-now:action:local-storage", {
|
|
action: te.f_.GET_LOCAL_STORAGE_ITEM,
|
|
data: {
|
|
key: n
|
|
}
|
|
}, {
|
|
background: !0
|
|
});
|
|
case 1:
|
|
return r = e.v, e.a(2, r)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}()), le.extensionRemoveWindowLocalStorageItem, function() {
|
|
var e = Fe(je().m(function e(t) {
|
|
var n, r;
|
|
return je().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return n = t.key, e.n = 1, P.A.send("honey-pay-now:action:local-storage", {
|
|
action: te.f_.REMOVE_LOCAL_STORAGE_ITEM,
|
|
data: {
|
|
key: n
|
|
}
|
|
}, {
|
|
background: !0
|
|
});
|
|
case 1:
|
|
return r = e.v, e.a(2, r)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}()), le.extensionGQLQuery, function() {
|
|
var e = Fe(je().m(function e(t) {
|
|
var n, r, o;
|
|
return je().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
if (n = t.requestData, !t.encrypted) {
|
|
e.n = 2;
|
|
break
|
|
}
|
|
return e.n = 1, We(t.requestData);
|
|
case 1:
|
|
r = e.v, n = JSON.parse(r);
|
|
case 2:
|
|
return e.n = 3, P.A.send("honey-pay-now:action:gql-query", {
|
|
action: te.f_.GQL_QUERY,
|
|
data: n
|
|
}, {
|
|
background: !0
|
|
});
|
|
case 3:
|
|
return o = e.v, e.a(2, o)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}()), le.extensionGQLMutation, function() {
|
|
var e = Fe(je().m(function e(t) {
|
|
var n, r, o;
|
|
return je().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
if (n = t.requestData, !t.encrypted) {
|
|
e.n = 2;
|
|
break
|
|
}
|
|
return e.n = 1, We(t.requestData);
|
|
case 1:
|
|
r = e.v, n = JSON.parse(r);
|
|
case 2:
|
|
return e.n = 3, P.A.send("honey-pay-now:action:gql-query", {
|
|
action: te.f_.GQL_MUTATION,
|
|
data: n
|
|
}, {
|
|
background: !0
|
|
});
|
|
case 3:
|
|
return o = e.v, e.a(2, o)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}()), Ce(Ce(Ce(Ce(i, le.extensionGetUserABGroup, Fe(je().m(function e() {
|
|
var t;
|
|
return je().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, F.A.getUserABGroup("auth");
|
|
case 1:
|
|
return t = e.v, e.a(2, t)
|
|
}
|
|
}, e)
|
|
}))), le.extensionGetI18nCountryCode, Fe(je().m(function e() {
|
|
var t;
|
|
return je().w(function(e) {
|
|
for (;;)
|
|
if (0 === e.n) return t = T.A.getCountryCode(), e.a(2, t)
|
|
}, e)
|
|
}))), le.extensionSetIsMinimized, function() {
|
|
var e = Fe(je().m(function e(t) {
|
|
var n, r, o, i;
|
|
return je().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
n = t.isMinimized, r = t.savings, o = t.goldAward, i = t.autoPopType, _(i), r && h(r), o && y(o), f(n);
|
|
case 1:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}()), le.extensionOpenGiftCardDealModal, Fe(je().m(function e() {
|
|
var t;
|
|
return je().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, B.A.getCurrent();
|
|
case 1:
|
|
t = e.v, B.A.tag(t.id, "extension_links", null, {
|
|
forceHidden: !0,
|
|
src: "GiftCardDealOpenModal"
|
|
});
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}))))), e.n = 2, crypto.subtle.exportKey("jwk", Be);
|
|
case 2:
|
|
return a = e.v, e.n = 3, fe.request(le.giftCardsInit, Ae(Ae({}, t), {}, {
|
|
jsonRequestKey: a,
|
|
requestIV: xe(Ue),
|
|
parentOrigin: window.location.origin
|
|
}));
|
|
case 3:
|
|
s = e.v, n.current = s;
|
|
case 4:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
})), O.apply(this, arguments)
|
|
}(0, R.useEffect)(function() {
|
|
Fe(je().m(function e() {
|
|
var t;
|
|
return je().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, ne.A.getFeatureFlag("gift_cards_use_remote_iframe");
|
|
case 1:
|
|
t = e.v, c(t);
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}))()
|
|
}, []), (0, R.useEffect)(function() {
|
|
return function() {
|
|
return S()
|
|
}
|
|
}, []), (0, R.useEffect)(function() {
|
|
function e(e) {
|
|
return t.apply(this, arguments)
|
|
}
|
|
|
|
function t() {
|
|
return t = Fe(je().m(function e(t) {
|
|
var n, r, o = arguments;
|
|
return je().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
r = (n = o.length > 1 && void 0 !== o[1] ? o[1] : {}) && n.action, e.n = r === te.f_.SET_PAY_NOW_MODAL_VISIBILITY ? 1 : r === te.f_.REMOVE_PAY_NOW_IFRAME ? 2 : 3;
|
|
break;
|
|
case 1:
|
|
return w({
|
|
visible: n.data.isVisible,
|
|
lockScrolling: n.data.isVisible
|
|
}), e.a(3, 4);
|
|
case 2:
|
|
return S(), e.a(3, 4);
|
|
case 3:
|
|
return e.a(3, 4);
|
|
case 4:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
})), t.apply(this, arguments)
|
|
}
|
|
|
|
function n(e, t) {
|
|
var n = t.user;
|
|
fe.request(le.giftCardsUserUpdate, n)
|
|
}
|
|
return P.A.addListener("honey-pay-now:action:ui", e), P.A.addListener("user:current:update", n),
|
|
function() {
|
|
P.A.removeListener("honey-pay-now:action:ui", e), P.A.removeListener("user:current:update", n)
|
|
}
|
|
}, []);
|
|
return null === s ? null : R.createElement(R.Fragment, null, l && R.createElement(Ee, {
|
|
autoPopType: b,
|
|
handleUnMinimize: function() {
|
|
fe.request(le.giftCardsSetIsMinimized, !1), f(!1, b)
|
|
},
|
|
goldAward: g,
|
|
savings: p
|
|
}), R.createElement("iframe", {
|
|
ref: r,
|
|
id: "giftcardsIFrame",
|
|
title: "Honey Pay Now",
|
|
src: $e,
|
|
className: null,
|
|
style: {
|
|
visibility: "hidden"
|
|
},
|
|
onLoad: function() {
|
|
return O.apply(this, arguments)
|
|
},
|
|
scrolling: "no"
|
|
}))
|
|
}
|
|
Ye.propTypes = {
|
|
data: pe().object
|
|
}, Ye.defaultProps = {
|
|
data: {}
|
|
};
|
|
const Je = Ye;
|
|
|
|
function Ke(e, t) {
|
|
return function(e) {
|
|
if (Array.isArray(e)) return e
|
|
}(e) || function(e, t) {
|
|
var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
|
|
if (null != n) {
|
|
var r, o, i, a, s = [],
|
|
c = !0,
|
|
u = !1;
|
|
try {
|
|
if (i = (n = n.call(e)).next, 0 === t) {
|
|
if (Object(n) !== n) return;
|
|
c = !1
|
|
} else
|
|
for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0);
|
|
} catch (e) {
|
|
u = !0, o = e
|
|
} finally {
|
|
try {
|
|
if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return
|
|
} finally {
|
|
if (u) throw o
|
|
}
|
|
}
|
|
return s
|
|
}
|
|
}(e, t) || function(e, t) {
|
|
if (e) {
|
|
if ("string" == typeof e) return Qe(e, t);
|
|
var n = {}.toString.call(e).slice(8, -1);
|
|
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Qe(e, t) : void 0
|
|
}
|
|
}(e, t) || function() {
|
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
|
|
}()
|
|
}
|
|
|
|
function Qe(e, t) {
|
|
(null == t || t > e.length) && (t = e.length);
|
|
for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n];
|
|
return r
|
|
}
|
|
|
|
function Xe() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return Ze(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (Ze(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Ze(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, Ze(f, "constructor", u), Ze(u, "constructor", c), c.displayName = "GeneratorFunction", Ze(u, o, "GeneratorFunction"), Ze(f), Ze(f, o, "Generator"), Ze(f, r, function() {
|
|
return this
|
|
}), Ze(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (Xe = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function Ze(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
Ze = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
Ze(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, Ze(e, t, n, r)
|
|
}
|
|
|
|
function et(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
|
|
function tt(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
et(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
et(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}
|
|
var nt = /[\d+][,.\d+]+/;
|
|
|
|
function rt(e) {
|
|
var t = e && e.match(nt);
|
|
if (t) return t[0]
|
|
}
|
|
|
|
function ot() {
|
|
return ot = tt(Xe().m(function e(t) {
|
|
var n, r, o, i = arguments;
|
|
return Xe().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return n = i.length > 1 && void 0 !== i[1] ? i[1] : 3e3, e.n = 1, f.A.waitForElement(t, {
|
|
timeout: n
|
|
});
|
|
case 1:
|
|
return r = e.v, o = rt(r.text()), e.a(2, f.A.cleanPrice(o))
|
|
}
|
|
}, e)
|
|
})), ot.apply(this, arguments)
|
|
}
|
|
|
|
function it(e) {
|
|
var t = function(e) {
|
|
return ot.apply(this, arguments)
|
|
}(e.metadata.honeyPayCartPriceSelector);
|
|
return t
|
|
}
|
|
|
|
function at(e) {
|
|
[].forEach(function(t) {
|
|
return P.A.send("honey-pay-now:action:".concat(t), {
|
|
action: te.f_.SET_CART_PRICE,
|
|
data: {
|
|
cartPrice: e
|
|
}
|
|
}, {
|
|
background: !0
|
|
})
|
|
})
|
|
}
|
|
|
|
function st(e) {
|
|
var t = function(e) {
|
|
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "body",
|
|
n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "",
|
|
r = document.querySelector("#".concat(e));
|
|
return r || ((r = document.createElement("div")).id = e, r.style.cssText = n, document.querySelector(t).appendChild(r)), r
|
|
}("honeyPayNowContainer");
|
|
M.render(R.createElement(Je, {
|
|
data: e
|
|
}), t)
|
|
}
|
|
|
|
function ct(e, t, n) {
|
|
return ut.apply(this, arguments)
|
|
}
|
|
|
|
function ut() {
|
|
return (ut = tt(Xe().m(function e(t, n, r) {
|
|
var o, i, a;
|
|
return Xe().w(function(e) {
|
|
for (;;) switch (e.p = e.n) {
|
|
case 0:
|
|
if (void 0 !== window.MutationObserver) {
|
|
e.n = 1;
|
|
break
|
|
}
|
|
return e.a(2);
|
|
case 1:
|
|
return o = new MutationObserver(tt(Xe().m(function e() {
|
|
var n, o;
|
|
return Xe().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, it(t);
|
|
case 1:
|
|
return n = e.v, e.n = 2, ne.A.getFeatureFlag("gift_cards_use_remote_iframe");
|
|
case 2:
|
|
if (!e.v) {
|
|
e.n = 3;
|
|
break
|
|
}
|
|
return o = U.A.getCurrent(), e.n = 3, fe.request(le.giftCardsCartPriceChange, {
|
|
cartPrice: n,
|
|
tabId: o.id,
|
|
prioritized: r,
|
|
storeId: t.id,
|
|
storeName: t.name
|
|
});
|
|
case 3:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}))), e.n = 2, f.A.waitForElement(n, {
|
|
timeout: 3e3
|
|
});
|
|
case 2:
|
|
return e.p = 2, e.n = 3, ne.A.getFeatureFlag("gift_card_deals_observe_body_for_total");
|
|
case 3:
|
|
i = e.v, a = i ? document.body : document.querySelector(n), o.observe(a, {
|
|
characterData: !0,
|
|
attributes: !1,
|
|
childList: !0,
|
|
subtree: !0
|
|
}), e.n = 5;
|
|
break;
|
|
case 4:
|
|
e.p = 4, e.v, I.A.error("Error attaching mutation observer for store ".concat(t.id, " with selector ").concat(n));
|
|
case 5:
|
|
return e.a(2)
|
|
}
|
|
}, e, null, [
|
|
[2, 4]
|
|
])
|
|
}))).apply(this, arguments)
|
|
}
|
|
|
|
function lt(e) {
|
|
var t = e.allPageTypes;
|
|
return Z.isPaymentsViewPrioritized(t)
|
|
}
|
|
|
|
function ft(e) {
|
|
return dt.apply(this, arguments)
|
|
}
|
|
|
|
function dt() {
|
|
return (dt = tt(Xe().m(function e(t) {
|
|
var n, r, o, i, a;
|
|
return Xe().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, Promise.all([ee.A.getReminder(t), L.A.get("honey-pay-now:gift-card-deal-reminder:".concat(t))]);
|
|
case 1:
|
|
return n = e.v, r = Ke(n, 2), o = r[0], i = r[1], a = null, i && (a = i.isGiftcardTipEngaged), e.a(2, !(!o && !a))
|
|
}
|
|
}, e)
|
|
}))).apply(this, arguments)
|
|
}
|
|
|
|
function pt(e, t) {
|
|
return ht.apply(this, arguments)
|
|
}
|
|
|
|
function ht() {
|
|
return (ht = tt(Xe().m(function e(t, n) {
|
|
var r, o;
|
|
return Xe().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return r = U.A.getCurrent(), e.n = 1, ft(t.id);
|
|
case 1:
|
|
return o = e.v, e.n = 2, fe.request(le.giftCardsFindSavingsClosed, {
|
|
cartPrice: n,
|
|
tabId: r.id,
|
|
prioritized: !0,
|
|
storeId: t.id,
|
|
storeName: t.name,
|
|
isReminderSet: o
|
|
});
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}))).apply(this, arguments)
|
|
}
|
|
P.A.addListener("current:product", function() {
|
|
var e = tt(Xe().m(function e(t, n) {
|
|
var r, o, i, a, s, c, u, l;
|
|
return Xe().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return r = n.data, e.n = 1, U.A.getCurrent();
|
|
case 1:
|
|
o = e.v, i = o.id, a = r.partialObservation, s = a.price, c = a.url, u = r.productId, l = N()(s).value(), L.A.set("honey-pay-now:product:".concat(c, ":").concat(i), {
|
|
productPrice: l,
|
|
productId: u
|
|
});
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t, n) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}()), P.A.addListener("honey-pay-now:action:ui", function(e, t) {
|
|
switch (t && t.action) {
|
|
case te.f_.SET_PAY_NOW_CARD_VISIBILITY:
|
|
return A.A.open({
|
|
pathname: "/honey-pay-now-card",
|
|
query: {},
|
|
state: {
|
|
cardData: t.data.cardData
|
|
},
|
|
force: !0,
|
|
feature: "honey-pay-now-card",
|
|
surface: "popup"
|
|
});
|
|
case te.f_.OPEN_PAY_NOW_AUTOPOP:
|
|
return A.A.open({
|
|
pathname: "/honey-pay-now-autopop",
|
|
query: {},
|
|
state: t.data,
|
|
force: !0,
|
|
feature: "honey-pay-now-autopop",
|
|
surface: "popup"
|
|
});
|
|
default:
|
|
throw new InvalidParametersError("Invalid action")
|
|
}
|
|
}), Promise.all([new Promise(function(e) {
|
|
P.A.addListener("gift-cards-app:ready", function() {
|
|
return e()
|
|
})
|
|
}), new Promise(function(e) {
|
|
P.A.addListener("find-savings:closed", function() {
|
|
return e()
|
|
})
|
|
})]).then(tt(Xe().m(function e() {
|
|
var t, n;
|
|
return Xe().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, B.A.getCurrent();
|
|
case 1:
|
|
if ((t = e.v).id) {
|
|
e.n = 2;
|
|
break
|
|
}
|
|
return e.a(2);
|
|
case 2:
|
|
return e.n = 3, it(t);
|
|
case 3:
|
|
if (n = e.v) {
|
|
e.n = 4;
|
|
break
|
|
}
|
|
return e.a(2);
|
|
case 4:
|
|
return e.n = 5, ne.A.getFeatureFlag("gift_cards_use_remote_iframe");
|
|
case 5:
|
|
if (!e.v) {
|
|
e.n = 6;
|
|
break
|
|
}
|
|
return e.n = 6, pt(t, n);
|
|
case 6:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}))).catch(function() {
|
|
return ""
|
|
}), P.A.addListener("find-savings:complete", tt(Xe().m(function e() {
|
|
var t, n;
|
|
return Xe().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, B.A.getCurrent();
|
|
case 1:
|
|
if ((t = e.v).id) {
|
|
e.n = 2;
|
|
break
|
|
}
|
|
return e.a(2);
|
|
case 2:
|
|
return e.n = 3, it(t);
|
|
case 3:
|
|
if (n = e.v) {
|
|
e.n = 4;
|
|
break
|
|
}
|
|
return e.a(2);
|
|
case 4:
|
|
return e.n = 5, ne.A.getFeatureFlag("gift_cards_use_remote_iframe");
|
|
case 5:
|
|
if (!e.v) {
|
|
e.n = 6;
|
|
break
|
|
}
|
|
return e.n = 6, pt(t, n);
|
|
case 6:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
})));
|
|
var mt = 0;
|
|
P.A.addListener("pageDetected:PAYMENTS", function() {
|
|
var e = tt(Xe().m(function e(t, n) {
|
|
var r, o, i, a, s, c, u, l, f, d;
|
|
return Xe().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
if (r = n.data, !((o = Date.now()) - mt < 5e3)) {
|
|
e.n = 1;
|
|
break
|
|
}
|
|
return e.a(2);
|
|
case 1:
|
|
mt = o;
|
|
case 2:
|
|
return e.n = 3, B.A.getCurrent();
|
|
case 3:
|
|
if ((i = e.v).id) {
|
|
e.n = 4;
|
|
break
|
|
}
|
|
return e.a(2);
|
|
case 4:
|
|
return e.n = 5, it(i);
|
|
case 5:
|
|
if (a = e.v) {
|
|
e.n = 6;
|
|
break
|
|
}
|
|
return e.a(2);
|
|
case 6:
|
|
return e.n = 7, ne.A.getFeatureFlag("gift_cards_use_remote_iframe");
|
|
case 7:
|
|
if (!e.v) {
|
|
e.n = 14;
|
|
break
|
|
}
|
|
return e.n = 8, lt(r);
|
|
case 8:
|
|
return s = e.v, e.n = 9, O.A.getDeviceId();
|
|
case 9:
|
|
return c = e.v, e.n = 10, ft(i.id);
|
|
case 10:
|
|
return u = e.v, e.n = 11, T.A.getCountryCode();
|
|
case 11:
|
|
return l = e.v, e.n = 12, T.A.getUILanguage();
|
|
case 12:
|
|
return f = e.v, e.n = 13, F.A.getInfo();
|
|
case 13:
|
|
d = e.v, at(a), ct(i, i.metadata.honeyPayCartPriceSelector, s);
|
|
try {
|
|
st({
|
|
storeId: i.id,
|
|
deviceId: c,
|
|
browser: "ch",
|
|
extVersion: "18.2.1",
|
|
cartPrice: a,
|
|
prioritized: s,
|
|
isReminderSet: u,
|
|
language: f,
|
|
country: l,
|
|
user: d
|
|
})
|
|
} catch (e) {
|
|
I.A.error("Error loading Honey Pay iframe: ".concat(e))
|
|
}
|
|
case 14:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t, n) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}());
|
|
var gt = n(21344),
|
|
yt = n(93744),
|
|
vt = (n(91256), n(57503)),
|
|
bt = (n(21733), n(81213));
|
|
const _t = {
|
|
getExtensionID: function() {
|
|
return bt.A.getExtensionID()
|
|
},
|
|
connect: function(e, t) {
|
|
return bt.A.connect(e, t)
|
|
},
|
|
addOnConnectListener: function(e) {
|
|
return bt.A.addOnConnectListener(e)
|
|
},
|
|
removeOnConnnectListener: function(e) {
|
|
return bt.A.removeOnConnnectListener(e)
|
|
}
|
|
};
|
|
n(61985);
|
|
var St = n(6120),
|
|
wt = n(46529),
|
|
Ot = n(2317),
|
|
Et = n(70481),
|
|
kt = n(50618),
|
|
Tt = n(2481),
|
|
xt = n(79973),
|
|
It = n(35826),
|
|
Pt = n(67004),
|
|
At = n(31234),
|
|
Ct = n(63610),
|
|
jt = (0, Ot.Mz)(Et.VH.selectCurrentStore(), Tt.zA.selectCurrentStoreSession(), function(e, t) {
|
|
return B.A.isBlockingCDNLogic(e, t)
|
|
}),
|
|
Rt = (0, Ot.Mz)(Et.VH.selectCurrentStore(), function(e) {
|
|
return e.tips && e.tips.configuration && e.tips.configuration.blacklistDefaultLaunchpadPathnameByStoreId
|
|
}, function(e) {
|
|
return e && (arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : []).includes(e.id)
|
|
}),
|
|
Mt = (0, Ot.Mz)(function(e) {
|
|
return Et.VH.selectCurrentStore()(e)
|
|
}, function(e) {
|
|
return !!(e && e.tipsConfig && e.tipsConfig.isLaunchpadDisabled)
|
|
}),
|
|
Dt = (0, Ot.Mz)(function(e) {
|
|
return Et.VH.selectCurrentStore()(e)
|
|
}, function(e) {
|
|
return !!(e && e.tipsConfig && e.tipsConfig.isPdpDisabled)
|
|
}),
|
|
Nt = (0, Ot.Mz)(Et.VH.selectCurrentStore(), function(e) {
|
|
return e.tips && e.tips.configuration && e.tips.configuration.blacklistedDynamicUrlsByStoreId
|
|
}, function(e, t) {
|
|
var n = (e || {}).id;
|
|
if (t && t[n]) {
|
|
var r = window && window.location && window.location.href;
|
|
if ((t[n] || []).some(function(e) {
|
|
return r.startsWith(e)
|
|
})) return !0
|
|
}
|
|
return !1
|
|
}),
|
|
Lt = (0, Ot.Mz)(Et.VH.selectCurrentStore(), function(e) {
|
|
return e.tips && e.tips.configuration && e.tips.configuration.blacklistedStaticUrlsByStoreId
|
|
}, function(e, t) {
|
|
var n = (e || {}).id;
|
|
if (t && t[n]) {
|
|
var r = window && window.location && window.location.href;
|
|
if ((t[n] || []).includes(r)) return !0
|
|
}
|
|
return !1
|
|
}),
|
|
Ft = (0, Ot.Mz)(Et.VH.selectCurrentStore(), function(e) {
|
|
return e.tips && e.tips.configuration && e.tips.configuration.allowlistDynamicUrlsByStoreId
|
|
}, function(e) {
|
|
return e.tips && e.tips.configuration && e.tips.configuration.allowlistStaticUrlsByStoreId
|
|
}, function(e, t, n) {
|
|
var r = e && e.id,
|
|
o = !1,
|
|
i = window && window.location && window.location.href;
|
|
if (t && t[r]) {
|
|
if ((t[r] || []).some(function(e) {
|
|
return i.startsWith(e)
|
|
})) return !0;
|
|
o = !0
|
|
}
|
|
if (n && n[r]) {
|
|
if ((n[r] || []).includes(i)) return !0;
|
|
o = !0
|
|
}
|
|
return !o
|
|
}),
|
|
Bt = (0, Ot.Mz)(xt.v_.selectDeviceSetting("tipsLoggedOutDisabled"), kt.Ax.selectSetting("tipsEnabled"), kt.Ax.selectUser(), function(e, t, n) {
|
|
return n && n.isLoggedIn ? !!t ? {
|
|
tipsEnabledByUser: !0
|
|
} : void 0 === t ? {
|
|
tipsEnabledByUser: !1,
|
|
reason: "tips_enabled_undefined"
|
|
} : {
|
|
tipsEnabledByUser: !1,
|
|
reason: "tips_enabled_false"
|
|
} : e ? {
|
|
tipsEnabledByUser: !1,
|
|
reason: "tips_logged_out_disabled"
|
|
} : {
|
|
tipsEnabledByUser: !0
|
|
}
|
|
}),
|
|
Ut = (0, Ot.Mz)(function(e) {
|
|
return Pt.kF.selectVariant(H.vE.TIPS_SHOWING_GROUP)(e)
|
|
}, function(e) {
|
|
return "control" === e
|
|
});
|
|
const Gt = {
|
|
selectCanRunTips: (0, Ot.Mz)(It.im.selectIsHomePage, It.im.selectIsProductPage, jt, Rt, Mt, Nt, Lt, xt.v_.selectIsFirstPageAfterInstall(), Et.VH.selectCurrentStoreStandDown, Ft, Dt, Ut, Bt, function(e) {
|
|
var t = (Et.VH.selectCurrentStore()(e) || {}).id,
|
|
n = Date.now(),
|
|
r = function(e) {
|
|
return function(t) {
|
|
if (!e) return null;
|
|
var n = (0, Ct.p)(e);
|
|
return xt.v_.selectDeviceSetting(n)(t)
|
|
}
|
|
}(t)(e),
|
|
o = r && n < r,
|
|
i = n < (xt.v_.selectDeviceSetting(At.I)(e) || !1),
|
|
a = n < (xt.v_.selectDeviceSetting(At.l)(e) || !1),
|
|
s = function(e) {
|
|
var t = kt.Ax.selectUser()(e);
|
|
if (!t || !t.isLoggedIn) return xt.v_.selectDeviceSetting("tipsLoggedOutDisabled")(e) ? {
|
|
tipsEnabledByUser: !1,
|
|
reason: "tips_logged_out_disabled"
|
|
} : {
|
|
tipsEnabledByUser: !0
|
|
};
|
|
var n, r = kt.Ax.selectSetting("tipsEnabled"),
|
|
o = !!r;
|
|
return o || (n = void 0 === r ? "tips_enabled_undefined" : "tips_enabled_false"), {
|
|
tipsEnabledByUser: o,
|
|
reason: n
|
|
}
|
|
}(e),
|
|
c = s.tipsEnabledByUser,
|
|
u = s.reason;
|
|
return {
|
|
suppressed: o || i || a || !c,
|
|
reason: a ? "snoozed_for_day" : o ? "snoozed_for_store" : i ? "snoozed_for_all" : c ? "" : u
|
|
}
|
|
}, function(e, t, n, r, o, i, a, s, c, u, l, f, d, p) {
|
|
var h = c.standDown,
|
|
m = d.tipsEnabledByUser,
|
|
g = d.reason,
|
|
y = p.suppressed,
|
|
v = p.reason,
|
|
b = [];
|
|
return n && b.push(wt.Ue.BLOCKING_CDN), ["nopopup", "suspend"].includes(h) && b.push(wt.Ue.STAND_DOWN), e || t || b.push(wt.Ue.INVALID_PAGE_TYPE), f && b.push(wt.Ue.HOLDOUT_GROUP), m || b.push(wt.Ue.DISABLED_BY_USER), y && b.push(wt.Ue.SUPPRESSED), i && b.push(wt.Ue.DYNAMIC_URL_BLACKLISTED), a && b.push(wt.Ue.STATIC_URL_BLACKLISTED), e && (r && b.push(wt.Ue.DEFAULT_LAUNCHPAD_PATH_BLACKLISTED), o && b.push(wt.Ue.STORE_LAUNCHPAD_DISABLED), s && b.push(wt.Ue.FIRST_PAGE_AFTER_INSTALL), u || b.push(wt.Ue.CANT_SHOW_LAUNCHPAD_WITH_ALLOW_LIST)), t && l && b.push(wt.Ue.STORE_PDP_DISABLED), {
|
|
canRunTips: 0 === b.length,
|
|
hideReasons: b,
|
|
suppressionReason: v,
|
|
disabledByUserReason: g
|
|
}
|
|
})
|
|
};
|
|
var $t = n(96532),
|
|
Ht = n(5350),
|
|
zt = n(5735),
|
|
qt = null,
|
|
Wt = function() {
|
|
return function(e, t) {
|
|
clearTimeout(qt), qt = setTimeout(function() {
|
|
var n = (0, zt.A)(t()),
|
|
r = It.im.selectMostRecentPageId()(t());
|
|
n.length || (I.A.debug("honeyTips:events: canRunTips but no tips appeared after timeout of ".concat($t.x, "ms")), e(It.vt.setTipsTimedOut({
|
|
pageId: r,
|
|
tipsTimedOut: !0
|
|
})), e((0, Ht.f)({
|
|
event: "hide",
|
|
action: null
|
|
})))
|
|
}, $t.x)
|
|
}
|
|
},
|
|
Vt = function() {
|
|
return function() {
|
|
return clearTimeout(qt)
|
|
}
|
|
},
|
|
Yt = n(20989),
|
|
Jt = n(70364),
|
|
Kt = n.n(Jt),
|
|
Qt = n(23649),
|
|
Xt = n(33118);
|
|
const Zt = function() {
|
|
return function(e, t) {
|
|
var n = It.im.selectMostRecentPageId()(t()),
|
|
r = Kt()();
|
|
e(Qt.Qq.loadContainer({
|
|
containerId: r
|
|
})), e(It.vt.setContainerId({
|
|
pageId: n,
|
|
containerId: r
|
|
})), e((0, Xt.F)({
|
|
event: "pre-init"
|
|
})), e((0, Xt.F)({
|
|
event: "init"
|
|
}))
|
|
}
|
|
};
|
|
var en = n(28992),
|
|
tn = n(89773),
|
|
nn = n(64287),
|
|
rn = n(36836),
|
|
on = new Set(Object.values(wt.PB)),
|
|
an = new Set,
|
|
sn = function(e) {
|
|
return e.every(function(e) {
|
|
return !on.has(e)
|
|
})
|
|
},
|
|
cn = function() {
|
|
return function(e) {
|
|
e((0, rn.h)({
|
|
debugEvent: "funnel",
|
|
action: "not_shown"
|
|
}))
|
|
}
|
|
},
|
|
un = function(e) {
|
|
return function(t, n) {
|
|
var r = en.Og.selectCurrentProductOffer(n());
|
|
if (r) {
|
|
var o = (0, nn.fN)(n()),
|
|
i = JSON.stringify({
|
|
product: o,
|
|
offer: r
|
|
});
|
|
t((0, rn.h)({
|
|
debugEvent: "offers_miss_rate",
|
|
action: e,
|
|
metadataJson: i
|
|
}))
|
|
}
|
|
}
|
|
},
|
|
ln = function(e) {
|
|
var t = e.canRunTips,
|
|
n = e.hideReasons,
|
|
r = void 0 === n ? [] : n,
|
|
o = e.disabledByUserReason,
|
|
i = e.suppressionReason;
|
|
return function(e, n) {
|
|
var a = "honeyTips:sendTipsVisibilitySdata: ",
|
|
s = It.im.selectCurrentPageId()(n());
|
|
if (!an.has(s)) {
|
|
an.add(s);
|
|
var c = Pt.kF.selectCurrentTipsContainerVariant(n()),
|
|
u = It.im.selectIsCurrentPageLaunchpad()(n()) && sn(r);
|
|
if (sn(r)) {
|
|
var l = JSON.stringify({
|
|
funnelForLaunchpad: u
|
|
});
|
|
e((0, rn.h)({
|
|
debugEvent: "funnel",
|
|
action: "should_show_container",
|
|
metadataJson: l
|
|
}))
|
|
}
|
|
if (t) e(function(e, t) {
|
|
var n = It.im.selectIsCurrentPageLaunchpad()(t()),
|
|
r = tn.n2.selectHasPreOpened(t());
|
|
if (n && r) {
|
|
var o = tn.n2.selectPreOpenPathname(t());
|
|
e((0, Ht.f)({
|
|
event: "hide_collision",
|
|
collisionPathname: o
|
|
}))
|
|
}
|
|
});
|
|
else {
|
|
if (function(e) {
|
|
return sn(e) && e.includes(wt.Ue.HOLDOUT_GROUP)
|
|
}(r)) return I.A.debug("".concat(a, "Hiding tips because user is in holdout group.")), e((0, Ht.f)({
|
|
event: "hide_holdout"
|
|
})), e(un("tips_available_holdout")), void e(cn());
|
|
if (function(e) {
|
|
return sn(e) && e.includes(wt.Ue.DISABLED_BY_USER)
|
|
}(r)) return I.A.debug("".concat(a, "Tips disabled by user.")), e((0, Ht.f)({
|
|
event: o ? "hide_disable:".concat(o) : "hide_disable",
|
|
group: "launch_v:".concat(c)
|
|
})), e(un("tips_available_disable")), void e(cn());
|
|
if (function(e) {
|
|
return sn(e) && e.includes(wt.Ue.SUPPRESSED)
|
|
}(r)) return I.A.debug("".concat(a, "Tips suppressed by user.")), e((0, Ht.f)({
|
|
event: i ? "hide_snooze:".concat(i) : "hide_snooze",
|
|
group: "launch_v:".concat(c)
|
|
})), e(un("tips_available_suppress")), void e(cn());
|
|
e((0, rn.h)({
|
|
debugEvent: "funnel",
|
|
action: "should_not_show_container",
|
|
metadataJson: JSON.stringify({
|
|
isValidLaunchpadPage: u
|
|
})
|
|
}));
|
|
var f = It.im.selectIsProductPage(n()),
|
|
d = Pt.kF.selectIsStandaloneOffer(n());
|
|
f && d && e((0, Ht.f)({
|
|
event: "hide",
|
|
group: "autopop_displayed"
|
|
}))
|
|
}
|
|
}
|
|
}
|
|
},
|
|
fn = n(471),
|
|
dn = n(19550),
|
|
pn = n(25513),
|
|
hn = n(36927);
|
|
|
|
function mn(e) {
|
|
return mn = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, mn(e)
|
|
}
|
|
|
|
function gn(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function yn(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != mn(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != mn(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == mn(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
const vn = function() {
|
|
return function(e, t) {
|
|
var n = (0, hn.A)(t()),
|
|
r = n.id;
|
|
n.ready ? (e(Qt.Qq.refreshContainer({
|
|
containerId: r
|
|
})), e((0, Xt.F)({
|
|
event: "refresh"
|
|
}))) : (e(Qt.Qq.readyContainer({
|
|
containerId: r
|
|
})), e((0, Xt.F)({
|
|
event: "ready"
|
|
})));
|
|
var o = (0, fn.ec)(t()),
|
|
i = (0, fn.Wt)(t()),
|
|
a = dn.IE.selectCurrentTopPickSavings(t());
|
|
if (o && e((0, rn.q)({
|
|
action: "topSavingsLessThanDollar",
|
|
topPickSavings: a,
|
|
ifTopSavingsLessThanDollarOn: o
|
|
}, {
|
|
skipSessionCheck: !0
|
|
})), !1 === i) {
|
|
var s = (0, pn.A)()(t());
|
|
e((0, rn.q)(function(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? gn(Object(n), !0).forEach(function(t) {
|
|
yn(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : gn(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}({
|
|
action: "MissingCanonicalClusterId"
|
|
}, s), {
|
|
skipSessionCheck: !0
|
|
}))
|
|
}
|
|
}
|
|
};
|
|
var bn = n(47408);
|
|
|
|
function _n() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return Sn(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (Sn(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Sn(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, Sn(f, "constructor", u), Sn(u, "constructor", c), c.displayName = "GeneratorFunction", Sn(u, o, "GeneratorFunction"), Sn(f), Sn(f, o, "Generator"), Sn(f, r, function() {
|
|
return this
|
|
}), Sn(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (_n = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function Sn(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
Sn = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
Sn(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, Sn(e, t, n, r)
|
|
}
|
|
|
|
function wn(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
|
|
function On(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
wn(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
wn(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}
|
|
var En = [H.vE.STANDALONE_OFFERS, H.vE.TIPS_SHOWING_GROUP],
|
|
kn = {};
|
|
const Tn = function() {
|
|
return function() {
|
|
var e = On(_n().m(function e(t, n) {
|
|
var r, o, i, a, s, c;
|
|
return _n().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
if (r = It.im.selectMostRecentPageId()(n()), !kn[r]) {
|
|
e.n = 1;
|
|
break
|
|
}
|
|
return e.a(2, kn[r]);
|
|
case 1:
|
|
return o = t(Et.md.load()), i = function() {
|
|
var e = On(_n().m(function e() {
|
|
return _n().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, o;
|
|
case 1:
|
|
return e.n = 2, t(Tt.qL.loadStoreSession());
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function() {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}(), a = i(), s = function() {
|
|
var e = On(_n().m(function e() {
|
|
return _n().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, Promise.allSettled([o, a]);
|
|
case 1:
|
|
return e.n = 2, t(bn.E4.load());
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function() {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}(), c = Promise.allSettled([t(xt.A0.loadDeviceSettings()), t(xt.A0.loadIsFirstPageAfterInstall()), t(Pt.QC.loadVariants(En)), t(kt.Xp.load()), t(kt.Xp.loadSettings()), t(Qt.Qq.loadConfiguration()), o, a, s()]), kn[r] = c, e.a(2, c)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t, n) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}()
|
|
};
|
|
var xn = function(e) {
|
|
return ["PRODUCT", "SHOPIFY_PRODUCT_PAGE", "SHOPIFY_WHERE_AM_I", "WHERE_AM_I"].includes(e)
|
|
},
|
|
In = function(e) {
|
|
return ["HOMEPAGE"].includes(e)
|
|
},
|
|
Pn = function(e, t) {
|
|
return new URL(e).href.startsWith(new URL(t).href)
|
|
};
|
|
const An = function(e) {
|
|
var t = ((0, hn.A)(e) || {}).id;
|
|
if (!t) return !1;
|
|
var n = It.im.selectMostRecentPageId()(e);
|
|
return t === (It.im.selectPageByPageId(n)(e) || {}).containerId
|
|
};
|
|
var Cn = n(3659),
|
|
jn = n(29490),
|
|
Rn = n(8004),
|
|
Mn = n(42528),
|
|
Dn = n(76255),
|
|
Nn = n(95872),
|
|
Ln = n(85831),
|
|
Fn = n(3371),
|
|
Bn = n(54277),
|
|
Un = n(30840),
|
|
Gn = n(81870),
|
|
$n = n(13917),
|
|
Hn = n(43869),
|
|
zn = n(93800),
|
|
qn = n(65645),
|
|
Wn = n(69408),
|
|
Vn = n(84993),
|
|
Yn = n(97555);
|
|
|
|
function Jn(e) {
|
|
return Jn = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, Jn(e)
|
|
}
|
|
|
|
function Kn() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return Qn(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (Qn(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Qn(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, Qn(f, "constructor", u), Qn(u, "constructor", c), c.displayName = "GeneratorFunction", Qn(u, o, "GeneratorFunction"), Qn(f), Qn(f, o, "Generator"), Qn(f, r, function() {
|
|
return this
|
|
}), Qn(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (Kn = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function Qn(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
Qn = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
Qn(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, Qn(e, t, n, r)
|
|
}
|
|
|
|
function Xn(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function Zn(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? Xn(Object(n), !0).forEach(function(t) {
|
|
er(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Xn(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function er(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != Jn(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != Jn(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == Jn(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
|
|
function tr(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
var nr = "honeyTips:loadPL2GoTipData: ",
|
|
rr = "honey_checkout_paypal_vcc_pdp_enabled",
|
|
or = "honey_checkout_paypal_vcc_enabled";
|
|
const ir = function() {
|
|
return function() {
|
|
var e = function(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
tr(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
tr(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}(Kn().m(function e(t, n) {
|
|
var r, o, i, a, s, c, u, l, f, d, p, h, m, g, v, b, _, S, w, O, E;
|
|
return Kn().w(function(e) {
|
|
for (;;) switch (e.p = e.n) {
|
|
case 0:
|
|
return t(Vn.an.reset()), r = Yn.fL.selectCurrentGenericPageProduct(n()), o = (0, nn.fN)(n()), i = Et.VH.selectCurrentStore()(n()), a = (o || r || {}).lastPrice, c = (s = i || {}).currencyCode, u = s.id, e.n = 1, (0, Hn.qY)();
|
|
case 1:
|
|
l = e.v, t(Vn.an.setCheckoutEligibilityState(l)), f = a && a > 0 ? (a / 100).toFixed(2) : void 0, d = (0, Wn.A)(n()), e.n = 2;
|
|
break;
|
|
case 2:
|
|
if (!f) {
|
|
e.n = 3;
|
|
break
|
|
}
|
|
if (!(a < 3e3 || a > 15e4)) {
|
|
e.n = 3;
|
|
break
|
|
}
|
|
return (0, qn.ax)(Zn(Zn({}, d), {}, {
|
|
action: qn.hr.USER_INELIGIBLE,
|
|
subAction: a < 3e3 ? qn.U9.AMOUNT_TOO_LOW : qn.U9.AMOUNT_TOO_HIGH
|
|
})), I.A.debug("".concat(nr, "Out of required price range")), e.a(2);
|
|
case 3:
|
|
return e.n = 4, t(Mn.Jq.loadFeatures([rr, or]));
|
|
case 4:
|
|
if (p = Mn.HL.selectFeatureByName(rr)(n()), h = Mn.HL.selectFeatureByName(or)(n()), ![p, h].some(function(e) {
|
|
return !e
|
|
})) {
|
|
e.n = 5;
|
|
break
|
|
}
|
|
return m = qn.U9.VCC_PDP_DISABLED, h || (m = qn.U9.VCC_DISABLED), (0, qn.ax)(Zn(Zn({}, d), {}, {
|
|
action: qn.hr.USER_INELIGIBLE,
|
|
subAction: m
|
|
})), I.A.debug("".concat(nr, "Required feature flag not met")), e.a(2);
|
|
case 5:
|
|
if (g = !1, e.p = 6, !u) {
|
|
e.n = 9;
|
|
break
|
|
}
|
|
return e.n = 7, (0, Hn.te)($n.ld.devToolsEnabled);
|
|
case 7:
|
|
return v = e.v, e.n = 8, (0, y.G)(u, v);
|
|
case 8:
|
|
b = e.v, g = b && (b.checkoutTypes || []).includes($n.YO.VCC) && b.pl2goPdp;
|
|
case 9:
|
|
e.n = 11;
|
|
break;
|
|
case 10:
|
|
e.p = 10, E = e.v, I.A.error("PL2Go PDP - store config error: ".concat(E));
|
|
case 11:
|
|
if (g) {
|
|
e.n = 12;
|
|
break
|
|
}
|
|
return (0, qn.ax)(Zn(Zn({}, d), {}, {
|
|
action: qn.hr.USER_INELIGIBLE,
|
|
subAction: qn.U9.MERCHANT_DISABLED
|
|
})), I.A.debug("".concat(nr, "Required store config not met")), e.a(2);
|
|
case 12:
|
|
return e.n = 13, (0, zn.Il)({
|
|
amountValue: f,
|
|
currencyCode: c,
|
|
timeout: 3e3
|
|
});
|
|
case 13:
|
|
if (_ = e.v, S = (0, zn.Kj)(_), w = S.invalidReason, S.isValid) {
|
|
e.n = 14;
|
|
break
|
|
}
|
|
return (0, qn.ax)(Zn(Zn({}, d), {}, {
|
|
action: qn.hr.USER_INELIGIBLE,
|
|
subAction: qn.U9.PRESENTMENT_UNAVAILABLE
|
|
})), I.A.debug("".concat(nr).concat(w)), e.a(2);
|
|
case 14:
|
|
O = kt.Ax.selectUser()(n()), (0, qn.ax)(Zn(Zn({}, d), {}, {
|
|
action: qn.hr.USER_ELIGIBLE,
|
|
subAction: (0, qn.wC)(O, f)
|
|
})), t(Vn.an.setValidatedPL2GoResponse(S));
|
|
case 15:
|
|
return e.a(2)
|
|
}
|
|
}, e, null, [
|
|
[6, 10]
|
|
])
|
|
}));
|
|
return function(t, n) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}()
|
|
};
|
|
|
|
function ar() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return sr(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (sr(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, sr(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, sr(f, "constructor", u), sr(u, "constructor", c), c.displayName = "GeneratorFunction", sr(u, o, "GeneratorFunction"), sr(f), sr(f, o, "Generator"), sr(f, r, function() {
|
|
return this
|
|
}), sr(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (ar = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function sr(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
sr = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
sr(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, sr(e, t, n, r)
|
|
}
|
|
|
|
function cr(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
|
|
function ur(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
cr(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
cr(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}
|
|
var lr = [Gn.x0, H.vE.STANDALONE_OFFERS, H.vE.TIPS_SHOWING_GROUP, Cn.nc, Cn.PU, Cn.fB, Cn.s$, Cn.Di, Cn.L5],
|
|
fr = ["ext_paypal_tip_enabled", "tips_is_autopop_suppression_respected", "offers_show_gold_value", "tips_main_tip_pay_in_four_enabled"];
|
|
const dr = function(e) {
|
|
return function() {
|
|
var t = ur(ar().m(function t(n, r) {
|
|
var o, i, a, s, c, u, l, f, d, p, h, m, g, y;
|
|
return ar().w(function(t) {
|
|
for (;;) switch (t.n) {
|
|
case 0:
|
|
return o = n(Et.md.load()), i = n(Mn.Jq.loadFeatures(fr)), a = n(kt.Xp.load()), s = n(Tt.qL.loadGlobalSessionId()), c = function() {
|
|
var e = ur(ar().m(function e() {
|
|
return ar().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, n(Pt.QC.loadVariants(lr));
|
|
case 1:
|
|
lr.forEach(function(e) {
|
|
return E.A.trackImpression(e)
|
|
});
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function() {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}(), u = function() {
|
|
var e = ur(ar().m(function e() {
|
|
var t, o, i;
|
|
return ar().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, a;
|
|
case 1:
|
|
if (t = kt.Ax.selectUser()(r()), o = t.id, i = t.isLoggedIn, !i) {
|
|
e.n = 2;
|
|
break
|
|
}
|
|
return e.n = 2, n(kt.Xp.getUserFollow(o));
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function() {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}(), l = function() {
|
|
var e = ur(ar().m(function e() {
|
|
var t, i;
|
|
return ar().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, Promise.all([o, a]);
|
|
case 1:
|
|
if (t = Et.VH.selectCurrentStore()(r()) || {}, !((i = kt.Ax.selectUser()(r()) || {}).isLoggedIn && i.id && t.storeId && t.isDoubleGold)) {
|
|
e.n = 2;
|
|
break
|
|
}
|
|
return e.n = 2, n(kt.Xp.getDoubleGoldActivationsByUserId(i.id));
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function() {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}(), f = function() {
|
|
var e = ur(ar().m(function e() {
|
|
return ar().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, o;
|
|
case 1:
|
|
return e.n = 2, n(kt.Xp.loadSessionCountForCurrentStore());
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function() {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}(), d = function() {
|
|
var e = ur(ar().m(function e() {
|
|
return ar().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, s;
|
|
case 1:
|
|
return e.n = 2, n((0, Un.A)());
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function() {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}(), p = function() {
|
|
var e = ur(ar().m(function e() {
|
|
return ar().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, o;
|
|
case 1:
|
|
n(Qt.Qq.loadTipsShown());
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function() {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}(), h = function() {
|
|
var e = ur(ar().m(function e() {
|
|
return ar().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, o;
|
|
case 1:
|
|
return e.n = 2, n(Bn.QS.loadStoreInsights());
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function() {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}(), m = function() {
|
|
var e = ur(ar().m(function e() {
|
|
return ar().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, o;
|
|
case 1:
|
|
return e.n = 2, n(Rn.Vp.loadStats());
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function() {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}(), g = function() {
|
|
var e = ur(ar().m(function e() {
|
|
return ar().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, i;
|
|
case 1:
|
|
return e.n = 2, n(Nn.f1.load());
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function() {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}(), y = function() {
|
|
var t = ur(ar().m(function t() {
|
|
var i, s, c, u;
|
|
return ar().w(function(t) {
|
|
for (;;) switch (t.n) {
|
|
case 0:
|
|
if (e) {
|
|
t.n = 1;
|
|
break
|
|
}
|
|
return t.a(2);
|
|
case 1:
|
|
return i = function() {
|
|
var e = ur(ar().m(function e() {
|
|
return ar().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, a;
|
|
case 1:
|
|
return e.n = 2, n(en.Ru.loadEligibility());
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function() {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}(), s = i(), c = function() {
|
|
var e = ur(ar().m(function e() {
|
|
return ar().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, s;
|
|
case 1:
|
|
n(en.Ru.loadStoreOffer());
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function() {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}(), t.n = 2, Promise.allSettled([o, a]);
|
|
case 2:
|
|
return u = Et.VH.selectCurrentStoreId()(r()), t.n = 3, Promise.allSettled([n(en.Ru.loadLaunchpadOffersConfiguration()), c(), n(Ln.qg.loadSaleAlert()), g(), n(Fn.Ip.loadStoreDeals()), n(Dn.Ji.loadByProduct({
|
|
product: {
|
|
storeId: u
|
|
},
|
|
subSrc: "tips"
|
|
}))]);
|
|
case 3:
|
|
return t.a(2)
|
|
}
|
|
}, t)
|
|
}));
|
|
return function() {
|
|
return t.apply(this, arguments)
|
|
}
|
|
}(), t.n = 1, Promise.allSettled([o, a, c(), i, n(jn._o.checkForAdblock()), s, n(tn.e5.loadLanguage()), n(Qt.Qq.loadDeprioritization()), n(Qt.Qq.loadTipsAndCategories()), n(ir()), u(), l(), f(), d(), p(), h(), m(), y(), n(kt.Xp.loadIsQuantumLeapEligible())]);
|
|
case 1:
|
|
return t.a(2)
|
|
}
|
|
}, t)
|
|
}));
|
|
return function(e, n) {
|
|
return t.apply(this, arguments)
|
|
}
|
|
}()
|
|
};
|
|
|
|
function pr() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return hr(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (hr(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, hr(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, hr(f, "constructor", u), hr(u, "constructor", c), c.displayName = "GeneratorFunction", hr(u, o, "GeneratorFunction"), hr(f), hr(f, o, "Generator"), hr(f, r, function() {
|
|
return this
|
|
}), hr(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (pr = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function hr(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
hr = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
hr(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, hr(e, t, n, r)
|
|
}
|
|
|
|
function mr(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
const gr = function(e) {
|
|
var t = e.pageType,
|
|
n = e.isGeneric;
|
|
return function() {
|
|
var e = function(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
mr(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
mr(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}(pr().m(function e(r, o) {
|
|
var i, a, s, c, u, l, f, d, p, h, m, g, y, v, b;
|
|
return pr().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
if (r(Vt()), i = It.im.selectMostRecentPageId()(o()), r(It.vt.addPageType({
|
|
pageType: t,
|
|
pageId: i
|
|
})), r(It.vt.setIsGeneric({
|
|
isGeneric: n,
|
|
pageId: i
|
|
})), a = It.im.selectPageTypesByPageId(i)(o()) || [], s = a.some(In), c = a.some(xn), !s && !c) {
|
|
e.n = 1;
|
|
break
|
|
}
|
|
return e.n = 1, r(Tn());
|
|
case 1:
|
|
if (u = Gt.selectCanRunTips(o()), l = u.canRunTips, f = u.hideReasons, d = u.disabledByUserReason, p = u.suppressionReason, r(ln({
|
|
canRunTips: l,
|
|
hideReasons: f,
|
|
disabledByUserReason: d,
|
|
suppressionReason: p
|
|
})), l) {
|
|
e.n = 2;
|
|
break
|
|
}
|
|
return r(It.vt.updateCurrentPage()), h = (f || []).join(", "), I.A.debug("honeyTips:events:cantRunTips reasons: ".concat(h)), (0, Yt.Sv)(), e.a(2);
|
|
case 2:
|
|
if (m = It.im.selectCurrentPageId()(o()), g = It.im.selectPendingPageId()(o()), y = It.im.selectPageTypesByPageId(m)(o()) || [], v = It.im.selectPageTypesByPageId(g)(o()) || [], b = y.some(xn), !(c && (!b || g !== m) || s)) {
|
|
e.n = 3;
|
|
break
|
|
}
|
|
return e.n = 3, r(It.vt.updateCurrentPage());
|
|
case 3:
|
|
if (null !== g && Pn(m, g) && !v.includes("HOMEPAGE") && vt.Ay.triggerPageType("HOMEPAGE", {}, !0), (0, Yt.SG)()) {
|
|
e.n = 5;
|
|
break
|
|
}
|
|
return An(o()) || r(Zt()), (0, Yt.BW)(), e.n = 4, r(dr(s));
|
|
case 4:
|
|
s && r(vn());
|
|
case 5:
|
|
r(Wt());
|
|
case 6:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t, n) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}()
|
|
};
|
|
const yr = function() {
|
|
wt.g$.map(function(e) {
|
|
return P.A.addListener("pageDetected:".concat(e), function(t) {
|
|
var n = "GENERIC" === (arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}).data;
|
|
St.A.dispatch(gr({
|
|
pageType: e,
|
|
isGeneric: n
|
|
}))
|
|
})
|
|
})
|
|
};
|
|
var vr = n(50769),
|
|
br = n(92685),
|
|
_r = n(38402),
|
|
Sr = n(43623),
|
|
wr = n(32451),
|
|
Or = n(73158),
|
|
Er = n(94861);
|
|
|
|
function kr() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return Tr(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (Tr(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Tr(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, Tr(f, "constructor", u), Tr(u, "constructor", c), c.displayName = "GeneratorFunction", Tr(u, o, "GeneratorFunction"), Tr(f), Tr(f, o, "Generator"), Tr(f, r, function() {
|
|
return this
|
|
}), Tr(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (kr = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function Tr(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
Tr = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
Tr(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, Tr(e, t, n, r)
|
|
}
|
|
|
|
function xr(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
var Ir = function() {
|
|
var e = function(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
xr(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
xr(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}(kr().m(function e(t, n) {
|
|
var r, o, i, a, s;
|
|
return kr().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
if (r = (0, nn.fN)(n()) || {}, o = r.parentId, !o) {
|
|
e.n = 1;
|
|
break
|
|
}
|
|
return e.n = 1, t(Rn.Vp.loadTopProductCoupon({
|
|
parentId: o
|
|
}));
|
|
case 1:
|
|
i = (0, Er.t)(n()), a = i.coupon, s = (0, Er.x)(n()), a && s && t((0, rn.h)({
|
|
debugEvent: "invalid_coupon_stats",
|
|
action: "invalid_coupon_stats",
|
|
metadata_json: JSON.stringify({
|
|
source: "extension",
|
|
couponStats: a,
|
|
referrerUrl: "".concat(window.location.origin).concat(window.location.pathname)
|
|
})
|
|
}));
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t, n) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}();
|
|
|
|
function Pr() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return Ar(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (Ar(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Ar(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, Ar(f, "constructor", u), Ar(u, "constructor", c), c.displayName = "GeneratorFunction", Ar(u, o, "GeneratorFunction"), Ar(f), Ar(f, o, "Generator"), Ar(f, r, function() {
|
|
return this
|
|
}), Ar(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (Pr = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function Ar(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
Ar = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
Ar(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, Ar(e, t, n, r)
|
|
}
|
|
|
|
function Cr(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
|
|
function jr(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
Cr(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
Cr(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}
|
|
const Rr = function(e) {
|
|
return function() {
|
|
var t = jr(Pr().m(function t(n, r) {
|
|
var o, i, a, s, c, u;
|
|
return Pr().w(function(t) {
|
|
for (;;) switch (t.n) {
|
|
case 0:
|
|
if (e) {
|
|
t.n = 1;
|
|
break
|
|
}
|
|
return t.a(2);
|
|
case 1:
|
|
return o = e.parentId, i = e.productId, a = function() {
|
|
var t = jr(Pr().m(function t() {
|
|
return Pr().w(function(t) {
|
|
for (;;) switch (t.n) {
|
|
case 0:
|
|
return t.n = 1, n(en.Ru.loadProductOffer(e));
|
|
case 1:
|
|
en.Og.selectCurrentProductOffer(r()) && n(vn());
|
|
case 2:
|
|
return t.a(2)
|
|
}
|
|
}, t)
|
|
}));
|
|
return function() {
|
|
return t.apply(this, arguments)
|
|
}
|
|
}(), s = n(_r.td.loadProductByProductId(i)), c = function() {
|
|
var e = jr(Pr().m(function e() {
|
|
return Pr().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, s;
|
|
case 1:
|
|
return e.n = 2, n(wr.fS.loadProductByProductId(i));
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function() {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}(), u = function() {
|
|
var t = jr(Pr().m(function t() {
|
|
var o, i;
|
|
return Pr().w(function(t) {
|
|
for (;;) switch (t.n) {
|
|
case 0:
|
|
return t.n = 1, s;
|
|
case 1:
|
|
if (o = _r.GF.selectByProductId(e.productId)(r()) || {}, i = Pt.kF.selectVariant(Gn.x0)(r()), !(0, Or.A)(i)) {
|
|
t.n = 2;
|
|
break
|
|
}
|
|
return t.n = 2, n(dn.zK.loadCanonicalProducts({
|
|
product: e,
|
|
catalogProduct: o
|
|
}));
|
|
case 2:
|
|
return t.a(2)
|
|
}
|
|
}, t)
|
|
}));
|
|
return function() {
|
|
return t.apply(this, arguments)
|
|
}
|
|
}(), t.n = 2, Promise.allSettled([a(), s, c(), u(), n(Ir), n(dn.zK.loadWebPriceComparisonViewed({
|
|
parentId: o
|
|
})), n(Sr.XY.loadDroplistAndCollectionsByVimProduct(e)), n(Dn.Ji.loadByProduct({
|
|
product: e,
|
|
subSrc: "tips"
|
|
})), n(Nn.f1.load()), n(Pt.QC.loadVariant(Cn.PU))]);
|
|
case 2:
|
|
return t.a(2)
|
|
}
|
|
}, t)
|
|
}));
|
|
return function(e, n) {
|
|
return t.apply(this, arguments)
|
|
}
|
|
}()
|
|
};
|
|
const Mr = function() {
|
|
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
|
|
return function(t) {
|
|
var n = It.im.selectMostRecentPageId()(t),
|
|
r = _r.GF.selectCurrentCatalogProduct(t) || {},
|
|
o = It.im.selectContainerIdByPageId(n)(t),
|
|
i = Qt.fc.selectContainerByContainerId(o)(t) || {},
|
|
a = e.productId === r.productId,
|
|
s = !!i.ready;
|
|
return a && s
|
|
}
|
|
};
|
|
|
|
function Dr() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return Nr(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (Nr(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Nr(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, Nr(f, "constructor", u), Nr(u, "constructor", c), c.displayName = "GeneratorFunction", Nr(u, o, "GeneratorFunction"), Nr(f), Nr(f, o, "Generator"), Nr(f, r, function() {
|
|
return this
|
|
}), Nr(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (Dr = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function Nr(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
Nr = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
Nr(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, Nr(e, t, n, r)
|
|
}
|
|
|
|
function Lr(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
const Fr = function(e) {
|
|
return function() {
|
|
var t = function(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
Lr(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
Lr(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}(Dr().m(function t(n, r) {
|
|
var o, i, a, s;
|
|
return Dr().w(function(t) {
|
|
for (;;) switch (t.n) {
|
|
case 0:
|
|
if (e && !Mr(e)(r())) {
|
|
t.n = 1;
|
|
break
|
|
}
|
|
return t.a(2);
|
|
case 1:
|
|
return o = It.im.selectCurrentPageId()(r()), i = (0, nn.JE)(o)(r()) || {}, i.parentId === e.parentId || An(r()) ? (a = It.im.selectContainerIdByPageId(o)(r()), s = It.im.selectMostRecentPageId()(r()), n(Qt.Qq.setLoading({
|
|
containerId: a
|
|
})), n(It.vt.setContainerId({
|
|
containerId: a,
|
|
pageId: s
|
|
}))) : n(Zt()), n(It.vt.updateCurrentPage()), t.n = 2, n(Rr(e));
|
|
case 2:
|
|
n(vn());
|
|
case 3:
|
|
return t.a(2)
|
|
}
|
|
}, t)
|
|
}));
|
|
return function(e, n) {
|
|
return t.apply(this, arguments)
|
|
}
|
|
}()
|
|
};
|
|
var Br = n(64055);
|
|
const Ur = function() {
|
|
return function(e) {
|
|
var t = It.im.selectMostRecentPageId()(e),
|
|
n = br.XK.selectProductByPageId(t)(e),
|
|
r = Br.dK.selectProductByPageId(t)(e);
|
|
return {
|
|
vimProduct: n,
|
|
waiProduct: r,
|
|
isProductIdMatch: (null == n ? void 0 : n.productId) === (null == r ? void 0 : r.productId),
|
|
isParentIdMatch: (null == n ? void 0 : n.parentId) === (null == r ? void 0 : r.parentId)
|
|
}
|
|
}
|
|
};
|
|
|
|
function Gr(e) {
|
|
return Gr = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, Gr(e)
|
|
}
|
|
|
|
function $r(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function Hr(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? $r(Object(n), !0).forEach(function(t) {
|
|
zr(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : $r(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function zr(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != Gr(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != Gr(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == Gr(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
const qr = function(e) {
|
|
return function(t, n) {
|
|
var r = Hr(Hr({}, Ur()(n())), e);
|
|
he.A.sendEvent("tip004037", r), I.A.debug(function(e) {
|
|
var t = "TIPS_PRODUCT:".concat(e.event);
|
|
return t + (e.action ? ":".concat(e.action) : "")
|
|
}(r), r)
|
|
}
|
|
};
|
|
|
|
function Wr() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return Vr(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (Vr(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Vr(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, Vr(f, "constructor", u), Vr(u, "constructor", c), c.displayName = "GeneratorFunction", Vr(u, o, "GeneratorFunction"), Vr(f), Vr(f, o, "Generator"), Vr(f, r, function() {
|
|
return this
|
|
}), Vr(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (Wr = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function Vr(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
Vr = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
Vr(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, Vr(e, t, n, r)
|
|
}
|
|
|
|
function Yr(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
const Jr = function() {
|
|
return function() {
|
|
var e = function(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
Yr(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
Yr(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}(Wr().m(function e(t, n) {
|
|
var r, o, i;
|
|
return Wr().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
r = Ur()(n()), o = r.vimProduct, i = r.waiProduct, o && i && t(qr({
|
|
event: "productCompare"
|
|
}));
|
|
case 1:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t, n) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}()
|
|
};
|
|
|
|
function Kr() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return Qr(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (Qr(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Qr(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, Qr(f, "constructor", u), Qr(u, "constructor", c), c.displayName = "GeneratorFunction", Qr(u, o, "GeneratorFunction"), Qr(f), Qr(f, o, "Generator"), Qr(f, r, function() {
|
|
return this
|
|
}), Qr(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (Kr = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function Qr(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
Qr = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
Qr(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, Qr(e, t, n, r)
|
|
}
|
|
|
|
function Xr(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
|
|
function Zr(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
Xr(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
Xr(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}
|
|
var eo = function() {
|
|
return function() {
|
|
var e = Zr(Kr().m(function e(t, n) {
|
|
var r;
|
|
return Kr().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, t(Pt.QC.loadVariant(Gn.x0));
|
|
case 1:
|
|
return r = Pt.kF.selectVariant(Gn.x0)(n()), e.a(2, r === Gn.ut.WAI_ENABLED_PF_DISABLED)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t, n) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}()
|
|
};
|
|
const to = function(e) {
|
|
return function() {
|
|
var t = Zr(Kr().m(function t(n, r) {
|
|
var o;
|
|
return Kr().w(function(t) {
|
|
for (;;) switch (t.n) {
|
|
case 0:
|
|
return t.n = 1, n(eo());
|
|
case 1:
|
|
if (!t.v) {
|
|
t.n = 2;
|
|
break
|
|
}
|
|
return I.A.debug("".concat("honeyTips:handleVimProduct: ", "VIM fetcher handling is disabled.")), t.a(2);
|
|
case 2:
|
|
return o = It.im.selectMostRecentPageId()(r()), n(br.Qm.productFetched({
|
|
pageId: o,
|
|
product: e
|
|
})), t.n = 3, n(Fr(e));
|
|
case 3:
|
|
return t.n = 4, n(Jr());
|
|
case 4:
|
|
return t.a(2)
|
|
}
|
|
}, t)
|
|
}));
|
|
return function(e, n) {
|
|
return t.apply(this, arguments)
|
|
}
|
|
}()
|
|
};
|
|
|
|
function no() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return ro(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (ro(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, ro(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, ro(f, "constructor", u), ro(u, "constructor", c), c.displayName = "GeneratorFunction", ro(u, o, "GeneratorFunction"), ro(f), ro(f, o, "Generator"), ro(f, r, function() {
|
|
return this
|
|
}), ro(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (no = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function ro(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
ro = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
ro(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, ro(e, t, n, r)
|
|
}
|
|
|
|
function oo(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
const io = function() {
|
|
P.A.addListener("droplist:update", function() {
|
|
var e = function(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
oo(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
oo(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}(no().m(function e(t) {
|
|
var n, r, o, i, a, s, c = arguments;
|
|
return no().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
if (r = (n = c.length > 1 && void 0 !== c[1] ? c[1] : {}).type, o = n.product, i = void 0 === o ? {} : o, "productFetcher" !== r || !0 !== i.imprint) {
|
|
e.n = 1;
|
|
break
|
|
}
|
|
return a = Et.VH.selectCurrentStoreId()(St.A.getState()), s = (0, vr.tY)(i, a), e.n = 1, St.A.dispatch(to(s));
|
|
case 1:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}())
|
|
};
|
|
|
|
function ao() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return so(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (so(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, so(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, so(f, "constructor", u), so(u, "constructor", c), c.displayName = "GeneratorFunction", so(u, o, "GeneratorFunction"), so(f), so(f, o, "Generator"), so(f, r, function() {
|
|
return this
|
|
}), so(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (ao = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function so(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
so = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
so(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, so(e, t, n, r)
|
|
}
|
|
|
|
function co(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
const uo = function() {
|
|
P.A.addListener("current:product", function() {
|
|
var e = function(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
co(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
co(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}(ao().m(function e(t) {
|
|
var n, r, o, i, a = arguments;
|
|
return ao().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
n = (a.length > 1 && void 0 !== a[1] ? a[1] : {}).data, r = void 0 === n ? {} : n, o = Et.VH.selectCurrentStoreId()(St.A.getState()), i = (0, vr.Oo)(r, o), St.A.dispatch(to(i));
|
|
case 1:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}())
|
|
};
|
|
const lo = function() {
|
|
return function(e, t) {
|
|
var n = (0, hn.A)(t()).id;
|
|
e(Qt.Qq.refreshContainer({
|
|
containerId: n
|
|
})), e((0, Xt.F)({
|
|
event: "update"
|
|
}))
|
|
}
|
|
};
|
|
|
|
function fo() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return po(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (po(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, po(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, po(f, "constructor", u), po(u, "constructor", c), c.displayName = "GeneratorFunction", po(u, o, "GeneratorFunction"), po(f), po(f, o, "Generator"), po(f, r, function() {
|
|
return this
|
|
}), po(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (fo = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function po(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
po = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
po(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, po(e, t, n, r)
|
|
}
|
|
|
|
function ho(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
const mo = function(e) {
|
|
return function() {
|
|
var t = function(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
ho(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
ho(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}(fo().m(function t(n) {
|
|
return fo().w(function(t) {
|
|
for (;;) switch (t.n) {
|
|
case 0:
|
|
if (e) {
|
|
t.n = 1;
|
|
break
|
|
}
|
|
return t.a(2);
|
|
case 1:
|
|
return t.n = 2, Promise.allSettled([n(Sr.XY.loadDroplistAndCollectionsByGenericProduct(e)), n(Dn.Ji.loadByProduct({
|
|
product: e,
|
|
subSrc: "tips"
|
|
}))]);
|
|
case 2:
|
|
return t.a(2)
|
|
}
|
|
}, t)
|
|
}));
|
|
return function(e) {
|
|
return t.apply(this, arguments)
|
|
}
|
|
}()
|
|
};
|
|
|
|
function go() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return yo(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (yo(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, yo(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, yo(f, "constructor", u), yo(u, "constructor", c), c.displayName = "GeneratorFunction", yo(u, o, "GeneratorFunction"), yo(f), yo(f, o, "Generator"), yo(f, r, function() {
|
|
return this
|
|
}), yo(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (go = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function yo(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
yo = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
yo(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, yo(e, t, n, r)
|
|
}
|
|
|
|
function vo(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
const bo = function() {
|
|
return function() {
|
|
var e = function(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
vo(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
vo(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}(go().m(function e(t, n) {
|
|
var r, o, i, a, s, c, u, l, f, d;
|
|
return go().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
if (r = Gt.selectCanRunTips(n()), r.canRunTips) {
|
|
e.n = 1;
|
|
break
|
|
}
|
|
return e.a(2);
|
|
case 1:
|
|
return o = It.im.selectCurrentPageId()(n()), i = It.im.selectPageTypesByPageId(o)(n()) || [], a = i.some(In), s = i.some(xn), c = [t(dr(a))], u = It.im.selectIsGenericByPageId(o)(n()), s && !u ? (l = (0, nn.JE)(o)(n())) && c.push(t(Rr(l))) : u && (f = Yn.fL.selectGenericProductByPageId(o)(n())) && c.push(t(mo(f))), e.n = 2, Promise.allSettled(c);
|
|
case 2:
|
|
d = (0, hn.A)(n()) || {}, d.ready && t(lo());
|
|
case 3:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t, n) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}()
|
|
};
|
|
|
|
function _o() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return So(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (So(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, So(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, So(f, "constructor", u), So(u, "constructor", c), c.displayName = "GeneratorFunction", So(u, o, "GeneratorFunction"), So(f), So(f, o, "Generator"), So(f, r, function() {
|
|
return this
|
|
}), So(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (_o = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function So(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
So = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
So(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, So(e, t, n, r)
|
|
}
|
|
|
|
function wo(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
const Oo = function() {
|
|
P.A.addListener("user:current:update", function() {
|
|
var e = function(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
wo(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
wo(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}(_o().m(function e(t) {
|
|
var n, r, o, i, a, s = arguments;
|
|
return _o().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
if (n = (s.length > 1 && void 0 !== s[1] ? s[1] : {}).user, r = void 0 === n ? {} : n, o = St.A.getState(), i = kt.Ax.selectUser()(o), a = i && r && i.isLoggedIn === r.isLoggedIn && i.id === r.id, I.A.debug("honeyTips:userListener should update:".concat(!a, " ")), !!a) {
|
|
e.n = 1;
|
|
break
|
|
}
|
|
return e.n = 1, St.A.dispatch(bo());
|
|
case 1:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}())
|
|
};
|
|
|
|
function Eo() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return ko(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (ko(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, ko(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, ko(f, "constructor", u), ko(u, "constructor", c), c.displayName = "GeneratorFunction", ko(u, o, "GeneratorFunction"), ko(f), ko(f, o, "Generator"), ko(f, r, function() {
|
|
return this
|
|
}), ko(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (Eo = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function ko(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
ko = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
ko(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, ko(e, t, n, r)
|
|
}
|
|
|
|
function To(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
const xo = function(e) {
|
|
return function() {
|
|
var t = function(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
To(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
To(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}(Eo().m(function t(n, r) {
|
|
var o, i, a, s, c, u;
|
|
return Eo().w(function(t) {
|
|
for (;;) switch (t.n) {
|
|
case 0:
|
|
return t.n = 1, n(Tn());
|
|
case 1:
|
|
if (o = Gt.selectCanRunTips(r()), o.canRunTips) {
|
|
t.n = 2;
|
|
break
|
|
}
|
|
return t.a(2);
|
|
case 2:
|
|
if (i = It.im.selectMostRecentPageId()(r()), a = It.im.selectIsGenericPage(r()), s = a && !An(r()), a) {
|
|
t.n = 3;
|
|
break
|
|
}
|
|
return t.a(2);
|
|
case 3:
|
|
return n(Yn.ox.productFetched({
|
|
pageId: i,
|
|
product: e
|
|
})), s ? n(Zt()) : (c = It.im.selectCurrentPageId()(r()), u = It.im.selectContainerIdByPageId(c)(r()), n(It.vt.setContainerId({
|
|
containerId: u,
|
|
pageId: i
|
|
}))), n(It.vt.updateCurrentPage()), t.n = 4, n(mo(e));
|
|
case 4:
|
|
n(vn());
|
|
case 5:
|
|
return t.a(2)
|
|
}
|
|
}, t)
|
|
}));
|
|
return function(e, n) {
|
|
return t.apply(this, arguments)
|
|
}
|
|
}()
|
|
};
|
|
|
|
function Io() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return Po(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (Po(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Po(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, Po(f, "constructor", u), Po(u, "constructor", c), c.displayName = "GeneratorFunction", Po(u, o, "GeneratorFunction"), Po(f), Po(f, o, "Generator"), Po(f, r, function() {
|
|
return this
|
|
}), Po(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (Io = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function Po(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
Po = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
Po(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, Po(e, t, n, r)
|
|
}
|
|
|
|
function Ao(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
const Co = function() {
|
|
P.A.addListener("current:product:generic", function() {
|
|
var e = function(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
Ao(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
Ao(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}(Io().m(function e(t) {
|
|
var n, r, o, i, a = arguments;
|
|
return Io().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
n = (a.length > 1 && void 0 !== a[1] ? a[1] : {}).data, r = void 0 === n ? {} : n, o = Et.VH.selectCurrentStoreId()(St.A.getState()), i = (0, vr.MC)(r, o), St.A.dispatch(xo(i));
|
|
case 1:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}())
|
|
};
|
|
|
|
function jo() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return Ro(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (Ro(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Ro(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, Ro(f, "constructor", u), Ro(u, "constructor", c), c.displayName = "GeneratorFunction", Ro(u, o, "GeneratorFunction"), Ro(f), Ro(f, o, "Generator"), Ro(f, r, function() {
|
|
return this
|
|
}), Ro(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (jo = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function Ro(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
Ro = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
Ro(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, Ro(e, t, n, r)
|
|
}
|
|
|
|
function Mo(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
const Do = function() {
|
|
return function() {
|
|
var e = function(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
Mo(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
Mo(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}(jo().m(function e(t, n) {
|
|
var r;
|
|
return jo().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, t(Ir);
|
|
case 1:
|
|
r = (0, hn.A)(n()) || {}, r.ready && t(lo());
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t, n) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}()
|
|
};
|
|
|
|
function No() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return Lo(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (Lo(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Lo(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, Lo(f, "constructor", u), Lo(u, "constructor", c), c.displayName = "GeneratorFunction", Lo(u, o, "GeneratorFunction"), Lo(f), Lo(f, o, "Generator"), Lo(f, r, function() {
|
|
return this
|
|
}), Lo(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (No = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function Lo(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
Lo = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
Lo(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, Lo(e, t, n, r)
|
|
}
|
|
|
|
function Fo(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
|
|
function Bo(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
Fo(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
Fo(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}
|
|
const Uo = function() {
|
|
P.A.addListener("honeyTips:pdpCoupons:honeyProductCoupons:init", Bo(No().m(function e() {
|
|
return No().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
St.A.dispatch(Do());
|
|
case 1:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
})))
|
|
};
|
|
const Go = function() {
|
|
P.A.addListener("ui:action", function(e, t) {
|
|
St.A.dispatch(tn.e5.addAction(t))
|
|
})
|
|
};
|
|
var $o = n(87888);
|
|
|
|
function Ho() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return zo(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (zo(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, zo(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, zo(f, "constructor", u), zo(u, "constructor", c), c.displayName = "GeneratorFunction", zo(u, o, "GeneratorFunction"), zo(f), zo(f, o, "Generator"), zo(f, r, function() {
|
|
return this
|
|
}), zo(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (Ho = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function zo(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
zo = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
zo(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, zo(e, t, n, r)
|
|
}
|
|
|
|
function qo(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
var Wo = "honeyTips:handleOptimusProduct: ",
|
|
Vo = "tips_use_optimus_product";
|
|
const Yo = function(e) {
|
|
return function() {
|
|
var t = function(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
qo(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
qo(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}(Ho().m(function t(n, r) {
|
|
var o;
|
|
return Ho().w(function(t) {
|
|
for (;;) switch (t.n) {
|
|
case 0:
|
|
return t.n = 1, n(Mn.Jq.loadFeatures([Vo]));
|
|
case 1:
|
|
if (Mn.HL.selectFeatureByName(Vo)(r())) {
|
|
t.n = 2;
|
|
break
|
|
}
|
|
return I.A.debug("".concat(Wo, "Feature '").concat(Vo, "' is disabled. Returning early.")), t.a(2);
|
|
case 2:
|
|
if (o = It.im.selectMostRecentPageId()(r()), n($o.j.loadProductByPageId({
|
|
pageId: o,
|
|
product: e
|
|
})), !!!br.XK.selectProductByPageId(o)(r())) {
|
|
t.n = 3;
|
|
break
|
|
}
|
|
return I.A.debug("".concat(Wo, "VIM product is available, which is more likely to be accurate. Returning early.")), t.a(2);
|
|
case 3:
|
|
return t.n = 4, n(Fr(e));
|
|
case 4:
|
|
return t.a(2)
|
|
}
|
|
}, t)
|
|
}));
|
|
return function(e, n) {
|
|
return t.apply(this, arguments)
|
|
}
|
|
}()
|
|
};
|
|
|
|
function Jo() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return Ko(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (Ko(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Ko(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, Ko(f, "constructor", u), Ko(u, "constructor", c), c.displayName = "GeneratorFunction", Ko(u, o, "GeneratorFunction"), Ko(f), Ko(f, o, "Generator"), Ko(f, r, function() {
|
|
return this
|
|
}), Ko(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (Jo = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function Ko(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
Ko = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
Ko(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, Ko(e, t, n, r)
|
|
}
|
|
|
|
function Qo(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
const Xo = function() {
|
|
P.A.addListener("optimus:productDetected", function() {
|
|
var e = function(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
Qo(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
Qo(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}(Jo().m(function e(t, n) {
|
|
var r, o, i, a;
|
|
return Jo().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
r = (n || {}).data, o = void 0 === r ? {} : r, i = Et.VH.selectCurrentStoreId()(St.A.getState()), a = (0, vr.EF)(o, i), St.A.dispatch(Yo(a));
|
|
case 1:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t, n) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}())
|
|
},
|
|
Zo = {
|
|
pageDetectionListener: yr,
|
|
v4FetcherListener: io,
|
|
v5FetcherListener: uo,
|
|
userListener: Oo,
|
|
genericFetcherListener: Co,
|
|
productCouponsListener: Uo,
|
|
uiActionsListener: Go,
|
|
optimusProductListener: Xo
|
|
};
|
|
const ei = function() {
|
|
return function(e) {
|
|
e(Vt()), e(It.vt.pageInit())
|
|
}
|
|
};
|
|
|
|
function ti() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return ni(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (ni(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, ni(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, ni(f, "constructor", u), ni(u, "constructor", c), c.displayName = "GeneratorFunction", ni(u, o, "GeneratorFunction"), ni(f), ni(f, o, "Generator"), ni(f, r, function() {
|
|
return this
|
|
}), ni(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (ti = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function ni(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
ni = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
ni(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, ni(e, t, n, r)
|
|
}
|
|
|
|
function ri(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
var oi = function() {
|
|
var e = function(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
ri(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
ri(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}(ti().m(function e() {
|
|
return ti().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, (0, vt.sT)();
|
|
case 1:
|
|
St.A.dispatch(ei()), e.n = 0;
|
|
break;
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function() {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}();
|
|
const ii = oi;
|
|
|
|
function ai() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return si(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (si(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, si(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, si(f, "constructor", u), si(u, "constructor", c), c.displayName = "GeneratorFunction", si(u, o, "GeneratorFunction"), si(f), si(f, o, "Generator"), si(f, r, function() {
|
|
return this
|
|
}), si(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (ai = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function si(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
si = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
si(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, si(e, t, n, r)
|
|
}
|
|
|
|
function ci(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
const ui = function() {
|
|
return function() {
|
|
var e = function(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
ci(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
ci(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}(ai().m(function e(t) {
|
|
return ai().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return t(It.vt.pageInit()), e.n = 1, Promise.all([t(Et.md.load()), t(Pt.QC.loadVariant(Gn.x0)), t(xt.A0.loadScreenviewId()), t(Qt.Qq.loadSendTipsDebugEventsFlag()), t(Mn.Jq.loadFeatures(Object.values(Gn.jt)))]);
|
|
case 1:
|
|
t((0, rn.h)({
|
|
action: "init",
|
|
debugEvent: "funnel"
|
|
}));
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}()
|
|
};
|
|
|
|
function li() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return fi(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (fi(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, fi(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, fi(f, "constructor", u), fi(u, "constructor", c), c.displayName = "GeneratorFunction", fi(u, o, "GeneratorFunction"), fi(f), fi(f, o, "Generator"), fi(f, r, function() {
|
|
return this
|
|
}), fi(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (li = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function fi(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
fi = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
fi(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, fi(e, t, n, r)
|
|
}
|
|
|
|
function di(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
var pi = function() {
|
|
var e = function(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
di(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
di(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}(li().m(function e() {
|
|
var t, n, r, o, i, a, s;
|
|
return li().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, St.A.dispatch(ui());
|
|
case 1:
|
|
t = Zo.v4FetcherListener, n = Zo.v5FetcherListener, r = Zo.userListener, o = Zo.genericFetcherListener, i = Zo.productCouponsListener, a = Zo.uiActionsListener, s = Zo.optimusProductListener, (0, Zo.pageDetectionListener)(), t(), n(), r(), o(), i(), a(), ii(), s();
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function() {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}();
|
|
pi();
|
|
var hi = n(90455),
|
|
mi = n(79778),
|
|
gi = n(29123),
|
|
yi = n.n(gi),
|
|
vi = n(12396),
|
|
bi = n(36385),
|
|
_i = n.n(bi),
|
|
Si = n(28974),
|
|
wi = n(75606);
|
|
|
|
function Oi(e) {
|
|
return Oi = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, Oi(e)
|
|
}
|
|
|
|
function Ei(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function ki(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? Ei(Object(n), !0).forEach(function(t) {
|
|
Ti(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Ei(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function Ti(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != Oi(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != Oi(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == Oi(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
|
|
function xi() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return Ii(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (Ii(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, Ii(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, Ii(f, "constructor", u), Ii(u, "constructor", c), c.displayName = "GeneratorFunction", Ii(u, o, "GeneratorFunction"), Ii(f), Ii(f, o, "Generator"), Ii(f, r, function() {
|
|
return this
|
|
}), Ii(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (xi = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function Ii(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
Ii = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
Ii(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, Ii(e, t, n, r)
|
|
}
|
|
|
|
function Pi(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
|
|
function Ai(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
Pi(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
Pi(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}
|
|
var Ci = "honeyTips:handleWhereAmI: ",
|
|
ji = function() {
|
|
return function() {
|
|
var e = Ai(xi().m(function e(t, n) {
|
|
var r;
|
|
return xi().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, t(Pt.QC.loadVariant(Gn.x0));
|
|
case 1:
|
|
return r = Pt.kF.selectVariant(Gn.x0)(n()), e.a(2, r === Gn.ut.PF_ENABLED_WAI_DISABLED)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t, n) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}()
|
|
},
|
|
Ri = function(e) {
|
|
var t = e.parentId,
|
|
n = e.storeId,
|
|
r = e.priceInCents;
|
|
return P.A.send("honeyTips:tips", {
|
|
action: Si.A.TIPS_GET_BEST_MATCH_INVENTORY_PRODUCT,
|
|
parentId: t,
|
|
storeId: n,
|
|
priceInCents: r
|
|
}, {
|
|
background: !0
|
|
})
|
|
};
|
|
|
|
function Mi(e, t) {
|
|
if (!e || !t) return !1;
|
|
var n = e === t,
|
|
r = e.includes(t),
|
|
o = t.includes(e);
|
|
return n || r || o
|
|
}
|
|
var Di = function(e) {
|
|
var t = (0, wi.C)().prodData,
|
|
n = t && t.canonical_url,
|
|
r = window && window.location && window.location.href,
|
|
o = e.canonicalUrl,
|
|
i = Mi(n, o),
|
|
a = Mi(r, o),
|
|
s = i || a;
|
|
return s || I.A.debug("".concat(Ci, " canonicalUrl does not match page\n url=").concat(r, ", canonicalUrl=").concat(n, ", inventoryProductCanonicalUrl=").concat(o)), {
|
|
isCanonicalMatch: s,
|
|
pageCanonicalUrl: n,
|
|
catalogCanonicalUrl: o,
|
|
pageUrl: r
|
|
}
|
|
},
|
|
Ni = function(e) {
|
|
return function(t, n) {
|
|
return br.XK.selectProductByPageId(e)(n()) ? (I.A.debug("".concat(Ci, "VIM product is available, which is likely to be more accurate. No need for whereAmI handler to continue.")), !0) : !!$o.cA.selectProductByPageId(e)(n()) && (I.A.debug("".concat(Ci, "Optimus product is available, which is likely to be more accurate. No need for whereAmI handler to continue.")), !0)
|
|
}
|
|
},
|
|
Li = function(e) {
|
|
if (!e) return null;
|
|
var t = f.A.cleanPrice(e);
|
|
return parseInt((100 * t).toFixed(), 10)
|
|
};
|
|
const Fi = function(e) {
|
|
var t = e.whereAmIPayload,
|
|
n = e.atlasProducts;
|
|
return function() {
|
|
var e = Ai(xi().m(function e(r, o) {
|
|
var i, a, s, c, u, l, f, d, p, h, m, g, y, v, b, _, S;
|
|
return xi().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, r(ji());
|
|
case 1:
|
|
if (!e.v) {
|
|
e.n = 2;
|
|
break
|
|
}
|
|
return I.A.debug("".concat(Ci, "whereAmI handling is disabled.")), e.a(2);
|
|
case 2:
|
|
if (i = It.im.selectMostRecentPageId()(o()), a = Et.VH.selectCurrentStoreId()(o()), s = _i()(n || [], "score") || {}, c = s.parentId) {
|
|
e.n = 3;
|
|
break
|
|
}
|
|
return I.A.debug("".concat(Ci, "whereAmI did not find a parentId. Returning early.")), e.a(2);
|
|
case 3:
|
|
return u = t && t.data || {}, l = u.price, f = Li(l), r(Br.U7.loadByPageId({
|
|
pageId: i,
|
|
parentId: c,
|
|
whereAmIPayload: t,
|
|
priceInCents: f,
|
|
storeId: a
|
|
})), e.n = 4, Ri({
|
|
parentId: c,
|
|
storeId: a,
|
|
priceInCents: f
|
|
});
|
|
case 4:
|
|
if (d = e.v, p = {
|
|
productId: d.productId,
|
|
parentId: c,
|
|
attrs: d.productDetails,
|
|
name: d.title,
|
|
unitPrice: l
|
|
}, P.A.send("honeyTips:whereAmI", {
|
|
WAIdata: p
|
|
}, {
|
|
background: !1
|
|
}), d) {
|
|
e.n = 5;
|
|
break
|
|
}
|
|
return I.A.debug("".concat(Ci, "no matching inventory product found for parentId=").concat(c, ", storeId=").concat(a, ".")), h = {
|
|
parentId: c,
|
|
storeId: a
|
|
}, r((0, rn.q)(ki(ki({}, h), {}, {
|
|
action: "atlas_catalog_missing"
|
|
}), {
|
|
skipSessionCheck: !0
|
|
})), e.a(2);
|
|
case 5:
|
|
if (m = "on" === Pt.kF.selectVariant(Cn.L5)(o()), g = Di(d), y = g.isCanonicalMatch, v = g.pageCanonicalUrl, b = g.pageUrl, y) {
|
|
e.n = 6;
|
|
break
|
|
}
|
|
if (I.A.debug("".concat(Ci, " canonicalUrl does not match page parentId=").concat(c, ", storeId=").concat(a, ", isAtlasMismatchOn=").concat(m)), _ = {
|
|
productId: d.productId,
|
|
parentId: d.parentId,
|
|
variantId: d.variantId,
|
|
storeId: d.storeId,
|
|
catalogPrice: d.lastPrice,
|
|
title: d.title,
|
|
canonicalUrl: d.canonicalUrl,
|
|
pageCanonicalUrl: v,
|
|
pageUrl: b,
|
|
isAtlasMismatchOn: m
|
|
}, r((0, rn.q)(ki(ki({}, _), {}, {
|
|
action: "atlas_url_mismatch"
|
|
}), {
|
|
skipSessionCheck: !0
|
|
})), !m) {
|
|
e.n = 6;
|
|
break
|
|
}
|
|
return e.a(2);
|
|
case 6:
|
|
if (r(Br.U7.setBestMatchProductForPage({
|
|
pageId: i,
|
|
product: d
|
|
})), r(Jr()), !r(Ni(i))) {
|
|
e.n = 7;
|
|
break
|
|
}
|
|
return e.a(2);
|
|
case 7:
|
|
S = Br.dK.selectProductByPageId(i)(o()), r(Fr(S));
|
|
case 8:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t, n) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}()
|
|
};
|
|
|
|
function Bi(e) {
|
|
return Bi = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, Bi(e)
|
|
}
|
|
|
|
function Ui(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function Gi(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? Ui(Object(n), !0).forEach(function(t) {
|
|
$i(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Ui(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function $i(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != Bi(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != Bi(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == Bi(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
|
|
function Hi(e, t) {
|
|
return function(e) {
|
|
if (Array.isArray(e)) return e
|
|
}(e) || function(e, t) {
|
|
var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
|
|
if (null != n) {
|
|
var r, o, i, a, s = [],
|
|
c = !0,
|
|
u = !1;
|
|
try {
|
|
if (i = (n = n.call(e)).next, 0 === t) {
|
|
if (Object(n) !== n) return;
|
|
c = !1
|
|
} else
|
|
for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0);
|
|
} catch (e) {
|
|
u = !0, o = e
|
|
} finally {
|
|
try {
|
|
if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return
|
|
} finally {
|
|
if (u) throw o
|
|
}
|
|
}
|
|
return s
|
|
}
|
|
}(e, t) || Vi(e, t) || function() {
|
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
|
|
}()
|
|
}
|
|
|
|
function zi() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return qi(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (qi(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, qi(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, qi(f, "constructor", u), qi(u, "constructor", c), c.displayName = "GeneratorFunction", qi(u, o, "GeneratorFunction"), qi(f), qi(f, o, "Generator"), qi(f, r, function() {
|
|
return this
|
|
}), qi(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (zi = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function qi(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
qi = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
qi(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, qi(e, t, n, r)
|
|
}
|
|
|
|
function Wi(e, t) {
|
|
var n = "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
|
|
if (!n) {
|
|
if (Array.isArray(e) || (n = Vi(e)) || t && e && "number" == typeof e.length) {
|
|
n && (e = n);
|
|
var r = 0,
|
|
o = function() {};
|
|
return {
|
|
s: o,
|
|
n: function() {
|
|
return r >= e.length ? {
|
|
done: !0
|
|
} : {
|
|
done: !1,
|
|
value: e[r++]
|
|
}
|
|
},
|
|
e: function(e) {
|
|
throw e
|
|
},
|
|
f: o
|
|
}
|
|
}
|
|
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
|
|
}
|
|
var i, a = !0,
|
|
s = !1;
|
|
return {
|
|
s: function() {
|
|
n = n.call(e)
|
|
},
|
|
n: function() {
|
|
var e = n.next();
|
|
return a = e.done, e
|
|
},
|
|
e: function(e) {
|
|
s = !0, i = e
|
|
},
|
|
f: function() {
|
|
try {
|
|
a || null == n.return || n.return()
|
|
} finally {
|
|
if (s) throw i
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function Vi(e, t) {
|
|
if (e) {
|
|
if ("string" == typeof e) return Yi(e, t);
|
|
var n = {}.toString.call(e).slice(8, -1);
|
|
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Yi(e, t) : void 0
|
|
}
|
|
}
|
|
|
|
function Yi(e, t) {
|
|
(null == t || t > e.length) && (t = e.length);
|
|
for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n];
|
|
return r
|
|
}
|
|
|
|
function Ji(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
|
|
function Ki(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
Ji(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
Ji(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}
|
|
var Qi = "tips_atlas_update_v1",
|
|
Xi = "",
|
|
Zi = !0,
|
|
ea = {},
|
|
ta = !1;
|
|
|
|
function na() {
|
|
return na = Ki(zi().m(function e(t, n) {
|
|
var r, o, i, a, s, c, u, l, f, d;
|
|
return zi().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return r = n.data, e.n = 1, Promise.all([B.A.getCurrent(), E.A.getVariant(Qi)]);
|
|
case 1:
|
|
if (o = e.v, i = Hi(o, 2), a = i[0], s = i[1], E.A.trackImpression(Qi), r) {
|
|
e.n = 2;
|
|
break
|
|
}
|
|
return I.A.error("WhereAmI was handed undefined product info"), e.a(2);
|
|
case 2:
|
|
if (c = (a || {}).id, l = Gi({
|
|
useDeterministicParentId: u = "variant" === s,
|
|
store_id: c
|
|
}, r), (f = yi()(l)) === Xi) {
|
|
e.n = 4;
|
|
break
|
|
}
|
|
return Xi = f, e.n = 3, P.A.send("stores:action", {
|
|
action: "getAtlas",
|
|
data: {
|
|
atlasPayload: l
|
|
}
|
|
}, {
|
|
background: !0
|
|
}).catch(function(e) {
|
|
return I.A.error("Error while getting atlas: ".concat(e || e.message)), []
|
|
});
|
|
case 3:
|
|
d = e.v, St.A.dispatch(Fi({
|
|
whereAmIPayload: n,
|
|
atlasProducts: d
|
|
})), he.A.sendEvent("ext009009", {
|
|
where_am_i: r,
|
|
is_initial_observation: Zi,
|
|
products: d,
|
|
useDeterministicParentId: u
|
|
}), Zi = !1;
|
|
case 4:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
})), na.apply(this, arguments)
|
|
}
|
|
var ra = function(e, t) {
|
|
var n = {
|
|
parent_id: ea.WAIdata.parentId,
|
|
variant_id: null,
|
|
product_id: ea.WAIdata.productId,
|
|
store_id: e.storeId,
|
|
name: ea.WAIdata.name,
|
|
attrs: JSON.stringify(ea.WAIdata.attrs),
|
|
qty: null,
|
|
unit_price: ea.WAIdata.unitPrice,
|
|
total_price: null,
|
|
sku: t
|
|
};
|
|
he.A.sendEvent("ext112000", {
|
|
store: e,
|
|
products: n
|
|
})
|
|
},
|
|
oa = function(e) {
|
|
var t = [];
|
|
if (!e) return t;
|
|
try {
|
|
if (e.startsWith("//") || e.startsWith("substring"))
|
|
for (var n = document.evaluate(e, document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null), r = 0; r < n.snapshotLength; r += 1) {
|
|
var o = n.snapshotItem(r);
|
|
t.push(o)
|
|
} else t = l()(e).get()
|
|
} catch (e) {
|
|
I.A.error("Trouble finding elements from selector", e)
|
|
}
|
|
return t
|
|
},
|
|
ia = function() {
|
|
var e = Ki(zi().m(function e() {
|
|
var t, n, r, o, i, a, s, c, u, l, f, d, p, h, m, g, y, v;
|
|
return zi().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, B.A.getCurrent();
|
|
case 1:
|
|
return t = e.v, n = t.storeId, e.n = 2, vi.A.getStoreRecipe(n);
|
|
case 2:
|
|
if (r = e.v, o = r.sku_identifier, r.sku_identifier && (o = r.sku_identifier.selector), i = [], "complete" === r.scope) {
|
|
a = r.add_to_cart_recording, s = Wi(a);
|
|
try {
|
|
for (s.s(); !(c = s.n()).done;) d = c.value, p = null !== (u = null == d ? void 0 : d.type) && void 0 !== u ? u : null, h = null !== (l = null == d || null === (f = d.info) || void 0 === f ? void 0 : f.is_optional) && void 0 !== l ? l : null, 20 === p && "no" === h && i.push(d.info.selector)
|
|
} catch (e) {
|
|
s.e(e)
|
|
} finally {
|
|
s.f()
|
|
}
|
|
}
|
|
g = 0, y = i;
|
|
case 3:
|
|
if (!(g < y.length)) {
|
|
e.n = 5;
|
|
break
|
|
}
|
|
if (v = y[g], !((m = oa(v)).length > 0)) {
|
|
e.n = 4;
|
|
break
|
|
}
|
|
return e.a(3, 5);
|
|
case 4:
|
|
g++, e.n = 3;
|
|
break;
|
|
case 5:
|
|
m.forEach(function(e) {
|
|
0 !== Object.keys(e).length && e.addEventListener("click", Ki(zi().m(function e() {
|
|
return zi().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return e.n = 1, ra(t, o);
|
|
case 1:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
})))
|
|
});
|
|
case 6:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function() {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}();
|
|
P.A.addListener("honeyTips:whereAmI", function() {
|
|
var e = Ki(zi().m(function e(t) {
|
|
var n = arguments;
|
|
return zi().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
ea = n.length > 1 && void 0 !== n[1] ? n[1] : {}, ta || (ta = !0, ia());
|
|
case 1:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}()), P.A.addListener("vims:reportWhereAmI", function(e, t) {
|
|
return na.apply(this, arguments)
|
|
}), P.A.addListener("pageDetected:WHERE_AM_I", function(e, t) {
|
|
var n = t.frameworkId;
|
|
ne.A.getFeatureFlag("ext_run_wai_vim").then(function() {
|
|
var e = Ki(zi().m(function e(t) {
|
|
return zi().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
if (t) {
|
|
e.n = 1;
|
|
break
|
|
}
|
|
return e.a(2, {});
|
|
case 1:
|
|
return e.a(2, B.A.getCurrent().then(function() {
|
|
var e = Ki(zi().m(function e(t) {
|
|
var r;
|
|
return zi().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return r = t.id, e.n = 1, vi.A.getAndRunV5Vim(r, "wai", n);
|
|
case 1:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}()))
|
|
}
|
|
}, e)
|
|
}));
|
|
return function(t) {
|
|
return e.apply(this, arguments)
|
|
}
|
|
}())
|
|
});
|
|
var aa = n(75168),
|
|
sa = n(98998),
|
|
ca = n(84414);
|
|
n(19893);
|
|
const ua = Object.prototype.toString;
|
|
|
|
function la(e) {
|
|
switch (ua.call(e)) {
|
|
case "[object Error]":
|
|
case "[object Exception]":
|
|
case "[object DOMException]":
|
|
return !0;
|
|
default:
|
|
return Sa(e, Error)
|
|
}
|
|
}
|
|
|
|
function fa(e, t) {
|
|
return ua.call(e) === `[object ${t}]`
|
|
}
|
|
|
|
function da(e) {
|
|
return fa(e, "ErrorEvent")
|
|
}
|
|
|
|
function pa(e) {
|
|
return fa(e, "DOMError")
|
|
}
|
|
|
|
function ha(e) {
|
|
return fa(e, "String")
|
|
}
|
|
|
|
function ma(e) {
|
|
return "object" == typeof e && null !== e && "__sentry_template_string__" in e && "__sentry_template_values__" in e
|
|
}
|
|
|
|
function ga(e) {
|
|
return null === e || ma(e) || "object" != typeof e && "function" != typeof e
|
|
}
|
|
|
|
function ya(e) {
|
|
return fa(e, "Object")
|
|
}
|
|
|
|
function va(e) {
|
|
return "undefined" != typeof Event && Sa(e, Event)
|
|
}
|
|
|
|
function ba(e) {
|
|
return Boolean(e && e.then && "function" == typeof e.then)
|
|
}
|
|
|
|
function _a(e) {
|
|
return "number" == typeof e && e != e
|
|
}
|
|
|
|
function Sa(e, t) {
|
|
try {
|
|
return e instanceof t
|
|
} catch (e) {
|
|
return !1
|
|
}
|
|
}
|
|
|
|
function wa(e) {
|
|
return !("object" != typeof e || null === e || !e.__isVue && !e._isVue)
|
|
}
|
|
|
|
function Oa(e) {
|
|
return e && e.Math == Math ? e : void 0
|
|
}
|
|
const Ea = "object" == typeof globalThis && Oa(globalThis) || "object" == typeof window && Oa(window) || "object" == typeof self && Oa(self) || "object" == typeof n.g && Oa(n.g) || function() {
|
|
return this
|
|
}() || {};
|
|
|
|
function ka() {
|
|
return Ea
|
|
}
|
|
|
|
function Ta(e, t, n) {
|
|
const r = n || Ea,
|
|
o = r.__SENTRY__ = r.__SENTRY__ || {};
|
|
return o[e] || (o[e] = t())
|
|
}
|
|
const xa = ka(),
|
|
Ia = 80;
|
|
|
|
function Pa(e, t = {}) {
|
|
if (!e) return "<unknown>";
|
|
try {
|
|
let n = e;
|
|
const r = 5,
|
|
o = [];
|
|
let i = 0,
|
|
a = 0;
|
|
const s = " > ",
|
|
c = s.length;
|
|
let u;
|
|
const l = Array.isArray(t) ? t : t.keyAttrs,
|
|
f = !Array.isArray(t) && t.maxStringLength || Ia;
|
|
for (; n && i++ < r && (u = Aa(n, l), !("html" === u || i > 1 && a + o.length * c + u.length >= f));) o.push(u), a += u.length, n = n.parentNode;
|
|
return o.reverse().join(s)
|
|
} catch (e) {
|
|
return "<unknown>"
|
|
}
|
|
}
|
|
|
|
function Aa(e, t) {
|
|
const n = e,
|
|
r = [];
|
|
let o, i, a, s, c;
|
|
if (!n || !n.tagName) return "";
|
|
if (xa.HTMLElement && n instanceof HTMLElement && n.dataset && n.dataset.sentryComponent) return n.dataset.sentryComponent;
|
|
r.push(n.tagName.toLowerCase());
|
|
const u = t && t.length ? t.filter(e => n.getAttribute(e)).map(e => [e, n.getAttribute(e)]) : null;
|
|
if (u && u.length) u.forEach(e => {
|
|
r.push(`[${e[0]}="${e[1]}"]`)
|
|
});
|
|
else if (n.id && r.push(`#${n.id}`), o = n.className, o && ha(o))
|
|
for (i = o.split(/\s+/), c = 0; c < i.length; c++) r.push(`.${i[c]}`);
|
|
const l = ["aria-label", "type", "name", "title", "alt"];
|
|
for (c = 0; c < l.length; c++) a = l[c], s = n.getAttribute(a), s && r.push(`[${a}="${s}"]`);
|
|
return r.join("")
|
|
}
|
|
|
|
function Ca() {
|
|
try {
|
|
return xa.document.location.href
|
|
} catch (e) {
|
|
return ""
|
|
}
|
|
}
|
|
|
|
function ja(e) {
|
|
return xa.document && xa.document.querySelector ? xa.document.querySelector(e) : null
|
|
}
|
|
|
|
function Ra(e) {
|
|
if (!xa.HTMLElement) return null;
|
|
let t = e;
|
|
for (let e = 0; e < 5; e++) {
|
|
if (!t) return null;
|
|
if (t instanceof HTMLElement && t.dataset.sentryComponent) return t.dataset.sentryComponent;
|
|
t = t.parentNode
|
|
}
|
|
return null
|
|
}
|
|
const Ma = "undefined" == typeof __SENTRY_DEBUG__ || __SENTRY_DEBUG__,
|
|
Da = ["debug", "info", "warn", "error", "log", "assert", "trace"],
|
|
Na = {};
|
|
|
|
function La(e) {
|
|
if (!("console" in Ea)) return e();
|
|
const t = Ea.console,
|
|
n = {},
|
|
r = Object.keys(Na);
|
|
r.forEach(e => {
|
|
const r = Na[e];
|
|
n[e] = t[e], t[e] = r
|
|
});
|
|
try {
|
|
return e()
|
|
} finally {
|
|
r.forEach(e => {
|
|
t[e] = n[e]
|
|
})
|
|
}
|
|
}
|
|
const Fa = function() {
|
|
let e = !1;
|
|
const t = {
|
|
enable: () => {
|
|
e = !0
|
|
},
|
|
disable: () => {
|
|
e = !1
|
|
},
|
|
isEnabled: () => e
|
|
};
|
|
return Ma ? Da.forEach(n => {
|
|
t[n] = (...t) => {
|
|
e && La(() => {
|
|
Ea.console[n](`Sentry Logger [${n}]:`, ...t)
|
|
})
|
|
}
|
|
}) : Da.forEach(e => {
|
|
t[e] = () => {}
|
|
}), t
|
|
}();
|
|
|
|
function Ba(e, t = 0) {
|
|
return "string" != typeof e || 0 === t || e.length <= t ? e : `${e.slice(0,t)}...`
|
|
}
|
|
|
|
function Ua(e, t) {
|
|
let n = e;
|
|
const r = n.length;
|
|
if (r <= 150) return n;
|
|
t > r && (t = r);
|
|
let o = Math.max(t - 60, 0);
|
|
o < 5 && (o = 0);
|
|
let i = Math.min(o + 140, r);
|
|
return i > r - 5 && (i = r), i === r && (o = Math.max(i - 140, 0)), n = n.slice(o, i), o > 0 && (n = `'{snip} ${n}`), i < r && (n += " {snip}"), n
|
|
}
|
|
|
|
function Ga(e, t) {
|
|
if (!Array.isArray(e)) return "";
|
|
const n = [];
|
|
for (let t = 0; t < e.length; t++) {
|
|
const r = e[t];
|
|
try {
|
|
wa(r) ? n.push("[VueViewModel]") : n.push(String(r))
|
|
} catch (e) {
|
|
n.push("[value cannot be serialized]")
|
|
}
|
|
}
|
|
return n.join(t)
|
|
}
|
|
|
|
function $a(e, t, n = !1) {
|
|
return !!ha(e) && (fa(t, "RegExp") ? t.test(e) : !!ha(t) && (n ? e === t : e.includes(t)))
|
|
}
|
|
|
|
function Ha(e, t = [], n = !1) {
|
|
return t.some(t => $a(e, t, n))
|
|
}
|
|
|
|
function za(e, t, n) {
|
|
if (!(t in e)) return;
|
|
const r = e[t],
|
|
o = n(r);
|
|
"function" == typeof o && Wa(o, r), e[t] = o
|
|
}
|
|
|
|
function qa(e, t, n) {
|
|
try {
|
|
Object.defineProperty(e, t, {
|
|
value: n,
|
|
writable: !0,
|
|
configurable: !0
|
|
})
|
|
} catch (n) {
|
|
Ma && Fa.log(`Failed to add non-enumerable property "${t}" to object`, e)
|
|
}
|
|
}
|
|
|
|
function Wa(e, t) {
|
|
try {
|
|
const n = t.prototype || {};
|
|
e.prototype = t.prototype = n, qa(e, "__sentry_original__", t)
|
|
} catch (e) {}
|
|
}
|
|
|
|
function Va(e) {
|
|
return e.__sentry_original__
|
|
}
|
|
|
|
function Ya(e) {
|
|
if (la(e)) return {
|
|
message: e.message,
|
|
name: e.name,
|
|
stack: e.stack,
|
|
...Ka(e)
|
|
};
|
|
if (va(e)) {
|
|
const t = {
|
|
type: e.type,
|
|
target: Ja(e.target),
|
|
currentTarget: Ja(e.currentTarget),
|
|
...Ka(e)
|
|
};
|
|
return "undefined" != typeof CustomEvent && Sa(e, CustomEvent) && (t.detail = e.detail), t
|
|
}
|
|
return e
|
|
}
|
|
|
|
function Ja(e) {
|
|
try {
|
|
return t = e, "undefined" != typeof Element && Sa(t, Element) ? Pa(e) : Object.prototype.toString.call(e)
|
|
} catch (e) {
|
|
return "<unknown>"
|
|
}
|
|
var t
|
|
}
|
|
|
|
function Ka(e) {
|
|
if ("object" == typeof e && null !== e) {
|
|
const t = {};
|
|
for (const n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]);
|
|
return t
|
|
}
|
|
return {}
|
|
}
|
|
|
|
function Qa(e) {
|
|
return Xa(e, new Map)
|
|
}
|
|
|
|
function Xa(e, t) {
|
|
if (function(e) {
|
|
if (!ya(e)) return !1;
|
|
try {
|
|
const t = Object.getPrototypeOf(e).constructor.name;
|
|
return !t || "Object" === t
|
|
} catch (e) {
|
|
return !0
|
|
}
|
|
}(e)) {
|
|
const n = t.get(e);
|
|
if (void 0 !== n) return n;
|
|
const r = {};
|
|
t.set(e, r);
|
|
for (const n of Object.keys(e)) void 0 !== e[n] && (r[n] = Xa(e[n], t));
|
|
return r
|
|
}
|
|
if (Array.isArray(e)) {
|
|
const n = t.get(e);
|
|
if (void 0 !== n) return n;
|
|
const r = [];
|
|
return t.set(e, r), e.forEach(e => {
|
|
r.push(Xa(e, t))
|
|
}), r
|
|
}
|
|
return e
|
|
}
|
|
const Za = "production",
|
|
es = "undefined" == typeof __SENTRY_DEBUG__ || __SENTRY_DEBUG__;
|
|
|
|
function ts() {
|
|
const e = Ea,
|
|
t = e.crypto || e.msCrypto;
|
|
let n = () => 16 * Math.random();
|
|
try {
|
|
if (t && t.randomUUID) return t.randomUUID().replace(/-/g, "");
|
|
t && t.getRandomValues && (n = () => {
|
|
const e = new Uint8Array(1);
|
|
return t.getRandomValues(e), e[0]
|
|
})
|
|
} catch (e) {}
|
|
return ([1e7] + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, e => (e ^ (15 & n()) >> e / 4).toString(16))
|
|
}
|
|
|
|
function ns(e) {
|
|
return e.exception && e.exception.values ? e.exception.values[0] : void 0
|
|
}
|
|
|
|
function rs(e) {
|
|
const {
|
|
message: t,
|
|
event_id: n
|
|
} = e;
|
|
if (t) return t;
|
|
const r = ns(e);
|
|
return r ? r.type && r.value ? `${r.type}: ${r.value}` : r.type || r.value || n || "<unknown>" : n || "<unknown>"
|
|
}
|
|
|
|
function os(e, t, n) {
|
|
const r = e.exception = e.exception || {},
|
|
o = r.values = r.values || [],
|
|
i = o[0] = o[0] || {};
|
|
i.value || (i.value = t || ""), i.type || (i.type = n || "Error")
|
|
}
|
|
|
|
function is(e, t) {
|
|
const n = ns(e);
|
|
if (!n) return;
|
|
const r = n.mechanism;
|
|
if (n.mechanism = {
|
|
type: "generic",
|
|
handled: !0,
|
|
...r,
|
|
...t
|
|
}, t && "data" in t) {
|
|
const e = {
|
|
...r && r.data,
|
|
...t.data
|
|
};
|
|
n.mechanism.data = e
|
|
}
|
|
}
|
|
|
|
function as(e) {
|
|
if (e && e.__sentry_captured__) return !0;
|
|
try {
|
|
qa(e, "__sentry_captured__", !0)
|
|
} catch (e) {}
|
|
return !1
|
|
}
|
|
|
|
function ss(e) {
|
|
return Array.isArray(e) ? e : [e]
|
|
}
|
|
const cs = 1e3;
|
|
|
|
function us() {
|
|
return Date.now() / cs
|
|
}
|
|
const ls = function() {
|
|
const {
|
|
performance: e
|
|
} = Ea;
|
|
if (!e || !e.now) return us;
|
|
const t = Date.now() - e.now(),
|
|
n = null == e.timeOrigin ? t : e.timeOrigin;
|
|
return () => (n + e.now()) / cs
|
|
}();
|
|
let fs;
|
|
const ds = (() => {
|
|
const {
|
|
performance: e
|
|
} = Ea;
|
|
if (!e || !e.now) return void(fs = "none");
|
|
const t = 36e5,
|
|
n = e.now(),
|
|
r = Date.now(),
|
|
o = e.timeOrigin ? Math.abs(e.timeOrigin + n - r) : t,
|
|
i = o < t,
|
|
a = e.timing && e.timing.navigationStart,
|
|
s = "number" == typeof a ? Math.abs(a + n - r) : t;
|
|
return i || s < t ? o <= s ? (fs = "timeOrigin", e.timeOrigin) : (fs = "navigationStart", a) : (fs = "dateNow", r)
|
|
})();
|
|
var ps;
|
|
|
|
function hs(e) {
|
|
return new gs(t => {
|
|
t(e)
|
|
})
|
|
}
|
|
|
|
function ms(e) {
|
|
return new gs((t, n) => {
|
|
n(e)
|
|
})
|
|
}! function(e) {
|
|
e[e.PENDING = 0] = "PENDING";
|
|
e[e.RESOLVED = 1] = "RESOLVED";
|
|
e[e.REJECTED = 2] = "REJECTED"
|
|
}(ps || (ps = {}));
|
|
class gs {
|
|
constructor(e) {
|
|
gs.prototype.__init.call(this), gs.prototype.__init2.call(this), gs.prototype.__init3.call(this), gs.prototype.__init4.call(this), this._state = ps.PENDING, this._handlers = [];
|
|
try {
|
|
e(this._resolve, this._reject)
|
|
} catch (e) {
|
|
this._reject(e)
|
|
}
|
|
}
|
|
then(e, t) {
|
|
return new gs((n, r) => {
|
|
this._handlers.push([!1, t => {
|
|
if (e) try {
|
|
n(e(t))
|
|
} catch (e) {
|
|
r(e)
|
|
} else n(t)
|
|
}, e => {
|
|
if (t) try {
|
|
n(t(e))
|
|
} catch (e) {
|
|
r(e)
|
|
} else r(e)
|
|
}]), this._executeHandlers()
|
|
})
|
|
} catch (e) {
|
|
return this.then(e => e, e)
|
|
} finally(e) {
|
|
return new gs((t, n) => {
|
|
let r, o;
|
|
return this.then(t => {
|
|
o = !1, r = t, e && e()
|
|
}, t => {
|
|
o = !0, r = t, e && e()
|
|
}).then(() => {
|
|
o ? n(r) : t(r)
|
|
})
|
|
})
|
|
}
|
|
__init() {
|
|
this._resolve = e => {
|
|
this._setResult(ps.RESOLVED, e)
|
|
}
|
|
}
|
|
__init2() {
|
|
this._reject = e => {
|
|
this._setResult(ps.REJECTED, e)
|
|
}
|
|
}
|
|
__init3() {
|
|
this._setResult = (e, t) => {
|
|
this._state === ps.PENDING && (ba(t) ? t.then(this._resolve, this._reject) : (this._state = e, this._value = t, this._executeHandlers()))
|
|
}
|
|
}
|
|
__init4() {
|
|
this._executeHandlers = () => {
|
|
if (this._state === ps.PENDING) return;
|
|
const e = this._handlers.slice();
|
|
this._handlers = [], e.forEach(e => {
|
|
e[0] || (this._state === ps.RESOLVED && e[1](this._value), this._state === ps.REJECTED && e[2](this._value), e[0] = !0)
|
|
})
|
|
}
|
|
}
|
|
}
|
|
|
|
function ys() {
|
|
return Ta("globalEventProcessors", () => [])
|
|
}
|
|
|
|
function vs(e) {
|
|
ys().push(e)
|
|
}
|
|
|
|
function bs(e, t, n, r = 0) {
|
|
return new gs((o, i) => {
|
|
const a = e[r];
|
|
if (null === t || "function" != typeof a) o(t);
|
|
else {
|
|
const s = a({
|
|
...t
|
|
}, n);
|
|
es && a.id && null === s && Fa.log(`Event processor "${a.id}" dropped event`), ba(s) ? s.then(t => bs(e, t, n, r + 1).then(o)).then(null, i) : bs(e, s, n, r + 1).then(o).then(null, i)
|
|
}
|
|
})
|
|
}
|
|
|
|
function _s(e) {
|
|
const t = ls(),
|
|
n = {
|
|
sid: ts(),
|
|
init: !0,
|
|
timestamp: t,
|
|
started: t,
|
|
duration: 0,
|
|
status: "ok",
|
|
errors: 0,
|
|
ignoreDuration: !1,
|
|
toJSON: () => function(e) {
|
|
return Qa({
|
|
sid: `${e.sid}`,
|
|
init: e.init,
|
|
started: new Date(1e3 * e.started).toISOString(),
|
|
timestamp: new Date(1e3 * e.timestamp).toISOString(),
|
|
status: e.status,
|
|
errors: e.errors,
|
|
did: "number" == typeof e.did || "string" == typeof e.did ? `${e.did}` : void 0,
|
|
duration: e.duration,
|
|
abnormal_mechanism: e.abnormal_mechanism,
|
|
attrs: {
|
|
release: e.release,
|
|
environment: e.environment,
|
|
ip_address: e.ipAddress,
|
|
user_agent: e.userAgent
|
|
}
|
|
})
|
|
}(n)
|
|
};
|
|
return e && Ss(n, e), n
|
|
}
|
|
|
|
function Ss(e, t = {}) {
|
|
if (t.user && (!e.ipAddress && t.user.ip_address && (e.ipAddress = t.user.ip_address), e.did || t.did || (e.did = t.user.id || t.user.email || t.user.username)), e.timestamp = t.timestamp || ls(), t.abnormal_mechanism && (e.abnormal_mechanism = t.abnormal_mechanism), t.ignoreDuration && (e.ignoreDuration = t.ignoreDuration), t.sid && (e.sid = 32 === t.sid.length ? t.sid : ts()), void 0 !== t.init && (e.init = t.init), !e.did && t.did && (e.did = `${t.did}`), "number" == typeof t.started && (e.started = t.started), e.ignoreDuration) e.duration = void 0;
|
|
else if ("number" == typeof t.duration) e.duration = t.duration;
|
|
else {
|
|
const t = e.timestamp - e.started;
|
|
e.duration = t >= 0 ? t : 0
|
|
}
|
|
t.release && (e.release = t.release), t.environment && (e.environment = t.environment), !e.ipAddress && t.ipAddress && (e.ipAddress = t.ipAddress), !e.userAgent && t.userAgent && (e.userAgent = t.userAgent), "number" == typeof t.errors && (e.errors = t.errors), t.status && (e.status = t.status)
|
|
}
|
|
|
|
function ws(e, t) {
|
|
let n = {};
|
|
t ? n = {
|
|
status: t
|
|
} : "ok" === e.status && (n = {
|
|
status: "exited"
|
|
}), Ss(e, n)
|
|
}
|
|
|
|
function Os(e) {
|
|
return e.transaction
|
|
}
|
|
const Es = "baggage",
|
|
ks = "sentry-",
|
|
Ts = /^sentry-/,
|
|
xs = 8192;
|
|
|
|
function Is(e) {
|
|
if (!ha(e) && !Array.isArray(e)) return;
|
|
let t = {};
|
|
if (Array.isArray(e)) t = e.reduce((e, t) => {
|
|
const n = As(t);
|
|
for (const t of Object.keys(n)) e[t] = n[t];
|
|
return e
|
|
}, {});
|
|
else {
|
|
if (!e) return;
|
|
t = As(e)
|
|
}
|
|
const n = Object.entries(t).reduce((e, [t, n]) => {
|
|
if (t.match(Ts)) {
|
|
e[t.slice(ks.length)] = n
|
|
}
|
|
return e
|
|
}, {});
|
|
return Object.keys(n).length > 0 ? n : void 0
|
|
}
|
|
|
|
function Ps(e) {
|
|
if (!e) return;
|
|
return function(e) {
|
|
if (0 === Object.keys(e).length) return;
|
|
return Object.entries(e).reduce((e, [t, n], r) => {
|
|
const o = `${encodeURIComponent(t)}=${encodeURIComponent(n)}`,
|
|
i = 0 === r ? o : `${e},${o}`;
|
|
return i.length > xs ? (Ma && Fa.warn(`Not adding key: ${t} with val: ${n} to baggage header due to exceeding baggage size limits.`), e) : i
|
|
}, "")
|
|
}(Object.entries(e).reduce((e, [t, n]) => (n && (e[`${ks}${t}`] = n), e), {}))
|
|
}
|
|
|
|
function As(e) {
|
|
return e.split(",").map(e => e.split("=").map(e => decodeURIComponent(e.trim()))).reduce((e, [t, n]) => (e[t] = n, e), {})
|
|
}
|
|
const Cs = new RegExp("^[ \\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\t]*$");
|
|
|
|
function js(e) {
|
|
if (!e) return;
|
|
const t = e.match(Cs);
|
|
if (!t) return;
|
|
let n;
|
|
return "1" === t[3] ? n = !0 : "0" === t[3] && (n = !1), {
|
|
traceId: t[1],
|
|
parentSampled: n,
|
|
parentSpanId: t[2]
|
|
}
|
|
}
|
|
|
|
function Rs(e, t) {
|
|
const n = js(e),
|
|
r = Is(t),
|
|
{
|
|
traceId: o,
|
|
parentSpanId: i,
|
|
parentSampled: a
|
|
} = n || {};
|
|
return n ? {
|
|
traceId: o || ts(),
|
|
parentSpanId: i || ts().substring(16),
|
|
spanId: ts().substring(16),
|
|
sampled: a,
|
|
dsc: r || {}
|
|
} : {
|
|
traceId: o || ts(),
|
|
spanId: ts().substring(16)
|
|
}
|
|
}
|
|
|
|
function Ms(e = ts(), t = ts().substring(16), n) {
|
|
let r = "";
|
|
return void 0 !== n && (r = n ? "-1" : "-0"), `${e}-${t}${r}`
|
|
}
|
|
const Ds = 1;
|
|
|
|
function Ns(e) {
|
|
const {
|
|
spanId: t,
|
|
traceId: n
|
|
} = e.spanContext(), {
|
|
data: r,
|
|
op: o,
|
|
parent_span_id: i,
|
|
status: a,
|
|
tags: s,
|
|
origin: c
|
|
} = Us(e);
|
|
return Qa({
|
|
data: r,
|
|
op: o,
|
|
parent_span_id: i,
|
|
span_id: t,
|
|
status: a,
|
|
tags: s,
|
|
trace_id: n,
|
|
origin: c
|
|
})
|
|
}
|
|
|
|
function Ls(e) {
|
|
const {
|
|
traceId: t,
|
|
spanId: n
|
|
} = e.spanContext();
|
|
return Ms(t, n, Gs(e))
|
|
}
|
|
|
|
function Fs(e) {
|
|
return "number" == typeof e ? Bs(e) : Array.isArray(e) ? e[0] + e[1] / 1e9 : e instanceof Date ? Bs(e.getTime()) : ls()
|
|
}
|
|
|
|
function Bs(e) {
|
|
return e > 9999999999 ? e / 1e3 : e
|
|
}
|
|
|
|
function Us(e) {
|
|
return function(e) {
|
|
return "function" == typeof e.getSpanJSON
|
|
}(e) ? e.getSpanJSON() : "function" == typeof e.toJSON ? e.toJSON() : {}
|
|
}
|
|
|
|
function Gs(e) {
|
|
const {
|
|
traceFlags: t
|
|
} = e.spanContext();
|
|
return Boolean(t & Ds)
|
|
}
|
|
|
|
function $s(e, t, n) {
|
|
const r = t.getOptions(),
|
|
{
|
|
publicKey: o
|
|
} = t.getDsn() || {},
|
|
{
|
|
segment: i
|
|
} = n && n.getUser() || {},
|
|
a = Qa({
|
|
environment: r.environment || Za,
|
|
release: r.release,
|
|
user_segment: i,
|
|
public_key: o,
|
|
trace_id: e
|
|
});
|
|
return t.emit && t.emit("createDsc", a), a
|
|
}
|
|
|
|
function Hs(e) {
|
|
const t = Uc();
|
|
if (!t) return {};
|
|
const n = $s(Us(e).trace_id || "", t, $c()),
|
|
r = Os(e);
|
|
if (!r) return n;
|
|
const o = r && r._frozenDynamicSamplingContext;
|
|
if (o) return o;
|
|
const {
|
|
sampleRate: i,
|
|
source: a
|
|
} = r.metadata;
|
|
null != i && (n.sample_rate = `${i}`);
|
|
const s = Us(r);
|
|
return a && "url" !== a && (n.transaction = s.description), n.sampled = String(Gs(r)), t.emit && t.emit("createDsc", n), n
|
|
}
|
|
|
|
function zs(e, t) {
|
|
const {
|
|
fingerprint: n,
|
|
span: r,
|
|
breadcrumbs: o,
|
|
sdkProcessingMetadata: i
|
|
} = t;
|
|
! function(e, t) {
|
|
const {
|
|
extra: n,
|
|
tags: r,
|
|
user: o,
|
|
contexts: i,
|
|
level: a,
|
|
transactionName: s
|
|
} = t, c = Qa(n);
|
|
c && Object.keys(c).length && (e.extra = {
|
|
...c,
|
|
...e.extra
|
|
});
|
|
const u = Qa(r);
|
|
u && Object.keys(u).length && (e.tags = {
|
|
...u,
|
|
...e.tags
|
|
});
|
|
const l = Qa(o);
|
|
l && Object.keys(l).length && (e.user = {
|
|
...l,
|
|
...e.user
|
|
});
|
|
const f = Qa(i);
|
|
f && Object.keys(f).length && (e.contexts = {
|
|
...f,
|
|
...e.contexts
|
|
});
|
|
a && (e.level = a);
|
|
s && (e.transaction = s)
|
|
}(e, t), r && function(e, t) {
|
|
e.contexts = {
|
|
trace: Ns(t),
|
|
...e.contexts
|
|
};
|
|
const n = Os(t);
|
|
if (n) {
|
|
e.sdkProcessingMetadata = {
|
|
dynamicSamplingContext: Hs(t),
|
|
...e.sdkProcessingMetadata
|
|
};
|
|
const r = Us(n).description;
|
|
r && (e.tags = {
|
|
transaction: r,
|
|
...e.tags
|
|
})
|
|
}
|
|
}(e, r),
|
|
function(e, t) {
|
|
e.fingerprint = e.fingerprint ? ss(e.fingerprint) : [], t && (e.fingerprint = e.fingerprint.concat(t));
|
|
e.fingerprint && !e.fingerprint.length && delete e.fingerprint
|
|
}(e, n),
|
|
function(e, t) {
|
|
const n = [...e.breadcrumbs || [], ...t];
|
|
e.breadcrumbs = n.length ? n : void 0
|
|
}(e, o),
|
|
function(e, t) {
|
|
e.sdkProcessingMetadata = {
|
|
...e.sdkProcessingMetadata,
|
|
...t
|
|
}
|
|
}(e, i)
|
|
}
|
|
|
|
function qs(e, t) {
|
|
const {
|
|
extra: n,
|
|
tags: r,
|
|
user: o,
|
|
contexts: i,
|
|
level: a,
|
|
sdkProcessingMetadata: s,
|
|
breadcrumbs: c,
|
|
fingerprint: u,
|
|
eventProcessors: l,
|
|
attachments: f,
|
|
propagationContext: d,
|
|
transactionName: p,
|
|
span: h
|
|
} = t;
|
|
Ws(e, "extra", n), Ws(e, "tags", r), Ws(e, "user", o), Ws(e, "contexts", i), Ws(e, "sdkProcessingMetadata", s), a && (e.level = a), p && (e.transactionName = p), h && (e.span = h), c.length && (e.breadcrumbs = [...e.breadcrumbs, ...c]), u.length && (e.fingerprint = [...e.fingerprint, ...u]), l.length && (e.eventProcessors = [...e.eventProcessors, ...l]), f.length && (e.attachments = [...e.attachments, ...f]), e.propagationContext = {
|
|
...e.propagationContext,
|
|
...d
|
|
}
|
|
}
|
|
|
|
function Ws(e, t, n) {
|
|
if (n && Object.keys(n).length) {
|
|
e[t] = {
|
|
...e[t]
|
|
};
|
|
for (const r in n) Object.prototype.hasOwnProperty.call(n, r) && (e[t][r] = n[r])
|
|
}
|
|
}
|
|
let Vs;
|
|
class Ys {
|
|
constructor() {
|
|
this._notifyingListeners = !1, this._scopeListeners = [], this._eventProcessors = [], this._breadcrumbs = [], this._attachments = [], this._user = {}, this._tags = {}, this._extra = {}, this._contexts = {}, this._sdkProcessingMetadata = {}, this._propagationContext = Js()
|
|
}
|
|
static clone(e) {
|
|
return e ? e.clone() : new Ys
|
|
}
|
|
clone() {
|
|
const e = new Ys;
|
|
return e._breadcrumbs = [...this._breadcrumbs], e._tags = {
|
|
...this._tags
|
|
}, e._extra = {
|
|
...this._extra
|
|
}, e._contexts = {
|
|
...this._contexts
|
|
}, e._user = this._user, e._level = this._level, e._span = this._span, e._session = this._session, e._transactionName = this._transactionName, e._fingerprint = this._fingerprint, e._eventProcessors = [...this._eventProcessors], e._requestSession = this._requestSession, e._attachments = [...this._attachments], e._sdkProcessingMetadata = {
|
|
...this._sdkProcessingMetadata
|
|
}, e._propagationContext = {
|
|
...this._propagationContext
|
|
}, e._client = this._client, e
|
|
}
|
|
setClient(e) {
|
|
this._client = e
|
|
}
|
|
getClient() {
|
|
return this._client
|
|
}
|
|
addScopeListener(e) {
|
|
this._scopeListeners.push(e)
|
|
}
|
|
addEventProcessor(e) {
|
|
return this._eventProcessors.push(e), this
|
|
}
|
|
setUser(e) {
|
|
return this._user = e || {
|
|
email: void 0,
|
|
id: void 0,
|
|
ip_address: void 0,
|
|
segment: void 0,
|
|
username: void 0
|
|
}, this._session && Ss(this._session, {
|
|
user: e
|
|
}), this._notifyScopeListeners(), this
|
|
}
|
|
getUser() {
|
|
return this._user
|
|
}
|
|
getRequestSession() {
|
|
return this._requestSession
|
|
}
|
|
setRequestSession(e) {
|
|
return this._requestSession = e, this
|
|
}
|
|
setTags(e) {
|
|
return this._tags = {
|
|
...this._tags,
|
|
...e
|
|
}, this._notifyScopeListeners(), this
|
|
}
|
|
setTag(e, t) {
|
|
return this._tags = {
|
|
...this._tags,
|
|
[e]: t
|
|
}, this._notifyScopeListeners(), this
|
|
}
|
|
setExtras(e) {
|
|
return this._extra = {
|
|
...this._extra,
|
|
...e
|
|
}, this._notifyScopeListeners(), this
|
|
}
|
|
setExtra(e, t) {
|
|
return this._extra = {
|
|
...this._extra,
|
|
[e]: t
|
|
}, this._notifyScopeListeners(), this
|
|
}
|
|
setFingerprint(e) {
|
|
return this._fingerprint = e, this._notifyScopeListeners(), this
|
|
}
|
|
setLevel(e) {
|
|
return this._level = e, this._notifyScopeListeners(), this
|
|
}
|
|
setTransactionName(e) {
|
|
return this._transactionName = e, this._notifyScopeListeners(), this
|
|
}
|
|
setContext(e, t) {
|
|
return null === t ? delete this._contexts[e] : this._contexts[e] = t, this._notifyScopeListeners(), this
|
|
}
|
|
setSpan(e) {
|
|
return this._span = e, this._notifyScopeListeners(), this
|
|
}
|
|
getSpan() {
|
|
return this._span
|
|
}
|
|
getTransaction() {
|
|
const e = this._span;
|
|
return e && e.transaction
|
|
}
|
|
setSession(e) {
|
|
return e ? this._session = e : delete this._session, this._notifyScopeListeners(), this
|
|
}
|
|
getSession() {
|
|
return this._session
|
|
}
|
|
update(e) {
|
|
if (!e) return this;
|
|
const t = "function" == typeof e ? e(this) : e;
|
|
if (t instanceof Ys) {
|
|
const e = t.getScopeData();
|
|
this._tags = {
|
|
...this._tags,
|
|
...e.tags
|
|
}, this._extra = {
|
|
...this._extra,
|
|
...e.extra
|
|
}, this._contexts = {
|
|
...this._contexts,
|
|
...e.contexts
|
|
}, e.user && Object.keys(e.user).length && (this._user = e.user), e.level && (this._level = e.level), e.fingerprint.length && (this._fingerprint = e.fingerprint), t.getRequestSession() && (this._requestSession = t.getRequestSession()), e.propagationContext && (this._propagationContext = e.propagationContext)
|
|
} else if (ya(t)) {
|
|
const t = e;
|
|
this._tags = {
|
|
...this._tags,
|
|
...t.tags
|
|
}, this._extra = {
|
|
...this._extra,
|
|
...t.extra
|
|
}, this._contexts = {
|
|
...this._contexts,
|
|
...t.contexts
|
|
}, t.user && (this._user = t.user), t.level && (this._level = t.level), t.fingerprint && (this._fingerprint = t.fingerprint), t.requestSession && (this._requestSession = t.requestSession), t.propagationContext && (this._propagationContext = t.propagationContext)
|
|
}
|
|
return this
|
|
}
|
|
clear() {
|
|
return this._breadcrumbs = [], this._tags = {}, this._extra = {}, this._user = {}, this._contexts = {}, this._level = void 0, this._transactionName = void 0, this._fingerprint = void 0, this._requestSession = void 0, this._span = void 0, this._session = void 0, this._notifyScopeListeners(), this._attachments = [], this._propagationContext = Js(), this
|
|
}
|
|
addBreadcrumb(e, t) {
|
|
const n = "number" == typeof t ? t : 100;
|
|
if (n <= 0) return this;
|
|
const r = {
|
|
timestamp: us(),
|
|
...e
|
|
},
|
|
o = this._breadcrumbs;
|
|
return o.push(r), this._breadcrumbs = o.length > n ? o.slice(-n) : o, this._notifyScopeListeners(), this
|
|
}
|
|
getLastBreadcrumb() {
|
|
return this._breadcrumbs[this._breadcrumbs.length - 1]
|
|
}
|
|
clearBreadcrumbs() {
|
|
return this._breadcrumbs = [], this._notifyScopeListeners(), this
|
|
}
|
|
addAttachment(e) {
|
|
return this._attachments.push(e), this
|
|
}
|
|
getAttachments() {
|
|
return this.getScopeData().attachments
|
|
}
|
|
clearAttachments() {
|
|
return this._attachments = [], this
|
|
}
|
|
getScopeData() {
|
|
const {
|
|
_breadcrumbs: e,
|
|
_attachments: t,
|
|
_contexts: n,
|
|
_tags: r,
|
|
_extra: o,
|
|
_user: i,
|
|
_level: a,
|
|
_fingerprint: s,
|
|
_eventProcessors: c,
|
|
_propagationContext: u,
|
|
_sdkProcessingMetadata: l,
|
|
_transactionName: f,
|
|
_span: d
|
|
} = this;
|
|
return {
|
|
breadcrumbs: e,
|
|
attachments: t,
|
|
contexts: n,
|
|
tags: r,
|
|
extra: o,
|
|
user: i,
|
|
level: a,
|
|
fingerprint: s || [],
|
|
eventProcessors: c,
|
|
propagationContext: u,
|
|
sdkProcessingMetadata: l,
|
|
transactionName: f,
|
|
span: d
|
|
}
|
|
}
|
|
applyToEvent(e, t = {}, n = []) {
|
|
zs(e, this.getScopeData());
|
|
return bs([...n, ...ys(), ...this._eventProcessors], e, t)
|
|
}
|
|
setSDKProcessingMetadata(e) {
|
|
return this._sdkProcessingMetadata = {
|
|
...this._sdkProcessingMetadata,
|
|
...e
|
|
}, this
|
|
}
|
|
setPropagationContext(e) {
|
|
return this._propagationContext = e, this
|
|
}
|
|
getPropagationContext() {
|
|
return this._propagationContext
|
|
}
|
|
captureException(e, t) {
|
|
const n = t && t.event_id ? t.event_id : ts();
|
|
if (!this._client) return Fa.warn("No client configured on scope - will not capture exception!"), n;
|
|
const r = new Error("Sentry syntheticException");
|
|
return this._client.captureException(e, {
|
|
originalException: e,
|
|
syntheticException: r,
|
|
...t,
|
|
event_id: n
|
|
}, this), n
|
|
}
|
|
captureMessage(e, t, n) {
|
|
const r = n && n.event_id ? n.event_id : ts();
|
|
if (!this._client) return Fa.warn("No client configured on scope - will not capture message!"), r;
|
|
const o = new Error(e);
|
|
return this._client.captureMessage(e, t, {
|
|
originalException: e,
|
|
syntheticException: o,
|
|
...n,
|
|
event_id: r
|
|
}, this), r
|
|
}
|
|
captureEvent(e, t) {
|
|
const n = t && t.event_id ? t.event_id : ts();
|
|
return this._client ? (this._client.captureEvent(e, {
|
|
...t,
|
|
event_id: n
|
|
}, this), n) : (Fa.warn("No client configured on scope - will not capture event!"), n)
|
|
}
|
|
_notifyScopeListeners() {
|
|
this._notifyingListeners || (this._notifyingListeners = !0, this._scopeListeners.forEach(e => {
|
|
e(this)
|
|
}), this._notifyingListeners = !1)
|
|
}
|
|
}
|
|
|
|
function Js() {
|
|
return {
|
|
traceId: ts(),
|
|
spanId: ts().substring(16)
|
|
}
|
|
}
|
|
const Ks = "7.120.4",
|
|
Qs = parseFloat(Ks),
|
|
Xs = 100;
|
|
class Zs {
|
|
constructor(e, t, n, r = Qs) {
|
|
let o, i;
|
|
this._version = r, t ? o = t : (o = new Ys, o.setClient(e)), n ? i = n : (i = new Ys, i.setClient(e)), this._stack = [{
|
|
scope: o
|
|
}], e && this.bindClient(e), this._isolationScope = i
|
|
}
|
|
isOlderThan(e) {
|
|
return this._version < e
|
|
}
|
|
bindClient(e) {
|
|
const t = this.getStackTop();
|
|
t.client = e, t.scope.setClient(e), e && e.setupIntegrations && e.setupIntegrations()
|
|
}
|
|
pushScope() {
|
|
const e = this.getScope().clone();
|
|
return this.getStack().push({
|
|
client: this.getClient(),
|
|
scope: e
|
|
}), e
|
|
}
|
|
popScope() {
|
|
return !(this.getStack().length <= 1) && !!this.getStack().pop()
|
|
}
|
|
withScope(e) {
|
|
const t = this.pushScope();
|
|
let n;
|
|
try {
|
|
n = e(t)
|
|
} catch (e) {
|
|
throw this.popScope(), e
|
|
}
|
|
return ba(n) ? n.then(e => (this.popScope(), e), e => {
|
|
throw this.popScope(), e
|
|
}) : (this.popScope(), n)
|
|
}
|
|
getClient() {
|
|
return this.getStackTop().client
|
|
}
|
|
getScope() {
|
|
return this.getStackTop().scope
|
|
}
|
|
getIsolationScope() {
|
|
return this._isolationScope
|
|
}
|
|
getStack() {
|
|
return this._stack
|
|
}
|
|
getStackTop() {
|
|
return this._stack[this._stack.length - 1]
|
|
}
|
|
captureException(e, t) {
|
|
const n = this._lastEventId = t && t.event_id ? t.event_id : ts(),
|
|
r = new Error("Sentry syntheticException");
|
|
return this.getScope().captureException(e, {
|
|
originalException: e,
|
|
syntheticException: r,
|
|
...t,
|
|
event_id: n
|
|
}), n
|
|
}
|
|
captureMessage(e, t, n) {
|
|
const r = this._lastEventId = n && n.event_id ? n.event_id : ts(),
|
|
o = new Error(e);
|
|
return this.getScope().captureMessage(e, t, {
|
|
originalException: e,
|
|
syntheticException: o,
|
|
...n,
|
|
event_id: r
|
|
}), r
|
|
}
|
|
captureEvent(e, t) {
|
|
const n = t && t.event_id ? t.event_id : ts();
|
|
return e.type || (this._lastEventId = n), this.getScope().captureEvent(e, {
|
|
...t,
|
|
event_id: n
|
|
}), n
|
|
}
|
|
lastEventId() {
|
|
return this._lastEventId
|
|
}
|
|
addBreadcrumb(e, t) {
|
|
const {
|
|
scope: n,
|
|
client: r
|
|
} = this.getStackTop();
|
|
if (!r) return;
|
|
const {
|
|
beforeBreadcrumb: o = null,
|
|
maxBreadcrumbs: i = Xs
|
|
} = r.getOptions && r.getOptions() || {};
|
|
if (i <= 0) return;
|
|
const a = {
|
|
timestamp: us(),
|
|
...e
|
|
},
|
|
s = o ? La(() => o(a, t)) : a;
|
|
null !== s && (r.emit && r.emit("beforeAddBreadcrumb", s, t), n.addBreadcrumb(s, i))
|
|
}
|
|
setUser(e) {
|
|
this.getScope().setUser(e), this.getIsolationScope().setUser(e)
|
|
}
|
|
setTags(e) {
|
|
this.getScope().setTags(e), this.getIsolationScope().setTags(e)
|
|
}
|
|
setExtras(e) {
|
|
this.getScope().setExtras(e), this.getIsolationScope().setExtras(e)
|
|
}
|
|
setTag(e, t) {
|
|
this.getScope().setTag(e, t), this.getIsolationScope().setTag(e, t)
|
|
}
|
|
setExtra(e, t) {
|
|
this.getScope().setExtra(e, t), this.getIsolationScope().setExtra(e, t)
|
|
}
|
|
setContext(e, t) {
|
|
this.getScope().setContext(e, t), this.getIsolationScope().setContext(e, t)
|
|
}
|
|
configureScope(e) {
|
|
const {
|
|
scope: t,
|
|
client: n
|
|
} = this.getStackTop();
|
|
n && e(t)
|
|
}
|
|
run(e) {
|
|
const t = tc(this);
|
|
try {
|
|
e(this)
|
|
} finally {
|
|
tc(t)
|
|
}
|
|
}
|
|
getIntegration(e) {
|
|
const t = this.getClient();
|
|
if (!t) return null;
|
|
try {
|
|
return t.getIntegration(e)
|
|
} catch (t) {
|
|
return es && Fa.warn(`Cannot retrieve integration ${e.id} from the current Hub`), null
|
|
}
|
|
}
|
|
startTransaction(e, t) {
|
|
const n = this._callExtensionMethod("startTransaction", e, t);
|
|
if (es && !n) {
|
|
this.getClient() ? Fa.warn("Tracing extension 'startTransaction' has not been added. Call 'addTracingExtensions' before calling 'init':\nSentry.addTracingExtensions();\nSentry.init({...});\n") : Fa.warn("Tracing extension 'startTransaction' is missing. You should 'init' the SDK before calling 'startTransaction'")
|
|
}
|
|
return n
|
|
}
|
|
traceHeaders() {
|
|
return this._callExtensionMethod("traceHeaders")
|
|
}
|
|
captureSession(e = !1) {
|
|
if (e) return this.endSession();
|
|
this._sendSessionUpdate()
|
|
}
|
|
endSession() {
|
|
const e = this.getStackTop().scope,
|
|
t = e.getSession();
|
|
t && ws(t), this._sendSessionUpdate(), e.setSession()
|
|
}
|
|
startSession(e) {
|
|
const {
|
|
scope: t,
|
|
client: n
|
|
} = this.getStackTop(), {
|
|
release: r,
|
|
environment: o = Za
|
|
} = n && n.getOptions() || {}, {
|
|
userAgent: i
|
|
} = Ea.navigator || {}, a = _s({
|
|
release: r,
|
|
environment: o,
|
|
user: t.getUser(),
|
|
...i && {
|
|
userAgent: i
|
|
},
|
|
...e
|
|
}), s = t.getSession && t.getSession();
|
|
return s && "ok" === s.status && Ss(s, {
|
|
status: "exited"
|
|
}), this.endSession(), t.setSession(a), a
|
|
}
|
|
shouldSendDefaultPii() {
|
|
const e = this.getClient(),
|
|
t = e && e.getOptions();
|
|
return Boolean(t && t.sendDefaultPii)
|
|
}
|
|
_sendSessionUpdate() {
|
|
const {
|
|
scope: e,
|
|
client: t
|
|
} = this.getStackTop(), n = e.getSession();
|
|
n && t && t.captureSession && t.captureSession(n)
|
|
}
|
|
_callExtensionMethod(e, ...t) {
|
|
const n = ec().__SENTRY__;
|
|
if (n && n.extensions && "function" == typeof n.extensions[e]) return n.extensions[e].apply(this, t);
|
|
es && Fa.warn(`Extension method ${e} couldn't be found, doing nothing.`)
|
|
}
|
|
}
|
|
|
|
function ec() {
|
|
return Ea.__SENTRY__ = Ea.__SENTRY__ || {
|
|
extensions: {},
|
|
hub: void 0
|
|
}, Ea
|
|
}
|
|
|
|
function tc(e) {
|
|
const t = ec(),
|
|
n = sc(t);
|
|
return cc(t, e), n
|
|
}
|
|
|
|
function nc() {
|
|
const e = ec();
|
|
if (e.__SENTRY__ && e.__SENTRY__.acs) {
|
|
const t = e.__SENTRY__.acs.getCurrentHub();
|
|
if (t) return t
|
|
}
|
|
return oc(e)
|
|
}
|
|
|
|
function rc() {
|
|
return nc().getIsolationScope()
|
|
}
|
|
|
|
function oc(e = ec()) {
|
|
return ac(e) && !sc(e).isOlderThan(Qs) || cc(e, new Zs), sc(e)
|
|
}
|
|
|
|
function ic(e, t = {}) {
|
|
const n = ec();
|
|
return n.__SENTRY__ && n.__SENTRY__.acs ? n.__SENTRY__.acs.runWithAsyncContext(e, t) : e()
|
|
}
|
|
|
|
function ac(e) {
|
|
return !!(e && e.__SENTRY__ && e.__SENTRY__.hub)
|
|
}
|
|
|
|
function sc(e) {
|
|
return Ta("hub", () => new Zs, e)
|
|
}
|
|
|
|
function cc(e, t) {
|
|
if (!e) return !1;
|
|
return (e.__SENTRY__ = e.__SENTRY__ || {}).hub = t, !0
|
|
}
|
|
const uc = 50,
|
|
lc = /\(error: (.*)\)/,
|
|
fc = /captureMessage|captureException/;
|
|
|
|
function dc(...e) {
|
|
const t = e.sort((e, t) => e[0] - t[0]).map(e => e[1]);
|
|
return (e, n = 0) => {
|
|
const r = [],
|
|
o = e.split("\n");
|
|
for (let e = n; e < o.length; e++) {
|
|
const n = o[e];
|
|
if (n.length > 1024) continue;
|
|
const i = lc.test(n) ? n.replace(lc, "$1") : n;
|
|
if (!i.match(/\S*Error: /)) {
|
|
for (const e of t) {
|
|
const t = e(i);
|
|
if (t) {
|
|
r.push(t);
|
|
break
|
|
}
|
|
}
|
|
if (r.length >= uc) break
|
|
}
|
|
}
|
|
return function(e) {
|
|
if (!e.length) return [];
|
|
const t = Array.from(e);
|
|
/sentryWrapped/.test(t[t.length - 1].function || "") && t.pop();
|
|
t.reverse(), fc.test(t[t.length - 1].function || "") && (t.pop(), fc.test(t[t.length - 1].function || "") && t.pop());
|
|
return t.slice(0, uc).map(e => ({
|
|
...e,
|
|
filename: e.filename || t[t.length - 1].filename,
|
|
function: e.function || "?"
|
|
}))
|
|
}(r)
|
|
}
|
|
}
|
|
const pc = "<anonymous>";
|
|
|
|
function hc(e) {
|
|
try {
|
|
return e && "function" == typeof e && e.name || pc
|
|
} catch (e) {
|
|
return pc
|
|
}
|
|
}
|
|
|
|
function mc(e, t = 100, n = 1 / 0) {
|
|
try {
|
|
return yc("", e, t, n)
|
|
} catch (e) {
|
|
return {
|
|
ERROR: `**non-serializable** (${e})`
|
|
}
|
|
}
|
|
}
|
|
|
|
function gc(e, t = 3, n = 102400) {
|
|
const r = mc(e, t);
|
|
return o = r,
|
|
function(e) {
|
|
return ~-encodeURI(e).split(/%..|./).length
|
|
}(JSON.stringify(o)) > n ? gc(e, t - 1, n) : r;
|
|
var o
|
|
}
|
|
|
|
function yc(e, t, r = 1 / 0, o = 1 / 0, i = function() {
|
|
const e = "function" == typeof WeakSet,
|
|
t = e ? new WeakSet : [];
|
|
return [function(n) {
|
|
if (e) return !!t.has(n) || (t.add(n), !1);
|
|
for (let e = 0; e < t.length; e++)
|
|
if (t[e] === n) return !0;
|
|
return t.push(n), !1
|
|
}, function(n) {
|
|
if (e) t.delete(n);
|
|
else
|
|
for (let e = 0; e < t.length; e++)
|
|
if (t[e] === n) {
|
|
t.splice(e, 1);
|
|
break
|
|
}
|
|
}]
|
|
}()) {
|
|
const [a, s] = i;
|
|
if (null == t || ["number", "boolean", "string"].includes(typeof t) && !_a(t)) return t;
|
|
const c = function(e, t) {
|
|
try {
|
|
if ("domain" === e && t && "object" == typeof t && t._events) return "[Domain]";
|
|
if ("domainEmitter" === e) return "[DomainEmitter]";
|
|
if (void 0 !== n.g && t === n.g) return "[Global]";
|
|
if ("undefined" != typeof window && t === window) return "[Window]";
|
|
if ("undefined" != typeof document && t === document) return "[Document]";
|
|
if (wa(t)) return "[VueViewModel]";
|
|
if (ya(r = t) && "nativeEvent" in r && "preventDefault" in r && "stopPropagation" in r) return "[SyntheticEvent]";
|
|
if ("number" == typeof t && t != t) return "[NaN]";
|
|
if ("function" == typeof t) return `[Function: ${hc(t)}]`;
|
|
if ("symbol" == typeof t) return `[${String(t)}]`;
|
|
if ("bigint" == typeof t) return `[BigInt: ${String(t)}]`;
|
|
const o = function(e) {
|
|
const t = Object.getPrototypeOf(e);
|
|
return t ? t.constructor.name : "null prototype"
|
|
}(t);
|
|
return /^HTML(\w*)Element$/.test(o) ? `[HTMLElement: ${o}]` : `[object ${o}]`
|
|
} catch (e) {
|
|
return `**non-serializable** (${e})`
|
|
}
|
|
var r
|
|
}(e, t);
|
|
if (!c.startsWith("[object ")) return c;
|
|
if (t.__sentry_skip_normalization__) return t;
|
|
const u = "number" == typeof t.__sentry_override_normalization_depth__ ? t.__sentry_override_normalization_depth__ : r;
|
|
if (0 === u) return c.replace("object ", "");
|
|
if (a(t)) return "[Circular ~]";
|
|
const l = t;
|
|
if (l && "function" == typeof l.toJSON) try {
|
|
return yc("", l.toJSON(), u - 1, o, i)
|
|
} catch (e) {}
|
|
const f = Array.isArray(t) ? [] : {};
|
|
let d = 0;
|
|
const p = Ya(t);
|
|
for (const e in p) {
|
|
if (!Object.prototype.hasOwnProperty.call(p, e)) continue;
|
|
if (d >= o) {
|
|
f[e] = "[MaxProperties ~]";
|
|
break
|
|
}
|
|
const t = p[e];
|
|
f[e] = yc(e, t, u - 1, o, i), d++
|
|
}
|
|
return s(t), f
|
|
}
|
|
|
|
function vc(e, t, n, r, o, i) {
|
|
const {
|
|
normalizeDepth: a = 3,
|
|
normalizeMaxBreadth: s = 1e3
|
|
} = e, c = {
|
|
...t,
|
|
event_id: t.event_id || n.event_id || ts(),
|
|
timestamp: t.timestamp || us()
|
|
}, u = n.integrations || e.integrations.map(e => e.name);
|
|
! function(e, t) {
|
|
const {
|
|
environment: n,
|
|
release: r,
|
|
dist: o,
|
|
maxValueLength: i = 250
|
|
} = t;
|
|
"environment" in e || (e.environment = "environment" in t ? n : Za);
|
|
void 0 === e.release && void 0 !== r && (e.release = r);
|
|
void 0 === e.dist && void 0 !== o && (e.dist = o);
|
|
e.message && (e.message = Ba(e.message, i));
|
|
const a = e.exception && e.exception.values && e.exception.values[0];
|
|
a && a.value && (a.value = Ba(a.value, i));
|
|
const s = e.request;
|
|
s && s.url && (s.url = Ba(s.url, i))
|
|
}(c, e),
|
|
function(e, t) {
|
|
t.length > 0 && (e.sdk = e.sdk || {}, e.sdk.integrations = [...e.sdk.integrations || [], ...t])
|
|
}(c, u), void 0 === t.type && function(e, t) {
|
|
const n = Ea._sentryDebugIds;
|
|
if (!n) return;
|
|
let r;
|
|
const o = bc.get(t);
|
|
o ? r = o : (r = new Map, bc.set(t, r));
|
|
const i = Object.keys(n).reduce((e, o) => {
|
|
let i;
|
|
const a = r.get(o);
|
|
a ? i = a : (i = t(o), r.set(o, i));
|
|
for (let t = i.length - 1; t >= 0; t--) {
|
|
const r = i[t];
|
|
if (r.filename) {
|
|
e[r.filename] = n[o];
|
|
break
|
|
}
|
|
}
|
|
return e
|
|
}, {});
|
|
try {
|
|
e.exception.values.forEach(e => {
|
|
e.stacktrace.frames.forEach(e => {
|
|
e.filename && (e.debug_id = i[e.filename])
|
|
})
|
|
})
|
|
} catch (e) {}
|
|
}(c, e.stackParser);
|
|
const l = function(e, t) {
|
|
if (!t) return e;
|
|
const n = e ? e.clone() : new Ys;
|
|
return n.update(t), n
|
|
}(r, n.captureContext);
|
|
n.mechanism && is(c, n.mechanism);
|
|
const f = o && o.getEventProcessors ? o.getEventProcessors() : [],
|
|
d = (Vs || (Vs = new Ys), Vs).getScopeData();
|
|
if (i) {
|
|
qs(d, i.getScopeData())
|
|
}
|
|
if (l) {
|
|
qs(d, l.getScopeData())
|
|
}
|
|
const p = [...n.attachments || [], ...d.attachments];
|
|
p.length && (n.attachments = p), zs(c, d);
|
|
return bs([...f, ...ys(), ...d.eventProcessors], c, n).then(e => (e && function(e) {
|
|
const t = {};
|
|
try {
|
|
e.exception.values.forEach(e => {
|
|
e.stacktrace.frames.forEach(e => {
|
|
e.debug_id && (e.abs_path ? t[e.abs_path] = e.debug_id : e.filename && (t[e.filename] = e.debug_id), delete e.debug_id)
|
|
})
|
|
})
|
|
} catch (e) {}
|
|
if (0 === Object.keys(t).length) return;
|
|
e.debug_meta = e.debug_meta || {}, e.debug_meta.images = e.debug_meta.images || [];
|
|
const n = e.debug_meta.images;
|
|
Object.keys(t).forEach(e => {
|
|
n.push({
|
|
type: "sourcemap",
|
|
code_file: e,
|
|
debug_id: t[e]
|
|
})
|
|
})
|
|
}(e), "number" == typeof a && a > 0 ? function(e, t, n) {
|
|
if (!e) return null;
|
|
const r = {
|
|
...e,
|
|
...e.breadcrumbs && {
|
|
breadcrumbs: e.breadcrumbs.map(e => ({
|
|
...e,
|
|
...e.data && {
|
|
data: mc(e.data, t, n)
|
|
}
|
|
}))
|
|
},
|
|
...e.user && {
|
|
user: mc(e.user, t, n)
|
|
},
|
|
...e.contexts && {
|
|
contexts: mc(e.contexts, t, n)
|
|
},
|
|
...e.extra && {
|
|
extra: mc(e.extra, t, n)
|
|
}
|
|
};
|
|
e.contexts && e.contexts.trace && r.contexts && (r.contexts.trace = e.contexts.trace, e.contexts.trace.data && (r.contexts.trace.data = mc(e.contexts.trace.data, t, n)));
|
|
e.spans && (r.spans = e.spans.map(e => {
|
|
const r = Us(e).data;
|
|
return r && (e.data = mc(r, t, n)), e
|
|
}));
|
|
return r
|
|
}(e, a, s) : e))
|
|
}
|
|
const bc = new WeakMap;
|
|
|
|
function _c(e) {
|
|
if (e) return function(e) {
|
|
return e instanceof Ys || "function" == typeof e
|
|
}(e) || function(e) {
|
|
return Object.keys(e).some(e => Sc.includes(e))
|
|
}(e) ? {
|
|
captureContext: e
|
|
} : e
|
|
}
|
|
const Sc = ["user", "level", "extra", "contexts", "tags", "fingerprint", "requestSession", "propagationContext"];
|
|
|
|
function wc(e, t) {
|
|
return nc().captureException(e, _c(t))
|
|
}
|
|
|
|
function Oc(e, t) {
|
|
const n = "string" == typeof t ? t : void 0,
|
|
r = "string" != typeof t ? {
|
|
captureContext: t
|
|
} : void 0;
|
|
return nc().captureMessage(e, n, r)
|
|
}
|
|
|
|
function Ec(e, t) {
|
|
return nc().captureEvent(e, t)
|
|
}
|
|
|
|
function kc(e) {
|
|
nc().configureScope(e)
|
|
}
|
|
|
|
function Tc(e, t) {
|
|
nc().addBreadcrumb(e, t)
|
|
}
|
|
|
|
function xc(e, t) {
|
|
nc().setContext(e, t)
|
|
}
|
|
|
|
function Ic(e) {
|
|
nc().setExtras(e)
|
|
}
|
|
|
|
function Pc(e, t) {
|
|
nc().setExtra(e, t)
|
|
}
|
|
|
|
function Ac(e) {
|
|
nc().setTags(e)
|
|
}
|
|
|
|
function Cc(e, t) {
|
|
nc().setTag(e, t)
|
|
}
|
|
|
|
function jc(e) {
|
|
nc().setUser(e)
|
|
}
|
|
|
|
function Rc(...e) {
|
|
const t = nc();
|
|
if (2 === e.length) {
|
|
const [n, r] = e;
|
|
return n ? t.withScope(() => (t.getStackTop().scope = n, r(n))) : t.withScope(r)
|
|
}
|
|
return t.withScope(e[0])
|
|
}
|
|
|
|
function Mc(e) {
|
|
return ic(() => e(rc()))
|
|
}
|
|
|
|
function Dc(e, t) {
|
|
return Rc(n => (n.setSpan(e), t(n)))
|
|
}
|
|
|
|
function Nc(e, t) {
|
|
return nc().startTransaction({
|
|
...e
|
|
}, t)
|
|
}
|
|
async function Lc(e) {
|
|
const t = Uc();
|
|
return t ? t.flush(e) : (es && Fa.warn("Cannot flush events. No client defined."), Promise.resolve(!1))
|
|
}
|
|
async function Fc(e) {
|
|
const t = Uc();
|
|
return t ? t.close(e) : (es && Fa.warn("Cannot flush events and disable SDK. No client defined."), Promise.resolve(!1))
|
|
}
|
|
|
|
function Bc() {
|
|
return nc().lastEventId()
|
|
}
|
|
|
|
function Uc() {
|
|
return nc().getClient()
|
|
}
|
|
|
|
function Gc() {
|
|
return !!Uc()
|
|
}
|
|
|
|
function $c() {
|
|
return nc().getScope()
|
|
}
|
|
|
|
function Hc(e) {
|
|
const t = Uc(),
|
|
n = rc(),
|
|
r = $c(),
|
|
{
|
|
release: o,
|
|
environment: i = Za
|
|
} = t && t.getOptions() || {},
|
|
{
|
|
userAgent: a
|
|
} = Ea.navigator || {},
|
|
s = _s({
|
|
release: o,
|
|
environment: i,
|
|
user: r.getUser() || n.getUser(),
|
|
...a && {
|
|
userAgent: a
|
|
},
|
|
...e
|
|
}),
|
|
c = n.getSession();
|
|
return c && "ok" === c.status && Ss(c, {
|
|
status: "exited"
|
|
}), zc(), n.setSession(s), r.setSession(s), s
|
|
}
|
|
|
|
function zc() {
|
|
const e = rc(),
|
|
t = $c(),
|
|
n = t.getSession() || e.getSession();
|
|
n && ws(n), qc(), e.setSession(), t.setSession()
|
|
}
|
|
|
|
function qc() {
|
|
const e = rc(),
|
|
t = $c(),
|
|
n = Uc(),
|
|
r = t.getSession() || e.getSession();
|
|
r && n && n.captureSession && n.captureSession(r)
|
|
}
|
|
|
|
function Wc(e = !1) {
|
|
e ? zc() : qc()
|
|
}
|
|
const Vc = [];
|
|
|
|
function Yc(e) {
|
|
const t = e.defaultIntegrations || [],
|
|
n = e.integrations;
|
|
let r;
|
|
t.forEach(e => {
|
|
e.isDefaultInstance = !0
|
|
}), r = Array.isArray(n) ? [...t, ...n] : "function" == typeof n ? ss(n(t)) : t;
|
|
const o = function(e) {
|
|
const t = {};
|
|
return e.forEach(e => {
|
|
const {
|
|
name: n
|
|
} = e, r = t[n];
|
|
r && !r.isDefaultInstance && e.isDefaultInstance || (t[n] = e)
|
|
}), Object.keys(t).map(e => t[e])
|
|
}(r),
|
|
i = function(e, t) {
|
|
for (let n = 0; n < e.length; n++)
|
|
if (!0 === t(e[n])) return n;
|
|
return -1
|
|
}(o, e => "Debug" === e.name);
|
|
if (-1 !== i) {
|
|
const [e] = o.splice(i, 1);
|
|
o.push(e)
|
|
}
|
|
return o
|
|
}
|
|
|
|
function Jc(e, t) {
|
|
for (const n of t) n && n.afterAllSetup && n.afterAllSetup(e)
|
|
}
|
|
|
|
function Kc(e, t, n) {
|
|
if (n[t.name]) es && Fa.log(`Integration skipped because it was already installed: ${t.name}`);
|
|
else {
|
|
if (n[t.name] = t, -1 === Vc.indexOf(t.name) && (t.setupOnce(vs, nc), Vc.push(t.name)), t.setup && "function" == typeof t.setup && t.setup(e), e.on && "function" == typeof t.preprocessEvent) {
|
|
const n = t.preprocessEvent.bind(t);
|
|
e.on("preprocessEvent", (t, r) => n(t, r, e))
|
|
}
|
|
if (e.addEventProcessor && "function" == typeof t.processEvent) {
|
|
const n = t.processEvent.bind(t),
|
|
r = (t, r) => n(t, r, e);
|
|
r.id = t.name, e.addEventProcessor(r)
|
|
}
|
|
es && Fa.log(`Integration installed: ${t.name}`)
|
|
}
|
|
}
|
|
|
|
function Qc(e) {
|
|
const t = Uc();
|
|
t && t.addIntegration ? t.addIntegration(e) : es && Fa.warn(`Cannot add integration "${e.name}" because no SDK Client is available.`)
|
|
}
|
|
|
|
function Xc(e, t) {
|
|
const n = function(...e) {
|
|
return t(...e)
|
|
};
|
|
return n.id = e, n
|
|
}
|
|
let Zc;
|
|
const eu = "FunctionToString",
|
|
tu = new WeakMap,
|
|
nu = () => ({
|
|
name: eu,
|
|
setupOnce() {
|
|
Zc = Function.prototype.toString;
|
|
try {
|
|
Function.prototype.toString = function(...e) {
|
|
const t = Va(this),
|
|
n = tu.has(Uc()) && void 0 !== t ? t : this;
|
|
return Zc.apply(n, e)
|
|
}
|
|
} catch (e) {}
|
|
},
|
|
setup(e) {
|
|
tu.set(e, !0)
|
|
}
|
|
}),
|
|
ru = Xc(eu, nu),
|
|
ou = [/^Script error\.?$/, /^Javascript error: Script error\.? on line 0$/, /^ResizeObserver loop completed with undelivered notifications.$/, /^Cannot redefine property: googletag$/],
|
|
iu = [/^.*\/healthcheck$/, /^.*\/healthy$/, /^.*\/live$/, /^.*\/ready$/, /^.*\/heartbeat$/, /^.*\/health$/, /^.*\/healthz$/],
|
|
au = "InboundFilters",
|
|
su = (e = {}) => ({
|
|
name: au,
|
|
setupOnce() {},
|
|
processEvent(t, n, r) {
|
|
const o = r.getOptions(),
|
|
i = function(e = {}, t = {}) {
|
|
return {
|
|
allowUrls: [...e.allowUrls || [], ...t.allowUrls || []],
|
|
denyUrls: [...e.denyUrls || [], ...t.denyUrls || []],
|
|
ignoreErrors: [...e.ignoreErrors || [], ...t.ignoreErrors || [], ...e.disableErrorDefaults ? [] : ou],
|
|
ignoreTransactions: [...e.ignoreTransactions || [], ...t.ignoreTransactions || [], ...e.disableTransactionDefaults ? [] : iu],
|
|
ignoreInternal: void 0 === e.ignoreInternal || e.ignoreInternal
|
|
}
|
|
}(e, o);
|
|
return function(e, t) {
|
|
if (t.ignoreInternal && function(e) {
|
|
try {
|
|
return "SentryError" === e.exception.values[0].type
|
|
} catch (e) {}
|
|
return !1
|
|
}(e)) return es && Fa.warn(`Event dropped due to being internal Sentry Error.\nEvent: ${rs(e)}`), !0;
|
|
if (function(e, t) {
|
|
if (e.type || !t || !t.length) return !1;
|
|
return function(e) {
|
|
const t = [];
|
|
e.message && t.push(e.message);
|
|
let n;
|
|
try {
|
|
n = e.exception.values[e.exception.values.length - 1]
|
|
} catch (e) {}
|
|
n && n.value && (t.push(n.value), n.type && t.push(`${n.type}: ${n.value}`));
|
|
es && 0 === t.length && Fa.error(`Could not extract message for event ${rs(e)}`);
|
|
return t
|
|
}(e).some(e => Ha(e, t))
|
|
}(e, t.ignoreErrors)) return es && Fa.warn(`Event dropped due to being matched by \`ignoreErrors\` option.\nEvent: ${rs(e)}`), !0;
|
|
if (function(e, t) {
|
|
if ("transaction" !== e.type || !t || !t.length) return !1;
|
|
const n = e.transaction;
|
|
return !!n && Ha(n, t)
|
|
}(e, t.ignoreTransactions)) return es && Fa.warn(`Event dropped due to being matched by \`ignoreTransactions\` option.\nEvent: ${rs(e)}`), !0;
|
|
if (function(e, t) {
|
|
if (!t || !t.length) return !1;
|
|
const n = uu(e);
|
|
return !!n && Ha(n, t)
|
|
}(e, t.denyUrls)) return es && Fa.warn(`Event dropped due to being matched by \`denyUrls\` option.\nEvent: ${rs(e)}.\nUrl: ${uu(e)}`), !0;
|
|
if (! function(e, t) {
|
|
if (!t || !t.length) return !0;
|
|
const n = uu(e);
|
|
return !n || Ha(n, t)
|
|
}(e, t.allowUrls)) return es && Fa.warn(`Event dropped due to not being matched by \`allowUrls\` option.\nEvent: ${rs(e)}.\nUrl: ${uu(e)}`), !0;
|
|
return !1
|
|
}(t, i) ? null : t
|
|
}
|
|
}),
|
|
cu = Xc(au, su);
|
|
|
|
function uu(e) {
|
|
try {
|
|
let t;
|
|
try {
|
|
t = e.exception.values[0].stacktrace.frames
|
|
} catch (e) {}
|
|
return t ? function(e = []) {
|
|
for (let t = e.length - 1; t >= 0; t--) {
|
|
const n = e[t];
|
|
if (n && "<anonymous>" !== n.filename && "[native code]" !== n.filename) return n.filename || null
|
|
}
|
|
return null
|
|
}(t) : null
|
|
} catch (t) {
|
|
return es && Fa.error(`Cannot extract url for event ${rs(e)}`), null
|
|
}
|
|
}
|
|
|
|
function lu(e, t, n = 250, r, o, i, a) {
|
|
if (!(i.exception && i.exception.values && a && Sa(a.originalException, Error))) return;
|
|
const s = i.exception.values.length > 0 ? i.exception.values[i.exception.values.length - 1] : void 0;
|
|
var c, u;
|
|
s && (i.exception.values = (c = fu(e, t, o, a.originalException, r, i.exception.values, s, 0), u = n, c.map(e => (e.value && (e.value = Ba(e.value, u)), e))))
|
|
}
|
|
|
|
function fu(e, t, n, r, o, i, a, s) {
|
|
if (i.length >= n + 1) return i;
|
|
let c = [...i];
|
|
if (Sa(r[o], Error)) {
|
|
du(a, s);
|
|
const i = e(t, r[o]),
|
|
u = c.length;
|
|
pu(i, o, u, s), c = fu(e, t, n, r[o], o, [i, ...c], i, u)
|
|
}
|
|
return Array.isArray(r.errors) && r.errors.forEach((r, i) => {
|
|
if (Sa(r, Error)) {
|
|
du(a, s);
|
|
const u = e(t, r),
|
|
l = c.length;
|
|
pu(u, `errors[${i}]`, l, s), c = fu(e, t, n, r, o, [u, ...c], u, l)
|
|
}
|
|
}), c
|
|
}
|
|
|
|
function du(e, t) {
|
|
e.mechanism = e.mechanism || {
|
|
type: "generic",
|
|
handled: !0
|
|
}, e.mechanism = {
|
|
...e.mechanism,
|
|
..."AggregateError" === e.type && {
|
|
is_exception_group: !0
|
|
},
|
|
exception_id: t
|
|
}
|
|
}
|
|
|
|
function pu(e, t, n, r) {
|
|
e.mechanism = e.mechanism || {
|
|
type: "generic",
|
|
handled: !0
|
|
}, e.mechanism = {
|
|
...e.mechanism,
|
|
type: "chained",
|
|
source: t,
|
|
exception_id: n,
|
|
parent_id: r
|
|
}
|
|
}
|
|
|
|
function hu(e, t) {
|
|
return e(t.stack || "", 1)
|
|
}
|
|
|
|
function mu(e, t) {
|
|
const n = {
|
|
type: t.name || t.constructor.name,
|
|
value: t.message
|
|
},
|
|
r = hu(e, t);
|
|
return r.length && (n.stacktrace = {
|
|
frames: r
|
|
}), n
|
|
}
|
|
const gu = "LinkedErrors",
|
|
yu = Xc(gu, (e = {}) => {
|
|
const t = e.limit || 5,
|
|
n = e.key || "cause";
|
|
return {
|
|
name: gu,
|
|
setupOnce() {},
|
|
preprocessEvent(e, r, o) {
|
|
const i = o.getOptions();
|
|
lu(mu, i.stackParser, i.maxValueLength, n, t, e, r)
|
|
}
|
|
}
|
|
}),
|
|
vu = r,
|
|
bu = /^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)([\w.-]+)(?::(\d+))?\/(.+)/;
|
|
|
|
function _u(e, t = !1) {
|
|
const {
|
|
host: n,
|
|
path: r,
|
|
pass: o,
|
|
port: i,
|
|
projectId: a,
|
|
protocol: s,
|
|
publicKey: c
|
|
} = e;
|
|
return `${s}://${c}${t&&o?`:${o}`:""}@${n}${i?`:${i}`:""}/${r?`${r}/`:r}${a}`
|
|
}
|
|
|
|
function Su(e) {
|
|
const t = bu.exec(e);
|
|
if (!t) return void La(() => {
|
|
console.error(`Invalid Sentry Dsn: ${e}`)
|
|
});
|
|
const [n, r, o = "", i, a = "", s] = t.slice(1);
|
|
let c = "",
|
|
u = s;
|
|
const l = u.split("/");
|
|
if (l.length > 1 && (c = l.slice(0, -1).join("/"), u = l.pop()), u) {
|
|
const e = u.match(/^\d+/);
|
|
e && (u = e[0])
|
|
}
|
|
return wu({
|
|
host: i,
|
|
pass: o,
|
|
path: c,
|
|
projectId: u,
|
|
port: a,
|
|
protocol: n,
|
|
publicKey: r
|
|
})
|
|
}
|
|
|
|
function wu(e) {
|
|
return {
|
|
protocol: e.protocol,
|
|
publicKey: e.publicKey || "",
|
|
pass: e.pass || "",
|
|
host: e.host,
|
|
port: e.port || "",
|
|
path: e.path || "",
|
|
projectId: e.projectId
|
|
}
|
|
}
|
|
|
|
function Ou(e) {
|
|
const t = "string" == typeof e ? Su(e) : wu(e);
|
|
if (t && function(e) {
|
|
if (!Ma) return !0;
|
|
const {
|
|
port: t,
|
|
projectId: n,
|
|
protocol: r
|
|
} = e;
|
|
return !(["protocol", "publicKey", "host", "projectId"].find(t => !e[t] && (Fa.error(`Invalid Sentry Dsn: ${t} missing`), !0)) || (n.match(/^\d+$/) ? function(e) {
|
|
return "http" === e || "https" === e
|
|
}(r) ? t && isNaN(parseInt(t, 10)) && (Fa.error(`Invalid Sentry Dsn: Invalid port ${t}`), 1) : (Fa.error(`Invalid Sentry Dsn: Invalid protocol ${r}`), 1) : (Fa.error(`Invalid Sentry Dsn: Invalid projectId ${n}`), 1)))
|
|
}(t)) return t
|
|
}
|
|
|
|
function Eu(e, t = []) {
|
|
return [e, t]
|
|
}
|
|
|
|
function ku(e, t) {
|
|
const [n, r] = e;
|
|
return [n, [...r, t]]
|
|
}
|
|
|
|
function Tu(e, t) {
|
|
const n = e[1];
|
|
for (const e of n) {
|
|
if (t(e, e[0].type)) return !0
|
|
}
|
|
return !1
|
|
}
|
|
|
|
function xu(e, t) {
|
|
return (t || new TextEncoder).encode(e)
|
|
}
|
|
|
|
function Iu(e, t) {
|
|
const [n, r] = e;
|
|
let o = JSON.stringify(n);
|
|
|
|
function i(e) {
|
|
"string" == typeof o ? o = "string" == typeof e ? o + e : [xu(o, t), e] : o.push("string" == typeof e ? xu(e, t) : e)
|
|
}
|
|
for (const e of r) {
|
|
const [t, n] = e;
|
|
if (i(`\n${JSON.stringify(t)}\n`), "string" == typeof n || n instanceof Uint8Array) i(n);
|
|
else {
|
|
let e;
|
|
try {
|
|
e = JSON.stringify(n)
|
|
} catch (t) {
|
|
e = JSON.stringify(mc(n))
|
|
}
|
|
i(e)
|
|
}
|
|
}
|
|
return "string" == typeof o ? o : function(e) {
|
|
const t = e.reduce((e, t) => e + t.length, 0),
|
|
n = new Uint8Array(t);
|
|
let r = 0;
|
|
for (const t of e) n.set(t, r), r += t.length;
|
|
return n
|
|
}(o)
|
|
}
|
|
|
|
function Pu(e, t) {
|
|
const n = "string" == typeof e.data ? xu(e.data, t) : e.data;
|
|
return [Qa({
|
|
type: "attachment",
|
|
length: n.length,
|
|
filename: e.filename,
|
|
content_type: e.contentType,
|
|
attachment_type: e.attachmentType
|
|
}), n]
|
|
}
|
|
const Au = {
|
|
session: "session",
|
|
sessions: "session",
|
|
attachment: "attachment",
|
|
transaction: "transaction",
|
|
event: "error",
|
|
client_report: "internal",
|
|
user_report: "default",
|
|
profile: "profile",
|
|
replay_event: "replay",
|
|
replay_recording: "replay",
|
|
check_in: "monitor",
|
|
feedback: "feedback",
|
|
span: "span",
|
|
statsd: "metric_bucket"
|
|
};
|
|
|
|
function Cu(e) {
|
|
return Au[e]
|
|
}
|
|
|
|
function ju(e) {
|
|
if (!e || !e.sdk) return;
|
|
const {
|
|
name: t,
|
|
version: n
|
|
} = e.sdk;
|
|
return {
|
|
name: t,
|
|
version: n
|
|
}
|
|
}
|
|
|
|
function Ru(e, t, n, r) {
|
|
const o = e.sdkProcessingMetadata && e.sdkProcessingMetadata.dynamicSamplingContext;
|
|
return {
|
|
event_id: e.event_id,
|
|
sent_at: (new Date).toISOString(),
|
|
...t && {
|
|
sdk: t
|
|
},
|
|
...!!n && r && {
|
|
dsn: _u(r)
|
|
},
|
|
...o && {
|
|
trace: Qa({
|
|
...o
|
|
})
|
|
}
|
|
}
|
|
}
|
|
const Mu = new Map,
|
|
Du = new Set;
|
|
|
|
function Nu(e, t) {
|
|
return function(e) {
|
|
if (Ea._sentryModuleMetadata)
|
|
for (const t of Object.keys(Ea._sentryModuleMetadata)) {
|
|
const n = Ea._sentryModuleMetadata[t];
|
|
if (Du.has(t)) continue;
|
|
Du.add(t);
|
|
const r = e(t);
|
|
for (const e of r.reverse())
|
|
if (e.filename) {
|
|
Mu.set(e.filename, n);
|
|
break
|
|
}
|
|
}
|
|
}(e), Mu.get(t)
|
|
}
|
|
const Lu = "ModuleMetadata",
|
|
Fu = () => ({
|
|
name: Lu,
|
|
setupOnce() {},
|
|
setup(e) {
|
|
"function" == typeof e.on && e.on("beforeEnvelope", e => {
|
|
Tu(e, (e, t) => {
|
|
if ("event" === t) {
|
|
const t = Array.isArray(e) ? e[1] : void 0;
|
|
t && (! function(e) {
|
|
try {
|
|
e.exception.values.forEach(e => {
|
|
if (e.stacktrace)
|
|
for (const t of e.stacktrace.frames || []) delete t.module_metadata
|
|
})
|
|
} catch (e) {}
|
|
}(t), e[1] = t)
|
|
}
|
|
})
|
|
})
|
|
},
|
|
processEvent: (e, t, n) => (function(e, t) {
|
|
try {
|
|
t.exception.values.forEach(t => {
|
|
if (t.stacktrace)
|
|
for (const n of t.stacktrace.frames || []) {
|
|
if (!n.filename) continue;
|
|
const t = Nu(e, n.filename);
|
|
t && (n.module_metadata = t)
|
|
}
|
|
})
|
|
} catch (e) {}
|
|
}(n.getOptions().stackParser, e), e)
|
|
}),
|
|
Bu = Xc(Lu, Fu),
|
|
Uu = "sentry.source",
|
|
Gu = "sentry.sample_rate",
|
|
$u = "sentry.op",
|
|
Hu = "sentry.origin";
|
|
class zu extends Error {
|
|
constructor(e, t = "warn") {
|
|
super(e), this.message = e, this.name = new.target.prototype.constructor.name, Object.setPrototypeOf(this, new.target.prototype), this.logLevel = t
|
|
}
|
|
}
|
|
const qu = "7";
|
|
|
|
function Wu(e) {
|
|
const t = e.protocol ? `${e.protocol}:` : "",
|
|
n = e.port ? `:${e.port}` : "";
|
|
return `${t}//${e.host}${n}${e.path?`/${e.path}`:""}/api/`
|
|
}
|
|
|
|
function Vu(e, t) {
|
|
return n = {
|
|
sentry_key: e.publicKey,
|
|
sentry_version: qu,
|
|
...t && {
|
|
sentry_client: `${t.name}/${t.version}`
|
|
}
|
|
}, Object.keys(n).map(e => `${encodeURIComponent(e)}=${encodeURIComponent(n[e])}`).join("&");
|
|
var n
|
|
}
|
|
|
|
function Yu(e, t = {}) {
|
|
const n = "string" == typeof t ? t : t.tunnel,
|
|
r = "string" != typeof t && t._metadata ? t._metadata.sdk : void 0;
|
|
return n || `${function(e){return`${Wu(e)}${e.projectId}/envelope/`}(e)}?${Vu(e,r)}`
|
|
}
|
|
|
|
function Ju(e, t, n, r) {
|
|
const o = ju(n),
|
|
i = e.type && "replay_event" !== e.type ? e.type : "event";
|
|
! function(e, t) {
|
|
t && (e.sdk = e.sdk || {}, e.sdk.name = e.sdk.name || t.name, e.sdk.version = e.sdk.version || t.version, e.sdk.integrations = [...e.sdk.integrations || [], ...t.integrations || []], e.sdk.packages = [...e.sdk.packages || [], ...t.packages || []])
|
|
}(e, n && n.sdk);
|
|
const a = Ru(e, o, r, t);
|
|
delete e.sdkProcessingMetadata;
|
|
return Eu(a, [
|
|
[{
|
|
type: i
|
|
}, e]
|
|
])
|
|
}
|
|
|
|
function Ku(e) {
|
|
return e.replace(/[^\w\-./]+/gi, "")
|
|
}
|
|
const Qu = [
|
|
["\n", "\\n"],
|
|
["\r", "\\r"],
|
|
["\t", "\\t"],
|
|
["\\", "\\\\"],
|
|
["|", "\\u{7c}"],
|
|
[",", "\\u{2c}"]
|
|
];
|
|
|
|
function Xu(e) {
|
|
return [...e].reduce((e, t) => e + function(e) {
|
|
for (const [t, n] of Qu)
|
|
if (e === t) return n;
|
|
return e
|
|
}(t), "")
|
|
}
|
|
|
|
function Zu(e, t, n, r) {
|
|
const o = {
|
|
sent_at: (new Date).toISOString()
|
|
};
|
|
n && n.sdk && (o.sdk = {
|
|
name: n.sdk.name,
|
|
version: n.sdk.version
|
|
}), r && t && (o.dsn = _u(t));
|
|
const i = function(e) {
|
|
const t = function(e) {
|
|
let t = "";
|
|
for (const n of e) {
|
|
const e = Object.entries(n.tags),
|
|
r = e.length > 0 ? `|#${e.map(([e,t])=>`${e}:${t}`).join(",")}` : "";
|
|
t += `${n.name}@${n.unit}:${n.metric}|${n.metricType}${r}|T${n.timestamp}\n`
|
|
}
|
|
return t
|
|
}(e);
|
|
return [{
|
|
type: "statsd",
|
|
length: t.length
|
|
}, t]
|
|
}(e);
|
|
return Eu(o, [i])
|
|
}
|
|
const el = "Not capturing exception because it's already been captured.";
|
|
class tl {
|
|
constructor(e) {
|
|
if (this._options = e, this._integrations = {}, this._integrationsInitialized = !1, this._numProcessing = 0, this._outcomes = {}, this._hooks = {}, this._eventProcessors = [], e.dsn ? this._dsn = Ou(e.dsn) : es && Fa.warn("No DSN provided, client will not send events."), this._dsn) {
|
|
const t = Yu(this._dsn, e);
|
|
this._transport = e.transport({
|
|
tunnel: this._options.tunnel,
|
|
recordDroppedEvent: this.recordDroppedEvent.bind(this),
|
|
...e.transportOptions,
|
|
url: t
|
|
})
|
|
}
|
|
}
|
|
captureException(e, t, n) {
|
|
if (as(e)) return void(es && Fa.log(el));
|
|
let r = t && t.event_id;
|
|
return this._process(this.eventFromException(e, t).then(e => this._captureEvent(e, t, n)).then(e => {
|
|
r = e
|
|
})), r
|
|
}
|
|
captureMessage(e, t, n, r) {
|
|
let o = n && n.event_id;
|
|
const i = ma(e) ? e : String(e),
|
|
a = ga(e) ? this.eventFromMessage(i, t, n) : this.eventFromException(e, n);
|
|
return this._process(a.then(e => this._captureEvent(e, n, r)).then(e => {
|
|
o = e
|
|
})), o
|
|
}
|
|
captureEvent(e, t, n) {
|
|
if (t && t.originalException && as(t.originalException)) return void(es && Fa.log(el));
|
|
let r = t && t.event_id;
|
|
const o = (e.sdkProcessingMetadata || {}).capturedSpanScope;
|
|
return this._process(this._captureEvent(e, t, o || n).then(e => {
|
|
r = e
|
|
})), r
|
|
}
|
|
captureSession(e) {
|
|
"string" != typeof e.release ? es && Fa.warn("Discarded session because of missing or non-string release") : (this.sendSession(e), Ss(e, {
|
|
init: !1
|
|
}))
|
|
}
|
|
getDsn() {
|
|
return this._dsn
|
|
}
|
|
getOptions() {
|
|
return this._options
|
|
}
|
|
getSdkMetadata() {
|
|
return this._options._metadata
|
|
}
|
|
getTransport() {
|
|
return this._transport
|
|
}
|
|
flush(e) {
|
|
const t = this._transport;
|
|
return t ? (this.metricsAggregator && this.metricsAggregator.flush(), this._isClientDoneProcessing(e).then(n => t.flush(e).then(e => n && e))) : hs(!0)
|
|
}
|
|
close(e) {
|
|
return this.flush(e).then(e => (this.getOptions().enabled = !1, this.metricsAggregator && this.metricsAggregator.close(), e))
|
|
}
|
|
getEventProcessors() {
|
|
return this._eventProcessors
|
|
}
|
|
addEventProcessor(e) {
|
|
this._eventProcessors.push(e)
|
|
}
|
|
setupIntegrations(e) {
|
|
(e && !this._integrationsInitialized || this._isEnabled() && !this._integrationsInitialized) && this._setupIntegrations()
|
|
}
|
|
init() {
|
|
this._isEnabled() && this._setupIntegrations()
|
|
}
|
|
getIntegrationById(e) {
|
|
return this.getIntegrationByName(e)
|
|
}
|
|
getIntegrationByName(e) {
|
|
return this._integrations[e]
|
|
}
|
|
getIntegration(e) {
|
|
try {
|
|
return this._integrations[e.id] || null
|
|
} catch (t) {
|
|
return es && Fa.warn(`Cannot retrieve integration ${e.id} from the current Client`), null
|
|
}
|
|
}
|
|
addIntegration(e) {
|
|
const t = this._integrations[e.name];
|
|
Kc(this, e, this._integrations), t || Jc(this, [e])
|
|
}
|
|
sendEvent(e, t = {}) {
|
|
this.emit("beforeSendEvent", e, t);
|
|
let n = Ju(e, this._dsn, this._options._metadata, this._options.tunnel);
|
|
for (const e of t.attachments || []) n = ku(n, Pu(e, this._options.transportOptions && this._options.transportOptions.textEncoder));
|
|
const r = this._sendEnvelope(n);
|
|
r && r.then(t => this.emit("afterSendEvent", e, t), null)
|
|
}
|
|
sendSession(e) {
|
|
const t = function(e, t, n, r) {
|
|
const o = ju(n);
|
|
return Eu({
|
|
sent_at: (new Date).toISOString(),
|
|
...o && {
|
|
sdk: o
|
|
},
|
|
...!!r && t && {
|
|
dsn: _u(t)
|
|
}
|
|
}, ["aggregates" in e ? [{
|
|
type: "sessions"
|
|
}, e] : [{
|
|
type: "session"
|
|
}, e.toJSON()]])
|
|
}(e, this._dsn, this._options._metadata, this._options.tunnel);
|
|
this._sendEnvelope(t)
|
|
}
|
|
recordDroppedEvent(e, t, n) {
|
|
if (this._options.sendClientReports) {
|
|
const r = "number" == typeof n ? n : 1,
|
|
o = `${e}:${t}`;
|
|
es && Fa.log(`Recording outcome: "${o}"${r>1?` (${r} times)`:""}`), this._outcomes[o] = (this._outcomes[o] || 0) + r
|
|
}
|
|
}
|
|
captureAggregateMetrics(e) {
|
|
es && Fa.log(`Flushing aggregated metrics, number of metrics: ${e.length}`);
|
|
const t = Zu(e, this._dsn, this._options._metadata, this._options.tunnel);
|
|
this._sendEnvelope(t)
|
|
}
|
|
on(e, t) {
|
|
this._hooks[e] || (this._hooks[e] = []), this._hooks[e].push(t)
|
|
}
|
|
emit(e, ...t) {
|
|
this._hooks[e] && this._hooks[e].forEach(e => e(...t))
|
|
}
|
|
_setupIntegrations() {
|
|
const {
|
|
integrations: e
|
|
} = this._options;
|
|
this._integrations = function(e, t) {
|
|
const n = {};
|
|
return t.forEach(t => {
|
|
t && Kc(e, t, n)
|
|
}), n
|
|
}(this, e), Jc(this, e), this._integrationsInitialized = !0
|
|
}
|
|
_updateSessionFromEvent(e, t) {
|
|
let n = !1,
|
|
r = !1;
|
|
const o = t.exception && t.exception.values;
|
|
if (o) {
|
|
r = !0;
|
|
for (const e of o) {
|
|
const t = e.mechanism;
|
|
if (t && !1 === t.handled) {
|
|
n = !0;
|
|
break
|
|
}
|
|
}
|
|
}
|
|
const i = "ok" === e.status;
|
|
(i && 0 === e.errors || i && n) && (Ss(e, {
|
|
...n && {
|
|
status: "crashed"
|
|
},
|
|
errors: e.errors || Number(r || n)
|
|
}), this.captureSession(e))
|
|
}
|
|
_isClientDoneProcessing(e) {
|
|
return new gs(t => {
|
|
let n = 0;
|
|
const r = setInterval(() => {
|
|
0 == this._numProcessing ? (clearInterval(r), t(!0)) : (n += 1, e && n >= e && (clearInterval(r), t(!1)))
|
|
}, 1)
|
|
})
|
|
}
|
|
_isEnabled() {
|
|
return !1 !== this.getOptions().enabled && void 0 !== this._transport
|
|
}
|
|
_prepareEvent(e, t, n, r = rc()) {
|
|
const o = this.getOptions(),
|
|
i = Object.keys(this._integrations);
|
|
return !t.integrations && i.length > 0 && (t.integrations = i), this.emit("preprocessEvent", e, t), vc(o, e, t, n, this, r).then(e => {
|
|
if (null === e) return e;
|
|
const t = {
|
|
...r.getPropagationContext(),
|
|
...n ? n.getPropagationContext() : void 0
|
|
};
|
|
if (!(e.contexts && e.contexts.trace) && t) {
|
|
const {
|
|
traceId: r,
|
|
spanId: o,
|
|
parentSpanId: i,
|
|
dsc: a
|
|
} = t;
|
|
e.contexts = {
|
|
trace: {
|
|
trace_id: r,
|
|
span_id: o,
|
|
parent_span_id: i
|
|
},
|
|
...e.contexts
|
|
};
|
|
const s = a || $s(r, this, n);
|
|
e.sdkProcessingMetadata = {
|
|
dynamicSamplingContext: s,
|
|
...e.sdkProcessingMetadata
|
|
}
|
|
}
|
|
return e
|
|
})
|
|
}
|
|
_captureEvent(e, t = {}, n) {
|
|
return this._processEvent(e, t, n).then(e => e.event_id, e => {
|
|
if (es) {
|
|
const t = e;
|
|
"log" === t.logLevel ? Fa.log(t.message) : Fa.warn(t)
|
|
}
|
|
})
|
|
}
|
|
_processEvent(e, t, n) {
|
|
const r = this.getOptions(),
|
|
{
|
|
sampleRate: o
|
|
} = r,
|
|
i = rl(e),
|
|
a = nl(e),
|
|
s = e.type || "error",
|
|
c = `before send for type \`${s}\``;
|
|
if (a && "number" == typeof o && Math.random() > o) return this.recordDroppedEvent("sample_rate", "error", e), ms(new zu(`Discarding event because it's not included in the random sample (sampling rate = ${o})`, "log"));
|
|
const u = "replay_event" === s ? "replay" : s,
|
|
l = (e.sdkProcessingMetadata || {}).capturedSpanIsolationScope;
|
|
return this._prepareEvent(e, t, n, l).then(n => {
|
|
if (null === n) throw this.recordDroppedEvent("event_processor", u, e), new zu("An event processor returned `null`, will not send event.", "log");
|
|
if (t.data && !0 === t.data.__sentry__) return n;
|
|
const o = function(e, t, n) {
|
|
const {
|
|
beforeSend: r,
|
|
beforeSendTransaction: o
|
|
} = e;
|
|
if (nl(t) && r) return r(t, n);
|
|
if (rl(t) && o) {
|
|
if (t.spans) {
|
|
const e = t.spans.length;
|
|
t.sdkProcessingMetadata = {
|
|
...t.sdkProcessingMetadata,
|
|
spanCountBeforeProcessing: e
|
|
}
|
|
}
|
|
return o(t, n)
|
|
}
|
|
return t
|
|
}(r, n, t);
|
|
return function(e, t) {
|
|
const n = `${t} must return \`null\` or a valid event.`;
|
|
if (ba(e)) return e.then(e => {
|
|
if (!ya(e) && null !== e) throw new zu(n);
|
|
return e
|
|
}, e => {
|
|
throw new zu(`${t} rejected with ${e}`)
|
|
});
|
|
if (!ya(e) && null !== e) throw new zu(n);
|
|
return e
|
|
}(o, c)
|
|
}).then(r => {
|
|
if (null === r) {
|
|
if (this.recordDroppedEvent("before_send", u, e), i) {
|
|
const t = 1 + (e.spans || []).length;
|
|
this.recordDroppedEvent("before_send", "span", t)
|
|
}
|
|
throw new zu(`${c} returned \`null\`, will not send event.`, "log")
|
|
}
|
|
const o = n && n.getSession();
|
|
if (!i && o && this._updateSessionFromEvent(o, r), i) {
|
|
const e = (r.sdkProcessingMetadata && r.sdkProcessingMetadata.spanCountBeforeProcessing || 0) - (r.spans ? r.spans.length : 0);
|
|
e > 0 && this.recordDroppedEvent("before_send", "span", e)
|
|
}
|
|
const a = r.transaction_info;
|
|
if (i && a && r.transaction !== e.transaction) {
|
|
const e = "custom";
|
|
r.transaction_info = {
|
|
...a,
|
|
source: e
|
|
}
|
|
}
|
|
return this.sendEvent(r, t), r
|
|
}).then(null, e => {
|
|
if (e instanceof zu) throw e;
|
|
throw this.captureException(e, {
|
|
data: {
|
|
__sentry__: !0
|
|
},
|
|
originalException: e
|
|
}), new zu(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\nReason: ${e}`)
|
|
})
|
|
}
|
|
_process(e) {
|
|
this._numProcessing++, e.then(e => (this._numProcessing--, e), e => (this._numProcessing--, e))
|
|
}
|
|
_sendEnvelope(e) {
|
|
if (this.emit("beforeEnvelope", e), this._isEnabled() && this._transport) return this._transport.send(e).then(null, e => {
|
|
es && Fa.error("Error while sending event:", e)
|
|
});
|
|
es && Fa.error("Transport disabled")
|
|
}
|
|
_clearOutcomes() {
|
|
const e = this._outcomes;
|
|
return this._outcomes = {}, Object.keys(e).map(t => {
|
|
const [n, r] = t.split(":");
|
|
return {
|
|
reason: n,
|
|
category: r,
|
|
quantity: e[t]
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
function nl(e) {
|
|
return void 0 === e.type
|
|
}
|
|
|
|
function rl(e) {
|
|
return "transaction" === e.type
|
|
}
|
|
|
|
function ol(e) {
|
|
const t = Uc();
|
|
t && t.addEventProcessor && t.addEventProcessor(e)
|
|
}
|
|
const il = {},
|
|
al = {};
|
|
|
|
function sl(e, t) {
|
|
il[e] = il[e] || [], il[e].push(t)
|
|
}
|
|
|
|
function cl(e, t) {
|
|
al[e] || (t(), al[e] = !0)
|
|
}
|
|
|
|
function ul(e, t) {
|
|
const n = e && il[e];
|
|
if (n)
|
|
for (const r of n) try {
|
|
r(t)
|
|
} catch (t) {
|
|
Ma && Fa.error(`Error while triggering instrumentation handler.\nType: ${e}\nName: ${hc(r)}\nError:`, t)
|
|
}
|
|
}
|
|
let ll = null;
|
|
|
|
function fl(e) {
|
|
const t = "error";
|
|
sl(t, e), cl(t, dl)
|
|
}
|
|
|
|
function dl() {
|
|
ll = Ea.onerror, Ea.onerror = function(e, t, n, r, o) {
|
|
return ul("error", {
|
|
column: r,
|
|
error: o,
|
|
line: n,
|
|
msg: e,
|
|
url: t
|
|
}), !(!ll || ll.__SENTRY_LOADER__) && ll.apply(this, arguments)
|
|
}, Ea.onerror.__SENTRY_INSTRUMENTED__ = !0
|
|
}
|
|
let pl = null;
|
|
|
|
function hl(e) {
|
|
const t = "unhandledrejection";
|
|
sl(t, e), cl(t, ml)
|
|
}
|
|
|
|
function ml() {
|
|
pl = Ea.onunhandledrejection, Ea.onunhandledrejection = function(e) {
|
|
return ul("unhandledrejection", e), !(pl && !pl.__SENTRY_LOADER__) || pl.apply(this, arguments)
|
|
}, Ea.onunhandledrejection.__SENTRY_INSTRUMENTED__ = !0
|
|
}
|
|
|
|
function gl(e) {
|
|
return (e || nc()).getScope().getTransaction()
|
|
}
|
|
const yl = js;
|
|
let vl = !1;
|
|
|
|
function bl() {
|
|
const e = gl();
|
|
if (e) {
|
|
const t = "internal_error";
|
|
es && Fa.log(`[Tracing] Transaction: ${t} -> Global error occured`), e.setStatus(t)
|
|
}
|
|
}
|
|
|
|
function _l(e, t, n = () => {}) {
|
|
let r;
|
|
try {
|
|
r = e()
|
|
} catch (e) {
|
|
throw t(e), n(), e
|
|
}
|
|
return function(e, t, n) {
|
|
if (ba(e)) return e.then(e => (n(), e), e => {
|
|
throw t(e), n(), e
|
|
});
|
|
return n(), e
|
|
}(r, t, n)
|
|
}
|
|
|
|
function Sl(e) {
|
|
if ("boolean" == typeof __SENTRY_TRACING__ && !__SENTRY_TRACING__) return !1;
|
|
const t = Uc(),
|
|
n = e || t && t.getOptions();
|
|
return !!n && (n.enableTracing || "tracesSampleRate" in n || "tracesSampler" in n)
|
|
}
|
|
|
|
function wl(e, t, n = () => {}, r = () => {}) {
|
|
const o = nc(),
|
|
i = $c(),
|
|
a = i.getSpan(),
|
|
s = Pl(e),
|
|
c = Il(o, {
|
|
parentSpan: a,
|
|
spanContext: s,
|
|
forceTransaction: !1,
|
|
scope: i
|
|
});
|
|
return i.setSpan(c), _l(() => t(c), e => {
|
|
c && c.setStatus("internal_error"), n(e, c)
|
|
}, () => {
|
|
c && c.end(), i.setSpan(a), r()
|
|
})
|
|
}
|
|
|
|
function Ol(e, t) {
|
|
const n = Pl(e);
|
|
return ic(() => Rc(e.scope, r => {
|
|
const o = nc(),
|
|
i = r.getSpan(),
|
|
a = e.onlyIfParent && !i ? void 0 : Il(o, {
|
|
parentSpan: i,
|
|
spanContext: n,
|
|
forceTransaction: e.forceTransaction,
|
|
scope: r
|
|
});
|
|
return _l(() => t(a), () => {
|
|
if (a) {
|
|
const {
|
|
status: e
|
|
} = Us(a);
|
|
e && "ok" !== e || a.setStatus("internal_error")
|
|
}
|
|
}, () => a && a.end())
|
|
}))
|
|
}
|
|
bl.tag = "sentry_tracingErrorCallback";
|
|
|
|
function El(e, t) {
|
|
const n = Pl(e);
|
|
return ic(() => Rc(e.scope, r => {
|
|
const o = nc(),
|
|
i = r.getSpan(),
|
|
a = e.onlyIfParent && !i ? void 0 : Il(o, {
|
|
parentSpan: i,
|
|
spanContext: n,
|
|
forceTransaction: e.forceTransaction,
|
|
scope: r
|
|
});
|
|
|
|
function s() {
|
|
a && a.end()
|
|
}
|
|
return _l(() => t(a, s), () => {
|
|
if (a && a.isRecording()) {
|
|
const {
|
|
status: e
|
|
} = Us(a);
|
|
e && "ok" !== e || a.setStatus("internal_error")
|
|
}
|
|
})
|
|
}))
|
|
}
|
|
|
|
function kl(e) {
|
|
if (!Sl()) return;
|
|
const t = Pl(e),
|
|
n = nc(),
|
|
r = e.scope ? e.scope.getSpan() : Tl();
|
|
if (e.onlyIfParent && !r) return;
|
|
const o = (e.scope || $c()).clone();
|
|
return Il(n, {
|
|
parentSpan: r,
|
|
spanContext: t,
|
|
forceTransaction: e.forceTransaction,
|
|
scope: o
|
|
})
|
|
}
|
|
|
|
function Tl() {
|
|
return $c().getSpan()
|
|
}
|
|
const xl = ({
|
|
sentryTrace: e,
|
|
baggage: t
|
|
}, n) => {
|
|
const r = $c(),
|
|
{
|
|
traceparentData: o,
|
|
dynamicSamplingContext: i,
|
|
propagationContext: a
|
|
} = function(e, t) {
|
|
const n = js(e),
|
|
r = Is(t),
|
|
{
|
|
traceId: o,
|
|
parentSpanId: i,
|
|
parentSampled: a
|
|
} = n || {};
|
|
return n ? {
|
|
traceparentData: n,
|
|
dynamicSamplingContext: r || {},
|
|
propagationContext: {
|
|
traceId: o || ts(),
|
|
parentSpanId: i || ts().substring(16),
|
|
spanId: ts().substring(16),
|
|
sampled: a,
|
|
dsc: r || {}
|
|
}
|
|
} : {
|
|
traceparentData: n,
|
|
dynamicSamplingContext: void 0,
|
|
propagationContext: {
|
|
traceId: o || ts(),
|
|
spanId: ts().substring(16)
|
|
}
|
|
}
|
|
}(e, t);
|
|
r.setPropagationContext(a), es && o && Fa.log(`[Tracing] Continuing trace ${o.traceId}.`);
|
|
const s = {
|
|
...o,
|
|
metadata: Qa({
|
|
dynamicSamplingContext: i
|
|
})
|
|
};
|
|
return n ? ic(() => n(s)) : s
|
|
};
|
|
|
|
function Il(e, {
|
|
parentSpan: t,
|
|
spanContext: n,
|
|
forceTransaction: r,
|
|
scope: o
|
|
}) {
|
|
if (!Sl()) return;
|
|
const i = rc();
|
|
let a;
|
|
if (t && !r) a = t.startChild(n);
|
|
else if (t) {
|
|
const r = Hs(t),
|
|
{
|
|
traceId: o,
|
|
spanId: i
|
|
} = t.spanContext(),
|
|
s = Gs(t);
|
|
a = e.startTransaction({
|
|
traceId: o,
|
|
parentSpanId: i,
|
|
parentSampled: s,
|
|
...n,
|
|
metadata: {
|
|
dynamicSamplingContext: r,
|
|
...n.metadata
|
|
}
|
|
})
|
|
} else {
|
|
const {
|
|
traceId: t,
|
|
dsc: r,
|
|
parentSpanId: s,
|
|
sampled: c
|
|
} = {
|
|
...i.getPropagationContext(),
|
|
...o.getPropagationContext()
|
|
};
|
|
a = e.startTransaction({
|
|
traceId: t,
|
|
parentSpanId: s,
|
|
parentSampled: c,
|
|
...n,
|
|
metadata: {
|
|
dynamicSamplingContext: r,
|
|
...n.metadata
|
|
}
|
|
})
|
|
}
|
|
return o.setSpan(a),
|
|
function(e, t, n) {
|
|
e && (qa(e, Cl, n), qa(e, Al, t))
|
|
}(a, o, i), a
|
|
}
|
|
|
|
function Pl(e) {
|
|
if (e.startTime) {
|
|
const t = {
|
|
...e
|
|
};
|
|
return t.startTimestamp = Fs(e.startTime), delete t.startTime, t
|
|
}
|
|
return e
|
|
}
|
|
const Al = "_sentryScope",
|
|
Cl = "_sentryIsolationScope";
|
|
let jl;
|
|
|
|
function Rl(e) {
|
|
return jl ? jl.get(e) : void 0
|
|
}
|
|
|
|
function Ml(e) {
|
|
const t = Rl(e);
|
|
if (!t) return;
|
|
const n = {};
|
|
for (const [, [e, r]] of t) n[e] || (n[e] = []), n[e].push(Qa(r));
|
|
return n
|
|
}
|
|
var Dl;
|
|
|
|
function Nl(e) {
|
|
if (e < 400 && e >= 100) return "ok";
|
|
if (e >= 400 && e < 500) switch (e) {
|
|
case 401:
|
|
return "unauthenticated";
|
|
case 403:
|
|
return "permission_denied";
|
|
case 404:
|
|
return "not_found";
|
|
case 409:
|
|
return "already_exists";
|
|
case 413:
|
|
return "failed_precondition";
|
|
case 429:
|
|
return "resource_exhausted";
|
|
default:
|
|
return "invalid_argument"
|
|
}
|
|
if (e >= 500 && e < 600) switch (e) {
|
|
case 501:
|
|
return "unimplemented";
|
|
case 503:
|
|
return "unavailable";
|
|
case 504:
|
|
return "deadline_exceeded";
|
|
default:
|
|
return "internal_error"
|
|
}
|
|
return "unknown_error"
|
|
}! function(e) {
|
|
e.Ok = "ok";
|
|
e.DeadlineExceeded = "deadline_exceeded";
|
|
e.Unauthenticated = "unauthenticated";
|
|
e.PermissionDenied = "permission_denied";
|
|
e.NotFound = "not_found";
|
|
e.ResourceExhausted = "resource_exhausted";
|
|
e.InvalidArgument = "invalid_argument";
|
|
e.Unimplemented = "unimplemented";
|
|
e.Unavailable = "unavailable";
|
|
e.InternalError = "internal_error";
|
|
e.UnknownError = "unknown_error";
|
|
e.Cancelled = "cancelled";
|
|
e.AlreadyExists = "already_exists";
|
|
e.FailedPrecondition = "failed_precondition";
|
|
e.Aborted = "aborted";
|
|
e.OutOfRange = "out_of_range";
|
|
e.DataLoss = "data_loss"
|
|
}(Dl || (Dl = {}));
|
|
const Ll = Nl;
|
|
|
|
function Fl(e, t) {
|
|
e.setTag("http.status_code", String(t)), e.setData("http.response.status_code", t);
|
|
const n = Nl(t);
|
|
"unknown_error" !== n && e.setStatus(n)
|
|
}
|
|
class Bl {
|
|
constructor(e = 1e3) {
|
|
this._maxlen = e, this.spans = []
|
|
}
|
|
add(e) {
|
|
this.spans.length > this._maxlen ? e.spanRecorder = void 0 : this.spans.push(e)
|
|
}
|
|
}
|
|
class Ul {
|
|
constructor(e = {}) {
|
|
this._traceId = e.traceId || ts(), this._spanId = e.spanId || ts().substring(16), this._startTime = e.startTimestamp || ls(), this.tags = e.tags ? {
|
|
...e.tags
|
|
} : {}, this.data = e.data ? {
|
|
...e.data
|
|
} : {}, this.instrumenter = e.instrumenter || "sentry", this._attributes = {}, this.setAttributes({
|
|
[Hu]: e.origin || "manual",
|
|
[$u]: e.op,
|
|
...e.attributes
|
|
}), this._name = e.name || e.description, e.parentSpanId && (this._parentSpanId = e.parentSpanId), "sampled" in e && (this._sampled = e.sampled), e.status && (this._status = e.status), e.endTimestamp && (this._endTime = e.endTimestamp), void 0 !== e.exclusiveTime && (this._exclusiveTime = e.exclusiveTime), this._measurements = e.measurements ? {
|
|
...e.measurements
|
|
} : {}
|
|
}
|
|
get name() {
|
|
return this._name || ""
|
|
}
|
|
set name(e) {
|
|
this.updateName(e)
|
|
}
|
|
get description() {
|
|
return this._name
|
|
}
|
|
set description(e) {
|
|
this._name = e
|
|
}
|
|
get traceId() {
|
|
return this._traceId
|
|
}
|
|
set traceId(e) {
|
|
this._traceId = e
|
|
}
|
|
get spanId() {
|
|
return this._spanId
|
|
}
|
|
set spanId(e) {
|
|
this._spanId = e
|
|
}
|
|
set parentSpanId(e) {
|
|
this._parentSpanId = e
|
|
}
|
|
get parentSpanId() {
|
|
return this._parentSpanId
|
|
}
|
|
get sampled() {
|
|
return this._sampled
|
|
}
|
|
set sampled(e) {
|
|
this._sampled = e
|
|
}
|
|
get attributes() {
|
|
return this._attributes
|
|
}
|
|
set attributes(e) {
|
|
this._attributes = e
|
|
}
|
|
get startTimestamp() {
|
|
return this._startTime
|
|
}
|
|
set startTimestamp(e) {
|
|
this._startTime = e
|
|
}
|
|
get endTimestamp() {
|
|
return this._endTime
|
|
}
|
|
set endTimestamp(e) {
|
|
this._endTime = e
|
|
}
|
|
get status() {
|
|
return this._status
|
|
}
|
|
set status(e) {
|
|
this._status = e
|
|
}
|
|
get op() {
|
|
return this._attributes[$u]
|
|
}
|
|
set op(e) {
|
|
this.setAttribute($u, e)
|
|
}
|
|
get origin() {
|
|
return this._attributes[Hu]
|
|
}
|
|
set origin(e) {
|
|
this.setAttribute(Hu, e)
|
|
}
|
|
spanContext() {
|
|
const {
|
|
_spanId: e,
|
|
_traceId: t,
|
|
_sampled: n
|
|
} = this;
|
|
return {
|
|
spanId: e,
|
|
traceId: t,
|
|
traceFlags: n ? Ds : 0
|
|
}
|
|
}
|
|
startChild(e) {
|
|
const t = new Ul({
|
|
...e,
|
|
parentSpanId: this._spanId,
|
|
sampled: this._sampled,
|
|
traceId: this._traceId
|
|
});
|
|
t.spanRecorder = this.spanRecorder, t.spanRecorder && t.spanRecorder.add(t);
|
|
const n = Os(this);
|
|
if (t.transaction = n, es && n) {
|
|
const r = `[Tracing] Starting '${e&&e.op||"< unknown op >"}' span on transaction '${Us(t).description||"< unknown name >"}' (${n.spanContext().spanId}).`;
|
|
Fa.log(r), this._logMessage = r
|
|
}
|
|
return t
|
|
}
|
|
setTag(e, t) {
|
|
return this.tags = {
|
|
...this.tags,
|
|
[e]: t
|
|
}, this
|
|
}
|
|
setData(e, t) {
|
|
return this.data = {
|
|
...this.data,
|
|
[e]: t
|
|
}, this
|
|
}
|
|
setAttribute(e, t) {
|
|
void 0 === t ? delete this._attributes[e] : this._attributes[e] = t
|
|
}
|
|
setAttributes(e) {
|
|
Object.keys(e).forEach(t => this.setAttribute(t, e[t]))
|
|
}
|
|
setStatus(e) {
|
|
return this._status = e, this
|
|
}
|
|
setHttpStatus(e) {
|
|
return Fl(this, e), this
|
|
}
|
|
setName(e) {
|
|
this.updateName(e)
|
|
}
|
|
updateName(e) {
|
|
return this._name = e, this
|
|
}
|
|
isSuccess() {
|
|
return "ok" === this._status
|
|
}
|
|
finish(e) {
|
|
return this.end(e)
|
|
}
|
|
end(e) {
|
|
if (this._endTime) return;
|
|
const t = Os(this);
|
|
if (es && t && t.spanContext().spanId !== this._spanId) {
|
|
const e = this._logMessage;
|
|
e && Fa.log(e.replace("Starting", "Finishing"))
|
|
}
|
|
this._endTime = Fs(e)
|
|
}
|
|
toTraceparent() {
|
|
return Ls(this)
|
|
}
|
|
toContext() {
|
|
return Qa({
|
|
data: this._getData(),
|
|
description: this._name,
|
|
endTimestamp: this._endTime,
|
|
op: this.op,
|
|
parentSpanId: this._parentSpanId,
|
|
sampled: this._sampled,
|
|
spanId: this._spanId,
|
|
startTimestamp: this._startTime,
|
|
status: this._status,
|
|
tags: this.tags,
|
|
traceId: this._traceId
|
|
})
|
|
}
|
|
updateWithContext(e) {
|
|
return this.data = e.data || {}, this._name = e.name || e.description, this._endTime = e.endTimestamp, this.op = e.op, this._parentSpanId = e.parentSpanId, this._sampled = e.sampled, this._spanId = e.spanId || this._spanId, this._startTime = e.startTimestamp || this._startTime, this._status = e.status, this.tags = e.tags || {}, this._traceId = e.traceId || this._traceId, this
|
|
}
|
|
getTraceContext() {
|
|
return Ns(this)
|
|
}
|
|
getSpanJSON() {
|
|
return Qa({
|
|
data: this._getData(),
|
|
description: this._name,
|
|
op: this._attributes[$u],
|
|
parent_span_id: this._parentSpanId,
|
|
span_id: this._spanId,
|
|
start_timestamp: this._startTime,
|
|
status: this._status,
|
|
tags: Object.keys(this.tags).length > 0 ? this.tags : void 0,
|
|
timestamp: this._endTime,
|
|
trace_id: this._traceId,
|
|
origin: this._attributes[Hu],
|
|
_metrics_summary: Ml(this),
|
|
profile_id: this._attributes.profile_id,
|
|
exclusive_time: this._exclusiveTime,
|
|
measurements: Object.keys(this._measurements).length > 0 ? this._measurements : void 0
|
|
})
|
|
}
|
|
isRecording() {
|
|
return !this._endTime && !!this._sampled
|
|
}
|
|
toJSON() {
|
|
return this.getSpanJSON()
|
|
}
|
|
_getData() {
|
|
const {
|
|
data: e,
|
|
_attributes: t
|
|
} = this, n = Object.keys(e).length > 0, r = Object.keys(t).length > 0;
|
|
if (n || r) return n && r ? {
|
|
...e,
|
|
...t
|
|
} : n ? e : t
|
|
}
|
|
}
|
|
class Gl extends Ul {
|
|
constructor(e, t) {
|
|
super(e), this._contexts = {}, this._hub = t || nc(), this._name = e.name || "", this._metadata = {
|
|
...e.metadata
|
|
}, this._trimEnd = e.trimEnd, this.transaction = this;
|
|
const n = this._metadata.dynamicSamplingContext;
|
|
n && (this._frozenDynamicSamplingContext = {
|
|
...n
|
|
})
|
|
}
|
|
get name() {
|
|
return this._name
|
|
}
|
|
set name(e) {
|
|
this.setName(e)
|
|
}
|
|
get metadata() {
|
|
return {
|
|
source: "custom",
|
|
spanMetadata: {},
|
|
...this._metadata,
|
|
...this._attributes[Uu] && {
|
|
source: this._attributes[Uu]
|
|
},
|
|
...this._attributes[Gu] && {
|
|
sampleRate: this._attributes[Gu]
|
|
}
|
|
}
|
|
}
|
|
set metadata(e) {
|
|
this._metadata = e
|
|
}
|
|
setName(e, t = "custom") {
|
|
this._name = e, this.setAttribute(Uu, t)
|
|
}
|
|
updateName(e) {
|
|
return this._name = e, this
|
|
}
|
|
initSpanRecorder(e = 1e3) {
|
|
this.spanRecorder || (this.spanRecorder = new Bl(e)), this.spanRecorder.add(this)
|
|
}
|
|
setContext(e, t) {
|
|
null === t ? delete this._contexts[e] : this._contexts[e] = t
|
|
}
|
|
setMeasurement(e, t, n = "") {
|
|
this._measurements[e] = {
|
|
value: t,
|
|
unit: n
|
|
}
|
|
}
|
|
setMetadata(e) {
|
|
this._metadata = {
|
|
...this._metadata,
|
|
...e
|
|
}
|
|
}
|
|
end(e) {
|
|
const t = Fs(e),
|
|
n = this._finishTransaction(t);
|
|
if (n) return this._hub.captureEvent(n)
|
|
}
|
|
toContext() {
|
|
return Qa({
|
|
...super.toContext(),
|
|
name: this._name,
|
|
trimEnd: this._trimEnd
|
|
})
|
|
}
|
|
updateWithContext(e) {
|
|
return super.updateWithContext(e), this._name = e.name || "", this._trimEnd = e.trimEnd, this
|
|
}
|
|
getDynamicSamplingContext() {
|
|
return Hs(this)
|
|
}
|
|
setHub(e) {
|
|
this._hub = e
|
|
}
|
|
getProfileId() {
|
|
if (void 0 !== this._contexts && void 0 !== this._contexts.profile) return this._contexts.profile.profile_id
|
|
}
|
|
_finishTransaction(e) {
|
|
if (void 0 !== this._endTime) return;
|
|
this._name || (es && Fa.warn("Transaction has no name, falling back to `<unlabeled transaction>`."), this._name = "<unlabeled transaction>"), super.end(e);
|
|
const t = this._hub.getClient();
|
|
if (t && t.emit && t.emit("finishTransaction", this), !0 !== this._sampled) return es && Fa.log("[Tracing] Discarding transaction because its trace was not chosen to be sampled."), void(t && t.recordDroppedEvent("sample_rate", "transaction"));
|
|
const n = this.spanRecorder ? this.spanRecorder.spans.filter(e => e !== this && Us(e).timestamp) : [];
|
|
if (this._trimEnd && n.length > 0) {
|
|
const e = n.map(e => Us(e).timestamp).filter(Boolean);
|
|
this._endTime = e.reduce((e, t) => e > t ? e : t)
|
|
}
|
|
const {
|
|
scope: r,
|
|
isolationScope: o
|
|
} = {
|
|
scope: (i = this)[Al],
|
|
isolationScope: i[Cl]
|
|
};
|
|
var i;
|
|
const {
|
|
metadata: a
|
|
} = this, {
|
|
source: s
|
|
} = a, c = {
|
|
contexts: {
|
|
...this._contexts,
|
|
trace: Ns(this)
|
|
},
|
|
spans: n,
|
|
start_timestamp: this._startTime,
|
|
tags: this.tags,
|
|
timestamp: this._endTime,
|
|
transaction: this._name,
|
|
type: "transaction",
|
|
sdkProcessingMetadata: {
|
|
...a,
|
|
capturedSpanScope: r,
|
|
capturedSpanIsolationScope: o,
|
|
...Qa({
|
|
dynamicSamplingContext: Hs(this)
|
|
})
|
|
},
|
|
_metrics_summary: Ml(this),
|
|
...s && {
|
|
transaction_info: {
|
|
source: s
|
|
}
|
|
}
|
|
};
|
|
return Object.keys(this._measurements).length > 0 && (es && Fa.log("[Measurements] Adding measurements to transaction", JSON.stringify(this._measurements, void 0, 2)), c.measurements = this._measurements), es && Fa.log(`[Tracing] Finishing ${this.op} transaction: ${this._name}.`), c
|
|
}
|
|
}
|
|
const $l = {
|
|
idleTimeout: 1e3,
|
|
finalTimeout: 3e4,
|
|
heartbeatInterval: 5e3
|
|
},
|
|
Hl = ["heartbeatFailed", "idleTimeout", "documentHidden", "finalTimeout", "externalFinish", "cancelled"];
|
|
class zl extends Bl {
|
|
constructor(e, t, n, r) {
|
|
super(r), this._pushActivity = e, this._popActivity = t, this.transactionSpanId = n
|
|
}
|
|
add(e) {
|
|
if (e.spanContext().spanId !== this.transactionSpanId) {
|
|
const t = e.end;
|
|
e.end = (...n) => (this._popActivity(e.spanContext().spanId), t.apply(e, n)), void 0 === Us(e).timestamp && this._pushActivity(e.spanContext().spanId)
|
|
}
|
|
super.add(e)
|
|
}
|
|
}
|
|
class ql extends Gl {
|
|
constructor(e, t, n = $l.idleTimeout, r = $l.finalTimeout, o = $l.heartbeatInterval, i = !1, a = !1) {
|
|
super(e, t), this._idleHub = t, this._idleTimeout = n, this._finalTimeout = r, this._heartbeatInterval = o, this._onScope = i, this.activities = {}, this._heartbeatCounter = 0, this._finished = !1, this._idleTimeoutCanceledPermanently = !1, this._beforeFinishCallbacks = [], this._finishReason = Hl[4], this._autoFinishAllowed = !a, i && (es && Fa.log(`Setting idle transaction on scope. Span ID: ${this.spanContext().spanId}`), t.getScope().setSpan(this)), a || this._restartIdleTimeout(), setTimeout(() => {
|
|
this._finished || (this.setStatus("deadline_exceeded"), this._finishReason = Hl[3], this.end())
|
|
}, this._finalTimeout)
|
|
}
|
|
end(e) {
|
|
const t = Fs(e);
|
|
if (this._finished = !0, this.activities = {}, "ui.action.click" === this.op && this.setAttribute("finishReason", this._finishReason), this.spanRecorder) {
|
|
es && Fa.log("[Tracing] finishing IdleTransaction", new Date(1e3 * t).toISOString(), this.op);
|
|
for (const e of this._beforeFinishCallbacks) e(this, t);
|
|
this.spanRecorder.spans = this.spanRecorder.spans.filter(e => {
|
|
if (e.spanContext().spanId === this.spanContext().spanId) return !0;
|
|
Us(e).timestamp || (e.setStatus("cancelled"), e.end(t), es && Fa.log("[Tracing] cancelling span since transaction ended early", JSON.stringify(e, void 0, 2)));
|
|
const {
|
|
start_timestamp: n,
|
|
timestamp: r
|
|
} = Us(e), o = n && n < t, i = (this._finalTimeout + this._idleTimeout) / 1e3, a = r && n && r - n < i;
|
|
if (es) {
|
|
const t = JSON.stringify(e, void 0, 2);
|
|
o ? a || Fa.log("[Tracing] discarding Span since it finished after Transaction final timeout", t) : Fa.log("[Tracing] discarding Span since it happened after Transaction was finished", t)
|
|
}
|
|
return o && a
|
|
}), es && Fa.log("[Tracing] flushing IdleTransaction")
|
|
} else es && Fa.log("[Tracing] No active IdleTransaction");
|
|
if (this._onScope) {
|
|
const e = this._idleHub.getScope();
|
|
e.getTransaction() === this && e.setSpan(void 0)
|
|
}
|
|
return super.end(e)
|
|
}
|
|
registerBeforeFinishCallback(e) {
|
|
this._beforeFinishCallbacks.push(e)
|
|
}
|
|
initSpanRecorder(e) {
|
|
if (!this.spanRecorder) {
|
|
const t = e => {
|
|
this._finished || this._pushActivity(e)
|
|
},
|
|
n = e => {
|
|
this._finished || this._popActivity(e)
|
|
};
|
|
this.spanRecorder = new zl(t, n, this.spanContext().spanId, e), es && Fa.log("Starting heartbeat"), this._pingHeartbeat()
|
|
}
|
|
this.spanRecorder.add(this)
|
|
}
|
|
cancelIdleTimeout(e, {
|
|
restartOnChildSpanChange: t
|
|
} = {
|
|
restartOnChildSpanChange: !0
|
|
}) {
|
|
this._idleTimeoutCanceledPermanently = !1 === t, this._idleTimeoutID && (clearTimeout(this._idleTimeoutID), this._idleTimeoutID = void 0, 0 === Object.keys(this.activities).length && this._idleTimeoutCanceledPermanently && (this._finishReason = Hl[5], this.end(e)))
|
|
}
|
|
setFinishReason(e) {
|
|
this._finishReason = e
|
|
}
|
|
sendAutoFinishSignal() {
|
|
this._autoFinishAllowed || (es && Fa.log("[Tracing] Received finish signal for idle transaction."), this._restartIdleTimeout(), this._autoFinishAllowed = !0)
|
|
}
|
|
_restartIdleTimeout(e) {
|
|
this.cancelIdleTimeout(), this._idleTimeoutID = setTimeout(() => {
|
|
this._finished || 0 !== Object.keys(this.activities).length || (this._finishReason = Hl[1], this.end(e))
|
|
}, this._idleTimeout)
|
|
}
|
|
_pushActivity(e) {
|
|
this.cancelIdleTimeout(void 0, {
|
|
restartOnChildSpanChange: !this._idleTimeoutCanceledPermanently
|
|
}), es && Fa.log(`[Tracing] pushActivity: ${e}`), this.activities[e] = !0, es && Fa.log("[Tracing] new activities count", Object.keys(this.activities).length)
|
|
}
|
|
_popActivity(e) {
|
|
if (this.activities[e] && (es && Fa.log(`[Tracing] popActivity ${e}`), delete this.activities[e], es && Fa.log("[Tracing] new activities count", Object.keys(this.activities).length)), 0 === Object.keys(this.activities).length) {
|
|
const e = ls();
|
|
this._idleTimeoutCanceledPermanently ? this._autoFinishAllowed && (this._finishReason = Hl[5], this.end(e)) : this._restartIdleTimeout(e + this._idleTimeout / 1e3)
|
|
}
|
|
}
|
|
_beat() {
|
|
if (this._finished) return;
|
|
const e = Object.keys(this.activities).join("");
|
|
e === this._prevHeartbeatString ? this._heartbeatCounter++ : this._heartbeatCounter = 1, this._prevHeartbeatString = e, this._heartbeatCounter >= 3 ? this._autoFinishAllowed && (es && Fa.log("[Tracing] Transaction finished because of no change for 3 heart beats"), this.setStatus("deadline_exceeded"), this._finishReason = Hl[0], this.end()) : this._pingHeartbeat()
|
|
}
|
|
_pingHeartbeat() {
|
|
es && Fa.log(`pinging Heartbeat -> current counter: ${this._heartbeatCounter}`), setTimeout(() => {
|
|
this._beat()
|
|
}, this._heartbeatInterval)
|
|
}
|
|
}
|
|
|
|
function Wl(e, t, n) {
|
|
if (!Sl(t)) return e.sampled = !1, e;
|
|
if (void 0 !== e.sampled) return e.setAttribute(Gu, Number(e.sampled)), e;
|
|
let r;
|
|
return "function" == typeof t.tracesSampler ? (r = t.tracesSampler(n), e.setAttribute(Gu, Number(r))) : void 0 !== n.parentSampled ? r = n.parentSampled : void 0 !== t.tracesSampleRate ? (r = t.tracesSampleRate, e.setAttribute(Gu, Number(r))) : (r = 1, e.setAttribute(Gu, r)), Vl(r) ? r ? (e.sampled = Math.random() < r, e.sampled ? (es && Fa.log(`[Tracing] starting ${e.op} transaction - ${Us(e).description}`), e) : (es && Fa.log(`[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = ${Number(r)})`), e)) : (es && Fa.log("[Tracing] Discarding transaction because " + ("function" == typeof t.tracesSampler ? "tracesSampler returned 0 or false" : "a negative sampling decision was inherited or tracesSampleRate is set to 0")), e.sampled = !1, e) : (es && Fa.warn("[Tracing] Discarding transaction because of invalid sample rate."), e.sampled = !1, e)
|
|
}
|
|
|
|
function Vl(e) {
|
|
return _a(e) || "number" != typeof e && "boolean" != typeof e ? (es && Fa.warn(`[Tracing] Given sample rate is invalid. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(e)} of type ${JSON.stringify(typeof e)}.`), !1) : !(e < 0 || e > 1) || (es && Fa.warn(`[Tracing] Given sample rate is invalid. Sample rate must be between 0 and 1. Got ${e}.`), !1)
|
|
}
|
|
|
|
function Yl() {
|
|
const e = this.getScope().getSpan();
|
|
return e ? {
|
|
"sentry-trace": Ls(e)
|
|
} : {}
|
|
}
|
|
|
|
function Jl(e, t) {
|
|
const n = this.getClient(),
|
|
r = n && n.getOptions() || {},
|
|
o = r.instrumenter || "sentry",
|
|
i = e.instrumenter || "sentry";
|
|
o !== i && (es && Fa.error(`A transaction was started with instrumenter=\`${i}\`, but the SDK is configured with the \`${o}\` instrumenter.\nThe transaction will not be sampled. Please use the ${o} instrumentation to start transactions.`), e.sampled = !1);
|
|
let a = new Gl(e, this);
|
|
return a = Wl(a, r, {
|
|
name: e.name,
|
|
parentSampled: e.parentSampled,
|
|
transactionContext: e,
|
|
attributes: {
|
|
...e.data,
|
|
...e.attributes
|
|
},
|
|
...t
|
|
}), a.isRecording() && a.initSpanRecorder(r._experiments && r._experiments.maxSpans), n && n.emit && n.emit("startTransaction", a), a
|
|
}
|
|
|
|
function Kl(e, t, n, r, o, i, a, s = !1) {
|
|
const c = e.getClient(),
|
|
u = c && c.getOptions() || {};
|
|
let l = new ql(t, e, n, r, a, o, s);
|
|
return l = Wl(l, u, {
|
|
name: t.name,
|
|
parentSampled: t.parentSampled,
|
|
transactionContext: t,
|
|
attributes: {
|
|
...t.data,
|
|
...t.attributes
|
|
},
|
|
...i
|
|
}), l.isRecording() && l.initSpanRecorder(u._experiments && u._experiments.maxSpans), c && c.emit && c.emit("startTransaction", l), l
|
|
}
|
|
|
|
function Ql() {
|
|
const e = ec();
|
|
e.__SENTRY__ && (e.__SENTRY__.extensions = e.__SENTRY__.extensions || {}, e.__SENTRY__.extensions.startTransaction || (e.__SENTRY__.extensions.startTransaction = Jl), e.__SENTRY__.extensions.traceHeaders || (e.__SENTRY__.extensions.traceHeaders = Yl), vl || (vl = !0, fl(bl), hl(bl)))
|
|
}
|
|
|
|
function Xl(e) {
|
|
const t = [];
|
|
|
|
function n(e) {
|
|
return t.splice(t.indexOf(e), 1)[0]
|
|
}
|
|
return {
|
|
$: t,
|
|
add: function(r) {
|
|
if (!(void 0 === e || t.length < e)) return ms(new zu("Not adding Promise because buffer limit was reached."));
|
|
const o = r();
|
|
return -1 === t.indexOf(o) && t.push(o), o.then(() => n(o)).then(null, () => n(o).then(null, () => {})), o
|
|
},
|
|
drain: function(e) {
|
|
return new gs((n, r) => {
|
|
let o = t.length;
|
|
if (!o) return n(!0);
|
|
const i = setTimeout(() => {
|
|
e && e > 0 && n(!1)
|
|
}, e);
|
|
t.forEach(e => {
|
|
hs(e).then(() => {
|
|
--o || (clearTimeout(i), n(!0))
|
|
}, r)
|
|
})
|
|
})
|
|
}
|
|
}
|
|
}
|
|
const Zl = 6e4;
|
|
|
|
function ef(e, t = Date.now()) {
|
|
const n = parseInt(`${e}`, 10);
|
|
if (!isNaN(n)) return 1e3 * n;
|
|
const r = Date.parse(`${e}`);
|
|
return isNaN(r) ? Zl : r - t
|
|
}
|
|
|
|
function tf(e, t, n = Date.now()) {
|
|
return function(e, t) {
|
|
return e[t] || e.all || 0
|
|
}(e, t) > n
|
|
}
|
|
|
|
function nf(e, {
|
|
statusCode: t,
|
|
headers: n
|
|
}, r = Date.now()) {
|
|
const o = {
|
|
...e
|
|
},
|
|
i = n && n["x-sentry-rate-limits"],
|
|
a = n && n["retry-after"];
|
|
if (i)
|
|
for (const e of i.trim().split(",")) {
|
|
const [t, n, , , i] = e.split(":", 5), a = parseInt(t, 10), s = 1e3 * (isNaN(a) ? 60 : a);
|
|
if (n)
|
|
for (const e of n.split(";")) "metric_bucket" === e && i && !i.split(";").includes("custom") || (o[e] = r + s);
|
|
else o.all = r + s
|
|
} else a ? o.all = r + ef(a, r) : 429 === t && (o.all = r + 6e4);
|
|
return o
|
|
}
|
|
const rf = 30;
|
|
|
|
function of(e, t, n = Xl(e.bufferSize || rf)) {
|
|
let r = {};
|
|
|
|
function o(o) {
|
|
const i = [];
|
|
if (Tu(o, (t, n) => {
|
|
const o = Cu(n);
|
|
if (tf(r, o)) {
|
|
const r = af(t, n);
|
|
e.recordDroppedEvent("ratelimit_backoff", o, r)
|
|
} else i.push(t)
|
|
}), 0 === i.length) return hs();
|
|
const a = Eu(o[0], i),
|
|
s = t => {
|
|
Tu(a, (n, r) => {
|
|
const o = af(n, r);
|
|
e.recordDroppedEvent(t, Cu(r), o)
|
|
})
|
|
};
|
|
return n.add(() => t({
|
|
body: Iu(a, e.textEncoder)
|
|
}).then(e => (void 0 !== e.statusCode && (e.statusCode < 200 || e.statusCode >= 300) && es && Fa.warn(`Sentry responded with status code ${e.statusCode} to sent event.`), r = nf(r, e), e), e => {
|
|
throw s("network_error"), e
|
|
})).then(e => e, e => {
|
|
if (e instanceof zu) return es && Fa.error("Skipped sending event because buffer is full."), s("queue_overflow"), hs();
|
|
throw e
|
|
})
|
|
}
|
|
return o.__sentry__baseTransport__ = !0, {
|
|
send: o,
|
|
flush: e => n.drain(e)
|
|
}
|
|
}
|
|
|
|
function af(e, t) {
|
|
if ("event" === t || "transaction" === t) return Array.isArray(e) ? e[1] : void 0
|
|
}
|
|
|
|
function sf(e, t) {
|
|
let n;
|
|
return Tu(e, (e, r) => (t.includes(r) && (n = Array.isArray(e) ? e[1] : void 0), !!n)), n
|
|
}
|
|
|
|
function cf(e, t) {
|
|
return n => {
|
|
const r = e(n),
|
|
o = new Map;
|
|
|
|
function i(t, r) {
|
|
const i = r ? `${t}:${r}` : t;
|
|
let a = o.get(i);
|
|
if (!a) {
|
|
const s = Su(t);
|
|
if (!s) return;
|
|
const c = Yu(s, n.tunnel);
|
|
a = r ? function(e, t) {
|
|
return n => {
|
|
const r = e(n);
|
|
return {
|
|
...r,
|
|
send: async e => {
|
|
const n = sf(e, ["event", "transaction", "profile", "replay_event"]);
|
|
return n && (n.release = t), r.send(e)
|
|
}
|
|
}
|
|
}
|
|
}(e, r)({
|
|
...n,
|
|
url: c
|
|
}) : e({
|
|
...n,
|
|
url: c
|
|
}), o.set(i, a)
|
|
}
|
|
return [t, a]
|
|
}
|
|
return {
|
|
send: async function(e) {
|
|
const n = t({
|
|
envelope: e,
|
|
getEvent: function(t) {
|
|
const n = t && t.length ? t : ["event"];
|
|
return sf(e, n)
|
|
}
|
|
}).map(e => "string" == typeof e ? i(e, void 0) : i(e.dsn, e.release)).filter(e => !!e);
|
|
0 === n.length && n.push(["", r]);
|
|
return (await Promise.all(n.map(([t, n]) => n.send(function(e, t) {
|
|
return Eu(t ? {
|
|
...e[0],
|
|
dsn: t
|
|
} : e[0], e[1])
|
|
}(e, t)))))[0]
|
|
},
|
|
flush: async function(e) {
|
|
const t = [await r.flush(e)];
|
|
for (const [, n] of o) t.push(await n.flush(e));
|
|
return t.every(e => e)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
const uf = "c",
|
|
lf = "g",
|
|
ff = "s",
|
|
df = "d";
|
|
const pf = {
|
|
[uf]: class {
|
|
constructor(e) {
|
|
this._value = e
|
|
}
|
|
get weight() {
|
|
return 1
|
|
}
|
|
add(e) {
|
|
this._value += e
|
|
}
|
|
toString() {
|
|
return `${this._value}`
|
|
}
|
|
},
|
|
[lf]: class {
|
|
constructor(e) {
|
|
this._last = e, this._min = e, this._max = e, this._sum = e, this._count = 1
|
|
}
|
|
get weight() {
|
|
return 5
|
|
}
|
|
add(e) {
|
|
this._last = e, e < this._min && (this._min = e), e > this._max && (this._max = e), this._sum += e, this._count++
|
|
}
|
|
toString() {
|
|
return `${this._last}:${this._min}:${this._max}:${this._sum}:${this._count}`
|
|
}
|
|
},
|
|
[df]: class {
|
|
constructor(e) {
|
|
this._value = [e]
|
|
}
|
|
get weight() {
|
|
return this._value.length
|
|
}
|
|
add(e) {
|
|
this._value.push(e)
|
|
}
|
|
toString() {
|
|
return this._value.join(":")
|
|
}
|
|
},
|
|
[ff]: class {
|
|
constructor(e) {
|
|
this.first = e, this._value = new Set([e])
|
|
}
|
|
get weight() {
|
|
return this._value.size
|
|
}
|
|
add(e) {
|
|
this._value.add(e)
|
|
}
|
|
toString() {
|
|
return Array.from(this._value).map(e => "string" == typeof e ? function(e) {
|
|
let t = 0;
|
|
for (let n = 0; n < e.length; n++) t = (t << 5) - t + e.charCodeAt(n), t &= t;
|
|
return t >>> 0
|
|
}(e) : e).join(":")
|
|
}
|
|
}
|
|
};
|
|
class hf {
|
|
constructor(e) {
|
|
this._client = e, this._buckets = new Map, this._interval = setInterval(() => this.flush(), 5e3)
|
|
}
|
|
add(e, t, n, r = "none", o = {}, i = ls()) {
|
|
const a = Math.floor(i),
|
|
s = t.replace(/[^\w\-.]+/gi, "_");
|
|
const c = function(e) {
|
|
const t = {};
|
|
for (const n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[Ku(n)] = Xu(String(e[n])));
|
|
return t
|
|
}(o),
|
|
u = function(e) {
|
|
return e.replace(/[^\w]+/gi, "_")
|
|
}(r),
|
|
l = function(e, t, n, r) {
|
|
return `${e}${t}${n}${Object.entries(Qa(r)).sort((e,t)=>e[0].localeCompare(t[0]))}`
|
|
}(e, s, u, c);
|
|
let f = this._buckets.get(l);
|
|
const d = f && "s" === e ? f.metric.weight : 0;
|
|
f ? (f.metric.add(n), f.timestamp < a && (f.timestamp = a)) : (f = {
|
|
metric: new pf[e](n),
|
|
timestamp: a,
|
|
metricType: e,
|
|
name: s,
|
|
unit: u,
|
|
tags: c
|
|
}, this._buckets.set(l, f));
|
|
! function(e, t, n, r, o, i) {
|
|
const a = Tl();
|
|
if (a) {
|
|
const s = Rl(a) || new Map,
|
|
c = `${e}:${t}@${r}`,
|
|
u = s.get(i);
|
|
if (u) {
|
|
const [, e] = u;
|
|
s.set(i, [c, {
|
|
min: Math.min(e.min, n),
|
|
max: Math.max(e.max, n),
|
|
count: e.count += 1,
|
|
sum: e.sum += n,
|
|
tags: e.tags
|
|
}])
|
|
} else s.set(i, [c, {
|
|
min: n,
|
|
max: n,
|
|
count: 1,
|
|
sum: n,
|
|
tags: o
|
|
}]);
|
|
jl || (jl = new WeakMap), jl.set(a, s)
|
|
}
|
|
}(e, s, "string" == typeof n ? f.metric.weight - d : n, u, o, l)
|
|
}
|
|
flush() {
|
|
if (0 !== this._buckets.size) {
|
|
if (this._client.captureAggregateMetrics) {
|
|
const e = Array.from(this._buckets).map(([, e]) => e);
|
|
this._client.captureAggregateMetrics(e)
|
|
}
|
|
this._buckets.clear()
|
|
}
|
|
}
|
|
close() {
|
|
clearInterval(this._interval), this.flush()
|
|
}
|
|
}
|
|
const mf = "MetricsAggregator",
|
|
gf = () => ({
|
|
name: mf,
|
|
setupOnce() {},
|
|
setup(e) {
|
|
e.metricsAggregator = new hf(e)
|
|
}
|
|
});
|
|
|
|
function yf(e, t, n, r = {}) {
|
|
const o = Uc(),
|
|
i = $c();
|
|
if (o) {
|
|
if (!o.metricsAggregator) return void(es && Fa.warn("No metrics aggregator enabled. Please add the MetricsAggregator integration to use metrics APIs"));
|
|
const {
|
|
unit: a,
|
|
tags: s,
|
|
timestamp: c
|
|
} = r, {
|
|
release: u,
|
|
environment: l
|
|
} = o.getOptions(), f = i.getTransaction(), d = {};
|
|
u && (d.release = u), l && (d.environment = l), f && (d.transaction = Us(f).description || ""), es && Fa.log(`Adding value of ${n} to ${e} metric ${t}`), o.metricsAggregator.add(e, t, n, a, {
|
|
...d,
|
|
...s
|
|
}, c)
|
|
}
|
|
}
|
|
const vf = {
|
|
increment: function(e, t = 1, n) {
|
|
yf("c", e, t, n)
|
|
},
|
|
distribution: function(e, t, n) {
|
|
yf("d", e, t, n)
|
|
},
|
|
set: function(e, t, n) {
|
|
yf("s", e, t, n)
|
|
},
|
|
gauge: function(e, t, n) {
|
|
yf("g", e, t, n)
|
|
},
|
|
MetricsAggregator: Xc(mf, gf),
|
|
metricsAggregatorIntegration: gf
|
|
};
|
|
|
|
function bf(e, ...t) {
|
|
const n = new String(String.raw(e, ...t));
|
|
return n.__sentry_template_string__ = e.join("\0").replace(/%/g, "%%").replace(/\0/g, "%s"), n.__sentry_template_values__ = t, n
|
|
}
|
|
|
|
function _f(e) {
|
|
const t = nc().getStackTop();
|
|
t.client = e, t.scope.setClient(e)
|
|
}
|
|
|
|
function Sf(e, t, n) {
|
|
const r = gl();
|
|
r && r.setMeasurement(e, t, n)
|
|
}
|
|
const wf = Ea;
|
|
let Of = 0;
|
|
|
|
function Ef() {
|
|
return Of > 0
|
|
}
|
|
|
|
function kf(e, t = {}, n) {
|
|
if ("function" != typeof e) return e;
|
|
try {
|
|
const t = e.__sentry_wrapped__;
|
|
if (t) return "function" == typeof t ? t : e;
|
|
if (Va(e)) return e
|
|
} catch (t) {
|
|
return e
|
|
}
|
|
const r = function() {
|
|
const r = Array.prototype.slice.call(arguments);
|
|
try {
|
|
n && "function" == typeof n && n.apply(this, arguments);
|
|
const o = r.map(e => kf(e, t));
|
|
return e.apply(this, o)
|
|
} catch (e) {
|
|
throw Of++, setTimeout(() => {
|
|
Of--
|
|
}), Rc(n => {
|
|
n.addEventProcessor(e => (t.mechanism && (os(e, void 0, void 0), is(e, t.mechanism)), e.extra = {
|
|
...e.extra,
|
|
arguments: r
|
|
}, e)), wc(e)
|
|
}), e
|
|
}
|
|
};
|
|
try {
|
|
for (const t in e) Object.prototype.hasOwnProperty.call(e, t) && (r[t] = e[t])
|
|
} catch (e) {}
|
|
Wa(r, e), qa(e, "__sentry_wrapped__", r);
|
|
try {
|
|
Object.getOwnPropertyDescriptor(r, "name").configurable && Object.defineProperty(r, "name", {
|
|
get: () => e.name
|
|
})
|
|
} catch (e) {}
|
|
return r
|
|
}
|
|
var Tf = n(49651);
|
|
const xf = "undefined" == typeof __SENTRY_DEBUG__ || __SENTRY_DEBUG__;
|
|
|
|
function If(e, t) {
|
|
const n = Af(e, t),
|
|
r = {
|
|
type: t && t.name,
|
|
value: jf(t)
|
|
};
|
|
return n.length && (r.stacktrace = {
|
|
frames: n
|
|
}), void 0 === r.type && "" === r.value && (r.value = "Unrecoverable error caught"), r
|
|
}
|
|
|
|
function Pf(e, t) {
|
|
return {
|
|
exception: {
|
|
values: [If(e, t)]
|
|
}
|
|
}
|
|
}
|
|
|
|
function Af(e, t) {
|
|
const n = t.stacktrace || t.stack || "",
|
|
r = function(e) {
|
|
if (e) {
|
|
if ("number" == typeof e.framesToPop) return e.framesToPop;
|
|
if (Cf.test(e.message)) return 1
|
|
}
|
|
return 0
|
|
}(t);
|
|
try {
|
|
return e(n, r)
|
|
} catch (e) {}
|
|
return []
|
|
}
|
|
const Cf = /Minified React error #\d+;/i;
|
|
|
|
function jf(e) {
|
|
const t = e && e.message;
|
|
return t ? t.error && "string" == typeof t.error.message ? t.error.message : t : "No error message"
|
|
}
|
|
|
|
function Rf(e, t, n, r) {
|
|
const o = Df(e, t, n && n.syntheticException || void 0, r);
|
|
return is(o), o.level = "error", n && n.event_id && (o.event_id = n.event_id), hs(o)
|
|
}
|
|
|
|
function Mf(e, t, n = "info", r, o) {
|
|
const i = Nf(e, t, r && r.syntheticException || void 0, o);
|
|
return i.level = n, r && r.event_id && (i.event_id = r.event_id), hs(i)
|
|
}
|
|
|
|
function Df(e, t, n, r, o) {
|
|
let i;
|
|
if (da(t) && t.error) {
|
|
return Pf(e, t.error)
|
|
}
|
|
if (pa(t) || fa(t, "DOMException")) {
|
|
const o = t;
|
|
if ("stack" in t) i = Pf(e, t);
|
|
else {
|
|
const t = o.name || (pa(o) ? "DOMError" : "DOMException"),
|
|
a = o.message ? `${t}: ${o.message}` : t;
|
|
i = Nf(e, a, n, r), os(i, a)
|
|
}
|
|
return "code" in o && (i.tags = {
|
|
...i.tags,
|
|
"DOMException.code": `${o.code}`
|
|
}), i
|
|
}
|
|
if (la(t)) return Pf(e, t);
|
|
if (ya(t) || va(t)) {
|
|
return i = function(e, t, n, r) {
|
|
const o = Uc(),
|
|
i = o && o.getOptions().normalizeDepth,
|
|
a = {
|
|
exception: {
|
|
values: [{
|
|
type: va(t) ? t.constructor.name : r ? "UnhandledRejection" : "Error",
|
|
value: Lf(t, {
|
|
isUnhandledRejection: r
|
|
})
|
|
}]
|
|
},
|
|
extra: {
|
|
__serialized__: gc(t, i)
|
|
}
|
|
};
|
|
if (n) {
|
|
const t = Af(e, n);
|
|
t.length && (a.exception.values[0].stacktrace = {
|
|
frames: t
|
|
})
|
|
}
|
|
return a
|
|
}(e, t, n, o), is(i, {
|
|
synthetic: !0
|
|
}), i
|
|
}
|
|
return i = Nf(e, t, n, r), os(i, `${t}`, void 0), is(i, {
|
|
synthetic: !0
|
|
}), i
|
|
}
|
|
|
|
function Nf(e, t, n, r) {
|
|
const o = {};
|
|
if (r && n) {
|
|
const r = Af(e, n);
|
|
r.length && (o.exception = {
|
|
values: [{
|
|
value: t,
|
|
stacktrace: {
|
|
frames: r
|
|
}
|
|
}]
|
|
})
|
|
}
|
|
if (ma(t)) {
|
|
const {
|
|
__sentry_template_string__: e,
|
|
__sentry_template_values__: n
|
|
} = t;
|
|
return o.logentry = {
|
|
message: e,
|
|
params: n
|
|
}, o
|
|
}
|
|
return o.message = t, o
|
|
}
|
|
|
|
function Lf(e, {
|
|
isUnhandledRejection: t
|
|
}) {
|
|
const n = function(e, t = 40) {
|
|
const n = Object.keys(Ya(e));
|
|
if (n.sort(), !n.length) return "[object has no keys]";
|
|
if (n[0].length >= t) return Ba(n[0], t);
|
|
for (let e = n.length; e > 0; e--) {
|
|
const r = n.slice(0, e).join(", ");
|
|
if (!(r.length > t)) return e === n.length ? r : Ba(r, t)
|
|
}
|
|
return ""
|
|
}(e),
|
|
r = t ? "promise rejection" : "exception";
|
|
if (da(e)) return `Event \`ErrorEvent\` captured as ${r} with message \`${e.message}\``;
|
|
if (va(e)) {
|
|
return `Event \`${function(e){try{const t=Object.getPrototypeOf(e);return t?t.constructor.name:void 0}catch(e){}}(e)}\` (type=${e.type}) captured as ${r}`
|
|
}
|
|
return `Object captured as ${r} with keys: ${n}`
|
|
}
|
|
|
|
function Ff(e, {
|
|
metadata: t,
|
|
tunnel: n,
|
|
dsn: r
|
|
}) {
|
|
const o = {
|
|
event_id: e.event_id,
|
|
sent_at: (new Date).toISOString(),
|
|
...t && t.sdk && {
|
|
sdk: {
|
|
name: t.sdk.name,
|
|
version: t.sdk.version
|
|
}
|
|
},
|
|
...!!n && !!r && {
|
|
dsn: _u(r)
|
|
}
|
|
},
|
|
i = function(e) {
|
|
return [{
|
|
type: "user_report"
|
|
}, e]
|
|
}(e);
|
|
return Eu(o, [i])
|
|
}
|
|
class Bf extends tl {
|
|
constructor(e) {
|
|
! function(e, t, n = [t], r = "npm") {
|
|
const o = e._metadata || {};
|
|
o.sdk || (o.sdk = {
|
|
name: `sentry.javascript.${t}`,
|
|
packages: n.map(e => ({
|
|
name: `${r}:@sentry/${e}`,
|
|
version: Ks
|
|
})),
|
|
version: Ks
|
|
}), e._metadata = o
|
|
}(e, "browser", ["browser"], wf.SENTRY_SDK_SOURCE || (0, Tf.e)()), super(e), e.sendClientReports && wf.document && wf.document.addEventListener("visibilitychange", () => {
|
|
"hidden" === wf.document.visibilityState && this._flushOutcomes()
|
|
})
|
|
}
|
|
eventFromException(e, t) {
|
|
return Rf(this._options.stackParser, e, t, this._options.attachStacktrace)
|
|
}
|
|
eventFromMessage(e, t = "info", n) {
|
|
return Mf(this._options.stackParser, e, t, n, this._options.attachStacktrace)
|
|
}
|
|
captureUserFeedback(e) {
|
|
if (!this._isEnabled()) return void(xf && Fa.warn("SDK not enabled, will not capture user feedback."));
|
|
const t = Ff(e, {
|
|
metadata: this.getSdkMetadata(),
|
|
dsn: this.getDsn(),
|
|
tunnel: this.getOptions().tunnel
|
|
});
|
|
this._sendEnvelope(t)
|
|
}
|
|
_prepareEvent(e, t, n) {
|
|
return e.platform = e.platform || "javascript", super._prepareEvent(e, t, n)
|
|
}
|
|
_flushOutcomes() {
|
|
const e = this._clearOutcomes();
|
|
if (0 === e.length) return void(xf && Fa.log("No outcomes to send"));
|
|
if (!this._dsn) return void(xf && Fa.log("No dsn provided, will not send outcomes"));
|
|
xf && Fa.log("Sending outcomes:", e);
|
|
const t = (n = e, Eu((r = this._options.tunnel && _u(this._dsn)) ? {
|
|
dsn: r
|
|
} : {}, [
|
|
[{
|
|
type: "client_report"
|
|
}, {
|
|
timestamp: o || us(),
|
|
discarded_events: n
|
|
}]
|
|
]));
|
|
var n, r, o;
|
|
this._sendEnvelope(t)
|
|
}
|
|
}
|
|
const Uf = ka();
|
|
|
|
function Gf() {
|
|
if (!("fetch" in Uf)) return !1;
|
|
try {
|
|
return new Headers, new Request("http://www.example.com"), new Response, !0
|
|
} catch (e) {
|
|
return !1
|
|
}
|
|
}
|
|
|
|
function $f(e) {
|
|
return e && /^function fetch\(\)\s+\{\s+\[native code\]\s+\}$/.test(e.toString())
|
|
}
|
|
|
|
function Hf() {
|
|
if ("string" == typeof EdgeRuntime) return !0;
|
|
if (!Gf()) return !1;
|
|
if ($f(Uf.fetch)) return !0;
|
|
let e = !1;
|
|
const t = Uf.document;
|
|
if (t && "function" == typeof t.createElement) try {
|
|
const n = t.createElement("iframe");
|
|
n.hidden = !0, t.head.appendChild(n), n.contentWindow && n.contentWindow.fetch && (e = $f(n.contentWindow.fetch)), t.head.removeChild(n)
|
|
} catch (e) {
|
|
Ma && Fa.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ", e)
|
|
}
|
|
return e
|
|
}
|
|
let zf;
|
|
|
|
function qf(e, t = function() {
|
|
if (zf) return zf;
|
|
if ($f(wf.fetch)) return zf = wf.fetch.bind(wf);
|
|
const e = wf.document;
|
|
let t = wf.fetch;
|
|
if (e && "function" == typeof e.createElement) try {
|
|
const n = e.createElement("iframe");
|
|
n.hidden = !0, e.head.appendChild(n);
|
|
const r = n.contentWindow;
|
|
r && r.fetch && (t = r.fetch), e.head.removeChild(n)
|
|
} catch (e) {
|
|
xf && Fa.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ", e)
|
|
}
|
|
return zf = t.bind(wf)
|
|
}()) {
|
|
let n = 0,
|
|
r = 0;
|
|
return of(e, function(o) {
|
|
const i = o.body.length;
|
|
n += i, r++;
|
|
const a = {
|
|
body: o.body,
|
|
method: "POST",
|
|
referrerPolicy: "origin",
|
|
headers: e.headers,
|
|
keepalive: n <= 6e4 && r < 15,
|
|
...e.fetchOptions
|
|
};
|
|
try {
|
|
return t(e.url, a).then(e => (n -= i, r--, {
|
|
statusCode: e.status,
|
|
headers: {
|
|
"x-sentry-rate-limits": e.headers.get("X-Sentry-Rate-Limits"),
|
|
"retry-after": e.headers.get("Retry-After")
|
|
}
|
|
}))
|
|
} catch (e) {
|
|
return zf = void 0, n -= i, r--, ms(e)
|
|
}
|
|
})
|
|
}
|
|
const Wf = 4;
|
|
|
|
function Vf(e) {
|
|
return of(e, function(t) {
|
|
return new gs((n, r) => {
|
|
const o = new XMLHttpRequest;
|
|
o.onerror = r, o.onreadystatechange = () => {
|
|
o.readyState === Wf && n({
|
|
statusCode: o.status,
|
|
headers: {
|
|
"x-sentry-rate-limits": o.getResponseHeader("X-Sentry-Rate-Limits"),
|
|
"retry-after": o.getResponseHeader("Retry-After")
|
|
}
|
|
})
|
|
}, o.open("POST", e.url);
|
|
for (const t in e.headers) Object.prototype.hasOwnProperty.call(e.headers, t) && o.setRequestHeader(t, e.headers[t]);
|
|
o.send(t.body)
|
|
})
|
|
})
|
|
}
|
|
const Yf = "?";
|
|
|
|
function Jf(e, t, n, r) {
|
|
const o = {
|
|
filename: e,
|
|
function: t,
|
|
in_app: !0
|
|
};
|
|
return void 0 !== n && (o.lineno = n), void 0 !== r && (o.colno = r), o
|
|
}
|
|
const Kf = /^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,
|
|
Qf = /\((\S*)(?::(\d+))(?::(\d+))\)/,
|
|
Xf = [30, e => {
|
|
const t = Kf.exec(e);
|
|
if (t) {
|
|
if (t[2] && 0 === t[2].indexOf("eval")) {
|
|
const e = Qf.exec(t[2]);
|
|
e && (t[2] = e[1], t[3] = e[2], t[4] = e[3])
|
|
}
|
|
const [e, n] = ld(t[1] || Yf, t[2]);
|
|
return Jf(n, e, t[3] ? +t[3] : void 0, t[4] ? +t[4] : void 0)
|
|
}
|
|
}],
|
|
Zf = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,
|
|
ed = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i,
|
|
td = [50, e => {
|
|
const t = Zf.exec(e);
|
|
if (t) {
|
|
if (t[3] && t[3].indexOf(" > eval") > -1) {
|
|
const e = ed.exec(t[3]);
|
|
e && (t[1] = t[1] || "eval", t[3] = e[1], t[4] = e[2], t[5] = "")
|
|
}
|
|
let e = t[3],
|
|
n = t[1] || Yf;
|
|
return [n, e] = ld(n, e), Jf(e, n, t[4] ? +t[4] : void 0, t[5] ? +t[5] : void 0)
|
|
}
|
|
}],
|
|
nd = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i,
|
|
rd = [40, e => {
|
|
const t = nd.exec(e);
|
|
return t ? Jf(t[2], t[1] || Yf, +t[3], t[4] ? +t[4] : void 0) : void 0
|
|
}],
|
|
od = / line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,
|
|
id = [10, e => {
|
|
const t = od.exec(e);
|
|
return t ? Jf(t[2], t[3] || Yf, +t[1]) : void 0
|
|
}],
|
|
ad = / line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i,
|
|
sd = [20, e => {
|
|
const t = ad.exec(e);
|
|
return t ? Jf(t[5], t[3] || t[4] || Yf, +t[1], +t[2]) : void 0
|
|
}],
|
|
cd = [Xf, td, rd],
|
|
ud = dc(...cd),
|
|
ld = (e, t) => {
|
|
const n = -1 !== e.indexOf("safari-extension"),
|
|
r = -1 !== e.indexOf("safari-web-extension");
|
|
return n || r ? [-1 !== e.indexOf("@") ? e.split("@")[0] : Yf, n ? `safari-extension:${t}` : `safari-web-extension:${t}`] : [e, t]
|
|
},
|
|
fd = ka();
|
|
const dd = Ea;
|
|
let pd;
|
|
|
|
function hd(e) {
|
|
const t = "history";
|
|
sl(t, e), cl(t, md)
|
|
}
|
|
|
|
function md() {
|
|
if (! function() {
|
|
const e = fd.chrome,
|
|
t = e && e.app && e.app.runtime,
|
|
n = "history" in fd && !!fd.history.pushState && !!fd.history.replaceState;
|
|
return !t && n
|
|
}()) return;
|
|
const e = dd.onpopstate;
|
|
|
|
function t(e) {
|
|
return function(...t) {
|
|
const n = t.length > 2 ? t[2] : void 0;
|
|
if (n) {
|
|
const e = pd,
|
|
t = String(n);
|
|
pd = t;
|
|
ul("history", {
|
|
from: e,
|
|
to: t
|
|
})
|
|
}
|
|
return e.apply(this, t)
|
|
}
|
|
}
|
|
dd.onpopstate = function(...t) {
|
|
const n = dd.location.href,
|
|
r = pd;
|
|
pd = n;
|
|
if (ul("history", {
|
|
from: r,
|
|
to: n
|
|
}), e) try {
|
|
return e.apply(this, t)
|
|
} catch (e) {}
|
|
}, za(dd.history, "pushState", t), za(dd.history, "replaceState", t)
|
|
}
|
|
|
|
function gd(e) {
|
|
const t = "console";
|
|
sl(t, e), cl(t, yd)
|
|
}
|
|
|
|
function yd() {
|
|
"console" in Ea && Da.forEach(function(e) {
|
|
e in Ea.console && za(Ea.console, e, function(t) {
|
|
return Na[e] = t,
|
|
function(...t) {
|
|
ul("console", {
|
|
args: t,
|
|
level: e
|
|
});
|
|
const n = Na[e];
|
|
n && n.apply(Ea.console, t)
|
|
}
|
|
})
|
|
})
|
|
}
|
|
const vd = Ea;
|
|
let bd, _d, Sd;
|
|
|
|
function wd(e) {
|
|
sl("dom", e), cl("dom", Od)
|
|
}
|
|
|
|
function Od() {
|
|
if (!vd.document) return;
|
|
const e = ul.bind(null, "dom"),
|
|
t = Ed(e, !0);
|
|
vd.document.addEventListener("click", t, !1), vd.document.addEventListener("keypress", t, !1), ["EventTarget", "Node"].forEach(t => {
|
|
const n = vd[t] && vd[t].prototype;
|
|
n && n.hasOwnProperty && n.hasOwnProperty("addEventListener") && (za(n, "addEventListener", function(t) {
|
|
return function(n, r, o) {
|
|
if ("click" === n || "keypress" == n) try {
|
|
const r = this,
|
|
i = r.__sentry_instrumentation_handlers__ = r.__sentry_instrumentation_handlers__ || {},
|
|
a = i[n] = i[n] || {
|
|
refCount: 0
|
|
};
|
|
if (!a.handler) {
|
|
const r = Ed(e);
|
|
a.handler = r, t.call(this, n, r, o)
|
|
}
|
|
a.refCount++
|
|
} catch (e) {}
|
|
return t.call(this, n, r, o)
|
|
}
|
|
}), za(n, "removeEventListener", function(e) {
|
|
return function(t, n, r) {
|
|
if ("click" === t || "keypress" == t) try {
|
|
const n = this,
|
|
o = n.__sentry_instrumentation_handlers__ || {},
|
|
i = o[t];
|
|
i && (i.refCount--, i.refCount <= 0 && (e.call(this, t, i.handler, r), i.handler = void 0, delete o[t]), 0 === Object.keys(o).length && delete n.__sentry_instrumentation_handlers__)
|
|
} catch (e) {}
|
|
return e.call(this, t, n, r)
|
|
}
|
|
}))
|
|
})
|
|
}
|
|
|
|
function Ed(e, t = !1) {
|
|
return n => {
|
|
if (!n || n._sentryCaptured) return;
|
|
const r = function(e) {
|
|
try {
|
|
return e.target
|
|
} catch (e) {
|
|
return null
|
|
}
|
|
}(n);
|
|
if (function(e, t) {
|
|
return "keypress" === e && (!t || !t.tagName || "INPUT" !== t.tagName && "TEXTAREA" !== t.tagName && !t.isContentEditable)
|
|
}(n.type, r)) return;
|
|
qa(n, "_sentryCaptured", !0), r && !r._sentryId && qa(r, "_sentryId", ts());
|
|
const o = "keypress" === n.type ? "input" : n.type;
|
|
if (! function(e) {
|
|
if (e.type !== _d) return !1;
|
|
try {
|
|
if (!e.target || e.target._sentryId !== Sd) return !1
|
|
} catch (e) {}
|
|
return !0
|
|
}(n)) {
|
|
e({
|
|
event: n,
|
|
name: o,
|
|
global: t
|
|
}), _d = n.type, Sd = r ? r._sentryId : void 0
|
|
}
|
|
clearTimeout(bd), bd = vd.setTimeout(() => {
|
|
Sd = void 0, _d = void 0
|
|
}, 1e3)
|
|
}
|
|
}
|
|
const kd = Ea,
|
|
Td = "__sentry_xhr_v3__";
|
|
|
|
function xd(e) {
|
|
sl("xhr", e), cl("xhr", Id)
|
|
}
|
|
|
|
function Id() {
|
|
if (!kd.XMLHttpRequest) return;
|
|
const e = XMLHttpRequest.prototype;
|
|
za(e, "open", function(e) {
|
|
return function(...t) {
|
|
const n = Date.now(),
|
|
r = ha(t[0]) ? t[0].toUpperCase() : void 0,
|
|
o = function(e) {
|
|
if (ha(e)) return e;
|
|
try {
|
|
return e.toString()
|
|
} catch (e) {}
|
|
return
|
|
}(t[1]);
|
|
if (!r || !o) return e.apply(this, t);
|
|
this[Td] = {
|
|
method: r,
|
|
url: o,
|
|
request_headers: {}
|
|
}, "POST" === r && o.match(/sentry_key/) && (this.__sentry_own_request__ = !0);
|
|
const i = () => {
|
|
const e = this[Td];
|
|
if (e && 4 === this.readyState) {
|
|
try {
|
|
e.status_code = this.status
|
|
} catch (e) {}
|
|
ul("xhr", {
|
|
args: [r, o],
|
|
endTimestamp: Date.now(),
|
|
startTimestamp: n,
|
|
xhr: this
|
|
})
|
|
}
|
|
};
|
|
return "onreadystatechange" in this && "function" == typeof this.onreadystatechange ? za(this, "onreadystatechange", function(e) {
|
|
return function(...t) {
|
|
return i(), e.apply(this, t)
|
|
}
|
|
}) : this.addEventListener("readystatechange", i), za(this, "setRequestHeader", function(e) {
|
|
return function(...t) {
|
|
const [n, r] = t, o = this[Td];
|
|
return o && ha(n) && ha(r) && (o.request_headers[n.toLowerCase()] = r), e.apply(this, t)
|
|
}
|
|
}), e.apply(this, t)
|
|
}
|
|
}), za(e, "send", function(e) {
|
|
return function(...t) {
|
|
const n = this[Td];
|
|
if (!n) return e.apply(this, t);
|
|
void 0 !== t[0] && (n.body = t[0]);
|
|
return ul("xhr", {
|
|
args: [n.method, n.url],
|
|
startTimestamp: Date.now(),
|
|
xhr: this
|
|
}), e.apply(this, t)
|
|
}
|
|
})
|
|
}
|
|
|
|
function Pd(e) {
|
|
const t = "fetch";
|
|
sl(t, e), cl(t, Ad)
|
|
}
|
|
|
|
function Ad() {
|
|
Hf() && za(Ea, "fetch", function(e) {
|
|
return function(...t) {
|
|
const {
|
|
method: n,
|
|
url: r
|
|
} = function(e) {
|
|
if (0 === e.length) return {
|
|
method: "GET",
|
|
url: ""
|
|
};
|
|
if (2 === e.length) {
|
|
const [t, n] = e;
|
|
return {
|
|
url: jd(t),
|
|
method: Cd(n, "method") ? String(n.method).toUpperCase() : "GET"
|
|
}
|
|
}
|
|
const t = e[0];
|
|
return {
|
|
url: jd(t),
|
|
method: Cd(t, "method") ? String(t.method).toUpperCase() : "GET"
|
|
}
|
|
}(t), o = {
|
|
args: t,
|
|
fetchData: {
|
|
method: n,
|
|
url: r
|
|
},
|
|
startTimestamp: Date.now()
|
|
};
|
|
return ul("fetch", {
|
|
...o
|
|
}), e.apply(Ea, t).then(e => (ul("fetch", {
|
|
...o,
|
|
endTimestamp: Date.now(),
|
|
response: e
|
|
}), e), e => {
|
|
throw ul("fetch", {
|
|
...o,
|
|
endTimestamp: Date.now(),
|
|
error: e
|
|
}), e
|
|
})
|
|
}
|
|
})
|
|
}
|
|
|
|
function Cd(e, t) {
|
|
return !!e && "object" == typeof e && !!e[t]
|
|
}
|
|
|
|
function jd(e) {
|
|
return "string" == typeof e ? e : e ? Cd(e, "url") ? e.url : e.toString ? e.toString() : "" : ""
|
|
}
|
|
const Rd = ["fatal", "error", "warning", "log", "info", "debug"];
|
|
|
|
function Md(e) {
|
|
return "warn" === e ? "warning" : Rd.includes(e) ? e : "log"
|
|
}
|
|
|
|
function Dd(e) {
|
|
if (!e) return {};
|
|
const t = e.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);
|
|
if (!t) return {};
|
|
const n = t[6] || "",
|
|
r = t[8] || "";
|
|
return {
|
|
host: t[4],
|
|
path: t[5],
|
|
protocol: t[2],
|
|
search: n,
|
|
hash: r,
|
|
relative: t[5] + n + r
|
|
}
|
|
}
|
|
const Nd = 1024,
|
|
Ld = "Breadcrumbs",
|
|
Fd = (e = {}) => {
|
|
const t = {
|
|
console: !0,
|
|
dom: !0,
|
|
fetch: !0,
|
|
history: !0,
|
|
sentry: !0,
|
|
xhr: !0,
|
|
...e
|
|
};
|
|
return {
|
|
name: Ld,
|
|
setupOnce() {},
|
|
setup(e) {
|
|
t.console && gd(function(e) {
|
|
return function(t) {
|
|
if (Uc() !== e) return;
|
|
const n = {
|
|
category: "console",
|
|
data: {
|
|
arguments: t.args,
|
|
logger: "console"
|
|
},
|
|
level: Md(t.level),
|
|
message: Ga(t.args, " ")
|
|
};
|
|
if ("assert" === t.level) {
|
|
if (!1 !== t.args[0]) return;
|
|
n.message = `Assertion failed: ${Ga(t.args.slice(1)," ")||"console.assert"}`, n.data.arguments = t.args.slice(1)
|
|
}
|
|
Tc(n, {
|
|
input: t.args,
|
|
level: t.level
|
|
})
|
|
}
|
|
}(e)), t.dom && wd(function(e, t) {
|
|
return function(n) {
|
|
if (Uc() !== e) return;
|
|
let r, o, i = "object" == typeof t ? t.serializeAttribute : void 0,
|
|
a = "object" == typeof t && "number" == typeof t.maxStringLength ? t.maxStringLength : void 0;
|
|
a && a > Nd && (xf && Fa.warn(`\`dom.maxStringLength\` cannot exceed 1024, but a value of ${a} was configured. Sentry will use 1024 instead.`), a = Nd), "string" == typeof i && (i = [i]);
|
|
try {
|
|
const e = n.event,
|
|
t = function(e) {
|
|
return !!e && !!e.target
|
|
}(e) ? e.target : e;
|
|
r = Pa(t, {
|
|
keyAttrs: i,
|
|
maxStringLength: a
|
|
}), o = Ra(t)
|
|
} catch (e) {
|
|
r = "<unknown>"
|
|
}
|
|
if (0 === r.length) return;
|
|
const s = {
|
|
category: `ui.${n.name}`,
|
|
message: r
|
|
};
|
|
o && (s.data = {
|
|
"ui.component_name": o
|
|
}), Tc(s, {
|
|
event: n.event,
|
|
name: n.name,
|
|
global: n.global
|
|
})
|
|
}
|
|
}(e, t.dom)), t.xhr && xd(function(e) {
|
|
return function(t) {
|
|
if (Uc() !== e) return;
|
|
const {
|
|
startTimestamp: n,
|
|
endTimestamp: r
|
|
} = t, o = t.xhr[Td];
|
|
if (!n || !r || !o) return;
|
|
const {
|
|
method: i,
|
|
url: a,
|
|
status_code: s,
|
|
body: c
|
|
} = o;
|
|
Tc({
|
|
category: "xhr",
|
|
data: {
|
|
method: i,
|
|
url: a,
|
|
status_code: s
|
|
},
|
|
type: "http"
|
|
}, {
|
|
xhr: t.xhr,
|
|
input: c,
|
|
startTimestamp: n,
|
|
endTimestamp: r
|
|
})
|
|
}
|
|
}(e)), t.fetch && Pd(function(e) {
|
|
return function(t) {
|
|
if (Uc() !== e) return;
|
|
const {
|
|
startTimestamp: n,
|
|
endTimestamp: r
|
|
} = t;
|
|
if (r && (!t.fetchData.url.match(/sentry_key/) || "POST" !== t.fetchData.method))
|
|
if (t.error) {
|
|
Tc({
|
|
category: "fetch",
|
|
data: t.fetchData,
|
|
level: "error",
|
|
type: "http"
|
|
}, {
|
|
data: t.error,
|
|
input: t.args,
|
|
startTimestamp: n,
|
|
endTimestamp: r
|
|
})
|
|
} else {
|
|
const e = t.response;
|
|
Tc({
|
|
category: "fetch",
|
|
data: {
|
|
...t.fetchData,
|
|
status_code: e && e.status
|
|
},
|
|
type: "http"
|
|
}, {
|
|
input: t.args,
|
|
response: e,
|
|
startTimestamp: n,
|
|
endTimestamp: r
|
|
})
|
|
}
|
|
}
|
|
}(e)), t.history && hd(function(e) {
|
|
return function(t) {
|
|
if (Uc() !== e) return;
|
|
let n = t.from,
|
|
r = t.to;
|
|
const o = Dd(wf.location.href);
|
|
let i = n ? Dd(n) : void 0;
|
|
const a = Dd(r);
|
|
i && i.path || (i = o), o.protocol === a.protocol && o.host === a.host && (r = a.relative), o.protocol === i.protocol && o.host === i.host && (n = i.relative), Tc({
|
|
category: "navigation",
|
|
data: {
|
|
from: n,
|
|
to: r
|
|
}
|
|
})
|
|
}
|
|
}(e)), t.sentry && e.on && e.on("beforeSendEvent", function(e) {
|
|
return function(t) {
|
|
Uc() === e && Tc({
|
|
category: "sentry." + ("transaction" === t.type ? "transaction" : "event"),
|
|
event_id: t.event_id,
|
|
level: t.level,
|
|
message: rs(t)
|
|
}, {
|
|
event: t
|
|
})
|
|
}
|
|
}(e))
|
|
}
|
|
}
|
|
},
|
|
Bd = Xc(Ld, Fd);
|
|
const Ud = "Dedupe",
|
|
Gd = () => {
|
|
let e;
|
|
return {
|
|
name: Ud,
|
|
setupOnce() {},
|
|
processEvent(t) {
|
|
if (t.type) return t;
|
|
try {
|
|
if (function(e, t) {
|
|
if (!t) return !1;
|
|
if (function(e, t) {
|
|
const n = e.message,
|
|
r = t.message;
|
|
if (!n && !r) return !1;
|
|
if (n && !r || !n && r) return !1;
|
|
if (n !== r) return !1;
|
|
if (!zd(e, t)) return !1;
|
|
if (!Hd(e, t)) return !1;
|
|
return !0
|
|
}(e, t)) return !0;
|
|
if (function(e, t) {
|
|
const n = qd(t),
|
|
r = qd(e);
|
|
if (!n || !r) return !1;
|
|
if (n.type !== r.type || n.value !== r.value) return !1;
|
|
if (!zd(e, t)) return !1;
|
|
if (!Hd(e, t)) return !1;
|
|
return !0
|
|
}(e, t)) return !0;
|
|
return !1
|
|
}(t, e)) return xf && Fa.warn("Event dropped due to being a duplicate of previously captured event."), null
|
|
} catch (e) {}
|
|
return e = t
|
|
}
|
|
}
|
|
},
|
|
$d = Xc(Ud, Gd);
|
|
|
|
function Hd(e, t) {
|
|
let n = Wd(e),
|
|
r = Wd(t);
|
|
if (!n && !r) return !0;
|
|
if (n && !r || !n && r) return !1;
|
|
if (r.length !== n.length) return !1;
|
|
for (let e = 0; e < r.length; e++) {
|
|
const t = r[e],
|
|
o = n[e];
|
|
if (t.filename !== o.filename || t.lineno !== o.lineno || t.colno !== o.colno || t.function !== o.function) return !1
|
|
}
|
|
return !0
|
|
}
|
|
|
|
function zd(e, t) {
|
|
let n = e.fingerprint,
|
|
r = t.fingerprint;
|
|
if (!n && !r) return !0;
|
|
if (n && !r || !n && r) return !1;
|
|
try {
|
|
return !(n.join("") !== r.join(""))
|
|
} catch (e) {
|
|
return !1
|
|
}
|
|
}
|
|
|
|
function qd(e) {
|
|
return e.exception && e.exception.values && e.exception.values[0]
|
|
}
|
|
|
|
function Wd(e) {
|
|
const t = e.exception;
|
|
if (t) try {
|
|
return t.values[0].stacktrace.frames
|
|
} catch (e) {
|
|
return
|
|
}
|
|
}
|
|
const Vd = "GlobalHandlers",
|
|
Yd = (e = {}) => {
|
|
const t = {
|
|
onerror: !0,
|
|
onunhandledrejection: !0,
|
|
...e
|
|
};
|
|
return {
|
|
name: Vd,
|
|
setupOnce() {
|
|
Error.stackTraceLimit = 50
|
|
},
|
|
setup(e) {
|
|
t.onerror && (! function(e) {
|
|
fl(t => {
|
|
const {
|
|
stackParser: n,
|
|
attachStacktrace: r
|
|
} = Xd();
|
|
if (Uc() !== e || Ef()) return;
|
|
const {
|
|
msg: o,
|
|
url: i,
|
|
line: a,
|
|
column: s,
|
|
error: c
|
|
} = t, u = void 0 === c && ha(o) ? function(e, t, n, r) {
|
|
const o = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;
|
|
let i = da(e) ? e.message : e,
|
|
a = "Error";
|
|
const s = i.match(o);
|
|
s && (a = s[1], i = s[2]);
|
|
const c = {
|
|
exception: {
|
|
values: [{
|
|
type: a,
|
|
value: i
|
|
}]
|
|
}
|
|
};
|
|
return Kd(c, t, n, r)
|
|
}(o, i, a, s) : Kd(Df(n, c || o, void 0, r, !1), i, a, s);
|
|
u.level = "error", Ec(u, {
|
|
originalException: c,
|
|
mechanism: {
|
|
handled: !1,
|
|
type: "onerror"
|
|
}
|
|
})
|
|
})
|
|
}(e), Qd("onerror")), t.onunhandledrejection && (! function(e) {
|
|
hl(t => {
|
|
const {
|
|
stackParser: n,
|
|
attachStacktrace: r
|
|
} = Xd();
|
|
if (Uc() !== e || Ef()) return;
|
|
const o = function(e) {
|
|
if (ga(e)) return e;
|
|
const t = e;
|
|
try {
|
|
if ("reason" in t) return t.reason;
|
|
if ("detail" in t && "reason" in t.detail) return t.detail.reason
|
|
} catch (e) {}
|
|
return e
|
|
}(t),
|
|
i = ga(o) ? {
|
|
exception: {
|
|
values: [{
|
|
type: "UnhandledRejection",
|
|
value: `Non-Error promise rejection captured with value: ${String(o)}`
|
|
}]
|
|
}
|
|
} : Df(n, o, void 0, r, !0);
|
|
i.level = "error", Ec(i, {
|
|
originalException: o,
|
|
mechanism: {
|
|
handled: !1,
|
|
type: "onunhandledrejection"
|
|
}
|
|
})
|
|
})
|
|
}(e), Qd("onunhandledrejection"))
|
|
}
|
|
}
|
|
},
|
|
Jd = Xc(Vd, Yd);
|
|
|
|
function Kd(e, t, n, r) {
|
|
const o = e.exception = e.exception || {},
|
|
i = o.values = o.values || [],
|
|
a = i[0] = i[0] || {},
|
|
s = a.stacktrace = a.stacktrace || {},
|
|
c = s.frames = s.frames || [],
|
|
u = isNaN(parseInt(r, 10)) ? void 0 : r,
|
|
l = isNaN(parseInt(n, 10)) ? void 0 : n,
|
|
f = ha(t) && t.length > 0 ? t : Ca();
|
|
return 0 === c.length && c.push({
|
|
colno: u,
|
|
filename: f,
|
|
function: "?",
|
|
in_app: !0,
|
|
lineno: l
|
|
}), e
|
|
}
|
|
|
|
function Qd(e) {
|
|
xf && Fa.log(`Global Handler attached: ${e}`)
|
|
}
|
|
|
|
function Xd() {
|
|
const e = Uc();
|
|
return e && e.getOptions() || {
|
|
stackParser: () => [],
|
|
attachStacktrace: !1
|
|
}
|
|
}
|
|
const Zd = "HttpContext",
|
|
ep = () => ({
|
|
name: Zd,
|
|
setupOnce() {},
|
|
preprocessEvent(e) {
|
|
if (!wf.navigator && !wf.location && !wf.document) return;
|
|
const t = e.request && e.request.url || wf.location && wf.location.href,
|
|
{
|
|
referrer: n
|
|
} = wf.document || {},
|
|
{
|
|
userAgent: r
|
|
} = wf.navigator || {},
|
|
o = {
|
|
...e.request && e.request.headers,
|
|
...n && {
|
|
Referer: n
|
|
},
|
|
...r && {
|
|
"User-Agent": r
|
|
}
|
|
},
|
|
i = {
|
|
...e.request,
|
|
...t && {
|
|
url: t
|
|
},
|
|
headers: o
|
|
};
|
|
e.request = i
|
|
}
|
|
}),
|
|
tp = Xc(Zd, ep),
|
|
np = "LinkedErrors",
|
|
rp = (e = {}) => {
|
|
const t = e.limit || 5,
|
|
n = e.key || "cause";
|
|
return {
|
|
name: np,
|
|
setupOnce() {},
|
|
preprocessEvent(e, r, o) {
|
|
const i = o.getOptions();
|
|
lu(If, i.stackParser, i.maxValueLength, n, t, e, r)
|
|
}
|
|
}
|
|
},
|
|
op = Xc(np, rp),
|
|
ip = ["EventTarget", "Window", "Node", "ApplicationCache", "AudioTrackList", "BroadcastChannel", "ChannelMergerNode", "CryptoOperation", "EventSource", "FileReader", "HTMLUnknownElement", "IDBDatabase", "IDBRequest", "IDBTransaction", "KeyOperation", "MediaController", "MessagePort", "ModalWindow", "Notification", "SVGElementInstance", "Screen", "SharedWorker", "TextTrack", "TextTrackCue", "TextTrackList", "WebSocket", "WebSocketWorker", "Worker", "XMLHttpRequest", "XMLHttpRequestEventTarget", "XMLHttpRequestUpload"],
|
|
ap = "TryCatch",
|
|
sp = (e = {}) => {
|
|
const t = {
|
|
XMLHttpRequest: !0,
|
|
eventTarget: !0,
|
|
requestAnimationFrame: !0,
|
|
setInterval: !0,
|
|
setTimeout: !0,
|
|
...e
|
|
};
|
|
return {
|
|
name: ap,
|
|
setupOnce() {
|
|
t.setTimeout && za(wf, "setTimeout", up), t.setInterval && za(wf, "setInterval", up), t.requestAnimationFrame && za(wf, "requestAnimationFrame", lp), t.XMLHttpRequest && "XMLHttpRequest" in wf && za(XMLHttpRequest.prototype, "send", fp);
|
|
const e = t.eventTarget;
|
|
if (e) {
|
|
(Array.isArray(e) ? e : ip).forEach(dp)
|
|
}
|
|
}
|
|
}
|
|
},
|
|
cp = Xc(ap, sp);
|
|
|
|
function up(e) {
|
|
return function(...t) {
|
|
const n = t[0];
|
|
return t[0] = kf(n, {
|
|
mechanism: {
|
|
data: {
|
|
function: hc(e)
|
|
},
|
|
handled: !1,
|
|
type: "instrument"
|
|
}
|
|
}), e.apply(this, t)
|
|
}
|
|
}
|
|
|
|
function lp(e) {
|
|
return function(t) {
|
|
return e.apply(this, [kf(t, {
|
|
mechanism: {
|
|
data: {
|
|
function: "requestAnimationFrame",
|
|
handler: hc(e)
|
|
},
|
|
handled: !1,
|
|
type: "instrument"
|
|
}
|
|
})])
|
|
}
|
|
}
|
|
|
|
function fp(e) {
|
|
return function(...t) {
|
|
const n = this;
|
|
return ["onload", "onerror", "onprogress", "onreadystatechange"].forEach(e => {
|
|
e in n && "function" == typeof n[e] && za(n, e, function(t) {
|
|
const n = {
|
|
mechanism: {
|
|
data: {
|
|
function: e,
|
|
handler: hc(t)
|
|
},
|
|
handled: !1,
|
|
type: "instrument"
|
|
}
|
|
},
|
|
r = Va(t);
|
|
return r && (n.mechanism.data.handler = hc(r)), kf(t, n)
|
|
})
|
|
}), e.apply(this, t)
|
|
}
|
|
}
|
|
|
|
function dp(e) {
|
|
const t = wf,
|
|
n = t[e] && t[e].prototype;
|
|
n && n.hasOwnProperty && n.hasOwnProperty("addEventListener") && (za(n, "addEventListener", function(t) {
|
|
return function(n, r, o) {
|
|
try {
|
|
"function" == typeof r.handleEvent && (r.handleEvent = kf(r.handleEvent, {
|
|
mechanism: {
|
|
data: {
|
|
function: "handleEvent",
|
|
handler: hc(r),
|
|
target: e
|
|
},
|
|
handled: !1,
|
|
type: "instrument"
|
|
}
|
|
}))
|
|
} catch (e) {}
|
|
return t.apply(this, [n, kf(r, {
|
|
mechanism: {
|
|
data: {
|
|
function: "addEventListener",
|
|
handler: hc(r),
|
|
target: e
|
|
},
|
|
handled: !1,
|
|
type: "instrument"
|
|
}
|
|
}), o])
|
|
}
|
|
}), za(n, "removeEventListener", function(e) {
|
|
return function(t, n, r) {
|
|
const o = n;
|
|
try {
|
|
const n = o && o.__sentry_wrapped__;
|
|
n && e.call(this, t, n, r)
|
|
} catch (e) {}
|
|
return e.call(this, t, o, r)
|
|
}
|
|
}))
|
|
}
|
|
const pp = [su(), nu(), sp(), Fd(), Yd(), rp(), Gd(), ep()];
|
|
|
|
function hp(e) {
|
|
return [...pp]
|
|
}
|
|
|
|
function mp(e = {}) {
|
|
void 0 === e.defaultIntegrations && (e.defaultIntegrations = hp()), void 0 === e.release && ("string" == typeof __SENTRY_RELEASE__ && (e.release = __SENTRY_RELEASE__), wf.SENTRY_RELEASE && wf.SENTRY_RELEASE.id && (e.release = wf.SENTRY_RELEASE.id)), void 0 === e.autoSessionTracking && (e.autoSessionTracking = !0), void 0 === e.sendClientReports && (e.sendClientReports = !0);
|
|
const t = {
|
|
...e,
|
|
stackParser: (n = e.stackParser || ud, Array.isArray(n) ? dc(...n) : n),
|
|
integrations: Yc(e),
|
|
transport: e.transport || (Gf() ? qf : Vf)
|
|
};
|
|
var n;
|
|
! function(e, t) {
|
|
!0 === t.debug && (es ? Fa.enable() : La(() => {
|
|
console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.")
|
|
})), $c().update(t.initialScope);
|
|
const n = new e(t);
|
|
_f(n),
|
|
function(e) {
|
|
e.init ? e.init() : e.setupIntegrations && e.setupIntegrations()
|
|
}(n)
|
|
}(Bf, t), e.autoSessionTracking && function() {
|
|
if (void 0 === wf.document) return void(xf && Fa.warn("Session tracking in non-browser environment with @sentry/browser is not supported."));
|
|
Hc({
|
|
ignoreDuration: !0
|
|
}), Wc(), hd(({
|
|
from: e,
|
|
to: t
|
|
}) => {
|
|
void 0 !== e && e !== t && (Hc({
|
|
ignoreDuration: !0
|
|
}), Wc())
|
|
})
|
|
}()
|
|
}
|
|
const gp = (e = {}, t = nc()) => {
|
|
if (!wf.document) return void(xf && Fa.error("Global document not defined in showReportDialog call"));
|
|
const {
|
|
client: n,
|
|
scope: r
|
|
} = t.getStackTop(), o = e.dsn || n && n.getDsn();
|
|
if (!o) return void(xf && Fa.error("DSN not configured for showReportDialog call"));
|
|
r && (e.user = {
|
|
...r.getUser(),
|
|
...e.user
|
|
}), e.eventId || (e.eventId = t.lastEventId());
|
|
const i = wf.document.createElement("script");
|
|
i.async = !0, i.crossOrigin = "anonymous", i.src = function(e, t) {
|
|
const n = Ou(e);
|
|
if (!n) return "";
|
|
const r = `${Wu(n)}embed/error-page/`;
|
|
let o = `dsn=${_u(n)}`;
|
|
for (const e in t)
|
|
if ("dsn" !== e && "onClose" !== e)
|
|
if ("user" === e) {
|
|
const e = t.user;
|
|
if (!e) continue;
|
|
e.name && (o += `&name=${encodeURIComponent(e.name)}`), e.email && (o += `&email=${encodeURIComponent(e.email)}`)
|
|
} else o += `&${encodeURIComponent(e)}=${encodeURIComponent(t[e])}`;
|
|
return `${r}?${o}`
|
|
}(o, e), e.onLoad && (i.onload = e.onLoad);
|
|
const {
|
|
onClose: a
|
|
} = e;
|
|
if (a) {
|
|
const e = t => {
|
|
if ("__sentry_reportdialog_closed__" === t.data) try {
|
|
a()
|
|
} finally {
|
|
wf.removeEventListener("message", e)
|
|
}
|
|
};
|
|
wf.addEventListener("message", e)
|
|
}
|
|
const s = wf.document.head || wf.document.body;
|
|
s ? s.appendChild(i) : xf && Fa.error("Not injecting report dialog. No injection point found in HTML")
|
|
};
|
|
|
|
function yp() {}
|
|
|
|
function vp(e) {
|
|
e()
|
|
}
|
|
|
|
function bp(e) {
|
|
return kf(e)()
|
|
}
|
|
|
|
function _p(e) {
|
|
const t = Uc();
|
|
t && t.captureUserFeedback(e)
|
|
}
|
|
|
|
function Sp(e) {
|
|
let t, n = e[0],
|
|
r = 1;
|
|
for (; r < e.length;) {
|
|
const o = e[r],
|
|
i = e[r + 1];
|
|
if (r += 2, ("optionalAccess" === o || "optionalCall" === o) && null == n) return;
|
|
"access" === o || "optionalAccess" === o ? (t = n, n = i(n)) : "call" !== o && "optionalCall" !== o || (n = i((...e) => n.call(t, ...e)), t = void 0)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function wp(e, t) {
|
|
const n = t && function(e) {
|
|
return void 0 !== e.getClient
|
|
}(t) ? t.getClient() : t,
|
|
r = n && n.getDsn(),
|
|
o = n && n.getOptions().tunnel;
|
|
return function(e, t) {
|
|
return !!t && e.includes(t.host)
|
|
}(e, r) || function(e, t) {
|
|
if (!t) return !1;
|
|
return Op(e) === Op(t)
|
|
}(e, o)
|
|
}
|
|
|
|
function Op(e) {
|
|
return "/" === e[e.length - 1] ? e.slice(0, -1) : e
|
|
}
|
|
var Ep = n(76176);
|
|
|
|
function kp() {
|
|
return "undefined" != typeof window && (!(0, Ep.wD)() || void 0 !== Ea.process && "renderer" === Ea.process.type)
|
|
}
|
|
const Tp = "undefined" == typeof __SENTRY_DEBUG__ || __SENTRY_DEBUG__,
|
|
xp = (e, t, n) => {
|
|
let r, o;
|
|
return i => {
|
|
t.value >= 0 && (i || n) && (o = t.value - (r || 0), (o || void 0 === r) && (r = t.value, t.delta = o, e(t)))
|
|
}
|
|
},
|
|
Ip = Ea,
|
|
Pp = () => Ip.__WEB_VITALS_POLYFILL__ ? Ip.performance && (performance.getEntriesByType && performance.getEntriesByType("navigation")[0] || (() => {
|
|
const e = Ip.performance.timing,
|
|
t = Ip.performance.navigation.type,
|
|
n = {
|
|
entryType: "navigation",
|
|
startTime: 0,
|
|
type: 2 == t ? "back_forward" : 1 === t ? "reload" : "navigate"
|
|
};
|
|
for (const t in e) "navigationStart" !== t && "toJSON" !== t && (n[t] = Math.max(e[t] - e.navigationStart, 0));
|
|
return n
|
|
})()) : Ip.performance && performance.getEntriesByType && performance.getEntriesByType("navigation")[0],
|
|
Ap = () => {
|
|
const e = Pp();
|
|
return e && e.activationStart || 0
|
|
},
|
|
Cp = (e, t) => {
|
|
const n = Pp();
|
|
let r = "navigate";
|
|
return n && (r = Ip.document && Ip.document.prerendering || Ap() > 0 ? "prerender" : n.type.replace(/_/g, "-")), {
|
|
name: e,
|
|
value: void 0 === t ? -1 : t,
|
|
rating: "good",
|
|
delta: 0,
|
|
entries: [],
|
|
id: `v3-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,
|
|
navigationType: r
|
|
}
|
|
},
|
|
jp = (e, t, n) => {
|
|
try {
|
|
if (PerformanceObserver.supportedEntryTypes.includes(e)) {
|
|
const r = new PerformanceObserver(e => {
|
|
t(e.getEntries())
|
|
});
|
|
return r.observe({
|
|
type: e,
|
|
buffered: !0,
|
|
...n
|
|
}), r
|
|
}
|
|
} catch (e) {}
|
|
},
|
|
Rp = (e, t) => {
|
|
const n = r => {
|
|
"pagehide" !== r.type && "hidden" !== Ip.document.visibilityState || (e(r), t && (removeEventListener("visibilitychange", n, !0), removeEventListener("pagehide", n, !0)))
|
|
};
|
|
Ip.document && (addEventListener("visibilitychange", n, !0), addEventListener("pagehide", n, !0))
|
|
};
|
|
let Mp = -1;
|
|
const Dp = () => (Mp < 0 && (Ip.document && Ip.document.visibilityState && (Mp = "hidden" !== Ip.document.visibilityState || Ip.document.prerendering ? 1 / 0 : 0), Rp(({
|
|
timeStamp: e
|
|
}) => {
|
|
Mp = e
|
|
}, !0)), {
|
|
get firstHiddenTime() {
|
|
return Mp
|
|
}
|
|
});
|
|
let Np = 0,
|
|
Lp = 1 / 0,
|
|
Fp = 0;
|
|
const Bp = e => {
|
|
e.forEach(e => {
|
|
e.interactionId && (Lp = Math.min(Lp, e.interactionId), Fp = Math.max(Fp, e.interactionId), Np = Fp ? (Fp - Lp) / 7 + 1 : 0)
|
|
})
|
|
};
|
|
let Up;
|
|
const Gp = () => {
|
|
"interactionCount" in performance || Up || (Up = jp("event", Bp, {
|
|
type: "event",
|
|
buffered: !0,
|
|
durationThreshold: 0
|
|
}))
|
|
},
|
|
$p = () => Up ? Np : performance.interactionCount || 0,
|
|
Hp = [],
|
|
zp = {},
|
|
qp = e => {
|
|
const t = Hp[Hp.length - 1],
|
|
n = zp[e.interactionId];
|
|
if (n || Hp.length < 10 || e.duration > t.latency) {
|
|
if (n) n.entries.push(e), n.latency = Math.max(n.latency, e.duration);
|
|
else {
|
|
const t = {
|
|
id: e.interactionId,
|
|
latency: e.duration,
|
|
entries: [e]
|
|
};
|
|
zp[t.id] = t, Hp.push(t)
|
|
}
|
|
Hp.sort((e, t) => t.latency - e.latency), Hp.splice(10).forEach(e => {
|
|
delete zp[e.id]
|
|
})
|
|
}
|
|
},
|
|
Wp = (e, t) => {
|
|
t = t || {}, Gp();
|
|
const n = Cp("INP");
|
|
let r;
|
|
const o = e => {
|
|
e.forEach(e => {
|
|
if (e.interactionId && qp(e), "first-input" === e.entryType) {
|
|
!Hp.some(t => t.entries.some(t => e.duration === t.duration && e.startTime === t.startTime)) && qp(e)
|
|
}
|
|
});
|
|
const t = (() => {
|
|
const e = Math.min(Hp.length - 1, Math.floor($p() / 50));
|
|
return Hp[e]
|
|
})();
|
|
t && t.latency !== n.value && (n.value = t.latency, n.entries = t.entries, r())
|
|
},
|
|
i = jp("event", o, {
|
|
durationThreshold: t.durationThreshold || 40
|
|
});
|
|
r = xp(e, n, t.reportAllChanges), i && (i.observe({
|
|
type: "first-input",
|
|
buffered: !0
|
|
}), Rp(() => {
|
|
o(i.takeRecords()), n.value < 0 && $p() > 0 && (n.value = 0, n.entries = []), r(!0)
|
|
}))
|
|
},
|
|
Vp = {},
|
|
Yp = e => {
|
|
Ip.document && (Ip.document.prerendering ? addEventListener("prerenderingchange", () => Yp(e), !0) : "complete" !== Ip.document.readyState ? addEventListener("load", () => Yp(e), !0) : setTimeout(e, 0))
|
|
},
|
|
Jp = {},
|
|
Kp = {};
|
|
let Qp, Xp, Zp, eh, th;
|
|
|
|
function nh(e, t = !1) {
|
|
return lh("lcp", e, sh, Zp, t)
|
|
}
|
|
|
|
function rh(e, t) {
|
|
return fh(e, t), Kp[e] || (! function(e) {
|
|
const t = {};
|
|
"event" === e && (t.durationThreshold = 0);
|
|
jp(e, t => {
|
|
oh(e, {
|
|
entries: t
|
|
})
|
|
}, t)
|
|
}(e), Kp[e] = !0), dh(e, t)
|
|
}
|
|
|
|
function oh(e, t) {
|
|
const n = Jp[e];
|
|
if (n && n.length)
|
|
for (const r of n) try {
|
|
r(t)
|
|
} catch (t) {
|
|
Tp && Fa.error(`Error while triggering instrumentation handler.\nType: ${e}\nName: ${hc(r)}\nError:`, t)
|
|
}
|
|
}
|
|
|
|
function ih() {
|
|
return ((e, t = {}) => {
|
|
const n = Cp("CLS", 0);
|
|
let r, o = 0,
|
|
i = [];
|
|
const a = e => {
|
|
e.forEach(e => {
|
|
if (!e.hadRecentInput) {
|
|
const t = i[0],
|
|
a = i[i.length - 1];
|
|
o && 0 !== i.length && e.startTime - a.startTime < 1e3 && e.startTime - t.startTime < 5e3 ? (o += e.value, i.push(e)) : (o = e.value, i = [e]), o > n.value && (n.value = o, n.entries = i, r && r())
|
|
}
|
|
})
|
|
},
|
|
s = jp("layout-shift", a);
|
|
if (s) {
|
|
r = xp(e, n, t.reportAllChanges);
|
|
const o = () => {
|
|
a(s.takeRecords()), r(!0)
|
|
};
|
|
return Rp(o), o
|
|
}
|
|
})(e => {
|
|
oh("cls", {
|
|
metric: e
|
|
}), Qp = e
|
|
}, {
|
|
reportAllChanges: !0
|
|
})
|
|
}
|
|
|
|
function ah() {
|
|
return (e => {
|
|
const t = Dp(),
|
|
n = Cp("FID");
|
|
let r;
|
|
const o = e => {
|
|
e.startTime < t.firstHiddenTime && (n.value = e.processingStart - e.startTime, n.entries.push(e), r(!0))
|
|
},
|
|
i = e => {
|
|
e.forEach(o)
|
|
},
|
|
a = jp("first-input", i);
|
|
r = xp(e, n), a && Rp(() => {
|
|
i(a.takeRecords()), a.disconnect()
|
|
}, !0)
|
|
})(e => {
|
|
oh("fid", {
|
|
metric: e
|
|
}), Xp = e
|
|
})
|
|
}
|
|
|
|
function sh() {
|
|
return (e => {
|
|
const t = Dp(),
|
|
n = Cp("LCP");
|
|
let r;
|
|
const o = e => {
|
|
const o = e[e.length - 1];
|
|
if (o) {
|
|
const e = Math.max(o.startTime - Ap(), 0);
|
|
e < t.firstHiddenTime && (n.value = e, n.entries = [o], r())
|
|
}
|
|
},
|
|
i = jp("largest-contentful-paint", o);
|
|
if (i) {
|
|
r = xp(e, n);
|
|
const t = () => {
|
|
Vp[n.id] || (o(i.takeRecords()), i.disconnect(), Vp[n.id] = !0, r(!0))
|
|
};
|
|
return ["keydown", "click"].forEach(e => {
|
|
Ip.document && addEventListener(e, t, {
|
|
once: !0,
|
|
capture: !0
|
|
})
|
|
}), Rp(t, !0), t
|
|
}
|
|
})(e => {
|
|
oh("lcp", {
|
|
metric: e
|
|
}), Zp = e
|
|
})
|
|
}
|
|
|
|
function ch() {
|
|
return ((e, t) => {
|
|
t = t || {};
|
|
const n = Cp("TTFB"),
|
|
r = xp(e, n, t.reportAllChanges);
|
|
Yp(() => {
|
|
const e = Pp();
|
|
if (e) {
|
|
if (n.value = Math.max(e.responseStart - Ap(), 0), n.value < 0 || n.value > performance.now()) return;
|
|
n.entries = [e], r(!0)
|
|
}
|
|
})
|
|
})(e => {
|
|
oh("ttfb", {
|
|
metric: e
|
|
}), eh = e
|
|
})
|
|
}
|
|
|
|
function uh() {
|
|
return Wp(e => {
|
|
oh("inp", {
|
|
metric: e
|
|
}), th = e
|
|
})
|
|
}
|
|
|
|
function lh(e, t, n, r, o = !1) {
|
|
let i;
|
|
return fh(e, t), Kp[e] || (i = n(), Kp[e] = !0), r && t({
|
|
metric: r
|
|
}), dh(e, t, o ? i : void 0)
|
|
}
|
|
|
|
function fh(e, t) {
|
|
Jp[e] = Jp[e] || [], Jp[e].push(t)
|
|
}
|
|
|
|
function dh(e, t, n) {
|
|
return () => {
|
|
n && n();
|
|
const r = Jp[e];
|
|
if (!r) return;
|
|
const o = r.indexOf(t); - 1 !== o && r.splice(o, 1)
|
|
}
|
|
}
|
|
const ph = Ea,
|
|
hh = "sentryReplaySession",
|
|
mh = "Unable to send Replay",
|
|
gh = 15e4,
|
|
yh = 5e3,
|
|
vh = 2e7,
|
|
bh = 36e5;
|
|
|
|
function _h(e) {
|
|
let t, n = e[0],
|
|
r = 1;
|
|
for (; r < e.length;) {
|
|
const o = e[r],
|
|
i = e[r + 1];
|
|
if (r += 2, ("optionalAccess" === o || "optionalCall" === o) && null == n) return;
|
|
"access" === o || "optionalAccess" === o ? (t = n, n = i(n)) : "call" !== o && "optionalCall" !== o || (n = i((...e) => n.call(t, ...e)), t = void 0)
|
|
}
|
|
return n
|
|
}
|
|
var Sh;
|
|
|
|
function wh(e) {
|
|
const t = _h([e, "optionalAccess", e => e.host]);
|
|
return Boolean(_h([t, "optionalAccess", e => e.shadowRoot]) === e)
|
|
}
|
|
|
|
function Oh(e) {
|
|
return "[object ShadowRoot]" === Object.prototype.toString.call(e)
|
|
}
|
|
|
|
function Eh(e) {
|
|
try {
|
|
const n = e.rules || e.cssRules;
|
|
return n ? ((t = Array.from(n, kh).join("")).includes(" background-clip: text;") && !t.includes(" -webkit-background-clip: text;") && (t = t.replace(" background-clip: text;", " -webkit-background-clip: text; background-clip: text;")), t) : null
|
|
} catch (e) {
|
|
return null
|
|
}
|
|
var t
|
|
}
|
|
|
|
function kh(e) {
|
|
let t;
|
|
if (function(e) {
|
|
return "styleSheet" in e
|
|
}(e)) try {
|
|
t = Eh(e.styleSheet) || function(e) {
|
|
const {
|
|
cssText: t
|
|
} = e;
|
|
if (t.split('"').length < 3) return t;
|
|
const n = ["@import", `url(${JSON.stringify(e.href)})`];
|
|
return "" === e.layerName ? n.push("layer") : e.layerName && n.push(`layer(${e.layerName})`), e.supportsText && n.push(`supports(${e.supportsText})`), e.media.length && n.push(e.media.mediaText), n.join(" ") + ";"
|
|
}(e)
|
|
} catch (e) {} else if (function(e) {
|
|
return "selectorText" in e
|
|
}(e) && e.selectorText.includes(":")) return function(e) {
|
|
const t = /(\[(?:[\w-]+)[^\\])(:(?:[\w-]+)\])/gm;
|
|
return e.replace(t, "$1\\$2")
|
|
}(e.cssText);
|
|
return t || e.cssText
|
|
}! function(e) {
|
|
e[e.Document = 0] = "Document", e[e.DocumentType = 1] = "DocumentType", e[e.Element = 2] = "Element", e[e.Text = 3] = "Text", e[e.CDATA = 4] = "CDATA", e[e.Comment = 5] = "Comment"
|
|
}(Sh || (Sh = {}));
|
|
class Th {
|
|
constructor() {
|
|
this.idNodeMap = new Map, this.nodeMetaMap = new WeakMap
|
|
}
|
|
getId(e) {
|
|
if (!e) return -1;
|
|
const t = _h([this, "access", e => e.getMeta, "call", t => t(e), "optionalAccess", e => e.id]);
|
|
return r = () => -1, null != (n = t) ? n : r();
|
|
var n, r
|
|
}
|
|
getNode(e) {
|
|
return this.idNodeMap.get(e) || null
|
|
}
|
|
getIds() {
|
|
return Array.from(this.idNodeMap.keys())
|
|
}
|
|
getMeta(e) {
|
|
return this.nodeMetaMap.get(e) || null
|
|
}
|
|
removeNodeFromMap(e) {
|
|
const t = this.getId(e);
|
|
this.idNodeMap.delete(t), e.childNodes && e.childNodes.forEach(e => this.removeNodeFromMap(e))
|
|
}
|
|
has(e) {
|
|
return this.idNodeMap.has(e)
|
|
}
|
|
hasNode(e) {
|
|
return this.nodeMetaMap.has(e)
|
|
}
|
|
add(e, t) {
|
|
const n = t.id;
|
|
this.idNodeMap.set(n, e), this.nodeMetaMap.set(e, t)
|
|
}
|
|
replace(e, t) {
|
|
const n = this.getNode(e);
|
|
if (n) {
|
|
const e = this.nodeMetaMap.get(n);
|
|
e && this.nodeMetaMap.set(t, e)
|
|
}
|
|
this.idNodeMap.set(e, t)
|
|
}
|
|
reset() {
|
|
this.idNodeMap = new Map, this.nodeMetaMap = new WeakMap
|
|
}
|
|
}
|
|
|
|
function xh({
|
|
maskInputOptions: e,
|
|
tagName: t,
|
|
type: n
|
|
}) {
|
|
return "OPTION" === t && (t = "SELECT"), Boolean(e[t.toLowerCase()] || n && e[n] || "password" === n || "INPUT" === t && !n && e.text)
|
|
}
|
|
|
|
function Ih({
|
|
isMasked: e,
|
|
element: t,
|
|
value: n,
|
|
maskInputFn: r
|
|
}) {
|
|
let o = n || "";
|
|
return e ? (r && (o = r(o, t)), "*".repeat(o.length)) : o
|
|
}
|
|
|
|
function Ph(e) {
|
|
return e.toLowerCase()
|
|
}
|
|
|
|
function Ah(e) {
|
|
return e.toUpperCase()
|
|
}
|
|
const Ch = "__rrweb_original__";
|
|
|
|
function jh(e) {
|
|
const t = e.type;
|
|
return e.hasAttribute("data-rr-is-password") ? "password" : t ? Ph(t) : null
|
|
}
|
|
|
|
function Rh(e, t, n) {
|
|
return "INPUT" !== t || "radio" !== n && "checkbox" !== n ? e.value : e.getAttribute("value") || ""
|
|
}
|
|
let Mh = 1;
|
|
const Dh = new RegExp("[^a-z0-9-_:]");
|
|
|
|
function Nh() {
|
|
return Mh++
|
|
}
|
|
let Lh, Fh;
|
|
const Bh = /url\((?:(')([^']*)'|(")(.*?)"|([^)]*))\)/gm,
|
|
Uh = /^(?:[a-z+]+:)?\/\//i,
|
|
Gh = /^www\..*/i,
|
|
$h = /^(data:)([^,]*),(.*)/i;
|
|
|
|
function Hh(e, t) {
|
|
return (e || "").replace(Bh, (e, n, r, o, i, a) => {
|
|
const s = r || i || a,
|
|
c = n || o || "";
|
|
if (!s) return e;
|
|
if (Uh.test(s) || Gh.test(s)) return `url(${c}${s}${c})`;
|
|
if ($h.test(s)) return `url(${c}${s}${c})`;
|
|
if ("/" === s[0]) return `url(${c}${function(e){let t="";return t=e.indexOf("//")>-1?e.split("/").slice(0,3).join("/"):e.split("/")[0],t=t.split("?")[0],t}(t)+s}${c})`;
|
|
const u = t.split("/"),
|
|
l = s.split("/");
|
|
u.pop();
|
|
for (const e of l) "." !== e && (".." === e ? u.pop() : u.push(e));
|
|
return `url(${c}${u.join("/")}${c})`
|
|
})
|
|
}
|
|
const zh = /^[^ \t\n\r\u000c]+/,
|
|
qh = /^[, \t\n\r\u000c]+/;
|
|
|
|
function Wh(e, t) {
|
|
if (!t || "" === t.trim()) return t;
|
|
const n = e.createElement("a");
|
|
return n.href = t, n.href
|
|
}
|
|
|
|
function Vh(e) {
|
|
return Boolean("svg" === e.tagName || e.ownerSVGElement)
|
|
}
|
|
|
|
function Yh() {
|
|
const e = document.createElement("a");
|
|
return e.href = "", e.href
|
|
}
|
|
|
|
function Jh(e, t, n, r, o, i) {
|
|
return r ? "src" === n || "href" === n && ("use" !== t || "#" !== r[0]) || "xlink:href" === n && "#" !== r[0] ? Wh(e, r) : "background" !== n || "table" !== t && "td" !== t && "th" !== t ? "srcset" === n ? function(e, t) {
|
|
if ("" === t.trim()) return t;
|
|
let n = 0;
|
|
|
|
function r(e) {
|
|
let r;
|
|
const o = e.exec(t.substring(n));
|
|
return o ? (r = o[0], n += r.length, r) : ""
|
|
}
|
|
const o = [];
|
|
for (; r(qh), !(n >= t.length);) {
|
|
let i = r(zh);
|
|
if ("," === i.slice(-1)) i = Wh(e, i.substring(0, i.length - 1)), o.push(i);
|
|
else {
|
|
let r = "";
|
|
i = Wh(e, i);
|
|
let a = !1;
|
|
for (;;) {
|
|
const e = t.charAt(n);
|
|
if ("" === e) {
|
|
o.push((i + r).trim());
|
|
break
|
|
}
|
|
if (a) ")" === e && (a = !1);
|
|
else {
|
|
if ("," === e) {
|
|
n += 1, o.push((i + r).trim());
|
|
break
|
|
}
|
|
"(" === e && (a = !0)
|
|
}
|
|
r += e, n += 1
|
|
}
|
|
}
|
|
}
|
|
return o.join(", ")
|
|
}(e, r) : "style" === n ? Hh(r, Yh()) : "object" === t && "data" === n ? Wh(e, r) : "function" == typeof i ? i(n, r, o) : r : Wh(e, r) : r
|
|
}
|
|
|
|
function Kh(e, t, n) {
|
|
return ("video" === e || "audio" === e) && "autoplay" === t
|
|
}
|
|
|
|
function Qh(e, t, n = 1 / 0, r = 0) {
|
|
return e ? e.nodeType !== e.ELEMENT_NODE || r > n ? -1 : t(e) ? r : Qh(e.parentNode, t, n, r + 1) : -1
|
|
}
|
|
|
|
function Xh(e, t) {
|
|
return n => {
|
|
const r = n;
|
|
if (null === r) return !1;
|
|
try {
|
|
if (e)
|
|
if ("string" == typeof e) {
|
|
if (r.matches(`.${e}`)) return !0
|
|
} else if (function(e, t) {
|
|
for (let n = e.classList.length; n--;) {
|
|
const r = e.classList[n];
|
|
if (t.test(r)) return !0
|
|
}
|
|
return !1
|
|
}(r, e)) return !0;
|
|
return !(!t || !r.matches(t))
|
|
} catch (e) {
|
|
return !1
|
|
}
|
|
}
|
|
}
|
|
|
|
function Zh(e, t, n, r, o, i) {
|
|
try {
|
|
const a = e.nodeType === e.ELEMENT_NODE ? e : e.parentElement;
|
|
if (null === a) return !1;
|
|
if ("INPUT" === a.tagName) {
|
|
const e = a.getAttribute("autocomplete");
|
|
if (["current-password", "new-password", "cc-number", "cc-exp", "cc-exp-month", "cc-exp-year", "cc-csc"].includes(e)) return !0
|
|
}
|
|
let s = -1,
|
|
c = -1;
|
|
if (i) {
|
|
if (c = Qh(a, Xh(r, o)), c < 0) return !0;
|
|
s = Qh(a, Xh(t, n), c >= 0 ? c : 1 / 0)
|
|
} else {
|
|
if (s = Qh(a, Xh(t, n)), s < 0) return !1;
|
|
c = Qh(a, Xh(r, o), s >= 0 ? s : 1 / 0)
|
|
}
|
|
return s >= 0 ? !(c >= 0) || s <= c : !(c >= 0) && !!i
|
|
} catch (e) {}
|
|
return !!i
|
|
}
|
|
|
|
function em(e, t) {
|
|
const {
|
|
doc: n,
|
|
mirror: r,
|
|
blockClass: o,
|
|
blockSelector: i,
|
|
unblockSelector: a,
|
|
maskAllText: s,
|
|
maskAttributeFn: c,
|
|
maskTextClass: u,
|
|
unmaskTextClass: l,
|
|
maskTextSelector: f,
|
|
unmaskTextSelector: d,
|
|
inlineStylesheet: p,
|
|
maskInputOptions: h = {},
|
|
maskTextFn: m,
|
|
maskInputFn: g,
|
|
dataURLOptions: y = {},
|
|
inlineImages: v,
|
|
recordCanvas: b,
|
|
keepIframeSrcFn: _,
|
|
newlyAddedElement: S = !1
|
|
} = t, w = function(e, t) {
|
|
if (!t.hasNode(e)) return;
|
|
const n = t.getId(e);
|
|
return 1 === n ? void 0 : n
|
|
}(n, r);
|
|
switch (e.nodeType) {
|
|
case e.DOCUMENT_NODE:
|
|
return "CSS1Compat" !== e.compatMode ? {
|
|
type: Sh.Document,
|
|
childNodes: [],
|
|
compatMode: e.compatMode
|
|
} : {
|
|
type: Sh.Document,
|
|
childNodes: []
|
|
};
|
|
case e.DOCUMENT_TYPE_NODE:
|
|
return {
|
|
type: Sh.DocumentType, name: e.name, publicId: e.publicId, systemId: e.systemId, rootId: w
|
|
};
|
|
case e.ELEMENT_NODE:
|
|
return function(e, t) {
|
|
const {
|
|
doc: n,
|
|
blockClass: r,
|
|
blockSelector: o,
|
|
unblockSelector: i,
|
|
inlineStylesheet: a,
|
|
maskInputOptions: s = {},
|
|
maskAttributeFn: c,
|
|
maskInputFn: u,
|
|
dataURLOptions: l = {},
|
|
inlineImages: f,
|
|
recordCanvas: d,
|
|
keepIframeSrcFn: p,
|
|
newlyAddedElement: h = !1,
|
|
rootId: m,
|
|
maskAllText: g,
|
|
maskTextClass: y,
|
|
unmaskTextClass: v,
|
|
maskTextSelector: b,
|
|
unmaskTextSelector: _
|
|
} = t, S = function(e, t, n, r) {
|
|
try {
|
|
if (r && e.matches(r)) return !1;
|
|
if ("string" == typeof t) {
|
|
if (e.classList.contains(t)) return !0
|
|
} else
|
|
for (let n = e.classList.length; n--;) {
|
|
const r = e.classList[n];
|
|
if (t.test(r)) return !0
|
|
}
|
|
if (n) return e.matches(n)
|
|
} catch (e) {}
|
|
return !1
|
|
}(e, r, o, i), w = function(e) {
|
|
if (e instanceof HTMLFormElement) return "form";
|
|
const t = Ph(e.tagName);
|
|
return Dh.test(t) ? "div" : t
|
|
}(e);
|
|
let O = {};
|
|
const E = e.attributes.length;
|
|
for (let t = 0; t < E; t++) {
|
|
const r = e.attributes[t];
|
|
r.name && !Kh(w, r.name, r.value) && (O[r.name] = Jh(n, w, Ph(r.name), r.value, e, c))
|
|
}
|
|
if ("link" === w && a) {
|
|
const t = Array.from(n.styleSheets).find(t => t.href === e.href);
|
|
let r = null;
|
|
t && (r = Eh(t)), r && (delete O.rel, delete O.href, O._cssText = Hh(r, t.href))
|
|
}
|
|
if ("style" === w && e.sheet && !(e.innerText || e.textContent || "").trim().length) {
|
|
const t = Eh(e.sheet);
|
|
t && (O._cssText = Hh(t, Yh()))
|
|
}
|
|
if ("input" === w || "textarea" === w || "select" === w || "option" === w) {
|
|
const t = e,
|
|
n = jh(t),
|
|
r = Rh(t, Ah(w), n),
|
|
o = t.checked;
|
|
if ("submit" !== n && "button" !== n && r) {
|
|
const e = Zh(t, y, b, v, _, xh({
|
|
type: n,
|
|
tagName: Ah(w),
|
|
maskInputOptions: s
|
|
}));
|
|
O.value = Ih({
|
|
isMasked: e,
|
|
element: t,
|
|
value: r,
|
|
maskInputFn: u
|
|
})
|
|
}
|
|
o && (O.checked = o)
|
|
}
|
|
"option" === w && (e.selected && !s.select ? O.selected = !0 : delete O.selected);
|
|
if ("canvas" === w && d)
|
|
if ("2d" === e.__context)(function(e) {
|
|
const t = e.getContext("2d");
|
|
if (!t) return !0;
|
|
for (let n = 0; n < e.width; n += 50)
|
|
for (let r = 0; r < e.height; r += 50) {
|
|
const o = t.getImageData,
|
|
i = Ch in o ? o[Ch] : o;
|
|
if (new Uint32Array(i.call(t, n, r, Math.min(50, e.width - n), Math.min(50, e.height - r)).data.buffer).some(e => 0 !== e)) return !1
|
|
}
|
|
return !0
|
|
})(e) || (O.rr_dataURL = e.toDataURL(l.type, l.quality));
|
|
else if (!("__context" in e)) {
|
|
const t = e.toDataURL(l.type, l.quality),
|
|
n = document.createElement("canvas");
|
|
n.width = e.width, n.height = e.height;
|
|
t !== n.toDataURL(l.type, l.quality) && (O.rr_dataURL = t)
|
|
}
|
|
if ("img" === w && f) {
|
|
Lh || (Lh = n.createElement("canvas"), Fh = Lh.getContext("2d"));
|
|
const t = e,
|
|
r = t.crossOrigin;
|
|
t.crossOrigin = "anonymous";
|
|
const o = () => {
|
|
t.removeEventListener("load", o);
|
|
try {
|
|
Lh.width = t.naturalWidth, Lh.height = t.naturalHeight, Fh.drawImage(t, 0, 0), O.rr_dataURL = Lh.toDataURL(l.type, l.quality)
|
|
} catch (e) {
|
|
console.warn(`Cannot inline img src=${t.currentSrc}! Error: ${e}`)
|
|
}
|
|
r ? O.crossOrigin = r : t.removeAttribute("crossorigin")
|
|
};
|
|
t.complete && 0 !== t.naturalWidth ? o() : t.addEventListener("load", o)
|
|
}
|
|
"audio" !== w && "video" !== w || (O.rr_mediaState = e.paused ? "paused" : "played", O.rr_mediaCurrentTime = e.currentTime);
|
|
h || (e.scrollLeft && (O.rr_scrollLeft = e.scrollLeft), e.scrollTop && (O.rr_scrollTop = e.scrollTop));
|
|
if (S) {
|
|
const {
|
|
width: t,
|
|
height: n
|
|
} = e.getBoundingClientRect();
|
|
O = {
|
|
class: O.class,
|
|
rr_width: `${t}px`,
|
|
rr_height: `${n}px`
|
|
}
|
|
}
|
|
"iframe" !== w || p(O.src) || (e.contentDocument || (O.rr_src = O.src), delete O.src);
|
|
let k;
|
|
try {
|
|
customElements.get(w) && (k = !0)
|
|
} catch (e) {}
|
|
return {
|
|
type: Sh.Element,
|
|
tagName: w,
|
|
attributes: O,
|
|
childNodes: [],
|
|
isSVG: Vh(e) || void 0,
|
|
needBlock: S,
|
|
rootId: m,
|
|
isCustom: k
|
|
}
|
|
}(e, {
|
|
doc: n,
|
|
blockClass: o,
|
|
blockSelector: i,
|
|
unblockSelector: a,
|
|
inlineStylesheet: p,
|
|
maskAttributeFn: c,
|
|
maskInputOptions: h,
|
|
maskInputFn: g,
|
|
dataURLOptions: y,
|
|
inlineImages: v,
|
|
recordCanvas: b,
|
|
keepIframeSrcFn: _,
|
|
newlyAddedElement: S,
|
|
rootId: w,
|
|
maskAllText: s,
|
|
maskTextClass: u,
|
|
unmaskTextClass: l,
|
|
maskTextSelector: f,
|
|
unmaskTextSelector: d
|
|
});
|
|
case e.TEXT_NODE:
|
|
return function(e, t) {
|
|
const {
|
|
maskAllText: n,
|
|
maskTextClass: r,
|
|
unmaskTextClass: o,
|
|
maskTextSelector: i,
|
|
unmaskTextSelector: a,
|
|
maskTextFn: s,
|
|
maskInputOptions: c,
|
|
maskInputFn: u,
|
|
rootId: l
|
|
} = t, f = e.parentNode && e.parentNode.tagName;
|
|
let d = e.textContent;
|
|
const p = "STYLE" === f || void 0,
|
|
h = "SCRIPT" === f || void 0,
|
|
m = "TEXTAREA" === f || void 0;
|
|
if (p && d) {
|
|
try {
|
|
e.nextSibling || e.previousSibling || _h([e, "access", e => e.parentNode, "access", e => e.sheet, "optionalAccess", e => e.cssRules]) && (d = Eh(e.parentNode.sheet))
|
|
} catch (t) {
|
|
console.warn(`Cannot get CSS styles from text's parentNode. Error: ${t}`, e)
|
|
}
|
|
d = Hh(d, Yh())
|
|
}
|
|
h && (d = "SCRIPT_PLACEHOLDER");
|
|
const g = Zh(e, r, i, o, a, n);
|
|
p || h || m || !d || !g || (d = s ? s(d, e.parentElement) : d.replace(/[\S]/g, "*"));
|
|
m && d && (c.textarea || g) && (d = u ? u(d, e.parentNode) : d.replace(/[\S]/g, "*"));
|
|
if ("OPTION" === f && d) {
|
|
d = Ih({
|
|
isMasked: Zh(e, r, i, o, a, xh({
|
|
type: null,
|
|
tagName: f,
|
|
maskInputOptions: c
|
|
})),
|
|
element: e,
|
|
value: d,
|
|
maskInputFn: u
|
|
})
|
|
}
|
|
return {
|
|
type: Sh.Text,
|
|
textContent: d || "",
|
|
isStyle: p,
|
|
rootId: l
|
|
}
|
|
}(e, {
|
|
maskAllText: s,
|
|
maskTextClass: u,
|
|
unmaskTextClass: l,
|
|
maskTextSelector: f,
|
|
unmaskTextSelector: d,
|
|
maskTextFn: m,
|
|
maskInputOptions: h,
|
|
maskInputFn: g,
|
|
rootId: w
|
|
});
|
|
case e.CDATA_SECTION_NODE:
|
|
return {
|
|
type: Sh.CDATA, textContent: "", rootId: w
|
|
};
|
|
case e.COMMENT_NODE:
|
|
return {
|
|
type: Sh.Comment, textContent: e.textContent || "", rootId: w
|
|
};
|
|
default:
|
|
return !1
|
|
}
|
|
}
|
|
|
|
function tm(e) {
|
|
return null == e ? "" : e.toLowerCase()
|
|
}
|
|
|
|
function nm(e, t) {
|
|
const {
|
|
doc: n,
|
|
mirror: r,
|
|
blockClass: o,
|
|
blockSelector: i,
|
|
unblockSelector: a,
|
|
maskAllText: s,
|
|
maskTextClass: c,
|
|
unmaskTextClass: u,
|
|
maskTextSelector: l,
|
|
unmaskTextSelector: f,
|
|
skipChild: d = !1,
|
|
inlineStylesheet: p = !0,
|
|
maskInputOptions: h = {},
|
|
maskAttributeFn: m,
|
|
maskTextFn: g,
|
|
maskInputFn: y,
|
|
slimDOMOptions: v,
|
|
dataURLOptions: b = {},
|
|
inlineImages: _ = !1,
|
|
recordCanvas: S = !1,
|
|
onSerialize: w,
|
|
onIframeLoad: O,
|
|
iframeLoadTimeout: E = 5e3,
|
|
onStylesheetLoad: k,
|
|
stylesheetLoadTimeout: T = 5e3,
|
|
keepIframeSrcFn: x = () => !1,
|
|
newlyAddedElement: I = !1
|
|
} = t;
|
|
let {
|
|
preserveWhiteSpace: P = !0
|
|
} = t;
|
|
const A = em(e, {
|
|
doc: n,
|
|
mirror: r,
|
|
blockClass: o,
|
|
blockSelector: i,
|
|
maskAllText: s,
|
|
unblockSelector: a,
|
|
maskTextClass: c,
|
|
unmaskTextClass: u,
|
|
maskTextSelector: l,
|
|
unmaskTextSelector: f,
|
|
inlineStylesheet: p,
|
|
maskInputOptions: h,
|
|
maskAttributeFn: m,
|
|
maskTextFn: g,
|
|
maskInputFn: y,
|
|
dataURLOptions: b,
|
|
inlineImages: _,
|
|
recordCanvas: S,
|
|
keepIframeSrcFn: x,
|
|
newlyAddedElement: I
|
|
});
|
|
if (!A) return console.warn(e, "not serialized"), null;
|
|
let C;
|
|
C = r.hasNode(e) ? r.getId(e) : ! function(e, t) {
|
|
if (t.comment && e.type === Sh.Comment) return !0;
|
|
if (e.type === Sh.Element) {
|
|
if (t.script && ("script" === e.tagName || "link" === e.tagName && ("preload" === e.attributes.rel || "modulepreload" === e.attributes.rel) && "script" === e.attributes.as || "link" === e.tagName && "prefetch" === e.attributes.rel && "string" == typeof e.attributes.href && e.attributes.href.endsWith(".js"))) return !0;
|
|
if (t.headFavicon && ("link" === e.tagName && "shortcut icon" === e.attributes.rel || "meta" === e.tagName && (tm(e.attributes.name).match(/^msapplication-tile(image|color)$/) || "application-name" === tm(e.attributes.name) || "icon" === tm(e.attributes.rel) || "apple-touch-icon" === tm(e.attributes.rel) || "shortcut icon" === tm(e.attributes.rel)))) return !0;
|
|
if ("meta" === e.tagName) {
|
|
if (t.headMetaDescKeywords && tm(e.attributes.name).match(/^description|keywords$/)) return !0;
|
|
if (t.headMetaSocial && (tm(e.attributes.property).match(/^(og|twitter|fb):/) || tm(e.attributes.name).match(/^(og|twitter):/) || "pinterest" === tm(e.attributes.name))) return !0;
|
|
if (t.headMetaRobots && ("robots" === tm(e.attributes.name) || "googlebot" === tm(e.attributes.name) || "bingbot" === tm(e.attributes.name))) return !0;
|
|
if (t.headMetaHttpEquiv && void 0 !== e.attributes["http-equiv"]) return !0;
|
|
if (t.headMetaAuthorship && ("author" === tm(e.attributes.name) || "generator" === tm(e.attributes.name) || "framework" === tm(e.attributes.name) || "publisher" === tm(e.attributes.name) || "progid" === tm(e.attributes.name) || tm(e.attributes.property).match(/^article:/) || tm(e.attributes.property).match(/^product:/))) return !0;
|
|
if (t.headMetaVerification && ("google-site-verification" === tm(e.attributes.name) || "yandex-verification" === tm(e.attributes.name) || "csrf-token" === tm(e.attributes.name) || "p:domain_verify" === tm(e.attributes.name) || "verify-v1" === tm(e.attributes.name) || "verification" === tm(e.attributes.name) || "shopify-checkout-api-token" === tm(e.attributes.name))) return !0
|
|
}
|
|
}
|
|
return !1
|
|
}(A, v) && (P || A.type !== Sh.Text || A.isStyle || A.textContent.replace(/^\s+|\s+$/gm, "").length) ? Nh() : -2;
|
|
const j = Object.assign(A, {
|
|
id: C
|
|
});
|
|
if (r.add(e, j), -2 === C) return null;
|
|
w && w(e);
|
|
let R = !d;
|
|
if (j.type === Sh.Element) {
|
|
R = R && !j.needBlock, delete j.needBlock;
|
|
const t = e.shadowRoot;
|
|
t && Oh(t) && (j.isShadowHost = !0)
|
|
}
|
|
if ((j.type === Sh.Document || j.type === Sh.Element) && R) {
|
|
v.headWhitespace && j.type === Sh.Element && "head" === j.tagName && (P = !1);
|
|
const t = {
|
|
doc: n,
|
|
mirror: r,
|
|
blockClass: o,
|
|
blockSelector: i,
|
|
maskAllText: s,
|
|
unblockSelector: a,
|
|
maskTextClass: c,
|
|
unmaskTextClass: u,
|
|
maskTextSelector: l,
|
|
unmaskTextSelector: f,
|
|
skipChild: d,
|
|
inlineStylesheet: p,
|
|
maskInputOptions: h,
|
|
maskAttributeFn: m,
|
|
maskTextFn: g,
|
|
maskInputFn: y,
|
|
slimDOMOptions: v,
|
|
dataURLOptions: b,
|
|
inlineImages: _,
|
|
recordCanvas: S,
|
|
preserveWhiteSpace: P,
|
|
onSerialize: w,
|
|
onIframeLoad: O,
|
|
iframeLoadTimeout: E,
|
|
onStylesheetLoad: k,
|
|
stylesheetLoadTimeout: T,
|
|
keepIframeSrcFn: x
|
|
};
|
|
for (const n of Array.from(e.childNodes)) {
|
|
const e = nm(n, t);
|
|
e && j.childNodes.push(e)
|
|
}
|
|
if (function(e) {
|
|
return e.nodeType === e.ELEMENT_NODE
|
|
}(e) && e.shadowRoot)
|
|
for (const n of Array.from(e.shadowRoot.childNodes)) {
|
|
const r = nm(n, t);
|
|
r && (Oh(e.shadowRoot) && (r.isShadow = !0), j.childNodes.push(r))
|
|
}
|
|
}
|
|
return e.parentNode && wh(e.parentNode) && Oh(e.parentNode) && (j.isShadow = !0), j.type === Sh.Element && "iframe" === j.tagName && function(e, t, n) {
|
|
const r = e.contentWindow;
|
|
if (!r) return;
|
|
let o, i = !1;
|
|
try {
|
|
o = r.document.readyState
|
|
} catch (e) {
|
|
return
|
|
}
|
|
if ("complete" !== o) {
|
|
const r = setTimeout(() => {
|
|
i || (t(), i = !0)
|
|
}, n);
|
|
return void e.addEventListener("load", () => {
|
|
clearTimeout(r), i = !0, t()
|
|
})
|
|
}
|
|
const a = "about:blank";
|
|
if (r.location.href !== a || e.src === a || "" === e.src) return setTimeout(t, 0), e.addEventListener("load", t);
|
|
e.addEventListener("load", t)
|
|
}(e, () => {
|
|
const t = e.contentDocument;
|
|
if (t && O) {
|
|
const n = nm(t, {
|
|
doc: t,
|
|
mirror: r,
|
|
blockClass: o,
|
|
blockSelector: i,
|
|
unblockSelector: a,
|
|
maskAllText: s,
|
|
maskTextClass: c,
|
|
unmaskTextClass: u,
|
|
maskTextSelector: l,
|
|
unmaskTextSelector: f,
|
|
skipChild: !1,
|
|
inlineStylesheet: p,
|
|
maskInputOptions: h,
|
|
maskAttributeFn: m,
|
|
maskTextFn: g,
|
|
maskInputFn: y,
|
|
slimDOMOptions: v,
|
|
dataURLOptions: b,
|
|
inlineImages: _,
|
|
recordCanvas: S,
|
|
preserveWhiteSpace: P,
|
|
onSerialize: w,
|
|
onIframeLoad: O,
|
|
iframeLoadTimeout: E,
|
|
onStylesheetLoad: k,
|
|
stylesheetLoadTimeout: T,
|
|
keepIframeSrcFn: x
|
|
});
|
|
n && O(e, n)
|
|
}
|
|
}, E), j.type === Sh.Element && "link" === j.tagName && "stylesheet" === j.attributes.rel && function(e, t, n) {
|
|
let r, o = !1;
|
|
try {
|
|
r = e.sheet
|
|
} catch (e) {
|
|
return
|
|
}
|
|
if (r) return;
|
|
const i = setTimeout(() => {
|
|
o || (t(), o = !0)
|
|
}, n);
|
|
e.addEventListener("load", () => {
|
|
clearTimeout(i), o = !0, t()
|
|
})
|
|
}(e, () => {
|
|
if (k) {
|
|
const t = nm(e, {
|
|
doc: n,
|
|
mirror: r,
|
|
blockClass: o,
|
|
blockSelector: i,
|
|
unblockSelector: a,
|
|
maskAllText: s,
|
|
maskTextClass: c,
|
|
unmaskTextClass: u,
|
|
maskTextSelector: l,
|
|
unmaskTextSelector: f,
|
|
skipChild: !1,
|
|
inlineStylesheet: p,
|
|
maskInputOptions: h,
|
|
maskAttributeFn: m,
|
|
maskTextFn: g,
|
|
maskInputFn: y,
|
|
slimDOMOptions: v,
|
|
dataURLOptions: b,
|
|
inlineImages: _,
|
|
recordCanvas: S,
|
|
preserveWhiteSpace: P,
|
|
onSerialize: w,
|
|
onIframeLoad: O,
|
|
iframeLoadTimeout: E,
|
|
onStylesheetLoad: k,
|
|
stylesheetLoadTimeout: T,
|
|
keepIframeSrcFn: x
|
|
});
|
|
t && k(e, t)
|
|
}
|
|
}, T), j
|
|
}
|
|
|
|
function rm(e) {
|
|
let t, n = e[0],
|
|
r = 1;
|
|
for (; r < e.length;) {
|
|
const o = e[r],
|
|
i = e[r + 1];
|
|
if (r += 2, ("optionalAccess" === o || "optionalCall" === o) && null == n) return;
|
|
"access" === o || "optionalAccess" === o ? (t = n, n = i(n)) : "call" !== o && "optionalCall" !== o || (n = i((...e) => n.call(t, ...e)), t = void 0)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function om(e, t, n = document) {
|
|
const r = {
|
|
capture: !0,
|
|
passive: !0
|
|
};
|
|
return n.addEventListener(e, t, r), () => n.removeEventListener(e, t, r)
|
|
}
|
|
const im = "Please stop import mirror directly. Instead of that,\r\nnow you can use replayer.getMirror() to access the mirror instance of a replayer,\r\nor you can use record.mirror to access the mirror instance during recording.";
|
|
let am = {
|
|
map: {},
|
|
getId: () => (console.error(im), -1),
|
|
getNode: () => (console.error(im), null),
|
|
removeNodeFromMap() {
|
|
console.error(im)
|
|
},
|
|
has: () => (console.error(im), !1),
|
|
reset() {
|
|
console.error(im)
|
|
}
|
|
};
|
|
|
|
function sm(e, t, n = {}) {
|
|
let r = null,
|
|
o = 0;
|
|
return function(...i) {
|
|
const a = Date.now();
|
|
o || !1 !== n.leading || (o = a);
|
|
const s = t - (a - o),
|
|
c = this;
|
|
s <= 0 || s > t ? (r && (! function(...e) {
|
|
xm("clearTimeout")(...e)
|
|
}(r), r = null), o = a, e.apply(c, i)) : r || !1 === n.trailing || (r = Im(() => {
|
|
o = !1 === n.leading ? 0 : Date.now(), r = null, e.apply(c, i)
|
|
}, s))
|
|
}
|
|
}
|
|
|
|
function cm(e, t, n, r, o = window) {
|
|
const i = o.Object.getOwnPropertyDescriptor(e, t);
|
|
return o.Object.defineProperty(e, t, r ? n : {
|
|
set(e) {
|
|
Im(() => {
|
|
n.set.call(this, e)
|
|
}, 0), i && i.set && i.set.call(this, e)
|
|
}
|
|
}), () => cm(e, t, i || {}, !0)
|
|
}
|
|
|
|
function um(e, t, n) {
|
|
try {
|
|
if (!(t in e)) return () => {};
|
|
const r = e[t],
|
|
o = n(r);
|
|
return "function" == typeof o && (o.prototype = o.prototype || {}, Object.defineProperties(o, {
|
|
__rrweb_original__: {
|
|
enumerable: !1,
|
|
value: r
|
|
}
|
|
})), e[t] = o, () => {
|
|
e[t] = r
|
|
}
|
|
} catch (e) {
|
|
return () => {}
|
|
}
|
|
}
|
|
"undefined" != typeof window && window.Proxy && window.Reflect && (am = new Proxy(am, {
|
|
get: (e, t, n) => ("map" === t && console.error(im), Reflect.get(e, t, n))
|
|
}));
|
|
let lm = Date.now;
|
|
|
|
function fm(e) {
|
|
const t = e.document;
|
|
return {
|
|
left: t.scrollingElement ? t.scrollingElement.scrollLeft : void 0 !== e.pageXOffset ? e.pageXOffset : rm([t, "optionalAccess", e => e.documentElement, "access", e => e.scrollLeft]) || rm([t, "optionalAccess", e => e.body, "optionalAccess", e => e.parentElement, "optionalAccess", e => e.scrollLeft]) || rm([t, "optionalAccess", e => e.body, "optionalAccess", e => e.scrollLeft]) || 0,
|
|
top: t.scrollingElement ? t.scrollingElement.scrollTop : void 0 !== e.pageYOffset ? e.pageYOffset : rm([t, "optionalAccess", e => e.documentElement, "access", e => e.scrollTop]) || rm([t, "optionalAccess", e => e.body, "optionalAccess", e => e.parentElement, "optionalAccess", e => e.scrollTop]) || rm([t, "optionalAccess", e => e.body, "optionalAccess", e => e.scrollTop]) || 0
|
|
}
|
|
}
|
|
|
|
function dm() {
|
|
return window.innerHeight || document.documentElement && document.documentElement.clientHeight || document.body && document.body.clientHeight
|
|
}
|
|
|
|
function pm() {
|
|
return window.innerWidth || document.documentElement && document.documentElement.clientWidth || document.body && document.body.clientWidth
|
|
}
|
|
|
|
function hm(e) {
|
|
if (!e) return null;
|
|
return e.nodeType === e.ELEMENT_NODE ? e : e.parentElement
|
|
}
|
|
|
|
function mm(e, t, n, r, o) {
|
|
if (!e) return !1;
|
|
const i = hm(e);
|
|
if (!i) return !1;
|
|
const a = Xh(t, n);
|
|
if (!o) {
|
|
const e = r && i.matches(r);
|
|
return a(i) && !e
|
|
}
|
|
const s = Qh(i, a);
|
|
let c = -1;
|
|
return !(s < 0) && (r && (c = Qh(i, Xh(null, r))), s > -1 && c < 0 || s < c)
|
|
}
|
|
|
|
function gm(e, t) {
|
|
return -2 === t.getId(e)
|
|
}
|
|
|
|
function ym(e, t) {
|
|
if (wh(e)) return !1;
|
|
const n = t.getId(e);
|
|
return !t.has(n) || (!e.parentNode || e.parentNode.nodeType !== e.DOCUMENT_NODE) && (!e.parentNode || ym(e.parentNode, t))
|
|
}
|
|
|
|
function vm(e) {
|
|
return Boolean(e.changedTouches)
|
|
}
|
|
|
|
function bm(e, t) {
|
|
return Boolean("IFRAME" === e.nodeName && t.getMeta(e))
|
|
}
|
|
|
|
function _m(e, t) {
|
|
return Boolean("LINK" === e.nodeName && e.nodeType === e.ELEMENT_NODE && e.getAttribute && "stylesheet" === e.getAttribute("rel") && t.getMeta(e))
|
|
}
|
|
|
|
function Sm(e) {
|
|
return Boolean(rm([e, "optionalAccess", e => e.shadowRoot]))
|
|
}
|
|
/[1-9][0-9]{12}/.test(Date.now().toString()) || (lm = () => (new Date).getTime());
|
|
class wm {
|
|
constructor() {
|
|
this.id = 1, this.styleIDMap = new WeakMap, this.idStyleMap = new Map
|
|
}
|
|
getId(e) {
|
|
return t = this.styleIDMap.get(e), n = () => -1, null != t ? t : n();
|
|
var t, n
|
|
}
|
|
has(e) {
|
|
return this.styleIDMap.has(e)
|
|
}
|
|
add(e, t) {
|
|
if (this.has(e)) return this.getId(e);
|
|
let n;
|
|
return n = void 0 === t ? this.id++ : t, this.styleIDMap.set(e, n), this.idStyleMap.set(n, e), n
|
|
}
|
|
getStyle(e) {
|
|
return this.idStyleMap.get(e) || null
|
|
}
|
|
reset() {
|
|
this.styleIDMap = new WeakMap, this.idStyleMap = new Map, this.id = 1
|
|
}
|
|
generateId() {
|
|
return this.id++
|
|
}
|
|
}
|
|
|
|
function Om(e) {
|
|
let t = null;
|
|
return rm([e, "access", e => e.getRootNode, "optionalCall", e => e(), "optionalAccess", e => e.nodeType]) === Node.DOCUMENT_FRAGMENT_NODE && e.getRootNode().host && (t = e.getRootNode().host), t
|
|
}
|
|
|
|
function Em(e) {
|
|
const t = e.ownerDocument;
|
|
if (!t) return !1;
|
|
const n = function(e) {
|
|
let t, n = e;
|
|
for (; t = Om(n);) n = t;
|
|
return n
|
|
}(e);
|
|
return t.contains(n)
|
|
}
|
|
|
|
function km(e) {
|
|
const t = e.ownerDocument;
|
|
return !!t && (t.contains(e) || Em(e))
|
|
}
|
|
const Tm = {};
|
|
|
|
function xm(e) {
|
|
const t = Tm[e];
|
|
if (t) return t;
|
|
const n = window.document;
|
|
let r = window[e];
|
|
if (n && "function" == typeof n.createElement) try {
|
|
const t = n.createElement("iframe");
|
|
t.hidden = !0, n.head.appendChild(t);
|
|
const o = t.contentWindow;
|
|
o && o[e] && (r = o[e]), n.head.removeChild(t)
|
|
} catch (e) {}
|
|
return Tm[e] = r.bind(window)
|
|
}
|
|
|
|
function Im(...e) {
|
|
return xm("setTimeout")(...e)
|
|
}
|
|
var Pm = (e => (e[e.DomContentLoaded = 0] = "DomContentLoaded", e[e.Load = 1] = "Load", e[e.FullSnapshot = 2] = "FullSnapshot", e[e.IncrementalSnapshot = 3] = "IncrementalSnapshot", e[e.Meta = 4] = "Meta", e[e.Custom = 5] = "Custom", e[e.Plugin = 6] = "Plugin", e))(Pm || {}),
|
|
Am = (e => (e[e.Mutation = 0] = "Mutation", e[e.MouseMove = 1] = "MouseMove", e[e.MouseInteraction = 2] = "MouseInteraction", e[e.Scroll = 3] = "Scroll", e[e.ViewportResize = 4] = "ViewportResize", e[e.Input = 5] = "Input", e[e.TouchMove = 6] = "TouchMove", e[e.MediaInteraction = 7] = "MediaInteraction", e[e.StyleSheetRule = 8] = "StyleSheetRule", e[e.CanvasMutation = 9] = "CanvasMutation", e[e.Font = 10] = "Font", e[e.Log = 11] = "Log", e[e.Drag = 12] = "Drag", e[e.StyleDeclaration = 13] = "StyleDeclaration", e[e.Selection = 14] = "Selection", e[e.AdoptedStyleSheet = 15] = "AdoptedStyleSheet", e[e.CustomElement = 16] = "CustomElement", e))(Am || {}),
|
|
Cm = (e => (e[e.MouseUp = 0] = "MouseUp", e[e.MouseDown = 1] = "MouseDown", e[e.Click = 2] = "Click", e[e.ContextMenu = 3] = "ContextMenu", e[e.DblClick = 4] = "DblClick", e[e.Focus = 5] = "Focus", e[e.Blur = 6] = "Blur", e[e.TouchStart = 7] = "TouchStart", e[e.TouchMove_Departed = 8] = "TouchMove_Departed", e[e.TouchEnd = 9] = "TouchEnd", e[e.TouchCancel = 10] = "TouchCancel", e))(Cm || {}),
|
|
jm = (e => (e[e.Mouse = 0] = "Mouse", e[e.Pen = 1] = "Pen", e[e.Touch = 2] = "Touch", e))(jm || {});
|
|
|
|
function Rm(e) {
|
|
let t, n = e[0],
|
|
r = 1;
|
|
for (; r < e.length;) {
|
|
const o = e[r],
|
|
i = e[r + 1];
|
|
if (r += 2, ("optionalAccess" === o || "optionalCall" === o) && null == n) return;
|
|
"access" === o || "optionalAccess" === o ? (t = n, n = i(n)) : "call" !== o && "optionalCall" !== o || (n = i((...e) => n.call(t, ...e)), t = void 0)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function Mm(e) {
|
|
return "__ln" in e
|
|
}
|
|
class Dm {
|
|
constructor() {
|
|
this.length = 0, this.head = null, this.tail = null
|
|
}
|
|
get(e) {
|
|
if (e >= this.length) throw new Error("Position outside of list range");
|
|
let t = this.head;
|
|
for (let n = 0; n < e; n++) t = Rm([t, "optionalAccess", e => e.next]) || null;
|
|
return t
|
|
}
|
|
addNode(e) {
|
|
const t = {
|
|
value: e,
|
|
previous: null,
|
|
next: null
|
|
};
|
|
if (e.__ln = t, e.previousSibling && Mm(e.previousSibling)) {
|
|
const n = e.previousSibling.__ln.next;
|
|
t.next = n, t.previous = e.previousSibling.__ln, e.previousSibling.__ln.next = t, n && (n.previous = t)
|
|
} else if (e.nextSibling && Mm(e.nextSibling) && e.nextSibling.__ln.previous) {
|
|
const n = e.nextSibling.__ln.previous;
|
|
t.previous = n, t.next = e.nextSibling.__ln, e.nextSibling.__ln.previous = t, n && (n.next = t)
|
|
} else this.head && (this.head.previous = t), t.next = this.head, this.head = t;
|
|
null === t.next && (this.tail = t), this.length++
|
|
}
|
|
removeNode(e) {
|
|
const t = e.__ln;
|
|
this.head && (t.previous ? (t.previous.next = t.next, t.next ? t.next.previous = t.previous : this.tail = t.previous) : (this.head = t.next, this.head ? this.head.previous = null : this.tail = null), e.__ln && delete e.__ln, this.length--)
|
|
}
|
|
}
|
|
const Nm = (e, t) => `${e}@${t}`;
|
|
class Lm {
|
|
constructor() {
|
|
this.frozen = !1, this.locked = !1, this.texts = [], this.attributes = [], this.attributeMap = new WeakMap, this.removes = [], this.mapRemoves = [], this.movedMap = {}, this.addedSet = new Set, this.movedSet = new Set, this.droppedSet = new Set, this.processMutations = e => {
|
|
e.forEach(this.processMutation), this.emit()
|
|
}, this.emit = () => {
|
|
if (this.frozen || this.locked) return;
|
|
const e = [],
|
|
t = new Set,
|
|
n = new Dm,
|
|
r = e => {
|
|
let t = e,
|
|
n = -2;
|
|
for (; - 2 === n;) t = t && t.nextSibling, n = t && this.mirror.getId(t);
|
|
return n
|
|
},
|
|
o = o => {
|
|
if (!o.parentNode || !km(o)) return;
|
|
const i = wh(o.parentNode) ? this.mirror.getId(Om(o)) : this.mirror.getId(o.parentNode),
|
|
a = r(o);
|
|
if (-1 === i || -1 === a) return n.addNode(o);
|
|
const s = nm(o, {
|
|
doc: this.doc,
|
|
mirror: this.mirror,
|
|
blockClass: this.blockClass,
|
|
blockSelector: this.blockSelector,
|
|
maskAllText: this.maskAllText,
|
|
unblockSelector: this.unblockSelector,
|
|
maskTextClass: this.maskTextClass,
|
|
unmaskTextClass: this.unmaskTextClass,
|
|
maskTextSelector: this.maskTextSelector,
|
|
unmaskTextSelector: this.unmaskTextSelector,
|
|
skipChild: !0,
|
|
newlyAddedElement: !0,
|
|
inlineStylesheet: this.inlineStylesheet,
|
|
maskInputOptions: this.maskInputOptions,
|
|
maskAttributeFn: this.maskAttributeFn,
|
|
maskTextFn: this.maskTextFn,
|
|
maskInputFn: this.maskInputFn,
|
|
slimDOMOptions: this.slimDOMOptions,
|
|
dataURLOptions: this.dataURLOptions,
|
|
recordCanvas: this.recordCanvas,
|
|
inlineImages: this.inlineImages,
|
|
onSerialize: e => {
|
|
bm(e, this.mirror) && this.iframeManager.addIframe(e), _m(e, this.mirror) && this.stylesheetManager.trackLinkElement(e), Sm(o) && this.shadowDomManager.addShadowRoot(o.shadowRoot, this.doc)
|
|
},
|
|
onIframeLoad: (e, t) => {
|
|
this.iframeManager.attachIframe(e, t), this.shadowDomManager.observeAttachShadow(e)
|
|
},
|
|
onStylesheetLoad: (e, t) => {
|
|
this.stylesheetManager.attachLinkElement(e, t)
|
|
}
|
|
});
|
|
s && (e.push({
|
|
parentId: i,
|
|
nextId: a,
|
|
node: s
|
|
}), t.add(s.id))
|
|
};
|
|
for (; this.mapRemoves.length;) this.mirror.removeNodeFromMap(this.mapRemoves.shift());
|
|
for (const e of this.movedSet) Bm(this.removes, e, this.mirror) && !this.movedSet.has(e.parentNode) || o(e);
|
|
for (const e of this.addedSet) Gm(this.droppedSet, e) || Bm(this.removes, e, this.mirror) ? Gm(this.movedSet, e) ? o(e) : this.droppedSet.add(e) : o(e);
|
|
let i = null;
|
|
for (; n.length;) {
|
|
let e = null;
|
|
if (i) {
|
|
const t = this.mirror.getId(i.value.parentNode),
|
|
n = r(i.value); - 1 !== t && -1 !== n && (e = i)
|
|
}
|
|
if (!e) {
|
|
let t = n.tail;
|
|
for (; t;) {
|
|
const n = t;
|
|
if (t = t.previous, n) {
|
|
const t = this.mirror.getId(n.value.parentNode);
|
|
if (-1 === r(n.value)) continue;
|
|
if (-1 !== t) {
|
|
e = n;
|
|
break
|
|
} {
|
|
const t = n.value;
|
|
if (t.parentNode && t.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
|
|
const r = t.parentNode.host;
|
|
if (-1 !== this.mirror.getId(r)) {
|
|
e = n;
|
|
break
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (!e) {
|
|
for (; n.head;) n.removeNode(n.head.value);
|
|
break
|
|
}
|
|
i = e.previous, n.removeNode(e.value), o(e.value)
|
|
}
|
|
const a = {
|
|
texts: this.texts.map(e => ({
|
|
id: this.mirror.getId(e.node),
|
|
value: e.value
|
|
})).filter(e => !t.has(e.id)).filter(e => this.mirror.has(e.id)),
|
|
attributes: this.attributes.map(e => {
|
|
const {
|
|
attributes: t
|
|
} = e;
|
|
if ("string" == typeof t.style) {
|
|
const n = JSON.stringify(e.styleDiff),
|
|
r = JSON.stringify(e._unchangedStyles);
|
|
n.length < t.style.length && (n + r).split("var(").length === t.style.split("var(").length && (t.style = e.styleDiff)
|
|
}
|
|
return {
|
|
id: this.mirror.getId(e.node),
|
|
attributes: t
|
|
}
|
|
}).filter(e => !t.has(e.id)).filter(e => this.mirror.has(e.id)),
|
|
removes: this.removes,
|
|
adds: e
|
|
};
|
|
(a.texts.length || a.attributes.length || a.removes.length || a.adds.length) && (this.texts = [], this.attributes = [], this.attributeMap = new WeakMap, this.removes = [], this.addedSet = new Set, this.movedSet = new Set, this.droppedSet = new Set, this.movedMap = {}, this.mutationCb(a))
|
|
}, this.processMutation = e => {
|
|
if (!gm(e.target, this.mirror)) switch (e.type) {
|
|
case "characterData": {
|
|
const t = e.target.textContent;
|
|
mm(e.target, this.blockClass, this.blockSelector, this.unblockSelector, !1) || t === e.oldValue || this.texts.push({
|
|
value: Zh(e.target, this.maskTextClass, this.maskTextSelector, this.unmaskTextClass, this.unmaskTextSelector, this.maskAllText) && t ? this.maskTextFn ? this.maskTextFn(t, hm(e.target)) : t.replace(/[\S]/g, "*") : t,
|
|
node: e.target
|
|
});
|
|
break
|
|
}
|
|
case "attributes": {
|
|
const t = e.target;
|
|
let n = e.attributeName,
|
|
r = e.target.getAttribute(n);
|
|
if ("value" === n) {
|
|
const n = jh(t),
|
|
o = t.tagName;
|
|
r = Rh(t, o, n);
|
|
const i = xh({
|
|
maskInputOptions: this.maskInputOptions,
|
|
tagName: o,
|
|
type: n
|
|
});
|
|
r = Ih({
|
|
isMasked: Zh(e.target, this.maskTextClass, this.maskTextSelector, this.unmaskTextClass, this.unmaskTextSelector, i),
|
|
element: t,
|
|
value: r,
|
|
maskInputFn: this.maskInputFn
|
|
})
|
|
}
|
|
if (mm(e.target, this.blockClass, this.blockSelector, this.unblockSelector, !1) || r === e.oldValue) return;
|
|
let o = this.attributeMap.get(e.target);
|
|
if ("IFRAME" === t.tagName && "src" === n && !this.keepIframeSrcFn(r)) {
|
|
if (t.contentDocument) return;
|
|
n = "rr_src"
|
|
}
|
|
if (o || (o = {
|
|
node: e.target,
|
|
attributes: {},
|
|
styleDiff: {},
|
|
_unchangedStyles: {}
|
|
}, this.attributes.push(o), this.attributeMap.set(e.target, o)), "type" === n && "INPUT" === t.tagName && "password" === (e.oldValue || "").toLowerCase() && t.setAttribute("data-rr-is-password", "true"), !Kh(t.tagName, n) && (o.attributes[n] = Jh(this.doc, Ph(t.tagName), Ph(n), r, t, this.maskAttributeFn), "style" === n)) {
|
|
if (!this.unattachedDoc) try {
|
|
this.unattachedDoc = document.implementation.createHTMLDocument()
|
|
} catch (e) {
|
|
this.unattachedDoc = this.doc
|
|
}
|
|
const n = this.unattachedDoc.createElement("span");
|
|
e.oldValue && n.setAttribute("style", e.oldValue);
|
|
for (const e of Array.from(t.style)) {
|
|
const r = t.style.getPropertyValue(e),
|
|
i = t.style.getPropertyPriority(e);
|
|
r !== n.style.getPropertyValue(e) || i !== n.style.getPropertyPriority(e) ? o.styleDiff[e] = "" === i ? r : [r, i] : o._unchangedStyles[e] = [r, i]
|
|
}
|
|
for (const e of Array.from(n.style)) "" === t.style.getPropertyValue(e) && (o.styleDiff[e] = !1)
|
|
}
|
|
break
|
|
}
|
|
case "childList":
|
|
if (mm(e.target, this.blockClass, this.blockSelector, this.unblockSelector, !0)) return;
|
|
e.addedNodes.forEach(t => this.genAdds(t, e.target)), e.removedNodes.forEach(t => {
|
|
const n = this.mirror.getId(t),
|
|
r = wh(e.target) ? this.mirror.getId(e.target.host) : this.mirror.getId(e.target);
|
|
mm(e.target, this.blockClass, this.blockSelector, this.unblockSelector, !1) || gm(t, this.mirror) || ! function(e, t) {
|
|
return -1 !== t.getId(e)
|
|
}(t, this.mirror) || (this.addedSet.has(t) ? (Fm(this.addedSet, t), this.droppedSet.add(t)) : this.addedSet.has(e.target) && -1 === n || ym(e.target, this.mirror) || (this.movedSet.has(t) && this.movedMap[Nm(n, r)] ? Fm(this.movedSet, t) : this.removes.push({
|
|
parentId: r,
|
|
id: n,
|
|
isShadow: !(!wh(e.target) || !Oh(e.target)) || void 0
|
|
})), this.mapRemoves.push(t))
|
|
})
|
|
}
|
|
}, this.genAdds = (e, t) => {
|
|
if (!this.processedNodeManager.inOtherBuffer(e, this) && !this.addedSet.has(e) && !this.movedSet.has(e)) {
|
|
if (this.mirror.hasNode(e)) {
|
|
if (gm(e, this.mirror)) return;
|
|
this.movedSet.add(e);
|
|
let n = null;
|
|
t && this.mirror.hasNode(t) && (n = this.mirror.getId(t)), n && -1 !== n && (this.movedMap[Nm(this.mirror.getId(e), n)] = !0)
|
|
} else this.addedSet.add(e), this.droppedSet.delete(e);
|
|
mm(e, this.blockClass, this.blockSelector, this.unblockSelector, !1) || (e.childNodes.forEach(e => this.genAdds(e)), Sm(e) && e.shadowRoot.childNodes.forEach(t => {
|
|
this.processedNodeManager.add(t, this), this.genAdds(t, e)
|
|
}))
|
|
}
|
|
}
|
|
}
|
|
init(e) {
|
|
["mutationCb", "blockClass", "blockSelector", "unblockSelector", "maskAllText", "maskTextClass", "unmaskTextClass", "maskTextSelector", "unmaskTextSelector", "inlineStylesheet", "maskInputOptions", "maskAttributeFn", "maskTextFn", "maskInputFn", "keepIframeSrcFn", "recordCanvas", "inlineImages", "slimDOMOptions", "dataURLOptions", "doc", "mirror", "iframeManager", "stylesheetManager", "shadowDomManager", "canvasManager", "processedNodeManager"].forEach(t => {
|
|
this[t] = e[t]
|
|
})
|
|
}
|
|
freeze() {
|
|
this.frozen = !0, this.canvasManager.freeze()
|
|
}
|
|
unfreeze() {
|
|
this.frozen = !1, this.canvasManager.unfreeze(), this.emit()
|
|
}
|
|
isFrozen() {
|
|
return this.frozen
|
|
}
|
|
lock() {
|
|
this.locked = !0, this.canvasManager.lock()
|
|
}
|
|
unlock() {
|
|
this.locked = !1, this.canvasManager.unlock(), this.emit()
|
|
}
|
|
reset() {
|
|
this.shadowDomManager.reset(), this.canvasManager.reset()
|
|
}
|
|
}
|
|
|
|
function Fm(e, t) {
|
|
e.delete(t), t.childNodes.forEach(t => Fm(e, t))
|
|
}
|
|
|
|
function Bm(e, t, n) {
|
|
return 0 !== e.length && Um(e, t, n)
|
|
}
|
|
|
|
function Um(e, t, n) {
|
|
const {
|
|
parentNode: r
|
|
} = t;
|
|
if (!r) return !1;
|
|
const o = n.getId(r);
|
|
return !!e.some(e => e.id === o) || Um(e, r, n)
|
|
}
|
|
|
|
function Gm(e, t) {
|
|
return 0 !== e.size && $m(e, t)
|
|
}
|
|
|
|
function $m(e, t) {
|
|
const {
|
|
parentNode: n
|
|
} = t;
|
|
return !!n && (!!e.has(n) || $m(e, n))
|
|
}
|
|
let Hm;
|
|
|
|
function zm(e) {
|
|
Hm = e
|
|
}
|
|
|
|
function qm() {
|
|
Hm = void 0
|
|
}
|
|
const Wm = e => {
|
|
if (!Hm) return e;
|
|
return (...t) => {
|
|
try {
|
|
return e(...t)
|
|
} catch (e) {
|
|
if (Hm && !0 === Hm(e)) return () => {};
|
|
throw e
|
|
}
|
|
}
|
|
};
|
|
|
|
function Vm(e) {
|
|
let t, n = e[0],
|
|
r = 1;
|
|
for (; r < e.length;) {
|
|
const o = e[r],
|
|
i = e[r + 1];
|
|
if (r += 2, ("optionalAccess" === o || "optionalCall" === o) && null == n) return;
|
|
"access" === o || "optionalAccess" === o ? (t = n, n = i(n)) : "call" !== o && "optionalCall" !== o || (n = i((...e) => n.call(t, ...e)), t = void 0)
|
|
}
|
|
return n
|
|
}
|
|
const Ym = [];
|
|
|
|
function Jm(e) {
|
|
try {
|
|
if ("composedPath" in e) {
|
|
const t = e.composedPath();
|
|
if (t.length) return t[0]
|
|
} else if ("path" in e && e.path.length) return e.path[0]
|
|
} catch (e) {}
|
|
return e && e.target
|
|
}
|
|
|
|
function Km(e, t) {
|
|
const n = new Lm;
|
|
Ym.push(n), n.init(e);
|
|
let r = window.MutationObserver || window.__rrMutationObserver;
|
|
const o = Vm([window, "optionalAccess", e => e.Zone, "optionalAccess", e => e.__symbol__, "optionalCall", e => e("MutationObserver")]);
|
|
o && window[o] && (r = window[o]);
|
|
const i = new r(Wm(t => {
|
|
e.onMutation && !1 === e.onMutation(t) || n.processMutations.bind(n)(t)
|
|
}));
|
|
return i.observe(t, {
|
|
attributes: !0,
|
|
attributeOldValue: !0,
|
|
characterData: !0,
|
|
characterDataOldValue: !0,
|
|
childList: !0,
|
|
subtree: !0
|
|
}), i
|
|
}
|
|
|
|
function Qm({
|
|
mouseInteractionCb: e,
|
|
doc: t,
|
|
mirror: n,
|
|
blockClass: r,
|
|
blockSelector: o,
|
|
unblockSelector: i,
|
|
sampling: a
|
|
}) {
|
|
if (!1 === a.mouseInteraction) return () => {};
|
|
const s = !0 === a.mouseInteraction || void 0 === a.mouseInteraction ? {} : a.mouseInteraction,
|
|
c = [];
|
|
let u = null;
|
|
return Object.keys(Cm).filter(e => Number.isNaN(Number(e)) && !e.endsWith("_Departed") && !1 !== s[e]).forEach(a => {
|
|
let s = Ph(a);
|
|
const l = (t => a => {
|
|
const s = Jm(a);
|
|
if (mm(s, r, o, i, !0)) return;
|
|
let c = null,
|
|
l = t;
|
|
if ("pointerType" in a) {
|
|
switch (a.pointerType) {
|
|
case "mouse":
|
|
c = jm.Mouse;
|
|
break;
|
|
case "touch":
|
|
c = jm.Touch;
|
|
break;
|
|
case "pen":
|
|
c = jm.Pen
|
|
}
|
|
c === jm.Touch ? Cm[t] === Cm.MouseDown ? l = "TouchStart" : Cm[t] === Cm.MouseUp && (l = "TouchEnd") : jm.Pen
|
|
} else vm(a) && (c = jm.Touch);
|
|
null !== c ? (u = c, (l.startsWith("Touch") && c === jm.Touch || l.startsWith("Mouse") && c === jm.Mouse) && (c = null)) : Cm[t] === Cm.Click && (c = u, u = null);
|
|
const f = vm(a) ? a.changedTouches[0] : a;
|
|
if (!f) return;
|
|
const d = n.getId(s),
|
|
{
|
|
clientX: p,
|
|
clientY: h
|
|
} = f;
|
|
Wm(e)({
|
|
type: Cm[l],
|
|
id: d,
|
|
x: p,
|
|
y: h,
|
|
...null !== c && {
|
|
pointerType: c
|
|
}
|
|
})
|
|
})(a);
|
|
if (window.PointerEvent) switch (Cm[a]) {
|
|
case Cm.MouseDown:
|
|
case Cm.MouseUp:
|
|
s = s.replace("mouse", "pointer");
|
|
break;
|
|
case Cm.TouchStart:
|
|
case Cm.TouchEnd:
|
|
return
|
|
}
|
|
c.push(om(s, l, t))
|
|
}), Wm(() => {
|
|
c.forEach(e => e())
|
|
})
|
|
}
|
|
|
|
function Xm({
|
|
scrollCb: e,
|
|
doc: t,
|
|
mirror: n,
|
|
blockClass: r,
|
|
blockSelector: o,
|
|
unblockSelector: i,
|
|
sampling: a
|
|
}) {
|
|
return om("scroll", Wm(sm(Wm(a => {
|
|
const s = Jm(a);
|
|
if (!s || mm(s, r, o, i, !0)) return;
|
|
const c = n.getId(s);
|
|
if (s === t && t.defaultView) {
|
|
const n = fm(t.defaultView);
|
|
e({
|
|
id: c,
|
|
x: n.left,
|
|
y: n.top
|
|
})
|
|
} else e({
|
|
id: c,
|
|
x: s.scrollLeft,
|
|
y: s.scrollTop
|
|
})
|
|
}), a.scroll || 100)), t)
|
|
}
|
|
const Zm = ["INPUT", "TEXTAREA", "SELECT"],
|
|
eg = new WeakMap;
|
|
|
|
function tg({
|
|
inputCb: e,
|
|
doc: t,
|
|
mirror: n,
|
|
blockClass: r,
|
|
blockSelector: o,
|
|
unblockSelector: i,
|
|
ignoreClass: a,
|
|
ignoreSelector: s,
|
|
maskInputOptions: c,
|
|
maskInputFn: u,
|
|
sampling: l,
|
|
userTriggeredOnInput: f,
|
|
maskTextClass: d,
|
|
unmaskTextClass: p,
|
|
maskTextSelector: h,
|
|
unmaskTextSelector: m
|
|
}) {
|
|
function g(e) {
|
|
let n = Jm(e);
|
|
const l = e.isTrusted,
|
|
g = n && Ah(n.tagName);
|
|
if ("OPTION" === g && (n = n.parentElement), !n || !g || Zm.indexOf(g) < 0 || mm(n, r, o, i, !0)) return;
|
|
const v = n;
|
|
if (v.classList.contains(a) || s && v.matches(s)) return;
|
|
const b = jh(n);
|
|
let _ = Rh(v, g, b),
|
|
S = !1;
|
|
const w = xh({
|
|
maskInputOptions: c,
|
|
tagName: g,
|
|
type: b
|
|
}),
|
|
O = Zh(n, d, h, p, m, w);
|
|
"radio" !== b && "checkbox" !== b || (S = n.checked), _ = Ih({
|
|
isMasked: O,
|
|
element: n,
|
|
value: _,
|
|
maskInputFn: u
|
|
}), y(n, f ? {
|
|
text: _,
|
|
isChecked: S,
|
|
userTriggered: l
|
|
} : {
|
|
text: _,
|
|
isChecked: S
|
|
});
|
|
const E = n.name;
|
|
"radio" === b && E && S && t.querySelectorAll(`input[type="radio"][name="${E}"]`).forEach(e => {
|
|
if (e !== n) {
|
|
const t = Ih({
|
|
isMasked: O,
|
|
element: e,
|
|
value: Rh(e, g, b),
|
|
maskInputFn: u
|
|
});
|
|
y(e, f ? {
|
|
text: t,
|
|
isChecked: !S,
|
|
userTriggered: !1
|
|
} : {
|
|
text: t,
|
|
isChecked: !S
|
|
})
|
|
}
|
|
})
|
|
}
|
|
|
|
function y(t, r) {
|
|
const o = eg.get(t);
|
|
if (!o || o.text !== r.text || o.isChecked !== r.isChecked) {
|
|
eg.set(t, r);
|
|
const o = n.getId(t);
|
|
Wm(e)({
|
|
...r,
|
|
id: o
|
|
})
|
|
}
|
|
}
|
|
const v = ("last" === l.input ? ["change"] : ["input", "change"]).map(e => om(e, Wm(g), t)),
|
|
b = t.defaultView;
|
|
if (!b) return () => {
|
|
v.forEach(e => e())
|
|
};
|
|
const _ = b.Object.getOwnPropertyDescriptor(b.HTMLInputElement.prototype, "value"),
|
|
S = [
|
|
[b.HTMLInputElement.prototype, "value"],
|
|
[b.HTMLInputElement.prototype, "checked"],
|
|
[b.HTMLSelectElement.prototype, "value"],
|
|
[b.HTMLTextAreaElement.prototype, "value"],
|
|
[b.HTMLSelectElement.prototype, "selectedIndex"],
|
|
[b.HTMLOptionElement.prototype, "selected"]
|
|
];
|
|
return _ && _.set && v.push(...S.map(e => cm(e[0], e[1], {
|
|
set() {
|
|
Wm(g)({
|
|
target: this,
|
|
isTrusted: !1
|
|
})
|
|
}
|
|
}, !1, b))), Wm(() => {
|
|
v.forEach(e => e())
|
|
})
|
|
}
|
|
|
|
function ng(e) {
|
|
return function(e, t) {
|
|
if (ag("CSSGroupingRule") && e.parentRule instanceof CSSGroupingRule || ag("CSSMediaRule") && e.parentRule instanceof CSSMediaRule || ag("CSSSupportsRule") && e.parentRule instanceof CSSSupportsRule || ag("CSSConditionRule") && e.parentRule instanceof CSSConditionRule) {
|
|
const n = Array.from(e.parentRule.cssRules).indexOf(e);
|
|
t.unshift(n)
|
|
} else if (e.parentStyleSheet) {
|
|
const n = Array.from(e.parentStyleSheet.cssRules).indexOf(e);
|
|
t.unshift(n)
|
|
}
|
|
return t
|
|
}(e, [])
|
|
}
|
|
|
|
function rg(e, t, n) {
|
|
let r, o;
|
|
return e ? (e.ownerNode ? r = t.getId(e.ownerNode) : o = n.getId(e), {
|
|
styleId: o,
|
|
id: r
|
|
}) : {}
|
|
}
|
|
|
|
function og({
|
|
mirror: e,
|
|
stylesheetManager: t
|
|
}, n) {
|
|
let r = null;
|
|
r = "#document" === n.nodeName ? e.getId(n) : e.getId(n.host);
|
|
const o = "#document" === n.nodeName ? Vm([n, "access", e => e.defaultView, "optionalAccess", e => e.Document]) : Vm([n, "access", e => e.ownerDocument, "optionalAccess", e => e.defaultView, "optionalAccess", e => e.ShadowRoot]),
|
|
i = Vm([o, "optionalAccess", e => e.prototype]) ? Object.getOwnPropertyDescriptor(Vm([o, "optionalAccess", e => e.prototype]), "adoptedStyleSheets") : void 0;
|
|
return null !== r && -1 !== r && o && i ? (Object.defineProperty(n, "adoptedStyleSheets", {
|
|
configurable: i.configurable,
|
|
enumerable: i.enumerable,
|
|
get() {
|
|
return Vm([i, "access", e => e.get, "optionalAccess", e => e.call, "call", e => e(this)])
|
|
},
|
|
set(e) {
|
|
const n = Vm([i, "access", e => e.set, "optionalAccess", e => e.call, "call", t => t(this, e)]);
|
|
if (null !== r && -1 !== r) try {
|
|
t.adoptStyleSheets(e, r)
|
|
} catch (e) {}
|
|
return n
|
|
}
|
|
}), Wm(() => {
|
|
Object.defineProperty(n, "adoptedStyleSheets", {
|
|
configurable: i.configurable,
|
|
enumerable: i.enumerable,
|
|
get: i.get,
|
|
set: i.set
|
|
})
|
|
})) : () => {}
|
|
}
|
|
|
|
function ig(e, t = {}) {
|
|
const n = e.doc.defaultView;
|
|
if (!n) return () => {};
|
|
const r = Km(e, e.doc),
|
|
o = function({
|
|
mousemoveCb: e,
|
|
sampling: t,
|
|
doc: n,
|
|
mirror: r
|
|
}) {
|
|
if (!1 === t.mousemove) return () => {};
|
|
const o = "number" == typeof t.mousemove ? t.mousemove : 50,
|
|
i = "number" == typeof t.mousemoveCallback ? t.mousemoveCallback : 500;
|
|
let a, s = [];
|
|
const c = sm(Wm(t => {
|
|
const n = Date.now() - a;
|
|
e(s.map(e => (e.timeOffset -= n, e)), t), s = [], a = null
|
|
}), i),
|
|
u = Wm(sm(Wm(e => {
|
|
const t = Jm(e),
|
|
{
|
|
clientX: n,
|
|
clientY: o
|
|
} = vm(e) ? e.changedTouches[0] : e;
|
|
a || (a = lm()), s.push({
|
|
x: n,
|
|
y: o,
|
|
id: r.getId(t),
|
|
timeOffset: lm() - a
|
|
}), c("undefined" != typeof DragEvent && e instanceof DragEvent ? Am.Drag : e instanceof MouseEvent ? Am.MouseMove : Am.TouchMove)
|
|
}), o, {
|
|
trailing: !1
|
|
})),
|
|
l = [om("mousemove", u, n), om("touchmove", u, n), om("drag", u, n)];
|
|
return Wm(() => {
|
|
l.forEach(e => e())
|
|
})
|
|
}(e),
|
|
i = Qm(e),
|
|
a = Xm(e),
|
|
s = function({
|
|
viewportResizeCb: e
|
|
}, {
|
|
win: t
|
|
}) {
|
|
let n = -1,
|
|
r = -1;
|
|
return om("resize", Wm(sm(Wm(() => {
|
|
const t = dm(),
|
|
o = pm();
|
|
n === t && r === o || (e({
|
|
width: Number(o),
|
|
height: Number(t)
|
|
}), n = t, r = o)
|
|
}), 200)), t)
|
|
}(e, {
|
|
win: n
|
|
}),
|
|
c = tg(e),
|
|
u = function({
|
|
mediaInteractionCb: e,
|
|
blockClass: t,
|
|
blockSelector: n,
|
|
unblockSelector: r,
|
|
mirror: o,
|
|
sampling: i,
|
|
doc: a
|
|
}) {
|
|
const s = Wm(a => sm(Wm(i => {
|
|
const s = Jm(i);
|
|
if (!s || mm(s, t, n, r, !0)) return;
|
|
const {
|
|
currentTime: c,
|
|
volume: u,
|
|
muted: l,
|
|
playbackRate: f
|
|
} = s;
|
|
e({
|
|
type: a,
|
|
id: o.getId(s),
|
|
currentTime: c,
|
|
volume: u,
|
|
muted: l,
|
|
playbackRate: f
|
|
})
|
|
}), i.media || 500)),
|
|
c = [om("play", s(0), a), om("pause", s(1), a), om("seeked", s(2), a), om("volumechange", s(3), a), om("ratechange", s(4), a)];
|
|
return Wm(() => {
|
|
c.forEach(e => e())
|
|
})
|
|
}(e),
|
|
l = function({
|
|
styleSheetRuleCb: e,
|
|
mirror: t,
|
|
stylesheetManager: n
|
|
}, {
|
|
win: r
|
|
}) {
|
|
if (!r.CSSStyleSheet || !r.CSSStyleSheet.prototype) return () => {};
|
|
const o = r.CSSStyleSheet.prototype.insertRule;
|
|
r.CSSStyleSheet.prototype.insertRule = new Proxy(o, {
|
|
apply: Wm((r, o, i) => {
|
|
const [a, s] = i, {
|
|
id: c,
|
|
styleId: u
|
|
} = rg(o, t, n.styleMirror);
|
|
return (c && -1 !== c || u && -1 !== u) && e({
|
|
id: c,
|
|
styleId: u,
|
|
adds: [{
|
|
rule: a,
|
|
index: s
|
|
}]
|
|
}), r.apply(o, i)
|
|
})
|
|
});
|
|
const i = r.CSSStyleSheet.prototype.deleteRule;
|
|
let a, s;
|
|
r.CSSStyleSheet.prototype.deleteRule = new Proxy(i, {
|
|
apply: Wm((r, o, i) => {
|
|
const [a] = i, {
|
|
id: s,
|
|
styleId: c
|
|
} = rg(o, t, n.styleMirror);
|
|
return (s && -1 !== s || c && -1 !== c) && e({
|
|
id: s,
|
|
styleId: c,
|
|
removes: [{
|
|
index: a
|
|
}]
|
|
}), r.apply(o, i)
|
|
})
|
|
}), r.CSSStyleSheet.prototype.replace && (a = r.CSSStyleSheet.prototype.replace, r.CSSStyleSheet.prototype.replace = new Proxy(a, {
|
|
apply: Wm((r, o, i) => {
|
|
const [a] = i, {
|
|
id: s,
|
|
styleId: c
|
|
} = rg(o, t, n.styleMirror);
|
|
return (s && -1 !== s || c && -1 !== c) && e({
|
|
id: s,
|
|
styleId: c,
|
|
replace: a
|
|
}), r.apply(o, i)
|
|
})
|
|
})), r.CSSStyleSheet.prototype.replaceSync && (s = r.CSSStyleSheet.prototype.replaceSync, r.CSSStyleSheet.prototype.replaceSync = new Proxy(s, {
|
|
apply: Wm((r, o, i) => {
|
|
const [a] = i, {
|
|
id: s,
|
|
styleId: c
|
|
} = rg(o, t, n.styleMirror);
|
|
return (s && -1 !== s || c && -1 !== c) && e({
|
|
id: s,
|
|
styleId: c,
|
|
replaceSync: a
|
|
}), r.apply(o, i)
|
|
})
|
|
}));
|
|
const c = {};
|
|
sg("CSSGroupingRule") ? c.CSSGroupingRule = r.CSSGroupingRule : (sg("CSSMediaRule") && (c.CSSMediaRule = r.CSSMediaRule), sg("CSSConditionRule") && (c.CSSConditionRule = r.CSSConditionRule), sg("CSSSupportsRule") && (c.CSSSupportsRule = r.CSSSupportsRule));
|
|
const u = {};
|
|
return Object.entries(c).forEach(([r, o]) => {
|
|
u[r] = {
|
|
insertRule: o.prototype.insertRule,
|
|
deleteRule: o.prototype.deleteRule
|
|
}, o.prototype.insertRule = new Proxy(u[r].insertRule, {
|
|
apply: Wm((r, o, i) => {
|
|
const [a, s] = i, {
|
|
id: c,
|
|
styleId: u
|
|
} = rg(o.parentStyleSheet, t, n.styleMirror);
|
|
return (c && -1 !== c || u && -1 !== u) && e({
|
|
id: c,
|
|
styleId: u,
|
|
adds: [{
|
|
rule: a,
|
|
index: [...ng(o), s || 0]
|
|
}]
|
|
}), r.apply(o, i)
|
|
})
|
|
}), o.prototype.deleteRule = new Proxy(u[r].deleteRule, {
|
|
apply: Wm((r, o, i) => {
|
|
const [a] = i, {
|
|
id: s,
|
|
styleId: c
|
|
} = rg(o.parentStyleSheet, t, n.styleMirror);
|
|
return (s && -1 !== s || c && -1 !== c) && e({
|
|
id: s,
|
|
styleId: c,
|
|
removes: [{
|
|
index: [...ng(o), a]
|
|
}]
|
|
}), r.apply(o, i)
|
|
})
|
|
})
|
|
}), Wm(() => {
|
|
r.CSSStyleSheet.prototype.insertRule = o, r.CSSStyleSheet.prototype.deleteRule = i, a && (r.CSSStyleSheet.prototype.replace = a), s && (r.CSSStyleSheet.prototype.replaceSync = s), Object.entries(c).forEach(([e, t]) => {
|
|
t.prototype.insertRule = u[e].insertRule, t.prototype.deleteRule = u[e].deleteRule
|
|
})
|
|
})
|
|
}(e, {
|
|
win: n
|
|
}),
|
|
f = og(e, e.doc),
|
|
d = function({
|
|
styleDeclarationCb: e,
|
|
mirror: t,
|
|
ignoreCSSAttributes: n,
|
|
stylesheetManager: r
|
|
}, {
|
|
win: o
|
|
}) {
|
|
const i = o.CSSStyleDeclaration.prototype.setProperty;
|
|
o.CSSStyleDeclaration.prototype.setProperty = new Proxy(i, {
|
|
apply: Wm((o, a, s) => {
|
|
const [c, u, l] = s;
|
|
if (n.has(c)) return i.apply(a, [c, u, l]);
|
|
const {
|
|
id: f,
|
|
styleId: d
|
|
} = rg(Vm([a, "access", e => e.parentRule, "optionalAccess", e => e.parentStyleSheet]), t, r.styleMirror);
|
|
return (f && -1 !== f || d && -1 !== d) && e({
|
|
id: f,
|
|
styleId: d,
|
|
set: {
|
|
property: c,
|
|
value: u,
|
|
priority: l
|
|
},
|
|
index: ng(a.parentRule)
|
|
}), o.apply(a, s)
|
|
})
|
|
});
|
|
const a = o.CSSStyleDeclaration.prototype.removeProperty;
|
|
return o.CSSStyleDeclaration.prototype.removeProperty = new Proxy(a, {
|
|
apply: Wm((o, i, s) => {
|
|
const [c] = s;
|
|
if (n.has(c)) return a.apply(i, [c]);
|
|
const {
|
|
id: u,
|
|
styleId: l
|
|
} = rg(Vm([i, "access", e => e.parentRule, "optionalAccess", e => e.parentStyleSheet]), t, r.styleMirror);
|
|
return (u && -1 !== u || l && -1 !== l) && e({
|
|
id: u,
|
|
styleId: l,
|
|
remove: {
|
|
property: c
|
|
},
|
|
index: ng(i.parentRule)
|
|
}), o.apply(i, s)
|
|
})
|
|
}), Wm(() => {
|
|
o.CSSStyleDeclaration.prototype.setProperty = i, o.CSSStyleDeclaration.prototype.removeProperty = a
|
|
})
|
|
}(e, {
|
|
win: n
|
|
}),
|
|
p = e.collectFonts ? function({
|
|
fontCb: e,
|
|
doc: t
|
|
}) {
|
|
const n = t.defaultView;
|
|
if (!n) return () => {};
|
|
const r = [],
|
|
o = new WeakMap,
|
|
i = n.FontFace;
|
|
n.FontFace = function(e, t, n) {
|
|
const r = new i(e, t, n);
|
|
return o.set(r, {
|
|
family: e,
|
|
buffer: "string" != typeof t,
|
|
descriptors: n,
|
|
fontSource: "string" == typeof t ? t : JSON.stringify(Array.from(new Uint8Array(t)))
|
|
}), r
|
|
};
|
|
const a = um(t.fonts, "add", function(t) {
|
|
return function(n) {
|
|
return Im(Wm(() => {
|
|
const t = o.get(n);
|
|
t && (e(t), o.delete(n))
|
|
}), 0), t.apply(this, [n])
|
|
}
|
|
});
|
|
return r.push(() => {
|
|
n.FontFace = i
|
|
}), r.push(a), Wm(() => {
|
|
r.forEach(e => e())
|
|
})
|
|
}(e) : () => {},
|
|
h = function(e) {
|
|
const {
|
|
doc: t,
|
|
mirror: n,
|
|
blockClass: r,
|
|
blockSelector: o,
|
|
unblockSelector: i,
|
|
selectionCb: a
|
|
} = e;
|
|
let s = !0;
|
|
const c = Wm(() => {
|
|
const e = t.getSelection();
|
|
if (!e || s && Vm([e, "optionalAccess", e => e.isCollapsed])) return;
|
|
s = e.isCollapsed || !1;
|
|
const c = [],
|
|
u = e.rangeCount || 0;
|
|
for (let t = 0; t < u; t++) {
|
|
const a = e.getRangeAt(t),
|
|
{
|
|
startContainer: s,
|
|
startOffset: u,
|
|
endContainer: l,
|
|
endOffset: f
|
|
} = a;
|
|
mm(s, r, o, i, !0) || mm(l, r, o, i, !0) || c.push({
|
|
start: n.getId(s),
|
|
startOffset: u,
|
|
end: n.getId(l),
|
|
endOffset: f
|
|
})
|
|
}
|
|
a({
|
|
ranges: c
|
|
})
|
|
});
|
|
return c(), om("selectionchange", c)
|
|
}(e),
|
|
m = function({
|
|
doc: e,
|
|
customElementCb: t
|
|
}) {
|
|
const n = e.defaultView;
|
|
return n && n.customElements ? um(n.customElements, "define", function(e) {
|
|
return function(n, r, o) {
|
|
try {
|
|
t({
|
|
define: {
|
|
name: n
|
|
}
|
|
})
|
|
} catch (e) {}
|
|
return e.apply(this, [n, r, o])
|
|
}
|
|
}) : () => {}
|
|
}(e),
|
|
g = [];
|
|
for (const t of e.plugins) g.push(t.observer(t.callback, n, t.options));
|
|
return Wm(() => {
|
|
Ym.forEach(e => e.reset()), r.disconnect(), o(), i(), a(), s(), c(), u(), l(), f(), d(), p(), h(), m(), g.forEach(e => e())
|
|
})
|
|
}
|
|
|
|
function ag(e) {
|
|
return void 0 !== window[e]
|
|
}
|
|
|
|
function sg(e) {
|
|
return Boolean(void 0 !== window[e] && window[e].prototype && "insertRule" in window[e].prototype && "deleteRule" in window[e].prototype)
|
|
}
|
|
class cg {
|
|
constructor(e) {
|
|
this.generateIdFn = e, this.iframeIdToRemoteIdMap = new WeakMap, this.iframeRemoteIdToIdMap = new WeakMap
|
|
}
|
|
getId(e, t, n, r) {
|
|
const o = n || this.getIdToRemoteIdMap(e),
|
|
i = r || this.getRemoteIdToIdMap(e);
|
|
let a = o.get(t);
|
|
return a || (a = this.generateIdFn(), o.set(t, a), i.set(a, t)), a
|
|
}
|
|
getIds(e, t) {
|
|
const n = this.getIdToRemoteIdMap(e),
|
|
r = this.getRemoteIdToIdMap(e);
|
|
return t.map(t => this.getId(e, t, n, r))
|
|
}
|
|
getRemoteId(e, t, n) {
|
|
const r = n || this.getRemoteIdToIdMap(e);
|
|
if ("number" != typeof t) return t;
|
|
const o = r.get(t);
|
|
return o || -1
|
|
}
|
|
getRemoteIds(e, t) {
|
|
const n = this.getRemoteIdToIdMap(e);
|
|
return t.map(t => this.getRemoteId(e, t, n))
|
|
}
|
|
reset(e) {
|
|
if (!e) return this.iframeIdToRemoteIdMap = new WeakMap, void(this.iframeRemoteIdToIdMap = new WeakMap);
|
|
this.iframeIdToRemoteIdMap.delete(e), this.iframeRemoteIdToIdMap.delete(e)
|
|
}
|
|
getIdToRemoteIdMap(e) {
|
|
let t = this.iframeIdToRemoteIdMap.get(e);
|
|
return t || (t = new Map, this.iframeIdToRemoteIdMap.set(e, t)), t
|
|
}
|
|
getRemoteIdToIdMap(e) {
|
|
let t = this.iframeRemoteIdToIdMap.get(e);
|
|
return t || (t = new Map, this.iframeRemoteIdToIdMap.set(e, t)), t
|
|
}
|
|
}
|
|
|
|
function ug(e) {
|
|
let t, n = e[0],
|
|
r = 1;
|
|
for (; r < e.length;) {
|
|
const o = e[r],
|
|
i = e[r + 1];
|
|
if (r += 2, ("optionalAccess" === o || "optionalCall" === o) && null == n) return;
|
|
"access" === o || "optionalAccess" === o ? (t = n, n = i(n)) : "call" !== o && "optionalCall" !== o || (n = i((...e) => n.call(t, ...e)), t = void 0)
|
|
}
|
|
return n
|
|
}
|
|
class lg {
|
|
constructor() {
|
|
this.crossOriginIframeMirror = new cg(Nh), this.crossOriginIframeRootIdMap = new WeakMap
|
|
}
|
|
addIframe() {}
|
|
addLoadListener() {}
|
|
attachIframe() {}
|
|
}
|
|
class fg {
|
|
constructor(e) {
|
|
this.iframes = new WeakMap, this.crossOriginIframeMap = new WeakMap, this.crossOriginIframeMirror = new cg(Nh), this.crossOriginIframeRootIdMap = new WeakMap, this.mutationCb = e.mutationCb, this.wrappedEmit = e.wrappedEmit, this.stylesheetManager = e.stylesheetManager, this.recordCrossOriginIframes = e.recordCrossOriginIframes, this.crossOriginIframeStyleMirror = new cg(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror)), this.mirror = e.mirror, this.recordCrossOriginIframes && window.addEventListener("message", this.handleMessage.bind(this))
|
|
}
|
|
addIframe(e) {
|
|
this.iframes.set(e, !0), e.contentWindow && this.crossOriginIframeMap.set(e.contentWindow, e)
|
|
}
|
|
addLoadListener(e) {
|
|
this.loadListener = e
|
|
}
|
|
attachIframe(e, t) {
|
|
this.mutationCb({
|
|
adds: [{
|
|
parentId: this.mirror.getId(e),
|
|
nextId: null,
|
|
node: t
|
|
}],
|
|
removes: [],
|
|
texts: [],
|
|
attributes: [],
|
|
isAttachIframe: !0
|
|
}), ug([this, "access", e => e.loadListener, "optionalCall", t => t(e)]), e.contentDocument && e.contentDocument.adoptedStyleSheets && e.contentDocument.adoptedStyleSheets.length > 0 && this.stylesheetManager.adoptStyleSheets(e.contentDocument.adoptedStyleSheets, this.mirror.getId(e.contentDocument))
|
|
}
|
|
handleMessage(e) {
|
|
const t = e;
|
|
if ("rrweb" !== t.data.type || t.origin !== t.data.origin) return;
|
|
if (!e.source) return;
|
|
const n = this.crossOriginIframeMap.get(e.source);
|
|
if (!n) return;
|
|
const r = this.transformCrossOriginEvent(n, t.data.event);
|
|
r && this.wrappedEmit(r, t.data.isCheckout)
|
|
}
|
|
transformCrossOriginEvent(e, t) {
|
|
switch (t.type) {
|
|
case Pm.FullSnapshot: {
|
|
this.crossOriginIframeMirror.reset(e), this.crossOriginIframeStyleMirror.reset(e), this.replaceIdOnNode(t.data.node, e);
|
|
const n = t.data.node.id;
|
|
return this.crossOriginIframeRootIdMap.set(e, n), this.patchRootIdOnNode(t.data.node, n), {
|
|
timestamp: t.timestamp,
|
|
type: Pm.IncrementalSnapshot,
|
|
data: {
|
|
source: Am.Mutation,
|
|
adds: [{
|
|
parentId: this.mirror.getId(e),
|
|
nextId: null,
|
|
node: t.data.node
|
|
}],
|
|
removes: [],
|
|
texts: [],
|
|
attributes: [],
|
|
isAttachIframe: !0
|
|
}
|
|
}
|
|
}
|
|
case Pm.Meta:
|
|
case Pm.Load:
|
|
case Pm.DomContentLoaded:
|
|
return !1;
|
|
case Pm.Plugin:
|
|
return t;
|
|
case Pm.Custom:
|
|
return this.replaceIds(t.data.payload, e, ["id", "parentId", "previousId", "nextId"]), t;
|
|
case Pm.IncrementalSnapshot:
|
|
switch (t.data.source) {
|
|
case Am.Mutation:
|
|
return t.data.adds.forEach(t => {
|
|
this.replaceIds(t, e, ["parentId", "nextId", "previousId"]), this.replaceIdOnNode(t.node, e);
|
|
const n = this.crossOriginIframeRootIdMap.get(e);
|
|
n && this.patchRootIdOnNode(t.node, n)
|
|
}), t.data.removes.forEach(t => {
|
|
this.replaceIds(t, e, ["parentId", "id"])
|
|
}), t.data.attributes.forEach(t => {
|
|
this.replaceIds(t, e, ["id"])
|
|
}), t.data.texts.forEach(t => {
|
|
this.replaceIds(t, e, ["id"])
|
|
}), t;
|
|
case Am.Drag:
|
|
case Am.TouchMove:
|
|
case Am.MouseMove:
|
|
return t.data.positions.forEach(t => {
|
|
this.replaceIds(t, e, ["id"])
|
|
}), t;
|
|
case Am.ViewportResize:
|
|
return !1;
|
|
case Am.MediaInteraction:
|
|
case Am.MouseInteraction:
|
|
case Am.Scroll:
|
|
case Am.CanvasMutation:
|
|
case Am.Input:
|
|
return this.replaceIds(t.data, e, ["id"]), t;
|
|
case Am.StyleSheetRule:
|
|
case Am.StyleDeclaration:
|
|
return this.replaceIds(t.data, e, ["id"]), this.replaceStyleIds(t.data, e, ["styleId"]), t;
|
|
case Am.Font:
|
|
return t;
|
|
case Am.Selection:
|
|
return t.data.ranges.forEach(t => {
|
|
this.replaceIds(t, e, ["start", "end"])
|
|
}), t;
|
|
case Am.AdoptedStyleSheet:
|
|
return this.replaceIds(t.data, e, ["id"]), this.replaceStyleIds(t.data, e, ["styleIds"]), ug([t, "access", e => e.data, "access", e => e.styles, "optionalAccess", e => e.forEach, "call", t => t(t => {
|
|
this.replaceStyleIds(t, e, ["styleId"])
|
|
})]), t
|
|
}
|
|
}
|
|
return !1
|
|
}
|
|
replace(e, t, n, r) {
|
|
for (const o of r)(Array.isArray(t[o]) || "number" == typeof t[o]) && (Array.isArray(t[o]) ? t[o] = e.getIds(n, t[o]) : t[o] = e.getId(n, t[o]));
|
|
return t
|
|
}
|
|
replaceIds(e, t, n) {
|
|
return this.replace(this.crossOriginIframeMirror, e, t, n)
|
|
}
|
|
replaceStyleIds(e, t, n) {
|
|
return this.replace(this.crossOriginIframeStyleMirror, e, t, n)
|
|
}
|
|
replaceIdOnNode(e, t) {
|
|
this.replaceIds(e, t, ["id", "rootId"]), "childNodes" in e && e.childNodes.forEach(e => {
|
|
this.replaceIdOnNode(e, t)
|
|
})
|
|
}
|
|
patchRootIdOnNode(e, t) {
|
|
e.type === Sh.Document || e.rootId || (e.rootId = t), "childNodes" in e && e.childNodes.forEach(e => {
|
|
this.patchRootIdOnNode(e, t)
|
|
})
|
|
}
|
|
}
|
|
class dg {
|
|
init() {}
|
|
addShadowRoot() {}
|
|
observeAttachShadow() {}
|
|
reset() {}
|
|
}
|
|
class pg {
|
|
constructor(e) {
|
|
this.shadowDoms = new WeakSet, this.restoreHandlers = [], this.mutationCb = e.mutationCb, this.scrollCb = e.scrollCb, this.bypassOptions = e.bypassOptions, this.mirror = e.mirror, this.init()
|
|
}
|
|
init() {
|
|
this.reset(), this.patchAttachShadow(Element, document)
|
|
}
|
|
addShadowRoot(e, t) {
|
|
if (!Oh(e)) return;
|
|
if (this.shadowDoms.has(e)) return;
|
|
this.shadowDoms.add(e);
|
|
const n = Km({
|
|
...this.bypassOptions,
|
|
doc: t,
|
|
mutationCb: this.mutationCb,
|
|
mirror: this.mirror,
|
|
shadowDomManager: this
|
|
}, e);
|
|
this.restoreHandlers.push(() => n.disconnect()), this.restoreHandlers.push(Xm({
|
|
...this.bypassOptions,
|
|
scrollCb: this.scrollCb,
|
|
doc: e,
|
|
mirror: this.mirror
|
|
})), Im(() => {
|
|
e.adoptedStyleSheets && e.adoptedStyleSheets.length > 0 && this.bypassOptions.stylesheetManager.adoptStyleSheets(e.adoptedStyleSheets, this.mirror.getId(e.host)), this.restoreHandlers.push(og({
|
|
mirror: this.mirror,
|
|
stylesheetManager: this.bypassOptions.stylesheetManager
|
|
}, e))
|
|
}, 0)
|
|
}
|
|
observeAttachShadow(e) {
|
|
e.contentWindow && e.contentDocument && this.patchAttachShadow(e.contentWindow.Element, e.contentDocument)
|
|
}
|
|
patchAttachShadow(e, t) {
|
|
const n = this;
|
|
this.restoreHandlers.push(um(e.prototype, "attachShadow", function(e) {
|
|
return function(r) {
|
|
const o = e.call(this, r);
|
|
return this.shadowRoot && km(this) && n.addShadowRoot(this.shadowRoot, t), o
|
|
}
|
|
}))
|
|
}
|
|
reset() {
|
|
this.restoreHandlers.forEach(e => {
|
|
try {
|
|
e()
|
|
} catch (e) {}
|
|
}), this.restoreHandlers = [], this.shadowDoms = new WeakSet
|
|
}
|
|
}
|
|
class hg {
|
|
reset() {}
|
|
freeze() {}
|
|
unfreeze() {}
|
|
lock() {}
|
|
unlock() {}
|
|
snapshot() {}
|
|
}
|
|
class mg {
|
|
constructor(e) {
|
|
this.trackedLinkElements = new WeakSet, this.styleMirror = new wm, this.mutationCb = e.mutationCb, this.adoptedStyleSheetCb = e.adoptedStyleSheetCb
|
|
}
|
|
attachLinkElement(e, t) {
|
|
"_cssText" in t.attributes && this.mutationCb({
|
|
adds: [],
|
|
removes: [],
|
|
texts: [],
|
|
attributes: [{
|
|
id: t.id,
|
|
attributes: t.attributes
|
|
}]
|
|
}), this.trackLinkElement(e)
|
|
}
|
|
trackLinkElement(e) {
|
|
this.trackedLinkElements.has(e) || (this.trackedLinkElements.add(e), this.trackStylesheetInLinkElement(e))
|
|
}
|
|
adoptStyleSheets(e, t) {
|
|
if (0 === e.length) return;
|
|
const n = {
|
|
id: t,
|
|
styleIds: []
|
|
},
|
|
r = [];
|
|
for (const t of e) {
|
|
let e;
|
|
this.styleMirror.has(t) ? e = this.styleMirror.getId(t) : (e = this.styleMirror.add(t), r.push({
|
|
styleId: e,
|
|
rules: Array.from(t.rules || CSSRule, (e, t) => ({
|
|
rule: kh(e),
|
|
index: t
|
|
}))
|
|
})), n.styleIds.push(e)
|
|
}
|
|
r.length > 0 && (n.styles = r), this.adoptedStyleSheetCb(n)
|
|
}
|
|
reset() {
|
|
this.styleMirror.reset(), this.trackedLinkElements = new WeakSet
|
|
}
|
|
trackStylesheetInLinkElement(e) {}
|
|
}
|
|
class gg {
|
|
constructor() {
|
|
this.nodeMap = new WeakMap, this.loop = !0, this.periodicallyClear()
|
|
}
|
|
periodicallyClear() {
|
|
! function(...e) {
|
|
xm("requestAnimationFrame")(...e)
|
|
}(() => {
|
|
this.clear(), this.loop && this.periodicallyClear()
|
|
})
|
|
}
|
|
inOtherBuffer(e, t) {
|
|
const n = this.nodeMap.get(e);
|
|
return n && Array.from(n).some(e => e !== t)
|
|
}
|
|
add(e, t) {
|
|
this.nodeMap.set(e, (this.nodeMap.get(e) || new Set).add(t))
|
|
}
|
|
clear() {
|
|
this.nodeMap = new WeakMap
|
|
}
|
|
destroy() {
|
|
this.loop = !1
|
|
}
|
|
}
|
|
let yg, vg;
|
|
const bg = new Th;
|
|
|
|
function _g(e = {}) {
|
|
const {
|
|
emit: t,
|
|
checkoutEveryNms: n,
|
|
checkoutEveryNth: r,
|
|
blockClass: o = "rr-block",
|
|
blockSelector: i = null,
|
|
unblockSelector: a = null,
|
|
ignoreClass: s = "rr-ignore",
|
|
ignoreSelector: c = null,
|
|
maskAllText: u = !1,
|
|
maskTextClass: l = "rr-mask",
|
|
unmaskTextClass: f = null,
|
|
maskTextSelector: d = null,
|
|
unmaskTextSelector: p = null,
|
|
inlineStylesheet: h = !0,
|
|
maskAllInputs: m,
|
|
maskInputOptions: g,
|
|
slimDOMOptions: y,
|
|
maskAttributeFn: v,
|
|
maskInputFn: b,
|
|
maskTextFn: _,
|
|
maxCanvasSize: S = null,
|
|
packFn: w,
|
|
sampling: O = {},
|
|
dataURLOptions: E = {},
|
|
mousemoveWait: k,
|
|
recordCanvas: T = !1,
|
|
recordCrossOriginIframes: x = !1,
|
|
recordAfter: I = ("DOMContentLoaded" === e.recordAfter ? e.recordAfter : "load"),
|
|
userTriggeredOnInput: P = !1,
|
|
collectFonts: A = !1,
|
|
inlineImages: C = !1,
|
|
plugins: j,
|
|
keepIframeSrcFn: R = () => !1,
|
|
ignoreCSSAttributes: M = new Set([]),
|
|
errorHandler: D,
|
|
onMutation: N,
|
|
getCanvasManager: L
|
|
} = e;
|
|
zm(D);
|
|
const F = !x || window.parent === window;
|
|
let B = !1;
|
|
if (!F) try {
|
|
window.parent.document && (B = !1)
|
|
} catch (e) {
|
|
B = !0
|
|
}
|
|
if (F && !t) throw new Error("emit function is required");
|
|
void 0 !== k && void 0 === O.mousemove && (O.mousemove = k), bg.reset();
|
|
const U = !0 === m ? {
|
|
color: !0,
|
|
date: !0,
|
|
"datetime-local": !0,
|
|
email: !0,
|
|
month: !0,
|
|
number: !0,
|
|
range: !0,
|
|
search: !0,
|
|
tel: !0,
|
|
text: !0,
|
|
time: !0,
|
|
url: !0,
|
|
week: !0,
|
|
textarea: !0,
|
|
select: !0,
|
|
radio: !0,
|
|
checkbox: !0
|
|
} : void 0 !== g ? g : {},
|
|
G = !0 === y || "all" === y ? {
|
|
script: !0,
|
|
comment: !0,
|
|
headFavicon: !0,
|
|
headWhitespace: !0,
|
|
headMetaSocial: !0,
|
|
headMetaRobots: !0,
|
|
headMetaHttpEquiv: !0,
|
|
headMetaVerification: !0,
|
|
headMetaAuthorship: "all" === y,
|
|
headMetaDescKeywords: "all" === y
|
|
} : y || {};
|
|
let $;
|
|
! function(e = window) {
|
|
"NodeList" in e && !e.NodeList.prototype.forEach && (e.NodeList.prototype.forEach = Array.prototype.forEach), "DOMTokenList" in e && !e.DOMTokenList.prototype.forEach && (e.DOMTokenList.prototype.forEach = Array.prototype.forEach), Node.prototype.contains || (Node.prototype.contains = (...e) => {
|
|
let t = e[0];
|
|
if (!(0 in e)) throw new TypeError("1 argument is required");
|
|
do {
|
|
if (this === t) return !0
|
|
} while (t = t && t.parentNode);
|
|
return !1
|
|
})
|
|
}();
|
|
let H = 0;
|
|
const z = e => {
|
|
for (const t of j || []) t.eventProcessor && (e = t.eventProcessor(e));
|
|
return w && !B && (e = w(e)), e
|
|
};
|
|
yg = (e, o) => {
|
|
const i = e;
|
|
if (i.timestamp = lm(), !Sp([Ym, "access", e => e[0], "optionalAccess", e => e.isFrozen, "call", e => e()]) || i.type === Pm.FullSnapshot || i.type === Pm.IncrementalSnapshot && i.data.source === Am.Mutation || Ym.forEach(e => e.unfreeze()), F) Sp([t, "optionalCall", e => e(z(i), o)]);
|
|
else if (B) {
|
|
const e = {
|
|
type: "rrweb",
|
|
event: z(i),
|
|
origin: window.location.origin,
|
|
isCheckout: o
|
|
};
|
|
window.parent.postMessage(e, "*")
|
|
}
|
|
if (i.type === Pm.FullSnapshot) $ = i, H = 0;
|
|
else if (i.type === Pm.IncrementalSnapshot) {
|
|
if (i.data.source === Am.Mutation && i.data.isAttachIframe) return;
|
|
H++;
|
|
const e = r && H >= r,
|
|
t = n && $ && i.timestamp - $.timestamp > n;
|
|
(e || t) && Z(!0)
|
|
}
|
|
};
|
|
const q = e => {
|
|
yg({
|
|
type: Pm.IncrementalSnapshot,
|
|
data: {
|
|
source: Am.Mutation,
|
|
...e
|
|
}
|
|
})
|
|
},
|
|
W = e => yg({
|
|
type: Pm.IncrementalSnapshot,
|
|
data: {
|
|
source: Am.Scroll,
|
|
...e
|
|
}
|
|
}),
|
|
V = e => yg({
|
|
type: Pm.IncrementalSnapshot,
|
|
data: {
|
|
source: Am.CanvasMutation,
|
|
...e
|
|
}
|
|
}),
|
|
Y = new mg({
|
|
mutationCb: q,
|
|
adoptedStyleSheetCb: e => yg({
|
|
type: Pm.IncrementalSnapshot,
|
|
data: {
|
|
source: Am.AdoptedStyleSheet,
|
|
...e
|
|
}
|
|
})
|
|
}),
|
|
J = "boolean" == typeof __RRWEB_EXCLUDE_IFRAME__ && __RRWEB_EXCLUDE_IFRAME__ ? new lg : new fg({
|
|
mirror: bg,
|
|
mutationCb: q,
|
|
stylesheetManager: Y,
|
|
recordCrossOriginIframes: x,
|
|
wrappedEmit: yg
|
|
});
|
|
for (const e of j || []) e.getMirror && e.getMirror({
|
|
nodeMirror: bg,
|
|
crossOriginIframeMirror: J.crossOriginIframeMirror,
|
|
crossOriginIframeStyleMirror: J.crossOriginIframeStyleMirror
|
|
});
|
|
const K = new gg,
|
|
Q = function(e, t) {
|
|
try {
|
|
return e ? e(t) : new hg
|
|
} catch (e) {
|
|
return console.warn("Unable to initialize CanvasManager"), new hg
|
|
}
|
|
}(L, {
|
|
mirror: bg,
|
|
win: window,
|
|
mutationCb: e => yg({
|
|
type: Pm.IncrementalSnapshot,
|
|
data: {
|
|
source: Am.CanvasMutation,
|
|
...e
|
|
}
|
|
}),
|
|
recordCanvas: T,
|
|
blockClass: o,
|
|
blockSelector: i,
|
|
unblockSelector: a,
|
|
maxCanvasSize: S,
|
|
sampling: O.canvas,
|
|
dataURLOptions: E,
|
|
errorHandler: D
|
|
}),
|
|
X = "boolean" == typeof __RRWEB_EXCLUDE_SHADOW_DOM__ && __RRWEB_EXCLUDE_SHADOW_DOM__ ? new dg : new pg({
|
|
mutationCb: q,
|
|
scrollCb: W,
|
|
bypassOptions: {
|
|
onMutation: N,
|
|
blockClass: o,
|
|
blockSelector: i,
|
|
unblockSelector: a,
|
|
maskAllText: u,
|
|
maskTextClass: l,
|
|
unmaskTextClass: f,
|
|
maskTextSelector: d,
|
|
unmaskTextSelector: p,
|
|
inlineStylesheet: h,
|
|
maskInputOptions: U,
|
|
dataURLOptions: E,
|
|
maskAttributeFn: v,
|
|
maskTextFn: _,
|
|
maskInputFn: b,
|
|
recordCanvas: T,
|
|
inlineImages: C,
|
|
sampling: O,
|
|
slimDOMOptions: G,
|
|
iframeManager: J,
|
|
stylesheetManager: Y,
|
|
canvasManager: Q,
|
|
keepIframeSrcFn: R,
|
|
processedNodeManager: K
|
|
},
|
|
mirror: bg
|
|
}),
|
|
Z = (e = !1) => {
|
|
yg({
|
|
type: Pm.Meta,
|
|
data: {
|
|
href: window.location.href,
|
|
width: pm(),
|
|
height: dm()
|
|
}
|
|
}, e), Y.reset(), X.init(), Ym.forEach(e => e.lock());
|
|
const t = function(e, t) {
|
|
const {
|
|
mirror: n = new Th,
|
|
blockClass: r = "rr-block",
|
|
blockSelector: o = null,
|
|
unblockSelector: i = null,
|
|
maskAllText: a = !1,
|
|
maskTextClass: s = "rr-mask",
|
|
unmaskTextClass: c = null,
|
|
maskTextSelector: u = null,
|
|
unmaskTextSelector: l = null,
|
|
inlineStylesheet: f = !0,
|
|
inlineImages: d = !1,
|
|
recordCanvas: p = !1,
|
|
maskAllInputs: h = !1,
|
|
maskAttributeFn: m,
|
|
maskTextFn: g,
|
|
maskInputFn: y,
|
|
slimDOM: v = !1,
|
|
dataURLOptions: b,
|
|
preserveWhiteSpace: _,
|
|
onSerialize: S,
|
|
onIframeLoad: w,
|
|
iframeLoadTimeout: O,
|
|
onStylesheetLoad: E,
|
|
stylesheetLoadTimeout: k,
|
|
keepIframeSrcFn: T = () => !1
|
|
} = t || {};
|
|
return nm(e, {
|
|
doc: e,
|
|
mirror: n,
|
|
blockClass: r,
|
|
blockSelector: o,
|
|
unblockSelector: i,
|
|
maskAllText: a,
|
|
maskTextClass: s,
|
|
unmaskTextClass: c,
|
|
maskTextSelector: u,
|
|
unmaskTextSelector: l,
|
|
skipChild: !1,
|
|
inlineStylesheet: f,
|
|
maskInputOptions: !0 === h ? {
|
|
color: !0,
|
|
date: !0,
|
|
"datetime-local": !0,
|
|
email: !0,
|
|
month: !0,
|
|
number: !0,
|
|
range: !0,
|
|
search: !0,
|
|
tel: !0,
|
|
text: !0,
|
|
time: !0,
|
|
url: !0,
|
|
week: !0,
|
|
textarea: !0,
|
|
select: !0
|
|
} : !1 === h ? {} : h,
|
|
maskAttributeFn: m,
|
|
maskTextFn: g,
|
|
maskInputFn: y,
|
|
slimDOMOptions: !0 === v || "all" === v ? {
|
|
script: !0,
|
|
comment: !0,
|
|
headFavicon: !0,
|
|
headWhitespace: !0,
|
|
headMetaDescKeywords: "all" === v,
|
|
headMetaSocial: !0,
|
|
headMetaRobots: !0,
|
|
headMetaHttpEquiv: !0,
|
|
headMetaAuthorship: !0,
|
|
headMetaVerification: !0
|
|
} : !1 === v ? {} : v,
|
|
dataURLOptions: b,
|
|
inlineImages: d,
|
|
recordCanvas: p,
|
|
preserveWhiteSpace: _,
|
|
onSerialize: S,
|
|
onIframeLoad: w,
|
|
iframeLoadTimeout: O,
|
|
onStylesheetLoad: E,
|
|
stylesheetLoadTimeout: k,
|
|
keepIframeSrcFn: T,
|
|
newlyAddedElement: !1
|
|
})
|
|
}(document, {
|
|
mirror: bg,
|
|
blockClass: o,
|
|
blockSelector: i,
|
|
unblockSelector: a,
|
|
maskAllText: u,
|
|
maskTextClass: l,
|
|
unmaskTextClass: f,
|
|
maskTextSelector: d,
|
|
unmaskTextSelector: p,
|
|
inlineStylesheet: h,
|
|
maskAllInputs: U,
|
|
maskAttributeFn: v,
|
|
maskInputFn: b,
|
|
maskTextFn: _,
|
|
slimDOM: G,
|
|
dataURLOptions: E,
|
|
recordCanvas: T,
|
|
inlineImages: C,
|
|
onSerialize: e => {
|
|
bm(e, bg) && J.addIframe(e), _m(e, bg) && Y.trackLinkElement(e), Sm(e) && X.addShadowRoot(e.shadowRoot, document)
|
|
},
|
|
onIframeLoad: (e, t) => {
|
|
J.attachIframe(e, t), X.observeAttachShadow(e)
|
|
},
|
|
onStylesheetLoad: (e, t) => {
|
|
Y.attachLinkElement(e, t)
|
|
},
|
|
keepIframeSrcFn: R
|
|
});
|
|
if (!t) return console.warn("Failed to snapshot the document");
|
|
yg({
|
|
type: Pm.FullSnapshot,
|
|
data: {
|
|
node: t,
|
|
initialOffset: fm(window)
|
|
}
|
|
}), Ym.forEach(e => e.unlock()), document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0 && Y.adoptStyleSheets(document.adoptedStyleSheets, bg.getId(document))
|
|
};
|
|
vg = Z;
|
|
try {
|
|
const e = [],
|
|
t = e => Wm(ig)({
|
|
onMutation: N,
|
|
mutationCb: q,
|
|
mousemoveCb: (e, t) => yg({
|
|
type: Pm.IncrementalSnapshot,
|
|
data: {
|
|
source: t,
|
|
positions: e
|
|
}
|
|
}),
|
|
mouseInteractionCb: e => yg({
|
|
type: Pm.IncrementalSnapshot,
|
|
data: {
|
|
source: Am.MouseInteraction,
|
|
...e
|
|
}
|
|
}),
|
|
scrollCb: W,
|
|
viewportResizeCb: e => yg({
|
|
type: Pm.IncrementalSnapshot,
|
|
data: {
|
|
source: Am.ViewportResize,
|
|
...e
|
|
}
|
|
}),
|
|
inputCb: e => yg({
|
|
type: Pm.IncrementalSnapshot,
|
|
data: {
|
|
source: Am.Input,
|
|
...e
|
|
}
|
|
}),
|
|
mediaInteractionCb: e => yg({
|
|
type: Pm.IncrementalSnapshot,
|
|
data: {
|
|
source: Am.MediaInteraction,
|
|
...e
|
|
}
|
|
}),
|
|
styleSheetRuleCb: e => yg({
|
|
type: Pm.IncrementalSnapshot,
|
|
data: {
|
|
source: Am.StyleSheetRule,
|
|
...e
|
|
}
|
|
}),
|
|
styleDeclarationCb: e => yg({
|
|
type: Pm.IncrementalSnapshot,
|
|
data: {
|
|
source: Am.StyleDeclaration,
|
|
...e
|
|
}
|
|
}),
|
|
canvasMutationCb: V,
|
|
fontCb: e => yg({
|
|
type: Pm.IncrementalSnapshot,
|
|
data: {
|
|
source: Am.Font,
|
|
...e
|
|
}
|
|
}),
|
|
selectionCb: e => {
|
|
yg({
|
|
type: Pm.IncrementalSnapshot,
|
|
data: {
|
|
source: Am.Selection,
|
|
...e
|
|
}
|
|
})
|
|
},
|
|
customElementCb: e => {
|
|
yg({
|
|
type: Pm.IncrementalSnapshot,
|
|
data: {
|
|
source: Am.CustomElement,
|
|
...e
|
|
}
|
|
})
|
|
},
|
|
blockClass: o,
|
|
ignoreClass: s,
|
|
ignoreSelector: c,
|
|
maskAllText: u,
|
|
maskTextClass: l,
|
|
unmaskTextClass: f,
|
|
maskTextSelector: d,
|
|
unmaskTextSelector: p,
|
|
maskInputOptions: U,
|
|
inlineStylesheet: h,
|
|
sampling: O,
|
|
recordCanvas: T,
|
|
inlineImages: C,
|
|
userTriggeredOnInput: P,
|
|
collectFonts: A,
|
|
doc: e,
|
|
maskAttributeFn: v,
|
|
maskInputFn: b,
|
|
maskTextFn: _,
|
|
keepIframeSrcFn: R,
|
|
blockSelector: i,
|
|
unblockSelector: a,
|
|
slimDOMOptions: G,
|
|
dataURLOptions: E,
|
|
mirror: bg,
|
|
iframeManager: J,
|
|
stylesheetManager: Y,
|
|
shadowDomManager: X,
|
|
processedNodeManager: K,
|
|
canvasManager: Q,
|
|
ignoreCSSAttributes: M,
|
|
plugins: Sp([j, "optionalAccess", e => e.filter, "call", e => e(e => e.observer), "optionalAccess", e => e.map, "call", e => e(e => ({
|
|
observer: e.observer,
|
|
options: e.options,
|
|
callback: t => yg({
|
|
type: Pm.Plugin,
|
|
data: {
|
|
plugin: e.name,
|
|
payload: t
|
|
}
|
|
})
|
|
}))]) || []
|
|
}, {});
|
|
J.addLoadListener(n => {
|
|
try {
|
|
e.push(t(n.contentDocument))
|
|
} catch (e) {
|
|
console.warn(e)
|
|
}
|
|
});
|
|
const n = () => {
|
|
Z(), e.push(t(document))
|
|
};
|
|
return "interactive" === document.readyState || "complete" === document.readyState ? n() : (e.push(om("DOMContentLoaded", () => {
|
|
yg({
|
|
type: Pm.DomContentLoaded,
|
|
data: {}
|
|
}), "DOMContentLoaded" === I && n()
|
|
})), e.push(om("load", () => {
|
|
yg({
|
|
type: Pm.Load,
|
|
data: {}
|
|
}), "load" === I && n()
|
|
}, window))), () => {
|
|
e.forEach(e => e()), K.destroy(), vg = void 0, qm()
|
|
}
|
|
} catch (e) {
|
|
console.warn(e)
|
|
}
|
|
}
|
|
_g.mirror = bg, _g.takeFullSnapshot = function(e) {
|
|
if (!vg) throw new Error("please take full snapshot after start recording");
|
|
vg(e)
|
|
};
|
|
|
|
function Sg(e) {
|
|
return e > 9999999999 ? e : 1e3 * e
|
|
}
|
|
|
|
function wg(e) {
|
|
return e > 9999999999 ? e / 1e3 : e
|
|
}
|
|
|
|
function Og(e, t) {
|
|
"sentry.transaction" !== t.category && (["ui.click", "ui.input"].includes(t.category) ? e.triggerUserActivity() : e.checkAndHandleExpiredSession(), e.addUpdate(() => (e.throttledAddEvent({
|
|
type: Pm.Custom,
|
|
timestamp: 1e3 * (t.timestamp || 0),
|
|
data: {
|
|
tag: "breadcrumb",
|
|
payload: mc(t, 10, 1e3)
|
|
}
|
|
}), "console" === t.category)))
|
|
}
|
|
|
|
function Eg(e) {
|
|
return e.closest("button,a") || e
|
|
}
|
|
|
|
function kg(e) {
|
|
const t = Tg(e);
|
|
return t && t instanceof Element ? Eg(t) : t
|
|
}
|
|
|
|
function Tg(e) {
|
|
return function(e) {
|
|
return "object" == typeof e && !!e && "target" in e
|
|
}(e) ? e.target : e
|
|
}
|
|
let xg;
|
|
|
|
function Ig(e) {
|
|
return xg || (xg = [], za(ph, "open", function(e) {
|
|
return function(...t) {
|
|
if (xg) try {
|
|
xg.forEach(e => e())
|
|
} catch (e) {}
|
|
return e.apply(ph, t)
|
|
}
|
|
})), xg.push(e), () => {
|
|
const t = xg ? xg.indexOf(e) : -1;
|
|
t > -1 && xg.splice(t, 1)
|
|
}
|
|
}
|
|
class Pg {
|
|
constructor(e, t, n = Og) {
|
|
this._lastMutation = 0, this._lastScroll = 0, this._clicks = [], this._timeout = t.timeout / 1e3, this._threshold = t.threshold / 1e3, this._scollTimeout = t.scrollTimeout / 1e3, this._replay = e, this._ignoreSelector = t.ignoreSelector, this._addBreadcrumbEvent = n
|
|
}
|
|
addListeners() {
|
|
const e = Ig(() => {
|
|
this._lastMutation = Cg()
|
|
});
|
|
this._teardown = () => {
|
|
e(), this._clicks = [], this._lastMutation = 0, this._lastScroll = 0
|
|
}
|
|
}
|
|
removeListeners() {
|
|
this._teardown && this._teardown(), this._checkClickTimeout && clearTimeout(this._checkClickTimeout)
|
|
}
|
|
handleClick(e, t) {
|
|
if (function(e, t) {
|
|
if (!Ag.includes(e.tagName)) return !0;
|
|
if ("INPUT" === e.tagName && !["submit", "button"].includes(e.getAttribute("type") || "")) return !0;
|
|
if ("A" === e.tagName && (e.hasAttribute("download") || e.hasAttribute("target") && "_self" !== e.getAttribute("target"))) return !0;
|
|
if (t && e.matches(t)) return !0;
|
|
return !1
|
|
}(t, this._ignoreSelector) || ! function(e) {
|
|
return !(!e.data || "number" != typeof e.data.nodeId || !e.timestamp)
|
|
}(e)) return;
|
|
const n = {
|
|
timestamp: wg(e.timestamp),
|
|
clickBreadcrumb: e,
|
|
clickCount: 0,
|
|
node: t
|
|
};
|
|
this._clicks.some(e => e.node === n.node && Math.abs(e.timestamp - n.timestamp) < 1) || (this._clicks.push(n), 1 === this._clicks.length && this._scheduleCheckClicks())
|
|
}
|
|
registerMutation(e = Date.now()) {
|
|
this._lastMutation = wg(e)
|
|
}
|
|
registerScroll(e = Date.now()) {
|
|
this._lastScroll = wg(e)
|
|
}
|
|
registerClick(e) {
|
|
const t = Eg(e);
|
|
this._handleMultiClick(t)
|
|
}
|
|
_handleMultiClick(e) {
|
|
this._getClicks(e).forEach(e => {
|
|
e.clickCount++
|
|
})
|
|
}
|
|
_getClicks(e) {
|
|
return this._clicks.filter(t => t.node === e)
|
|
}
|
|
_checkClicks() {
|
|
const e = [],
|
|
t = Cg();
|
|
this._clicks.forEach(n => {
|
|
!n.mutationAfter && this._lastMutation && (n.mutationAfter = n.timestamp <= this._lastMutation ? this._lastMutation - n.timestamp : void 0), !n.scrollAfter && this._lastScroll && (n.scrollAfter = n.timestamp <= this._lastScroll ? this._lastScroll - n.timestamp : void 0), n.timestamp + this._timeout <= t && e.push(n)
|
|
});
|
|
for (const t of e) {
|
|
const e = this._clicks.indexOf(t);
|
|
e > -1 && (this._generateBreadcrumbs(t), this._clicks.splice(e, 1))
|
|
}
|
|
this._clicks.length && this._scheduleCheckClicks()
|
|
}
|
|
_generateBreadcrumbs(e) {
|
|
const t = this._replay,
|
|
n = e.scrollAfter && e.scrollAfter <= this._scollTimeout,
|
|
r = e.mutationAfter && e.mutationAfter <= this._threshold,
|
|
o = !n && !r,
|
|
{
|
|
clickCount: i,
|
|
clickBreadcrumb: a
|
|
} = e;
|
|
if (o) {
|
|
const n = 1e3 * Math.min(e.mutationAfter || this._timeout, this._timeout),
|
|
r = n < 1e3 * this._timeout ? "mutation" : "timeout",
|
|
o = {
|
|
type: "default",
|
|
message: a.message,
|
|
timestamp: a.timestamp,
|
|
category: "ui.slowClickDetected",
|
|
data: {
|
|
...a.data,
|
|
url: ph.location.href,
|
|
route: t.getCurrentRoute(),
|
|
timeAfterClickMs: n,
|
|
endReason: r,
|
|
clickCount: i || 1
|
|
}
|
|
};
|
|
return void this._addBreadcrumbEvent(t, o)
|
|
}
|
|
if (i > 1) {
|
|
const e = {
|
|
type: "default",
|
|
message: a.message,
|
|
timestamp: a.timestamp,
|
|
category: "ui.multiClick",
|
|
data: {
|
|
...a.data,
|
|
url: ph.location.href,
|
|
route: t.getCurrentRoute(),
|
|
clickCount: i,
|
|
metric: !0
|
|
}
|
|
};
|
|
this._addBreadcrumbEvent(t, e)
|
|
}
|
|
}
|
|
_scheduleCheckClicks() {
|
|
this._checkClickTimeout && clearTimeout(this._checkClickTimeout), this._checkClickTimeout = setTimeout(() => this._checkClicks(), 1e3)
|
|
}
|
|
}
|
|
const Ag = ["A", "BUTTON", "INPUT"];
|
|
|
|
function Cg() {
|
|
return Date.now() / 1e3
|
|
}
|
|
|
|
function jg(e, t) {
|
|
try {
|
|
if (! function(e) {
|
|
return 3 === e.type
|
|
}(t)) return;
|
|
const {
|
|
source: n
|
|
} = t.data;
|
|
if (n === Am.Mutation && e.registerMutation(t.timestamp), n === Am.Scroll && e.registerScroll(t.timestamp), function(e) {
|
|
return e.data.source === Am.MouseInteraction
|
|
}(t)) {
|
|
const {
|
|
type: n,
|
|
id: r
|
|
} = t.data, o = _g.mirror.getNode(r);
|
|
o instanceof HTMLElement && n === Cm.Click && e.registerClick(o)
|
|
}
|
|
} catch (e) {}
|
|
}
|
|
|
|
function Rg(e) {
|
|
return {
|
|
timestamp: Date.now() / 1e3,
|
|
type: "default",
|
|
...e
|
|
}
|
|
}
|
|
var Mg;
|
|
! function(e) {
|
|
e[e.Document = 0] = "Document", e[e.DocumentType = 1] = "DocumentType", e[e.Element = 2] = "Element", e[e.Text = 3] = "Text", e[e.CDATA = 4] = "CDATA", e[e.Comment = 5] = "Comment"
|
|
}(Mg || (Mg = {}));
|
|
const Dg = new Set(["id", "class", "aria-label", "role", "name", "alt", "title", "data-test-id", "data-testid", "disabled", "aria-disabled", "data-sentry-component"]);
|
|
|
|
function Ng(e) {
|
|
const t = {};
|
|
for (const n in e)
|
|
if (Dg.has(n)) {
|
|
let r = n;
|
|
"data-testid" !== n && "data-test-id" !== n || (r = "testId"), t[r] = e[n]
|
|
} return t
|
|
}
|
|
const Lg = e => t => {
|
|
if (!e.isEnabled()) return;
|
|
const n = function(e) {
|
|
const {
|
|
target: t,
|
|
message: n
|
|
} = function(e) {
|
|
const t = "click" === e.name;
|
|
let n, r = null;
|
|
try {
|
|
r = t ? kg(e.event) : Tg(e.event), n = Pa(r, {
|
|
maxStringLength: 200
|
|
}) || "<unknown>"
|
|
} catch (e) {
|
|
n = "<unknown>"
|
|
}
|
|
return {
|
|
target: r,
|
|
message: n
|
|
}
|
|
}(e);
|
|
return Rg({
|
|
category: `ui.${e.name}`,
|
|
...Fg(t, n)
|
|
})
|
|
}(t);
|
|
if (!n) return;
|
|
const r = "click" === t.name,
|
|
o = r ? t.event : void 0;
|
|
!(r && e.clickDetector && o && o.target) || o.altKey || o.metaKey || o.ctrlKey || o.shiftKey || function(e, t, n) {
|
|
e.handleClick(t, n)
|
|
}(e.clickDetector, n, kg(t.event)), Og(e, n)
|
|
};
|
|
|
|
function Fg(e, t) {
|
|
const n = _g.mirror.getId(e),
|
|
r = n && _g.mirror.getNode(n),
|
|
o = r && _g.mirror.getMeta(r),
|
|
i = o && function(e) {
|
|
return e.type === Mg.Element
|
|
}(o) ? o : null;
|
|
return {
|
|
message: t,
|
|
data: i ? {
|
|
nodeId: n,
|
|
node: {
|
|
id: n,
|
|
tagName: i.tagName,
|
|
textContent: Array.from(i.childNodes).map(e => e.type === Mg.Text && e.textContent).filter(Boolean).map(e => e.trim()).join(""),
|
|
attributes: Ng(i.attributes)
|
|
}
|
|
} : {}
|
|
}
|
|
}
|
|
|
|
function Bg(e, t) {
|
|
if (!e.isEnabled()) return;
|
|
e.updateUserActivity();
|
|
const n = function(e) {
|
|
const {
|
|
metaKey: t,
|
|
shiftKey: n,
|
|
ctrlKey: r,
|
|
altKey: o,
|
|
key: i,
|
|
target: a
|
|
} = e;
|
|
if (!a || function(e) {
|
|
return "INPUT" === e.tagName || "TEXTAREA" === e.tagName || e.isContentEditable
|
|
}(a) || !i) return null;
|
|
const s = t || r || o,
|
|
c = 1 === i.length;
|
|
if (!s && c) return null;
|
|
const u = Pa(a, {
|
|
maxStringLength: 200
|
|
}) || "<unknown>",
|
|
l = Fg(a, u);
|
|
return Rg({
|
|
category: "ui.keyDown",
|
|
message: u,
|
|
data: {
|
|
...l.data,
|
|
metaKey: t,
|
|
shiftKey: n,
|
|
ctrlKey: r,
|
|
altKey: o,
|
|
key: i
|
|
}
|
|
})
|
|
}(t);
|
|
n && Og(e, n)
|
|
}
|
|
const Ug = {
|
|
resource: function(e) {
|
|
const {
|
|
entryType: t,
|
|
initiatorType: n,
|
|
name: r,
|
|
responseEnd: o,
|
|
startTime: i,
|
|
decodedBodySize: a,
|
|
encodedBodySize: s,
|
|
responseStatus: c,
|
|
transferSize: u
|
|
} = e;
|
|
if (["fetch", "xmlhttprequest"].includes(n)) return null;
|
|
return {
|
|
type: `${t}.${n}`,
|
|
start: $g(i),
|
|
end: $g(o),
|
|
name: r,
|
|
data: {
|
|
size: u,
|
|
statusCode: c,
|
|
decodedBodySize: a,
|
|
encodedBodySize: s
|
|
}
|
|
}
|
|
},
|
|
paint: function(e) {
|
|
const {
|
|
duration: t,
|
|
entryType: n,
|
|
name: r,
|
|
startTime: o
|
|
} = e, i = $g(o);
|
|
return {
|
|
type: n,
|
|
name: r,
|
|
start: i,
|
|
end: i + t,
|
|
data: void 0
|
|
}
|
|
},
|
|
navigation: function(e) {
|
|
const {
|
|
entryType: t,
|
|
name: n,
|
|
decodedBodySize: r,
|
|
duration: o,
|
|
domComplete: i,
|
|
encodedBodySize: a,
|
|
domContentLoadedEventStart: s,
|
|
domContentLoadedEventEnd: c,
|
|
domInteractive: u,
|
|
loadEventStart: l,
|
|
loadEventEnd: f,
|
|
redirectCount: d,
|
|
startTime: p,
|
|
transferSize: h,
|
|
type: m
|
|
} = e;
|
|
if (0 === o) return null;
|
|
return {
|
|
type: `${t}.${m}`,
|
|
start: $g(p),
|
|
end: $g(i),
|
|
name: n,
|
|
data: {
|
|
size: h,
|
|
decodedBodySize: r,
|
|
encodedBodySize: a,
|
|
duration: o,
|
|
domInteractive: u,
|
|
domContentLoadedEventStart: s,
|
|
domContentLoadedEventEnd: c,
|
|
loadEventStart: l,
|
|
loadEventEnd: f,
|
|
domComplete: i,
|
|
redirectCount: d
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
function Gg(e) {
|
|
return Ug[e.entryType] ? Ug[e.entryType](e) : null
|
|
}
|
|
|
|
function $g(e) {
|
|
return ((ds || ph.performance.timeOrigin) + e) / 1e3
|
|
}
|
|
|
|
function Hg(e) {
|
|
function t(t) {
|
|
e.performanceEntries.includes(t) || e.performanceEntries.push(t)
|
|
}
|
|
|
|
function n({
|
|
entries: e
|
|
}) {
|
|
e.forEach(t)
|
|
}
|
|
const r = [];
|
|
return ["navigation", "paint", "resource"].forEach(e => {
|
|
r.push(rh(e, n))
|
|
}), r.push(nh(({
|
|
metric: t
|
|
}) => {
|
|
e.replayPerformanceEntries.push(function(e) {
|
|
const t = e.entries,
|
|
n = t[t.length - 1],
|
|
r = n ? n.element : void 0,
|
|
o = e.value,
|
|
i = $g(o);
|
|
return {
|
|
type: "largest-contentful-paint",
|
|
name: "largest-contentful-paint",
|
|
start: i,
|
|
end: i,
|
|
data: {
|
|
value: o,
|
|
size: o,
|
|
nodeId: r ? _g.mirror.getId(r) : void 0
|
|
}
|
|
}
|
|
}(t))
|
|
})), () => {
|
|
r.forEach(e => e())
|
|
}
|
|
}
|
|
const zg = "undefined" == typeof __SENTRY_DEBUG__ || __SENTRY_DEBUG__;
|
|
|
|
function qg(e, t) {
|
|
zg && (Fa.info(e), t && Vg(e))
|
|
}
|
|
|
|
function Wg(e, t) {
|
|
zg && (Fa.info(e), t && setTimeout(() => {
|
|
Vg(e)
|
|
}, 0))
|
|
}
|
|
|
|
function Vg(e) {
|
|
Tc({
|
|
category: "console",
|
|
data: {
|
|
logger: "replay"
|
|
},
|
|
level: "info",
|
|
message: e
|
|
}, {
|
|
level: "info"
|
|
})
|
|
}
|
|
class Yg extends Error {
|
|
constructor() {
|
|
super("Event buffer exceeded maximum size of 20000000.")
|
|
}
|
|
}
|
|
class Jg {
|
|
constructor() {
|
|
this.events = [], this._totalSize = 0, this.hasCheckout = !1
|
|
}
|
|
get hasEvents() {
|
|
return this.events.length > 0
|
|
}
|
|
get type() {
|
|
return "sync"
|
|
}
|
|
destroy() {
|
|
this.events = []
|
|
}
|
|
async addEvent(e) {
|
|
const t = JSON.stringify(e).length;
|
|
if (this._totalSize += t, this._totalSize > vh) throw new Yg;
|
|
this.events.push(e)
|
|
}
|
|
finish() {
|
|
return new Promise(e => {
|
|
const t = this.events;
|
|
this.clear(), e(JSON.stringify(t))
|
|
})
|
|
}
|
|
clear() {
|
|
this.events = [], this._totalSize = 0, this.hasCheckout = !1
|
|
}
|
|
getEarliestTimestamp() {
|
|
const e = this.events.map(e => e.timestamp).sort()[0];
|
|
return e ? Sg(e) : null
|
|
}
|
|
}
|
|
class Kg {
|
|
constructor(e) {
|
|
this._worker = e, this._id = 0
|
|
}
|
|
ensureReady() {
|
|
return this._ensureReadyPromise || (this._ensureReadyPromise = new Promise((e, t) => {
|
|
this._worker.addEventListener("message", ({
|
|
data: n
|
|
}) => {
|
|
n.success ? e() : t()
|
|
}, {
|
|
once: !0
|
|
}), this._worker.addEventListener("error", e => {
|
|
t(e)
|
|
}, {
|
|
once: !0
|
|
})
|
|
})), this._ensureReadyPromise
|
|
}
|
|
destroy() {
|
|
qg("[Replay] Destroying compression worker"), this._worker.terminate()
|
|
}
|
|
postMessage(e, t) {
|
|
const n = this._getAndIncrementId();
|
|
return new Promise((r, o) => {
|
|
const i = ({
|
|
data: t
|
|
}) => {
|
|
const a = t;
|
|
if (a.method === e && a.id === n) {
|
|
if (this._worker.removeEventListener("message", i), !a.success) return zg && Fa.error("[Replay]", a.response), void o(new Error("Error in compression worker"));
|
|
r(a.response)
|
|
}
|
|
};
|
|
this._worker.addEventListener("message", i), this._worker.postMessage({
|
|
id: n,
|
|
method: e,
|
|
arg: t
|
|
})
|
|
})
|
|
}
|
|
_getAndIncrementId() {
|
|
return this._id++
|
|
}
|
|
}
|
|
class Qg {
|
|
constructor(e) {
|
|
this._worker = new Kg(e), this._earliestTimestamp = null, this._totalSize = 0, this.hasCheckout = !1
|
|
}
|
|
get hasEvents() {
|
|
return !!this._earliestTimestamp
|
|
}
|
|
get type() {
|
|
return "worker"
|
|
}
|
|
ensureReady() {
|
|
return this._worker.ensureReady()
|
|
}
|
|
destroy() {
|
|
this._worker.destroy()
|
|
}
|
|
addEvent(e) {
|
|
const t = Sg(e.timestamp);
|
|
(!this._earliestTimestamp || t < this._earliestTimestamp) && (this._earliestTimestamp = t);
|
|
const n = JSON.stringify(e);
|
|
return this._totalSize += n.length, this._totalSize > vh ? Promise.reject(new Yg) : this._sendEventToWorker(n)
|
|
}
|
|
finish() {
|
|
return this._finishRequest()
|
|
}
|
|
clear() {
|
|
this._earliestTimestamp = null, this._totalSize = 0, this.hasCheckout = !1, this._worker.postMessage("clear").then(null, e => {
|
|
zg && Fa.warn('[Replay] Sending "clear" message to worker failed', e)
|
|
})
|
|
}
|
|
getEarliestTimestamp() {
|
|
return this._earliestTimestamp
|
|
}
|
|
_sendEventToWorker(e) {
|
|
return this._worker.postMessage("addEvent", e)
|
|
}
|
|
async _finishRequest() {
|
|
const e = await this._worker.postMessage("finish");
|
|
return this._earliestTimestamp = null, this._totalSize = 0, e
|
|
}
|
|
}
|
|
class Xg {
|
|
constructor(e) {
|
|
this._fallback = new Jg, this._compression = new Qg(e), this._used = this._fallback, this._ensureWorkerIsLoadedPromise = this._ensureWorkerIsLoaded()
|
|
}
|
|
get type() {
|
|
return this._used.type
|
|
}
|
|
get hasEvents() {
|
|
return this._used.hasEvents
|
|
}
|
|
get hasCheckout() {
|
|
return this._used.hasCheckout
|
|
}
|
|
set hasCheckout(e) {
|
|
this._used.hasCheckout = e
|
|
}
|
|
destroy() {
|
|
this._fallback.destroy(), this._compression.destroy()
|
|
}
|
|
clear() {
|
|
return this._used.clear()
|
|
}
|
|
getEarliestTimestamp() {
|
|
return this._used.getEarliestTimestamp()
|
|
}
|
|
addEvent(e) {
|
|
return this._used.addEvent(e)
|
|
}
|
|
async finish() {
|
|
return await this.ensureWorkerIsLoaded(), this._used.finish()
|
|
}
|
|
ensureWorkerIsLoaded() {
|
|
return this._ensureWorkerIsLoadedPromise
|
|
}
|
|
async _ensureWorkerIsLoaded() {
|
|
try {
|
|
await this._compression.ensureReady()
|
|
} catch (e) {
|
|
return void qg("[Replay] Failed to load the compression worker, falling back to simple buffer")
|
|
}
|
|
await this._switchToCompressionWorker()
|
|
}
|
|
async _switchToCompressionWorker() {
|
|
const {
|
|
events: e,
|
|
hasCheckout: t
|
|
} = this._fallback, n = [];
|
|
for (const t of e) n.push(this._compression.addEvent(t));
|
|
this._compression.hasCheckout = t, this._used = this._compression;
|
|
try {
|
|
await Promise.all(n)
|
|
} catch (e) {
|
|
zg && Fa.warn("[Replay] Failed to add events when switching buffers.", e)
|
|
}
|
|
}
|
|
}
|
|
|
|
function Zg({
|
|
useCompression: e,
|
|
workerUrl: t
|
|
}) {
|
|
if (e && window.Worker) {
|
|
const e = function(e) {
|
|
try {
|
|
const t = e || function() {
|
|
if ("undefined" == typeof __SENTRY_EXCLUDE_REPLAY_WORKER__ || !__SENTRY_EXCLUDE_REPLAY_WORKER__) return function() {
|
|
const e = new Blob(['var t=Uint8Array,n=Uint16Array,r=Int32Array,e=new t([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),i=new t([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),a=new t([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),s=function(t,e){for(var i=new n(31),a=0;a<31;++a)i[a]=e+=1<<t[a-1];var s=new r(i[30]);for(a=1;a<30;++a)for(var o=i[a];o<i[a+1];++o)s[o]=o-i[a]<<5|a;return{b:i,r:s}},o=s(e,2),f=o.b,h=o.r;f[28]=258,h[258]=28;for(var l=s(i,0).r,u=new n(32768),c=0;c<32768;++c){var v=(43690&c)>>1|(21845&c)<<1;v=(61680&(v=(52428&v)>>2|(13107&v)<<2))>>4|(3855&v)<<4,u[c]=((65280&v)>>8|(255&v)<<8)>>1}var d=function(t,r,e){for(var i=t.length,a=0,s=new n(r);a<i;++a)t[a]&&++s[t[a]-1];var o,f=new n(r);for(a=1;a<r;++a)f[a]=f[a-1]+s[a-1]<<1;if(e){o=new n(1<<r);var h=15-r;for(a=0;a<i;++a)if(t[a])for(var l=a<<4|t[a],c=r-t[a],v=f[t[a]-1]++<<c,d=v|(1<<c)-1;v<=d;++v)o[u[v]>>h]=l}else for(o=new n(i),a=0;a<i;++a)t[a]&&(o[a]=u[f[t[a]-1]++]>>15-t[a]);return o},g=new t(288);for(c=0;c<144;++c)g[c]=8;for(c=144;c<256;++c)g[c]=9;for(c=256;c<280;++c)g[c]=7;for(c=280;c<288;++c)g[c]=8;var w=new t(32);for(c=0;c<32;++c)w[c]=5;var p=d(g,9,0),y=d(w,5,0),m=function(t){return(t+7)/8|0},b=function(n,r,e){return(null==r||r<0)&&(r=0),(null==e||e>n.length)&&(e=n.length),new t(n.subarray(r,e))},M=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],E=function(t,n,r){var e=new Error(n||M[t]);if(e.code=t,Error.captureStackTrace&&Error.captureStackTrace(e,E),!r)throw e;return e},z=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8},A=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8,t[e+2]|=r>>16},_=function(r,e){for(var i=[],a=0;a<r.length;++a)r[a]&&i.push({s:a,f:r[a]});var s=i.length,o=i.slice();if(!s)return{t:F,l:0};if(1==s){var f=new t(i[0].s+1);return f[i[0].s]=1,{t:f,l:1}}i.sort((function(t,n){return t.f-n.f})),i.push({s:-1,f:25001});var h=i[0],l=i[1],u=0,c=1,v=2;for(i[0]={s:-1,f:h.f+l.f,l:h,r:l};c!=s-1;)h=i[i[u].f<i[v].f?u++:v++],l=i[u!=c&&i[u].f<i[v].f?u++:v++],i[c++]={s:-1,f:h.f+l.f,l:h,r:l};var d=o[0].s;for(a=1;a<s;++a)o[a].s>d&&(d=o[a].s);var g=new n(d+1),w=x(i[c-1],g,0);if(w>e){a=0;var p=0,y=w-e,m=1<<y;for(o.sort((function(t,n){return g[n.s]-g[t.s]||t.f-n.f}));a<s;++a){var b=o[a].s;if(!(g[b]>e))break;p+=m-(1<<w-g[b]),g[b]=e}for(p>>=y;p>0;){var M=o[a].s;g[M]<e?p-=1<<e-g[M]++-1:++a}for(;a>=0&&p;--a){var E=o[a].s;g[E]==e&&(--g[E],++p)}w=e}return{t:new t(g),l:w}},x=function(t,n,r){return-1==t.s?Math.max(x(t.l,n,r+1),x(t.r,n,r+1)):n[t.s]=r},D=function(t){for(var r=t.length;r&&!t[--r];);for(var e=new n(++r),i=0,a=t[0],s=1,o=function(t){e[i++]=t},f=1;f<=r;++f)if(t[f]==a&&f!=r)++s;else{if(!a&&s>2){for(;s>138;s-=138)o(32754);s>2&&(o(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(o(a),--s;s>6;s-=6)o(8304);s>2&&(o(s-3<<5|8208),s=0)}for(;s--;)o(a);s=1,a=t[f]}return{c:e.subarray(0,i),n:r}},T=function(t,n){for(var r=0,e=0;e<n.length;++e)r+=t[e]*n[e];return r},k=function(t,n,r){var e=r.length,i=m(n+2);t[i]=255&e,t[i+1]=e>>8,t[i+2]=255^t[i],t[i+3]=255^t[i+1];for(var a=0;a<e;++a)t[i+a+4]=r[a];return 8*(i+4+e)},C=function(t,r,s,o,f,h,l,u,c,v,m){z(r,m++,s),++f[256];for(var b=_(f,15),M=b.t,E=b.l,x=_(h,15),C=x.t,U=x.l,F=D(M),I=F.c,S=F.n,L=D(C),O=L.c,j=L.n,q=new n(19),B=0;B<I.length;++B)++q[31&I[B]];for(B=0;B<O.length;++B)++q[31&O[B]];for(var G=_(q,7),H=G.t,J=G.l,K=19;K>4&&!H[a[K-1]];--K);var N,P,Q,R,V=v+5<<3,W=T(f,g)+T(h,w)+l,X=T(f,M)+T(h,C)+l+14+3*K+T(q,H)+2*q[16]+3*q[17]+7*q[18];if(c>=0&&V<=W&&V<=X)return k(r,m,t.subarray(c,c+v));if(z(r,m,1+(X<W)),m+=2,X<W){N=d(M,E,0),P=M,Q=d(C,U,0),R=C;var Y=d(H,J,0);z(r,m,S-257),z(r,m+5,j-1),z(r,m+10,K-4),m+=14;for(B=0;B<K;++B)z(r,m+3*B,H[a[B]]);m+=3*K;for(var Z=[I,O],$=0;$<2;++$){var tt=Z[$];for(B=0;B<tt.length;++B){var nt=31&tt[B];z(r,m,Y[nt]),m+=H[nt],nt>15&&(z(r,m,tt[B]>>5&127),m+=tt[B]>>12)}}}else N=p,P=g,Q=y,R=w;for(B=0;B<u;++B){var rt=o[B];if(rt>255){A(r,m,N[(nt=rt>>18&31)+257]),m+=P[nt+257],nt>7&&(z(r,m,rt>>23&31),m+=e[nt]);var et=31&rt;A(r,m,Q[et]),m+=R[et],et>3&&(A(r,m,rt>>5&8191),m+=i[et])}else A(r,m,N[rt]),m+=P[rt]}return A(r,m,N[256]),m+P[256]},U=new r([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),F=new t(0),I=function(){for(var t=new Int32Array(256),n=0;n<256;++n){for(var r=n,e=9;--e;)r=(1&r&&-306674912)^r>>>1;t[n]=r}return t}(),S=function(){var t=1,n=0;return{p:function(r){for(var e=t,i=n,a=0|r.length,s=0;s!=a;){for(var o=Math.min(s+2655,a);s<o;++s)i+=e+=r[s];e=(65535&e)+15*(e>>16),i=(65535&i)+15*(i>>16)}t=e,n=i},d:function(){return(255&(t%=65521))<<24|(65280&t)<<8|(255&(n%=65521))<<8|n>>8}}},L=function(a,s,o,f,u){if(!u&&(u={l:1},s.dictionary)){var c=s.dictionary.subarray(-32768),v=new t(c.length+a.length);v.set(c),v.set(a,c.length),a=v,u.w=c.length}return function(a,s,o,f,u,c){var v=c.z||a.length,d=new t(f+v+5*(1+Math.ceil(v/7e3))+u),g=d.subarray(f,d.length-u),w=c.l,p=7&(c.r||0);if(s){p&&(g[0]=c.r>>3);for(var y=U[s-1],M=y>>13,E=8191&y,z=(1<<o)-1,A=c.p||new n(32768),_=c.h||new n(z+1),x=Math.ceil(o/3),D=2*x,T=function(t){return(a[t]^a[t+1]<<x^a[t+2]<<D)&z},F=new r(25e3),I=new n(288),S=new n(32),L=0,O=0,j=c.i||0,q=0,B=c.w||0,G=0;j+2<v;++j){var H=T(j),J=32767&j,K=_[H];if(A[J]=K,_[H]=J,B<=j){var N=v-j;if((L>7e3||q>24576)&&(N>423||!w)){p=C(a,g,0,F,I,S,O,q,G,j-G,p),q=L=O=0,G=j;for(var P=0;P<286;++P)I[P]=0;for(P=0;P<30;++P)S[P]=0}var Q=2,R=0,V=E,W=J-K&32767;if(N>2&&H==T(j-W))for(var X=Math.min(M,N)-1,Y=Math.min(32767,j),Z=Math.min(258,N);W<=Y&&--V&&J!=K;){if(a[j+Q]==a[j+Q-W]){for(var $=0;$<Z&&a[j+$]==a[j+$-W];++$);if($>Q){if(Q=$,R=W,$>X)break;var tt=Math.min(W,$-2),nt=0;for(P=0;P<tt;++P){var rt=j-W+P&32767,et=rt-A[rt]&32767;et>nt&&(nt=et,K=rt)}}}W+=(J=K)-(K=A[J])&32767}if(R){F[q++]=268435456|h[Q]<<18|l[R];var it=31&h[Q],at=31&l[R];O+=e[it]+i[at],++I[257+it],++S[at],B=j+Q,++L}else F[q++]=a[j],++I[a[j]]}}for(j=Math.max(j,B);j<v;++j)F[q++]=a[j],++I[a[j]];p=C(a,g,w,F,I,S,O,q,G,j-G,p),w||(c.r=7&p|g[p/8|0]<<3,p-=7,c.h=_,c.p=A,c.i=j,c.w=B)}else{for(j=c.w||0;j<v+w;j+=65535){var st=j+65535;st>=v&&(g[p/8|0]=w,st=v),p=k(g,p+1,a.subarray(j,st))}c.i=v}return b(d,0,f+m(p)+u)}(a,null==s.level?6:s.level,null==s.mem?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(a.length)))):12+s.mem,o,f,u)},O=function(t,n,r){for(;r;++n)t[n]=r,r>>>=8},j=function(){function n(n,r){if("function"==typeof n&&(r=n,n={}),this.ondata=r,this.o=n||{},this.s={l:0,i:32768,w:32768,z:32768},this.b=new t(98304),this.o.dictionary){var e=this.o.dictionary.subarray(-32768);this.b.set(e,32768-e.length),this.s.i=32768-e.length}}return n.prototype.p=function(t,n){this.ondata(L(t,this.o,0,0,this.s),n)},n.prototype.push=function(n,r){this.ondata||E(5),this.s.l&&E(4);var e=n.length+this.s.z;if(e>this.b.length){if(e>2*this.b.length-32768){var i=new t(-32768&e);i.set(this.b.subarray(0,this.s.z)),this.b=i}var a=this.b.length-this.s.z;a&&(this.b.set(n.subarray(0,a),this.s.z),this.s.z=this.b.length,this.p(this.b,!1)),this.b.set(this.b.subarray(-32768)),this.b.set(n.subarray(a),32768),this.s.z=n.length-a+32768,this.s.i=32766,this.s.w=32768}else this.b.set(n,this.s.z),this.s.z+=n.length;this.s.l=1&r,(this.s.z>this.s.w+8191||r)&&(this.p(this.b,r||!1),this.s.w=this.s.i,this.s.i-=2)},n}();function q(t,n){n||(n={});var r=function(){var t=-1;return{p:function(n){for(var r=t,e=0;e<n.length;++e)r=I[255&r^n[e]]^r>>>8;t=r},d:function(){return~t}}}(),e=t.length;r.p(t);var i,a=L(t,n,10+((i=n).filename?i.filename.length+1:0),8),s=a.length;return function(t,n){var r=n.filename;if(t[0]=31,t[1]=139,t[2]=8,t[8]=n.level<2?4:9==n.level?2:0,t[9]=3,0!=n.mtime&&O(t,4,Math.floor(new Date(n.mtime||Date.now())/1e3)),r){t[3]=8;for(var e=0;e<=r.length;++e)t[e+10]=r.charCodeAt(e)}}(a,n),O(a,s-8,r.d()),O(a,s-4,e),a}var B=function(){function t(t,n){this.c=S(),this.v=1,j.call(this,t,n)}return t.prototype.push=function(t,n){this.c.p(t),j.prototype.push.call(this,t,n)},t.prototype.p=function(t,n){var r=L(t,this.o,this.v&&(this.o.dictionary?6:2),n&&4,this.s);this.v&&(function(t,n){var r=n.level,e=0==r?0:r<6?1:9==r?3:2;if(t[0]=120,t[1]=e<<6|(n.dictionary&&32),t[1]|=31-(t[0]<<8|t[1])%31,n.dictionary){var i=S();i.p(n.dictionary),O(t,2,i.d())}}(r,this.o),this.v=0),n&&O(r,r.length-4,this.c.d()),this.ondata(r,n)},t}(),G="undefined"!=typeof TextEncoder&&new TextEncoder,H="undefined"!=typeof TextDecoder&&new TextDecoder;try{H.decode(F,{stream:!0})}catch(t){}var J=function(){function t(t){this.ondata=t}return t.prototype.push=function(t,n){this.ondata||E(5),this.d&&E(4),this.ondata(K(t),this.d=n||!1)},t}();function K(n,r){if(r){for(var e=new t(n.length),i=0;i<n.length;++i)e[i]=n.charCodeAt(i);return e}if(G)return G.encode(n);var a=n.length,s=new t(n.length+(n.length>>1)),o=0,f=function(t){s[o++]=t};for(i=0;i<a;++i){if(o+5>s.length){var h=new t(o+8+(a-i<<1));h.set(s),s=h}var l=n.charCodeAt(i);l<128||r?f(l):l<2048?(f(192|l>>6),f(128|63&l)):l>55295&&l<57344?(f(240|(l=65536+(1047552&l)|1023&n.charCodeAt(++i))>>18),f(128|l>>12&63),f(128|l>>6&63),f(128|63&l)):(f(224|l>>12),f(128|l>>6&63),f(128|63&l))}return b(s,0,o)}const N=new class{constructor(){this._init()}clear(){this._init()}addEvent(t){if(!t)throw new Error("Adding invalid event");const n=this._hasEvents?",":"";this.stream.push(n+t),this._hasEvents=!0}finish(){this.stream.push("]",!0);const t=function(t){let n=0;for(let r=0,e=t.length;r<e;r++)n+=t[r].length;const r=new Uint8Array(n);for(let n=0,e=0,i=t.length;n<i;n++){const i=t[n];r.set(i,e),e+=i.length}return r}(this._deflatedData);return this._init(),t}_init(){this._hasEvents=!1,this._deflatedData=[],this.deflate=new B,this.deflate.ondata=(t,n)=>{this._deflatedData.push(t)},this.stream=new J(((t,n)=>{this.deflate.push(t,n)})),this.stream.push("[")}},P={clear:()=>{N.clear()},addEvent:t=>N.addEvent(t),finish:()=>N.finish(),compress:t=>function(t){return q(K(t))}(t)};addEventListener("message",(function(t){const n=t.data.method,r=t.data.id,e=t.data.arg;if(n in P&&"function"==typeof P[n])try{const t=P[n](e);postMessage({id:r,method:n,success:!0,response:t})}catch(t){postMessage({id:r,method:n,success:!1,response:t.message}),console.error(t)}})),postMessage({id:void 0,method:"init",success:!0,response:void 0});']);
|
|
return URL.createObjectURL(e)
|
|
}();
|
|
return ""
|
|
}();
|
|
if (!t) return;
|
|
qg("[Replay] Using compression worker" + (e ? ` from ${e}` : ""));
|
|
const n = new Worker(t);
|
|
return new Xg(n)
|
|
} catch (e) {
|
|
qg("[Replay] Failed to create compression worker")
|
|
}
|
|
}(t);
|
|
if (e) return e
|
|
}
|
|
return qg("[Replay] Using simple buffer"), new Jg
|
|
}
|
|
|
|
function ey() {
|
|
try {
|
|
return "sessionStorage" in ph && !!ph.sessionStorage
|
|
} catch (e) {
|
|
return !1
|
|
}
|
|
}
|
|
|
|
function ty(e) {
|
|
! function() {
|
|
if (!ey()) return;
|
|
try {
|
|
ph.sessionStorage.removeItem(hh)
|
|
} catch (e) {}
|
|
}(), e.session = void 0
|
|
}
|
|
|
|
function ny(e) {
|
|
return void 0 !== e && Math.random() < e
|
|
}
|
|
|
|
function ry(e) {
|
|
const t = Date.now();
|
|
return {
|
|
id: e.id || ts(),
|
|
started: e.started || t,
|
|
lastActivity: e.lastActivity || t,
|
|
segmentId: e.segmentId || 0,
|
|
sampled: e.sampled,
|
|
previousSessionId: e.previousSessionId
|
|
}
|
|
}
|
|
|
|
function oy(e) {
|
|
if (ey()) try {
|
|
ph.sessionStorage.setItem(hh, JSON.stringify(e))
|
|
} catch (e) {}
|
|
}
|
|
|
|
function iy({
|
|
sessionSampleRate: e,
|
|
allowBuffering: t,
|
|
stickySession: n = !1
|
|
}, {
|
|
previousSessionId: r
|
|
} = {}) {
|
|
const o = function(e, t) {
|
|
return ny(e) ? "session" : !!t && "buffer"
|
|
}(e, t),
|
|
i = ry({
|
|
sampled: o,
|
|
previousSessionId: r
|
|
});
|
|
return n && oy(i), i
|
|
}
|
|
|
|
function ay(e, t, n = +new Date) {
|
|
return null === e || void 0 === t || t < 0 || 0 !== t && e + t <= n
|
|
}
|
|
|
|
function sy(e, {
|
|
maxReplayDuration: t,
|
|
sessionIdleExpire: n,
|
|
targetTime: r = Date.now()
|
|
}) {
|
|
return ay(e.started, t, r) || ay(e.lastActivity, n, r)
|
|
}
|
|
|
|
function cy(e, {
|
|
sessionIdleExpire: t,
|
|
maxReplayDuration: n
|
|
}) {
|
|
return !!sy(e, {
|
|
sessionIdleExpire: t,
|
|
maxReplayDuration: n
|
|
}) && ("buffer" !== e.sampled || 0 !== e.segmentId)
|
|
}
|
|
|
|
function uy({
|
|
traceInternals: e,
|
|
sessionIdleExpire: t,
|
|
maxReplayDuration: n,
|
|
previousSessionId: r
|
|
}, o) {
|
|
const i = o.stickySession && function(e) {
|
|
if (!ey()) return null;
|
|
try {
|
|
const t = ph.sessionStorage.getItem(hh);
|
|
if (!t) return null;
|
|
const n = JSON.parse(t);
|
|
return Wg("[Replay] Loading existing session", e), ry(n)
|
|
} catch (e) {
|
|
return null
|
|
}
|
|
}(e);
|
|
return i ? cy(i, {
|
|
sessionIdleExpire: t,
|
|
maxReplayDuration: n
|
|
}) ? (Wg("[Replay] Session in sessionStorage is expired, creating new one..."), iy(o, {
|
|
previousSessionId: i.id
|
|
})) : i : (Wg("[Replay] Creating new session", e), iy(o, {
|
|
previousSessionId: r
|
|
}))
|
|
}
|
|
|
|
function ly(e, t, n) {
|
|
return !!dy(e, t) && (fy(e, t, n), !0)
|
|
}
|
|
async function fy(e, t, n) {
|
|
if (!e.eventBuffer) return null;
|
|
try {
|
|
n && "buffer" === e.recordingMode && e.eventBuffer.clear(), n && (e.eventBuffer.hasCheckout = !0);
|
|
const r = function(e, t) {
|
|
try {
|
|
if ("function" == typeof t && function(e) {
|
|
return e.type === Pm.Custom
|
|
}(e)) return t(e)
|
|
} catch (e) {
|
|
return zg && Fa.error("[Replay] An error occured in the `beforeAddRecordingEvent` callback, skipping the event...", e), null
|
|
}
|
|
return e
|
|
}(t, e.getOptions().beforeAddRecordingEvent);
|
|
if (!r) return;
|
|
return await e.eventBuffer.addEvent(r)
|
|
} catch (t) {
|
|
const n = t && t instanceof Yg ? "addEventSizeExceeded" : "addEvent";
|
|
zg && Fa.error(t), await e.stop({
|
|
reason: n
|
|
});
|
|
const r = Uc();
|
|
r && r.recordDroppedEvent("internal_sdk_error", "replay")
|
|
}
|
|
}
|
|
|
|
function dy(e, t) {
|
|
if (!e.eventBuffer || e.isPaused() || !e.isEnabled()) return !1;
|
|
const n = Sg(t.timestamp);
|
|
return !(n + e.timeouts.sessionIdlePause < Date.now()) && (!(n > e.getContext().initialTimestamp + e.getOptions().maxReplayDuration) || (qg(`[Replay] Skipping event with timestamp ${n} because it is after maxReplayDuration`, e.getOptions()._experiments.traceInternals), !1))
|
|
}
|
|
|
|
function py(e) {
|
|
return !e.type
|
|
}
|
|
|
|
function hy(e) {
|
|
return "transaction" === e.type
|
|
}
|
|
|
|
function my(e) {
|
|
return "feedback" === e.type
|
|
}
|
|
|
|
function gy(e) {
|
|
const t = function() {
|
|
const e = Uc();
|
|
if (!e) return !1;
|
|
const t = e.getTransport();
|
|
if (!t) return !1;
|
|
return t.send.__sentry__baseTransport__ || !1
|
|
}();
|
|
return (n, r) => {
|
|
if (!e.isEnabled() || !py(n) && !hy(n)) return;
|
|
const o = r && r.statusCode;
|
|
t && (!o || o < 200 || o >= 300) || (hy(n) ? function(e, t) {
|
|
const n = e.getContext();
|
|
t.contexts && t.contexts.trace && t.contexts.trace.trace_id && n.traceIds.size < 100 && n.traceIds.add(t.contexts.trace.trace_id)
|
|
}(e, n) : function(e, t) {
|
|
const n = e.getContext();
|
|
t.event_id && n.errorIds.size < 100 && n.errorIds.add(t.event_id);
|
|
if ("buffer" !== e.recordingMode || !t.tags || !t.tags.replayId) return;
|
|
const {
|
|
beforeErrorSampling: r
|
|
} = e.getOptions();
|
|
if ("function" == typeof r && !r(t)) return;
|
|
setTimeout(() => {
|
|
e.sendBufferedReplayOrFlush()
|
|
})
|
|
}(e, n))
|
|
}
|
|
}
|
|
|
|
function yy(e) {
|
|
return t => {
|
|
e.isEnabled() && py(t) && function(e, t) {
|
|
const n = t.exception && t.exception.values && t.exception.values[0].value;
|
|
if ("string" != typeof n) return;
|
|
if (n.match(/reactjs\.org\/docs\/error-decoder\.html\?invariant=(418|419|422|423|425)/) || n.match(/(does not match server-rendered HTML|Hydration failed because)/i)) {
|
|
Og(e, Rg({
|
|
category: "replay.hydrate-error"
|
|
}))
|
|
}
|
|
}(e, t)
|
|
}
|
|
}
|
|
|
|
function vy(e, t = !1) {
|
|
const n = t ? gy(e) : void 0;
|
|
return Object.assign((t, r) => {
|
|
if (!e.isEnabled()) return t;
|
|
if (function(e) {
|
|
return "replay_event" === e.type
|
|
}(t)) return delete t.breadcrumbs, t;
|
|
if (!py(t) && !hy(t) && !my(t)) return t;
|
|
if (!e.checkAndHandleExpiredSession()) return t;
|
|
if (my(t)) return e.flush(), t.contexts.feedback.replay_id = e.getSessionId(),
|
|
function(e, t) {
|
|
e.triggerUserActivity(), e.addUpdate(() => !t.timestamp || (e.throttledAddEvent({
|
|
type: Pm.Custom,
|
|
timestamp: 1e3 * t.timestamp,
|
|
data: {
|
|
tag: "breadcrumb",
|
|
payload: {
|
|
timestamp: t.timestamp,
|
|
type: "default",
|
|
category: "sentry.feedback",
|
|
data: {
|
|
feedbackId: t.event_id
|
|
}
|
|
}
|
|
}
|
|
}), !1))
|
|
}(e, t), t;
|
|
if (function(e, t) {
|
|
return !(e.type || !e.exception || !e.exception.values || !e.exception.values.length || !t.originalException || !t.originalException.__rrweb__)
|
|
}(t, r) && !e.getOptions()._experiments.captureExceptions) return zg && Fa.log("[Replay] Ignoring error from rrweb internals", t), null;
|
|
const o = function(e, t) {
|
|
return "buffer" === e.recordingMode && t.message !== mh && !(!t.exception || t.type) && ny(e.getOptions().errorSampleRate)
|
|
}(e, t);
|
|
return (o || "session" === e.recordingMode) && (t.tags = {
|
|
...t.tags,
|
|
replayId: e.getSessionId()
|
|
}), n && n(t, {
|
|
statusCode: 200
|
|
}), t
|
|
}, {
|
|
id: "Replay"
|
|
})
|
|
}
|
|
|
|
function by(e, t) {
|
|
return t.map(({
|
|
type: t,
|
|
start: n,
|
|
end: r,
|
|
name: o,
|
|
data: i
|
|
}) => {
|
|
const a = e.throttledAddEvent({
|
|
type: Pm.Custom,
|
|
timestamp: n,
|
|
data: {
|
|
tag: "performanceSpan",
|
|
payload: {
|
|
op: t,
|
|
description: o,
|
|
startTimestamp: n,
|
|
endTimestamp: r,
|
|
data: i
|
|
}
|
|
}
|
|
});
|
|
return "string" == typeof a ? Promise.resolve(null) : a
|
|
})
|
|
}
|
|
|
|
function _y(e) {
|
|
return t => {
|
|
if (!e.isEnabled()) return;
|
|
const n = function(e) {
|
|
const {
|
|
from: t,
|
|
to: n
|
|
} = e, r = Date.now() / 1e3;
|
|
return {
|
|
type: "navigation.push",
|
|
start: r,
|
|
end: r,
|
|
name: n,
|
|
data: {
|
|
previous: t
|
|
}
|
|
}
|
|
}(t);
|
|
null !== n && (e.getContext().urls.push(n.name), e.triggerUserActivity(), e.addUpdate(() => (by(e, [n]), !1)))
|
|
}
|
|
}
|
|
|
|
function Sy(e, t) {
|
|
e.isEnabled() && null !== t && (function(e, t) {
|
|
return (!zg || !e.getOptions()._experiments.traceInternals) && wp(t, Uc())
|
|
}(e, t.name) || e.addUpdate(() => (by(e, [t]), !0)))
|
|
}
|
|
|
|
function wy(e) {
|
|
return t => {
|
|
if (!e.isEnabled()) return;
|
|
const n = function(e) {
|
|
const {
|
|
startTimestamp: t,
|
|
endTimestamp: n,
|
|
xhr: r
|
|
} = e, o = r[Td];
|
|
if (!t || !n || !o) return null;
|
|
const {
|
|
method: i,
|
|
url: a,
|
|
status_code: s
|
|
} = o;
|
|
return void 0 === a ? null : {
|
|
type: "resource.xhr",
|
|
name: a,
|
|
start: t / 1e3,
|
|
end: n / 1e3,
|
|
data: {
|
|
method: i,
|
|
statusCode: s
|
|
}
|
|
}
|
|
}(t);
|
|
Sy(e, n)
|
|
}
|
|
}
|
|
|
|
function Oy(e, t) {
|
|
if (e) try {
|
|
if ("string" == typeof e) return t.encode(e).length;
|
|
if (e instanceof URLSearchParams) return t.encode(e.toString()).length;
|
|
if (e instanceof FormData) {
|
|
const n = Cy(e);
|
|
return t.encode(n).length
|
|
}
|
|
if (e instanceof Blob) return e.size;
|
|
if (e instanceof ArrayBuffer) return e.byteLength
|
|
} catch (e) {}
|
|
}
|
|
|
|
function Ey(e) {
|
|
if (!e) return;
|
|
const t = parseInt(e, 10);
|
|
return isNaN(t) ? void 0 : t
|
|
}
|
|
|
|
function ky(e) {
|
|
try {
|
|
if ("string" == typeof e) return [e];
|
|
if (e instanceof URLSearchParams) return [e.toString()];
|
|
if (e instanceof FormData) return [Cy(e)];
|
|
if (!e) return [void 0]
|
|
} catch (t) {
|
|
return zg && Fa.warn("[Replay] Failed to serialize body", e), [void 0, "BODY_PARSE_ERROR"]
|
|
}
|
|
return zg && Fa.info("[Replay] Skipping network body because of body type", e), [void 0, "UNPARSEABLE_BODY_TYPE"]
|
|
}
|
|
|
|
function Ty(e, t) {
|
|
if (!e) return {
|
|
headers: {},
|
|
size: void 0,
|
|
_meta: {
|
|
warnings: [t]
|
|
}
|
|
};
|
|
const n = {
|
|
...e._meta
|
|
},
|
|
r = n.warnings || [];
|
|
return n.warnings = [...r, t], e._meta = n, e
|
|
}
|
|
|
|
function xy(e, t) {
|
|
if (!t) return null;
|
|
const {
|
|
startTimestamp: n,
|
|
endTimestamp: r,
|
|
url: o,
|
|
method: i,
|
|
statusCode: a,
|
|
request: s,
|
|
response: c
|
|
} = t;
|
|
return {
|
|
type: e,
|
|
start: n / 1e3,
|
|
end: r / 1e3,
|
|
name: o,
|
|
data: Qa({
|
|
method: i,
|
|
statusCode: a,
|
|
request: s,
|
|
response: c
|
|
})
|
|
}
|
|
}
|
|
|
|
function Iy(e) {
|
|
return {
|
|
headers: {},
|
|
size: e,
|
|
_meta: {
|
|
warnings: ["URL_SKIPPED"]
|
|
}
|
|
}
|
|
}
|
|
|
|
function Py(e, t, n) {
|
|
if (!t && 0 === Object.keys(e).length) return;
|
|
if (!t) return {
|
|
headers: e
|
|
};
|
|
if (!n) return {
|
|
headers: e,
|
|
size: t
|
|
};
|
|
const r = {
|
|
headers: e,
|
|
size: t
|
|
},
|
|
{
|
|
body: o,
|
|
warnings: i
|
|
} = function(e) {
|
|
if (!e || "string" != typeof e) return {
|
|
body: e
|
|
};
|
|
const t = e.length > gh,
|
|
n = function(e) {
|
|
const t = e[0],
|
|
n = e[e.length - 1];
|
|
return "[" === t && "]" === n || "{" === t && "}" === n
|
|
}(e);
|
|
if (t) {
|
|
const t = e.slice(0, gh);
|
|
return n ? {
|
|
body: t,
|
|
warnings: ["MAYBE_JSON_TRUNCATED"]
|
|
} : {
|
|
body: `${t}\u2026`,
|
|
warnings: ["TEXT_TRUNCATED"]
|
|
}
|
|
}
|
|
if (n) try {
|
|
return {
|
|
body: JSON.parse(e)
|
|
}
|
|
} catch (e) {}
|
|
return {
|
|
body: e
|
|
}
|
|
}(n);
|
|
return r.body = o, i && i.length > 0 && (r._meta = {
|
|
warnings: i
|
|
}), r
|
|
}
|
|
|
|
function Ay(e, t) {
|
|
return Object.keys(e).reduce((n, r) => {
|
|
const o = r.toLowerCase();
|
|
return t.includes(o) && e[r] && (n[o] = e[r]), n
|
|
}, {})
|
|
}
|
|
|
|
function Cy(e) {
|
|
return new URLSearchParams(e).toString()
|
|
}
|
|
|
|
function jy(e, t) {
|
|
const n = function(e, t = ph.document.baseURI) {
|
|
if (e.startsWith("http://") || e.startsWith("https://") || e.startsWith(ph.location.origin)) return e;
|
|
const n = new URL(e, t);
|
|
if (n.origin !== new URL(t).origin) return e;
|
|
const r = n.href;
|
|
if (!e.endsWith("/") && r.endsWith("/")) return r.slice(0, -1);
|
|
return r
|
|
}(e);
|
|
return Ha(n, t)
|
|
}
|
|
async function Ry(e, t, n) {
|
|
try {
|
|
const r = await async function(e, t, n) {
|
|
const r = Date.now(),
|
|
{
|
|
startTimestamp: o = r,
|
|
endTimestamp: i = r
|
|
} = t,
|
|
{
|
|
url: a,
|
|
method: s,
|
|
status_code: c = 0,
|
|
request_body_size: u,
|
|
response_body_size: l
|
|
} = e.data,
|
|
f = jy(a, n.networkDetailAllowUrls) && !jy(a, n.networkDetailDenyUrls),
|
|
d = f ? function({
|
|
networkCaptureBodies: e,
|
|
networkRequestHeaders: t
|
|
}, n, r) {
|
|
const o = n ? function(e, t) {
|
|
if (1 === e.length && "string" != typeof e[0]) return Ny(e[0], t);
|
|
if (2 === e.length) return Ny(e[1], t);
|
|
return {}
|
|
}(n, t) : {};
|
|
if (!e) return Py(o, r, void 0);
|
|
const i = My(n),
|
|
[a, s] = ky(i),
|
|
c = Py(o, r, a);
|
|
if (s) return Ty(c, s);
|
|
return c
|
|
}(n, t.input, u) : Iy(u),
|
|
p = await async function(e, {
|
|
networkCaptureBodies: t,
|
|
textEncoder: n,
|
|
networkResponseHeaders: r
|
|
}, o, i) {
|
|
if (!e && void 0 !== i) return Iy(i);
|
|
const a = o ? Dy(o.headers, r) : {};
|
|
if (!o || !t && void 0 !== i) return Py(a, i, void 0);
|
|
const [s, c] = await async function(e) {
|
|
const t = function(e) {
|
|
try {
|
|
return e.clone()
|
|
} catch (e) {
|
|
zg && Fa.warn("[Replay] Failed to clone response body", e)
|
|
}
|
|
}(e);
|
|
if (!t) return [void 0, "BODY_PARSE_ERROR"];
|
|
try {
|
|
const e = await
|
|
function(e) {
|
|
return new Promise((t, n) => {
|
|
const r = setTimeout(() => n(new Error("Timeout while trying to read response body")), 500);
|
|
(async function(e) {
|
|
return await e.text()
|
|
})(e).then(e => t(e), e => n(e)).finally(() => clearTimeout(r))
|
|
})
|
|
}(t);
|
|
return [e]
|
|
} catch (e) {
|
|
return zg && Fa.warn("[Replay] Failed to get text body from response", e), [void 0, "BODY_PARSE_ERROR"]
|
|
}
|
|
}(o), u = function(e, {
|
|
networkCaptureBodies: t,
|
|
textEncoder: n,
|
|
responseBodySize: r,
|
|
captureDetails: o,
|
|
headers: i
|
|
}) {
|
|
try {
|
|
const a = e && e.length && void 0 === r ? Oy(e, n) : r;
|
|
return o ? Py(i, a, t ? e : void 0) : Iy(a)
|
|
} catch (e) {
|
|
return zg && Fa.warn("[Replay] Failed to serialize response body", e), Py(i, r, void 0)
|
|
}
|
|
}(s, {
|
|
networkCaptureBodies: t,
|
|
textEncoder: n,
|
|
responseBodySize: i,
|
|
captureDetails: e,
|
|
headers: a
|
|
});
|
|
if (c) return Ty(u, c);
|
|
return u
|
|
}(f, n, t.response, l);
|
|
return {
|
|
startTimestamp: o,
|
|
endTimestamp: i,
|
|
url: a,
|
|
method: s,
|
|
statusCode: c,
|
|
request: d,
|
|
response: p
|
|
}
|
|
}(e, t, n), o = xy("resource.fetch", r);
|
|
Sy(n.replay, o)
|
|
} catch (e) {
|
|
zg && Fa.error("[Replay] Failed to capture fetch breadcrumb", e)
|
|
}
|
|
}
|
|
|
|
function My(e = []) {
|
|
if (2 === e.length && "object" == typeof e[1]) return e[1].body
|
|
}
|
|
|
|
function Dy(e, t) {
|
|
const n = {};
|
|
return t.forEach(t => {
|
|
e.get(t) && (n[t] = e.get(t))
|
|
}), n
|
|
}
|
|
|
|
function Ny(e, t) {
|
|
if (!e) return {};
|
|
const n = e.headers;
|
|
return n ? n instanceof Headers ? Dy(n, t) : Array.isArray(n) ? {} : Ay(n, t) : {}
|
|
}
|
|
async function Ly(e, t, n) {
|
|
try {
|
|
const r = function(e, t, n) {
|
|
const r = Date.now(),
|
|
{
|
|
startTimestamp: o = r,
|
|
endTimestamp: i = r,
|
|
input: a,
|
|
xhr: s
|
|
} = t,
|
|
{
|
|
url: c,
|
|
method: u,
|
|
status_code: l = 0,
|
|
request_body_size: f,
|
|
response_body_size: d
|
|
} = e.data;
|
|
if (!c) return null;
|
|
if (!s || !jy(c, n.networkDetailAllowUrls) || jy(c, n.networkDetailDenyUrls)) {
|
|
return {
|
|
startTimestamp: o,
|
|
endTimestamp: i,
|
|
url: c,
|
|
method: u,
|
|
statusCode: l,
|
|
request: Iy(f),
|
|
response: Iy(d)
|
|
}
|
|
}
|
|
const p = s[Td],
|
|
h = p ? Ay(p.request_headers, n.networkRequestHeaders) : {},
|
|
m = Ay(function(e) {
|
|
const t = e.getAllResponseHeaders();
|
|
if (!t) return {};
|
|
return t.split("\r\n").reduce((e, t) => {
|
|
const [n, r] = t.split(": ");
|
|
return e[n.toLowerCase()] = r, e
|
|
}, {})
|
|
}(s), n.networkResponseHeaders),
|
|
[g, y] = n.networkCaptureBodies ? ky(a) : [void 0],
|
|
[v, b] = n.networkCaptureBodies ? function(e) {
|
|
const t = [];
|
|
try {
|
|
return [e.responseText]
|
|
} catch (e) {
|
|
t.push(e)
|
|
}
|
|
try {
|
|
return function(e, t) {
|
|
try {
|
|
if ("string" == typeof e) return [e];
|
|
if (e instanceof Document) return [e.body.outerHTML];
|
|
if ("json" === t && e && "object" == typeof e) return [JSON.stringify(e)];
|
|
if (!e) return [void 0]
|
|
} catch (t) {
|
|
return zg && Fa.warn("[Replay] Failed to serialize body", e), [void 0, "BODY_PARSE_ERROR"]
|
|
}
|
|
return zg && Fa.info("[Replay] Skipping network body because of body type", e), [void 0, "UNPARSEABLE_BODY_TYPE"]
|
|
}(e.response, e.responseType)
|
|
} catch (e) {
|
|
t.push(e)
|
|
}
|
|
return zg && Fa.warn("[Replay] Failed to get xhr response body", ...t), [void 0]
|
|
}(s) : [void 0],
|
|
_ = Py(h, f, g),
|
|
S = Py(m, d, v);
|
|
return {
|
|
startTimestamp: o,
|
|
endTimestamp: i,
|
|
url: c,
|
|
method: u,
|
|
statusCode: l,
|
|
request: y ? Ty(_, y) : _,
|
|
response: b ? Ty(S, b) : S
|
|
}
|
|
}(e, t, n),
|
|
o = xy("resource.xhr", r);
|
|
Sy(n.replay, o)
|
|
} catch (e) {
|
|
zg && Fa.error("[Replay] Failed to capture xhr breadcrumb", e)
|
|
}
|
|
}
|
|
|
|
function Fy(e, t, n) {
|
|
const {
|
|
xhr: r,
|
|
input: o
|
|
} = t;
|
|
if (!r) return;
|
|
const i = Oy(o, n.textEncoder),
|
|
a = r.getResponseHeader("content-length") ? Ey(r.getResponseHeader("content-length")) : function(e, t, n) {
|
|
try {
|
|
return Oy("json" === t && e && "object" == typeof e ? JSON.stringify(e) : e, n)
|
|
} catch (e) {
|
|
return
|
|
}
|
|
}(r.response, r.responseType, n.textEncoder);
|
|
void 0 !== i && (e.data.request_body_size = i), void 0 !== a && (e.data.response_body_size = a)
|
|
}
|
|
|
|
function By(e) {
|
|
const t = Uc();
|
|
try {
|
|
const n = new TextEncoder,
|
|
{
|
|
networkDetailAllowUrls: r,
|
|
networkDetailDenyUrls: o,
|
|
networkCaptureBodies: i,
|
|
networkRequestHeaders: a,
|
|
networkResponseHeaders: s
|
|
} = e.getOptions(),
|
|
c = {
|
|
replay: e,
|
|
textEncoder: n,
|
|
networkDetailAllowUrls: r,
|
|
networkDetailDenyUrls: o,
|
|
networkCaptureBodies: i,
|
|
networkRequestHeaders: a,
|
|
networkResponseHeaders: s
|
|
};
|
|
t && t.on ? t.on("beforeAddBreadcrumb", (e, t) => function(e, t, n) {
|
|
if (!t.data) return;
|
|
try {
|
|
(function(e) {
|
|
return "xhr" === e.category
|
|
})(t) && function(e) {
|
|
return e && e.xhr
|
|
}(n) && (Fy(t, n, e), Ly(t, n, e)),
|
|
function(e) {
|
|
return "fetch" === e.category
|
|
}(t) && function(e) {
|
|
return e && e.response
|
|
}(n) && (! function(e, t, n) {
|
|
const {
|
|
input: r,
|
|
response: o
|
|
} = t, i = Oy(r ? My(r) : void 0, n.textEncoder), a = o ? Ey(o.headers.get("content-length")) : void 0;
|
|
void 0 !== i && (e.data.request_body_size = i), void 0 !== a && (e.data.response_body_size = a)
|
|
}(t, n, e), Ry(t, n, e))
|
|
} catch (e) {
|
|
zg && Fa.warn("Error when enriching network breadcrumb")
|
|
}
|
|
}(c, e, t)) : (Pd(function(e) {
|
|
return t => {
|
|
if (!e.isEnabled()) return;
|
|
const n = function(e) {
|
|
const {
|
|
startTimestamp: t,
|
|
endTimestamp: n,
|
|
fetchData: r,
|
|
response: o
|
|
} = e;
|
|
if (!n) return null;
|
|
const {
|
|
method: i,
|
|
url: a
|
|
} = r;
|
|
return {
|
|
type: "resource.fetch",
|
|
start: t / 1e3,
|
|
end: n / 1e3,
|
|
name: a,
|
|
data: {
|
|
method: i,
|
|
statusCode: o ? o.status : void 0
|
|
}
|
|
}
|
|
}(t);
|
|
Sy(e, n)
|
|
}
|
|
}(e)), xd(wy(e)))
|
|
} catch (e) {}
|
|
}
|
|
let Uy = null;
|
|
const Gy = e => t => {
|
|
if (!e.isEnabled()) return;
|
|
const n = function(e) {
|
|
const t = e.getLastBreadcrumb && e.getLastBreadcrumb();
|
|
if (Uy === t || !t) return null;
|
|
if (Uy = t, ! function(e) {
|
|
return !!e.category
|
|
}(t) || ["fetch", "xhr", "sentry.event", "sentry.transaction"].includes(t.category) || t.category.startsWith("ui.")) return null;
|
|
if ("console" === t.category) return function(e) {
|
|
const t = e.data && e.data.arguments;
|
|
if (!Array.isArray(t) || 0 === t.length) return Rg(e);
|
|
let n = !1;
|
|
const r = t.map(e => {
|
|
if (!e) return e;
|
|
if ("string" == typeof e) return e.length > yh ? (n = !0, `${e.slice(0,yh)}\u2026`) : e;
|
|
if ("object" == typeof e) try {
|
|
const t = mc(e, 7);
|
|
return JSON.stringify(t).length > yh ? (n = !0, `${JSON.stringify(t,null,2).slice(0,yh)}\u2026`) : t
|
|
} catch (e) {}
|
|
return e
|
|
});
|
|
return Rg({
|
|
...e,
|
|
data: {
|
|
...e.data,
|
|
arguments: r,
|
|
...n ? {
|
|
_meta: {
|
|
warnings: ["CONSOLE_ARG_TRUNCATED"]
|
|
}
|
|
} : {}
|
|
}
|
|
})
|
|
}(t);
|
|
return Rg(t)
|
|
}(t);
|
|
n && Og(e, n)
|
|
};
|
|
|
|
function $y(e) {
|
|
return !(!e || !e.on)
|
|
}
|
|
|
|
function Hy(e) {
|
|
const {
|
|
jsHeapSizeLimit: t,
|
|
totalJSHeapSize: n,
|
|
usedJSHeapSize: r
|
|
} = e, o = Date.now() / 1e3;
|
|
return {
|
|
type: "memory",
|
|
name: "memory",
|
|
start: o,
|
|
end: o,
|
|
data: {
|
|
memory: {
|
|
jsHeapSizeLimit: t,
|
|
totalJSHeapSize: n,
|
|
usedJSHeapSize: r
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function zy(e) {
|
|
let t = !1;
|
|
return (n, r) => {
|
|
if (!e.checkAndHandleExpiredSession()) return void(zg && Fa.warn("[Replay] Received replay event after session expired."));
|
|
const o = r || !t;
|
|
t = !0, e.clickDetector && jg(e.clickDetector, n), e.addUpdate(() => {
|
|
if ("buffer" === e.recordingMode && o && e.setInitialState(), !ly(e, n, o)) return !0;
|
|
if (!o) return !1;
|
|
if (function(e, t) {
|
|
if (!t || !e.session || 0 !== e.session.segmentId) return;
|
|
ly(e, function(e) {
|
|
const t = e.getOptions();
|
|
return {
|
|
type: Pm.Custom,
|
|
timestamp: Date.now(),
|
|
data: {
|
|
tag: "options",
|
|
payload: {
|
|
shouldRecordCanvas: e.isRecordingCanvas(),
|
|
sessionSampleRate: t.sessionSampleRate,
|
|
errorSampleRate: t.errorSampleRate,
|
|
useCompressionOption: t.useCompression,
|
|
blockAllMedia: t.blockAllMedia,
|
|
maskAllText: t.maskAllText,
|
|
maskAllInputs: t.maskAllInputs,
|
|
useCompression: !!e.eventBuffer && "worker" === e.eventBuffer.type,
|
|
networkDetailHasUrls: t.networkDetailAllowUrls.length > 0,
|
|
networkCaptureBodies: t.networkCaptureBodies,
|
|
networkRequestHasHeaders: t.networkRequestHeaders.length > 0,
|
|
networkResponseHasHeaders: t.networkResponseHeaders.length > 0
|
|
}
|
|
}
|
|
}
|
|
}(e), !1)
|
|
}(e, o), e.session && e.session.previousSessionId) return !0;
|
|
if ("buffer" === e.recordingMode && e.session && e.eventBuffer) {
|
|
const t = e.eventBuffer.getEarliestTimestamp();
|
|
t && (qg(`[Replay] Updating session start time to earliest event in buffer to ${new Date(t)}`, e.getOptions()._experiments.traceInternals), e.session.started = t, e.getOptions().stickySession && oy(e.session))
|
|
}
|
|
return "session" === e.recordingMode && e.flush(), !0
|
|
})
|
|
}
|
|
}
|
|
async function qy({
|
|
recordingData: e,
|
|
replayId: t,
|
|
segmentId: n,
|
|
eventContext: r,
|
|
timestamp: o,
|
|
session: i
|
|
}) {
|
|
const a = function({
|
|
recordingData: e,
|
|
headers: t
|
|
}) {
|
|
let n;
|
|
const r = `${JSON.stringify(t)}\n`;
|
|
if ("string" == typeof e) n = `${r}${e}`;
|
|
else {
|
|
const t = (new TextEncoder).encode(r);
|
|
n = new Uint8Array(t.length + e.length), n.set(t), n.set(e, t.length)
|
|
}
|
|
return n
|
|
}({
|
|
recordingData: e,
|
|
headers: {
|
|
segment_id: n
|
|
}
|
|
}),
|
|
{
|
|
urls: s,
|
|
errorIds: c,
|
|
traceIds: u,
|
|
initialTimestamp: l
|
|
} = r,
|
|
f = Uc(),
|
|
d = $c(),
|
|
p = f && f.getTransport(),
|
|
h = f && f.getDsn();
|
|
if (!(f && p && h && i.sampled)) return;
|
|
const m = {
|
|
type: "replay_event",
|
|
replay_start_timestamp: l / 1e3,
|
|
timestamp: o / 1e3,
|
|
error_ids: c,
|
|
trace_ids: u,
|
|
urls: s,
|
|
replay_id: t,
|
|
segment_id: n,
|
|
replay_type: i.sampled
|
|
},
|
|
g = await async function({
|
|
client: e,
|
|
scope: t,
|
|
replayId: n,
|
|
event: r
|
|
}) {
|
|
const o = {
|
|
event_id: n,
|
|
integrations: "object" != typeof e._integrations || null === e._integrations || Array.isArray(e._integrations) ? void 0 : Object.keys(e._integrations)
|
|
};
|
|
e.emit && e.emit("preprocessEvent", r, o);
|
|
const i = await vc(e.getOptions(), r, o, t, e, rc());
|
|
if (!i) return null;
|
|
i.platform = i.platform || "javascript";
|
|
const a = e.getSdkMetadata && e.getSdkMetadata(),
|
|
{
|
|
name: s,
|
|
version: c
|
|
} = a && a.sdk || {};
|
|
return i.sdk = {
|
|
...i.sdk,
|
|
name: s || "sentry.javascript.unknown",
|
|
version: c || "0.0.0"
|
|
}, i
|
|
}({
|
|
scope: d,
|
|
client: f,
|
|
replayId: t,
|
|
event: m
|
|
});
|
|
if (!g) return f.recordDroppedEvent("event_processor", "replay", m), void qg("An event processor returned `null`, will not send event.");
|
|
delete g.sdkProcessingMetadata;
|
|
const y = function(e, t, n, r) {
|
|
return Eu(Ru(e, ju(e), r, n), [
|
|
[{
|
|
type: "replay_event"
|
|
}, e],
|
|
[{
|
|
type: "replay_recording",
|
|
length: "string" == typeof t ? (new TextEncoder).encode(t).length : t.length
|
|
}, t]
|
|
])
|
|
}(g, a, h, f.getOptions().tunnel);
|
|
let v;
|
|
try {
|
|
v = await p.send(y)
|
|
} catch (e) {
|
|
const t = new Error(mh);
|
|
try {
|
|
t.cause = e
|
|
} catch (e) {}
|
|
throw t
|
|
}
|
|
if (!v) return v;
|
|
if ("number" == typeof v.statusCode && (v.statusCode < 200 || v.statusCode >= 300)) throw new Wy(v.statusCode);
|
|
const b = nf({}, v);
|
|
if (tf(b, "replay")) throw new Vy(b);
|
|
return v
|
|
}
|
|
class Wy extends Error {
|
|
constructor(e) {
|
|
super(`Transport returned status code ${e}`)
|
|
}
|
|
}
|
|
class Vy extends Error {
|
|
constructor(e) {
|
|
super("Rate limit hit"), this.rateLimits = e
|
|
}
|
|
}
|
|
async function Yy(e, t = {
|
|
count: 0,
|
|
interval: 5e3
|
|
}) {
|
|
const {
|
|
recordingData: n,
|
|
options: r
|
|
} = e;
|
|
if (n.length) try {
|
|
return await qy(e), !0
|
|
} catch (n) {
|
|
if (n instanceof Wy || n instanceof Vy) throw n;
|
|
if (xc("Replays", {
|
|
_retryCount: t.count
|
|
}), zg && r._experiments && r._experiments.captureExceptions && wc(n), t.count >= 3) {
|
|
const e = new Error(`${mh} - max retries exceeded`);
|
|
try {
|
|
e.cause = n
|
|
} catch (e) {}
|
|
throw e
|
|
}
|
|
return t.interval *= ++t.count, new Promise((n, r) => {
|
|
setTimeout(async () => {
|
|
try {
|
|
await Yy(e, t), n(!0)
|
|
} catch (e) {
|
|
r(e)
|
|
}
|
|
}, t.interval)
|
|
})
|
|
}
|
|
}
|
|
const Jy = "__THROTTLED";
|
|
|
|
function Ky(e, t, n) {
|
|
const r = new Map;
|
|
let o = !1;
|
|
return (...i) => {
|
|
const a = Math.floor(Date.now() / 1e3);
|
|
if ((e => {
|
|
const t = e - n;
|
|
r.forEach((e, n) => {
|
|
n < t && r.delete(n)
|
|
})
|
|
})(a), [...r.values()].reduce((e, t) => e + t, 0) >= t) {
|
|
const e = o;
|
|
return o = !0, e ? "__SKIPPED" : Jy
|
|
}
|
|
o = !1;
|
|
const s = r.get(a) || 0;
|
|
return r.set(a, s + 1), e(...i)
|
|
}
|
|
}
|
|
class Qy {
|
|
constructor({
|
|
options: e,
|
|
recordingOptions: t
|
|
}) {
|
|
Qy.prototype.__init.call(this), Qy.prototype.__init2.call(this), Qy.prototype.__init3.call(this), Qy.prototype.__init4.call(this), Qy.prototype.__init5.call(this), Qy.prototype.__init6.call(this), this.eventBuffer = null, this.performanceEntries = [], this.replayPerformanceEntries = [], this.recordingMode = "session", this.timeouts = {
|
|
sessionIdlePause: 3e5,
|
|
sessionIdleExpire: 9e5
|
|
}, this._lastActivity = Date.now(), this._isEnabled = !1, this._isPaused = !1, this._hasInitializedCoreListeners = !1, this._context = {
|
|
errorIds: new Set,
|
|
traceIds: new Set,
|
|
urls: [],
|
|
initialTimestamp: Date.now(),
|
|
initialUrl: ""
|
|
}, this._recordingOptions = t, this._options = e, this._debouncedFlush = function(e, t, n) {
|
|
let r, o, i;
|
|
const a = n && n.maxWait ? Math.max(n.maxWait, t) : 0;
|
|
|
|
function s() {
|
|
return c(), r = e(), r
|
|
}
|
|
|
|
function c() {
|
|
void 0 !== o && clearTimeout(o), void 0 !== i && clearTimeout(i), o = i = void 0
|
|
}
|
|
|
|
function u() {
|
|
return o && clearTimeout(o), o = setTimeout(s, t), a && void 0 === i && (i = setTimeout(s, a)), r
|
|
}
|
|
return u.cancel = c, u.flush = function() {
|
|
return void 0 !== o || void 0 !== i ? s() : r
|
|
}, u
|
|
}(() => this._flush(), this._options.flushMinDelay, {
|
|
maxWait: this._options.flushMaxDelay
|
|
}), this._throttledAddEvent = Ky((e, t) => function(e, t, n) {
|
|
return dy(e, t) ? fy(e, t, n) : Promise.resolve(null)
|
|
}(this, e, t), 300, 5);
|
|
const {
|
|
slowClickTimeout: n,
|
|
slowClickIgnoreSelectors: r
|
|
} = this.getOptions(), o = n ? {
|
|
threshold: Math.min(3e3, n),
|
|
timeout: n,
|
|
scrollTimeout: 300,
|
|
ignoreSelector: r ? r.join(",") : ""
|
|
} : void 0;
|
|
o && (this.clickDetector = new Pg(this, o))
|
|
}
|
|
getContext() {
|
|
return this._context
|
|
}
|
|
isEnabled() {
|
|
return this._isEnabled
|
|
}
|
|
isPaused() {
|
|
return this._isPaused
|
|
}
|
|
isRecordingCanvas() {
|
|
return Boolean(this._canvas)
|
|
}
|
|
getOptions() {
|
|
return this._options
|
|
}
|
|
initializeSampling(e) {
|
|
const {
|
|
errorSampleRate: t,
|
|
sessionSampleRate: n
|
|
} = this._options;
|
|
t <= 0 && n <= 0 || (this._initializeSessionForSampling(e), this.session ? !1 !== this.session.sampled && (this.recordingMode = "buffer" === this.session.sampled && 0 === this.session.segmentId ? "buffer" : "session", Wg(`[Replay] Starting replay in ${this.recordingMode} mode`, this._options._experiments.traceInternals), this._initializeRecording()) : this._handleException(new Error("Unable to initialize and create session")))
|
|
}
|
|
start() {
|
|
if (this._isEnabled && "session" === this.recordingMode) throw new Error("Replay recording is already in progress");
|
|
if (this._isEnabled && "buffer" === this.recordingMode) throw new Error("Replay buffering is in progress, call `flush()` to save the replay");
|
|
Wg("[Replay] Starting replay in session mode", this._options._experiments.traceInternals), this._updateUserActivity();
|
|
const e = uy({
|
|
maxReplayDuration: this._options.maxReplayDuration,
|
|
sessionIdleExpire: this.timeouts.sessionIdleExpire,
|
|
traceInternals: this._options._experiments.traceInternals
|
|
}, {
|
|
stickySession: this._options.stickySession,
|
|
sessionSampleRate: 1,
|
|
allowBuffering: !1
|
|
});
|
|
this.session = e, this._initializeRecording()
|
|
}
|
|
startBuffering() {
|
|
if (this._isEnabled) throw new Error("Replay recording is already in progress");
|
|
Wg("[Replay] Starting replay in buffer mode", this._options._experiments.traceInternals);
|
|
const e = uy({
|
|
sessionIdleExpire: this.timeouts.sessionIdleExpire,
|
|
maxReplayDuration: this._options.maxReplayDuration,
|
|
traceInternals: this._options._experiments.traceInternals
|
|
}, {
|
|
stickySession: this._options.stickySession,
|
|
sessionSampleRate: 0,
|
|
allowBuffering: !0
|
|
});
|
|
this.session = e, this.recordingMode = "buffer", this._initializeRecording()
|
|
}
|
|
startRecording() {
|
|
try {
|
|
const e = this._canvas;
|
|
this._stopRecording = _g({
|
|
...this._recordingOptions,
|
|
..."buffer" === this.recordingMode && {
|
|
checkoutEveryNms: 6e4
|
|
},
|
|
emit: zy(this),
|
|
onMutation: this._onMutationHandler,
|
|
...e ? {
|
|
recordCanvas: e.recordCanvas,
|
|
getCanvasManager: e.getCanvasManager,
|
|
sampling: e.sampling,
|
|
dataURLOptions: e.dataURLOptions
|
|
} : {}
|
|
})
|
|
} catch (e) {
|
|
this._handleException(e)
|
|
}
|
|
}
|
|
stopRecording() {
|
|
try {
|
|
return this._stopRecording && (this._stopRecording(), this._stopRecording = void 0), !0
|
|
} catch (e) {
|
|
return this._handleException(e), !1
|
|
}
|
|
}
|
|
async stop({
|
|
forceFlush: e = !1,
|
|
reason: t
|
|
} = {}) {
|
|
if (this._isEnabled) {
|
|
this._isEnabled = !1;
|
|
try {
|
|
qg("[Replay] Stopping Replay" + (t ? ` triggered by ${t}` : ""), this._options._experiments.traceInternals), this._removeListeners(), this.stopRecording(), this._debouncedFlush.cancel(), e && await this._flush({
|
|
force: !0
|
|
}), this.eventBuffer && this.eventBuffer.destroy(), this.eventBuffer = null, ty(this)
|
|
} catch (e) {
|
|
this._handleException(e)
|
|
}
|
|
}
|
|
}
|
|
pause() {
|
|
this._isPaused || (this._isPaused = !0, this.stopRecording(), qg("[Replay] Pausing replay", this._options._experiments.traceInternals))
|
|
}
|
|
resume() {
|
|
this._isPaused && this._checkSession() && (this._isPaused = !1, this.startRecording(), qg("[Replay] Resuming replay", this._options._experiments.traceInternals))
|
|
}
|
|
async sendBufferedReplayOrFlush({
|
|
continueRecording: e = !0
|
|
} = {}) {
|
|
if ("session" === this.recordingMode) return this.flushImmediate();
|
|
const t = Date.now();
|
|
qg("[Replay] Converting buffer to session", this._options._experiments.traceInternals), await this.flushImmediate();
|
|
const n = this.stopRecording();
|
|
e && n && "session" !== this.recordingMode && (this.recordingMode = "session", this.session && (this._updateUserActivity(t), this._updateSessionActivity(t), this._maybeSaveSession()), this.startRecording())
|
|
}
|
|
addUpdate(e) {
|
|
const t = e();
|
|
"buffer" !== this.recordingMode && !0 !== t && this._debouncedFlush()
|
|
}
|
|
triggerUserActivity() {
|
|
if (this._updateUserActivity(), this._stopRecording) this.checkAndHandleExpiredSession(), this._updateSessionActivity();
|
|
else {
|
|
if (!this._checkSession()) return;
|
|
this.resume()
|
|
}
|
|
}
|
|
updateUserActivity() {
|
|
this._updateUserActivity(), this._updateSessionActivity()
|
|
}
|
|
conditionalFlush() {
|
|
return "buffer" === this.recordingMode ? Promise.resolve() : this.flushImmediate()
|
|
}
|
|
flush() {
|
|
return this._debouncedFlush()
|
|
}
|
|
flushImmediate() {
|
|
return this._debouncedFlush(), this._debouncedFlush.flush()
|
|
}
|
|
cancelFlush() {
|
|
this._debouncedFlush.cancel()
|
|
}
|
|
getSessionId() {
|
|
return this.session && this.session.id
|
|
}
|
|
checkAndHandleExpiredSession() {
|
|
if (!(this._lastActivity && ay(this._lastActivity, this.timeouts.sessionIdlePause) && this.session && "session" === this.session.sampled)) return !!this._checkSession();
|
|
this.pause()
|
|
}
|
|
setInitialState() {
|
|
const e = `${ph.location.pathname}${ph.location.hash}${ph.location.search}`,
|
|
t = `${ph.location.origin}${e}`;
|
|
this.performanceEntries = [], this.replayPerformanceEntries = [], this._clearContext(), this._context.initialUrl = t, this._context.initialTimestamp = Date.now(), this._context.urls.push(t)
|
|
}
|
|
throttledAddEvent(e, t) {
|
|
const n = this._throttledAddEvent(e, t);
|
|
if (n === Jy) {
|
|
const e = Rg({
|
|
category: "replay.throttled"
|
|
});
|
|
this.addUpdate(() => !ly(this, {
|
|
type: 5,
|
|
timestamp: e.timestamp || 0,
|
|
data: {
|
|
tag: "breadcrumb",
|
|
payload: e,
|
|
metric: !0
|
|
}
|
|
}))
|
|
}
|
|
return n
|
|
}
|
|
getCurrentRoute() {
|
|
const e = this.lastTransaction || $c().getTransaction(),
|
|
t = (e && Us(e).data || {})[Uu];
|
|
if (e && t && ["route", "custom"].includes(t)) return Us(e).description
|
|
}
|
|
_initializeRecording() {
|
|
this.setInitialState(), this._updateSessionActivity(), this.eventBuffer = Zg({
|
|
useCompression: this._options.useCompression,
|
|
workerUrl: this._options.workerUrl
|
|
}), this._removeListeners(), this._addListeners(), this._isEnabled = !0, this._isPaused = !1, this.startRecording()
|
|
}
|
|
_handleException(e) {
|
|
zg && Fa.error("[Replay]", e), zg && this._options._experiments && this._options._experiments.captureExceptions && wc(e)
|
|
}
|
|
_initializeSessionForSampling(e) {
|
|
const t = this._options.errorSampleRate > 0,
|
|
n = uy({
|
|
sessionIdleExpire: this.timeouts.sessionIdleExpire,
|
|
maxReplayDuration: this._options.maxReplayDuration,
|
|
traceInternals: this._options._experiments.traceInternals,
|
|
previousSessionId: e
|
|
}, {
|
|
stickySession: this._options.stickySession,
|
|
sessionSampleRate: this._options.sessionSampleRate,
|
|
allowBuffering: t
|
|
});
|
|
this.session = n
|
|
}
|
|
_checkSession() {
|
|
if (!this.session) return !1;
|
|
const e = this.session;
|
|
return !cy(e, {
|
|
sessionIdleExpire: this.timeouts.sessionIdleExpire,
|
|
maxReplayDuration: this._options.maxReplayDuration
|
|
}) || (this._refreshSession(e), !1)
|
|
}
|
|
async _refreshSession(e) {
|
|
this._isEnabled && (await this.stop({
|
|
reason: "refresh session"
|
|
}), this.initializeSampling(e.id))
|
|
}
|
|
_addListeners() {
|
|
try {
|
|
ph.document.addEventListener("visibilitychange", this._handleVisibilityChange), ph.addEventListener("blur", this._handleWindowBlur), ph.addEventListener("focus", this._handleWindowFocus), ph.addEventListener("keydown", this._handleKeyboardEvent), this.clickDetector && this.clickDetector.addListeners(), this._hasInitializedCoreListeners || (! function(e) {
|
|
const t = $c(),
|
|
n = Uc();
|
|
t.addScopeListener(Gy(e)), wd(Lg(e)), hd(_y(e)), By(e);
|
|
const r = vy(e, !$y(n));
|
|
n && n.addEventProcessor ? n.addEventProcessor(r) : ol(r), $y(n) && (n.on("beforeSendEvent", yy(e)), n.on("afterSendEvent", gy(e)), n.on("createDsc", t => {
|
|
const n = e.getSessionId();
|
|
n && e.isEnabled() && "session" === e.recordingMode && e.checkAndHandleExpiredSession() && (t.replay_id = n)
|
|
}), n.on("startTransaction", t => {
|
|
e.lastTransaction = t
|
|
}), n.on("finishTransaction", t => {
|
|
e.lastTransaction = t
|
|
}), n.on("beforeSendFeedback", (t, n) => {
|
|
const r = e.getSessionId();
|
|
n && n.includeReplay && e.isEnabled() && r && t.contexts && t.contexts.feedback && (t.contexts.feedback.replay_id = r)
|
|
}))
|
|
}(this), this._hasInitializedCoreListeners = !0)
|
|
} catch (e) {
|
|
this._handleException(e)
|
|
}
|
|
this._performanceCleanupCallback = Hg(this)
|
|
}
|
|
_removeListeners() {
|
|
try {
|
|
ph.document.removeEventListener("visibilitychange", this._handleVisibilityChange), ph.removeEventListener("blur", this._handleWindowBlur), ph.removeEventListener("focus", this._handleWindowFocus), ph.removeEventListener("keydown", this._handleKeyboardEvent), this.clickDetector && this.clickDetector.removeListeners(), this._performanceCleanupCallback && this._performanceCleanupCallback()
|
|
} catch (e) {
|
|
this._handleException(e)
|
|
}
|
|
}
|
|
__init() {
|
|
this._handleVisibilityChange = () => {
|
|
"visible" === ph.document.visibilityState ? this._doChangeToForegroundTasks() : this._doChangeToBackgroundTasks()
|
|
}
|
|
}
|
|
__init2() {
|
|
this._handleWindowBlur = () => {
|
|
const e = Rg({
|
|
category: "ui.blur"
|
|
});
|
|
this._doChangeToBackgroundTasks(e)
|
|
}
|
|
}
|
|
__init3() {
|
|
this._handleWindowFocus = () => {
|
|
const e = Rg({
|
|
category: "ui.focus"
|
|
});
|
|
this._doChangeToForegroundTasks(e)
|
|
}
|
|
}
|
|
__init4() {
|
|
this._handleKeyboardEvent = e => {
|
|
Bg(this, e)
|
|
}
|
|
}
|
|
_doChangeToBackgroundTasks(e) {
|
|
if (!this.session) return;
|
|
sy(this.session, {
|
|
maxReplayDuration: this._options.maxReplayDuration,
|
|
sessionIdleExpire: this.timeouts.sessionIdleExpire
|
|
}) || (e && this._createCustomBreadcrumb(e), this.conditionalFlush())
|
|
}
|
|
_doChangeToForegroundTasks(e) {
|
|
if (!this.session) return;
|
|
this.checkAndHandleExpiredSession() ? e && this._createCustomBreadcrumb(e) : qg("[Replay] Document has become active, but session has expired")
|
|
}
|
|
_updateUserActivity(e = Date.now()) {
|
|
this._lastActivity = e
|
|
}
|
|
_updateSessionActivity(e = Date.now()) {
|
|
this.session && (this.session.lastActivity = e, this._maybeSaveSession())
|
|
}
|
|
_createCustomBreadcrumb(e) {
|
|
this.addUpdate(() => {
|
|
this.throttledAddEvent({
|
|
type: Pm.Custom,
|
|
timestamp: e.timestamp || 0,
|
|
data: {
|
|
tag: "breadcrumb",
|
|
payload: e
|
|
}
|
|
})
|
|
})
|
|
}
|
|
_addPerformanceEntries() {
|
|
const e = (t = this.performanceEntries, t.map(Gg).filter(Boolean)).concat(this.replayPerformanceEntries);
|
|
var t;
|
|
return this.performanceEntries = [], this.replayPerformanceEntries = [], Promise.all(by(this, e))
|
|
}
|
|
_clearContext() {
|
|
this._context.errorIds.clear(), this._context.traceIds.clear(), this._context.urls = []
|
|
}
|
|
_updateInitialTimestampFromEventBuffer() {
|
|
const {
|
|
session: e,
|
|
eventBuffer: t
|
|
} = this;
|
|
if (!e || !t) return;
|
|
if (e.segmentId) return;
|
|
const n = t.getEarliestTimestamp();
|
|
n && n < this._context.initialTimestamp && (this._context.initialTimestamp = n)
|
|
}
|
|
_popEventContext() {
|
|
const e = {
|
|
initialTimestamp: this._context.initialTimestamp,
|
|
initialUrl: this._context.initialUrl,
|
|
errorIds: Array.from(this._context.errorIds),
|
|
traceIds: Array.from(this._context.traceIds),
|
|
urls: this._context.urls
|
|
};
|
|
return this._clearContext(), e
|
|
}
|
|
async _runFlush() {
|
|
const e = this.getSessionId();
|
|
if (this.session && this.eventBuffer && e) {
|
|
if (await this._addPerformanceEntries(), this.eventBuffer && this.eventBuffer.hasEvents && (await async function(e) {
|
|
try {
|
|
return Promise.all(by(e, [Hy(ph.performance.memory)]))
|
|
} catch (e) {
|
|
return []
|
|
}
|
|
}(this), this.eventBuffer && e === this.getSessionId())) try {
|
|
this._updateInitialTimestampFromEventBuffer();
|
|
const t = Date.now();
|
|
if (t - this._context.initialTimestamp > this._options.maxReplayDuration + 3e4) throw new Error("Session is too long, not sending replay");
|
|
const n = this._popEventContext(),
|
|
r = this.session.segmentId++;
|
|
this._maybeSaveSession();
|
|
const o = await this.eventBuffer.finish();
|
|
await Yy({
|
|
replayId: e,
|
|
recordingData: o,
|
|
segmentId: r,
|
|
eventContext: n,
|
|
session: this.session,
|
|
options: this.getOptions(),
|
|
timestamp: t
|
|
})
|
|
} catch (e) {
|
|
this._handleException(e), this.stop({
|
|
reason: "sendReplay"
|
|
});
|
|
const t = Uc();
|
|
t && t.recordDroppedEvent("send_error", "replay")
|
|
}
|
|
} else zg && Fa.error("[Replay] No session or eventBuffer found to flush.")
|
|
}
|
|
__init5() {
|
|
this._flush = async ({
|
|
force: e = !1
|
|
} = {}) => {
|
|
if (!this._isEnabled && !e) return;
|
|
if (!this.checkAndHandleExpiredSession()) return void(zg && Fa.error("[Replay] Attempting to finish replay event after session expired."));
|
|
if (!this.session) return;
|
|
const t = this.session.started,
|
|
n = Date.now() - t;
|
|
this._debouncedFlush.cancel();
|
|
const r = n < this._options.minReplayDuration,
|
|
o = n > this._options.maxReplayDuration + 5e3;
|
|
if (r || o) return qg(`[Replay] Session duration (${Math.floor(n/1e3)}s) is too ${r?"short":"long"}, not sending replay.`, this._options._experiments.traceInternals), void(r && this._debouncedFlush());
|
|
const i = this.eventBuffer;
|
|
if (i && 0 === this.session.segmentId && !i.hasCheckout && qg("[Replay] Flushing initial segment without checkout.", this._options._experiments.traceInternals), !this._flushLock) return this._flushLock = this._runFlush(), await this._flushLock, void(this._flushLock = void 0);
|
|
try {
|
|
await this._flushLock
|
|
} catch (e) {
|
|
zg && Fa.error(e)
|
|
} finally {
|
|
this._debouncedFlush()
|
|
}
|
|
}
|
|
}
|
|
_maybeSaveSession() {
|
|
this.session && this._options.stickySession && oy(this.session)
|
|
}
|
|
__init6() {
|
|
this._onMutationHandler = e => {
|
|
const t = e.length,
|
|
n = this._options.mutationLimit,
|
|
r = n && t > n;
|
|
if (t > this._options.mutationBreadcrumbLimit || r) {
|
|
const e = Rg({
|
|
category: "replay.mutations",
|
|
data: {
|
|
count: t,
|
|
limit: r
|
|
}
|
|
});
|
|
this._createCustomBreadcrumb(e)
|
|
}
|
|
return !r || (this.stop({
|
|
reason: "mutationLimit",
|
|
forceFlush: "session" === this.recordingMode
|
|
}), !1)
|
|
}
|
|
}
|
|
}
|
|
|
|
function Xy(e, t, n, r) {
|
|
const o = [...e, ..."string" == typeof r ? r.split(",") : [], ...t];
|
|
return void 0 !== n && ("string" == typeof n && o.push(`.${n}`), La(() => {
|
|
console.warn("[Replay] You are using a deprecated configuration item for privacy. Read the documentation on how to use the new privacy configuration.")
|
|
})), o.join(",")
|
|
}
|
|
const Zy = 'img,image,svg,video,object,picture,embed,map,audio,link[rel="icon"],link[rel="apple-touch-icon"]',
|
|
ev = ["content-length", "content-type", "accept"];
|
|
let tv = !1;
|
|
const nv = e => new rv(e);
|
|
class rv {
|
|
static __initStatic() {
|
|
this.id = "Replay"
|
|
}
|
|
constructor({
|
|
flushMinDelay: e = 5e3,
|
|
flushMaxDelay: t = 5500,
|
|
minReplayDuration: n = 4999,
|
|
maxReplayDuration: r = 36e5,
|
|
stickySession: o = !0,
|
|
useCompression: i = !0,
|
|
workerUrl: a,
|
|
_experiments: s = {},
|
|
sessionSampleRate: c,
|
|
errorSampleRate: u,
|
|
maskAllText: l = !0,
|
|
maskAllInputs: f = !0,
|
|
blockAllMedia: d = !0,
|
|
mutationBreadcrumbLimit: p = 750,
|
|
mutationLimit: h = 1e4,
|
|
slowClickTimeout: m = 7e3,
|
|
slowClickIgnoreSelectors: g = [],
|
|
networkDetailAllowUrls: y = [],
|
|
networkDetailDenyUrls: v = [],
|
|
networkCaptureBodies: b = !0,
|
|
networkRequestHeaders: _ = [],
|
|
networkResponseHeaders: S = [],
|
|
mask: w = [],
|
|
maskAttributes: O = ["title", "placeholder"],
|
|
unmask: E = [],
|
|
block: k = [],
|
|
unblock: T = [],
|
|
ignore: x = [],
|
|
maskFn: I,
|
|
beforeAddRecordingEvent: P,
|
|
beforeErrorSampling: A,
|
|
blockClass: C,
|
|
blockSelector: j,
|
|
maskInputOptions: R,
|
|
maskTextClass: M,
|
|
maskTextSelector: D,
|
|
ignoreClass: N
|
|
} = {}) {
|
|
this.name = rv.id;
|
|
const L = function({
|
|
mask: e,
|
|
unmask: t,
|
|
block: n,
|
|
unblock: r,
|
|
ignore: o,
|
|
blockClass: i,
|
|
blockSelector: a,
|
|
maskTextClass: s,
|
|
maskTextSelector: c,
|
|
ignoreClass: u
|
|
}) {
|
|
const l = {
|
|
maskTextSelector: Xy(e, [".sentry-mask", "[data-sentry-mask]"], s, c),
|
|
unmaskTextSelector: Xy(t, [".sentry-unmask", "[data-sentry-unmask]"]),
|
|
blockSelector: Xy(n, [".sentry-block", "[data-sentry-block]", 'base[href="/"]'], i, a),
|
|
unblockSelector: Xy(r, [".sentry-unblock", "[data-sentry-unblock]"]),
|
|
ignoreSelector: Xy(o, [".sentry-ignore", "[data-sentry-ignore]", 'input[type="file"]'], u)
|
|
};
|
|
return i instanceof RegExp && (l.blockClass = i), s instanceof RegExp && (l.maskTextClass = s), l
|
|
}({
|
|
mask: w,
|
|
unmask: E,
|
|
block: k,
|
|
unblock: T,
|
|
ignore: x,
|
|
blockClass: C,
|
|
blockSelector: j,
|
|
maskTextClass: M,
|
|
maskTextSelector: D,
|
|
ignoreClass: N
|
|
});
|
|
if (this._recordingOptions = {
|
|
maskAllInputs: f,
|
|
maskAllText: l,
|
|
maskInputOptions: {
|
|
...R || {},
|
|
password: !0
|
|
},
|
|
maskTextFn: I,
|
|
maskInputFn: I,
|
|
maskAttributeFn: (e, t, n) => function({
|
|
el: e,
|
|
key: t,
|
|
maskAttributes: n,
|
|
maskAllText: r,
|
|
privacyOptions: o,
|
|
value: i
|
|
}) {
|
|
return r ? o.unmaskTextSelector && e.matches(o.unmaskTextSelector) ? i : n.includes(t) || "value" === t && "INPUT" === e.tagName && ["submit", "button"].includes(e.getAttribute("type") || "") ? i.replace(/[\S]/g, "*") : i : i
|
|
}({
|
|
maskAttributes: O,
|
|
maskAllText: l,
|
|
privacyOptions: L,
|
|
key: e,
|
|
value: t,
|
|
el: n
|
|
}),
|
|
...L,
|
|
slimDOMOptions: "all",
|
|
inlineStylesheet: !0,
|
|
inlineImages: !1,
|
|
collectFonts: !0,
|
|
errorHandler: e => {
|
|
try {
|
|
e.__rrweb__ = !0
|
|
} catch (e) {}
|
|
}
|
|
}, this._initialOptions = {
|
|
flushMinDelay: e,
|
|
flushMaxDelay: t,
|
|
minReplayDuration: Math.min(n, 15e3),
|
|
maxReplayDuration: Math.min(r, bh),
|
|
stickySession: o,
|
|
sessionSampleRate: c,
|
|
errorSampleRate: u,
|
|
useCompression: i,
|
|
workerUrl: a,
|
|
blockAllMedia: d,
|
|
maskAllInputs: f,
|
|
maskAllText: l,
|
|
mutationBreadcrumbLimit: p,
|
|
mutationLimit: h,
|
|
slowClickTimeout: m,
|
|
slowClickIgnoreSelectors: g,
|
|
networkDetailAllowUrls: y,
|
|
networkDetailDenyUrls: v,
|
|
networkCaptureBodies: b,
|
|
networkRequestHeaders: ov(_),
|
|
networkResponseHeaders: ov(S),
|
|
beforeAddRecordingEvent: P,
|
|
beforeErrorSampling: A,
|
|
_experiments: s
|
|
}, "number" == typeof c && (console.warn(`[Replay] You are passing \`sessionSampleRate\` to the Replay integration.\nThis option is deprecated and will be removed soon.\nInstead, configure \`replaysSessionSampleRate\` directly in the SDK init options, e.g.:\nSentry.init({ replaysSessionSampleRate: ${c} })`), this._initialOptions.sessionSampleRate = c), "number" == typeof u && (console.warn(`[Replay] You are passing \`errorSampleRate\` to the Replay integration.\nThis option is deprecated and will be removed soon.\nInstead, configure \`replaysOnErrorSampleRate\` directly in the SDK init options, e.g.:\nSentry.init({ replaysOnErrorSampleRate: ${u} })`), this._initialOptions.errorSampleRate = u), this._initialOptions.blockAllMedia && (this._recordingOptions.blockSelector = this._recordingOptions.blockSelector ? `${this._recordingOptions.blockSelector},${Zy}` : Zy), this._isInitialized && kp()) throw new Error("Multiple Sentry Session Replay instances are not supported");
|
|
this._isInitialized = !0
|
|
}
|
|
get _isInitialized() {
|
|
return tv
|
|
}
|
|
set _isInitialized(e) {
|
|
tv = e
|
|
}
|
|
setupOnce() {
|
|
kp() && (this._setup(), setTimeout(() => this._initialize()))
|
|
}
|
|
start() {
|
|
this._replay && this._replay.start()
|
|
}
|
|
startBuffering() {
|
|
this._replay && this._replay.startBuffering()
|
|
}
|
|
stop() {
|
|
return this._replay ? this._replay.stop({
|
|
forceFlush: "session" === this._replay.recordingMode
|
|
}) : Promise.resolve()
|
|
}
|
|
flush(e) {
|
|
return this._replay && this._replay.isEnabled() ? this._replay.sendBufferedReplayOrFlush(e) : Promise.resolve()
|
|
}
|
|
getReplayId() {
|
|
if (this._replay && this._replay.isEnabled()) return this._replay.getSessionId()
|
|
}
|
|
_initialize() {
|
|
this._replay && (this._maybeLoadFromReplayCanvasIntegration(), this._replay.initializeSampling())
|
|
}
|
|
_setup() {
|
|
const e = function(e) {
|
|
const t = Uc(),
|
|
n = t && t.getOptions(),
|
|
r = {
|
|
sessionSampleRate: 0,
|
|
errorSampleRate: 0,
|
|
...Qa(e)
|
|
};
|
|
if (!n) return La(() => {
|
|
console.warn("SDK client is not available.")
|
|
}), r;
|
|
null == e.sessionSampleRate && null == e.errorSampleRate && null == n.replaysSessionSampleRate && null == n.replaysOnErrorSampleRate && La(() => {
|
|
console.warn("Replay is disabled because neither `replaysSessionSampleRate` nor `replaysOnErrorSampleRate` are set.")
|
|
});
|
|
"number" == typeof n.replaysSessionSampleRate && (r.sessionSampleRate = n.replaysSessionSampleRate);
|
|
"number" == typeof n.replaysOnErrorSampleRate && (r.errorSampleRate = n.replaysOnErrorSampleRate);
|
|
return r
|
|
}(this._initialOptions);
|
|
this._replay = new Qy({
|
|
options: e,
|
|
recordingOptions: this._recordingOptions
|
|
})
|
|
}
|
|
_maybeLoadFromReplayCanvasIntegration() {
|
|
try {
|
|
const e = Uc().getIntegrationByName("ReplayCanvas");
|
|
if (!e) return;
|
|
this._replay._canvas = e.getOptions()
|
|
} catch (e) {}
|
|
}
|
|
}
|
|
|
|
function ov(e) {
|
|
return [...ev, ...e.map(e => e.toLowerCase())]
|
|
}
|
|
|
|
function iv() {
|
|
const e = Uc();
|
|
return e && e.getIntegrationByName && e.getIntegrationByName("Replay")
|
|
}
|
|
rv.__initStatic();
|
|
var av;
|
|
|
|
function sv(e, t, n = 1 / 0, r = 0) {
|
|
return e ? e.nodeType !== e.ELEMENT_NODE || r > n ? -1 : t(e) ? r : sv(e.parentNode, t, n, r + 1) : -1
|
|
}
|
|
|
|
function cv(e, t) {
|
|
return n => {
|
|
const r = n;
|
|
if (null === r) return !1;
|
|
try {
|
|
if (e)
|
|
if ("string" == typeof e) {
|
|
if (r.matches(`.${e}`)) return !0
|
|
} else if (function(e, t) {
|
|
for (let n = e.classList.length; n--;) {
|
|
const r = e.classList[n];
|
|
if (t.test(r)) return !0
|
|
}
|
|
return !1
|
|
}(r, e)) return !0;
|
|
return !(!t || !r.matches(t))
|
|
} catch (e) {
|
|
return !1
|
|
}
|
|
}
|
|
}! function(e) {
|
|
e[e.Document = 0] = "Document", e[e.DocumentType = 1] = "DocumentType", e[e.Element = 2] = "Element", e[e.Text = 3] = "Text", e[e.CDATA = 4] = "CDATA", e[e.Comment = 5] = "Comment"
|
|
}(av || (av = {}));
|
|
const uv = "Please stop import mirror directly. Instead of that,\r\nnow you can use replayer.getMirror() to access the mirror instance of a replayer,\r\nor you can use record.mirror to access the mirror instance during recording.";
|
|
let lv = {
|
|
map: {},
|
|
getId: () => (console.error(uv), -1),
|
|
getNode: () => (console.error(uv), null),
|
|
removeNodeFromMap() {
|
|
console.error(uv)
|
|
},
|
|
has: () => (console.error(uv), !1),
|
|
reset() {
|
|
console.error(uv)
|
|
}
|
|
};
|
|
|
|
function fv(e, t, n, r, o = window) {
|
|
const i = o.Object.getOwnPropertyDescriptor(e, t);
|
|
return o.Object.defineProperty(e, t, r ? n : {
|
|
set(e) {
|
|
yv(() => {
|
|
n.set.call(this, e)
|
|
}, 0), i && i.set && i.set.call(this, e)
|
|
}
|
|
}), () => fv(e, t, i || {}, !0)
|
|
}
|
|
|
|
function dv(e, t, n) {
|
|
try {
|
|
if (!(t in e)) return () => {};
|
|
const r = e[t],
|
|
o = n(r);
|
|
return "function" == typeof o && (o.prototype = o.prototype || {}, Object.defineProperties(o, {
|
|
__rrweb_original__: {
|
|
enumerable: !1,
|
|
value: r
|
|
}
|
|
})), e[t] = o, () => {
|
|
e[t] = r
|
|
}
|
|
} catch (e) {
|
|
return () => {}
|
|
}
|
|
}
|
|
|
|
function pv(e, t, n, r, o) {
|
|
if (!e) return !1;
|
|
const i = function(e) {
|
|
return e ? e.nodeType === e.ELEMENT_NODE ? e : e.parentElement : null
|
|
}(e);
|
|
if (!i) return !1;
|
|
const a = cv(t, n);
|
|
if (!o) {
|
|
const e = r && i.matches(r);
|
|
return a(i) && !e
|
|
}
|
|
const s = sv(i, a);
|
|
let c = -1;
|
|
return !(s < 0) && (r && (c = sv(i, cv(null, r))), s > -1 && c < 0 || s < c)
|
|
}
|
|
"undefined" != typeof window && window.Proxy && window.Reflect && (lv = new Proxy(lv, {
|
|
get: (e, t, n) => ("map" === t && console.error(uv), Reflect.get(e, t, n))
|
|
})), /[1-9][0-9]{12}/.test(Date.now().toString());
|
|
const hv = {};
|
|
|
|
function mv(e) {
|
|
const t = hv[e];
|
|
if (t) return t;
|
|
const n = window.document;
|
|
let r = window[e];
|
|
if (n && "function" == typeof n.createElement) try {
|
|
const t = n.createElement("iframe");
|
|
t.hidden = !0, n.head.appendChild(t);
|
|
const o = t.contentWindow;
|
|
o && o[e] && (r = o[e]), n.head.removeChild(t)
|
|
} catch (e) {}
|
|
return hv[e] = r.bind(window)
|
|
}
|
|
|
|
function gv(...e) {
|
|
return mv("requestAnimationFrame")(...e)
|
|
}
|
|
|
|
function yv(...e) {
|
|
return mv("setTimeout")(...e)
|
|
}
|
|
var vv = (e => (e[e["2D"] = 0] = "2D", e[e.WebGL = 1] = "WebGL", e[e.WebGL2 = 2] = "WebGL2", e))(vv || {});
|
|
let bv;
|
|
const _v = e => {
|
|
if (!bv) return e;
|
|
return (...t) => {
|
|
try {
|
|
return e(...t)
|
|
} catch (e) {
|
|
if (bv && !0 === bv(e)) return () => {};
|
|
throw e
|
|
}
|
|
}
|
|
};
|
|
for (var Sv = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", wv = "undefined" == typeof Uint8Array ? [] : new Uint8Array(256), Ov = 0; Ov < 64; Ov++) wv[Sv.charCodeAt(Ov)] = Ov;
|
|
const Ev = new Map;
|
|
const kv = (e, t, n) => {
|
|
if (!e || !Iv(e, t) && "object" != typeof e) return;
|
|
const r = function(e, t) {
|
|
let n = Ev.get(e);
|
|
return n || (n = new Map, Ev.set(e, n)), n.has(t) || n.set(t, []), n.get(t)
|
|
}(n, e.constructor.name);
|
|
let o = r.indexOf(e);
|
|
return -1 === o && (o = r.length, r.push(e)), o
|
|
};
|
|
|
|
function Tv(e, t, n) {
|
|
if (e instanceof Array) return e.map(e => Tv(e, t, n));
|
|
if (null === e) return e;
|
|
if (e instanceof Float32Array || e instanceof Float64Array || e instanceof Int32Array || e instanceof Uint32Array || e instanceof Uint8Array || e instanceof Uint16Array || e instanceof Int16Array || e instanceof Int8Array || e instanceof Uint8ClampedArray) {
|
|
return {
|
|
rr_type: e.constructor.name,
|
|
args: [Object.values(e)]
|
|
}
|
|
}
|
|
if (e instanceof ArrayBuffer) {
|
|
const t = e.constructor.name,
|
|
n = function(e) {
|
|
var t, n = new Uint8Array(e),
|
|
r = n.length,
|
|
o = "";
|
|
for (t = 0; t < r; t += 3) o += Sv[n[t] >> 2], o += Sv[(3 & n[t]) << 4 | n[t + 1] >> 4], o += Sv[(15 & n[t + 1]) << 2 | n[t + 2] >> 6], o += Sv[63 & n[t + 2]];
|
|
return r % 3 == 2 ? o = o.substring(0, o.length - 1) + "=" : r % 3 == 1 && (o = o.substring(0, o.length - 2) + "=="), o
|
|
}(e);
|
|
return {
|
|
rr_type: t,
|
|
base64: n
|
|
}
|
|
}
|
|
if (e instanceof DataView) {
|
|
return {
|
|
rr_type: e.constructor.name,
|
|
args: [Tv(e.buffer, t, n), e.byteOffset, e.byteLength]
|
|
}
|
|
}
|
|
if (e instanceof HTMLImageElement) {
|
|
const t = e.constructor.name,
|
|
{
|
|
src: n
|
|
} = e;
|
|
return {
|
|
rr_type: t,
|
|
src: n
|
|
}
|
|
}
|
|
if (e instanceof HTMLCanvasElement) {
|
|
return {
|
|
rr_type: "HTMLImageElement",
|
|
src: e.toDataURL()
|
|
}
|
|
}
|
|
if (e instanceof ImageData) {
|
|
return {
|
|
rr_type: e.constructor.name,
|
|
args: [Tv(e.data, t, n), e.width, e.height]
|
|
}
|
|
}
|
|
if (Iv(e, t) || "object" == typeof e) {
|
|
return {
|
|
rr_type: e.constructor.name,
|
|
index: kv(e, t, n)
|
|
}
|
|
}
|
|
return e
|
|
}
|
|
const xv = (e, t, n) => e.map(e => Tv(e, t, n)),
|
|
Iv = (e, t) => {
|
|
const n = ["WebGLActiveInfo", "WebGLBuffer", "WebGLFramebuffer", "WebGLProgram", "WebGLRenderbuffer", "WebGLShader", "WebGLShaderPrecisionFormat", "WebGLTexture", "WebGLUniformLocation", "WebGLVertexArrayObject", "WebGLVertexArrayObjectOES"].filter(e => "function" == typeof t[e]);
|
|
return Boolean(n.find(n => e instanceof t[n]))
|
|
};
|
|
|
|
function Pv(e, t, n, r, o) {
|
|
const i = [];
|
|
try {
|
|
const a = dv(e.HTMLCanvasElement.prototype, "getContext", function(e) {
|
|
return function(i, ...a) {
|
|
if (!pv(this, t, n, r, !0)) {
|
|
const e = function(e) {
|
|
return "experimental-webgl" === e ? "webgl" : e
|
|
}(i);
|
|
if ("__context" in this || (this.__context = e), o && ["webgl", "webgl2"].includes(e))
|
|
if (a[0] && "object" == typeof a[0]) {
|
|
const e = a[0];
|
|
e.preserveDrawingBuffer || (e.preserveDrawingBuffer = !0)
|
|
} else a.splice(0, 1, {
|
|
preserveDrawingBuffer: !0
|
|
})
|
|
}
|
|
return e.apply(this, [i, ...a])
|
|
}
|
|
});
|
|
i.push(a)
|
|
} catch (e) {
|
|
console.error("failed to patch HTMLCanvasElement.prototype.getContext")
|
|
}
|
|
return () => {
|
|
i.forEach(e => e())
|
|
}
|
|
}
|
|
|
|
function Av(e, t, n, r, o, i, a, s) {
|
|
const c = [],
|
|
u = Object.getOwnPropertyNames(e);
|
|
for (const a of u)
|
|
if (!["isContextLost", "canvas", "drawingBufferWidth", "drawingBufferHeight"].includes(a)) try {
|
|
if ("function" != typeof e[a]) continue;
|
|
const u = dv(e, a, function(e) {
|
|
return function(...c) {
|
|
const u = e.apply(this, c);
|
|
if (kv(u, s, this), "tagName" in this.canvas && !pv(this.canvas, r, o, i, !0)) {
|
|
const e = xv(c, s, this),
|
|
r = {
|
|
type: t,
|
|
property: a,
|
|
args: e
|
|
};
|
|
n(this.canvas, r)
|
|
}
|
|
return u
|
|
}
|
|
});
|
|
c.push(u)
|
|
} catch (r) {
|
|
const o = fv(e, a, {
|
|
set(e) {
|
|
n(this.canvas, {
|
|
type: t,
|
|
property: a,
|
|
args: [e],
|
|
setter: !0
|
|
})
|
|
}
|
|
});
|
|
c.push(o)
|
|
}
|
|
return c
|
|
}
|
|
class Cv {
|
|
reset() {
|
|
this.pendingCanvasMutations.clear(), this.resetObservers && this.resetObservers()
|
|
}
|
|
freeze() {
|
|
this.frozen = !0
|
|
}
|
|
unfreeze() {
|
|
this.frozen = !1
|
|
}
|
|
lock() {
|
|
this.locked = !0
|
|
}
|
|
unlock() {
|
|
this.locked = !1
|
|
}
|
|
constructor(e) {
|
|
this.pendingCanvasMutations = new Map, this.rafStamps = {
|
|
latestId: 0,
|
|
invokeId: null
|
|
}, this.frozen = !1, this.locked = !1, this.processMutation = (e, t) => {
|
|
!(this.rafStamps.invokeId && this.rafStamps.latestId !== this.rafStamps.invokeId) && this.rafStamps.invokeId || (this.rafStamps.invokeId = this.rafStamps.latestId), this.pendingCanvasMutations.has(e) || this.pendingCanvasMutations.set(e, []), this.pendingCanvasMutations.get(e).push(t)
|
|
};
|
|
const {
|
|
sampling: t = "all",
|
|
win: n,
|
|
blockClass: r,
|
|
blockSelector: o,
|
|
unblockSelector: i,
|
|
maxCanvasSize: a,
|
|
recordCanvas: s,
|
|
dataURLOptions: c,
|
|
errorHandler: u
|
|
} = e;
|
|
this.mutationCb = e.mutationCb, this.mirror = e.mirror, this.options = e, u && (bv = u), e.enableManualSnapshot || _v(() => {
|
|
s && "all" === t && this.initCanvasMutationObserver(n, r, o, i), s && "number" == typeof t && this.initCanvasFPSObserver(t, n, r, o, i, a, {
|
|
dataURLOptions: c
|
|
})
|
|
})()
|
|
}
|
|
initCanvasFPSObserver(e, t, n, r, o, i, a) {
|
|
const s = Pv(t, n, r, o, !0),
|
|
c = this.takeSnapshot(!1, e, t, n, r, o, i, a.dataURLOptions);
|
|
this.resetObservers = () => {
|
|
s(), cancelAnimationFrame(c)
|
|
}
|
|
}
|
|
initCanvasMutationObserver(e, t, n, r) {
|
|
this.startRAFTimestamping(), this.startPendingCanvasMutationFlusher();
|
|
const o = Pv(e, t, n, r, !1),
|
|
i = function(e, t, n, r, o) {
|
|
const i = [],
|
|
a = Object.getOwnPropertyNames(t.CanvasRenderingContext2D.prototype);
|
|
for (const s of a) try {
|
|
if ("function" != typeof t.CanvasRenderingContext2D.prototype[s]) continue;
|
|
const a = dv(t.CanvasRenderingContext2D.prototype, s, function(i) {
|
|
return function(...a) {
|
|
return pv(this.canvas, n, r, o, !0) || yv(() => {
|
|
const n = xv(a, t, this);
|
|
e(this.canvas, {
|
|
type: vv["2D"],
|
|
property: s,
|
|
args: n
|
|
})
|
|
}, 0), i.apply(this, a)
|
|
}
|
|
});
|
|
i.push(a)
|
|
} catch (n) {
|
|
const r = fv(t.CanvasRenderingContext2D.prototype, s, {
|
|
set(t) {
|
|
e(this.canvas, {
|
|
type: vv["2D"],
|
|
property: s,
|
|
args: [t],
|
|
setter: !0
|
|
})
|
|
}
|
|
});
|
|
i.push(r)
|
|
}
|
|
return () => {
|
|
i.forEach(e => e())
|
|
}
|
|
}(this.processMutation.bind(this), e, t, n, r),
|
|
a = function(e, t, n, r, o) {
|
|
const i = [];
|
|
return i.push(...Av(t.WebGLRenderingContext.prototype, vv.WebGL, e, n, r, o, 0, t)), void 0 !== t.WebGL2RenderingContext && i.push(...Av(t.WebGL2RenderingContext.prototype, vv.WebGL2, e, n, r, o, 0, t)), () => {
|
|
i.forEach(e => e())
|
|
}
|
|
}(this.processMutation.bind(this), e, t, n, r, this.mirror);
|
|
this.resetObservers = () => {
|
|
o(), i(), a()
|
|
}
|
|
}
|
|
snapshot(e) {
|
|
const {
|
|
options: t
|
|
} = this, n = this.takeSnapshot(!0, "all" === t.sampling ? 2 : t.sampling || 2, t.win, t.blockClass, t.blockSelector, t.unblockSelector, t.maxCanvasSize, t.dataURLOptions, e);
|
|
this.resetObservers = () => {
|
|
cancelAnimationFrame(n)
|
|
}
|
|
}
|
|
takeSnapshot(e, t, n, r, o, i, a, s, c) {
|
|
const u = new Map,
|
|
l = new Worker(function() {
|
|
const e = new Blob(['for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t="undefined"==typeof Uint8Array?[]:new Uint8Array(256),a=0;a<64;a++)t[e.charCodeAt(a)]=a;var n=function(t){var a,n=new Uint8Array(t),r=n.length,s="";for(a=0;a<r;a+=3)s+=e[n[a]>>2],s+=e[(3&n[a])<<4|n[a+1]>>4],s+=e[(15&n[a+1])<<2|n[a+2]>>6],s+=e[63&n[a+2]];return r%3==2?s=s.substring(0,s.length-1)+"=":r%3==1&&(s=s.substring(0,s.length-2)+"=="),s};const r=new Map,s=new Map;const i=self;i.onmessage=async function(e){if(!("OffscreenCanvas"in globalThis))return i.postMessage({id:e.data.id});{const{id:t,bitmap:a,width:o,height:f,maxCanvasSize:c,dataURLOptions:g}=e.data,u=async function(e,t,a){const r=e+"-"+t;if("OffscreenCanvas"in globalThis){if(s.has(r))return s.get(r);const i=new OffscreenCanvas(e,t);i.getContext("2d");const o=await i.convertToBlob(a),f=await o.arrayBuffer(),c=n(f);return s.set(r,c),c}return""}(o,f,g),[h,d]=function(e,t,a){if(!a)return[e,t];const[n,r]=a;if(e<=n&&t<=r)return[e,t];let s=e,i=t;return s>n&&(i=Math.floor(n*t/e),s=n),i>r&&(s=Math.floor(r*e/t),i=r),[s,i]}(o,f,c),l=new OffscreenCanvas(h,d),w=l.getContext("bitmaprenderer"),p=h===o&&d===f?a:await createImageBitmap(a,{resizeWidth:h,resizeHeight:d,resizeQuality:"low"});w.transferFromImageBitmap(p),a.close();const y=await l.convertToBlob(g),v=y.type,b=await y.arrayBuffer(),m=n(b);if(p.close(),!r.has(t)&&await u===m)return r.set(t,m),i.postMessage({id:t});if(r.get(t)===m)return i.postMessage({id:t});i.postMessage({id:t,type:v,base64:m,width:o,height:f}),r.set(t,m)}};']);
|
|
return URL.createObjectURL(e)
|
|
}());
|
|
l.onmessage = e => {
|
|
const t = e.data,
|
|
{
|
|
id: n
|
|
} = t;
|
|
if (u.set(n, !1), !("base64" in t)) return;
|
|
const {
|
|
base64: r,
|
|
type: o,
|
|
width: i,
|
|
height: a
|
|
} = t;
|
|
this.mutationCb({
|
|
id: n,
|
|
type: vv["2D"],
|
|
commands: [{
|
|
property: "clearRect",
|
|
args: [0, 0, i, a]
|
|
}, {
|
|
property: "drawImage",
|
|
args: [{
|
|
rr_type: "ImageBitmap",
|
|
args: [{
|
|
rr_type: "Blob",
|
|
data: [{
|
|
rr_type: "ArrayBuffer",
|
|
base64: r
|
|
}],
|
|
type: o
|
|
}]
|
|
}, 0, 0, i, a]
|
|
}]
|
|
})
|
|
};
|
|
const f = 1e3 / t;
|
|
let d, p = 0;
|
|
const h = t => {
|
|
p && t - p < f || (p = t, (e => {
|
|
if (e) return [e];
|
|
const t = [];
|
|
return n.document.querySelectorAll("canvas").forEach(e => {
|
|
pv(e, r, o, i, !0) || t.push(e)
|
|
}), t
|
|
})(c).forEach(t => {
|
|
const n = this.mirror.getId(t);
|
|
if (!u.get(n) && t.width && t.height) {
|
|
if (u.set(n, !0), !e && ["webgl", "webgl2"].includes(t.__context)) {
|
|
const e = t.getContext(t.__context);
|
|
!1 === Sp([e, "optionalAccess", e => e.getContextAttributes, "call", e => e(), "optionalAccess", e => e.preserveDrawingBuffer]) && e.clear(e.COLOR_BUFFER_BIT)
|
|
}
|
|
createImageBitmap(t).then(e => {
|
|
l.postMessage({
|
|
id: n,
|
|
bitmap: e,
|
|
width: t.width,
|
|
height: t.height,
|
|
dataURLOptions: s,
|
|
maxCanvasSize: a
|
|
}, [e])
|
|
}).catch(e => {
|
|
_v(() => {
|
|
throw e
|
|
})()
|
|
})
|
|
}
|
|
})), d = gv(h)
|
|
};
|
|
return d = gv(h), d
|
|
}
|
|
startPendingCanvasMutationFlusher() {
|
|
gv(() => this.flushPendingCanvasMutations())
|
|
}
|
|
startRAFTimestamping() {
|
|
const e = t => {
|
|
this.rafStamps.latestId = t, gv(e)
|
|
};
|
|
gv(e)
|
|
}
|
|
flushPendingCanvasMutations() {
|
|
this.pendingCanvasMutations.forEach((e, t) => {
|
|
const n = this.mirror.getId(t);
|
|
this.flushPendingCanvasMutationFor(t, n)
|
|
}), gv(() => this.flushPendingCanvasMutations())
|
|
}
|
|
flushPendingCanvasMutationFor(e, t) {
|
|
if (this.frozen || this.locked) return;
|
|
const n = this.pendingCanvasMutations.get(e);
|
|
if (!n || -1 === t) return;
|
|
const r = n.map(e => {
|
|
const {
|
|
type: t,
|
|
...n
|
|
} = e;
|
|
return n
|
|
}),
|
|
{
|
|
type: o
|
|
} = n[0];
|
|
this.mutationCb({
|
|
id: t,
|
|
type: o,
|
|
commands: r
|
|
}), this.pendingCanvasMutations.delete(e)
|
|
}
|
|
}
|
|
const jv = {
|
|
low: {
|
|
sampling: {
|
|
canvas: 1
|
|
},
|
|
dataURLOptions: {
|
|
type: "image/webp",
|
|
quality: .25
|
|
}
|
|
},
|
|
medium: {
|
|
sampling: {
|
|
canvas: 2
|
|
},
|
|
dataURLOptions: {
|
|
type: "image/webp",
|
|
quality: .4
|
|
}
|
|
},
|
|
high: {
|
|
sampling: {
|
|
canvas: 4
|
|
},
|
|
dataURLOptions: {
|
|
type: "image/webp",
|
|
quality: .5
|
|
}
|
|
}
|
|
},
|
|
Rv = "ReplayCanvas",
|
|
Mv = 1280,
|
|
Dv = (e = {}) => {
|
|
const [t, n] = e.maxCanvasSize || [], r = {
|
|
quality: e.quality || "medium",
|
|
enableManualSnapshot: e.enableManualSnapshot,
|
|
maxCanvasSize: [t ? Math.min(t, Mv) : Mv, n ? Math.min(n, Mv) : Mv]
|
|
};
|
|
let o;
|
|
const i = new Promise(e => o = e);
|
|
return {
|
|
name: Rv,
|
|
setupOnce() {},
|
|
getOptions() {
|
|
const {
|
|
quality: e,
|
|
enableManualSnapshot: t,
|
|
maxCanvasSize: n
|
|
} = r;
|
|
return {
|
|
enableManualSnapshot: t,
|
|
recordCanvas: !0,
|
|
getCanvasManager: e => {
|
|
const r = new Cv({
|
|
...e,
|
|
enableManualSnapshot: t,
|
|
maxCanvasSize: n,
|
|
errorHandler: e => {
|
|
try {
|
|
"object" == typeof e && (e.__rrweb__ = !0)
|
|
} catch (e) {}
|
|
}
|
|
});
|
|
return o(r), r
|
|
},
|
|
...jv[e || "medium"] || jv.medium
|
|
}
|
|
},
|
|
async snapshot(e) {
|
|
(await i).snapshot(e)
|
|
}
|
|
}
|
|
},
|
|
Nv = Xc(Rv, Dv),
|
|
Lv = Ea,
|
|
Fv = "#ffffff",
|
|
Bv = "inherit",
|
|
Uv = "rgba(108, 95, 199, 1)",
|
|
Gv = {
|
|
fontFamily: "system-ui, 'Helvetica Neue', Arial, sans-serif",
|
|
fontSize: "14px",
|
|
background: Fv,
|
|
backgroundHover: "#f6f6f7",
|
|
foreground: "#2b2233",
|
|
border: "1.5px solid rgba(41, 35, 47, 0.13)",
|
|
borderRadius: "25px",
|
|
boxShadow: "0px 4px 24px 0px rgba(43, 34, 51, 0.12)",
|
|
success: "#268d75",
|
|
error: "#df3338",
|
|
submitBackground: "rgba(88, 74, 192, 1)",
|
|
submitBackgroundHover: Uv,
|
|
submitBorder: Uv,
|
|
submitOutlineFocus: "#29232f",
|
|
submitForeground: Fv,
|
|
submitForegroundHover: Fv,
|
|
cancelBackground: "transparent",
|
|
cancelBackgroundHover: "var(--background-hover)",
|
|
cancelBorder: "var(--border)",
|
|
cancelOutlineFocus: "var(--input-outline-focus)",
|
|
cancelForeground: "var(--foreground)",
|
|
cancelForegroundHover: "var(--foreground)",
|
|
inputBackground: Bv,
|
|
inputForeground: Bv,
|
|
inputBorder: "var(--border)",
|
|
inputOutlineFocus: Uv,
|
|
formBorderRadius: "20px",
|
|
formContentBorderRadius: "6px"
|
|
},
|
|
$v = Gv,
|
|
Hv = {
|
|
...Gv,
|
|
background: "#29232f",
|
|
backgroundHover: "#352f3b",
|
|
foreground: "#ebe6ef",
|
|
border: "1.5px solid rgba(235, 230, 239, 0.15)",
|
|
success: "#2da98c",
|
|
error: "#f55459"
|
|
},
|
|
zv = "widget",
|
|
qv = "api";
|
|
async function Wv({
|
|
feedback: {
|
|
message: e,
|
|
email: t,
|
|
name: n,
|
|
source: r,
|
|
url: o
|
|
}
|
|
}, {
|
|
includeReplay: i = !0
|
|
} = {}) {
|
|
const a = Uc(),
|
|
s = a && a.getTransport(),
|
|
c = a && a.getDsn();
|
|
if (!a || !s || !c) return;
|
|
const u = {
|
|
contexts: {
|
|
feedback: {
|
|
contact_email: t,
|
|
name: n,
|
|
message: e,
|
|
url: o,
|
|
source: r
|
|
}
|
|
},
|
|
type: "feedback"
|
|
};
|
|
return Rc(async e => {
|
|
e.clearBreadcrumbs(), [qv, zv].includes(String(r)) && e.setLevel("info");
|
|
const t = await async function({
|
|
client: e,
|
|
scope: t,
|
|
event: n
|
|
}) {
|
|
const r = {};
|
|
e.emit && e.emit("preprocessEvent", n, r);
|
|
const o = await vc(e.getOptions(), n, r, t, e, rc());
|
|
return null === o ? (e.recordDroppedEvent("event_processor", "feedback", n), null) : (o.platform = o.platform || "javascript", o)
|
|
}({
|
|
scope: e,
|
|
client: a,
|
|
event: u
|
|
});
|
|
if (!t) return;
|
|
a.emit && a.emit("beforeSendFeedback", t, {
|
|
includeReplay: Boolean(i)
|
|
});
|
|
const n = Ju(t, c, a.getOptions()._metadata, a.getOptions().tunnel);
|
|
let o;
|
|
try {
|
|
o = await s.send(n)
|
|
} catch (e) {
|
|
const t = new Error("Unable to send Feedback");
|
|
try {
|
|
t.cause = e
|
|
} catch (e) {}
|
|
throw t
|
|
}
|
|
if (o) {
|
|
if ("number" == typeof o.statusCode && (o.statusCode < 200 || o.statusCode >= 300)) throw new Error("Unable to send Feedback");
|
|
return o
|
|
}
|
|
})
|
|
}
|
|
|
|
function Vv({
|
|
name: e,
|
|
email: t,
|
|
message: n,
|
|
source: r = qv,
|
|
url: o = Ca()
|
|
}, i = {}) {
|
|
if (!n) throw new Error("Unable to submit feedback with empty message");
|
|
return Wv({
|
|
feedback: {
|
|
name: e,
|
|
email: t,
|
|
message: n,
|
|
url: o,
|
|
source: r
|
|
}
|
|
}, i)
|
|
}
|
|
const Yv = "undefined" == typeof __SENTRY_DEBUG__ || __SENTRY_DEBUG__;
|
|
|
|
function Jv(e, t) {
|
|
return {
|
|
...e,
|
|
...t,
|
|
themeDark: {
|
|
...e.themeDark,
|
|
...t.themeDark
|
|
},
|
|
themeLight: {
|
|
...e.themeLight,
|
|
...t.themeLight
|
|
}
|
|
}
|
|
}
|
|
|
|
function Kv(e) {
|
|
return `\n --background: ${e.background};\n --background-hover: ${e.backgroundHover};\n --foreground: ${e.foreground};\n --error: ${e.error};\n --success: ${e.success};\n --border: ${e.border};\n --border-radius: ${e.borderRadius};\n --box-shadow: ${e.boxShadow};\n\n --submit-background: ${e.submitBackground};\n --submit-background-hover: ${e.submitBackgroundHover};\n --submit-border: ${e.submitBorder};\n --submit-outline-focus: ${e.submitOutlineFocus};\n --submit-foreground: ${e.submitForeground};\n --submit-foreground-hover: ${e.submitForegroundHover};\n\n --cancel-background: ${e.cancelBackground};\n --cancel-background-hover: ${e.cancelBackgroundHover};\n --cancel-border: ${e.cancelBorder};\n --cancel-outline-focus: ${e.cancelOutlineFocus};\n --cancel-foreground: ${e.cancelForeground};\n --cancel-foreground-hover: ${e.cancelForegroundHover};\n\n --input-background: ${e.inputBackground};\n --input-foreground: ${e.inputForeground};\n --input-border: ${e.inputBorder};\n --input-outline-focus: ${e.inputOutlineFocus};\n\n --form-border-radius: ${e.formBorderRadius};\n --form-content-border-radius: ${e.formContentBorderRadius};\n `
|
|
}
|
|
|
|
function Qv({
|
|
id: e,
|
|
colorScheme: t,
|
|
themeDark: n,
|
|
themeLight: r
|
|
}) {
|
|
try {
|
|
const o = Lv.document,
|
|
i = o.createElement("div");
|
|
i.id = e;
|
|
const a = i.attachShadow({
|
|
mode: "open"
|
|
});
|
|
return a.appendChild(function(e, t, n) {
|
|
const r = e.createElement("style");
|
|
return r.textContent = `\n:host {\n --bottom: 1rem;\n --right: 1rem;\n --top: auto;\n --left: auto;\n --z-index: 100000;\n --font-family: ${n.light.fontFamily};\n --font-size: ${n.light.fontSize};\n\n position: fixed;\n left: var(--left);\n right: var(--right);\n bottom: var(--bottom);\n top: var(--top);\n z-index: var(--z-index);\n\n font-family: var(--font-family);\n font-size: var(--font-size);\n\n ${Kv("dark"===t?n.dark:n.light)}\n}\n\n${"system"===t?`\n@media (prefers-color-scheme: dark) {\n :host {\n ${Kv(n.dark)}\n }\n}`:""}\n}`, r
|
|
}(o, t, {
|
|
dark: n,
|
|
light: r
|
|
})), a.appendChild(function(e) {
|
|
const t = e.createElement("style");
|
|
return t.textContent = "\n.dialog {\n line-height: 25px;\n background-color: rgba(0, 0, 0, 0.05);\n border: none;\n position: fixed;\n inset: 0;\n z-index: 10000;\n width: 100vw;\n height: 100vh;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 1;\n transition: opacity 0.2s ease-in-out;\n}\n\n.dialog:not([open]) {\n opacity: 0;\n pointer-events: none;\n visibility: hidden;\n}\n.dialog:not([open]) .dialog__content {\n transform: translate(0, -16px) scale(0.98);\n}\n\n.dialog__content {\n position: fixed;\n left: var(--left);\n right: var(--right);\n bottom: var(--bottom);\n top: var(--top);\n\n border: var(--border);\n border-radius: var(--form-border-radius);\n background-color: var(--background);\n color: var(--foreground);\n\n width: 320px;\n max-width: 100%;\n max-height: calc(100% - 2rem);\n display: flex;\n flex-direction: column;\n box-shadow: var(--box-shadow);\n transition: transform 0.2s ease-in-out;\n transform: translate(0, 0) scale(1);\n}\n\n.dialog__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 20px;\n font-weight: 600;\n padding: 24px 24px 0 24px;\n margin: 0;\n margin-bottom: 16px;\n}\n\n.brand-link {\n display: inline-flex;\n}\n\n.error {\n color: var(--error);\n margin-bottom: 16px;\n}\n\n.form {\n display: grid;\n overflow: auto;\n flex-direction: column;\n gap: 16px;\n padding: 0 24px 24px;\n}\n\n.form__error-container {\n color: var(--error);\n}\n\n.form__error-container--hidden {\n display: none;\n}\n\n.form__label {\n display: flex;\n flex-direction: column;\n gap: 4px;\n margin: 0px;\n}\n\n.form__label__text {\n display: grid;\n gap: 4px;\n align-items: center;\n grid-auto-flow: column;\n grid-auto-columns: max-content;\n}\n\n.form__label__text--required {\n font-size: 0.85em;\n}\n\n.form__input {\n line-height: inherit;\n background-color: var(--input-background);\n box-sizing: border-box;\n border: var(--input-border);\n border-radius: var(--form-content-border-radius);\n color: var(--input-foreground);\n font-family: inherit;\n font-size: var(--font-size);\n font-weight: 500;\n padding: 6px 12px;\n}\n\n.form__input::placeholder {\n color: var(--input-foreground);\n opacity: 0.65;\n}\n\n.form__input:focus-visible {\n outline: 1px auto var(--input-outline-focus);\n}\n\n.form__input--textarea {\n font-family: inherit;\n resize: vertical;\n}\n\n.btn-group {\n display: grid;\n gap: 8px;\n margin-top: 8px;\n}\n\n.btn {\n line-height: inherit;\n border: var(--cancel-border);\n border-radius: var(--form-content-border-radius);\n cursor: pointer;\n font-family: inherit;\n font-size: var(--font-size);\n font-weight: 600;\n padding: 6px 16px;\n}\n.btn[disabled] {\n opacity: 0.6;\n pointer-events: none;\n}\n\n.btn--primary {\n background-color: var(--submit-background);\n border-color: var(--submit-border);\n color: var(--submit-foreground);\n}\n.btn--primary:hover {\n background-color: var(--submit-background-hover);\n color: var(--submit-foreground-hover);\n}\n.btn--primary:focus-visible {\n outline: 1px auto var(--submit-outline-focus);\n}\n\n.btn--default {\n background-color: var(--cancel-background);\n color: var(--cancel-foreground);\n font-weight: 500;\n}\n.btn--default:hover {\n background-color: var(--cancel-background-hover);\n color: var(--cancel-foreground-hover);\n}\n.btn--default:focus-visible {\n outline: 1px auto var(--cancel-outline-focus);\n}\n\n.success-message {\n background-color: var(--background);\n border: var(--border);\n border-radius: var(--border-radius);\n box-shadow: var(--box-shadow);\n font-weight: 600;\n color: var(--success);\n padding: 12px 24px;\n line-height: 25px;\n display: grid;\n align-items: center;\n grid-auto-flow: column;\n gap: 6px;\n cursor: default;\n}\n\n.success-icon path {\n fill: var(--success);\n}\n", t
|
|
}(o)), {
|
|
shadow: a,
|
|
host: i
|
|
}
|
|
} catch (e) {
|
|
throw Fa.warn("[Feedback] Browser does not support shadow DOM API"), new Error("Browser does not support shadow DOM API.")
|
|
}
|
|
}
|
|
async function Xv(e, t, n) {
|
|
if (!e) return;
|
|
e.hideError();
|
|
try {
|
|
return await Vv({
|
|
...t,
|
|
source: zv
|
|
}, n)
|
|
} catch (t) {
|
|
Yv && Fa.error(t), e && e.showError("There was a problem submitting feedback, please wait and try again.")
|
|
}
|
|
}
|
|
|
|
function Zv(e, t) {
|
|
return Object.entries(t).forEach(([t, n]) => {
|
|
e.setAttributeNS(null, t, n)
|
|
}), e
|
|
}
|
|
|
|
function eb(e, t, ...n) {
|
|
const r = Lv.document.createElement(e);
|
|
t && Object.entries(t).forEach(([e, t]) => {
|
|
"className" === e && "string" == typeof t ? r.setAttribute("class", t) : "boolean" == typeof t && t ? r.setAttribute(e, "") : "string" == typeof t ? r.setAttribute(e, t) : e.startsWith("on") && "function" == typeof t && r.addEventListener(e.substring(2).toLowerCase(), t)
|
|
});
|
|
for (const e of n) tb(r, e);
|
|
return r
|
|
}
|
|
|
|
function tb(e, t) {
|
|
const n = Lv.document;
|
|
if (null != t)
|
|
if (Array.isArray(t))
|
|
for (const n of t) tb(e, n);
|
|
else !1 === t || ("string" == typeof t ? e.appendChild(n.createTextNode(t)) : t instanceof Node ? e.appendChild(t) : e.appendChild(n.createTextNode(String(t))))
|
|
}
|
|
|
|
function nb({
|
|
buttonLabel: e,
|
|
onClick: t
|
|
}) {
|
|
const n = eb("button", {
|
|
type: "button",
|
|
className: "widget__actor",
|
|
"aria-label": e,
|
|
"aria-hidden": "false"
|
|
}, function() {
|
|
const e = e => Lv.document.createElementNS("http://www.w3.org/2000/svg", e),
|
|
t = Zv(e("svg"), {
|
|
class: "feedback-icon",
|
|
width: "20",
|
|
height: "20",
|
|
viewBox: "0 0 20 20",
|
|
fill: "none"
|
|
}),
|
|
n = Zv(e("g"), {
|
|
clipPath: "url(#clip0_57_80)"
|
|
}),
|
|
r = Zv(e("path"), {
|
|
"fill-rule": "evenodd",
|
|
"clip-rule": "evenodd",
|
|
d: "M15.6622 15H12.3997C12.2129 14.9959 12.031 14.9396 11.8747 14.8375L8.04965 12.2H7.49956V19.1C7.4875 19.3348 7.3888 19.5568 7.22256 19.723C7.05632 19.8892 6.83435 19.9879 6.59956 20H2.04956C1.80193 19.9968 1.56535 19.8969 1.39023 19.7218C1.21511 19.5467 1.1153 19.3101 1.11206 19.0625V12.2H0.949652C0.824431 12.2017 0.700142 12.1783 0.584123 12.1311C0.468104 12.084 0.362708 12.014 0.274155 11.9255C0.185602 11.8369 0.115689 11.7315 0.0685419 11.6155C0.0213952 11.4995 -0.00202913 11.3752 -0.00034808 11.25V3.75C-0.00900498 3.62067 0.0092504 3.49095 0.0532651 3.36904C0.0972798 3.24712 0.166097 3.13566 0.255372 3.04168C0.344646 2.94771 0.452437 2.87327 0.571937 2.82307C0.691437 2.77286 0.82005 2.74798 0.949652 2.75H8.04965L11.8747 0.1625C12.031 0.0603649 12.2129 0.00407221 12.3997 0H15.6622C15.9098 0.00323746 16.1464 0.103049 16.3215 0.278167C16.4966 0.453286 16.5964 0.689866 16.5997 0.9375V3.25269C17.3969 3.42959 18.1345 3.83026 18.7211 4.41679C19.5322 5.22788 19.9878 6.32796 19.9878 7.47502C19.9878 8.62209 19.5322 9.72217 18.7211 10.5333C18.1345 11.1198 17.3969 11.5205 16.5997 11.6974V14.0125C16.6047 14.1393 16.5842 14.2659 16.5395 14.3847C16.4948 14.5035 16.4268 14.6121 16.3394 14.7042C16.252 14.7962 16.147 14.8698 16.0307 14.9206C15.9144 14.9714 15.7891 14.9984 15.6622 15ZM1.89695 10.325H1.88715V4.625H8.33715C8.52423 4.62301 8.70666 4.56654 8.86215 4.4625L12.6872 1.875H14.7247V13.125H12.6872L8.86215 10.4875C8.70666 10.3835 8.52423 10.327 8.33715 10.325H2.20217C2.15205 10.3167 2.10102 10.3125 2.04956 10.3125C1.9981 10.3125 1.94708 10.3167 1.89695 10.325ZM2.98706 12.2V18.1625H5.66206V12.2H2.98706ZM16.5997 9.93612V5.01393C16.6536 5.02355 16.7072 5.03495 16.7605 5.04814C17.1202 5.13709 17.4556 5.30487 17.7425 5.53934C18.0293 5.77381 18.2605 6.06912 18.4192 6.40389C18.578 6.73866 18.6603 7.10452 18.6603 7.47502C18.6603 7.84552 18.578 8.21139 18.4192 8.54616C18.2605 8.88093 18.0293 9.17624 17.7425 9.41071C17.4556 9.64518 17.1202 9.81296 16.7605 9.90191C16.7072 9.91509 16.6536 9.9265 16.5997 9.93612Z"
|
|
});
|
|
t.appendChild(n).appendChild(r);
|
|
const o = e("defs"),
|
|
i = Zv(e("clipPath"), {
|
|
id: "clip0_57_80"
|
|
}),
|
|
a = Zv(e("rect"), {
|
|
width: "20",
|
|
height: "20",
|
|
fill: "white"
|
|
});
|
|
return i.appendChild(a), o.appendChild(i), t.appendChild(o).appendChild(i).appendChild(a), {
|
|
get el() {
|
|
return t
|
|
}
|
|
}
|
|
}().el, e ? eb("span", {
|
|
className: "widget__actor__text"
|
|
}, e) : null);
|
|
return n.addEventListener("click", function(e) {
|
|
t && t(e)
|
|
}), {
|
|
get el() {
|
|
return n
|
|
},
|
|
show: () => {
|
|
n.classList.remove("widget__actor--hidden"), n.setAttribute("aria-hidden", "false")
|
|
},
|
|
hide: () => {
|
|
n.classList.add("widget__actor--hidden"), n.setAttribute("aria-hidden", "true")
|
|
}
|
|
}
|
|
}
|
|
|
|
function rb(e, t) {
|
|
const n = e.get(t);
|
|
return "string" == typeof n ? n.trim() : ""
|
|
}
|
|
|
|
function ob({
|
|
nameLabel: e,
|
|
namePlaceholder: t,
|
|
emailLabel: n,
|
|
emailPlaceholder: r,
|
|
messageLabel: o,
|
|
messagePlaceholder: i,
|
|
isRequiredLabel: a,
|
|
cancelButtonLabel: s,
|
|
submitButtonLabel: c,
|
|
showName: u,
|
|
showEmail: l,
|
|
isNameRequired: f,
|
|
isEmailRequired: d,
|
|
defaultName: p,
|
|
defaultEmail: h,
|
|
onCancel: m,
|
|
onSubmit: g
|
|
}) {
|
|
const {
|
|
el: y
|
|
} = function({
|
|
label: e
|
|
}) {
|
|
return {
|
|
el: eb("button", {
|
|
type: "submit",
|
|
className: "btn btn--primary",
|
|
"aria-label": e
|
|
}, e)
|
|
}
|
|
}({
|
|
label: c
|
|
});
|
|
const v = eb("div", {
|
|
className: "form__error-container form__error-container--hidden",
|
|
"aria-hidden": "true"
|
|
});
|
|
const b = eb("input", {
|
|
id: "name",
|
|
type: u ? "text" : "hidden",
|
|
"aria-hidden": u ? "false" : "true",
|
|
name: "name",
|
|
required: f,
|
|
className: "form__input",
|
|
placeholder: t,
|
|
value: p
|
|
}),
|
|
_ = eb("input", {
|
|
id: "email",
|
|
type: l ? "text" : "hidden",
|
|
"aria-hidden": l ? "false" : "true",
|
|
name: "email",
|
|
required: d,
|
|
className: "form__input",
|
|
placeholder: r,
|
|
value: h
|
|
}),
|
|
S = eb("textarea", {
|
|
id: "message",
|
|
autoFocus: "true",
|
|
rows: "5",
|
|
name: "message",
|
|
required: !0,
|
|
className: "form__input form__input--textarea",
|
|
placeholder: i
|
|
}),
|
|
w = eb("button", {
|
|
type: "button",
|
|
className: "btn btn--default",
|
|
"aria-label": s,
|
|
onClick: e => {
|
|
m && m(e)
|
|
}
|
|
}, s),
|
|
O = eb("form", {
|
|
className: "form",
|
|
onSubmit: function(e) {
|
|
if (e.preventDefault(), e.target instanceof HTMLFormElement) try {
|
|
if (g) {
|
|
const t = new FormData(e.target),
|
|
n = {
|
|
name: rb(t, "name"),
|
|
email: rb(t, "email"),
|
|
message: rb(t, "message")
|
|
};
|
|
g(n)
|
|
}
|
|
} catch (e) {}
|
|
}
|
|
}, [v, u && eb("label", {
|
|
htmlFor: "name",
|
|
className: "form__label"
|
|
}, [eb("span", {
|
|
className: "form__label__text"
|
|
}, e, f && eb("span", {
|
|
className: "form__label__text--required"
|
|
}, ` ${a}`)), b]), !u && b, l && eb("label", {
|
|
htmlFor: "email",
|
|
className: "form__label"
|
|
}, [eb("span", {
|
|
className: "form__label__text"
|
|
}, n, d && eb("span", {
|
|
className: "form__label__text--required"
|
|
}, ` ${a}`)), _]), !l && _, eb("label", {
|
|
htmlFor: "message",
|
|
className: "form__label"
|
|
}, [eb("span", {
|
|
className: "form__label__text"
|
|
}, o, eb("span", {
|
|
className: "form__label__text--required"
|
|
}, ` ${a}`)), S]), eb("div", {
|
|
className: "btn-group"
|
|
}, [y, w])]);
|
|
return {
|
|
get el() {
|
|
return O
|
|
},
|
|
showError: function(e) {
|
|
v.textContent = e, v.classList.remove("form__error-container--hidden"), v.setAttribute("aria-hidden", "false")
|
|
},
|
|
hideError: function() {
|
|
v.textContent = "", v.classList.add("form__error-container--hidden"), v.setAttribute("aria-hidden", "true")
|
|
}
|
|
}
|
|
}
|
|
|
|
function ib({
|
|
formTitle: e,
|
|
showBranding: t,
|
|
showName: n,
|
|
showEmail: r,
|
|
isNameRequired: o,
|
|
isEmailRequired: i,
|
|
colorScheme: a,
|
|
defaultName: s,
|
|
defaultEmail: c,
|
|
onClosed: u,
|
|
onCancel: l,
|
|
onSubmit: f,
|
|
...d
|
|
}) {
|
|
let p = null;
|
|
|
|
function h() {
|
|
p && (p.open = !1)
|
|
}
|
|
const {
|
|
el: m,
|
|
showError: g,
|
|
hideError: y
|
|
} = ob({
|
|
showEmail: r,
|
|
showName: n,
|
|
isEmailRequired: i,
|
|
isNameRequired: o,
|
|
defaultName: s,
|
|
defaultEmail: c,
|
|
onSubmit: f,
|
|
onCancel: l,
|
|
...d
|
|
});
|
|
return p = eb("dialog", {
|
|
className: "dialog",
|
|
open: !0,
|
|
onClick: function() {
|
|
h(), u && u()
|
|
}
|
|
}, eb("div", {
|
|
className: "dialog__content",
|
|
onClick: e => {
|
|
e.stopPropagation()
|
|
}
|
|
}, eb("h2", {
|
|
className: "dialog__header"
|
|
}, e, t && eb("a", {
|
|
className: "brand-link",
|
|
target: "_blank",
|
|
href: "https://sentry.io/welcome/",
|
|
title: "Powered by Sentry",
|
|
rel: "noopener noreferrer"
|
|
}, function({
|
|
colorScheme: e
|
|
}) {
|
|
const t = e => Lv.document.createElementNS("http://www.w3.org/2000/svg", e),
|
|
n = Zv(t("svg"), {
|
|
class: "sentry-logo",
|
|
width: "32",
|
|
height: "30",
|
|
viewBox: "0 0 72 66",
|
|
fill: "none"
|
|
}),
|
|
r = Zv(t("path"), {
|
|
transform: "translate(11, 11)",
|
|
d: "M29,2.26a4.67,4.67,0,0,0-8,0L14.42,13.53A32.21,32.21,0,0,1,32.17,40.19H27.55A27.68,27.68,0,0,0,12.09,17.47L6,28a15.92,15.92,0,0,1,9.23,12.17H4.62A.76.76,0,0,1,4,39.06l2.94-5a10.74,10.74,0,0,0-3.36-1.9l-2.91,5a4.54,4.54,0,0,0,1.69,6.24A4.66,4.66,0,0,0,4.62,44H19.15a19.4,19.4,0,0,0-8-17.31l2.31-4A23.87,23.87,0,0,1,23.76,44H36.07a35.88,35.88,0,0,0-16.41-31.8l4.67-8a.77.77,0,0,1,1.05-.27c.53.29,20.29,34.77,20.66,35.17a.76.76,0,0,1-.68,1.13H40.6q.09,1.91,0,3.81h4.78A4.59,4.59,0,0,0,50,39.43a4.49,4.49,0,0,0-.62-2.28Z"
|
|
});
|
|
n.append(r);
|
|
const o = t("defs"),
|
|
i = t("style");
|
|
return i.textContent = `\n path {\n fill: ${"dark"===e?"#fff":"#362d59"};\n }`, "system" === e && (i.textContent += "\n @media (prefers-color-scheme: dark) {\n path: {\n fill: '#fff';\n }\n }\n "), o.append(i), n.append(o), {
|
|
get el() {
|
|
return n
|
|
}
|
|
}
|
|
}({
|
|
colorScheme: a
|
|
}).el)), m)), {
|
|
get el() {
|
|
return p
|
|
},
|
|
showError: g,
|
|
hideError: y,
|
|
open: function() {
|
|
p && (p.open = !0)
|
|
},
|
|
close: h,
|
|
checkIsOpen: function() {
|
|
return p && !0 === p.open || !1
|
|
}
|
|
}
|
|
}
|
|
|
|
function ab({
|
|
message: e,
|
|
onRemove: t
|
|
}) {
|
|
function n() {
|
|
r && (r.remove(), t && t())
|
|
}
|
|
const r = eb("div", {
|
|
className: "success-message",
|
|
onClick: n
|
|
}, function() {
|
|
const e = e => Lv.document.createElementNS("http://www.w3.org/2000/svg", e),
|
|
t = Zv(e("svg"), {
|
|
class: "success-icon",
|
|
width: "16",
|
|
height: "17",
|
|
viewBox: "0 0 16 17",
|
|
fill: "none"
|
|
}),
|
|
n = Zv(e("g"), {
|
|
clipPath: "url(#clip0_57_156)"
|
|
}),
|
|
r = Zv(e("path"), {
|
|
"fill-rule": "evenodd",
|
|
"clip-rule": "evenodd",
|
|
d: "M3.55544 15.1518C4.87103 16.0308 6.41775 16.5 8 16.5C10.1217 16.5 12.1566 15.6571 13.6569 14.1569C15.1571 12.6566 16 10.6217 16 8.5C16 6.91775 15.5308 5.37103 14.6518 4.05544C13.7727 2.73985 12.5233 1.71447 11.0615 1.10897C9.59966 0.503466 7.99113 0.34504 6.43928 0.653721C4.88743 0.962403 3.46197 1.72433 2.34315 2.84315C1.22433 3.96197 0.462403 5.38743 0.153721 6.93928C-0.15496 8.49113 0.00346625 10.0997 0.608967 11.5615C1.21447 13.0233 2.23985 14.2727 3.55544 15.1518ZM4.40546 3.1204C5.46945 2.40946 6.72036 2.03 8 2.03C9.71595 2.03 11.3616 2.71166 12.575 3.92502C13.7883 5.13838 14.47 6.78405 14.47 8.5C14.47 9.77965 14.0905 11.0306 13.3796 12.0945C12.6687 13.1585 11.6582 13.9878 10.476 14.4775C9.29373 14.9672 7.99283 15.0953 6.73777 14.8457C5.48271 14.596 4.32987 13.9798 3.42502 13.075C2.52018 12.1701 1.90397 11.0173 1.65432 9.76224C1.40468 8.50718 1.5328 7.20628 2.0225 6.02404C2.5122 4.8418 3.34148 3.83133 4.40546 3.1204Z"
|
|
}),
|
|
o = Zv(e("path"), {
|
|
d: "M6.68775 12.4297C6.78586 12.4745 6.89218 12.4984 7 12.5C7.11275 12.4955 7.22315 12.4664 7.32337 12.4145C7.4236 12.3627 7.51121 12.2894 7.58 12.2L12 5.63999C12.0848 5.47724 12.1071 5.28902 12.0625 5.11098C12.0178 4.93294 11.9095 4.77744 11.7579 4.67392C11.6064 4.57041 11.4221 4.52608 11.24 4.54931C11.0579 4.57254 10.8907 4.66173 10.77 4.79999L6.88 10.57L5.13 8.56999C5.06508 8.49566 4.98613 8.43488 4.89768 8.39111C4.80922 8.34735 4.713 8.32148 4.61453 8.31498C4.51605 8.30847 4.41727 8.32147 4.32382 8.35322C4.23038 8.38497 4.14413 8.43484 4.07 8.49999C3.92511 8.63217 3.83692 8.81523 3.82387 9.01092C3.81083 9.2066 3.87393 9.39976 4 9.54999L6.43 12.24C6.50187 12.3204 6.58964 12.385 6.68775 12.4297Z"
|
|
});
|
|
t.appendChild(n).append(o, r);
|
|
const i = e("defs"),
|
|
a = Zv(e("clipPath"), {
|
|
id: "clip0_57_156"
|
|
}),
|
|
s = Zv(e("rect"), {
|
|
width: "16",
|
|
height: "16",
|
|
fill: "white",
|
|
transform: "translate(0 0.5)"
|
|
});
|
|
return a.appendChild(s), i.appendChild(a), t.appendChild(i).appendChild(a).appendChild(s), {
|
|
get el() {
|
|
return t
|
|
}
|
|
}
|
|
}().el, e);
|
|
return {
|
|
el: r,
|
|
remove: n
|
|
}
|
|
}
|
|
|
|
function sb({
|
|
shadow: e,
|
|
options: {
|
|
shouldCreateActor: t = !0,
|
|
...n
|
|
},
|
|
attachTo: r
|
|
}) {
|
|
let o, i, a = !1;
|
|
async function s(t) {
|
|
if (!i) return;
|
|
const r = [];
|
|
if (n.isNameRequired && !t.name && r.push(n.nameLabel), n.isEmailRequired && !t.email && r.push(n.emailLabel), t.message || r.push(n.messageLabel), r.length > 0) return void i.showError(`Please enter in the following required fields: ${r.join(", ")}`);
|
|
await Xv(i, t) ? (p(), function() {
|
|
if (e) try {
|
|
const t = ab({
|
|
message: n.successMessageText,
|
|
onRemove: () => {
|
|
r && clearTimeout(r), u()
|
|
}
|
|
});
|
|
if (!t.el) throw new Error("Unable to show success message");
|
|
e.appendChild(t.el);
|
|
const r = setTimeout(() => {
|
|
t && t.remove()
|
|
}, 5e3)
|
|
} catch (e) {
|
|
Fa.error(e)
|
|
}
|
|
}(), n.onSubmitSuccess && n.onSubmitSuccess()) : n.onSubmitError && n.onSubmitError()
|
|
}
|
|
|
|
function c() {
|
|
const e = Uc(),
|
|
t = e && e.getIntegrationByName && e.getIntegrationByName("Replay");
|
|
t && t.flush().catch(e => {
|
|
Yv && Fa.error(e)
|
|
})
|
|
}
|
|
|
|
function u() {
|
|
o && o.show()
|
|
}
|
|
|
|
function l() {
|
|
o && o.hide()
|
|
}
|
|
|
|
function f() {
|
|
try {
|
|
if (i) return i.open(), a = !0, n.onFormOpen && n.onFormOpen(), void c();
|
|
const t = n.useSentryUser,
|
|
r = $c(),
|
|
o = r && r.getUser();
|
|
if (i = ib({
|
|
colorScheme: n.colorScheme,
|
|
showBranding: n.showBranding,
|
|
showName: n.showName || n.isNameRequired,
|
|
showEmail: n.showEmail || n.isEmailRequired,
|
|
isNameRequired: n.isNameRequired,
|
|
isEmailRequired: n.isEmailRequired,
|
|
formTitle: n.formTitle,
|
|
cancelButtonLabel: n.cancelButtonLabel,
|
|
submitButtonLabel: n.submitButtonLabel,
|
|
emailLabel: n.emailLabel,
|
|
emailPlaceholder: n.emailPlaceholder,
|
|
messageLabel: n.messageLabel,
|
|
messagePlaceholder: n.messagePlaceholder,
|
|
nameLabel: n.nameLabel,
|
|
namePlaceholder: n.namePlaceholder,
|
|
isRequiredLabel: n.isRequiredLabel,
|
|
defaultName: t && o && o[t.name] || "",
|
|
defaultEmail: t && o && o[t.email] || "",
|
|
onClosed: () => {
|
|
u(), a = !1, n.onFormClose && n.onFormClose()
|
|
},
|
|
onCancel: () => {
|
|
d(), u()
|
|
},
|
|
onSubmit: s
|
|
}), !i.el) throw new Error("Unable to open Feedback dialog");
|
|
e.appendChild(i.el), l(), n.onFormOpen && n.onFormOpen(), c()
|
|
} catch (e) {
|
|
Fa.error(e)
|
|
}
|
|
}
|
|
|
|
function d() {
|
|
i && (i.close(), a = !1, n.onFormClose && n.onFormClose())
|
|
}
|
|
|
|
function p() {
|
|
if (i) {
|
|
d();
|
|
const e = i.el;
|
|
e && e.remove(), i = void 0
|
|
}
|
|
}
|
|
|
|
function h() {
|
|
a || f(), l()
|
|
}
|
|
return r ? r.addEventListener("click", h) : t && (o = nb({
|
|
buttonLabel: n.buttonLabel,
|
|
onClick: h
|
|
}), o.el && e.appendChild(o.el)), {
|
|
get actor() {
|
|
return o
|
|
},
|
|
get dialog() {
|
|
return i
|
|
},
|
|
showActor: u,
|
|
hideActor: l,
|
|
removeActor: function() {
|
|
o && o.el && o.el.remove()
|
|
},
|
|
openDialog: f,
|
|
closeDialog: d,
|
|
removeDialog: p
|
|
}
|
|
}
|
|
const cb = Lv.document,
|
|
ub = e => new lb(e);
|
|
class lb {
|
|
static __initStatic() {
|
|
this.id = "Feedback"
|
|
}
|
|
constructor({
|
|
autoInject: e = !0,
|
|
id: t = "sentry-feedback",
|
|
isEmailRequired: n = !1,
|
|
isNameRequired: r = !1,
|
|
showBranding: o = !0,
|
|
showEmail: i = !0,
|
|
showName: a = !0,
|
|
useSentryUser: s = {
|
|
email: "email",
|
|
name: "username"
|
|
},
|
|
themeDark: c,
|
|
themeLight: u,
|
|
colorScheme: l = "system",
|
|
buttonLabel: f = "Report a Bug",
|
|
cancelButtonLabel: d = "Cancel",
|
|
submitButtonLabel: p = "Send Bug Report",
|
|
formTitle: h = "Report a Bug",
|
|
emailPlaceholder: m = "your.email@example.org",
|
|
emailLabel: g = "Email",
|
|
messagePlaceholder: y = "What's the bug? What did you expect?",
|
|
messageLabel: v = "Description",
|
|
namePlaceholder: b = "Your Name",
|
|
nameLabel: _ = "Name",
|
|
isRequiredLabel: S = "(required)",
|
|
successMessageText: w = "Thank you for your report!",
|
|
onFormClose: O,
|
|
onFormOpen: E,
|
|
onSubmitError: k,
|
|
onSubmitSuccess: T
|
|
} = {}) {
|
|
this.name = lb.id, this._host = null, this._shadow = null, this._widget = null, this._widgets = new Set, this._hasInsertedActorStyles = !1, this.options = {
|
|
autoInject: e,
|
|
showBranding: o,
|
|
id: t,
|
|
isEmailRequired: n,
|
|
isNameRequired: r,
|
|
showEmail: i,
|
|
showName: a,
|
|
useSentryUser: s,
|
|
colorScheme: l,
|
|
themeDark: {
|
|
...Hv,
|
|
...c
|
|
},
|
|
themeLight: {
|
|
...$v,
|
|
...u
|
|
},
|
|
buttonLabel: f,
|
|
cancelButtonLabel: d,
|
|
submitButtonLabel: p,
|
|
formTitle: h,
|
|
emailLabel: g,
|
|
emailPlaceholder: m,
|
|
messageLabel: v,
|
|
messagePlaceholder: y,
|
|
nameLabel: _,
|
|
namePlaceholder: b,
|
|
isRequiredLabel: S,
|
|
successMessageText: w,
|
|
onFormClose: O,
|
|
onFormOpen: E,
|
|
onSubmitError: k,
|
|
onSubmitSuccess: T
|
|
}
|
|
}
|
|
setupOnce() {
|
|
if (kp()) try {
|
|
this._cleanupWidgetIfExists();
|
|
const {
|
|
autoInject: e
|
|
} = this.options;
|
|
if (!e) return;
|
|
this._createWidget(this.options)
|
|
} catch (e) {
|
|
Yv && Fa.error(e)
|
|
}
|
|
}
|
|
openDialog() {
|
|
this._widget || this._createWidget({
|
|
...this.options,
|
|
shouldCreateActor: !1
|
|
}), this._widget && this._widget.openDialog()
|
|
}
|
|
closeDialog() {
|
|
this._widget && this._widget.closeDialog()
|
|
}
|
|
attachTo(e, t) {
|
|
try {
|
|
const n = Jv(this.options, t || {});
|
|
return this._ensureShadowHost(n, ({
|
|
shadow: t
|
|
}) => {
|
|
const r = "string" == typeof e ? cb.querySelector(e) : "function" == typeof e.addEventListener ? e : null;
|
|
if (!r) return Yv && Fa.error("[Feedback] Unable to attach to target element"), null;
|
|
const o = sb({
|
|
shadow: t,
|
|
options: n,
|
|
attachTo: r
|
|
});
|
|
return this._widgets.add(o), this._widget || (this._widget = o), o
|
|
})
|
|
} catch (e) {
|
|
return Yv && Fa.error(e), null
|
|
}
|
|
}
|
|
createWidget(e) {
|
|
try {
|
|
return this._createWidget(Jv(this.options, e || {}))
|
|
} catch (e) {
|
|
return Yv && Fa.error(e), null
|
|
}
|
|
}
|
|
removeWidget(e) {
|
|
if (!e) return !1;
|
|
try {
|
|
if (this._widgets.has(e)) return e.removeActor(), e.removeDialog(), this._widgets.delete(e), this._widget === e && (this._widget = null), !0
|
|
} catch (e) {
|
|
Yv && Fa.error(e)
|
|
}
|
|
return !1
|
|
}
|
|
getWidget() {
|
|
return this._widget
|
|
}
|
|
remove() {
|
|
this._host && this._host.remove(), this._initialize()
|
|
}
|
|
_initialize() {
|
|
this._host = null, this._shadow = null, this._widget = null, this._widgets = new Set, this._hasInsertedActorStyles = !1
|
|
}
|
|
_cleanupWidgetIfExists() {
|
|
this._host && this.remove();
|
|
const e = cb.querySelector(`#${this.options.id}`);
|
|
e && e.remove()
|
|
}
|
|
_createWidget(e) {
|
|
return this._ensureShadowHost(e, ({
|
|
shadow: t
|
|
}) => {
|
|
const n = sb({
|
|
shadow: t,
|
|
options: e
|
|
});
|
|
return !this._hasInsertedActorStyles && n.actor && (t.appendChild(function(e) {
|
|
const t = e.createElement("style");
|
|
return t.textContent = "\n.widget__actor {\n position: fixed;\n left: var(--left);\n right: var(--right);\n bottom: var(--bottom);\n top: var(--top);\n z-index: var(--z-index);\n\n line-height: 16px;\n\n display: flex;\n align-items: center;\n gap: 8px;\n\n border-radius: var(--border-radius);\n cursor: pointer;\n font-family: inherit;\n font-size: var(--font-size);\n font-weight: 600;\n padding: 16px;\n text-decoration: none;\n z-index: 9000;\n\n color: var(--foreground);\n background-color: var(--background);\n border: var(--border);\n box-shadow: var(--box-shadow);\n opacity: 1;\n transition: opacity 0.1s ease-in-out;\n}\n\n.widget__actor:hover {\n background-color: var(--background-hover);\n}\n\n.widget__actor svg {\n width: 16px;\n height: 16px;\n}\n\n.widget__actor--hidden {\n opacity: 0;\n pointer-events: none;\n visibility: hidden;\n}\n\n.widget__actor__text {\n}\n\n@media (max-width: 600px) {\n .widget__actor__text {\n display: none;\n }\n}\n\n.feedback-icon path {\n fill: var(--foreground);\n}\n", t
|
|
}(cb)), this._hasInsertedActorStyles = !0), this._widgets.add(n), this._widget || (this._widget = n), n
|
|
})
|
|
}
|
|
_ensureShadowHost(e, t) {
|
|
let n = !1;
|
|
if (!this._shadow || !this._host) {
|
|
const {
|
|
id: t,
|
|
colorScheme: r,
|
|
themeLight: o,
|
|
themeDark: i
|
|
} = e, {
|
|
shadow: a,
|
|
host: s
|
|
} = Qv({
|
|
id: t,
|
|
colorScheme: r,
|
|
themeLight: o,
|
|
themeDark: i
|
|
});
|
|
this._shadow = a, this._host = s, n = !0
|
|
}
|
|
this._host.dataset.sentryFeedbackColorscheme = e.colorScheme;
|
|
const r = t({
|
|
shadow: this._shadow,
|
|
host: this._host
|
|
});
|
|
return n && cb.body.appendChild(this._host), r
|
|
}
|
|
}
|
|
lb.__initStatic();
|
|
const fb = "CaptureConsole",
|
|
db = (e = {}) => {
|
|
const t = e.levels || Da;
|
|
return {
|
|
name: fb,
|
|
setupOnce() {},
|
|
setup(e) {
|
|
"console" in Ea && gd(({
|
|
args: n,
|
|
level: r
|
|
}) => {
|
|
Uc() === e && t.includes(r) && function(e, t) {
|
|
const n = {
|
|
level: Md(t),
|
|
extra: {
|
|
arguments: e
|
|
}
|
|
};
|
|
Rc(r => {
|
|
if (r.addEventProcessor(e => (e.logger = "console", is(e, {
|
|
handled: !1,
|
|
type: "console"
|
|
}), e)), "assert" === t && !1 === e[0]) {
|
|
const t = `Assertion failed: ${Ga(e.slice(1)," ")||"console.assert"}`;
|
|
return r.setExtra("arguments", e.slice(1)), void Oc(t, n)
|
|
}
|
|
const o = e.find(e => e instanceof Error);
|
|
if ("error" === t && o) return void wc(o, n);
|
|
Oc(Ga(e, " "), n)
|
|
})
|
|
}(n, r)
|
|
})
|
|
}
|
|
}
|
|
};
|
|
Xc(fb, db);
|
|
const pb = Ea,
|
|
hb = "ContextLines",
|
|
mb = (e = {}) => {
|
|
const t = null != e.frameContextLines ? e.frameContextLines : 7;
|
|
return {
|
|
name: hb,
|
|
setupOnce() {},
|
|
processEvent: e => function(e, t) {
|
|
const n = pb.document,
|
|
r = pb.location && (o = pb.location.href, o.split(/[\?#]/, 1)[0]);
|
|
var o;
|
|
if (!n || !r) return e;
|
|
const i = e.exception && e.exception.values;
|
|
if (!i || !i.length) return e;
|
|
const a = n.documentElement.innerHTML;
|
|
if (!a) return e;
|
|
const s = ["<!DOCTYPE html>", "<html>", ...a.split("\n"), "</html>"];
|
|
return i.forEach(e => {
|
|
const n = e.stacktrace;
|
|
n && n.frames && (n.frames = n.frames.map(e => function(e, t, n, r) {
|
|
if (e.filename !== n || !e.lineno || !t.length) return e;
|
|
return function(e, t, n = 5) {
|
|
if (void 0 === t.lineno) return;
|
|
const r = e.length,
|
|
o = Math.max(Math.min(r - 1, t.lineno - 1), 0);
|
|
t.pre_context = e.slice(Math.max(0, o - n), o).map(e => Ua(e, 0)), t.context_line = Ua(e[Math.min(r - 1, o)], t.colno || 0), t.post_context = e.slice(Math.min(o + 1, r), o + 1 + n).map(e => Ua(e, 0))
|
|
}(t, e, r), e
|
|
}(e, s, r, t)))
|
|
}), e
|
|
}(e, t)
|
|
}
|
|
};
|
|
Xc(hb, mb);
|
|
const gb = "Debug",
|
|
yb = (e = {}) => {
|
|
const t = {
|
|
debugger: !1,
|
|
stringify: !1,
|
|
...e
|
|
};
|
|
return {
|
|
name: gb,
|
|
setupOnce() {},
|
|
setup(e) {
|
|
e.on && e.on("beforeSendEvent", (e, n) => {
|
|
t.debugger, La(() => {
|
|
t.stringify ? (console.log(JSON.stringify(e, null, 2)), n && Object.keys(n).length && console.log(JSON.stringify(n, null, 2))) : (console.log(e), n && Object.keys(n).length && console.log(n))
|
|
})
|
|
})
|
|
}
|
|
}
|
|
},
|
|
vb = (Xc(gb, yb), "undefined" == typeof __SENTRY_DEBUG__ || __SENTRY_DEBUG__),
|
|
bb = "Dedupe",
|
|
_b = () => {
|
|
let e;
|
|
return {
|
|
name: bb,
|
|
setupOnce() {},
|
|
processEvent(t) {
|
|
if (t.type) return t;
|
|
try {
|
|
if (function(e, t) {
|
|
if (!t) return !1;
|
|
if (function(e, t) {
|
|
const n = e.message,
|
|
r = t.message;
|
|
if (!n && !r) return !1;
|
|
if (n && !r || !n && r) return !1;
|
|
if (n !== r) return !1;
|
|
if (!wb(e, t)) return !1;
|
|
if (!Sb(e, t)) return !1;
|
|
return !0
|
|
}(e, t)) return !0;
|
|
if (function(e, t) {
|
|
const n = Ob(t),
|
|
r = Ob(e);
|
|
if (!n || !r) return !1;
|
|
if (n.type !== r.type || n.value !== r.value) return !1;
|
|
if (!wb(e, t)) return !1;
|
|
if (!Sb(e, t)) return !1;
|
|
return !0
|
|
}(e, t)) return !0;
|
|
return !1
|
|
}(t, e)) return vb && Fa.warn("Event dropped due to being a duplicate of previously captured event."), null
|
|
} catch (e) {}
|
|
return e = t
|
|
}
|
|
}
|
|
};
|
|
Xc(bb, _b);
|
|
|
|
function Sb(e, t) {
|
|
let n = Eb(e),
|
|
r = Eb(t);
|
|
if (!n && !r) return !0;
|
|
if (n && !r || !n && r) return !1;
|
|
if (r.length !== n.length) return !1;
|
|
for (let e = 0; e < r.length; e++) {
|
|
const t = r[e],
|
|
o = n[e];
|
|
if (t.filename !== o.filename || t.lineno !== o.lineno || t.colno !== o.colno || t.function !== o.function) return !1
|
|
}
|
|
return !0
|
|
}
|
|
|
|
function wb(e, t) {
|
|
let n = e.fingerprint,
|
|
r = t.fingerprint;
|
|
if (!n && !r) return !0;
|
|
if (n && !r || !n && r) return !1;
|
|
try {
|
|
return !(n.join("") !== r.join(""))
|
|
} catch (e) {
|
|
return !1
|
|
}
|
|
}
|
|
|
|
function Ob(e) {
|
|
return e.exception && e.exception.values && e.exception.values[0]
|
|
}
|
|
|
|
function Eb(e) {
|
|
const t = e.exception;
|
|
if (t) try {
|
|
return t.values[0].stacktrace.frames
|
|
} catch (e) {
|
|
return
|
|
}
|
|
}
|
|
const kb = "ExtraErrorData",
|
|
Tb = (e = {}) => {
|
|
const t = e.depth || 3,
|
|
n = e.captureErrorCause || !1;
|
|
return {
|
|
name: kb,
|
|
setupOnce() {},
|
|
processEvent: (e, r) => function(e, t = {}, n, r) {
|
|
if (!t.originalException || !la(t.originalException)) return e;
|
|
const o = t.originalException.name || t.originalException.constructor.name,
|
|
i = function(e, t) {
|
|
try {
|
|
const n = ["name", "message", "stack", "line", "column", "fileName", "lineNumber", "columnNumber", "toJSON"],
|
|
r = {};
|
|
for (const t of Object.keys(e)) {
|
|
if (-1 !== n.indexOf(t)) continue;
|
|
const o = e[t];
|
|
r[t] = la(o) ? o.toString() : o
|
|
}
|
|
if (t && void 0 !== e.cause && (r.cause = la(e.cause) ? e.cause.toString() : e.cause), "function" == typeof e.toJSON) {
|
|
const t = e.toJSON();
|
|
for (const e of Object.keys(t)) {
|
|
const n = t[e];
|
|
r[e] = la(n) ? n.toString() : n
|
|
}
|
|
}
|
|
return r
|
|
} catch (e) {
|
|
vb && Fa.error("Unable to extract extra data from the Error object:", e)
|
|
}
|
|
return null
|
|
}(t.originalException, r);
|
|
if (i) {
|
|
const t = {
|
|
...e.contexts
|
|
},
|
|
r = mc(i, n);
|
|
return ya(r) && (qa(r, "__sentry_skip_normalization__", !0), t[o] = r), {
|
|
...e,
|
|
contexts: t
|
|
}
|
|
}
|
|
return e
|
|
}(e, r, t, n)
|
|
}
|
|
};
|
|
Xc(kb, Tb);
|
|
const xb = "HttpClient",
|
|
Ib = (e = {}) => {
|
|
const t = {
|
|
failedRequestStatusCodes: [
|
|
[500, 599]
|
|
],
|
|
failedRequestTargets: [/.*/],
|
|
...e
|
|
};
|
|
return {
|
|
name: xb,
|
|
setupOnce() {},
|
|
setup(e) {
|
|
! function(e, t) {
|
|
if (!Hf()) return;
|
|
Pd(n => {
|
|
if (Uc() !== e) return;
|
|
const {
|
|
response: r,
|
|
args: o
|
|
} = n, [i, a] = o;
|
|
r && function(e, t, n, r) {
|
|
if (Cb(e, n.status, n.url)) {
|
|
const e = function(e, t) {
|
|
if (!t && e instanceof Request) return e;
|
|
if (e instanceof Request && e.bodyUsed) return e;
|
|
return new Request(e, t)
|
|
}(t, r);
|
|
let o, i, a, s;
|
|
Rb() && ([{
|
|
headers: o,
|
|
cookies: a
|
|
}, {
|
|
headers: i,
|
|
cookies: s
|
|
}] = [{
|
|
cookieHeader: "Cookie",
|
|
obj: e
|
|
}, {
|
|
cookieHeader: "Set-Cookie",
|
|
obj: n
|
|
}].map(({
|
|
cookieHeader: e,
|
|
obj: t
|
|
}) => {
|
|
const n = function(e) {
|
|
const t = {};
|
|
return e.forEach((e, n) => {
|
|
t[n] = e
|
|
}), t
|
|
}(t.headers);
|
|
let r;
|
|
try {
|
|
const t = n[e] || n[e.toLowerCase()] || void 0;
|
|
t && (r = Ab(t))
|
|
} catch (t) {
|
|
vb && Fa.log(`Could not extract cookies from header ${e}`)
|
|
}
|
|
return {
|
|
headers: n,
|
|
cookies: r
|
|
}
|
|
}));
|
|
Ec(jb({
|
|
url: e.url,
|
|
method: e.method,
|
|
status: n.status,
|
|
requestHeaders: o,
|
|
responseHeaders: i,
|
|
requestCookies: a,
|
|
responseCookies: s
|
|
}))
|
|
}
|
|
}(t, i, r, a)
|
|
})
|
|
}(e, t),
|
|
function(e, t) {
|
|
if (!("XMLHttpRequest" in Ea)) return;
|
|
xd(n => {
|
|
if (Uc() !== e) return;
|
|
const r = n.xhr,
|
|
o = r[Td];
|
|
if (!o) return;
|
|
const {
|
|
method: i,
|
|
request_headers: a
|
|
} = o;
|
|
try {
|
|
! function(e, t, n, r) {
|
|
if (Cb(e, t.status, t.responseURL)) {
|
|
let e, o, i;
|
|
if (Rb()) {
|
|
try {
|
|
const e = t.getResponseHeader("Set-Cookie") || t.getResponseHeader("set-cookie") || void 0;
|
|
e && (o = Ab(e))
|
|
} catch (e) {
|
|
vb && Fa.log("Could not extract cookies from response headers")
|
|
}
|
|
try {
|
|
i = function(e) {
|
|
const t = e.getAllResponseHeaders();
|
|
if (!t) return {};
|
|
return t.split("\r\n").reduce((e, t) => {
|
|
const [n, r] = t.split(": ");
|
|
return e[n] = r, e
|
|
}, {})
|
|
}(t)
|
|
} catch (e) {
|
|
vb && Fa.log("Could not extract headers from response")
|
|
}
|
|
e = r
|
|
}
|
|
Ec(jb({
|
|
url: t.responseURL,
|
|
method: n,
|
|
status: t.status,
|
|
requestHeaders: e,
|
|
responseHeaders: i,
|
|
responseCookies: o
|
|
}))
|
|
}
|
|
}(t, r, i, a)
|
|
} catch (e) {
|
|
vb && Fa.warn("Error while extracting response event form XHR response", e)
|
|
}
|
|
})
|
|
}(e, t)
|
|
}
|
|
}
|
|
};
|
|
Xc(xb, Ib);
|
|
|
|
function Pb(e) {
|
|
if (e) {
|
|
const t = e["Content-Length"] || e["content-length"];
|
|
if (t) return parseInt(t, 10)
|
|
}
|
|
}
|
|
|
|
function Ab(e) {
|
|
return e.split("; ").reduce((e, t) => {
|
|
const [n, r] = t.split("=");
|
|
return e[n] = r, e
|
|
}, {})
|
|
}
|
|
|
|
function Cb(e, t, n) {
|
|
return function(e, t) {
|
|
return e.some(e => "number" == typeof e ? e === t : t >= e[0] && t <= e[1])
|
|
}(e.failedRequestStatusCodes, t) && (r = e.failedRequestTargets, o = n, r.some(e => "string" == typeof e ? o.includes(e) : e.test(o))) && !wp(n, Uc());
|
|
var r, o
|
|
}
|
|
|
|
function jb(e) {
|
|
const t = `HTTP Client Error with status code: ${e.status}`,
|
|
n = {
|
|
message: t,
|
|
exception: {
|
|
values: [{
|
|
type: "Error",
|
|
value: t
|
|
}]
|
|
},
|
|
request: {
|
|
url: e.url,
|
|
method: e.method,
|
|
headers: e.requestHeaders,
|
|
cookies: e.requestCookies
|
|
},
|
|
contexts: {
|
|
response: {
|
|
status_code: e.status,
|
|
headers: e.responseHeaders,
|
|
cookies: e.responseCookies,
|
|
body_size: Pb(e.responseHeaders)
|
|
}
|
|
}
|
|
};
|
|
return is(n, {
|
|
type: "http.client",
|
|
handled: !1
|
|
}), n
|
|
}
|
|
|
|
function Rb() {
|
|
const e = Uc();
|
|
return !!e && Boolean(e.getOptions().sendDefaultPii)
|
|
}
|
|
const Mb = Ea,
|
|
Db = "ReportingObserver",
|
|
Nb = new WeakMap,
|
|
Lb = (e = {}) => {
|
|
const t = e.types || ["crash", "deprecation", "intervention"];
|
|
|
|
function n(e) {
|
|
if (Nb.has(Uc()))
|
|
for (const t of e) Rc(e => {
|
|
e.setExtra("url", t.url);
|
|
const n = `ReportingObserver [${t.type}]`;
|
|
let r = "No details available";
|
|
if (t.body) {
|
|
const n = {};
|
|
for (const e in t.body) n[e] = t.body[e];
|
|
if (e.setExtra("body", n), "crash" === t.type) {
|
|
const e = t.body;
|
|
r = [e.crashId || "", e.reason || ""].join(" ").trim() || r
|
|
} else {
|
|
r = t.body.message || r
|
|
}
|
|
}
|
|
Oc(`${n}: ${r}`)
|
|
})
|
|
}
|
|
return {
|
|
name: Db,
|
|
setupOnce() {
|
|
if (!("ReportingObserver" in Uf)) return;
|
|
new Mb.ReportingObserver(n, {
|
|
buffered: !0,
|
|
types: t
|
|
}).observe()
|
|
},
|
|
setup(e) {
|
|
Nb.set(e, !0)
|
|
}
|
|
}
|
|
};
|
|
Xc(Db, Lb);
|
|
|
|
function Fb(e, t) {
|
|
let n = 0;
|
|
for (let t = e.length - 1; t >= 0; t--) {
|
|
const r = e[t];
|
|
"." === r ? e.splice(t, 1) : ".." === r ? (e.splice(t, 1), n++) : n && (e.splice(t, 1), n--)
|
|
}
|
|
if (t)
|
|
for (; n--; n) e.unshift("..");
|
|
return e
|
|
}
|
|
const Bb = /^(\S+:\\|\/?)([\s\S]*?)((?:\.{1,2}|[^/\\]+?|)(\.[^./\\]*|))(?:[/\\]*)$/;
|
|
|
|
function Ub(e) {
|
|
const t = e.length > 1024 ? `<truncated>${e.slice(-1024)}` : e,
|
|
n = Bb.exec(t);
|
|
return n ? n.slice(1) : []
|
|
}
|
|
|
|
function Gb(...e) {
|
|
let t = "",
|
|
n = !1;
|
|
for (let r = e.length - 1; r >= -1 && !n; r--) {
|
|
const o = r >= 0 ? e[r] : "/";
|
|
o && (t = `${o}/${t}`, n = "/" === o.charAt(0))
|
|
}
|
|
return t = Fb(t.split("/").filter(e => !!e), !n).join("/"), (n ? "/" : "") + t || "."
|
|
}
|
|
|
|
function $b(e) {
|
|
let t = 0;
|
|
for (; t < e.length && "" === e[t]; t++);
|
|
let n = e.length - 1;
|
|
for (; n >= 0 && "" === e[n]; n--);
|
|
return t > n ? [] : e.slice(t, n - t + 1)
|
|
}
|
|
const Hb = "RewriteFrames",
|
|
zb = (e = {}) => {
|
|
const t = e.root,
|
|
n = e.prefix || "app:///",
|
|
r = e.iteratee || (e => {
|
|
if (!e.filename) return e;
|
|
const r = /^[a-zA-Z]:\\/.test(e.filename) || e.filename.includes("\\") && !e.filename.includes("/"),
|
|
o = /^\//.test(e.filename);
|
|
if (r || o) {
|
|
const o = r ? e.filename.replace(/^[a-zA-Z]:/, "").replace(/\\/g, "/") : e.filename,
|
|
i = t ? function(e, t) {
|
|
e = Gb(e).slice(1), t = Gb(t).slice(1);
|
|
const n = $b(e.split("/")),
|
|
r = $b(t.split("/")),
|
|
o = Math.min(n.length, r.length);
|
|
let i = o;
|
|
for (let e = 0; e < o; e++)
|
|
if (n[e] !== r[e]) {
|
|
i = e;
|
|
break
|
|
} let a = [];
|
|
for (let e = i; e < n.length; e++) a.push("..");
|
|
return a = a.concat(r.slice(i)), a.join("/")
|
|
}(t, o) : function(e, t) {
|
|
let n = Ub(e)[2];
|
|
return t && n.slice(-1 * t.length) === t && (n = n.slice(0, n.length - t.length)), n
|
|
}(o);
|
|
e.filename = `${n}${i}`
|
|
}
|
|
return e
|
|
});
|
|
return {
|
|
name: Hb,
|
|
setupOnce() {},
|
|
processEvent(e) {
|
|
let t = e;
|
|
return e.exception && Array.isArray(e.exception.values) && (t = function(e) {
|
|
try {
|
|
return {
|
|
...e,
|
|
exception: {
|
|
...e.exception,
|
|
values: e.exception.values.map(e => {
|
|
return {
|
|
...e,
|
|
...e.stacktrace && {
|
|
stacktrace: (t = e.stacktrace, {
|
|
...t,
|
|
frames: t && t.frames && t.frames.map(e => r(e))
|
|
})
|
|
}
|
|
};
|
|
var t
|
|
})
|
|
}
|
|
}
|
|
} catch (t) {
|
|
return e
|
|
}
|
|
}(t)), t
|
|
}
|
|
}
|
|
},
|
|
qb = (Xc(Hb, zb), "SessionTiming"),
|
|
Wb = () => {
|
|
const e = Date.now();
|
|
return {
|
|
name: qb,
|
|
setupOnce() {},
|
|
processEvent(t) {
|
|
const n = Date.now();
|
|
return {
|
|
...t,
|
|
extra: {
|
|
...t.extra,
|
|
"session:start": e,
|
|
"session:duration": n - e,
|
|
"session:end": n
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
Xc(qb, Wb);
|
|
|
|
function Vb() {
|
|
Ip.document ? Ip.document.addEventListener("visibilitychange", () => {
|
|
const e = gl();
|
|
if (Ip.document.hidden && e) {
|
|
const t = "cancelled",
|
|
{
|
|
op: n,
|
|
status: r
|
|
} = Us(e);
|
|
Tp && Fa.log(`[Tracing] Transaction: ${t} -> since tab moved to the background, op: ${n}`), r || e.setStatus(t), e.setTag("visibilitychange", "document.hidden"), e.end()
|
|
}
|
|
}) : Tp && Fa.warn("[Tracing] Could not set up background tab detection due to lack of global document")
|
|
}
|
|
|
|
function Yb(e) {
|
|
return [{
|
|
type: "span"
|
|
}, e]
|
|
}
|
|
|
|
function Jb(e) {
|
|
return "number" == typeof e && isFinite(e)
|
|
}
|
|
|
|
function Kb(e, {
|
|
startTimestamp: t,
|
|
...n
|
|
}) {
|
|
return t && e.startTimestamp > t && (e.startTimestamp = t), e.startChild({
|
|
startTimestamp: t,
|
|
...n
|
|
})
|
|
}
|
|
|
|
function Qb(e) {
|
|
return e / 1e3
|
|
}
|
|
|
|
function Xb() {
|
|
return Ip && Ip.addEventListener && Ip.performance
|
|
}
|
|
let Zb, e_, t_ = 0,
|
|
n_ = {};
|
|
|
|
function r_() {
|
|
const e = Xb();
|
|
if (e && ds) {
|
|
e.mark && Ip.performance.mark("sentry-tracing-init");
|
|
const t = lh("fid", ({
|
|
metric: e
|
|
}) => {
|
|
const t = e.entries[e.entries.length - 1];
|
|
if (!t) return;
|
|
const n = Qb(ds),
|
|
r = Qb(t.startTime);
|
|
Tp && Fa.log("[Measurements] Adding FID"), n_.fid = {
|
|
value: e.value,
|
|
unit: "millisecond"
|
|
}, n_["mark.fid"] = {
|
|
value: n + r,
|
|
unit: "second"
|
|
}
|
|
}, ah, Xp),
|
|
n = function(e, t = !1) {
|
|
return lh("cls", e, ih, Qp, t)
|
|
}(({
|
|
metric: e
|
|
}) => {
|
|
const t = e.entries[e.entries.length - 1];
|
|
t && (Tp && Fa.log("[Measurements] Adding CLS"), n_.cls = {
|
|
value: e.value,
|
|
unit: ""
|
|
}, e_ = t)
|
|
}, !0),
|
|
r = nh(({
|
|
metric: e
|
|
}) => {
|
|
const t = e.entries[e.entries.length - 1];
|
|
t && (Tp && Fa.log("[Measurements] Adding LCP"), n_.lcp = {
|
|
value: e.value,
|
|
unit: "millisecond"
|
|
}, Zb = t)
|
|
}, !0),
|
|
o = function(e) {
|
|
return lh("ttfb", e, ch, eh)
|
|
}(({
|
|
metric: e
|
|
}) => {
|
|
e.entries[e.entries.length - 1] && (Tp && Fa.log("[Measurements] Adding TTFB"), n_.ttfb = {
|
|
value: e.value,
|
|
unit: "millisecond"
|
|
})
|
|
});
|
|
return () => {
|
|
t(), n(), r(), o()
|
|
}
|
|
}
|
|
return () => {}
|
|
}
|
|
|
|
function o_() {
|
|
rh("longtask", ({
|
|
entries: e
|
|
}) => {
|
|
for (const t of e) {
|
|
const e = gl();
|
|
if (!e) return;
|
|
const n = Qb(ds + t.startTime),
|
|
r = Qb(t.duration);
|
|
e.startChild({
|
|
description: "Main UI thread blocked",
|
|
op: "ui.long-task",
|
|
origin: "auto.ui.browser.metrics",
|
|
startTimestamp: n,
|
|
endTimestamp: n + r
|
|
})
|
|
}
|
|
})
|
|
}
|
|
|
|
function i_() {
|
|
rh("event", ({
|
|
entries: e
|
|
}) => {
|
|
for (const t of e) {
|
|
const e = gl();
|
|
if (!e) return;
|
|
if ("click" === t.name) {
|
|
const n = Qb(ds + t.startTime),
|
|
r = Qb(t.duration),
|
|
o = {
|
|
description: Pa(t.target),
|
|
op: `ui.interaction.${t.name}`,
|
|
origin: "auto.ui.browser.metrics",
|
|
startTimestamp: n,
|
|
endTimestamp: n + r
|
|
},
|
|
i = Ra(t.target);
|
|
i && (o.attributes = {
|
|
"ui.component_name": i
|
|
}), e.startChild(o)
|
|
}
|
|
}
|
|
})
|
|
}
|
|
|
|
function a_(e, t) {
|
|
if (Xb() && ds) {
|
|
const n = function(e, t) {
|
|
return n = ({
|
|
metric: n
|
|
}) => {
|
|
if (void 0 === n.value) return;
|
|
const r = n.entries.find(e => e.duration === n.value && void 0 !== s_[e.name]),
|
|
o = Uc();
|
|
if (!r || !o) return;
|
|
const i = s_[r.name],
|
|
a = o.getOptions(),
|
|
s = Qb(ds + r.startTime),
|
|
c = Qb(n.value),
|
|
u = void 0 !== r.interactionId ? e[r.interactionId] : void 0;
|
|
if (void 0 === u) return;
|
|
const {
|
|
routeName: l,
|
|
parentContext: f,
|
|
activeTransaction: d,
|
|
user: p,
|
|
replayId: h
|
|
} = u, m = void 0 !== p ? p.email || p.id || p.ip_address : void 0, g = void 0 !== d ? d.getProfileId() : void 0, y = new Ul({
|
|
startTimestamp: s,
|
|
endTimestamp: s + c,
|
|
op: `ui.interaction.${i}`,
|
|
name: Pa(r.target),
|
|
attributes: {
|
|
release: a.release,
|
|
environment: a.environment,
|
|
transaction: l,
|
|
...void 0 !== m && "" !== m ? {
|
|
user: m
|
|
} : {},
|
|
...void 0 !== g ? {
|
|
profile_id: g
|
|
} : {},
|
|
...void 0 !== h ? {
|
|
replay_id: h
|
|
} : {}
|
|
},
|
|
exclusiveTime: n.value,
|
|
measurements: {
|
|
inp: {
|
|
value: n.value,
|
|
unit: "millisecond"
|
|
}
|
|
}
|
|
}), v = function(e, t, n) {
|
|
if (!Sl(t)) return !1;
|
|
let r;
|
|
return r = void 0 !== e && "function" == typeof t.tracesSampler ? t.tracesSampler({
|
|
transactionContext: e,
|
|
name: e.name,
|
|
parentSampled: e.parentSampled,
|
|
attributes: {
|
|
...e.data,
|
|
...e.attributes
|
|
},
|
|
location: Ip.location
|
|
}) : void 0 !== e && void 0 !== e.sampled ? e.sampled : void 0 !== t.tracesSampleRate ? t.tracesSampleRate : 1, Vl(r) ? !0 === r ? n : !1 === r ? 0 : r * n : (Tp && Fa.warn("[Tracing] Discarding interaction span because of invalid sample rate."), !1)
|
|
}(f, a, t);
|
|
if (v && Math.random() < v) {
|
|
const e = y ? function(e, t) {
|
|
const n = {
|
|
sent_at: (new Date).toISOString()
|
|
};
|
|
return t && (n.dsn = _u(t)), Eu(n, e.map(Yb))
|
|
}([y], o.getDsn()) : void 0,
|
|
t = o && o.getTransport();
|
|
return void(t && e && t.send(e).then(null, e => {
|
|
Tp && Fa.error("Error while sending interaction:", e)
|
|
}))
|
|
}
|
|
}, lh("inp", n, uh, th);
|
|
var n
|
|
}(e, t);
|
|
return () => {
|
|
n()
|
|
}
|
|
}
|
|
return () => {}
|
|
}
|
|
const s_ = {
|
|
click: "click",
|
|
pointerdown: "click",
|
|
pointerup: "click",
|
|
mousedown: "click",
|
|
mouseup: "click",
|
|
touchstart: "click",
|
|
touchend: "click",
|
|
mouseover: "hover",
|
|
mouseout: "hover",
|
|
mouseenter: "hover",
|
|
mouseleave: "hover",
|
|
pointerover: "hover",
|
|
pointerout: "hover",
|
|
pointerenter: "hover",
|
|
pointerleave: "hover",
|
|
dragstart: "drag",
|
|
dragend: "drag",
|
|
drag: "drag",
|
|
dragenter: "drag",
|
|
dragleave: "drag",
|
|
dragover: "drag",
|
|
drop: "drag",
|
|
keydown: "press",
|
|
keyup: "press",
|
|
keypress: "press",
|
|
input: "press"
|
|
};
|
|
|
|
function c_(e) {
|
|
const t = Xb();
|
|
if (!t || !Ip.performance.getEntries || !ds) return;
|
|
Tp && Fa.log("[Tracing] Adding & adjusting spans using Performance API");
|
|
const n = Qb(ds),
|
|
r = t.getEntries(),
|
|
{
|
|
op: o,
|
|
start_timestamp: i
|
|
} = Us(e);
|
|
if (r.slice(t_).forEach(t => {
|
|
const r = Qb(t.startTime),
|
|
o = Qb(t.duration);
|
|
if (!("navigation" === e.op && i && n + r < i)) switch (t.entryType) {
|
|
case "navigation":
|
|
! function(e, t, n) {
|
|
["unloadEvent", "redirect", "domContentLoadedEvent", "loadEvent", "connect"].forEach(r => {
|
|
u_(e, t, r, n)
|
|
}), u_(e, t, "secureConnection", n, "TLS/SSL", "connectEnd"), u_(e, t, "fetch", n, "cache", "domainLookupStart"), u_(e, t, "domainLookup", n, "DNS"),
|
|
function(e, t, n) {
|
|
t.responseEnd && (Kb(e, {
|
|
op: "browser",
|
|
origin: "auto.browser.browser.metrics",
|
|
description: "request",
|
|
startTimestamp: n + Qb(t.requestStart),
|
|
endTimestamp: n + Qb(t.responseEnd)
|
|
}), Kb(e, {
|
|
op: "browser",
|
|
origin: "auto.browser.browser.metrics",
|
|
description: "response",
|
|
startTimestamp: n + Qb(t.responseStart),
|
|
endTimestamp: n + Qb(t.responseEnd)
|
|
}))
|
|
}(e, t, n)
|
|
}(e, t, n);
|
|
break;
|
|
case "mark":
|
|
case "paint":
|
|
case "measure": {
|
|
! function(e, t, n, r, o) {
|
|
const i = o + n,
|
|
a = i + r;
|
|
Kb(e, {
|
|
description: t.name,
|
|
endTimestamp: a,
|
|
op: t.entryType,
|
|
origin: "auto.resource.browser.metrics",
|
|
startTimestamp: i
|
|
})
|
|
}(e, t, r, o, n);
|
|
const i = Dp(),
|
|
a = t.startTime < i.firstHiddenTime;
|
|
"first-paint" === t.name && a && (Tp && Fa.log("[Measurements] Adding FP"), n_.fp = {
|
|
value: t.startTime,
|
|
unit: "millisecond"
|
|
}), "first-contentful-paint" === t.name && a && (Tp && Fa.log("[Measurements] Adding FCP"), n_.fcp = {
|
|
value: t.startTime,
|
|
unit: "millisecond"
|
|
});
|
|
break
|
|
}
|
|
case "resource":
|
|
! function(e, t, n, r, o, i) {
|
|
if ("xmlhttprequest" === t.initiatorType || "fetch" === t.initiatorType) return;
|
|
const a = Dd(n),
|
|
s = {};
|
|
l_(s, t, "transferSize", "http.response_transfer_size"), l_(s, t, "encodedBodySize", "http.response_content_length"), l_(s, t, "decodedBodySize", "http.decoded_response_content_length"), "renderBlockingStatus" in t && (s["resource.render_blocking_status"] = t.renderBlockingStatus);
|
|
a.protocol && (s["url.scheme"] = a.protocol.split(":").pop());
|
|
a.host && (s["server.address"] = a.host);
|
|
s["url.same_origin"] = n.includes(Ip.location.origin);
|
|
const c = i + r,
|
|
u = c + o;
|
|
Kb(e, {
|
|
description: n.replace(Ip.location.origin, ""),
|
|
endTimestamp: u,
|
|
op: t.initiatorType ? `resource.${t.initiatorType}` : "resource.other",
|
|
origin: "auto.resource.browser.metrics",
|
|
startTimestamp: c,
|
|
data: s
|
|
})
|
|
}(e, t, t.name, r, o, n)
|
|
}
|
|
}), t_ = Math.max(r.length - 1, 0), function(e) {
|
|
const t = Ip.navigator;
|
|
if (!t) return;
|
|
const n = t.connection;
|
|
n && (n.effectiveType && e.setTag("effectiveConnectionType", n.effectiveType), n.type && e.setTag("connectionType", n.type), Jb(n.rtt) && (n_["connection.rtt"] = {
|
|
value: n.rtt,
|
|
unit: "millisecond"
|
|
}));
|
|
Jb(t.deviceMemory) && e.setTag("deviceMemory", `${t.deviceMemory} GB`);
|
|
Jb(t.hardwareConcurrency) && e.setTag("hardwareConcurrency", String(t.hardwareConcurrency))
|
|
}(e), "pageload" === o) {
|
|
! function(e) {
|
|
const t = Pp();
|
|
if (!t) return;
|
|
const {
|
|
responseStart: n,
|
|
requestStart: r
|
|
} = t;
|
|
r <= n && (Tp && Fa.log("[Measurements] Adding TTFB Request Time"), e["ttfb.requestTime"] = {
|
|
value: n - r,
|
|
unit: "millisecond"
|
|
})
|
|
}(n_), ["fcp", "fp", "lcp"].forEach(e => {
|
|
if (!n_[e] || !i || n >= i) return;
|
|
const t = n_[e].value,
|
|
r = n + Qb(t),
|
|
o = Math.abs(1e3 * (r - i)),
|
|
a = o - t;
|
|
Tp && Fa.log(`[Measurements] Normalized ${e} from ${t} to ${o} (${a})`), n_[e].value = o
|
|
});
|
|
const t = n_["mark.fid"];
|
|
t && n_.fid && (Kb(e, {
|
|
description: "first input delay",
|
|
endTimestamp: t.value + Qb(n_.fid.value),
|
|
op: "ui.action",
|
|
origin: "auto.ui.browser.metrics",
|
|
startTimestamp: t.value
|
|
}), delete n_["mark.fid"]), "fcp" in n_ || delete n_.cls, Object.keys(n_).forEach(e => {
|
|
Sf(e, n_[e].value, n_[e].unit)
|
|
}),
|
|
function(e) {
|
|
Zb && (Tp && Fa.log("[Measurements] Adding LCP Data"), Zb.element && e.setTag("lcp.element", Pa(Zb.element)), Zb.id && e.setTag("lcp.id", Zb.id), Zb.url && e.setTag("lcp.url", Zb.url.trim().slice(0, 200)), e.setTag("lcp.size", Zb.size));
|
|
e_ && e_.sources && (Tp && Fa.log("[Measurements] Adding CLS Data"), e_.sources.forEach((t, n) => e.setTag(`cls.source.${n+1}`, Pa(t.node))))
|
|
}(e)
|
|
}
|
|
Zb = void 0, e_ = void 0, n_ = {}
|
|
}
|
|
|
|
function u_(e, t, n, r, o, i) {
|
|
const a = i ? t[i] : t[`${n}End`],
|
|
s = t[`${n}Start`];
|
|
s && a && Kb(e, {
|
|
op: "browser",
|
|
origin: "auto.browser.browser.metrics",
|
|
description: o || n,
|
|
startTimestamp: r + Qb(s),
|
|
endTimestamp: r + Qb(a)
|
|
})
|
|
}
|
|
|
|
function l_(e, t, n, r) {
|
|
const o = t[n];
|
|
null != o && o < 2147483647 && (e[r] = o)
|
|
}
|
|
|
|
function f_(e, t, n, r, o = "auto.http.browser") {
|
|
if (!Sl() || !e.fetchData) return;
|
|
const i = t(e.fetchData.url);
|
|
if (e.endTimestamp && i) {
|
|
const t = e.fetchData.__span;
|
|
if (!t) return;
|
|
const n = r[t];
|
|
return void(n && (! function(e, t) {
|
|
if (t.response) {
|
|
Fl(e, t.response.status);
|
|
const n = t.response && t.response.headers && t.response.headers.get("content-length");
|
|
if (n) {
|
|
const t = parseInt(n);
|
|
t > 0 && e.setAttribute("http.response_content_length", t)
|
|
}
|
|
} else t.error && e.setStatus("internal_error");
|
|
e.end()
|
|
}(n, e), delete r[t]))
|
|
}
|
|
const a = $c(),
|
|
s = Uc(),
|
|
{
|
|
method: c,
|
|
url: u
|
|
} = e.fetchData,
|
|
l = function(e) {
|
|
try {
|
|
return new URL(e).href
|
|
} catch (e) {
|
|
return
|
|
}
|
|
}(u),
|
|
f = l ? Dd(l).host : void 0,
|
|
d = i ? kl({
|
|
name: `${c} ${u}`,
|
|
onlyIfParent: !0,
|
|
attributes: {
|
|
url: u,
|
|
type: "fetch",
|
|
"http.method": c,
|
|
"http.url": l,
|
|
"server.address": f,
|
|
[Hu]: o
|
|
},
|
|
op: "http.client"
|
|
}) : void 0;
|
|
if (d && (e.fetchData.__span = d.spanContext().spanId, r[d.spanContext().spanId] = d), n(e.fetchData.url) && s) {
|
|
const t = e.args[0];
|
|
e.args[1] = e.args[1] || {};
|
|
const n = e.args[1];
|
|
n.headers = function(e, t, n, r, o) {
|
|
const i = o || n.getSpan(),
|
|
a = rc(),
|
|
{
|
|
traceId: s,
|
|
spanId: c,
|
|
sampled: u,
|
|
dsc: l
|
|
} = {
|
|
...a.getPropagationContext(),
|
|
...n.getPropagationContext()
|
|
},
|
|
f = i ? Ls(i) : Ms(s, c, u),
|
|
d = Ps(l || (i ? Hs(i) : $s(s, t, n))),
|
|
p = r.headers || ("undefined" != typeof Request && Sa(e, Request) ? e.headers : void 0);
|
|
if (p) {
|
|
if ("undefined" != typeof Headers && Sa(p, Headers)) {
|
|
const e = new Headers(p);
|
|
return e.append("sentry-trace", f), d && e.append(Es, d), e
|
|
}
|
|
if (Array.isArray(p)) {
|
|
const e = [...p, ["sentry-trace", f]];
|
|
return d && e.push([Es, d]), e
|
|
} {
|
|
const e = "baggage" in p ? p.baggage : void 0,
|
|
t = [];
|
|
return Array.isArray(e) ? t.push(...e) : e && t.push(e), d && t.push(d), {
|
|
...p,
|
|
"sentry-trace": f,
|
|
baggage: t.length > 0 ? t.join(",") : void 0
|
|
}
|
|
}
|
|
}
|
|
return {
|
|
"sentry-trace": f,
|
|
baggage: d
|
|
}
|
|
}(t, s, a, n, d)
|
|
}
|
|
return d
|
|
}
|
|
const d_ = ["localhost", /^\/(?!\/)/],
|
|
p_ = {
|
|
traceFetch: !0,
|
|
traceXHR: !0,
|
|
enableHTTPTimings: !0,
|
|
tracingOrigins: d_,
|
|
tracePropagationTargets: d_
|
|
};
|
|
|
|
function h_(e) {
|
|
const {
|
|
traceFetch: t,
|
|
traceXHR: n,
|
|
tracePropagationTargets: r,
|
|
tracingOrigins: o,
|
|
shouldCreateSpanForRequest: i,
|
|
enableHTTPTimings: a
|
|
} = {
|
|
traceFetch: p_.traceFetch,
|
|
traceXHR: p_.traceXHR,
|
|
...e
|
|
}, s = "function" == typeof i ? i : e => !0, c = e => function(e, t) {
|
|
return Ha(e, t || d_)
|
|
}(e, r || o), u = {};
|
|
t && Pd(e => {
|
|
const t = f_(e, s, c, u);
|
|
if (t) {
|
|
const n = y_(e.fetchData.url),
|
|
r = n ? Dd(n).host : void 0;
|
|
t.setAttributes({
|
|
"http.url": n,
|
|
"server.address": r
|
|
})
|
|
}
|
|
a && t && m_(t)
|
|
}), n && xd(e => {
|
|
const t = function(e, t, n, r) {
|
|
const o = e.xhr,
|
|
i = o && o[Td];
|
|
if (!Sl() || !o || o.__sentry_own_request__ || !i) return;
|
|
const a = t(i.url);
|
|
if (e.endTimestamp && a) {
|
|
const e = o.__sentry_xhr_span_id__;
|
|
if (!e) return;
|
|
const t = r[e];
|
|
return void(t && void 0 !== i.status_code && (Fl(t, i.status_code), t.end(), delete r[e]))
|
|
}
|
|
const s = $c(),
|
|
c = rc(),
|
|
u = y_(i.url),
|
|
l = u ? Dd(u).host : void 0,
|
|
f = a ? kl({
|
|
name: `${i.method} ${i.url}`,
|
|
onlyIfParent: !0,
|
|
attributes: {
|
|
type: "xhr",
|
|
"http.method": i.method,
|
|
"http.url": u,
|
|
url: i.url,
|
|
"server.address": l,
|
|
[Hu]: "auto.http.browser"
|
|
},
|
|
op: "http.client"
|
|
}) : void 0;
|
|
f && (o.__sentry_xhr_span_id__ = f.spanContext().spanId, r[o.__sentry_xhr_span_id__] = f);
|
|
const d = Uc();
|
|
if (o.setRequestHeader && n(i.url) && d) {
|
|
const {
|
|
traceId: e,
|
|
spanId: t,
|
|
sampled: n,
|
|
dsc: r
|
|
} = {
|
|
...c.getPropagationContext(),
|
|
...s.getPropagationContext()
|
|
};
|
|
! function(e, t, n) {
|
|
try {
|
|
e.setRequestHeader("sentry-trace", t), n && e.setRequestHeader(Es, n)
|
|
} catch (e) {}
|
|
}(o, f ? Ls(f) : Ms(e, t, n), Ps(r || (f ? Hs(f) : $s(e, d, s))))
|
|
}
|
|
return f
|
|
}(e, s, c, u);
|
|
a && t && m_(t)
|
|
})
|
|
}
|
|
|
|
function m_(e) {
|
|
const {
|
|
url: t
|
|
} = Us(e).data || {};
|
|
if (!t || "string" != typeof t) return;
|
|
const n = rh("resource", ({
|
|
entries: r
|
|
}) => {
|
|
r.forEach(r => {
|
|
if (function(e) {
|
|
return "resource" === e.entryType && "initiatorType" in e && "string" == typeof e.nextHopProtocol && ("fetch" === e.initiatorType || "xmlhttprequest" === e.initiatorType)
|
|
}(r) && r.name.endsWith(t)) {
|
|
(function(e) {
|
|
const {
|
|
name: t,
|
|
version: n
|
|
} = function(e) {
|
|
let t = "unknown",
|
|
n = "unknown",
|
|
r = "";
|
|
for (const o of e) {
|
|
if ("/" === o) {
|
|
[t, n] = e.split("/");
|
|
break
|
|
}
|
|
if (!isNaN(Number(o))) {
|
|
t = "h" === r ? "http" : r, n = e.split(r)[1];
|
|
break
|
|
}
|
|
r += o
|
|
}
|
|
r === e && (t = r);
|
|
return {
|
|
name: t,
|
|
version: n
|
|
}
|
|
}(e.nextHopProtocol), r = [];
|
|
if (r.push(["network.protocol.version", n], ["network.protocol.name", t]), !ds) return r;
|
|
return [...r, ["http.request.redirect_start", g_(e.redirectStart)],
|
|
["http.request.fetch_start", g_(e.fetchStart)],
|
|
["http.request.domain_lookup_start", g_(e.domainLookupStart)],
|
|
["http.request.domain_lookup_end", g_(e.domainLookupEnd)],
|
|
["http.request.connect_start", g_(e.connectStart)],
|
|
["http.request.secure_connection_start", g_(e.secureConnectionStart)],
|
|
["http.request.connection_end", g_(e.connectEnd)],
|
|
["http.request.request_start", g_(e.requestStart)],
|
|
["http.request.response_start", g_(e.responseStart)],
|
|
["http.request.response_end", g_(e.responseEnd)]
|
|
]
|
|
})(r).forEach(t => e.setAttribute(...t)), setTimeout(n)
|
|
}
|
|
})
|
|
})
|
|
}
|
|
|
|
function g_(e = 0) {
|
|
return ((ds || performance.timeOrigin) + e) / 1e3
|
|
}
|
|
|
|
function y_(e) {
|
|
try {
|
|
return new URL(e, Ip.location.origin).href
|
|
} catch (e) {
|
|
return
|
|
}
|
|
}
|
|
const v_ = {
|
|
...$l,
|
|
markBackgroundTransactions: !0,
|
|
routingInstrumentation: function(e, t = !0, n = !0) {
|
|
if (!Ip || !Ip.location) return void(Tp && Fa.warn("Could not initialize routing instrumentation due to invalid location"));
|
|
let r, o = Ip.location.href;
|
|
t && (r = e({
|
|
name: Ip.location.pathname,
|
|
startTimestamp: ds ? ds / 1e3 : void 0,
|
|
op: "pageload",
|
|
origin: "auto.pageload.browser",
|
|
metadata: {
|
|
source: "url"
|
|
}
|
|
})), n && hd(({
|
|
to: t,
|
|
from: n
|
|
}) => {
|
|
void 0 === n && o && -1 !== o.indexOf(t) ? o = void 0 : n !== t && (o = void 0, r && (Tp && Fa.log(`[Tracing] Finishing current transaction with op: ${r.op}`), r.end()), r = e({
|
|
name: Ip.location.pathname,
|
|
op: "navigation",
|
|
origin: "auto.navigation.browser",
|
|
metadata: {
|
|
source: "url"
|
|
}
|
|
}))
|
|
})
|
|
},
|
|
startTransactionOnLocationChange: !0,
|
|
startTransactionOnPageLoad: !0,
|
|
enableLongTask: !0,
|
|
enableInp: !1,
|
|
interactionsSampleRate: 1,
|
|
_experiments: {},
|
|
...p_
|
|
};
|
|
class b_ {
|
|
constructor(e) {
|
|
this.name = "BrowserTracing", this._hasSetTracePropagationTargets = !1, Ql(), Tp && (this._hasSetTracePropagationTargets = !(!e || !e.tracePropagationTargets && !e.tracingOrigins)), this.options = {
|
|
...v_,
|
|
...e
|
|
}, void 0 !== this.options._experiments.enableLongTask && (this.options.enableLongTask = this.options._experiments.enableLongTask), e && !e.tracePropagationTargets && e.tracingOrigins && (this.options.tracePropagationTargets = e.tracingOrigins), this._collectWebVitals = r_(), this._interactionIdToRouteNameMapping = {}, this.options.enableInp && a_(this._interactionIdToRouteNameMapping, this.options.interactionsSampleRate), this.options.enableLongTask && o_(), this.options._experiments.enableInteractions && i_(), this._latestRoute = {
|
|
name: void 0,
|
|
context: void 0
|
|
}
|
|
}
|
|
setupOnce(e, t) {
|
|
this._getCurrentHub = t;
|
|
const n = t().getClient(),
|
|
r = n && n.getOptions(),
|
|
{
|
|
routingInstrumentation: o,
|
|
startTransactionOnLocationChange: i,
|
|
startTransactionOnPageLoad: a,
|
|
markBackgroundTransactions: s,
|
|
traceFetch: c,
|
|
traceXHR: u,
|
|
shouldCreateSpanForRequest: l,
|
|
enableHTTPTimings: f,
|
|
_experiments: d
|
|
} = this.options,
|
|
p = r && r.tracePropagationTargets,
|
|
h = p || this.options.tracePropagationTargets;
|
|
Tp && this._hasSetTracePropagationTargets && p && Fa.warn("[Tracing] The `tracePropagationTargets` option was set in the BrowserTracing integration and top level `Sentry.init`. The top level `Sentry.init` value is being used."), o(e => {
|
|
const n = this._createRouteTransaction(e);
|
|
return this.options._experiments.onStartRouteTransaction && this.options._experiments.onStartRouteTransaction(n, e, t), n
|
|
}, a, i), s && Vb(), d.enableInteractions && this._registerInteractionListener(), this.options.enableInp && this._registerInpInteractionListener(), h_({
|
|
traceFetch: c,
|
|
traceXHR: u,
|
|
tracePropagationTargets: h,
|
|
shouldCreateSpanForRequest: l,
|
|
enableHTTPTimings: f
|
|
})
|
|
}
|
|
_createRouteTransaction(e) {
|
|
if (!this._getCurrentHub) return void(Tp && Fa.warn(`[Tracing] Did not create ${e.op} transaction because _getCurrentHub is invalid.`));
|
|
const t = this._getCurrentHub(),
|
|
{
|
|
beforeNavigate: n,
|
|
idleTimeout: r,
|
|
finalTimeout: o,
|
|
heartbeatInterval: i
|
|
} = this.options,
|
|
a = "pageload" === e.op;
|
|
let s;
|
|
if (a) {
|
|
const t = a ? __("sentry-trace") : "",
|
|
n = a ? __("baggage") : void 0,
|
|
{
|
|
traceId: r,
|
|
dsc: o,
|
|
parentSpanId: i,
|
|
sampled: c
|
|
} = Rs(t, n);
|
|
s = {
|
|
traceId: r,
|
|
parentSpanId: i,
|
|
parentSampled: c,
|
|
...e,
|
|
metadata: {
|
|
...e.metadata,
|
|
dynamicSamplingContext: o
|
|
},
|
|
trimEnd: !0
|
|
}
|
|
} else s = {
|
|
trimEnd: !0,
|
|
...e
|
|
};
|
|
const c = "function" == typeof n ? n(s) : s,
|
|
u = void 0 === c ? {
|
|
...s,
|
|
sampled: !1
|
|
} : c;
|
|
u.metadata = u.name !== s.name ? {
|
|
...u.metadata,
|
|
source: "custom"
|
|
} : u.metadata, this._latestRoute.name = u.name, this._latestRoute.context = u, !1 === u.sampled && Tp && Fa.log(`[Tracing] Will not send ${u.op} transaction because of beforeNavigate.`), Tp && Fa.log(`[Tracing] Starting ${u.op} transaction on scope`);
|
|
const {
|
|
location: l
|
|
} = Ip, f = Kl(t, u, r, o, !0, {
|
|
location: l
|
|
}, i, a);
|
|
return a && Ip.document && (Ip.document.addEventListener("readystatechange", () => {
|
|
["interactive", "complete"].includes(Ip.document.readyState) && f.sendAutoFinishSignal()
|
|
}), ["interactive", "complete"].includes(Ip.document.readyState) && f.sendAutoFinishSignal()), f.registerBeforeFinishCallback(e => {
|
|
this._collectWebVitals(), c_(e)
|
|
}), f
|
|
}
|
|
_registerInteractionListener() {
|
|
let e;
|
|
const t = () => {
|
|
const {
|
|
idleTimeout: t,
|
|
finalTimeout: n,
|
|
heartbeatInterval: r
|
|
} = this.options, o = "ui.action.click", i = gl();
|
|
if (i && i.op && ["navigation", "pageload"].includes(i.op)) return void(Tp && Fa.warn(`[Tracing] Did not create ${o} transaction because a pageload or navigation transaction is in progress.`));
|
|
if (e && (e.setFinishReason("interactionInterrupted"), e.end(), e = void 0), !this._getCurrentHub) return void(Tp && Fa.warn(`[Tracing] Did not create ${o} transaction because _getCurrentHub is invalid.`));
|
|
if (!this._latestRoute.name) return void(Tp && Fa.warn(`[Tracing] Did not create ${o} transaction because _latestRouteName is missing.`));
|
|
const a = this._getCurrentHub(),
|
|
{
|
|
location: s
|
|
} = Ip,
|
|
c = {
|
|
name: this._latestRoute.name,
|
|
op: o,
|
|
trimEnd: !0,
|
|
data: {
|
|
[Uu]: this._latestRoute.context ? S_(this._latestRoute.context) : "url"
|
|
}
|
|
};
|
|
e = Kl(a, c, t, n, !0, {
|
|
location: s
|
|
}, r)
|
|
};
|
|
["click"].forEach(e => {
|
|
Ip.document && addEventListener(e, t, {
|
|
once: !1,
|
|
capture: !0
|
|
})
|
|
})
|
|
}
|
|
_registerInpInteractionListener() {
|
|
const e = ({
|
|
entries: e
|
|
}) => {
|
|
const t = Uc(),
|
|
n = void 0 !== t && void 0 !== t.getIntegrationByName ? t.getIntegrationByName("Replay") : void 0,
|
|
r = void 0 !== n ? n.getReplayId() : void 0,
|
|
o = gl(),
|
|
i = $c(),
|
|
a = void 0 !== i ? i.getUser() : void 0;
|
|
e.forEach(e => {
|
|
if (function(e) {
|
|
return "duration" in e
|
|
}(e)) {
|
|
const t = e.interactionId;
|
|
if (void 0 === t) return;
|
|
const n = this._interactionIdToRouteNameMapping[t],
|
|
i = e.duration,
|
|
s = e.startTime,
|
|
c = Object.keys(this._interactionIdToRouteNameMapping),
|
|
u = c.length > 0 ? c.reduce((e, t) => this._interactionIdToRouteNameMapping[e].duration < this._interactionIdToRouteNameMapping[t].duration ? e : t) : void 0;
|
|
if ("first-input" === e.entryType) {
|
|
if (c.map(e => this._interactionIdToRouteNameMapping[e]).some(e => e.duration === i && e.startTime === s)) return
|
|
}
|
|
if (!t) return;
|
|
if (n) n.duration = Math.max(n.duration, i);
|
|
else if (c.length < 10 || void 0 === u || i > this._interactionIdToRouteNameMapping[u].duration) {
|
|
const e = this._latestRoute.name,
|
|
n = this._latestRoute.context;
|
|
e && n && (u && Object.keys(this._interactionIdToRouteNameMapping).length >= 10 && delete this._interactionIdToRouteNameMapping[u], this._interactionIdToRouteNameMapping[t] = {
|
|
routeName: e,
|
|
duration: i,
|
|
parentContext: n,
|
|
user: a,
|
|
activeTransaction: o,
|
|
replayId: r,
|
|
startTime: s
|
|
})
|
|
}
|
|
}
|
|
})
|
|
};
|
|
rh("event", e), rh("first-input", e)
|
|
}
|
|
}
|
|
|
|
function __(e) {
|
|
const t = ja(`meta[name=${e}]`);
|
|
return t ? t.getAttribute("content") : void 0
|
|
}
|
|
|
|
function S_(e) {
|
|
const t = e.attributes && e.attributes[Uu],
|
|
n = e.data && e.data[Uu],
|
|
r = e.metadata && e.metadata.source;
|
|
return t || n || r
|
|
}
|
|
const w_ = {
|
|
...$l,
|
|
instrumentNavigation: !0,
|
|
instrumentPageLoad: !0,
|
|
markBackgroundSpan: !0,
|
|
enableLongTask: !0,
|
|
enableInp: !1,
|
|
interactionsSampleRate: 1,
|
|
_experiments: {},
|
|
...p_
|
|
},
|
|
O_ = (e = {}) => {
|
|
const t = !!Tp && !(!e.tracePropagationTargets && !e.tracingOrigins);
|
|
Ql(), !e.tracePropagationTargets && e.tracingOrigins && (e.tracePropagationTargets = e.tracingOrigins);
|
|
const n = {
|
|
...w_,
|
|
...e
|
|
},
|
|
r = r_(),
|
|
o = {};
|
|
n.enableInp && a_(o, n.interactionsSampleRate), n.enableLongTask && o_(), n._experiments.enableInteractions && i_();
|
|
const i = {
|
|
name: void 0,
|
|
context: void 0
|
|
};
|
|
|
|
function a(e) {
|
|
const t = nc(),
|
|
{
|
|
beforeStartSpan: o,
|
|
idleTimeout: a,
|
|
finalTimeout: s,
|
|
heartbeatInterval: c
|
|
} = n,
|
|
u = "pageload" === e.op;
|
|
let l;
|
|
if (u) {
|
|
const t = u ? T_("sentry-trace") : "",
|
|
n = u ? T_("baggage") : void 0,
|
|
{
|
|
traceId: r,
|
|
dsc: o,
|
|
parentSpanId: i,
|
|
sampled: a
|
|
} = Rs(t, n);
|
|
l = {
|
|
traceId: r,
|
|
parentSpanId: i,
|
|
parentSampled: a,
|
|
...e,
|
|
metadata: {
|
|
...e.metadata,
|
|
dynamicSamplingContext: o
|
|
},
|
|
trimEnd: !0
|
|
}
|
|
} else l = {
|
|
trimEnd: !0,
|
|
...e
|
|
};
|
|
const f = o ? o(l) : l;
|
|
f.metadata = f.name !== l.name ? {
|
|
...f.metadata,
|
|
source: "custom"
|
|
} : f.metadata, i.name = f.name, i.context = f, !1 === f.sampled && Tp && Fa.log(`[Tracing] Will not send ${f.op} transaction because of beforeNavigate.`), Tp && Fa.log(`[Tracing] Starting ${f.op} transaction on scope`);
|
|
const {
|
|
location: d
|
|
} = Ip, p = Kl(t, f, a, s, !0, {
|
|
location: d
|
|
}, c, u);
|
|
return u && Ip.document && (Ip.document.addEventListener("readystatechange", () => {
|
|
["interactive", "complete"].includes(Ip.document.readyState) && p.sendAutoFinishSignal()
|
|
}), ["interactive", "complete"].includes(Ip.document.readyState) && p.sendAutoFinishSignal()), p.registerBeforeFinishCallback(e => {
|
|
r(), c_(e)
|
|
}), p
|
|
}
|
|
return {
|
|
name: "BrowserTracing",
|
|
setupOnce: () => {},
|
|
afterAllSetup(e) {
|
|
const r = e.getOptions(),
|
|
{
|
|
markBackgroundSpan: s,
|
|
traceFetch: c,
|
|
traceXHR: u,
|
|
shouldCreateSpanForRequest: l,
|
|
enableHTTPTimings: f,
|
|
_experiments: d
|
|
} = n,
|
|
p = r && r.tracePropagationTargets,
|
|
h = p || n.tracePropagationTargets;
|
|
let m;
|
|
Tp && t && p && Fa.warn("[Tracing] The `tracePropagationTargets` option was set in the BrowserTracing integration and top level `Sentry.init`. The top level `Sentry.init` value is being used.");
|
|
let g = Ip.location && Ip.location.href;
|
|
if (e.on && (e.on("startNavigationSpan", e => {
|
|
m && (Tp && Fa.log(`[Tracing] Finishing current transaction with op: ${Us(m).op}`), m.end()), m = a({
|
|
op: "navigation",
|
|
...e
|
|
})
|
|
}), e.on("startPageLoadSpan", e => {
|
|
m && (Tp && Fa.log(`[Tracing] Finishing current transaction with op: ${Us(m).op}`), m.end()), m = a({
|
|
op: "pageload",
|
|
...e
|
|
})
|
|
})), n.instrumentPageLoad && e.emit && Ip.location) {
|
|
const t = {
|
|
name: Ip.location.pathname,
|
|
startTimestamp: ds ? ds / 1e3 : void 0,
|
|
origin: "auto.pageload.browser",
|
|
attributes: {
|
|
[Uu]: "url"
|
|
}
|
|
};
|
|
E_(e, t)
|
|
}
|
|
n.instrumentNavigation && e.emit && Ip.location && hd(({
|
|
to: t,
|
|
from: n
|
|
}) => {
|
|
if (void 0 === n && g && -1 !== g.indexOf(t)) g = void 0;
|
|
else if (n !== t) {
|
|
g = void 0;
|
|
const t = {
|
|
name: Ip.location.pathname,
|
|
origin: "auto.navigation.browser",
|
|
attributes: {
|
|
[Uu]: "url"
|
|
}
|
|
};
|
|
k_(e, t)
|
|
}
|
|
}), s && Vb(), d.enableInteractions && function(e, t) {
|
|
let n;
|
|
const r = () => {
|
|
const {
|
|
idleTimeout: r,
|
|
finalTimeout: o,
|
|
heartbeatInterval: i
|
|
} = e, a = "ui.action.click", s = gl();
|
|
if (s && s.op && ["navigation", "pageload"].includes(s.op)) return void(Tp && Fa.warn(`[Tracing] Did not create ${a} transaction because a pageload or navigation transaction is in progress.`));
|
|
if (n && (n.setFinishReason("interactionInterrupted"), n.end(), n = void 0), !t.name) return void(Tp && Fa.warn(`[Tracing] Did not create ${a} transaction because _latestRouteName is missing.`));
|
|
const {
|
|
location: c
|
|
} = Ip, u = {
|
|
name: t.name,
|
|
op: a,
|
|
trimEnd: !0,
|
|
data: {
|
|
[Uu]: t.context ? I_(t.context) : "url"
|
|
}
|
|
};
|
|
n = Kl(nc(), u, r, o, !0, {
|
|
location: c
|
|
}, i)
|
|
};
|
|
["click"].forEach(e => {
|
|
Ip.document && addEventListener(e, r, {
|
|
once: !1,
|
|
capture: !0
|
|
})
|
|
})
|
|
}(n, i), n.enableInp && function(e, t) {
|
|
const n = ({
|
|
entries: n
|
|
}) => {
|
|
const r = Uc(),
|
|
o = void 0 !== r && void 0 !== r.getIntegrationByName ? r.getIntegrationByName("Replay") : void 0,
|
|
i = void 0 !== o ? o.getReplayId() : void 0,
|
|
a = gl(),
|
|
s = $c(),
|
|
c = void 0 !== s ? s.getUser() : void 0;
|
|
n.forEach(n => {
|
|
if (function(e) {
|
|
return "duration" in e
|
|
}(n)) {
|
|
const r = n.interactionId;
|
|
if (void 0 === r) return;
|
|
const o = e[r],
|
|
s = n.duration,
|
|
u = n.startTime,
|
|
l = Object.keys(e),
|
|
f = l.length > 0 ? l.reduce((t, n) => e[t].duration < e[n].duration ? t : n) : void 0;
|
|
if ("first-input" === n.entryType) {
|
|
if (l.map(t => e[t]).some(e => e.duration === s && e.startTime === u)) return
|
|
}
|
|
if (!r) return;
|
|
if (o) o.duration = Math.max(o.duration, s);
|
|
else if (l.length < x_ || void 0 === f || s > e[f].duration) {
|
|
const n = t.name,
|
|
o = t.context;
|
|
n && o && (f && Object.keys(e).length >= x_ && delete e[f], e[r] = {
|
|
routeName: n,
|
|
duration: s,
|
|
parentContext: o,
|
|
user: c,
|
|
activeTransaction: a,
|
|
replayId: i,
|
|
startTime: u
|
|
})
|
|
}
|
|
}
|
|
})
|
|
};
|
|
rh("event", n), rh("first-input", n)
|
|
}(o, i), h_({
|
|
traceFetch: c,
|
|
traceXHR: u,
|
|
tracePropagationTargets: h,
|
|
shouldCreateSpanForRequest: l,
|
|
enableHTTPTimings: f
|
|
})
|
|
},
|
|
options: n
|
|
}
|
|
};
|
|
|
|
function E_(e, t) {
|
|
if (!e.emit) return;
|
|
e.emit("startPageLoadSpan", t);
|
|
const n = Tl();
|
|
return "pageload" === (n && Us(n).op) ? n : void 0
|
|
}
|
|
|
|
function k_(e, t) {
|
|
if (!e.emit) return;
|
|
e.emit("startNavigationSpan", t);
|
|
const n = Tl();
|
|
return "navigation" === (n && Us(n).op) ? n : void 0
|
|
}
|
|
|
|
function T_(e) {
|
|
const t = ja(`meta[name=${e}]`);
|
|
return t ? t.getAttribute("content") : void 0
|
|
}
|
|
const x_ = 10;
|
|
|
|
function I_(e) {
|
|
const t = e.attributes && e.attributes[Uu],
|
|
n = e.data && e.data[Uu],
|
|
r = e.metadata && e.metadata.source;
|
|
return t || n || r
|
|
}
|
|
const P_ = 100,
|
|
A_ = 5e3,
|
|
C_ = 36e5;
|
|
|
|
function j_(e, t) {
|
|
es && Fa.info(`[Offline]: ${e}`, t)
|
|
}
|
|
|
|
function R_(e) {
|
|
return t => {
|
|
const n = e(t),
|
|
r = t.createStore ? t.createStore(t) : void 0;
|
|
let o, i = A_;
|
|
|
|
function a(e, n, r) {
|
|
return ! function(e, t) {
|
|
return Tu(e, (e, n) => t.includes(n))
|
|
}(e, ["replay_event", "replay_recording", "client_report"]) && (!t.shouldStore || t.shouldStore(e, n, r))
|
|
}
|
|
|
|
function s(e) {
|
|
r && (o && clearTimeout(o), o = setTimeout(async () => {
|
|
o = void 0;
|
|
const e = await r.pop();
|
|
e && (j_("Attempting to send previously queued event"), u(e).catch(e => {
|
|
j_("Failed to retry sending", e)
|
|
}))
|
|
}, e), "number" != typeof o && o.unref && o.unref())
|
|
}
|
|
|
|
function c() {
|
|
o || (s(i), i = Math.min(2 * i, C_))
|
|
}
|
|
async function u(e) {
|
|
try {
|
|
const t = await n.send(e);
|
|
let r = P_;
|
|
if (t)
|
|
if (t.headers && t.headers["retry-after"]) r = ef(t.headers["retry-after"]);
|
|
else if ((t.statusCode || 0) >= 400) return t;
|
|
return s(r), i = A_, t
|
|
} catch (t) {
|
|
if (r && await a(e, t, i)) return await r.insert(e), c(), j_("Error sending. Event queued", t), {};
|
|
throw t
|
|
}
|
|
}
|
|
return t.flushAtStartup && c(), {
|
|
send: u,
|
|
flush: e => n.flush(e)
|
|
}
|
|
}
|
|
}
|
|
|
|
function M_(e) {
|
|
return new Promise((t, n) => {
|
|
e.oncomplete = e.onsuccess = () => t(e.result), e.onabort = e.onerror = () => n(e.error)
|
|
})
|
|
}
|
|
|
|
function D_(e) {
|
|
return M_(e.getAllKeys())
|
|
}
|
|
|
|
function N_(e) {
|
|
let t;
|
|
|
|
function n() {
|
|
return null == t && (t = function(e, t) {
|
|
const n = indexedDB.open(e);
|
|
n.onupgradeneeded = () => n.result.createObjectStore(t);
|
|
const r = M_(n);
|
|
return e => r.then(n => e(n.transaction(t, "readwrite").objectStore(t)))
|
|
}(e.dbName || "sentry-offline", e.storeName || "queue")), t
|
|
}
|
|
return {
|
|
insert: async t => {
|
|
try {
|
|
const r = await Iu(t, e.textEncoder);
|
|
await
|
|
function(e, t, n) {
|
|
return e(e => D_(e).then(r => {
|
|
if (!(r.length >= n)) return e.put(t, Math.max(...r, 0) + 1), M_(e.transaction)
|
|
}))
|
|
}(n(), r, e.maxQueueSize || 30)
|
|
} catch (e) {}
|
|
},
|
|
pop: async () => {
|
|
try {
|
|
const t = await
|
|
function(e) {
|
|
return e(e => D_(e).then(t => {
|
|
if (0 !== t.length) return M_(e.get(t[0])).then(n => (e.delete(t[0]), M_(e.transaction).then(() => n)))
|
|
}))
|
|
}(n());
|
|
if (t) return function(e, t, n) {
|
|
let r = "string" == typeof e ? t.encode(e) : e;
|
|
|
|
function o(e) {
|
|
const t = r.subarray(0, e);
|
|
return r = r.subarray(e + 1), t
|
|
}
|
|
|
|
function i() {
|
|
let e = r.indexOf(10);
|
|
return e < 0 && (e = r.length), JSON.parse(n.decode(o(e)))
|
|
}
|
|
const a = i(),
|
|
s = [];
|
|
for (; r.length;) {
|
|
const e = i(),
|
|
t = "number" == typeof e.length ? e.length : void 0;
|
|
s.push([e, t ? o(t) : i()])
|
|
}
|
|
return [a, s]
|
|
}(t, e.textEncoder || new TextEncoder, e.textDecoder || new TextDecoder)
|
|
} catch (e) {}
|
|
}
|
|
}
|
|
}
|
|
|
|
function L_(e) {
|
|
return function(e) {
|
|
return t => e({
|
|
...t,
|
|
createStore: N_
|
|
})
|
|
}(R_(e))
|
|
}
|
|
const F_ = 1e6,
|
|
B_ = String(0),
|
|
U_ = "main";
|
|
let G_ = "",
|
|
$_ = "",
|
|
H_ = "",
|
|
z_ = wf.navigator && wf.navigator.userAgent || "",
|
|
q_ = "";
|
|
const W_ = wf.navigator && wf.navigator.language || wf.navigator && wf.navigator.languages && wf.navigator.languages[0] || "";
|
|
const V_ = wf.navigator && wf.navigator.userAgentData;
|
|
var Y_;
|
|
|
|
function J_(e) {
|
|
return function(e) {
|
|
return !("thread_metadata" in e)
|
|
}(e) ? function(e) {
|
|
let t, n = 0;
|
|
const r = {
|
|
samples: [],
|
|
stacks: [],
|
|
frames: [],
|
|
thread_metadata: {
|
|
[B_]: {
|
|
name: U_
|
|
}
|
|
}
|
|
};
|
|
if (!e.samples.length) return r;
|
|
const o = e.samples[0].timestamp,
|
|
i = "number" == typeof performance.timeOrigin ? performance.timeOrigin : ds || 0,
|
|
a = i - (ds || i);
|
|
for (let i = 0; i < e.samples.length; i++) {
|
|
const s = e.samples[i];
|
|
if (void 0 === s.stackId) {
|
|
void 0 === t && (t = n, r.stacks[t] = [], n++), r.samples[i] = {
|
|
elapsed_since_start_ns: ((s.timestamp + a - o) * F_).toFixed(0),
|
|
stack_id: t,
|
|
thread_id: B_
|
|
};
|
|
continue
|
|
}
|
|
let c = e.stacks[s.stackId];
|
|
const u = [];
|
|
for (; c;) {
|
|
u.push(c.frameId);
|
|
const t = e.frames[c.frameId];
|
|
void 0 === r.frames[c.frameId] && (r.frames[c.frameId] = {
|
|
function: t.name,
|
|
abs_path: "number" == typeof t.resourceId ? e.resources[t.resourceId] : void 0,
|
|
lineno: t.line,
|
|
colno: t.column
|
|
}), c = void 0 === c.parentId ? void 0 : e.stacks[c.parentId]
|
|
}
|
|
const l = {
|
|
elapsed_since_start_ns: ((s.timestamp + a - o) * F_).toFixed(0),
|
|
stack_id: n,
|
|
thread_id: B_
|
|
};
|
|
r.stacks[n] = u, r.samples[i] = l, n++
|
|
}
|
|
return r
|
|
}(e) : e
|
|
}
|
|
|
|
function K_(e, t, n, r) {
|
|
if ("transaction" !== r.type) throw new TypeError("Profiling events may only be attached to transactions, this should never occur.");
|
|
if (null == n) throw new TypeError(`Cannot construct profiling event envelope without a valid profile. Got ${n} instead.`);
|
|
const o = function(e) {
|
|
const t = e && e.contexts && e.contexts.trace && e.contexts.trace.trace_id;
|
|
return "string" == typeof t && 32 !== t.length && xf && Fa.log(`[Profiling] Invalid traceId: ${t} on profiled event`), "string" != typeof t ? "" : t
|
|
}(r),
|
|
i = J_(n),
|
|
a = t || ("number" == typeof r.start_timestamp ? 1e3 * r.start_timestamp : Date.now()),
|
|
s = "number" == typeof r.timestamp ? 1e3 * r.timestamp : Date.now();
|
|
return {
|
|
event_id: e,
|
|
timestamp: new Date(a).toISOString(),
|
|
platform: "javascript",
|
|
version: "1",
|
|
release: r.release || "",
|
|
environment: r.environment || Za,
|
|
runtime: {
|
|
name: "javascript",
|
|
version: wf.navigator.userAgent
|
|
},
|
|
os: {
|
|
name: G_,
|
|
version: $_,
|
|
build_number: z_
|
|
},
|
|
device: {
|
|
locale: W_,
|
|
model: q_,
|
|
manufacturer: z_,
|
|
architecture: H_,
|
|
is_emulator: !1
|
|
},
|
|
debug_meta: {
|
|
images: Z_(n.resources)
|
|
},
|
|
profile: i,
|
|
transactions: [{
|
|
name: r.transaction || "",
|
|
id: r.event_id || ts(),
|
|
trace_id: o,
|
|
active_thread_id: B_,
|
|
relative_start_ns: "0",
|
|
relative_end_ns: (1e6 * (s - a)).toFixed(0)
|
|
}]
|
|
}
|
|
}
|
|
|
|
function Q_(e) {
|
|
return "pageload" === e.op
|
|
}
|
|
"object" == typeof(Y_ = V_) && null !== Y_ && "getHighEntropyValues" in Y_ && V_.getHighEntropyValues(["architecture", "model", "platform", "platformVersion", "fullVersionList"]).then(e => {
|
|
if (G_ = e.platform || "", H_ = e.architecture || "", q_ = e.model || "", $_ = e.platformVersion || "", e.fullVersionList && e.fullVersionList.length > 0) {
|
|
const t = e.fullVersionList[e.fullVersionList.length - 1];
|
|
z_ = `${t.brand} ${t.version}`
|
|
}
|
|
}).catch(e => {});
|
|
const X_ = new WeakMap;
|
|
|
|
function Z_(e) {
|
|
const t = Ea._sentryDebugIds;
|
|
if (!t) return [];
|
|
const n = Uc(),
|
|
r = n && n.getOptions(),
|
|
o = r && r.stackParser;
|
|
if (!o) return [];
|
|
let i;
|
|
const a = X_.get(o);
|
|
a ? i = a : (i = new Map, X_.set(o, i));
|
|
const s = Object.keys(t).reduce((e, n) => {
|
|
let r;
|
|
const a = i.get(n);
|
|
a ? r = a : (r = o(n), i.set(n, r));
|
|
for (let o = r.length - 1; o >= 0; o--) {
|
|
const i = r[o],
|
|
a = i && i.filename;
|
|
if (i && a) {
|
|
e[a] = t[n];
|
|
break
|
|
}
|
|
}
|
|
return e
|
|
}, {}),
|
|
c = [];
|
|
for (const t of e) t && s[t] && c.push({
|
|
type: "sourcemap",
|
|
code_file: t,
|
|
debug_id: s[t]
|
|
});
|
|
return c
|
|
}
|
|
let eS = !1;
|
|
const tS = 3e4;
|
|
|
|
function nS(e) {
|
|
if (eS) return xf && Fa.log("[Profiling] Profiling has been disabled for the duration of the current user session."), !1;
|
|
if (!e.isRecording()) return xf && Fa.log("[Profiling] Discarding profile because transaction was not sampled."), !1;
|
|
const t = Uc(),
|
|
n = t && t.getOptions();
|
|
if (!n) return xf && Fa.log("[Profiling] Profiling disabled, no options found."), !1;
|
|
const r = n.profilesSampleRate;
|
|
if (!("number" != typeof(o = r) && "boolean" != typeof o || "number" == typeof o && isNaN(o) ? (xf && Fa.warn(`[Profiling] Invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(o)} of type ${JSON.stringify(typeof o)}.`), 0) : !0 === o || !1 === o || !(o < 0 || o > 1) || (xf && Fa.warn(`[Profiling] Invalid sample rate. Sample rate must be between 0 and 1. Got ${o}.`), 0))) return xf && Fa.warn("[Profiling] Discarding profile because of invalid sample rate."), !1;
|
|
var o;
|
|
if (!r) return xf && Fa.log("[Profiling] Discarding profile because a negative sampling decision was inherited or profileSampleRate is set to 0"), !1;
|
|
return !!(!0 === r || Math.random() < r) || (xf && Fa.log(`[Profiling] Discarding profile because it's not included in the random sample (sampling rate = ${Number(r)})`), !1)
|
|
}
|
|
|
|
function rS(e, t, n, r) {
|
|
return function(e) {
|
|
return e.samples.length < 2 ? (xf && Fa.log("[Profiling] Discarding profile because it contains less than 2 samples"), !1) : !!e.frames.length || (xf && Fa.log("[Profiling] Discarding profile because it contains no frames"), !1)
|
|
}(n) ? K_(e, t, n, r) : null
|
|
}
|
|
const oS = new Map;
|
|
|
|
function iS(e) {
|
|
const t = oS.get(e);
|
|
return t && oS.delete(e), t
|
|
}
|
|
|
|
function aS(e) {
|
|
return e ? nS(e) ? sS(e) : e : (xf && Fa.log("[Profiling] Transaction is undefined, skipping profiling"), e)
|
|
}
|
|
|
|
function sS(e) {
|
|
let t;
|
|
Q_(e) && (t = 1e3 * ls());
|
|
const n = function() {
|
|
const e = wf.Profiler;
|
|
if ("function" != typeof e) return void(xf && Fa.log("[Profiling] Profiling is not supported by this browser, Profiler interface missing on window object."));
|
|
const t = Math.floor(tS / 10);
|
|
try {
|
|
return new e({
|
|
sampleInterval: 10,
|
|
maxBufferSize: t
|
|
})
|
|
} catch (e) {
|
|
xf && (Fa.log("[Profiling] Failed to initialize the Profiling constructor, this is likely due to a missing 'Document-Policy': 'js-profiling' header."), Fa.log("[Profiling] Disabling profiling for current user session.")), eS = !0
|
|
}
|
|
}();
|
|
if (!n) return e;
|
|
xf && Fa.log(`[Profiling] started profiling transaction: ${Us(e).description}`);
|
|
const r = ts();
|
|
async function o() {
|
|
return e && n ? n.stop().then(t => (i && (wf.clearTimeout(i), i = void 0), xf && Fa.log(`[Profiling] stopped profiling of transaction: ${Us(e).description}`), t ? (function(e, t) {
|
|
if (oS.set(e, t), oS.size > 30) {
|
|
const e = oS.keys().next().value;
|
|
oS.delete(e)
|
|
}
|
|
}(r, t), null) : (xf && Fa.log(`[Profiling] profiler returned null profile for: ${Us(e).description}`, "this may indicate an overlapping transaction or a call to stopProfiling with a profile title that was never started"), null))).catch(e => (xf && Fa.log("[Profiling] error while stopping profiler:", e), null)) : null
|
|
}
|
|
let i = wf.setTimeout(() => {
|
|
xf && Fa.log("[Profiling] max profile duration elapsed, stopping profiling for:", Us(e).description), o()
|
|
}, tS);
|
|
const a = e.end.bind(e);
|
|
return e.end = function() {
|
|
return e ? (o().then(() => {
|
|
e.setContext("profile", {
|
|
profile_id: r,
|
|
start_timestamp: t
|
|
}), a()
|
|
}, () => {
|
|
a()
|
|
}), e) : a()
|
|
}, e
|
|
}
|
|
const cS = "BrowserProfiling",
|
|
uS = () => ({
|
|
name: cS,
|
|
setupOnce() {},
|
|
setup(e) {
|
|
const t = $c().getTransaction();
|
|
t && Q_(t) && nS(t) && sS(t), "function" == typeof e.on ? (e.on("startTransaction", e => {
|
|
nS(e) && sS(e)
|
|
}), e.on("beforeEnvelope", e => {
|
|
if (!oS.size) return;
|
|
const t = function(e) {
|
|
const t = [];
|
|
return Tu(e, (e, n) => {
|
|
if ("transaction" === n)
|
|
for (let n = 1; n < e.length; n++) {
|
|
const r = e[n];
|
|
r && r.contexts && r.contexts.profile && r.contexts.profile.profile_id && t.push(e[n])
|
|
}
|
|
}), t
|
|
}(e);
|
|
if (!t.length) return;
|
|
const n = [];
|
|
for (const e of t) {
|
|
const t = e && e.contexts,
|
|
r = t && t.profile && t.profile.profile_id,
|
|
o = t && t.profile && t.profile.start_timestamp;
|
|
if ("string" != typeof r) {
|
|
xf && Fa.log("[Profiling] cannot find profile for a transaction without a profile context");
|
|
continue
|
|
}
|
|
if (!r) {
|
|
xf && Fa.log("[Profiling] cannot find profile for a transaction without a profile context");
|
|
continue
|
|
}
|
|
t && t.profile && delete t.profile;
|
|
const i = iS(r);
|
|
if (!i) {
|
|
xf && Fa.log(`[Profiling] Could not retrieve profile for transaction: ${r}`);
|
|
continue
|
|
}
|
|
const a = rS(r, o, i, e);
|
|
a && n.push(a)
|
|
}! function(e, t) {
|
|
if (!t.length) return e;
|
|
for (const n of t) e[1].push([{
|
|
type: "profile"
|
|
}, n])
|
|
}(e, n)
|
|
})) : Fa.warn("[Profiling] Client does not support hooks, profiling will be disabled")
|
|
}
|
|
}),
|
|
lS = Xc(cS, uS);
|
|
let fS = {};
|
|
wf.Sentry && wf.Sentry.Integrations && (fS = wf.Sentry.Integrations);
|
|
const dS = {
|
|
...fS,
|
|
...vu,
|
|
...o
|
|
};
|
|
|
|
function pS(e) {
|
|
return pS = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, pS(e)
|
|
}
|
|
|
|
function hS(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function mS(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? hS(Object(n), !0).forEach(function(t) {
|
|
gS(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : hS(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function gS(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != pS(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != pS(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == pS(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
var yS;
|
|
const vS = {
|
|
beforeSend: function(e, t) {
|
|
return t.originalException && P.A.send("sentry:action", {
|
|
action: "sendJSONtoCDN",
|
|
error: t.originalException.message,
|
|
stack: t.originalException.stack,
|
|
name: Object.getPrototypeOf(t.originalException).name,
|
|
breadcrumbs: e.breadcrumbs,
|
|
tags: e.tags
|
|
}, {
|
|
background: !0
|
|
}), null
|
|
},
|
|
initialScope: {
|
|
tags: {
|
|
Source: "Content-Script"
|
|
}
|
|
}
|
|
};
|
|
|
|
function bS() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return _S(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (_S(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, _S(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, _S(f, "constructor", u), _S(u, "constructor", c), c.displayName = "GeneratorFunction", _S(u, o, "GeneratorFunction"), _S(f), _S(f, o, "Generator"), _S(f, r, function() {
|
|
return this
|
|
}), _S(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (bS = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function _S(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
_S = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
_S(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, _S(e, t, n, r)
|
|
}
|
|
|
|
function SS(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
|
|
function wS() {
|
|
return wS = function(e) {
|
|
return function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
SS(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
SS(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
}
|
|
}(bS().m(function e(t) {
|
|
var n;
|
|
return bS().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
P.A.send("page:load", {
|
|
url: t,
|
|
origin: window.location.origin,
|
|
hasServiceWorkers: !!((navigator || {}).serviceWorker || {}).controller
|
|
}, {
|
|
allTabs: !0,
|
|
background: !0,
|
|
ignoreResponse: !0
|
|
}).reflect(), I.A.debug("Honey ".concat("18.2.1", " content script is ready. Environment is ").concat("production")), e.n = 2;
|
|
break;
|
|
case 1:
|
|
n = e.v,
|
|
function() {
|
|
var e = document.createElement("script");
|
|
e.text = "\n (function setSdata() {\n window.sdata = ".concat(JSON.stringify(n), ";\n })();\n "), document.documentElement.appendChild(e)
|
|
}();
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
})), wS.apply(this, arguments)
|
|
}
|
|
c().onPossiblyUnhandledRejection(function(e) {
|
|
return I.A.error(e)
|
|
}),
|
|
function() {
|
|
wS.apply(this, arguments)
|
|
}(window.location.href),
|
|
function(e) {
|
|
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
|
|
if (yS) throw new Error("Sentry has already been initialized");
|
|
e.init(mS(mS({}, t), {}, {
|
|
dsn: "https://3b4bb33e1dfc432c9ccd9f9ce5a4bd25@o197999.ingest.sentry.io/6008007",
|
|
release: "".concat("honey-extension", "@").concat("18.2.1"),
|
|
attachStacktrace: !0,
|
|
autoSessionTracking: !1
|
|
})), yS = e
|
|
}(i, vS), setTimeout(function() {
|
|
if ("www.joinhoney.com" === window.location.hostname) {
|
|
var e = document.querySelector("#messagingEventHandler");
|
|
if (e)
|
|
if (e.getAttribute("si_ext")) P.A.send("si:on", {
|
|
si_ext: e.getAttribute("si_ext")
|
|
}, {
|
|
ignoreResponse: !0,
|
|
background: !0
|
|
});
|
|
else new MutationObserver(function() {
|
|
e.getAttribute("si_ext") && P.A.send("si:on", {
|
|
si_ext: e.getAttribute("si_ext")
|
|
}, {
|
|
ignoreResponse: !0,
|
|
background: !0
|
|
})
|
|
}).observe(e, {
|
|
attributes: !0
|
|
})
|
|
}
|
|
});
|
|
var OS = {
|
|
$: l(),
|
|
acorns: d.A,
|
|
adbBp: sa.A,
|
|
ajax: p.A,
|
|
button: h.A,
|
|
cartPageFetcher: mi.A,
|
|
clipboard: m.A,
|
|
config: g.A,
|
|
confirmation: S.A,
|
|
cookies: w.A,
|
|
device: O.A,
|
|
experiments: E.A,
|
|
extensionReview: k.A,
|
|
i18n: T.A,
|
|
imageLoader: x.A,
|
|
honeyPayNow: {},
|
|
honeyPayPal: gt.A,
|
|
launchpad: ca.Ay,
|
|
logger: I.A,
|
|
messages: P.A,
|
|
offers: C.A,
|
|
optimus: j.A,
|
|
pageDetector: vt.Ay,
|
|
popover: yt.A,
|
|
runtime: _t,
|
|
savingsController: z.A,
|
|
stats: he.A,
|
|
storage: me.A,
|
|
stores: B.A,
|
|
tabs: U.A,
|
|
ui: A.A,
|
|
user: F.A,
|
|
userSavingsStats: hi.A,
|
|
util: f.A,
|
|
vims: vi.A,
|
|
websiteComm: aa.A
|
|
};
|
|
P.A.addListener("debug:change", function(e, t) {
|
|
try {
|
|
t.active ? window.honey = OS : delete window.honey
|
|
} catch (e) {}
|
|
})
|
|
},
|
|
70364: (e, t, n) => {
|
|
var r = n(9144),
|
|
o = n(82417);
|
|
e.exports = function(e, t, n) {
|
|
var i = t && n || 0;
|
|
"string" == typeof e && (t = "binary" == e ? new Array(16) : null, e = null);
|
|
var a = (e = e || {}).random || (e.rng || r)();
|
|
if (a[6] = 15 & a[6] | 64, a[8] = 63 & a[8] | 128, t)
|
|
for (var s = 0; s < 16; ++s) t[i + s] = a[s];
|
|
return t || o(a)
|
|
}
|
|
},
|
|
70481: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
Ay: () => d,
|
|
VH: () => i.A,
|
|
md: () => f,
|
|
yo: () => l
|
|
});
|
|
var r = n(25023),
|
|
o = n(66194),
|
|
i = n(22195);
|
|
|
|
function a(e) {
|
|
return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, a(e)
|
|
}
|
|
|
|
function s(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function c(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? s(Object(n), !0).forEach(function(t) {
|
|
u(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function u(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != a(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != a(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == a(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
var l = r.o1.update,
|
|
f = c(c({}, o.A), r.o1);
|
|
const d = r.Ff
|
|
},
|
|
70585: (e, t, n) => {
|
|
"use strict";
|
|
Object.defineProperty(t, "__esModule", {
|
|
value: !0
|
|
}), t.default = void 0;
|
|
var r = s(n(9666)),
|
|
o = s(n(86146)),
|
|
i = n(22662),
|
|
a = n(72097);
|
|
|
|
function s(e) {
|
|
return e && e.__esModule ? e : {
|
|
default: e
|
|
}
|
|
}
|
|
const c = {
|
|
ctaCopy: o.default.string.isRequired,
|
|
ctaStatus: o.default.string,
|
|
ctaType: o.default.string,
|
|
handleCta: o.default.func.isRequired
|
|
},
|
|
u = {
|
|
footer: {
|
|
position: "sticky",
|
|
bottom: 0,
|
|
padding: "16px 24px",
|
|
borderTop: `1px solid ${a.Colors.grey400}`
|
|
}
|
|
},
|
|
l = (0, i.createUseStyles)(u),
|
|
f = ({
|
|
ctaCopy: e,
|
|
ctaStatus: t,
|
|
ctaType: n,
|
|
handleCta: o
|
|
}) => {
|
|
const i = l();
|
|
return r.default.createElement("div", {
|
|
className: i.footer
|
|
}, r.default.createElement(a.Button, {
|
|
id: "BottomSheetFooterButton",
|
|
size: 40,
|
|
buttonType: n,
|
|
copy: e,
|
|
isFlexible: !0,
|
|
status: t,
|
|
onClick: o
|
|
}))
|
|
};
|
|
f.propTypes = c, f.defaultProps = {
|
|
ctaStatus: "",
|
|
ctaType: "primary"
|
|
};
|
|
t.default = f
|
|
},
|
|
72097: (e, t, n) => {
|
|
"use strict";
|
|
Object.defineProperty(t, "__esModule", {
|
|
value: !0
|
|
});
|
|
var r = {
|
|
version: !0,
|
|
Badge: !0,
|
|
Button: !0,
|
|
Breadcrumb: !0,
|
|
CheckBox: !0,
|
|
CloseButton: !0,
|
|
Collapse: !0,
|
|
Container: !0,
|
|
Colors: !0,
|
|
Dropdown: !0,
|
|
DropdownV2: !0,
|
|
ActionMenu: !0,
|
|
DroplistBadge: !0,
|
|
FlatButton: !0,
|
|
Footer: !0,
|
|
FooterLinks: !0,
|
|
FormInput: !0,
|
|
FormInputButton: !0,
|
|
Grid: !0,
|
|
Gold: !0,
|
|
HamburgerMenu: !0,
|
|
Header: !0,
|
|
HoneyGold: !0,
|
|
Icon: !0,
|
|
PayPalToolkitIcon: !0,
|
|
Image: !0,
|
|
ListBox: !0,
|
|
LoadingIcon: !0,
|
|
Logo: !0,
|
|
Media: !0,
|
|
Modal: !0,
|
|
Notification: !0,
|
|
NotificationBanner: !0,
|
|
OptimusBadge: !0,
|
|
SerpBadge: !0,
|
|
Popup: !0,
|
|
Pill: !0,
|
|
RadioButton: !0,
|
|
RadioGroup: !0,
|
|
useScrollToChild: !0,
|
|
SearchBox: !0,
|
|
SearchDropdown: !0,
|
|
SelectionBox: !0,
|
|
Slider: !0,
|
|
SkipToContent: !0,
|
|
StoreLogo: !0,
|
|
Toggle: !0,
|
|
Tooltip: !0,
|
|
ToolTipIcon: !0,
|
|
useOutsideClick: !0,
|
|
usePrevious: !0
|
|
};
|
|
Object.defineProperty(t, "ActionMenu", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return g.default
|
|
}
|
|
}), Object.defineProperty(t, "Badge", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return a.default
|
|
}
|
|
}), Object.defineProperty(t, "Breadcrumb", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return c.default
|
|
}
|
|
}), Object.defineProperty(t, "Button", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return s.default
|
|
}
|
|
}), Object.defineProperty(t, "CheckBox", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return u.default
|
|
}
|
|
}), Object.defineProperty(t, "CloseButton", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return l.default
|
|
}
|
|
}), Object.defineProperty(t, "Collapse", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return f.default
|
|
}
|
|
}), Object.defineProperty(t, "Colors", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return p.default
|
|
}
|
|
}), Object.defineProperty(t, "Container", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return d.default
|
|
}
|
|
}), Object.defineProperty(t, "Dropdown", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return h.default
|
|
}
|
|
}), Object.defineProperty(t, "DropdownV2", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return m.default
|
|
}
|
|
}), Object.defineProperty(t, "DroplistBadge", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return y.default
|
|
}
|
|
}), Object.defineProperty(t, "FlatButton", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return v.default
|
|
}
|
|
}), Object.defineProperty(t, "Footer", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return b.default
|
|
}
|
|
}), Object.defineProperty(t, "FooterLinks", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return _.default
|
|
}
|
|
}), Object.defineProperty(t, "FormInput", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return S.default
|
|
}
|
|
}), Object.defineProperty(t, "FormInputButton", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return w.default
|
|
}
|
|
}), Object.defineProperty(t, "Gold", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return E.default
|
|
}
|
|
}), Object.defineProperty(t, "Grid", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return O.default
|
|
}
|
|
}), Object.defineProperty(t, "HamburgerMenu", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return k.default
|
|
}
|
|
}), Object.defineProperty(t, "Header", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return T.default
|
|
}
|
|
}), Object.defineProperty(t, "HoneyGold", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return x.default
|
|
}
|
|
}), Object.defineProperty(t, "Icon", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return I.default
|
|
}
|
|
}), Object.defineProperty(t, "Image", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return A.default
|
|
}
|
|
}), Object.defineProperty(t, "ListBox", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return C.default
|
|
}
|
|
}), Object.defineProperty(t, "LoadingIcon", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return j.default
|
|
}
|
|
}), Object.defineProperty(t, "Logo", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return R.default
|
|
}
|
|
}), Object.defineProperty(t, "Media", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return M.default
|
|
}
|
|
}), Object.defineProperty(t, "Modal", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return D.default
|
|
}
|
|
}), Object.defineProperty(t, "Notification", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return N.default
|
|
}
|
|
}), Object.defineProperty(t, "NotificationBanner", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return L.default
|
|
}
|
|
}), Object.defineProperty(t, "OptimusBadge", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return F.default
|
|
}
|
|
}), Object.defineProperty(t, "PayPalToolkitIcon", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return P.default
|
|
}
|
|
}), Object.defineProperty(t, "Pill", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return G.default
|
|
}
|
|
}), Object.defineProperty(t, "Popup", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return U.default
|
|
}
|
|
}), Object.defineProperty(t, "RadioButton", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return $.default
|
|
}
|
|
}), Object.defineProperty(t, "RadioGroup", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return H.default
|
|
}
|
|
}), Object.defineProperty(t, "SearchBox", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return q.default
|
|
}
|
|
}), Object.defineProperty(t, "SearchDropdown", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return W.default
|
|
}
|
|
}), Object.defineProperty(t, "SelectionBox", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return V.default
|
|
}
|
|
}), Object.defineProperty(t, "SerpBadge", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return B.default
|
|
}
|
|
}), Object.defineProperty(t, "SkipToContent", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return J.default
|
|
}
|
|
}), Object.defineProperty(t, "Slider", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return Y.default
|
|
}
|
|
}), Object.defineProperty(t, "StoreLogo", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return K.default
|
|
}
|
|
}), Object.defineProperty(t, "Toggle", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return Q.default
|
|
}
|
|
}), Object.defineProperty(t, "ToolTipIcon", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return Z.default
|
|
}
|
|
}), Object.defineProperty(t, "Tooltip", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return X.default
|
|
}
|
|
}), Object.defineProperty(t, "useOutsideClick", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return ee.default
|
|
}
|
|
}), Object.defineProperty(t, "usePrevious", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return te.default
|
|
}
|
|
}), Object.defineProperty(t, "useScrollToChild", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return z.default
|
|
}
|
|
}), t.version = void 0;
|
|
var o = n(39321),
|
|
i = n(37597);
|
|
Object.keys(i).forEach(function(e) {
|
|
"default" !== e && "__esModule" !== e && (Object.prototype.hasOwnProperty.call(r, e) || e in t && t[e] === i[e] || Object.defineProperty(t, e, {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return i[e]
|
|
}
|
|
}))
|
|
});
|
|
var a = ne(n(92900)),
|
|
s = ne(n(43384)),
|
|
c = ne(n(25393)),
|
|
u = ne(n(47925)),
|
|
l = ne(n(63862)),
|
|
f = ne(n(88359)),
|
|
d = ne(n(66665)),
|
|
p = ne(n(90525)),
|
|
h = ne(n(12133)),
|
|
m = ne(n(4421)),
|
|
g = ne(n(75618)),
|
|
y = ne(n(28599)),
|
|
v = ne(n(77983)),
|
|
b = ne(n(83727)),
|
|
_ = ne(n(34121)),
|
|
S = ne(n(23260)),
|
|
w = ne(n(13028)),
|
|
O = ne(n(61995)),
|
|
E = ne(n(1962)),
|
|
k = ne(n(50990)),
|
|
T = ne(n(9197)),
|
|
x = ne(n(12187)),
|
|
I = ne(n(31371)),
|
|
P = ne(n(69330)),
|
|
A = ne(n(24183)),
|
|
C = ne(n(87347)),
|
|
j = ne(n(29709)),
|
|
R = ne(n(4091)),
|
|
M = ne(n(86461)),
|
|
D = ne(n(45391)),
|
|
N = ne(n(74459)),
|
|
L = ne(n(50453)),
|
|
F = ne(n(15085)),
|
|
B = ne(n(60610)),
|
|
U = ne(n(91416)),
|
|
G = ne(n(92167)),
|
|
$ = ne(n(49421)),
|
|
H = ne(n(46)),
|
|
z = ne(n(43655)),
|
|
q = ne(n(24875)),
|
|
W = ne(n(38453)),
|
|
V = ne(n(32719)),
|
|
Y = ne(n(47149)),
|
|
J = ne(n(10297)),
|
|
K = ne(n(31432)),
|
|
Q = ne(n(4948)),
|
|
X = ne(n(94037)),
|
|
Z = ne(n(31868)),
|
|
ee = ne(n(43944)),
|
|
te = ne(n(83296));
|
|
|
|
function ne(e) {
|
|
return e && e.__esModule ? e : {
|
|
default: e
|
|
}
|
|
}
|
|
t.version = o.version
|
|
},
|
|
72341: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
A: () => s,
|
|
I: () => a
|
|
});
|
|
var r = n(9666),
|
|
o = function() {},
|
|
i = r.createContext({
|
|
scrollToCategory: o
|
|
}),
|
|
a = function() {
|
|
var e = ((0, r.useContext)(i) || {}).scrollToCategory;
|
|
return {
|
|
scrollToCategory: void 0 === e ? o : e
|
|
}
|
|
};
|
|
const s = i
|
|
},
|
|
73639: (e, t, n) => {
|
|
"use strict";
|
|
t.A = void 0;
|
|
var r = a(n(9666)),
|
|
o = n(22662),
|
|
i = a(n(86146));
|
|
|
|
function a(e) {
|
|
return e && e.__esModule ? e : {
|
|
default: e
|
|
}
|
|
}
|
|
const s = {
|
|
children: i.default.node,
|
|
topLeftContainer: i.default.node,
|
|
topMiddleContainer: i.default.node,
|
|
topRightContainer: i.default.node
|
|
},
|
|
c = (0, o.createUseStyles)({
|
|
root: {
|
|
width: "80px",
|
|
minHeight: "64px",
|
|
borderRadius: "6px 0px 0px 6px",
|
|
boxShadow: "0px 2px 35px rgba(0, 0, 0, 0.25);",
|
|
position: "relative",
|
|
background: "linear-gradient(180deg, #F26C25 0%, #CC4B06 100%);"
|
|
},
|
|
topRow: {
|
|
position: "absolute",
|
|
top: 0,
|
|
width: "100%",
|
|
display: "flex",
|
|
justifyContent: "space-between",
|
|
alignItems: "center"
|
|
}
|
|
}),
|
|
u = ({
|
|
children: e,
|
|
topLeftContainer: t,
|
|
topMiddleContainer: n,
|
|
topRightContainer: o
|
|
}) => {
|
|
const i = c();
|
|
return r.default.createElement("div", {
|
|
className: i.root
|
|
}, r.default.createElement("div", {
|
|
className: i.topRow
|
|
}, r.default.createElement("div", null, t), r.default.createElement("div", null, n), r.default.createElement("div", null, o)), e)
|
|
};
|
|
u.propTypes = s, u.defaultProps = {
|
|
children: null,
|
|
topLeftContainer: null,
|
|
topMiddleContainer: null,
|
|
topRightContainer: null
|
|
};
|
|
t.A = u
|
|
},
|
|
74428: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
A: () => i
|
|
});
|
|
var r = n(34778),
|
|
o = n(59331);
|
|
const i = function(e) {
|
|
return function(t) {
|
|
var n = ((0, r.A)(e) || {}).categoryId;
|
|
return (0, o.A)(n)(t)
|
|
}
|
|
}
|
|
},
|
|
75606: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
A: () => P,
|
|
C: () => I
|
|
});
|
|
var r = n(69698),
|
|
o = n.n(r),
|
|
i = n(262),
|
|
a = n.n(i),
|
|
s = n(9921),
|
|
c = n(24333),
|
|
u = n(32969),
|
|
l = n(28974),
|
|
f = n(68540),
|
|
d = n(61991);
|
|
|
|
function p(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function h(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? p(Object(n), !0).forEach(function(t) {
|
|
m(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : p(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function m(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != g(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != g(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == g(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
|
|
function g(e) {
|
|
return g = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, g(e)
|
|
}
|
|
|
|
function y(e, t) {
|
|
return function(e) {
|
|
if (Array.isArray(e)) return e
|
|
}(e) || function(e, t) {
|
|
var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
|
|
if (null != n) {
|
|
var r, o, i, a, s = [],
|
|
c = !0,
|
|
u = !1;
|
|
try {
|
|
if (i = (n = n.call(e)).next, 0 === t) {
|
|
if (Object(n) !== n) return;
|
|
c = !1
|
|
} else
|
|
for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0);
|
|
} catch (e) {
|
|
u = !0, o = e
|
|
} finally {
|
|
try {
|
|
if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return
|
|
} finally {
|
|
if (u) throw o
|
|
}
|
|
}
|
|
return s
|
|
}
|
|
}(e, t) || v(e, t) || function() {
|
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
|
|
}()
|
|
}
|
|
|
|
function v(e, t) {
|
|
if (e) {
|
|
if ("string" == typeof e) return b(e, t);
|
|
var n = {}.toString.call(e).slice(8, -1);
|
|
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? b(e, t) : void 0
|
|
}
|
|
}
|
|
|
|
function b(e, t) {
|
|
(null == t || t > e.length) && (t = e.length);
|
|
for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n];
|
|
return r
|
|
}
|
|
var _ = !1;
|
|
|
|
function S(e) {
|
|
var t;
|
|
if (e && e.length < 10 && e.includes("http")) return "";
|
|
try {
|
|
if ("http:" === (t = new URL(e, window.location.href)).protocol || "https:" === t.protocol) return t.href
|
|
} catch (e) {
|
|
return s.A.debug("url cannot be validated: ".concat(e)), ""
|
|
}
|
|
return ""
|
|
}
|
|
|
|
function w(e) {
|
|
var t = "";
|
|
return e.text().length > 0 ? t = e.text() : e.attr("src") ? t = e.attr("src") : e.attr("value") ? t = e.attr("value") : e.attr("href") ? t = e.attr("href") : e.attr("content") ? t = e.attr("content") : e.attr("id") && (t = e.attr("id")), t.replace(/\s+/g, " ").trim()
|
|
}
|
|
|
|
function O() {
|
|
var e, t = 0;
|
|
if (o()("html").find("img:visible").each(function(n, r) {
|
|
var i = o()(r),
|
|
a = parseFloat(i.width()) * parseFloat(i.height());
|
|
return a > t && i.offset().top <= 800 && i.offset().top >= 0 && i.offset().left >= 0 && (e = i, t = a), !0
|
|
}), !e) return "";
|
|
var n = e.attr("src") ? S(e.attr("src")) : "";
|
|
if (!n) {
|
|
var r = e.attr("srcset") || e.data("srcset");
|
|
if (r) n = S(r.split(" ")[0]);
|
|
else e.data("src") && (n = S(e.data("src")))
|
|
}
|
|
return n
|
|
}
|
|
|
|
function E(e, t) {
|
|
var n, r = _ ? {} : "",
|
|
i = function(e, t) {
|
|
var n = "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
|
|
if (!n) {
|
|
if (Array.isArray(e) || (n = v(e)) || t && e && "number" == typeof e.length) {
|
|
n && (e = n);
|
|
var r = 0,
|
|
o = function() {};
|
|
return {
|
|
s: o,
|
|
n: function() {
|
|
return r >= e.length ? {
|
|
done: !0
|
|
} : {
|
|
done: !1,
|
|
value: e[r++]
|
|
}
|
|
},
|
|
e: function(e) {
|
|
throw e
|
|
},
|
|
f: o
|
|
}
|
|
}
|
|
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
|
|
}
|
|
var i, a = !0,
|
|
s = !1;
|
|
return {
|
|
s: function() {
|
|
n = n.call(e)
|
|
},
|
|
n: function() {
|
|
var e = n.next();
|
|
return a = e.done, e
|
|
},
|
|
e: function(e) {
|
|
s = !0, i = e
|
|
},
|
|
f: function() {
|
|
try {
|
|
a || null == n.return || n.return()
|
|
} finally {
|
|
if (s) throw i
|
|
}
|
|
}
|
|
}
|
|
}(e.entries());
|
|
try {
|
|
for (i.s(); !(n = i.n()).done;) {
|
|
var a = y(n.value, 2),
|
|
s = a[0],
|
|
u = a[1];
|
|
if (!_ && r) break;
|
|
var l = o()(u).first();
|
|
if (l.length > 0) {
|
|
var f = w(l);
|
|
"url" === t ? f = S(f) : "number" === t && (f = c.A.cleanPrice(f)), _ ? r[s] = f : r = f
|
|
} else _ && (r[s] = "")
|
|
}
|
|
} catch (e) {
|
|
i.e(e)
|
|
} finally {
|
|
i.f()
|
|
}
|
|
return r
|
|
}
|
|
|
|
function k(e, t) {
|
|
return "number" !== t && e.length > 0 || "number" === t && e > 0
|
|
}
|
|
|
|
function T(e, t) {
|
|
var n = e;
|
|
return t.number && (n = c.A.cleanPrice(n)), t.array ? n = [n] : Array.isArray(n) && n.length > 0 && (n = n[0]), n || ""
|
|
}
|
|
|
|
function x() {
|
|
var e = {};
|
|
return Object.keys(d).forEach(function(t) {
|
|
d[t].ldJson && (e[t] = "")
|
|
}), e
|
|
}
|
|
|
|
function I() {
|
|
var e, t, n, r, o = {},
|
|
i = (e = {}, Object.keys(d).forEach(function(t) {
|
|
var n = d[t],
|
|
r = n.primaryPageSelectors,
|
|
o = n.secondaryPageSelectors,
|
|
i = n.type;
|
|
if (r || o) {
|
|
var a = !0,
|
|
s = E(r, i);
|
|
if (o && (!s || _ && Object.values(s).every(function(e) {
|
|
return !k(e, i)
|
|
})) && (a = !1, s = E(o, i)), s)
|
|
if (_) {
|
|
var c;
|
|
Object.values(s).forEach(function(n, r) {
|
|
e["".concat(t, ".").concat(r)] = n
|
|
});
|
|
for (var u = 0, l = Object.values(s); u < l.length; u++) {
|
|
var f = l[u];
|
|
if (k(f, i)) {
|
|
c = f;
|
|
break
|
|
}
|
|
}
|
|
e[t] = {
|
|
value: c,
|
|
isPrimary: a
|
|
}
|
|
} else e[t] = {
|
|
value: s,
|
|
isPrimary: a
|
|
};
|
|
else e[t] = {
|
|
value: ""
|
|
}
|
|
}
|
|
}), e),
|
|
a = function() {
|
|
var e = {};
|
|
try {
|
|
var t, n = document.querySelectorAll('[type="application/ld+json"]');
|
|
if (n.length > 0 && n.forEach(function(e) {
|
|
try {
|
|
var n = JSON.parse(e.text.replace(/[\t\n\r]/gm, "").trim());
|
|
"Product" === n["@type"] && (t = n)
|
|
} catch (e) {
|
|
s.A.debug("failed to parse ld+json: ".concat(e))
|
|
}
|
|
}), !t) return _ ? x() : {};
|
|
Object.keys(d).forEach(function(n) {
|
|
var r = d[n],
|
|
o = r.ldJson,
|
|
i = r.type;
|
|
if (o) {
|
|
var a = t,
|
|
s = "";
|
|
if (Array.isArray(o)) o.forEach(function(e) {
|
|
a[e] && (a = a[e])
|
|
}), "string" == typeof a && (s = T(a, r));
|
|
else {
|
|
var c = t[o];
|
|
s = "object" !== g(c) || Array.isArray(c) ? T(t[o], r) : T(t[o][o], r)
|
|
}
|
|
e[n] = "url" === i ? S(s) : s
|
|
}
|
|
});
|
|
var r = t.offers;
|
|
Array.isArray(r) ? (e.price_current = c.A.cleanPrice(r[0].price) || e.price_current, e.currency = t.offers[0].priceCurrency || e.currency) : (e.price_current = c.A.cleanPrice(r.price) || e.price_current, e.currency = r.priceCurrency || e.currency, e.canonical_url = r.url || e.canonical_url)
|
|
} catch (e) {
|
|
s.A.debug("failed to parse ld+json: ".concat(e))
|
|
}
|
|
return h(h({}, x), e)
|
|
}(),
|
|
u = (t = (0, f.A)() || "", n = c.A.cleanPrice(t), r = (t.match(f.t) || [])[0], -1 === Math.sign(n) && (n *= -1), {
|
|
currency_symbol: r,
|
|
image_url_primary: O(),
|
|
price_current: n
|
|
});
|
|
return Object.keys(d).forEach(function(e) {
|
|
var t = {
|
|
meta: i[e],
|
|
ldJson: a[e],
|
|
custom: u[e]
|
|
};
|
|
o[e] = function(e, t) {
|
|
var n = t.meta,
|
|
r = t.ldJson,
|
|
o = t.custom,
|
|
i = n || {},
|
|
a = i.value,
|
|
s = i.isPrimary;
|
|
return a && s ? a : o || r || a
|
|
}(0, t)
|
|
}), {
|
|
prodData: o,
|
|
meta: i,
|
|
ldJson: a,
|
|
customData: u
|
|
}
|
|
}
|
|
const P = function() {
|
|
return a().delay(2500).then(function() {
|
|
var e = I(),
|
|
t = e.prodData,
|
|
n = e.meta,
|
|
r = e.ldJson,
|
|
o = e.customData,
|
|
i = {
|
|
url: window.location.href,
|
|
prodData: t
|
|
};
|
|
if (_) {
|
|
var a = Object.entries(n).filter(function(e) {
|
|
return "object" !== g(y(e, 2)[1])
|
|
});
|
|
i = h(h({}, i), {}, {
|
|
meta: Object.fromEntries(a),
|
|
ldJson: r,
|
|
customData: o
|
|
}), u.A.send("genericFetcher:debug", {
|
|
action: l.A.SAVE_FETCHER_DATA,
|
|
data: i
|
|
}, {
|
|
background: !0
|
|
})
|
|
}
|
|
return u.A.send("current:product:generic", {
|
|
data: t
|
|
}), t
|
|
})
|
|
}
|
|
},
|
|
76176: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
wD: () => i
|
|
});
|
|
var r = n(49651);
|
|
e = n.hmd(e);
|
|
var o = n(74620);
|
|
|
|
function i() {
|
|
return !(0, r.Z)() && "[object process]" === Object.prototype.toString.call(void 0 !== o ? o : 0)
|
|
}
|
|
},
|
|
78111: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
A: () => b
|
|
});
|
|
var r = n(9666),
|
|
o = n(9098),
|
|
i = n(86146),
|
|
a = n.n(i),
|
|
s = n(22662),
|
|
c = n(72097),
|
|
u = n(31755),
|
|
l = n(7837),
|
|
f = n(46946),
|
|
d = n(25094),
|
|
p = n(50618),
|
|
h = n(32372);
|
|
|
|
function m(e, t) {
|
|
return function(e) {
|
|
if (Array.isArray(e)) return e
|
|
}(e) || function(e, t) {
|
|
var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
|
|
if (null != n) {
|
|
var r, o, i, a, s = [],
|
|
c = !0,
|
|
u = !1;
|
|
try {
|
|
if (i = (n = n.call(e)).next, 0 === t) {
|
|
if (Object(n) !== n) return;
|
|
c = !1
|
|
} else
|
|
for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0);
|
|
} catch (e) {
|
|
u = !0, o = e
|
|
} finally {
|
|
try {
|
|
if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return
|
|
} finally {
|
|
if (u) throw o
|
|
}
|
|
}
|
|
return s
|
|
}
|
|
}(e, t) || function(e, t) {
|
|
if (e) {
|
|
if ("string" == typeof e) return g(e, t);
|
|
var n = {}.toString.call(e).slice(8, -1);
|
|
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? g(e, t) : void 0
|
|
}
|
|
}(e, t) || function() {
|
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
|
|
}()
|
|
}
|
|
|
|
function g(e, t) {
|
|
(null == t || t > e.length) && (t = e.length);
|
|
for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n];
|
|
return r
|
|
}
|
|
var y = (0, s.createUseStyles)({
|
|
href: {
|
|
textDecoration: "underline",
|
|
color: c.Colors.white
|
|
},
|
|
main: {
|
|
display: "flex",
|
|
justifyContent: "flex-end",
|
|
paddingRight: "8px"
|
|
},
|
|
tooltip: {
|
|
textAlign: "left",
|
|
composes: "body2",
|
|
width: "176px"
|
|
}
|
|
});
|
|
|
|
function v(e) {
|
|
var t = e.allowTooltip,
|
|
n = e.isFollowing,
|
|
i = e.isHeaderButton,
|
|
a = e.position,
|
|
s = e.store,
|
|
g = s.storeId,
|
|
v = s.storeName,
|
|
b = e.storeSessionCount,
|
|
_ = e.subSrc,
|
|
S = e.tooltipDirection,
|
|
w = e.user,
|
|
O = y(),
|
|
E = (0, o.wA)(),
|
|
k = m((0, r.useState)(!1), 2),
|
|
T = k[0],
|
|
x = k[1],
|
|
I = m((0, r.useState)(!1), 2),
|
|
P = I[0],
|
|
A = I[1],
|
|
C = !n && t && T,
|
|
j = !n && !t && (T || b > 3),
|
|
R = C || j;
|
|
(0, r.useEffect)(function() {
|
|
w && w.isLoggedIn && u.A.getSetting("requestgold-stores-".concat(w.id)).then(function() {
|
|
(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : []).includes(g) && A(!0)
|
|
})
|
|
}, [w, g]);
|
|
var M = function() {
|
|
if (P && f.A.sendEvent("ext600000", {
|
|
page_variant: "done_screen",
|
|
cta_type: h.ct.NONE,
|
|
action: "click",
|
|
action_type: n ? "unfollow" : "follow"
|
|
}), f.A.sendEvent("ext004015", {
|
|
sub_src: _,
|
|
store_id: g,
|
|
position: a,
|
|
user_following: n,
|
|
action: "click",
|
|
action_type: n ? "unfollow" : "follow",
|
|
context: j ? "nudge_to_follow" : null
|
|
}), w.isLoggedIn) {
|
|
var e = n ? "UNFOLLOW" : "FOLLOW";
|
|
E(p.Xp.updateUserFollow({
|
|
storeId: g,
|
|
userId: w.id,
|
|
action: e
|
|
}))
|
|
} else d.A.openEmailAuth("login", "launchpad-ext", !0)
|
|
};
|
|
(0, r.useEffect)(function() {
|
|
i && f.A.sendEvent("ext004015", {
|
|
action: "show",
|
|
action_type: null,
|
|
position: a,
|
|
sub_src: _,
|
|
store_id: g,
|
|
user_following: n,
|
|
context: j ? "nudge_to_follow" : null
|
|
})
|
|
}, []);
|
|
var D, N, L, F, B = 24;
|
|
"trending_stores" === _ && (B = 32), n && !T && w.isLoggedIn ? (N = l.A.getMessage("Following"), F = l.A.getMessageAndReplace("Following_STORENAME", {
|
|
STORENAME: v
|
|
}).join(""), L = "secondary-ghost") : n && T && w.isLoggedIn ? (N = l.A.getMessage("Unfollow"), F = l.A.getMessageAndReplace("Unfollow_STORENAME", {
|
|
STORENAME: v
|
|
}).join(""), D = "#FF5252") : (N = l.A.getMessage("Follow"), F = l.A.getMessageAndReplace("Follow_STORENAME", {
|
|
STORENAME: v
|
|
}).join(""), L = "secondary");
|
|
var U = C && r.createElement("div", {
|
|
className: O.tooltip
|
|
}, l.A.getMessage("Follow_your_favorite_stores_to_get_sale_alerts_new_coupons_and_personalized_recommendations_on_your_feed"), r.createElement("a", {
|
|
href: "https://www.joinhoney.com/feed",
|
|
className: O.href,
|
|
rel: "noopener noreferrer",
|
|
target: "_blank",
|
|
onClick: function() {
|
|
f.A.sendEvent("ext004015", {
|
|
sub_src: _,
|
|
store_id: g,
|
|
position: a,
|
|
user_following: n,
|
|
action: "click",
|
|
action_type: "feed"
|
|
})
|
|
}
|
|
}, l.A.getMessage("Learn_more"))),
|
|
G = j && r.createElement("div", {
|
|
className: O.tooltip
|
|
}, l.A.getMessage("Love_STORENAME_Follow_this_store_to_get_sale_alerts").replace(/{STORENAME}/g, v));
|
|
return r.createElement("div", {
|
|
className: O.main,
|
|
"data-position": a,
|
|
"data-store-id": g,
|
|
"data-sub-src": _,
|
|
"data-user-following": n,
|
|
onMouseEnter: function() {
|
|
f.A.sendEvent("ext004015", {
|
|
sub_src: _,
|
|
store_id: g,
|
|
position: a,
|
|
user_following: n,
|
|
action: "hover",
|
|
action_type: null,
|
|
context: j ? "nudge_to_follow" : null
|
|
}), x(!0)
|
|
},
|
|
onMouseLeave: function() {
|
|
x(!1)
|
|
}
|
|
}, R ? r.createElement(c.ToolTipIcon, {
|
|
forceShow: !0,
|
|
interactable: !0,
|
|
dotted: !1,
|
|
direction: S,
|
|
component: R && (U || G) || null,
|
|
customAnchorElement: r.createElement(c.Button, {
|
|
id: "corner:follow:button",
|
|
buttonColor: D,
|
|
buttonType: L,
|
|
copy: N,
|
|
onClick: M,
|
|
size: B,
|
|
ariaLabel: F
|
|
})
|
|
}) : r.createElement(c.Button, {
|
|
id: "corner:follow:button",
|
|
buttonColor: D,
|
|
buttonType: L,
|
|
copy: N,
|
|
onClick: M,
|
|
size: B,
|
|
ariaLabel: F
|
|
}))
|
|
}
|
|
v.propTypes = {
|
|
allowTooltip: a().bool,
|
|
isFollowing: a().bool,
|
|
isHeaderButton: a().bool,
|
|
position: a().number,
|
|
store: a().shape({
|
|
storeId: a().string,
|
|
storeName: a().string
|
|
}),
|
|
storeSessionCount: a().number,
|
|
subSrc: a().string,
|
|
tooltipDirection: a().string,
|
|
user: a().object
|
|
}, v.defaultProps = {
|
|
allowTooltip: !1,
|
|
isFollowing: !1,
|
|
isHeaderButton: !1,
|
|
position: null,
|
|
store: {},
|
|
storeSessionCount: 0,
|
|
subSrc: "",
|
|
tooltipDirection: "top-right",
|
|
user: {}
|
|
};
|
|
const b = v
|
|
},
|
|
78860: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
A: () => S,
|
|
d: () => b
|
|
});
|
|
var r = n(9666),
|
|
o = n(86146),
|
|
i = n.n(o),
|
|
a = n(9098),
|
|
s = n(22662),
|
|
c = n(72097),
|
|
u = n(25094),
|
|
l = n(78111),
|
|
f = n(50618),
|
|
d = n(7837);
|
|
|
|
function p() {
|
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
var e, t, n = "function" == typeof Symbol ? Symbol : {},
|
|
r = n.iterator || "@@iterator",
|
|
o = n.toStringTag || "@@toStringTag";
|
|
|
|
function i(n, r, o, i) {
|
|
var c = r && r.prototype instanceof s ? r : s,
|
|
u = Object.create(c.prototype);
|
|
return h(u, "_invoke", function(n, r, o) {
|
|
var i, s, c, u = 0,
|
|
l = o || [],
|
|
f = !1,
|
|
d = {
|
|
p: 0,
|
|
n: 0,
|
|
v: e,
|
|
a: p,
|
|
f: p.bind(e, 4),
|
|
d: function(t, n) {
|
|
return i = t, s = 0, c = e, d.n = n, a
|
|
}
|
|
};
|
|
|
|
function p(n, r) {
|
|
for (s = n, c = r, t = 0; !f && u && !o && t < l.length; t++) {
|
|
var o, i = l[t],
|
|
p = d.p,
|
|
h = i[2];
|
|
n > 3 ? (o = h === r) && (c = i[(s = i[4]) ? 5 : (s = 3, 3)], i[4] = i[5] = e) : i[0] <= p && ((o = n < 2 && p < i[1]) ? (s = 0, d.v = r, d.n = i[1]) : p < h && (o = n < 3 || i[0] > r || r > h) && (i[4] = n, i[5] = r, d.n = h, s = 0))
|
|
}
|
|
if (o || n > 1) return a;
|
|
throw f = !0, r
|
|
}
|
|
return function(o, l, h) {
|
|
if (u > 1) throw TypeError("Generator is already running");
|
|
for (f && 1 === l && p(l, h), s = l, c = h;
|
|
(t = s < 2 ? e : c) || !f;) {
|
|
i || (s ? s < 3 ? (s > 1 && (d.n = -1), p(s, c)) : d.n = c : d.v = c);
|
|
try {
|
|
if (u = 2, i) {
|
|
if (s || (o = "next"), t = i[o]) {
|
|
if (!(t = t.call(i, c))) throw TypeError("iterator result is not an object");
|
|
if (!t.done) return t;
|
|
c = t.value, s < 2 && (s = 0)
|
|
} else 1 === s && (t = i.return) && t.call(i), s < 2 && (c = TypeError("The iterator does not provide a '" + o + "' method"), s = 1);
|
|
i = e
|
|
} else if ((t = (f = d.n < 0) ? c : n.call(r, d)) !== a) break
|
|
} catch (t) {
|
|
i = e, s = 1, c = t
|
|
} finally {
|
|
u = 1
|
|
}
|
|
}
|
|
return {
|
|
value: t,
|
|
done: f
|
|
}
|
|
}
|
|
}(n, o, i), !0), u
|
|
}
|
|
var a = {};
|
|
|
|
function s() {}
|
|
|
|
function c() {}
|
|
|
|
function u() {}
|
|
t = Object.getPrototypeOf;
|
|
var l = [][r] ? t(t([][r]())) : (h(t = {}, r, function() {
|
|
return this
|
|
}), t),
|
|
f = u.prototype = s.prototype = Object.create(l);
|
|
|
|
function d(e) {
|
|
return Object.setPrototypeOf ? Object.setPrototypeOf(e, u) : (e.__proto__ = u, h(e, o, "GeneratorFunction")), e.prototype = Object.create(f), e
|
|
}
|
|
return c.prototype = u, h(f, "constructor", u), h(u, "constructor", c), c.displayName = "GeneratorFunction", h(u, o, "GeneratorFunction"), h(f), h(f, o, "Generator"), h(f, r, function() {
|
|
return this
|
|
}), h(f, "toString", function() {
|
|
return "[object Generator]"
|
|
}), (p = function() {
|
|
return {
|
|
w: i,
|
|
m: d
|
|
}
|
|
})()
|
|
}
|
|
|
|
function h(e, t, n, r) {
|
|
var o = Object.defineProperty;
|
|
try {
|
|
o({}, "", {})
|
|
} catch (e) {
|
|
o = 0
|
|
}
|
|
h = function(e, t, n, r) {
|
|
function i(t, n) {
|
|
h(e, t, function(e) {
|
|
return this._invoke(t, n, e)
|
|
})
|
|
}
|
|
t ? o ? o(e, t, {
|
|
value: n,
|
|
enumerable: !r,
|
|
configurable: !r,
|
|
writable: !r
|
|
}) : e[t] = n : (i("next", 0), i("throw", 1), i("return", 2))
|
|
}, h(e, t, n, r)
|
|
}
|
|
|
|
function m(e, t, n, r, o, i, a) {
|
|
try {
|
|
var s = e[i](a),
|
|
c = s.value
|
|
} catch (e) {
|
|
return void n(e)
|
|
}
|
|
s.done ? t(c) : Promise.resolve(c).then(r, o)
|
|
}
|
|
|
|
function g(e, t) {
|
|
return function(e) {
|
|
if (Array.isArray(e)) return e
|
|
}(e) || function(e, t) {
|
|
var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
|
|
if (null != n) {
|
|
var r, o, i, a, s = [],
|
|
c = !0,
|
|
u = !1;
|
|
try {
|
|
if (i = (n = n.call(e)).next, 0 === t) {
|
|
if (Object(n) !== n) return;
|
|
c = !1
|
|
} else
|
|
for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0);
|
|
} catch (e) {
|
|
u = !0, o = e
|
|
} finally {
|
|
try {
|
|
if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return
|
|
} finally {
|
|
if (u) throw o
|
|
}
|
|
}
|
|
return s
|
|
}
|
|
}(e, t) || function(e, t) {
|
|
if (e) {
|
|
if ("string" == typeof e) return y(e, t);
|
|
var n = {}.toString.call(e).slice(8, -1);
|
|
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? y(e, t) : void 0
|
|
}
|
|
}(e, t) || function() {
|
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
|
|
}()
|
|
}
|
|
|
|
function y(e, t) {
|
|
(null == t || t > e.length) && (t = e.length);
|
|
for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n];
|
|
return r
|
|
}
|
|
var v = (0, s.createUseStyles)({
|
|
storeInfoContainer: {
|
|
display: "flex",
|
|
alignItems: "center",
|
|
backgroundColor: c.Colors.white,
|
|
height: "55px",
|
|
width: "100%",
|
|
borderBottom: "1px solid ".concat(c.Colors.grey300)
|
|
},
|
|
logo: {
|
|
margin: [11, 24]
|
|
},
|
|
storeInfo: {
|
|
display: "inline-block",
|
|
verticalAlign: "middle",
|
|
width: "160px"
|
|
},
|
|
storeName: {
|
|
fontSize: "14px",
|
|
fontWeight: "600",
|
|
color: c.Colors.grey900,
|
|
whiteSpace: "nowrap",
|
|
overflow: "hidden",
|
|
textOverflow: "ellipsis"
|
|
},
|
|
storeCount: {
|
|
fontSize: "11px",
|
|
fontWeight: "600",
|
|
color: c.Colors.grey700
|
|
},
|
|
storeFollow: {
|
|
display: "inline-block",
|
|
verticalAlign: "middle",
|
|
textAlign: "right",
|
|
width: function(e) {
|
|
return e.inPopover ? "87px" : "71px"
|
|
}
|
|
}
|
|
});
|
|
var b = function(e) {
|
|
var t, n = e.store,
|
|
o = e.storeFollowButton,
|
|
i = e.inPopover,
|
|
a = v({
|
|
inPopover: i
|
|
});
|
|
return r.createElement("div", {
|
|
className: a.storeInfoContainer
|
|
}, r.createElement(c.StoreLogo, {
|
|
className: a.logo,
|
|
size: 40,
|
|
storeId: n.id,
|
|
storeName: n.name
|
|
}), r.createElement("div", {
|
|
className: a.storeInfo
|
|
}, r.createElement("div", {
|
|
className: a.storeName
|
|
}, n.name), r.createElement("div", {
|
|
className: a.storeCount
|
|
}, d.A.getMessage("NUMSHOPPERS_shoppers").replace(/{NUMSHOPPERS}/g, (t = n.shoppers) > 999999 ? "".concat(Math.floor(t / 1e5) / 10, "M") : t > 999 ? "".concat(Math.floor(t / 100) / 10, "k") : t))), r.createElement("div", {
|
|
className: a.storeFollow
|
|
}, o))
|
|
};
|
|
b.propTypes = {
|
|
store: i().object,
|
|
storeFollowButton: i().node,
|
|
inPopover: i().bool
|
|
}, b.defaultProps = {
|
|
store: {},
|
|
storeFollowButton: void 0,
|
|
inPopover: i().false
|
|
};
|
|
var _ = function(e) {
|
|
var t = e.inPopover,
|
|
n = (0, a.d4)(function(e) {
|
|
return e.user.user
|
|
}),
|
|
o = n && n.id,
|
|
i = n && n.isLoggedIn,
|
|
s = (0, a.d4)(function(e) {
|
|
return e.stores
|
|
}),
|
|
c = s.stores[s.current],
|
|
d = (0, a.d4)(function(e) {
|
|
return e.user.follow
|
|
}),
|
|
h = g((0, r.useState)(!1), 2),
|
|
y = h[0],
|
|
v = h[1],
|
|
_ = (0, a.wA)();
|
|
(0, r.useEffect)(function() {
|
|
o && i && _(f.Xp.getUserFollow(o))
|
|
}, [_, o, i]), (0, r.useEffect)(function() {
|
|
d && v(!!d && d.includes(c.id))
|
|
}, [_, d, c]);
|
|
var S = function() {
|
|
var e, t = (e = p().m(function e() {
|
|
var t, r;
|
|
return p().w(function(e) {
|
|
for (;;) switch (e.n) {
|
|
case 0:
|
|
return n && n.isLoggedIn || u.A.openEmailAuth("login", "launchpad-ext", !0), t = y ? "UNFOLLOW" : "FOLLOW", e.n = 1, u.A.updateUserFollow(c.id, n.id, t);
|
|
case 1:
|
|
r = e.v, v(r.includes(c.id));
|
|
case 2:
|
|
return e.a(2)
|
|
}
|
|
}, e)
|
|
}), function() {
|
|
var t = this,
|
|
n = arguments;
|
|
return new Promise(function(r, o) {
|
|
var i = e.apply(t, n);
|
|
|
|
function a(e) {
|
|
m(i, r, o, a, s, "next", e)
|
|
}
|
|
|
|
function s(e) {
|
|
m(i, r, o, a, s, "throw", e)
|
|
}
|
|
a(void 0)
|
|
})
|
|
});
|
|
return function() {
|
|
return t.apply(this, arguments)
|
|
}
|
|
}();
|
|
return r.createElement(b, {
|
|
inPopover: t,
|
|
store: c,
|
|
storeFollowButton: r.createElement(l.A, {
|
|
isHeaderButton: !0,
|
|
subSrc: "launchpad",
|
|
allowTooltip: !1,
|
|
user: n,
|
|
store: {
|
|
storeId: c.id,
|
|
storeName: c.name
|
|
},
|
|
isFollowing: y,
|
|
updateUserFollow: S
|
|
})
|
|
})
|
|
};
|
|
_.propTypes = {
|
|
inPopover: i().bool
|
|
}, _.defaultProps = {
|
|
inPopover: !1
|
|
};
|
|
const S = _
|
|
},
|
|
79973: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
A0: () => l,
|
|
Ay: () => f,
|
|
v_: () => i.A
|
|
});
|
|
var r = n(73595),
|
|
o = n(35158),
|
|
i = n(99735);
|
|
|
|
function a(e) {
|
|
return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, a(e)
|
|
}
|
|
|
|
function s(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function c(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? s(Object(n), !0).forEach(function(t) {
|
|
u(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function u(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != a(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != a(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == a(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
var l = c(c({}, o.A), r.o1);
|
|
const f = r.Ff
|
|
},
|
|
83701: (e, t, n) => {
|
|
"use strict";
|
|
Object.defineProperty(t, "__esModule", {
|
|
value: !0
|
|
}), Object.defineProperty(t, "default", {
|
|
enumerable: !0,
|
|
get: function() {
|
|
return r.Typography
|
|
}
|
|
});
|
|
var r = n(96028)
|
|
},
|
|
84458: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
A: () => i
|
|
});
|
|
var r = n(9098),
|
|
o = n(36927);
|
|
const i = function() {
|
|
return !!((0, r.d4)(o.A) || {}).isAutopop
|
|
}
|
|
},
|
|
84993: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
Ay: () => u,
|
|
De: () => o.Ay,
|
|
an: () => c
|
|
});
|
|
var r = n(65775),
|
|
o = n(53123);
|
|
|
|
function i(e) {
|
|
return i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, i(e)
|
|
}
|
|
|
|
function a(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function s(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != i(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != i(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == i(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
var c = function(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? a(Object(n), !0).forEach(function(t) {
|
|
s(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : a(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}({}, r.o1);
|
|
const u = r.Ff
|
|
},
|
|
85831: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
Ay: () => f,
|
|
gE: () => i.A,
|
|
qg: () => l
|
|
});
|
|
var r = n(57369),
|
|
o = n(875),
|
|
i = n(93449);
|
|
|
|
function a(e) {
|
|
return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, a(e)
|
|
}
|
|
|
|
function s(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function c(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? s(Object(n), !0).forEach(function(t) {
|
|
u(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function u(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != a(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != a(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == a(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
var l = c(c({}, o.A), r.o1);
|
|
const f = r.Ff
|
|
},
|
|
87888: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
Ay: () => l,
|
|
j: () => u,
|
|
cA: () => i
|
|
});
|
|
var r = n(83392),
|
|
o = function(e) {
|
|
return function(t) {
|
|
return t.optimus.productsByPageId[e]
|
|
}
|
|
};
|
|
const i = {
|
|
selectProductByPageId: o,
|
|
selectProductByProductId: function(e) {
|
|
return function(t) {
|
|
var n = t.whereAmI.productsByPageId || {},
|
|
r = Object.keys(n).find(function(t) {
|
|
return n[t].productId === e
|
|
});
|
|
return o(r)(t)
|
|
}
|
|
}
|
|
};
|
|
|
|
function a(e) {
|
|
return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, a(e)
|
|
}
|
|
|
|
function s(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function c(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != a(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != a(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == a(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
var u = function(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? s(Object(n), !0).forEach(function(t) {
|
|
c(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}({}, r.o1);
|
|
const l = r.Ff
|
|
},
|
|
89773: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
Ay: () => f,
|
|
e5: () => l,
|
|
n2: () => i.A
|
|
});
|
|
var r = n(27635),
|
|
o = n(38846),
|
|
i = n(13263);
|
|
|
|
function a(e) {
|
|
return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, a(e)
|
|
}
|
|
|
|
function s(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function c(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? s(Object(n), !0).forEach(function(t) {
|
|
u(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function u(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != a(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != a(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == a(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
var l = c(c({}, o.A), r.o1);
|
|
const f = r.Ff
|
|
},
|
|
92685: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
Ay: () => p,
|
|
Qm: () => d,
|
|
XK: () => s
|
|
});
|
|
var r = n(18411),
|
|
o = n(17542),
|
|
i = n(35826),
|
|
a = function(e) {
|
|
return function(t) {
|
|
return t && t.productFetcher && t.productFetcher.products && t.productFetcher.products[e]
|
|
}
|
|
};
|
|
const s = {
|
|
selectProductByPageId: a,
|
|
selectCurrentPageProduct: function(e) {
|
|
var t = i.im.selectCurrentPageId()(e);
|
|
return a(t)(e)
|
|
},
|
|
selectProductByProductId: function(e) {
|
|
return function(t) {
|
|
var n = t.productFetcher.products || {};
|
|
return Object.values(n).find(function(t) {
|
|
return e === t.productId
|
|
})
|
|
}
|
|
}
|
|
};
|
|
|
|
function c(e) {
|
|
return c = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, c(e)
|
|
}
|
|
|
|
function u(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function l(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? u(Object(n), !0).forEach(function(t) {
|
|
f(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : u(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function f(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != c(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != c(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == c(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
var d = l(l({}, o.A), r.o1);
|
|
const p = r.Ff
|
|
},
|
|
94576: (e, t, n) => {
|
|
var r = n(61735),
|
|
o = n(24547);
|
|
e.exports = function(e, t, n) {
|
|
var i = !0,
|
|
a = !0;
|
|
if ("function" != typeof e) throw new TypeError("Expected a function");
|
|
return o(n) && (i = "leading" in n ? !!n.leading : i, a = "trailing" in n ? !!n.trailing : a), r(e, t, {
|
|
leading: i,
|
|
maxWait: t,
|
|
trailing: a
|
|
})
|
|
}
|
|
},
|
|
94861: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
t: () => s,
|
|
x: () => c
|
|
});
|
|
var r = n(2317),
|
|
o = n(13261),
|
|
i = n(8004),
|
|
a = n(64287),
|
|
s = (0, r.Mz)(i.nU.selectTopCouponForCurrentProduct, a.fN, function(e) {
|
|
return {
|
|
coupon: e,
|
|
product: arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}
|
|
}
|
|
}),
|
|
c = (0, r.Mz)(s, function(e) {
|
|
var t = e.coupon;
|
|
return t && (0, o.A)(t)
|
|
})
|
|
},
|
|
95872: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
Ay: () => f,
|
|
eu: () => i.A,
|
|
f1: () => l
|
|
});
|
|
var r = n(92802),
|
|
o = n(51515),
|
|
i = n(29822);
|
|
|
|
function a(e) {
|
|
return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, a(e)
|
|
}
|
|
|
|
function s(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function c(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? s(Object(n), !0).forEach(function(t) {
|
|
u(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function u(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != a(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != a(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == a(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
var l = c(c({}, o.A), r.o1);
|
|
const f = r.Ff
|
|
},
|
|
96161: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
A: () => u
|
|
});
|
|
var r = n(9666),
|
|
o = n(30205),
|
|
i = n(46946),
|
|
a = n(323);
|
|
|
|
function s(e, t) {
|
|
return function(e) {
|
|
if (Array.isArray(e)) return e
|
|
}(e) || function(e, t) {
|
|
var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
|
|
if (null != n) {
|
|
var r, o, i, a, s = [],
|
|
c = !0,
|
|
u = !1;
|
|
try {
|
|
if (i = (n = n.call(e)).next, 0 === t) {
|
|
if (Object(n) !== n) return;
|
|
c = !1
|
|
} else
|
|
for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0);
|
|
} catch (e) {
|
|
u = !0, o = e
|
|
} finally {
|
|
try {
|
|
if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return
|
|
} finally {
|
|
if (u) throw o
|
|
}
|
|
}
|
|
return s
|
|
}
|
|
}(e, t) || function(e, t) {
|
|
if (e) {
|
|
if ("string" == typeof e) return c(e, t);
|
|
var n = {}.toString.call(e).slice(8, -1);
|
|
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? c(e, t) : void 0
|
|
}
|
|
}(e, t) || function() {
|
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
|
|
}()
|
|
}
|
|
|
|
function c(e, t) {
|
|
(null == t || t > e.length) && (t = e.length);
|
|
for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n];
|
|
return r
|
|
}
|
|
const u = function(e) {
|
|
var t = s((0, r.useState)(!1), 2),
|
|
n = t[0],
|
|
c = t[1];
|
|
(0, r.useEffect)(function() {
|
|
a.A.getFeatureFlag("ext_competitor_move_logic").then(c)
|
|
}, []);
|
|
var u = (0, r.useRef)(!1),
|
|
l = (0, r.useMemo)(function() {
|
|
return (0, o.A)()
|
|
}, []),
|
|
f = s((0, r.useState)(l ? l.clientHeight + 16 : 16), 2),
|
|
d = f[0],
|
|
p = f[1],
|
|
h = s((0, r.useState)(l ? l.clientWidth + 16 : 16), 2),
|
|
m = h[0],
|
|
g = h[1];
|
|
return (0, r.useEffect)(function() {
|
|
if (l) {
|
|
var e = new MutationObserver(function(e) {
|
|
l && e.length > 0 && (p(l.clientHeight + 16), g(l.clientWidth + 16))
|
|
});
|
|
l && e.observe(l, {
|
|
attributes: !0,
|
|
subtree: !0,
|
|
childList: !0
|
|
})
|
|
}
|
|
}, [l]), !u.current && (d > 16 || m > 16) && (u.current = !0, i.A.sendEvent("ext000013", e)), (0, r.useMemo)(function() {
|
|
return n ? {
|
|
topMargin: d,
|
|
rightMargin: m
|
|
} : {
|
|
topMargin: void 0,
|
|
rightMargin: 16
|
|
}
|
|
}, [n, d, m])
|
|
}
|
|
},
|
|
96532: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
x: () => r
|
|
});
|
|
var r = 3e4
|
|
},
|
|
97555: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
Ay: () => f,
|
|
fL: () => i.A,
|
|
ox: () => l
|
|
});
|
|
var r = n(9757),
|
|
o = n(79888),
|
|
i = n(45877);
|
|
|
|
function a(e) {
|
|
return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
|
|
return typeof e
|
|
} : function(e) {
|
|
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
|
|
}, a(e)
|
|
}
|
|
|
|
function s(e, t) {
|
|
var n = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var r = Object.getOwnPropertySymbols(e);
|
|
t && (r = r.filter(function(t) {
|
|
return Object.getOwnPropertyDescriptor(e, t).enumerable
|
|
})), n.push.apply(n, r)
|
|
}
|
|
return n
|
|
}
|
|
|
|
function c(e) {
|
|
for (var t = 1; t < arguments.length; t++) {
|
|
var n = null != arguments[t] ? arguments[t] : {};
|
|
t % 2 ? s(Object(n), !0).forEach(function(t) {
|
|
u(e, t, n[t])
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : s(Object(n)).forEach(function(t) {
|
|
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
|
|
})
|
|
}
|
|
return e
|
|
}
|
|
|
|
function u(e, t, n) {
|
|
return (t = function(e) {
|
|
var t = function(e, t) {
|
|
if ("object" != a(e) || !e) return e;
|
|
var n = e[Symbol.toPrimitive];
|
|
if (void 0 !== n) {
|
|
var r = n.call(e, t || "default");
|
|
if ("object" != a(r)) return r;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.")
|
|
}
|
|
return ("string" === t ? String : Number)(e)
|
|
}(e, "string");
|
|
return "symbol" == a(t) ? t : t + ""
|
|
}(t)) in e ? Object.defineProperty(e, t, {
|
|
value: n,
|
|
enumerable: !0,
|
|
configurable: !0,
|
|
writable: !0
|
|
}) : e[t] = n, e
|
|
}
|
|
var l = c(c({}, o.A), r.o1);
|
|
const f = r.Ff
|
|
},
|
|
99459: (e, t, n) => {
|
|
"use strict";
|
|
! function e() {
|
|
if ("undefined" != typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" == typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE) try {
|
|
__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)
|
|
} catch (e) {
|
|
console.error(e)
|
|
}
|
|
}(), e.exports = n(58181)
|
|
},
|
|
99507: (e, t, n) => {
|
|
"use strict";
|
|
n.d(t, {
|
|
A: () => s
|
|
});
|
|
var r = n(2317),
|
|
o = n(5735);
|
|
|
|
function i(e, t) {
|
|
return function(e) {
|
|
if (Array.isArray(e)) return e
|
|
}(e) || function(e, t) {
|
|
var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
|
|
if (null != n) {
|
|
var r, o, i, a, s = [],
|
|
c = !0,
|
|
u = !1;
|
|
try {
|
|
if (i = (n = n.call(e)).next, 0 === t) {
|
|
if (Object(n) !== n) return;
|
|
c = !1
|
|
} else
|
|
for (; !(c = (r = i.call(n)).done) && (s.push(r.value), s.length !== t); c = !0);
|
|
} catch (e) {
|
|
u = !0, o = e
|
|
} finally {
|
|
try {
|
|
if (!c && null != n.return && (a = n.return(), Object(a) !== a)) return
|
|
} finally {
|
|
if (u) throw o
|
|
}
|
|
}
|
|
return s
|
|
}
|
|
}(e, t) || function(e, t) {
|
|
if (e) {
|
|
if ("string" == typeof e) return a(e, t);
|
|
var n = {}.toString.call(e).slice(8, -1);
|
|
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? a(e, t) : void 0
|
|
}
|
|
}(e, t) || function() {
|
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
|
|
}()
|
|
}
|
|
|
|
function a(e, t) {
|
|
(null == t || t > e.length) && (t = e.length);
|
|
for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n];
|
|
return r
|
|
}
|
|
const s = (0, r.Mz)(function(e) {
|
|
return (0, o.A)(e)
|
|
}, function(e, t) {
|
|
return t
|
|
}, function(e, t) {
|
|
return i((e || []).filter(function(e) {
|
|
var n = e.categoryId;
|
|
return !(t || []).includes(n)
|
|
}), 1)[0]
|
|
})
|
|
}
|
|
},
|
|
n = {};
|
|
|
|
function r(e) {
|
|
var o = n[e];
|
|
if (void 0 !== o) return o.exports;
|
|
var i = n[e] = {
|
|
id: e,
|
|
loaded: !1,
|
|
exports: {}
|
|
};
|
|
return t[e].call(i.exports, i, i.exports, r), i.loaded = !0, i.exports
|
|
}
|
|
r.m = t, e = [], r.O = (t, n, o, i) => {
|
|
if (!n) {
|
|
var a = 1 / 0;
|
|
for (l = 0; l < e.length; l++) {
|
|
for (var [n, o, i] = e[l], s = !0, c = 0; c < n.length; c++)(!1 & i || a >= i) && Object.keys(r.O).every(e => r.O[e](n[c])) ? n.splice(c--, 1) : (s = !1, i < a && (a = i));
|
|
if (s) {
|
|
e.splice(l--, 1);
|
|
var u = o();
|
|
void 0 !== u && (t = u)
|
|
}
|
|
}
|
|
return t
|
|
}
|
|
i = i || 0;
|
|
for (var l = e.length; l > 0 && e[l - 1][2] > i; l--) e[l] = e[l - 1];
|
|
e[l] = [n, o, i]
|
|
}, r.n = e => {
|
|
var t = e && e.__esModule ? () => e.default : () => e;
|
|
return r.d(t, {
|
|
a: t
|
|
}), t
|
|
}, r.d = (e, t) => {
|
|
for (var n in t) r.o(t, n) && !r.o(e, n) && Object.defineProperty(e, n, {
|
|
enumerable: !0,
|
|
get: t[n]
|
|
})
|
|
}, r.g = function() {
|
|
if ("object" == typeof globalThis) return globalThis;
|
|
try {
|
|
return this || new Function("return this")()
|
|
} catch (e) {
|
|
if ("object" == typeof window) return window
|
|
}
|
|
}(), r.hmd = e => ((e = Object.create(e)).children || (e.children = []), Object.defineProperty(e, "exports", {
|
|
enumerable: !0,
|
|
set: () => {
|
|
throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: " + e.id)
|
|
}
|
|
}), e), r.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t), r.r = e => {
|
|
"undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {
|
|
value: "Module"
|
|
}), Object.defineProperty(e, "__esModule", {
|
|
value: !0
|
|
})
|
|
}, r.nmd = e => (e.paths = [], e.children || (e.children = []), e), (() => {
|
|
var e = {
|
|
792: 0
|
|
};
|
|
r.O.j = t => 0 === e[t];
|
|
var t = (t, n) => {
|
|
var o, i, [a, s, c] = n,
|
|
u = 0;
|
|
if (a.some(t => 0 !== e[t])) {
|
|
for (o in s) r.o(s, o) && (r.m[o] = s[o]);
|
|
if (c) var l = c(r)
|
|
}
|
|
for (t && t(n); u < a.length; u++) i = a[u], r.o(e, i) && e[i] && e[i][0](), e[i] = 0;
|
|
return r.O(l)
|
|
},
|
|
n = self.webpackChunkhoney_extension = self.webpackChunkhoney_extension || [];
|
|
n.forEach(t.bind(null, 0)), n.push = t.bind(null, n.push.bind(n))
|
|
})();
|
|
var o = r.O(void 0, [644, 274], () => r(67107));
|
|
o = r.O(o)
|
|
})(); |