@almacareer/cookie-consent-manager
Version:
Cookie Consent Manager mainly for Alma Career products
1,202 lines • 123 kB
JavaScript
/*!
* CookieConsent 3.1.0
* https://github.com/orestbida/cookieconsent
* Author Orest Bida
* Released under the MIT License
*/
const Oa = "opt-in", Se = "opt-out", Qe = "show--consent", ea = "show--preferences", We = "disable--interaction", He = "data-category", P = "div", ae = "button", te = "aria-hidden", Be = "btn-group", K = "click", Ce = "data-role", aa = "consentModal", ta = "preferencesModal";
class _a {
constructor() {
this.t = { mode: Oa, revision: 0, autoShow: !0, lazyHtmlGeneration: !0, autoClearCookies: !0, manageScriptTags: !0, hideFromBots: !0, cookie: { name: "cc_cookie", expiresAfterDays: 182, domain: "", path: "/", secure: !0, sameSite: "Lax" } }, this.o = { i: {}, l: "", _: {}, u: {}, p: {}, m: [], v: !1, h: null, C: null, S: null, M: "", D: !0, T: !1, k: !1, A: !1, N: !1, H: [], V: !1, I: !0, L: [], j: !1, F: "", P: !1, O: [], R: [], B: [], $: [], G: !1, J: !1, U: !1, q: [], K: [], W: [], X: {}, Y: {}, Z: {}, ee: {}, te: {}, oe: [] }, this.ne = { ae: {}, se: {} }, this.ce = {}, this.re = { ie: "cc:onFirstConsent", le: "cc:onConsent", de: "cc:onChange", fe: "cc:onModalShow", _e: "cc:onModalHide", ue: "cc:onModalReady" };
}
}
const i = new _a(), La = (t, n) => t.indexOf(n), T = (t, n) => La(t, n) !== -1, Ne = (t) => Array.isArray(t), pe = (t) => typeof t == "string", Fe = (t) => !!t && typeof t == "object" && !Ne(t), ne = (t) => typeof t == "function", ie = (t) => Object.keys(t), na = (t) => Array.from(new Set(t)), qe = () => document.activeElement, we = (t) => t.preventDefault(), ia = (t, n) => t.querySelectorAll(n), De = (t) => t.dispatchEvent(new Event("change")), v = (t) => {
const n = document.createElement(t);
return t === ae && (n.type = t), n;
}, N = (t, n, e) => t.setAttribute(n, e), Re = (t, n, e) => {
t.removeAttribute(e ? "data-" + n : n);
}, Oe = (t, n, e) => t.getAttribute(e ? "data-" + n : n), h = (t, n) => t.appendChild(n), B = (t, n) => t.classList.add(n), V = (t, n) => B(t, "cm__" + n), M = (t, n) => B(t, "pm__" + n), fe = (t, n) => t.classList.remove(n), le = (t) => {
if (typeof t != "object") return t;
if (t instanceof Date) return new Date(t.getTime());
let n = Array.isArray(t) ? [] : {};
for (let e in t) {
let a = t[e];
n[e] = le(a);
}
return n;
}, ut = () => {
const t = {}, { O: n, X: e, Y: a } = i.o;
for (const r of n) t[r] = _e(a[r], ie(e[r]));
return t;
}, va = (t, n) => dispatchEvent(new CustomEvent(t, { detail: n })), x = (t, n, e, a) => {
t.addEventListener(n, e), a && i.o.m.push({ pe: t, ge: n, me: e });
}, ya = () => {
const t = i.t.cookie.expiresAfterDays;
return ne(t) ? t(i.o.F) : t;
}, _e = (t, n) => {
const e = t || [], a = n || [];
return e.filter((r) => !T(a, r)).concat(a.filter((r) => !T(e, r)));
}, Ea = (t) => {
i.o.R = na(t), i.o.F = (() => {
let n = "custom";
const { R: e, O: a, B: r } = i.o, s = e.length;
return s === a.length ? n = "all" : s === r.length && (n = "necessary"), n;
})();
}, Ha = (t, n, e, a) => {
const r = "accept-", { show: s, showPreferences: k, hide: o, hidePreferences: c, acceptCategory: d } = n, g = t || document, p = (f) => ia(g, `[data-cc="${f}"]`), m = (f, z) => {
we(f), d(z), c(), o();
}, j = p("show-preferencesModal"), l = p("show-consentModal"), u = p(r + "all"), b = p(r + "necessary"), w = p(r + "custom"), C = i.t.lazyHtmlGeneration;
for (const f of j) N(f, "aria-haspopup", "dialog"), x(f, K, (z) => {
we(z), k();
}), C && (x(f, "mouseenter", (z) => {
we(z), i.o.N || e(n, a);
}, !0), x(f, "focus", () => {
i.o.N || e(n, a);
}));
for (let f of l) N(f, "aria-haspopup", "dialog"), x(f, K, (z) => {
we(z), s(!0);
}, !0);
for (let f of u) x(f, K, (z) => {
m(z, "all");
}, !0);
for (let f of w) x(f, K, (z) => {
m(z);
}, !0);
for (let f of b) x(f, K, (z) => {
m(z, []);
}, !0);
}, oe = (t, n) => {
t && (n && (t.tabIndex = -1), t.focus(), n && t.removeAttribute("tabindex"));
}, Fa = (t, n) => {
const e = (a) => {
a.target.removeEventListener("transitionend", e), a.propertyName === "opacity" && getComputedStyle(t).opacity === "1" && oe(((r) => r === 1 ? i.ne.be : i.ne.ve)(n));
};
x(t, "transitionend", e);
};
let ja;
const qa = (t) => {
clearTimeout(ja), t ? B(i.ne.ye, We) : ja = setTimeout(() => {
fe(i.ne.ye, We);
}, 500);
}, dt = ["M 19.5 4.5 L 4.5 19.5 M 4.5 4.501 L 19.5 19.5", "M 3.572 13.406 L 8.281 18.115 L 20.428 5.885", "M 21.999 6.94 L 11.639 17.18 L 2.001 6.82 "], $e = (t = 0, n = 1.5) => `<svg viewBox="0 0 24 24" stroke-width="${n}"><path d="${dt[t]}"/></svg>`, Ka = (t) => {
const n = i.ne, e = i.o;
((a) => {
const r = a === n.he, s = e.i.disablePageInteraction ? n.ye : r ? n.Ce : n.ye;
x(s, "keydown", (k) => {
if (k.key !== "Tab" || !(r ? e.k && !e.A : e.A)) return;
const o = qe(), c = r ? e.q : e.K;
c.length !== 0 && (k.shiftKey ? o !== c[0] && a.contains(o) || (we(k), oe(c[1])) : o !== c[1] && a.contains(o) || (we(k), oe(c[0])));
}, !0);
})(t);
}, mt = ["[href]", ae, "input", "details", "[tabindex]"].map((t) => t + ':not([tabindex="-1"])').join(","), Ra = (t) => {
const { o: n, ne: e } = i, a = (r, s) => {
const k = ia(r, mt);
s[0] = k[0], s[1] = k[k.length - 1];
};
t === 1 && n.T && a(e.he, n.q), t === 2 && n.N && a(e.we, n.K);
}, se = (t, n, e) => {
const { de: a, le: r, ie: s, _e: k, ue: o, fe: c } = i.ce, d = i.re;
if (n) {
const p = { modalName: n };
return t === d.fe ? ne(c) && c(p) : t === d._e ? ne(k) && k(p) : (p.modal = e, ne(o) && o(p)), va(t, p);
}
const g = { cookie: i.o.p };
t === d.ie ? ne(s) && s(le(g)) : t === d.le ? ne(r) && r(le(g)) : (g.changedCategories = i.o.L, g.changedServices = i.o.ee, ne(a) && a(le(g))), va(t, le(g));
}, Ie = (t, n) => {
try {
return t();
} catch (e) {
return !n && console.warn("CookieConsent:", e), !1;
}
}, Ge = (t) => {
const { Y: n, ee: e, O: a, X: r, oe: s, p: k, L: o } = i.o;
for (const p of a) {
const m = e[p] || n[p] || [];
for (const j of m) {
const l = r[p][j];
if (!l) continue;
const { onAccept: u, onReject: b } = l;
!l.Se && T(n[p], j) ? (l.Se = !0, ne(u) && u()) : l.Se && !T(n[p], j) && (l.Se = !1, ne(b) && b());
}
}
if (!i.t.manageScriptTags) return;
const c = s, d = t || k.categories || [], g = (p, m) => {
if (m >= p.length) return;
const j = s[m];
if (j.xe) return g(p, m + 1);
const l = j.Me, u = j.De, b = j.Te, w = T(d, u), C = !!b && T(n[u], b);
if (!b && !j.ke && w || !b && j.ke && !w && T(o, u) || b && !j.ke && C || b && j.ke && !C && T(e[u] || [], b)) {
j.xe = !0;
const f = Oe(l, "type", !0);
Re(l, "type", !!f), Re(l, He);
let z = Oe(l, "src", !0);
z && Re(l, "src", !0);
const A = v("script");
A.textContent = l.innerHTML;
for (const { nodeName: y } of l.attributes) N(A, y, l[y] || Oe(l, y));
f && (A.type = f), z ? A.src = z : z = l.src;
const I = !!z && (!f || ["text/javascript", "module"].includes(f));
if (I && (A.onload = A.onerror = () => {
g(p, ++m);
}), l.replaceWith(A), I) return;
}
g(p, ++m);
};
g(c, 0);
}, Le = "bottom", Ze = "left", Va = "center", oa = "right", Ve = "inline", Ua = "wide", Ya = "pm--", Ue = ["middle", "top", Le], ba = [Ze, Va, oa], kt = { box: { Ee: [Ua, Ve], Ae: Ue, Ne: ba, He: Le, Ve: oa }, cloud: { Ee: [Ve], Ae: Ue, Ne: ba, He: Le, Ve: Va }, bar: { Ee: [Ve], Ae: Ue.slice(1), Ne: [], He: Le, Ve: "" } }, ft = { box: { Ee: [], Ae: [], Ne: [], He: "", Ve: "" }, bar: { Ee: [Ua], Ae: [], Ne: [Ze, oa], He: "", Ve: Ze } }, Wa = (t) => {
const n = i.o.i.guiOptions, e = n && n.consentModal, a = n && n.preferencesModal;
t === 0 && za(i.ne.he, kt, e, "cm--", "box", "cm"), t === 1 && za(i.ne.we, ft, a, Ya, "box", "pm");
}, za = (t, n, e, a, r, s) => {
t.className = s;
const k = e && e.layout, o = e && e.position, c = e && e.flipButtons, d = !e || e.equalWeightButtons !== !1, g = k && k.split(" ") || [], p = g[0], m = g[1], j = p in n ? p : r, l = n[j], u = T(l.Ee, m) && m, b = o && o.split(" ") || [], w = b[0], C = a === Ya ? b[0] : b[1], f = T(l.Ae, w) ? w : l.He, z = T(l.Ne, C) ? C : l.Ve, A = (y) => {
y && B(t, a + y);
};
A(j), A(u), A(f), A(z), c && A("flip");
const I = s + "__btn--secondary";
if (s === "cm") {
const { Ie: y, Le: $ } = i.ne;
y && (d ? fe(y, I) : B(y, I)), $ && (d ? fe($, I) : B($, I));
} else {
const { je: y } = i.ne;
y && (d ? fe(y, I) : B(y, I));
}
}, Ae = (t, n) => {
const e = i.o, a = i.ne, { hide: r, hidePreferences: s, acceptCategory: k } = t, o = (z) => {
k(z), s(), r();
}, c = e.u && e.u.preferencesModal;
if (!c) return;
const d = c.title, g = c.closeIconLabel, p = c.acceptAllBtn, m = c.acceptNecessaryBtn, j = c.savePreferencesBtn, l = c.sections || [], u = p || m || j;
if (a.Fe) a.Pe = v(P), M(a.Pe, "body");
else {
a.Fe = v(P), B(a.Fe, "pm-wrapper");
const z = v("div");
B(z, "pm-overlay"), h(a.Fe, z), x(z, K, s), a.we = v(P), B(a.we, "pm"), N(a.we, "role", "dialog"), N(a.we, te, !0), N(a.we, "aria-modal", !0), N(a.we, "aria-labelledby", "pm__title"), x(a.ye, "keydown", (A) => {
A.keyCode === 27 && s();
}, !0), a.Oe = v(P), M(a.Oe, "header"), a.Re = v("h2"), M(a.Re, "title"), a.Re.id = "pm__title", a.Be = v(ae), M(a.Be, "close-btn"), N(a.Be, "aria-label", c.closeIconLabel || ""), x(a.Be, K, s), a.$e = v("span"), a.$e.innerHTML = $e(), h(a.Be, a.$e), a.Ge = v(P), M(a.Ge, "body"), a.Je = v(P), M(a.Je, "footer");
var b = v(P);
B(b, "btns");
var w = v(P), C = v(P);
M(w, Be), M(C, Be), h(a.Je, w), h(a.Je, C), h(a.Oe, a.Re), h(a.Oe, a.Be), a.ve = v(P), N(a.ve, "tabIndex", -1), h(a.we, a.ve), h(a.we, a.Oe), h(a.we, a.Ge), u && h(a.we, a.Je), h(a.Fe, a.we);
}
let f;
d && (a.Re.innerHTML = d, g && N(a.Be, "aria-label", g)), l.forEach((z, A) => {
const I = z.title, y = z.description, $ = z.linkedCategory, ge = $ && e.P[$], S = z.cookieTable, Y = S && S.body, Q = S && S.caption, R = Y && Y.length > 0, H = !!ge, W = H && e.X[$], ue = Fe(W) && ie(W) || [], F = H && (!!y || !!R || ie(W).length > 0);
var ee = v(P);
if (M(ee, "section"), F || y) {
var X = v(P);
M(X, "section-desc-wrapper");
}
let de = ue.length;
if (F && de > 0) {
const q = v(P);
M(q, "section-services");
for (const J of ue) {
const D = W[J], G = D && D.label || J, he = v(P), ve = v(P), Me = v(P), je = v(P);
M(he, "service"), M(je, "service-title"), M(ve, "service-header"), M(Me, "service-icon");
const ce = wa(G, J, ge, !0, $);
je.innerHTML = G, h(ve, Me), h(ve, je), h(he, ve), h(he, ce), h(q, he);
}
h(X, q);
}
if (I) {
var me = v(P), Z = v(H ? ae : P);
if (M(me, "section-title-wrapper"), M(Z, "section-title"), Z.innerHTML = I, h(me, Z), H) {
const q = v("span");
q.innerHTML = $e(2, 3.5), M(q, "section-arrow"), h(me, q), ee.className += "--toggle";
const J = wa(I, $, ge);
let D = c.serviceCounterLabel;
if (de > 0 && pe(D)) {
let G = v("span");
M(G, "badge"), M(G, "service-counter"), N(G, te, !0), N(G, "data-servicecounter", de), D && (D = D.split("|"), D = D.length > 1 && de > 1 ? D[1] : D[0], N(G, "data-counterlabel", D)), G.innerHTML = de + (D ? " " + D : ""), h(Z, G);
}
if (F) {
M(ee, "section--expandable");
var fa = $ + "-desc";
N(Z, "aria-expanded", !1), N(Z, "aria-controls", fa);
}
h(me, J);
} else N(Z, "role", "heading"), N(Z, "aria-level", "3");
h(ee, me);
}
if (y) {
var Ke = v("p");
M(Ke, "section-desc"), Ke.innerHTML = y, h(X, Ke);
}
if (F && (N(X, te, "true"), X.id = fa, ((q, J, D) => {
x(Z, K, () => {
J.classList.contains("is-expanded") ? (fe(J, "is-expanded"), N(D, "aria-expanded", "false"), N(q, te, "true")) : (B(J, "is-expanded"), N(D, "aria-expanded", "true"), N(q, te, "false"));
});
})(X, ee, Z), R)) {
const q = v("table"), J = v("thead"), D = v("tbody");
if (Q) {
const ce = v("caption");
M(ce, "table-caption"), ce.innerHTML = Q, q.appendChild(ce);
}
M(q, "section-table"), M(J, "table-head"), M(D, "table-body");
const G = S.headers, he = ie(G), ve = a.Ue.createDocumentFragment(), Me = v("tr");
for (const ce of he) {
const be = G[ce], ke = v("th");
ke.id = "cc__row-" + be + A, N(ke, "scope", "col"), M(ke, "table-th"), ke.innerHTML = be, h(ve, ke);
}
h(Me, ve), h(J, Me);
const je = a.Ue.createDocumentFragment();
for (const ce of Y) {
const be = v("tr");
M(be, "table-tr");
for (const ke of he) {
const ga = G[ke], pt = ce[ke], Pe = v("td"), ha = v(P);
M(Pe, "table-td"), N(Pe, "data-column", ga), N(Pe, "headers", "cc__row-" + ga + A), ha.insertAdjacentHTML("beforeend", pt), h(Pe, ha), h(be, Pe);
}
h(je, be);
}
h(D, je), h(q, J), h(q, D), h(X, q);
}
(F || y) && h(ee, X);
const lt = a.Pe || a.Ge;
H ? (f || (f = v(P), M(f, "section-toggles")), f.appendChild(ee)) : f = null, h(lt, f || ee);
}), p && (a.ze || (a.ze = v(ae), M(a.ze, "btn"), N(a.ze, Ce, "all"), h(w, a.ze), x(a.ze, K, () => o("all"))), a.ze.innerHTML = p), m && (a.je || (a.je = v(ae), M(a.je, "btn"), N(a.je, Ce, "necessary"), h(w, a.je), x(a.je, K, () => o([]))), a.je.innerHTML = m), j && (a.qe || (a.qe = v(ae), M(a.qe, "btn"), M(a.qe, "btn--secondary"), N(a.qe, Ce, "save"), h(C, a.qe), x(a.qe, K, () => o())), a.qe.innerHTML = j), a.Pe && (a.we.replaceChild(a.Pe, a.Ge), a.Ge = a.Pe), Wa(1), e.N || (e.N = !0, se(i.re.ue, ta, a.we), n(t), h(a.Ce, a.Fe), Ka(a.we), setTimeout(() => B(a.Fe, "cc--anim"), 100)), Ra(2);
};
function wa(t, n, e, a, r) {
const s = i.o, k = i.ne, o = v("label"), c = v("input"), d = v("span"), g = v("span"), p = v("span"), m = v("span"), j = v("span");
if (m.innerHTML = $e(1, 3), j.innerHTML = $e(0, 3), c.type = "checkbox", B(o, "section__toggle-wrapper"), B(c, "section__toggle"), B(m, "toggle__icon-on"), B(j, "toggle__icon-off"), B(d, "toggle__icon"), B(g, "toggle__icon-circle"), B(p, "toggle__label"), N(d, te, "true"), a ? (B(o, "toggle-service"), N(c, He, r), k.se[r][n] = c) : k.ae[n] = c, a ? ((l) => {
x(c, "change", () => {
const u = k.se[l], b = k.ae[l];
s.Z[l] = [];
for (let w in u) {
const C = u[w];
C.checked && s.Z[l].push(C.value);
}
b.checked = s.Z[l].length > 0;
});
})(r) : ((l) => {
x(c, K, () => {
const u = k.se[l], b = c.checked;
s.Z[l] = [];
for (let w in u) u[w].checked = b, b && s.Z[l].push(w);
});
})(n), c.value = n, p.textContent = t.replace(/<.*>.*<\/.*>/gm, ""), h(g, j), h(g, m), h(d, g), s.D) (e.readOnly || e.enabled) && (c.checked = !0);
else if (a) {
const l = s.Y[r];
c.checked = e.readOnly || T(l, n);
} else T(s.R, n) && (c.checked = !0);
return e.readOnly && (c.disabled = !0), h(o, c), h(o, d), h(o, p), o;
}
const Ye = () => {
const t = v("span");
return i.ne.Ke || (i.ne.Ke = t), t;
}, sa = (t, n) => {
const e = i.o, a = i.ne, { hide: r, showPreferences: s, acceptCategory: k } = t, o = e.u && e.u.consentModal;
if (!o) return;
const c = o.acceptAllBtn, d = o.acceptNecessaryBtn, g = o.showPreferencesBtn, p = o.closeIconLabel, m = o.footer, j = o.label, l = o.title, u = (w) => {
r(), k(w);
};
if (!a.Qe) {
a.Qe = v(P), a.he = v(P), a.We = v(P), a.Xe = v(P), a.Ye = v(P), B(a.Qe, "cm-wrapper"), B(a.he, "cm"), V(a.We, "body"), V(a.Xe, "texts"), V(a.Ye, "btns"), N(a.he, "role", "dialog"), N(a.he, "aria-modal", "true"), N(a.he, te, "false"), N(a.he, "aria-describedby", "cm__desc"), j ? N(a.he, "aria-label", j) : l && N(a.he, "aria-labelledby", "cm__title");
const w = "box", C = e.i.guiOptions, f = C && C.consentModal, z = (f && f.layout || w).split(" ")[0] === w;
l && p && z && (a.Le || (a.Le = v(ae), a.Le.innerHTML = $e(), V(a.Le, "btn"), V(a.Le, "btn--close"), x(a.Le, K, () => {
u([]);
}), h(a.We, a.Le)), N(a.Le, "aria-label", p)), h(a.We, a.Xe), (c || d || g) && h(a.We, a.Ye), a.be = v(P), N(a.be, "tabIndex", -1), h(a.he, a.be), h(a.he, a.We), h(a.Qe, a.he);
}
l && (a.Ze || (a.Ze = v("h2"), a.Ze.className = a.Ze.id = "cm__title", h(a.Xe, a.Ze)), a.Ze.innerHTML = l);
let b = o.description;
if (b && (e.V && (b = b.replace("{{revisionMessage}}", e.I ? "" : o.revisionMessage || "")), a.et || (a.et = v("p"), a.et.className = a.et.id = "cm__desc", h(a.Xe, a.et)), a.et.innerHTML = b), c && (a.tt || (a.tt = v(ae), h(a.tt, Ye()), V(a.tt, "btn"), N(a.tt, Ce, "all"), x(a.tt, K, () => {
u("all");
})), a.tt.firstElementChild.innerHTML = c), d && (a.Ie || (a.Ie = v(ae), h(a.Ie, Ye()), V(a.Ie, "btn"), N(a.Ie, Ce, "necessary"), x(a.Ie, K, () => {
u([]);
})), a.Ie.firstElementChild.innerHTML = d), g && (a.ot || (a.ot = v(ae), h(a.ot, Ye()), V(a.ot, "btn"), V(a.ot, "btn--secondary"), N(a.ot, Ce, "show"), x(a.ot, "mouseenter", () => {
e.N || Ae(t, n);
}), x(a.ot, K, s)), a.ot.firstElementChild.innerHTML = g), a.nt || (a.nt = v(P), V(a.nt, Be), c && h(a.nt, a.tt), d && h(a.nt, a.Ie), (c || d) && h(a.We, a.nt), h(a.Ye, a.nt)), a.ot && !a.st && (a.st = v(P), a.Ie && a.tt ? (V(a.st, Be), h(a.st, a.ot), h(a.Ye, a.st)) : (h(a.nt, a.ot), V(a.nt, Be + "--uneven"))), m) {
if (!a.ct) {
let w = v(P), C = v(P);
a.ct = v(P), V(w, "footer"), V(C, "links"), V(a.ct, "link-group"), h(C, a.ct), h(w, C), h(a.he, w);
}
a.ct.innerHTML = m;
}
Wa(0), e.T || (e.T = !0, se(i.re.ue, aa, a.he), n(t), h(a.Ce, a.Qe), Ka(a.he), setTimeout(() => B(a.Qe, "cc--anim"), 100)), Ra(1), Ha(a.We, t, Ae, n);
}, ra = (t) => {
if (!pe(t)) return null;
if (t in i.o._) return t;
let n = t.slice(0, 2);
return n in i.o._ ? n : null;
}, ca = () => i.o.l || i.o.i.language.default, la = (t) => {
t && (i.o.l = t);
}, Ga = async (t) => {
const n = i.o;
let e = ra(t) ? t : ca(), a = n._[e];
if (pe(a) ? a = await (async (r) => {
try {
return await (await fetch(r)).json();
} catch (s) {
return console.error(s), !1;
}
})(a) : ne(a) && (a = await a()), !a) throw `Could not load translation for the '${e}' language`;
return n.u = a, la(e), !0;
}, Za = () => {
let t = i.o.i.language.rtl, n = i.ne.Ce;
t && n && (Ne(t) || (t = [t]), T(t, i.o.l) ? B(n, "cc--rtl") : fe(n, "cc--rtl"));
}, ye = () => {
const t = i.ne;
if (t.Ce) return;
t.Ce = v(P), t.Ce.id = "cc-main", t.Ce.setAttribute("data-nosnippet", ""), Za();
let n = i.o.i.root;
n && pe(n) && (n = document.querySelector(n)), (n || t.Ue.body).appendChild(t.Ce);
}, Ja = (t) => Ie(() => localStorage.removeItem(t)), Ca = (t, n) => {
if (n instanceof RegExp) return t.filter((e) => n.test(e));
{
const e = La(t, n);
return e > -1 ? [t[e]] : [];
}
}, Xa = (t) => {
const { hostname: n, protocol: e } = location, { name: a, path: r, domain: s, sameSite: k, useLocalStorage: o, secure: c } = i.t.cookie, d = t ? (() => {
const j = i.o.S, l = j ? /* @__PURE__ */ new Date() - j : 0;
return 864e5 * ya() - l;
})() : 864e5 * ya(), g = /* @__PURE__ */ new Date();
g.setTime(g.getTime() + d), i.o.p.expirationTime = g.getTime();
const p = JSON.stringify(i.o.p);
let m = a + "=" + encodeURIComponent(p) + (d !== 0 ? "; expires=" + g.toUTCString() : "") + "; Path=" + r + "; SameSite=" + k;
T(n, ".") && (m += "; Domain=" + s), c && e === "https:" && (m += "; Secure"), o ? ((j, l) => {
Ie(() => localStorage.setItem(j, l));
})(a, p) : document.cookie = m, i.o.p;
}, Je = (t, n, e) => {
if (t.length === 0) return;
const a = e || i.t.cookie.domain, r = n || i.t.cookie.path, s = a.slice(0, 4) === "www.", k = s && a.substring(4), o = (c, d) => {
d && d.slice(0, 1) !== "." && (d = "." + d), document.cookie = c + "=; path=" + r + (d ? "; domain=" + d : "") + "; expires=Thu, 01 Jan 1970 00:00:01 GMT;";
};
for (const c of t) o(c, e), e || o(c, a), s && o(c, k);
}, Qa = (t) => {
const n = t || i.t.cookie.name, e = i.t.cookie.useLocalStorage;
return ((r, s) => {
let k;
return k = Ie(() => JSON.parse(s ? r : decodeURIComponent(r)), !0) || {}, k;
})(e ? (a = n, Ie(() => localStorage.getItem(a)) || "") : pa(n, !0), e);
var a;
}, pa = (t, n) => {
const e = document.cookie.match("(^|;)\\s*" + t + "\\s*=\\s*([^;]+)");
return e ? n ? e.pop() : t : "";
}, et = (t) => {
const n = document.cookie.split(/;\s*/), e = [];
for (const a of n) {
let r = a.split("=")[0];
t ? Ie(() => {
t.test(r) && e.push(r);
}) : e.push(r);
}
return e;
}, ua = (t, n = []) => {
((e, a) => {
const { O: r, R: s, B: k, N: o, Z: c, $: d, X: g } = i.o;
let p = [];
if (e) {
Ne(e) ? p.push(...e) : pe(e) && (p = e === "all" ? r : [e]);
for (const m of r) c[m] = T(p, m) ? ie(g[m]) : [];
} else p = [...s, ...d], o && (p = (() => {
const m = i.ne.ae;
if (!m) return [];
let j = [];
for (let l in m) m[l].checked && j.push(l);
return j;
})());
p = p.filter((m) => !T(r, m) || !T(a, m)), p.push(...k), Ea(p);
})(t, n), (() => {
const e = i.o, { Z: a, B: r, Y: s, X: k, O: o } = e, c = o;
e.te = le(s);
for (const d of c) {
const g = k[d], p = ie(g), m = a[d] && a[d].length > 0, j = T(r, d);
if (p.length !== 0) {
if (s[d] = [], j) s[d].push(...p);
else if (m) {
const l = a[d];
s[d].push(...l);
} else s[d] = e.Z[d];
s[d] = na(s[d]);
}
}
})(), (() => {
const e = i.o;
e.L = i.t.mode === Se && e.D ? _e(e.$, e.R) : _e(e.R, e.p.categories);
let a = e.L.length > 0, r = !1;
for (const c of e.O) e.ee[c] = _e(e.Y[c], e.te[c]), e.ee[c].length > 0 && (r = !0);
const s = i.ne.ae;
for (const c in s) s[c].checked = T(e.R, c);
for (const c of e.O) {
const d = i.ne.se[c], g = e.Y[c];
for (const p in d) d[p].checked = T(g, p);
}
e.C || (e.C = /* @__PURE__ */ new Date()), e.M || (e.M = ("10000000-1000-4000-8000" + -1e11).replace(/[018]/g, (c) => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16))), e.p = { categories: le(e.R), revision: i.t.revision, data: e.h, consentTimestamp: e.C.toISOString(), consentId: e.M, services: le(e.Y), languageCode: i.o.l }, e.S && (e.p.lastConsentTimestamp = e.S.toISOString());
let k = !1;
const o = a || r;
(e.D || o) && (e.D && (e.D = !1, k = !0), e.S = e.S ? /* @__PURE__ */ new Date() : e.C, e.p.lastConsentTimestamp = e.S.toISOString(), Xa(), i.t.autoClearCookies && (k || o) && ((c) => {
const d = i.o, g = et(), p = ((m) => {
const j = i.o;
return (m ? j.O : j.L).filter((l) => {
const u = j.P[l];
return !!u && !u.readOnly && !!u.autoClear;
});
})(c);
for (const m in d.ee) for (const j of d.ee[m]) {
const l = d.X[m][j].cookies;
if (!T(d.Y[m], j) && l) for (const u of l) {
const b = Ca(g, u.name);
Je(b, u.path, u.domain);
}
}
for (const m of p) {
const j = d.P[m].autoClear, l = j && j.cookies || [], u = T(d.L, m), b = !T(d.R, m), w = u && b;
if (c ? b : w) {
j.reloadPage && w && (d.j = !0);
for (const C of l) {
const f = Ca(g, C.name);
Je(f, C.path, C.domain);
}
}
}
})(k), Ge()), k && (se(i.re.ie), se(i.re.le), i.t.mode === Oa) || (o && se(i.re.de), e.j && (e.j = !1, location.reload()));
})();
}, at = (t) => {
const n = i.o.D ? [] : i.o.R;
return T(n, t);
}, gt = (t, n) => {
const { O: e, X: a } = i.o;
if (!(t && n && pe(n) && T(e, n) && ie(a[n]).length !== 0)) return !1;
((r, s) => {
const k = i.o, { X: o, Z: c, N: d } = k, g = i.ne.se[s] || {}, p = i.ne.ae[s] || {}, m = ie(o[s]);
if (c[s] = [], pe(r)) {
if (r === "all") {
if (c[s].push(...m), d) for (let l in g) g[l].checked = !0, De(g[l]);
} else if (T(m, r) && c[s].push(r), d) for (let l in g) g[l].checked = r === l, De(g[l]);
} else if (Ne(r)) for (let l of m) {
const u = T(r, l);
u && c[s].push(l), d && (g[l].checked = u, De(g[l]));
}
const j = c[s].length === 0;
k.R = j ? k.R.filter((l) => l !== s) : na([...k.R, s]), d && (p.checked = !j, De(p));
})(t, n), ua();
}, tt = (t, n) => {
const e = i.o.D ? [] : i.o.Y[n] || [];
return T(e, t);
}, ht = (t) => pa(t, !0) !== "", nt = (t, n, e) => {
let a = [];
const r = (s) => {
if (pe(s)) {
let k = pa(s);
k !== "" && a.push(k);
} else a.push(...et(s));
};
if (Ne(t)) for (let s of t) r(s);
else r(t);
Je(a, n, e);
}, da = (t) => {
const { ne: n, o: e } = i;
if (!e.k) {
if (!e.T) {
if (!t) return;
sa(xe, ye);
}
e.k = !0, e.J = qe(), e.v && qa(!0), Fa(n.he, 1), B(n.ye, Qe), N(n.he, te, "false"), setTimeout(() => {
oe(i.ne.be);
}, 100), se(i.re.fe, aa);
}
}, it = () => {
const { ne: t, o: n, re: e } = i;
n.k && (n.k = !1, n.v && qa(), oe(t.Ke, !0), fe(t.ye, Qe), N(t.he, te, "true"), oe(n.J), n.J = null, se(e._e, aa));
}, ot = () => {
const t = i.o;
t.A || (t.N || Ae(xe, ye), t.A = !0, t.k ? t.U = qe() : t.J = qe(), Fa(i.ne.we, 2), B(i.ne.ye, ea), N(i.ne.we, te, "false"), setTimeout(() => {
oe(i.ne.ve);
}, 100), se(i.re.fe, ta));
}, st = () => {
const t = i.o;
t.A && (t.A = !1, (() => {
const n = ma(), e = i.o.P, a = i.ne.ae, r = i.ne.se, s = (k) => T(i.o.$, k);
for (const k in a) {
const o = !!e[k].readOnly;
a[k].checked = o || (n ? at(k) : s(k));
for (const c in r[k]) r[k][c].checked = o || (n ? tt(c, k) : s(k));
}
})(), oe(i.ne.$e, !0), fe(i.ne.ye, ea), N(i.ne.we, te, "true"), t.k ? (oe(t.U), t.U = null) : (oe(t.J), t.J = null), se(i.re._e, ta));
};
var xe = { show: da, hide: it, showPreferences: ot, hidePreferences: st, acceptCategory: ua };
const vt = async (t, n) => {
if (!ra(t)) return !1;
const e = i.o;
return !(t === ca() && n !== !0 || !await Ga(t) || (la(t), e.T && sa(xe, ye), e.N && Ae(xe, ye), Za(), 0));
}, yt = () => {
const { F: t, Y: n } = i.o, { accepted: e, rejected: a } = (() => {
const { D: r, R: s, O: k } = i.o;
return { accepted: s, rejected: r ? [] : k.filter((o) => !T(s, o)) };
})();
return le({ acceptType: t, acceptedCategories: e, rejectedCategories: a, acceptedServices: n, rejectedServices: ut() });
}, jt = (t, n) => {
let e = document.querySelector('script[src="' + t + '"]');
return new Promise((a) => {
if (e) return a(!0);
if (e = v("script"), Fe(n)) for (const r in n) N(e, r, n[r]);
e.onload = () => a(!0), e.onerror = () => {
e.remove(), a(!1);
}, e.src = t, h(document.head, e);
});
}, bt = (t) => {
let n, e = t.value, a = t.mode, r = !1;
const s = i.o;
if (a === "update") {
s.h = n = rt("data");
const k = typeof n == typeof e;
if (k && typeof n == "object") {
!n && (n = {});
for (let o in e) n[o] !== e[o] && (n[o] = e[o], r = !0);
} else !k && n || n === e || (n = e, r = !0);
} else n = e, r = !0;
return r && (s.h = n, s.p.data = n, Xa(!0)), r;
}, rt = (t, n) => {
const e = Qa(n);
return t ? e[t] : e;
}, zt = (t) => {
const n = i.t, e = i.o.i;
return t ? n[t] || e[t] : { ...n, ...e, cookie: { ...n.cookie } };
}, ma = () => !i.o.D, wt = async (t) => {
const { o: n, t: e, re: a } = i, r = window;
if (!r._ccRun) {
if (r._ccRun = !0, ((o) => {
const { ne: c, t: d, o: g } = i, p = d, m = g, { cookie: j } = p, l = i.ce, u = o.cookie, b = o.categories, w = ie(b) || [], C = navigator, f = document;
c.Ue = f, c.ye = f.documentElement, j.domain = location.hostname, m.i = o, m.P = b, m.O = w, m._ = o.language.translations, m.v = !!o.disablePageInteraction, l.ie = o.onFirstConsent, l.le = o.onConsent, l.de = o.onChange, l._e = o.onModalHide, l.fe = o.onModalShow, l.ue = o.onModalReady;
const { mode: z, autoShow: A, lazyHtmlGeneration: I, autoClearCookies: y, revision: $, manageScriptTags: ge, hideFromBots: S } = o;
z === Se && (p.mode = z), typeof y == "boolean" && (p.autoClearCookies = y), typeof ge == "boolean" && (p.manageScriptTags = ge), typeof $ == "number" && $ >= 0 && (p.revision = $, m.V = !0), typeof A == "boolean" && (p.autoShow = A), typeof I == "boolean" && (p.lazyHtmlGeneration = I), S === !1 && (p.hideFromBots = !1), p.hideFromBots === !0 && C && (m.G = C.userAgent && /bot|crawl|spider|slurp|teoma/i.test(C.userAgent) || C.webdriver), Fe(u) && (p.cookie = { ...j, ...u }), p.autoClearCookies, m.V, p.manageScriptTags, ((Y) => {
const { P: Q, X: R, Y: H, Z: W, B: ue } = i.o;
for (let F of Y) {
const ee = Q[F], X = ee.services || {}, de = Fe(X) && ie(X) || [];
R[F] = {}, H[F] = [], W[F] = [], ee.readOnly && (ue.push(F), H[F] = de), i.ne.se[F] = {};
for (let me of de) {
const Z = X[me];
Z.Se = !1, R[F][me] = Z;
}
}
})(w), (() => {
if (!i.t.manageScriptTags) return;
const Y = i.o, Q = ia(document, "script[" + He + "]");
for (const R of Q) {
let H = Oe(R, He), W = R.dataset.service || "", ue = !1;
if (H && H.charAt(0) === "!" && (H = H.slice(1), ue = !0), W.charAt(0) === "!" && (W = W.slice(1), ue = !0), T(Y.O, H) && (Y.oe.push({ Me: R, xe: !1, ke: ue, De: H, Te: W }), W)) {
const F = Y.X[H];
F[W] || (F[W] = { Se: !1 });
}
}
})(), la((() => {
const Y = i.o.i.language.autoDetect;
if (Y) {
const Q = { browser: navigator.language, document: document.documentElement.lang }, R = ra(Q[Y]);
if (R) return R;
}
return ca();
})());
})(t), n.G) return;
(() => {
const o = i.o, c = i.t, d = Qa(), { categories: g, services: p, consentId: m, consentTimestamp: j, lastConsentTimestamp: l, data: u, revision: b } = d, w = Ne(g);
o.p = d, o.M = m;
const C = !!m && pe(m);
o.C = j, o.C && (o.C = new Date(j)), o.S = l, o.S && (o.S = new Date(l)), o.h = u !== void 0 ? u : null, o.V && C && b !== c.revision && (o.I = !1), o.D = !(C && o.I && o.C && o.S && w), c.cookie.useLocalStorage && !o.D && (o.D = (/* @__PURE__ */ new Date()).getTime() > (d.expirationTime || 0), o.D && Ja(c.cookie.name)), o.D, (() => {
const f = i.o;
for (const z of f.O) {
const A = f.P[z];
if (A.readOnly || A.enabled) {
f.$.push(z);
const I = f.X[z] || {};
for (let y in I) f.Z[z].push(y), f.i.mode === Se && f.Y[z].push(y);
}
}
})(), o.D ? c.mode === Se && (o.R = [...o.$]) : (o.Y = { ...o.Y, ...p }, o.Z = { ...o.Y }, Ea([...o.B, ...g]));
})();
const k = ma();
if (!await Ga()) return !1;
if (Ha(null, s = xe, Ae, ye), i.o.D && sa(s, ye), i.t.lazyHtmlGeneration || Ae(s, ye), e.autoShow && !k && da(!0), k) return Ge(), se(a.le);
e.mode === Se && Ge(n.$);
}
var s;
}, Ct = (t) => {
const { Ce: n, ye: e } = i.ne, { name: a, path: r, domain: s, useLocalStorage: k } = i.t.cookie;
t && (k ? Ja(a) : nt(a, r, s));
for (const { pe: c, ge: d, me: g } of i.o.m) c.removeEventListener(d, g);
n && n.remove(), e && e.classList.remove(We, ea, Qe);
const o = new _a();
for (const c in i) i[c] = o[c];
window._ccRun = !1;
}, At = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
__proto__: null,
acceptCategory: ua,
acceptService: gt,
acceptedCategory: at,
acceptedService: tt,
eraseCookies: nt,
getConfig: zt,
getCookie: rt,
getUserPreferences: yt,
hide: it,
hidePreferences: st,
loadScript: jt,
reset: Ct,
run: wt,
setCookieData: bt,
setLanguage: vt,
show: da,
showPreferences: ot,
validConsent: ma,
validCookie: ht
}, Symbol.toStringTag, { value: "Module" })), Nt = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
let Mt = (t = 21) => {
let n = "", e = crypto.getRandomValues(new Uint8Array(t |= 0));
for (; t--; )
n += Nt[e[t] & 63];
return n;
};
/*!
* mergician
* v2.0.2
* https://jhildenbiddle.github.io/mergician/
* (c) 2022-2024 John Hildenbiddle
* MIT license
*/
function ka(...t) {
const n = {};
return t.forEach((e) => {
e.forEach((a) => {
n[a] = a in n ? ++n[a] : 1;
});
}), n;
}
function Pt(...t) {
return t.reduce(
(n, e) => n.filter(Set.prototype.has, new Set(e))
);
}
function Tt(...t) {
const n = ka(...t);
return Object.keys(n).filter((e) => n[e] > 1);
}
function St(...t) {
const n = ka(...t);
return Object.keys(n).filter((e) => n[e] < t.length);
}
function Bt(...t) {
const n = ka(...t);
return Object.keys(n).filter((e) => n[e] === 1);
}
function $t(t, n = !1) {
const e = Object.getOwnPropertyNames(t);
if (n)
for (const a in t)
!e.includes(a) && e.push(a);
return e;
}
function Xe(t) {
return typeof t == "object" && t !== null && !Array.isArray(t);
}
function Aa(t) {
if (!Xe(t))
return !1;
const n = ["writable", "enumerable", "configurable"].some(
(s) => s in t
), e = ["get", "set"].some((s) => typeof t[s] == "function"), a = ["get", "set"].every((s) => s in t);
let r = "value" in t && n || e && (a || n);
if (r) {
const s = [
"configurable",
"get",
"set",
"enumerable",
"value",
"writable"
];
r = Object.keys(t).some((k) => !(k in s));
}
return r;
}
/**
* @typedef {Object} MergicianOptions
* @property {string[]} [onlyKeys] - Exclusive array of keys to be merged
* (others are skipped)
* @property {string[]} [skipKeys] - Array of keys to skip (others are
* merged)
* @property {boolean} [onlyCommonKeys=false] - Merge only keys found
* in multiple objects (ignore single occurrence keys)
* @property {boolean} [onlyUniversalKeys=false] - Merge only keys
* found in all objects
* @property {boolean} [skipCommonKeys=false] - Skip keys found in
* multiple objects (merge only single occurrence keys)
* @property {boolean} [skipUniversalKeys=false] - Skip keys found in
* all objects (merge only common keys)
* @property {boolean} [invokeGetters=false] - Invoke "getter" methods
* and merge returned values
* @property {boolean} [skipSetters=false] - Skip "setter" methods
* during merge
* @property {boolean} [appendArrays=false] - Merge array values at
* the end of existing arrays
* @property {boolean} [prependArrays=false] - Merge array values at
* the beginning of existing arrays
* @property {boolean} [dedupArrays=false] - Remove duplicate array
* values in new merged object
* @property {boolean|function} [sortArrays=false] - Sort array values
* in new merged object
* @property {boolean} [hoistEnumerable=false] - Merge enumerable
* prototype properties as direct properties of merged object
* @property {boolean} [hoistProto=false] - Merge custom prototype
* properties as direct properties of merged object
* @property {boolean} [skipProto=false] - Skip merging of custom
* prototype properties
* @property {filterCallback} [filter] - Callback used to conditionally merge
* or skip a property. Return a "truthy" value to merge or a "falsy" value to
* skip. Return no value to proceed according to other option values.
* @property {beforeEachCallback} [beforeEach] - Callback used for
* inspecting/modifying properties before merge. Return value is used as value
* to merge.
* @property {afterEachCallback} [afterEach] - Callback used for
* inspecting/modifying properties after merge. Return value is used as merged
* value.
* @property {onCircularCallback} [onCircular] - Callback used for handling
* circular object references during merge
* @preserve
*/
/**
* @callback filterCallback
* @param {callbackData} callbackData
* @preserve
*/
/**
* @callback beforeEachCallback
* @param {callbackData} callbackData
* @preserve
*/
/**
* @callback afterEachCallback
* @param {afterEachCallbackData} callbackData
* @preserve
*/
/**
* @callback onCircularCallback
* @param {callbackData} callbackData
* @preserve
*/
/**
* @typedef {Object} callbackData
* @property {number} depth - Nesting level of the key being processed
* @property {string} key - Object key being processed
* @property {object} srcObj - Object containing the source value
* @property {any} srcVal - Source object’s property value
* @property {object} targetObj - New merged object
* @property {any} targetVal - New merged object’s current property value
* @preserve
*/
/**
* @typedef {Object} afterEachCallbackData
* @property {number} depth - Nesting level of the key being processed
* @property {string} key - Object key being processed
* @property {any} mergeVal - New merged value
* @property {object} srcObj - Object containing the source value
* @property {object} targetObj - New merged object
* @preserve
*/
var ze = {
// Keys
onlyKeys: [],
skipKeys: [],
onlyCommonKeys: !1,
onlyUniversalKeys: !1,
skipCommonKeys: !1,
skipUniversalKeys: !1,
// Values
invokeGetters: !1,
skipSetters: !1,
// Arrays
appendArrays: !1,
prependArrays: !1,
dedupArrays: !1,
sortArrays: !1,
// Prototype
hoistEnumerable: !1,
hoistProto: !1,
skipProto: !1,
// Callbacks
filter: Function.prototype,
beforeEach: Function.prototype,
afterEach: Function.prototype,
onCircular: Function.prototype
};
/**
* @description Deep (recursive) object merging with support for descriptor
* values, accessor functions, custom prototypes, and advanced options for
* customizing the merge process.
*
* @example
* // Custom merge options
* const mergedObj = mergician({
* // Options
* })(obj1, obj2, obj3);
*
* // Custom merge function
* const customMerge = mergician({
* // Options
* });
* const customMergeObj = customMerge(obj1, obj2, obj3);
*
* @overload
* @param {MergicianOptions} options
* @returns {function} New merge function with options set as defaults
* @preserve
*/
/**
* @description Deep (recursive) object merging with support for descriptor
* values, accessor functions, custom prototypes, and advanced options for
* customizing the merge process.
*
* @example
* // Clone with default options
* const clonedObj = mergician({}, obj1);
*
* // Merge with default options
* const mergedObj = mergician(obj1, obj2, obj3);
*
* @overload
* @param {...object} objects
* @returns {object} New merged object
* @preserve
*/
/**
* @description Deep (recursive) object merging with support for descriptor
* values, accessor functions, custom prototypes, and advanced options for
* customizing the merge process.
*
* @example
* // Clone with default options
* const clonedObj = mergician({}, obj1);
*
* // Merge with default options
* const mergedObj = mergician(obj1, obj2, obj3);
*
* @example
* // Custom merge options
* const mergedObj = mergician({
* // Options
* })(obj1, obj2, obj3);
*
* // Custom merge function
* const customMerge = mergician({
* // Options
* });
* const customMergeObj = customMerge(obj1, obj2, obj3);
*
* @param {MergicianOptions} optionsOrObject
* @param {...object} [objects]
* @returns {function|object} New merge function with options set as defaults
* (single argument) or new merged object (multiple arguments)
* @preserve
*/
function ct(t, ...n) {
const e = arguments.length === 1 ? arguments[0] : {}, a = { ...ze, ...e }, r = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map(), k = typeof a.sortArrays == "function" ? a.sortArrays : void 0, o = /* @__PURE__ */ new WeakMap();
let c = 0;
function d(p) {
return $t(p, a.hoistEnumerable);
}
function g(...p) {
let m;
p.length > 1 && (a.onlyCommonKeys ? m = Tt(
...p.map((u) => d(u))
) : a.onlyUniversalKeys ? m = Pt(...p.map((u) => d(u))) : a.skipCommonKeys ? m = Bt(
...p.map((u) => d(u))
) : a.skipUniversalKeys && (m = St(...p.map((u) => d(u))))), !m && a.onlyKeys.length && (m = a.onlyKeys), m && m !== a.onlyKeys && a.onlyKeys.length && (m = m.filter(
(u) => a.onlyKeys.includes(u)
));
const j = p.reduce((u, b) => {
o.set(b, u);
let w = m || d(b);
a.skipKeys.length && (w = w.filter((C) => a.skipKeys.indexOf(C) === -1));
for (let C = 0; C < w.length; C++) {
const f = w[C], z = u[f], A = {
configurable: !0,
enumerable: !0
};
if (!(f in b))
continue;
let I = !1, y = b[f];
const $ = Object.getOwnPropertyDescriptor(b, f);
if ($ && typeof $.set == "function" && typeof $.get != "function") {
a.skipSetters || Object.defineProperty(u, f, $);
continue;
}
if (a.filter !== ze.filter) {
const S = a.filter({
depth: c,
key: f,
srcObj: b,
srcVal: y,
targetObj: u,
targetVal: z
});
if (S !== void 0 && !S)
continue;
}
if (a.beforeEach !== ze.beforeEach) {
const S = a.beforeEach({
depth: c,
key: f,
srcObj: b,
srcVal: y,
targetObj: u,
targetVal: z
});
S !== void 0 && (I = !0, y = S);
}
if (typeof y == "object" && y !== null && o.has(b[f])) {
const S = a.onCircular({
depth: c,
key: f,
srcObj: b,
srcVal: b[f],
targetObj: u,
targetVal: z
});
if (S === void 0) {
y = o.get(b[f]), u[f] = y;
continue;
}
I = !0, y = S;
}
if (Array.isArray(y)) {
if (y = [...y], Array.isArray(z) && (a.appendArrays ? y = [...z, ...y] : a.prependArrays && (y = [...y, ...z])), a.dedupArrays)
if (a.afterEach !== ze.afterEach)
y = [...new Set(y)];
else {
const S = r.get(u);
S && !S.includes(f) ? S.push(f) : r.set(u, [f]);
}
if (a.sortArrays)
if (a.afterEach !== ze.afterEach)
y = y.sort(k);
else {
const S = s.get(u);
S && !S.includes(f) ? S.push(f) : s.set(u, [f]);
}
} else y instanceof Date ? y = new Date(y) : Xe(y) && (!I || !Aa(y)) && (c++, Xe(z) ? y = g(z, y) : y = g(y), c--);
if (a.afterEach !== ze.afterEach) {
const S = a.afterEach({
depth: c,
key: f,
mergeVal: y,
srcObj: b,
targetObj: u
});
S !== void 0 && (I = !0, y = S);
}
if (I) {
const S = Aa(y) ? y : {
configurable: !0,
enumerable: !0,
value: y,
writable: !0
};
Object.defineProperty(u, f, S);
continue;
}
if ($) {
const { configurable: S, enumerable: Y, get: Q, set: R, writable: H } = $;
Object.assign(A, {
configurable: S,
enumerable: Y
}), typeof Q == "function" && (a.invokeGetters ? A.value = y : A.get = Q), !a.skipSetters && typeof R == "function" && !Object.hasOwnProperty.call(A, "value") && (A.set = R), !A.get && !A.set && (A.writable = !!H);
}
!A.get && !A.set && !("value" in A) && (A.value = y, A.writable = $ && "writable" in $ ? $.writable : !0), Object.defineProperty(u, f, A);
}
return u;
}, {});
for (const [u, b] of r.entries())
for (const w of b) {
const C = Object.getOwnPropertyDescriptor(u, w), { configurable: f, enumerable: z, writable: A } = C;
Object.defineProperty(u, w, {
configurable: f,
enumerable: z,
value: [...new Set(u[w])],
writable: A !== void 0 ? A : !0
});
}
for (const [u, b] of s.entries())
for (const w of b)
u[w].sort(k);
let l = j;
if (!a.skipProto) {
const u = p.reduce((b, w) => {
const C = Object.getPrototypeOf(w);
return C && C !== Object.prototype && b.push(C), b;
}, []);
if (u.length) {
const b = g(...u);
a.hoistProto ? l = g(b, j) : l = Object.create(
b,
Object.getOwnPropertyDescriptors(j)
);
}
}
return l;
}
return arguments.length === 1 ? function(...p) {
return arguments.length === 1 ? ct({ ...a, ...p[0] }) : g(...p);
} : g(...arguments);
}
function Na(t, n, e) {
const a = It(e, n);
Dt(t, a);
}
function It(t, n) {
const e = n.data;
return {
data: {
type: "localDataAcceptationDataEntries",
attributes: {
acceptation_id: e.uid,
accept_type: `accept_${t.acceptType}`,
accepted_categories: t.acceptedCategories,
rejected_categories: t.rejectedCategories,
revision: n.revision,
source: e.serviceName,
language: n.languageCode,
days_of_acceptation: xt(n)
}
}
};
}
function xt(t) {
return Math.ceil((t.expirationTime - Date.now()) / 1e3 / 60 / 60 / 24);
}
async function Dt(t, n) {
return (await fetch(t, {
method: "POST",
headers: {
"Content-Type": "application/vnd.api+json",
Accept: "application/vnd.api+json"
},
body: JSON.stringify(n)
})).json();
}
const U = {
NECESSARY: "necessary",
AD: "ad",
ANALYTICS: "analytics",
FUNCTIONALITY: "functionality",
PERSONALIZATION: "personalization"
}, Ee = {
FORCE: "force",
SOFT: "soft"
}, O = (t, n = "") => t.reduce((e, a, r) => r === 0 ? `${e}${a}` : r === t.length - 1 ? `${e} ${n} ${a}` : `${e}, ${a}`), re = (t, n, e) => t === 1 ? n : e, _ = (t, n) => t.map((e) => e === "Alma Career" ? n : e), L = (t, n) => {
const e = n ?? t;
return e !== "" ? `<p>${e}</p>` : "";
}, E = (t, n, e) => [
Te(
t,
U.NECESSARY,
n.necessary.title,
n.necessary.description,
e[U.NECESSARY]
),
Te(
t,
U.AD,
n.ad.title,
n.ad.description,
e[U.AD]
),
Te(
t,
U.ANALYTICS,
n.analytics.title,
n.analytics.description,
e[U.ANALYTICS]
),
Te(
t,
U.FUNCTIONALITY,
n.functionality.title,
n.functionality.description,
e[U.FUNCTIONALITY]
),
Te(
t,
U.PERSONALIZATION,
n.personalization.title,
n.personalization.description,
e[U.PERSONALIZATION]
)
], Te = (t, n, e, a, r) => ({
title: e,
description: a,
linkedCategory: n,
...typeof r < "u" && {
cookieTable: {
headers: t,
body: r
}
}
}), Ot = {
and: "i",
company: "kompaniji",
companies: "kompanijama",
legalName: "Alma Career i drugim kompanijama iz njene poslovne grupe"
}, _t = (t, n) => {
const e = { ...Ot, ...t }, a = { name: "Naziv", description: "Opis", expiration: "Isticanje" };
return {
consentModal: {
title: e.consentTitle ?? "Kolačići čine našu stranicu još boljom",
description: `
${L(
"Bolje razumijevanje onoga što vas zanima, pokazat ćemo vam relevantniji sadržaj.",
e.descriptionIntro
)}
<p>
Klikom na dugme „Prihvati sve“, dajete
${re(e.companyNames.length, e.company, e.companies)}
${O(_(e.companyNames, e.legalName), e.and)}
svoju saglasnost za korištenje kolačića za personalizaciju, analitiku i ciljani marketing.
Možete prilagoditi upotrebu kolačića u svojim <strong><a href="" data-cc="show-preferencesModal">prilagođenim postavkama</a></strong>.
</p>`,
acceptAllBtn: "Prihvati sve",
acceptNecessaryBtn: "Prihvatiti neophodno"
},
preferencesModal: {
title: "Prilagođenim postavkama kolačića",
acceptAllBtn: "Prihvati sve",
acceptNecessaryBtn: "Prihvatiti neophodno",
savePreferencesBtn: "Sačuvaj postavke",
sections: [
{
description: `Ako želite da izvučete maksimum iz naše web stranice, najbolje je dozvoliti sve vrste kolačića.
${e.preferencesModalMoreInfo ?? 'Više informacija o tome šta su kolačići i kako radimo s njima možete pronaći na stranici <a href="https://www.almacareer.com/gdpr" target="_blank">Politika privatnosti</a>.'}`
},
...E(
a,
{
necessary: {
title: "Tehnički potrebni kolačići",
description: "Ovi kolačići su neophodni za pravilno funkcioniranje naše web stranice i stoga se ne mogu onemogućiti. Bez njih ne bi bilo moguće npr. za prikaz bilo kojeg sadržaja ili za prijavu na našu web stranicu."
},
analytics: {
title: "Analitički kolačići",
description: "To nam pomaže da pratimo koliko ljudi posjeti našu web stranicu i kako je koriste. Ove informacije nam zatim omogućavaju da kontinuirano poboljšavamo web stranicu i druge usluge."
},
functionality: {
title: "Funkcionalni kolačići",
description: "Naša web stranica je još efikasnija i radi bolje zahvaljujući ovim kolačićima. Na primjer, omogućavaju nam korištenje usluge chata i brzo i jednostavno odgovaranje na vaša pitanja."
},
ad: {
title: "Marketinški kolačići",
description: "Ovi kolačići nam pomažu da izmjerimo učinkovitost našeg oglašavanja i ciljanih ponuda usluga. Marketinški kolačići nam omogućavaju da vam donesemo vijesti koje bi vas mogle zanimati na Internetu."
},
personalization: {
title: "Kolačići za personalizaciju",
description: "Naše usluge bolje funkcioniraju ako ih možemo prilagoditi određenim korisnicima. Dopuštanjem kolačića za personalizaciju povećavate svoje šanse da pronađete sadržaj koji želite."
}
},
n
)
]
}
};
}, Lt = {
and: "a",
company: "společnosti",
companies: "společnostem",
legalName: "Alma Career a spole