UNPKG

@almacareer/cookie-consent-manager

Version:

Cookie Consent Manager mainly for Alma Career products

1,202 lines 123 kB
/*! * 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