@asicupv/paella-extra-plugins
Version:
Extra plugins for Paella Player.
645 lines (644 loc) • 31.9 kB
JavaScript
/*!
* CookieConsent 3.1.0
* https://github.com/orestbida/cookieconsent
* Author Orest Bida
* Released under the MIT License
*/
const dt = "opt-in", ke = "opt-out", Xe = "show--consent", qe = "show--preferences", Ee = "disable--interaction", Oe = "data-category", T = "div", U = "button", z = "aria-hidden", Se = "btn-group", N = "click", ye = "data-role", Ge = "consentModal", Je = "preferencesModal";
class ft {
constructor() {
this.t = { mode: dt, 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 r = new ft(), pt = (t, n) => t.indexOf(n), M = (t, n) => pt(t, n) !== -1, ve = (t) => Array.isArray(t), oe = (t) => typeof t == "string", Ie = (t) => !!t && typeof t == "object" && !ve(t), V = (t) => typeof t == "function", W = (t) => Object.keys(t), $e = (t) => Array.from(new Set(t)), Pe = () => document.activeElement, ge = (t) => t.preventDefault(), Ue = (t, n) => t.querySelectorAll(n), Me = (t) => t.dispatchEvent(new Event("change")), m = (t) => {
const n = document.createElement(t);
return t === U && (n.type = t), n;
}, v = (t, n, o) => t.setAttribute(n, o), Be = (t, n, o) => {
t.removeAttribute(o ? "data-" + n : n);
}, xe = (t, n, o) => t.getAttribute(o ? "data-" + n : n), h = (t, n) => t.appendChild(n), x = (t, n) => t.classList.add(n), A = (t, n) => x(t, "cm__" + n), L = (t, n) => x(t, "pm__" + n), ie = (t, n) => t.classList.remove(n), te = (t) => {
if (typeof t != "object") return t;
if (t instanceof Date) return new Date(t.getTime());
let n = Array.isArray(t) ? [] : {};
for (let o in t) {
let e = t[o];
n[o] = te(e);
}
return n;
}, Bt = () => {
const t = {}, { O: n, X: o, Y: e } = r.o;
for (const i of n) t[i] = De(e[i], W(o[i]));
return t;
}, rt = (t, n) => dispatchEvent(new CustomEvent(t, { detail: n })), O = (t, n, o, e) => {
t.addEventListener(n, o), e && r.o.m.push({ pe: t, ge: n, me: o });
}, st = () => {
const t = r.t.cookie.expiresAfterDays;
return V(t) ? t(r.o.F) : t;
}, De = (t, n) => {
const o = t || [], e = n || [];
return o.filter((i) => !M(e, i)).concat(e.filter((i) => !M(o, i)));
}, ht = (t) => {
r.o.R = $e(t), r.o.F = (() => {
let n = "custom";
const { R: o, O: e, B: i } = r.o, c = o.length;
return c === e.length ? n = "all" : c === i.length && (n = "necessary"), n;
})();
}, mt = (t, n, o, e) => {
const i = "accept-", { show: c, showPreferences: f, hide: s, hidePreferences: a, acceptCategory: u } = n, y = t || document, d = (b) => Ue(y, `[data-cc="${b}"]`), p = (b, w) => {
ge(b), u(w), a(), s();
}, g = d("show-preferencesModal"), l = d("show-consentModal"), C = d(i + "all"), k = d(i + "necessary"), S = d(i + "custom"), _ = r.t.lazyHtmlGeneration;
for (const b of g) v(b, "aria-haspopup", "dialog"), O(b, N, (w) => {
ge(w), f();
}), _ && (O(b, "mouseenter", (w) => {
ge(w), r.o.N || o(n, e);
}, !0), O(b, "focus", () => {
r.o.N || o(n, e);
}));
for (let b of l) v(b, "aria-haspopup", "dialog"), O(b, N, (w) => {
ge(w), c(!0);
}, !0);
for (let b of C) O(b, N, (w) => {
p(w, "all");
}, !0);
for (let b of S) O(b, N, (w) => {
p(w);
}, !0);
for (let b of k) O(b, N, (w) => {
p(w, []);
}, !0);
}, K = (t, n) => {
t && (n && (t.tabIndex = -1), t.focus(), n && t.removeAttribute("tabindex"));
}, gt = (t, n) => {
const o = (e) => {
e.target.removeEventListener("transitionend", o), e.propertyName === "opacity" && getComputedStyle(t).opacity === "1" && K(((i) => i === 1 ? r.ne.be : r.ne.ve)(n));
};
O(t, "transitionend", o);
};
let at;
const yt = (t) => {
clearTimeout(at), t ? x(r.ne.ye, Ee) : at = setTimeout(() => {
ie(r.ne.ye, Ee);
}, 500);
}, jt = ["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 "], Le = (t = 0, n = 1.5) => `<svg viewBox="0 0 24 24" stroke-width="${n}"><path d="${jt[t]}"/></svg>`, bt = (t) => {
const n = r.ne, o = r.o;
((e) => {
const i = e === n.he, c = o.i.disablePageInteraction ? n.ye : i ? n.Ce : n.ye;
O(c, "keydown", (f) => {
if (f.key !== "Tab" || !(i ? o.k && !o.A : o.A)) return;
const s = Pe(), a = i ? o.q : o.K;
a.length !== 0 && (f.shiftKey ? s !== a[0] && e.contains(s) || (ge(f), K(a[1])) : s !== a[1] && e.contains(s) || (ge(f), K(a[0])));
}, !0);
})(t);
}, Nt = ["[href]", U, "input", "details", "[tabindex]"].map((t) => t + ':not([tabindex="-1"])').join(","), vt = (t) => {
const { o: n, ne: o } = r, e = (i, c) => {
const f = Ue(i, Nt);
c[0] = f[0], c[1] = f[f.length - 1];
};
t === 1 && n.T && e(o.he, n.q), t === 2 && n.N && e(o.we, n.K);
}, Q = (t, n, o) => {
const { de: e, le: i, ie: c, _e: f, ue: s, fe: a } = r.ce, u = r.re;
if (n) {
const d = { modalName: n };
return t === u.fe ? V(a) && a(d) : t === u._e ? V(f) && f(d) : (d.modal = o, V(s) && s(d)), rt(t, d);
}
const y = { cookie: r.o.p };
t === u.ie ? V(c) && c(te(y)) : t === u.le ? V(i) && i(te(y)) : (y.changedCategories = r.o.L, y.changedServices = r.o.ee, V(e) && e(te(y))), rt(t, te(y));
}, _e = (t, n) => {
try {
return t();
} catch (o) {
return !n && console.warn("CookieConsent:", o), !1;
}
}, Ye = (t) => {
const { Y: n, ee: o, O: e, X: i, oe: c, p: f, L: s } = r.o;
for (const d of e) {
const p = o[d] || n[d] || [];
for (const g of p) {
const l = i[d][g];
if (!l) continue;
const { onAccept: C, onReject: k } = l;
!l.Se && M(n[d], g) ? (l.Se = !0, V(C) && C()) : l.Se && !M(n[d], g) && (l.Se = !1, V(k) && k());
}
}
if (!r.t.manageScriptTags) return;
const a = c, u = t || f.categories || [], y = (d, p) => {
if (p >= d.length) return;
const g = c[p];
if (g.xe) return y(d, p + 1);
const l = g.Me, C = g.De, k = g.Te, S = M(u, C), _ = !!k && M(n[C], k);
if (!k && !g.ke && S || !k && g.ke && !S && M(s, C) || k && !g.ke && _ || k && g.ke && !_ && M(o[C] || [], k)) {
g.xe = !0;
const b = xe(l, "type", !0);
Be(l, "type", !!b), Be(l, Oe);
let w = xe(l, "src", !0);
w && Be(l, "src", !0);
const H = m("script");
H.textContent = l.innerHTML;
for (const { nodeName: D } of l.attributes) v(H, D, l[D] || xe(l, D));
b && (H.type = b), w ? H.src = w : w = l.src;
const P = !!w && (!b || ["text/javascript", "module"].includes(b));
if (P && (H.onload = H.onerror = () => {
y(d, ++p);
}), l.replaceWith(H), P) return;
}
y(d, ++p);
};
y(a, 0);
}, He = "bottom", Ze = "left", wt = "center", ze = "right", je = "inline", Ct = "wide", kt = "pm--", Ne = ["middle", "top", He], ct = [Ze, wt, ze], At = { box: { Ee: [Ct, je], Ae: Ne, Ne: ct, He, Ve: ze }, cloud: { Ee: [je], Ae: Ne, Ne: ct, He, Ve: wt }, bar: { Ee: [je], Ae: Ne.slice(1), Ne: [], He, Ve: "" } }, Et = { box: { Ee: [], Ae: [], Ne: [], He: "", Ve: "" }, bar: { Ee: [Ct], Ae: [], Ne: [Ze, ze], He: "", Ve: Ze } }, St = (t) => {
const n = r.o.i.guiOptions, o = n && n.consentModal, e = n && n.preferencesModal;
t === 0 && it(r.ne.he, At, o, "cm--", "box", "cm"), t === 1 && it(r.ne.we, Et, e, kt, "box", "pm");
}, it = (t, n, o, e, i, c) => {
t.className = c;
const f = o && o.layout, s = o && o.position, a = o && o.flipButtons, u = !o || o.equalWeightButtons !== !1, y = f && f.split(" ") || [], d = y[0], p = y[1], g = d in n ? d : i, l = n[g], C = M(l.Ee, p) && p, k = s && s.split(" ") || [], S = k[0], _ = e === kt ? k[0] : k[1], b = M(l.Ae, S) ? S : l.He, w = M(l.Ne, _) ? _ : l.Ve, H = (D) => {
D && x(t, e + D);
};
H(g), H(C), H(b), H(w), a && H("flip");
const P = c + "__btn--secondary";
if (c === "cm") {
const { Ie: D, Le: E } = r.ne;
D && (u ? ie(D, P) : x(D, P)), E && (u ? ie(E, P) : x(E, P));
} else {
const { je: D } = r.ne;
D && (u ? ie(D, P) : x(D, P));
}
}, be = (t, n) => {
const o = r.o, e = r.ne, { hide: i, hidePreferences: c, acceptCategory: f } = t, s = (w) => {
f(w), c(), i();
}, a = o.u && o.u.preferencesModal;
if (!a) return;
const u = a.title, y = a.closeIconLabel, d = a.acceptAllBtn, p = a.acceptNecessaryBtn, g = a.savePreferencesBtn, l = a.sections || [], C = d || p || g;
if (e.Fe) e.Pe = m(T), L(e.Pe, "body");
else {
e.Fe = m(T), x(e.Fe, "pm-wrapper");
const w = m("div");
x(w, "pm-overlay"), h(e.Fe, w), O(w, N, c), e.we = m(T), x(e.we, "pm"), v(e.we, "role", "dialog"), v(e.we, z, !0), v(e.we, "aria-modal", !0), v(e.we, "aria-labelledby", "pm__title"), O(e.ye, "keydown", (H) => {
H.keyCode === 27 && c();
}, !0), e.Oe = m(T), L(e.Oe, "header"), e.Re = m("h2"), L(e.Re, "title"), e.Re.id = "pm__title", e.Be = m(U), L(e.Be, "close-btn"), v(e.Be, "aria-label", a.closeIconLabel || ""), O(e.Be, N, c), e.$e = m("span"), e.$e.innerHTML = Le(), h(e.Be, e.$e), e.Ge = m(T), L(e.Ge, "body"), e.Je = m(T), L(e.Je, "footer");
var k = m(T);
x(k, "btns");
var S = m(T), _ = m(T);
L(S, Se), L(_, Se), h(e.Je, S), h(e.Je, _), h(e.Oe, e.Re), h(e.Oe, e.Be), e.ve = m(T), v(e.ve, "tabIndex", -1), h(e.we, e.ve), h(e.we, e.Oe), h(e.we, e.Ge), C && h(e.we, e.Je), h(e.Fe, e.we);
}
let b;
u && (e.Re.innerHTML = u, y && v(e.Be, "aria-label", y)), l.forEach((w, H) => {
const P = w.title, D = w.description, E = w.linkedCategory, pe = E && o.P[E], le = w.cookieTable, q = le && le.body, ne = le && le.caption, G = q && q.length > 0, B = !!pe, Y = B && o.X[E], re = Ie(Y) && W(Y) || [], R = B && (!!D || !!G || W(Y).length > 0);
var $ = m(T);
if (L($, "section"), R || D) {
var J = m(T);
L(J, "section-desc-wrapper");
}
let se = re.length;
if (R && se > 0) {
const j = m(T);
L(j, "section-services");
for (const X of re) {
const I = Y[X], Z = I && I.label || X, ue = m(T), de = m(T), we = m(T), he = m(T);
L(ue, "service"), L(he, "service-title"), L(de, "service-header"), L(we, "service-icon");
const ee = lt(Z, X, pe, !0, E);
he.innerHTML = Z, h(de, we), h(de, he), h(ue, de), h(ue, ee), h(j, ue);
}
h(J, j);
}
if (P) {
var ae = m(T), F = m(B ? U : T);
if (L(ae, "section-title-wrapper"), L(F, "section-title"), F.innerHTML = P, h(ae, F), B) {
const j = m("span");
j.innerHTML = Le(2, 3.5), L(j, "section-arrow"), h(ae, j), $.className += "--toggle";
const X = lt(P, E, pe);
let I = a.serviceCounterLabel;
if (se > 0 && oe(I)) {
let Z = m("span");
L(Z, "badge"), L(Z, "service-counter"), v(Z, z, !0), v(Z, "data-servicecounter", se), I && (I = I.split("|"), I = I.length > 1 && se > 1 ? I[1] : I[0], v(Z, "data-counterlabel", I)), Z.innerHTML = se + (I ? " " + I : ""), h(F, Z);
}
if (R) {
L($, "section--expandable");
var tt = E + "-desc";
v(F, "aria-expanded", !1), v(F, "aria-controls", tt);
}
h(ae, X);
} else v(F, "role", "heading"), v(F, "aria-level", "3");
h($, ae);
}
if (D) {
var Re = m("p");
L(Re, "section-desc"), Re.innerHTML = D, h(J, Re);
}
if (R && (v(J, z, "true"), J.id = tt, ((j, X, I) => {
O(F, N, () => {
X.classList.contains("is-expanded") ? (ie(X, "is-expanded"), v(I, "aria-expanded", "false"), v(j, z, "true")) : (x(X, "is-expanded"), v(I, "aria-expanded", "true"), v(j, z, "false"));
});
})(J, $, F), G)) {
const j = m("table"), X = m("thead"), I = m("tbody");
if (ne) {
const ee = m("caption");
L(ee, "table-caption"), ee.innerHTML = ne, j.appendChild(ee);
}
L(j, "section-table"), L(X, "table-head"), L(I, "table-body");
const Z = le.headers, ue = W(Z), de = e.Ue.createDocumentFragment(), we = m("tr");
for (const ee of ue) {
const me = Z[ee], ce = m("th");
ce.id = "cc__row-" + me + H, v(ce, "scope", "col"), L(ce, "table-th"), ce.innerHTML = me, h(de, ce);
}
h(we, de), h(X, we);
const he = e.Ue.createDocumentFragment();
for (const ee of q) {
const me = m("tr");
L(me, "table-tr");
for (const ce of ue) {
const ot = Z[ce], Rt = ee[ce], Ce = m("td"), nt = m(T);
L(Ce, "table-td"), v(Ce, "data-column", ot), v(Ce, "headers", "cc__row-" + ot + H), nt.insertAdjacentHTML("beforeend", Rt), h(Ce, nt), h(me, Ce);
}
h(he, me);
}
h(I, he), h(j, X), h(j, I), h(J, j);
}
(R || D) && h($, J);
const Pt = e.Pe || e.Ge;
B ? (b || (b = m(T), L(b, "section-toggles")), b.appendChild($)) : b = null, h(Pt, b || $);
}), d && (e.ze || (e.ze = m(U), L(e.ze, "btn"), v(e.ze, ye, "all"), h(S, e.ze), O(e.ze, N, () => s("all"))), e.ze.innerHTML = d), p && (e.je || (e.je = m(U), L(e.je, "btn"), v(e.je, ye, "necessary"), h(S, e.je), O(e.je, N, () => s([]))), e.je.innerHTML = p), g && (e.qe || (e.qe = m(U), L(e.qe, "btn"), L(e.qe, "btn--secondary"), v(e.qe, ye, "save"), h(_, e.qe), O(e.qe, N, () => s())), e.qe.innerHTML = g), e.Pe && (e.we.replaceChild(e.Pe, e.Ge), e.Ge = e.Pe), St(1), o.N || (o.N = !0, Q(r.re.ue, Je, e.we), n(t), h(e.Ce, e.Fe), bt(e.we), setTimeout(() => x(e.Fe, "cc--anim"), 100)), vt(2);
};
function lt(t, n, o, e, i) {
const c = r.o, f = r.ne, s = m("label"), a = m("input"), u = m("span"), y = m("span"), d = m("span"), p = m("span"), g = m("span");
if (p.innerHTML = Le(1, 3), g.innerHTML = Le(0, 3), a.type = "checkbox", x(s, "section__toggle-wrapper"), x(a, "section__toggle"), x(p, "toggle__icon-on"), x(g, "toggle__icon-off"), x(u, "toggle__icon"), x(y, "toggle__icon-circle"), x(d, "toggle__label"), v(u, z, "true"), e ? (x(s, "toggle-service"), v(a, Oe, i), f.se[i][n] = a) : f.ae[n] = a, e ? ((l) => {
O(a, "change", () => {
const C = f.se[l], k = f.ae[l];
c.Z[l] = [];
for (let S in C) {
const _ = C[S];
_.checked && c.Z[l].push(_.value);
}
k.checked = c.Z[l].length > 0;
});
})(i) : ((l) => {
O(a, N, () => {
const C = f.se[l], k = a.checked;
c.Z[l] = [];
for (let S in C) C[S].checked = k, k && c.Z[l].push(S);
});
})(n), a.value = n, d.textContent = t.replace(/<.*>.*<\/.*>/gm, ""), h(y, g), h(y, p), h(u, y), c.D) (o.readOnly || o.enabled) && (a.checked = !0);
else if (e) {
const l = c.Y[i];
a.checked = o.readOnly || M(l, n);
} else M(c.R, n) && (a.checked = !0);
return o.readOnly && (a.disabled = !0), h(s, a), h(s, u), h(s, d), s;
}
const Ae = () => {
const t = m("span");
return r.ne.Ke || (r.ne.Ke = t), t;
}, Ve = (t, n) => {
const o = r.o, e = r.ne, { hide: i, showPreferences: c, acceptCategory: f } = t, s = o.u && o.u.consentModal;
if (!s) return;
const a = s.acceptAllBtn, u = s.acceptNecessaryBtn, y = s.showPreferencesBtn, d = s.closeIconLabel, p = s.footer, g = s.label, l = s.title, C = (S) => {
i(), f(S);
};
if (!e.Qe) {
e.Qe = m(T), e.he = m(T), e.We = m(T), e.Xe = m(T), e.Ye = m(T), x(e.Qe, "cm-wrapper"), x(e.he, "cm"), A(e.We, "body"), A(e.Xe, "texts"), A(e.Ye, "btns"), v(e.he, "role", "dialog"), v(e.he, "aria-modal", "true"), v(e.he, z, "false"), v(e.he, "aria-describedby", "cm__desc"), g ? v(e.he, "aria-label", g) : l && v(e.he, "aria-labelledby", "cm__title");
const S = "box", _ = o.i.guiOptions, b = _ && _.consentModal, w = (b && b.layout || S).split(" ")[0] === S;
l && d && w && (e.Le || (e.Le = m(U), e.Le.innerHTML = Le(), A(e.Le, "btn"), A(e.Le, "btn--close"), O(e.Le, N, () => {
C([]);
}), h(e.We, e.Le)), v(e.Le, "aria-label", d)), h(e.We, e.Xe), (a || u || y) && h(e.We, e.Ye), e.be = m(T), v(e.be, "tabIndex", -1), h(e.he, e.be), h(e.he, e.We), h(e.Qe, e.he);
}
l && (e.Ze || (e.Ze = m("h2"), e.Ze.className = e.Ze.id = "cm__title", h(e.Xe, e.Ze)), e.Ze.innerHTML = l);
let k = s.description;
if (k && (o.V && (k = k.replace("{{revisionMessage}}", o.I ? "" : s.revisionMessage || "")), e.et || (e.et = m("p"), e.et.className = e.et.id = "cm__desc", h(e.Xe, e.et)), e.et.innerHTML = k), a && (e.tt || (e.tt = m(U), h(e.tt, Ae()), A(e.tt, "btn"), v(e.tt, ye, "all"), O(e.tt, N, () => {
C("all");
})), e.tt.firstElementChild.innerHTML = a), u && (e.Ie || (e.Ie = m(U), h(e.Ie, Ae()), A(e.Ie, "btn"), v(e.Ie, ye, "necessary"), O(e.Ie, N, () => {
C([]);
})), e.Ie.firstElementChild.innerHTML = u), y && (e.ot || (e.ot = m(U), h(e.ot, Ae()), A(e.ot, "btn"), A(e.ot, "btn--secondary"), v(e.ot, ye, "show"), O(e.ot, "mouseenter", () => {
o.N || be(t, n);
}), O(e.ot, N, c)), e.ot.firstElementChild.innerHTML = y), e.nt || (e.nt = m(T), A(e.nt, Se), a && h(e.nt, e.tt), u && h(e.nt, e.Ie), (a || u) && h(e.We, e.nt), h(e.Ye, e.nt)), e.ot && !e.st && (e.st = m(T), e.Ie && e.tt ? (A(e.st, Se), h(e.st, e.ot), h(e.Ye, e.st)) : (h(e.nt, e.ot), A(e.nt, Se + "--uneven"))), p) {
if (!e.ct) {
let S = m(T), _ = m(T);
e.ct = m(T), A(S, "footer"), A(_, "links"), A(e.ct, "link-group"), h(_, e.ct), h(S, _), h(e.he, S);
}
e.ct.innerHTML = p;
}
St(0), o.T || (o.T = !0, Q(r.re.ue, Ge, e.he), n(t), h(e.Ce, e.Qe), bt(e.he), setTimeout(() => x(e.Qe, "cc--anim"), 100)), vt(1), mt(e.We, t, be, n);
}, We = (t) => {
if (!oe(t)) return null;
if (t in r.o._) return t;
let n = t.slice(0, 2);
return n in r.o._ ? n : null;
}, Ke = () => r.o.l || r.o.i.language.default, Qe = (t) => {
t && (r.o.l = t);
}, Lt = async (t) => {
const n = r.o;
let o = We(t) ? t : Ke(), e = n._[o];
if (oe(e) ? e = await (async (i) => {
try {
return await (await fetch(i)).json();
} catch (c) {
return console.error(c), !1;
}
})(e) : V(e) && (e = await e()), !e) throw `Could not load translation for the '${o}' language`;
return n.u = e, Qe(o), !0;
}, _t = () => {
let t = r.o.i.language.rtl, n = r.ne.Ce;
t && n && (ve(t) || (t = [t]), M(t, r.o.l) ? x(n, "cc--rtl") : ie(n, "cc--rtl"));
}, fe = () => {
const t = r.ne;
if (t.Ce) return;
t.Ce = m(T), t.Ce.id = "cc-main", t.Ce.setAttribute("data-nosnippet", ""), _t();
let n = r.o.i.root;
n && oe(n) && (n = document.querySelector(n)), (n || t.Ue.body).appendChild(t.Ce);
}, Tt = (t) => _e(() => localStorage.removeItem(t)), ut = (t, n) => {
if (n instanceof RegExp) return t.filter((o) => n.test(o));
{
const o = pt(t, n);
return o > -1 ? [t[o]] : [];
}
}, Mt = (t) => {
const { hostname: n, protocol: o } = location, { name: e, path: i, domain: c, sameSite: f, useLocalStorage: s, secure: a } = r.t.cookie, u = t ? (() => {
const g = r.o.S, l = g ? /* @__PURE__ */ new Date() - g : 0;
return 864e5 * st() - l;
})() : 864e5 * st(), y = /* @__PURE__ */ new Date();
y.setTime(y.getTime() + u), r.o.p.expirationTime = y.getTime();
const d = JSON.stringify(r.o.p);
let p = e + "=" + encodeURIComponent(d) + (u !== 0 ? "; expires=" + y.toUTCString() : "") + "; Path=" + i + "; SameSite=" + f;
M(n, ".") && (p += "; Domain=" + c), a && o === "https:" && (p += "; Secure"), s ? ((g, l) => {
_e(() => localStorage.setItem(g, l));
})(e, d) : document.cookie = p, r.o.p;
}, Fe = (t, n, o) => {
if (t.length === 0) return;
const e = o || r.t.cookie.domain, i = n || r.t.cookie.path, c = e.slice(0, 4) === "www.", f = c && e.substring(4), s = (a, u) => {
u && u.slice(0, 1) !== "." && (u = "." + u), document.cookie = a + "=; path=" + i + (u ? "; domain=" + u : "") + "; expires=Thu, 01 Jan 1970 00:00:01 GMT;";
};
for (const a of t) s(a, o), o || s(a, e), c && s(a, f);
}, xt = (t) => {
const n = t || r.t.cookie.name, o = r.t.cookie.useLocalStorage;
return ((i, c) => {
let f;
return f = _e(() => JSON.parse(c ? i : decodeURIComponent(i)), !0) || {}, f;
})(o ? (e = n, _e(() => localStorage.getItem(e)) || "") : et(n, !0), o);
var e;
}, et = (t, n) => {
const o = document.cookie.match("(^|;)\\s*" + t + "\\s*=\\s*([^;]+)");
return o ? n ? o.pop() : t : "";
}, Dt = (t) => {
const n = document.cookie.split(/;\s*/), o = [];
for (const e of n) {
let i = e.split("=")[0];
t ? _e(() => {
t.test(i) && o.push(i);
}) : o.push(i);
}
return o;
}, Ht = (t, n = []) => {
((o, e) => {
const { O: i, R: c, B: f, N: s, Z: a, $: u, X: y } = r.o;
let d = [];
if (o) {
ve(o) ? d.push(...o) : oe(o) && (d = o === "all" ? i : [o]);
for (const p of i) a[p] = M(d, p) ? W(y[p]) : [];
} else d = [...c, ...u], s && (d = (() => {
const p = r.ne.ae;
if (!p) return [];
let g = [];
for (let l in p) p[l].checked && g.push(l);
return g;
})());
d = d.filter((p) => !M(i, p) || !M(e, p)), d.push(...f), ht(d);
})(t, n), (() => {
const o = r.o, { Z: e, B: i, Y: c, X: f, O: s } = o, a = s;
o.te = te(c);
for (const u of a) {
const y = f[u], d = W(y), p = e[u] && e[u].length > 0, g = M(i, u);
if (d.length !== 0) {
if (c[u] = [], g) c[u].push(...d);
else if (p) {
const l = e[u];
c[u].push(...l);
} else c[u] = o.Z[u];
c[u] = $e(c[u]);
}
}
})(), (() => {
const o = r.o;
o.L = r.t.mode === ke && o.D ? De(o.$, o.R) : De(o.R, o.p.categories);
let e = o.L.length > 0, i = !1;
for (const a of o.O) o.ee[a] = De(o.Y[a], o.te[a]), o.ee[a].length > 0 && (i = !0);
const c = r.ne.ae;
for (const a in c) c[a].checked = M(o.R, a);
for (const a of o.O) {
const u = r.ne.se[a], y = o.Y[a];
for (const d in u) u[d].checked = M(y, d);
}
o.C || (o.C = /* @__PURE__ */ new Date()), o.M || (o.M = ("10000000-1000-4000-8000" + -1e11).replace(/[018]/g, (a) => (a ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> a / 4).toString(16))), o.p = { categories: te(o.R), revision: r.t.revision, data: o.h, consentTimestamp: o.C.toISOString(), consentId: o.M, services: te(o.Y), languageCode: r.o.l }, o.S && (o.p.lastConsentTimestamp = o.S.toISOString());
let f = !1;
const s = e || i;
(o.D || s) && (o.D && (o.D = !1, f = !0), o.S = o.S ? /* @__PURE__ */ new Date() : o.C, o.p.lastConsentTimestamp = o.S.toISOString(), Mt(), r.t.autoClearCookies && (f || s) && ((a) => {
const u = r.o, y = Dt(), d = ((p) => {
const g = r.o;
return (p ? g.O : g.L).filter((l) => {
const C = g.P[l];
return !!C && !C.readOnly && !!C.autoClear;
});
})(a);
for (const p in u.ee) for (const g of u.ee[p]) {
const l = u.X[p][g].cookies;
if (!M(u.Y[p], g) && l) for (const C of l) {
const k = ut(y, C.name);
Fe(k, C.path, C.domain);
}
}
for (const p of d) {
const g = u.P[p].autoClear, l = g && g.cookies || [], C = M(u.L, p), k = !M(u.R, p), S = C && k;
if (a ? k : S) {
g.reloadPage && S && (u.j = !0);
for (const _ of l) {
const b = ut(y, _.name);
Fe(b, _.path, _.domain);
}
}
}
})(f), Ye()), f && (Q(r.re.ie), Q(r.re.le), r.t.mode === dt) || (s && Q(r.re.de), o.j && (o.j = !1, location.reload()));
})();
}, Yt = (t) => {
const n = r.o.D ? [] : r.o.R;
return M(n, t);
}, $t = (t, n) => {
const { O: o, X: e } = r.o;
if (!(t && n && oe(n) && M(o, n) && W(e[n]).length !== 0)) return !1;
((i, c) => {
const f = r.o, { X: s, Z: a, N: u } = f, y = r.ne.se[c] || {}, d = r.ne.ae[c] || {}, p = W(s[c]);
if (a[c] = [], oe(i)) {
if (i === "all") {
if (a[c].push(...p), u) for (let l in y) y[l].checked = !0, Me(y[l]);
} else if (M(p, i) && a[c].push(i), u) for (let l in y) y[l].checked = i === l, Me(y[l]);
} else if (ve(i)) for (let l of p) {
const C = M(i, l);
C && a[c].push(l), u && (y[l].checked = C, Me(y[l]));
}
const g = a[c].length === 0;
f.R = g ? f.R.filter((l) => l !== c) : $e([...f.R, c]), u && (d.checked = !g, Me(d));
})(t, n), Ht();
}, Zt = (t, n) => {
const o = r.o.D ? [] : r.o.Y[n] || [];
return M(o, t);
}, Ut = (t) => et(t, !0) !== "", Ft = (t, n, o) => {
let e = [];
const i = (c) => {
if (oe(c)) {
let f = et(c);
f !== "" && e.push(f);
} else e.push(...Dt(c));
};
if (ve(t)) for (let c of t) i(c);
else i(t);
Fe(e, n, o);
}, Ot = (t) => {
const { ne: n, o } = r;
if (!o.k) {
if (!o.T) {
if (!t) return;
Ve(Te, fe);
}
o.k = !0, o.J = Pe(), o.v && yt(!0), gt(n.he, 1), x(n.ye, Xe), v(n.he, z, "false"), setTimeout(() => {
K(r.ne.be);
}, 100), Q(r.re.fe, Ge);
}
}, Xt = () => {
const { ne: t, o: n, re: o } = r;
n.k && (n.k = !1, n.v && yt(), K(t.Ke, !0), ie(t.ye, Xe), v(t.he, z, "true"), K(n.J), n.J = null, Q(o._e, Ge));
}, qt = () => {
const t = r.o;
t.A || (t.N || be(Te, fe), t.A = !0, t.k ? t.U = Pe() : t.J = Pe(), gt(r.ne.we, 2), x(r.ne.ye, qe), v(r.ne.we, z, "false"), setTimeout(() => {
K(r.ne.ve);
}, 100), Q(r.re.fe, Je));
}, Gt = () => {
const t = r.o;
t.A && (t.A = !1, (() => {
const n = It(), o = r.o.P, e = r.ne.ae, i = r.ne.se, c = (f) => M(r.o.$, f);
for (const f in e) {
const s = !!o[f].readOnly;
e[f].checked = s || (n ? Yt(f) : c(f));
for (const a in i[f]) i[f][a].checked = s || (n ? Zt(a, f) : c(f));
}
})(), K(r.ne.$e, !0), ie(r.ne.ye, qe), v(r.ne.we, z, "true"), t.k ? (K(t.U), t.U = null) : (K(t.J), t.J = null), Q(r.re._e, Je));
};
var Te = { show: Ot, hide: Xt, showPreferences: qt, hidePreferences: Gt, acceptCategory: Ht };
const zt = async (t, n) => {
if (!We(t)) return !1;
const o = r.o;
return !(t === Ke() && n !== !0 || !await Lt(t) || (Qe(t), o.T && Ve(Te, fe), o.N && be(Te, fe), _t(), 0));
}, Vt = () => {
const { F: t, Y: n } = r.o, { accepted: o, rejected: e } = (() => {
const { D: i, R: c, O: f } = r.o;
return { accepted: c, rejected: i ? [] : f.filter((s) => !M(c, s)) };
})();
return te({ acceptType: t, acceptedCategories: o, rejectedCategories: e, acceptedServices: n, rejectedServices: Bt() });
}, Wt = (t, n) => {
let o = document.querySelector('script[src="' + t + '"]');
return new Promise((e) => {
if (o) return e(!0);
if (o = m("script"), Ie(n)) for (const i in n) v(o, i, n[i]);
o.onload = () => e(!0), o.onerror = () => {
o.remove(), e(!1);
}, o.src = t, h(document.head, o);
});
}, Kt = (t) => {
let n, o = t.value, e = t.mode, i = !1;
const c = r.o;
if (e === "update") {
c.h = n = Jt("data");
const f = typeof n == typeof o;
if (f && typeof n == "object") {
!n && (n = {});
for (let s in o) n[s] !== o[s] && (n[s] = o[s], i = !0);
} else !f && n || n === o || (n = o, i = !0);
} else n = o, i = !0;
return i && (c.h = n, c.p.data = n, Mt(!0)), i;
}, Jt = (t, n) => {
const o = xt(n);
return t ? o[t] : o;
}, Qt = (t) => {
const n = r.t, o = r.o.i;
return t ? n[t] || o[t] : { ...n, ...o, cookie: { ...n.cookie } };
}, It = () => !r.o.D, eo = async (t) => {
const { o: n, t: o, re: e } = r, i = window;
if (!i._ccRun) {
if (i._ccRun = !0, ((s) => {
const { ne: a, t: u, o: y } = r, d = u, p = y, { cookie: g } = d, l = r.ce, C = s.cookie, k = s.categories, S = W(k) || [], _ = navigator, b = document;
a.Ue = b, a.ye = b.documentElement, g.domain = location.hostname, p.i = s, p.P = k, p.O = S, p._ = s.language.translations, p.v = !!s.disablePageInteraction, l.ie = s.onFirstConsent, l.le = s.onConsent, l.de = s.onChange, l._e = s.onModalHide, l.fe = s.onModalShow, l.ue = s.onModalReady;
const { mode: w, autoShow: H, lazyHtmlGeneration: P, autoClearCookies: D, revision: E, manageScriptTags: pe, hideFromBots: le } = s;
w === ke && (d.mode = w), typeof D == "boolean" && (d.autoClearCookies = D), typeof pe == "boolean" && (d.manageScriptTags = pe), typeof E == "number" && E >= 0 && (d.revision = E, p.V = !0), typeof H == "boolean" && (d.autoShow = H), typeof P == "boolean" && (d.lazyHtmlGeneration = P), le === !1 && (d.hideFromBots = !1), d.hideFromBots === !0 && _ && (p.G = _.userAgent && /bot|crawl|spider|slurp|teoma/i.test(_.userAgent) || _.webdriver), Ie(C) && (d.cookie = { ...g, ...C }), d.autoClearCookies, p.V, d.manageScriptTags, ((q) => {
const { P: ne, X: G, Y: B, Z: Y, B: re } = r.o;
for (let R of q) {
const $ = ne[R], J = $.services || {}, se = Ie(J) && W(J) || [];
G[R] = {}, B[R] = [], Y[R] = [], $.readOnly && (re.push(R), B[R] = se), r.ne.se[R] = {};
for (let ae of se) {
const F = J[ae];
F.Se = !1, G[R][ae] = F;
}
}
})(S), (() => {
if (!r.t.manageScriptTags) return;
const q = r.o, ne = Ue(document, "script[" + Oe + "]");
for (const G of ne) {
let B = xe(G, Oe), Y = G.dataset.service || "", re = !1;
if (B && B.charAt(0) === "!" && (B = B.slice(1), re = !0), Y.charAt(0) === "!" && (Y = Y.slice(1), re = !0), M(q.O, B) && (q.oe.push({ Me: G, xe: !1, ke: re, De: B, Te: Y }), Y)) {
const R = q.X[B];
R[Y] || (R[Y] = { Se: !1 });
}
}
})(), Qe((() => {
const q = r.o.i.language.autoDetect;
if (q) {
const ne = { browser: navigator.language, document: document.documentElement.lang }, G = We(ne[q]);
if (G) return G;
}
return Ke();
})());
})(t), n.G) return;
(() => {
const s = r.o, a = r.t, u = xt(), { categories: y, services: d, consentId: p, consentTimestamp: g, lastConsentTimestamp: l, data: C, revision: k } = u, S = ve(y);
s.p = u, s.M = p;
const _ = !!p && oe(p);
s.C = g, s.C && (s.C = new Date(g)), s.S = l, s.S && (s.S = new Date(l)), s.h = C !== void 0 ? C : null, s.V && _ && k !== a.revision && (s.I = !1), s.D = !(_ && s.I && s.C && s.S && S), a.cookie.useLocalStorage && !s.D && (s.D = (/* @__PURE__ */ new Date()).getTime() > (u.expirationTime || 0), s.D && Tt(a.cookie.name)), s.D, (() => {
const b = r.o;
for (const w of b.O) {
const H = b.P[w];
if (H.readOnly || H.enabled) {
b.$.push(w);
const P = b.X[w] || {};
for (let D in P) b.Z[w].push(D), b.i.mode === ke && b.Y[w].push(D);
}
}
})(), s.D ? a.mode === ke && (s.R = [...s.$]) : (s.Y = { ...s.Y, ...d }, s.Z = { ...s.Y }, ht([...s.B, ...y]));
})();
const f = It();
if (!await Lt()) return !1;
if (mt(null, c = Te, be, fe), r.o.D && Ve(c, fe), r.t.lazyHtmlGeneration || be(c, fe), o.autoShow && !f && Ot(!0), f) return Ye(), Q(e.le);
o.mode === ke && Ye(n.$);
}
var c;
}, to = (t) => {
const { Ce: n, ye: o } = r.ne, { name: e, path: i, domain: c, useLocalStorage: f } = r.t.cookie;
t && (f ? Tt(e) : Ft(e, i, c));
for (const { pe: a, ge: u, me: y } of r.o.m) a.removeEventListener(u, y);
n && n.remove(), o && o.classList.remove(Ee, qe, Xe);
const s = new ft();
for (const a in r) r[a] = s[a];
window._ccRun = !1;
};
export {
Ht as acceptCategory,
$t as acceptService,
Yt as acceptedCategory,
Zt as acceptedService,
Ft as eraseCookies,
Qt as getConfig,
Jt as getCookie,
Vt as getUserPreferences,
Xt as hide,
Gt as hidePreferences,
Wt as loadScript,
to as reset,
eo as run,
Kt as setCookieData,
zt as setLanguage,
Ot as show,
qt as showPreferences,
It as validConsent,
Ut as validCookie
};
//# sourceMappingURL=paella-extra-plugins-cookieconsent.es.js.map