\n
\n
\n \n \n '
)
.concat(
cookie.label ? cookie.label : "",
"\n \n "
)
.concat(
cookie.description
? "
".concat(cookie.description, "
")
: "",
"\n
"
);
}
},
config.options
);
this.opened = false;
this.acceptedCookies = getCookie("cookie-accepted") === "accepted";
this.optionalCookies = {};
this.optionalCookiesByName = [];
config.optionalCookies.forEach(function (ck) {
var cookieName = ck.cookieName || "cookie-".concat(ck.name);
/* get saved value from cookies */
var savedCookie = getCookie(cookieName);
var cookie = _objectSpread({}, ck, {
cookieName: cookieName,
/* set accepted value according to saved or default value */
accepted:
savedCookie === _this.options.revokeValue
? false
: savedCookie === _this.options.acceptValue || ck.accepted
});
/* initial save to cookies if default accepted and not saved */
!savedCookie &&
cookie.accepted &&
setCookie(
cookie.cookieName,
_this.options.acceptValue,
_this.options.lifetime,
_this.options.domain
);
_this.optionalCookies[cookie.name] = cookie;
_this.optionalCookiesByName.push(cookie.name);
/* call onAccept or onRevoke functions */
cookie.accepted
? cookie.onAccept && cookie.onAccept()
: cookie.onRevoke && cookie.onRevoke();
});
}
_createClass(CookieControl, [
{
key: "init",
value: function init() {
/* initialize plugin */
if (!this.el) return;
this.renderOptional();
this.setupEvents();
!this.acceptedCookies &&
window.setTimeout(this.pending.bind(this), this.options.timeout);
}
},
{
key: "setupEvents",
value: function setupEvents() {
var _this2 = this;
/* toggle show/hide cookie window */
_toConsumableArray(
document.getElementsByClassName("cookie-toggle")
).forEach(function (el) {
el.addEventListener("click", function (e) {
e.preventDefault();
return _this2.opened ? _this2.close() : _this2.open();
});
});
/* close cookie window */
_toConsumableArray(
document.getElementsByClassName("cookie-close")
).forEach(function (el) {
el.addEventListener("click", _this2.pending.bind(_this2));
});
/* open cookie window */
_toConsumableArray(
document.getElementsByClassName("js-open-cookie")
).forEach(function (el) {
el.addEventListener("click", _this2.open.bind(_this2));
});
/* accept cookies */
_toConsumableArray(
document.getElementsByClassName("cookie-accept")
).forEach(function (el) {
el.addEventListener("click", _this2.accept.bind(_this2));
});
/* turn on/off cookie group */
_toConsumableArray(
this.el.getElementsByClassName("cookie-optional-checkbox")
).forEach(function (checkbox) {
checkbox.addEventListener(
"change",
_this2.toggleCookie.bind(_this2)
);
});
}
},
{
key: "pending",
value: function pending(e) {
e && e.preventDefault();
this.el.removeAttribute("open");
this.el.setAttribute("pending", "");
}
},
{
key: "open",
value: function open(e) {
e && e.preventDefault();
this.el.removeAttribute("pending");
this.el.setAttribute("open", "");
this.opened = true;
}
},
{
key: "close",
value: function close(e) {
e && e.preventDefault();
this.el.removeAttribute("pending");
this.el.removeAttribute("open");
this.opened = false;
document.getElementById('cookie').style.display = 'none';
}
},
{
key: "renderOptional",
value: function renderOptional() {
var _this3 = this;
/* render optional cookie groups to cookie window */
var optionalHtml = "";
this.optionalCookiesByName.forEach(function (cookieName) {
var cookie = _this3.optionalCookies[cookieName];
optionalHtml += _this3.options.optionCookieHtml(cookie);
});
this.el.querySelector(
".cookie-optional-list"
).outerHTML = optionalHtml;
}
},
{
key: "toggleCookie",
value: function toggleCookie(e) {
/* turn on/off cookie group and save to cookie */
this.optionalCookies[e.target.dataset.name].accepted =
e.target.checked;
this.saveCookie(this.optionalCookies[e.target.dataset.name]);
/* call onChange function if defined */
this.options.onChange && this.options.onChange(e, this);
}
},
{
key: "saveAll",
value: function saveAll() {
var _this4 = this;
this.optionalCookiesByName.forEach(function (name) {
return _this4.saveCookie(_this4.optionalCookies[name]);