import { h } from "@stencil/core";
export class SpwCookies {
    constructor() {
        /** Titre affiché dans la bannière de cookies */
        this.cookiesTitle = 'Nous utilisons des cookies';
        /** Description des cookies et de leur utilisation, affichée dans la bannière */
        this.cookiesDescription = `Ce site web utilise des cookies essentiels pour assurer son bon fonctionnement et des cookies de suivi pour comprendre comment vous interagissez avec lui. Ces derniers ne seront installés qu'après avoir obtenu votre consentement.`;
        /** Texte du bouton pour accepter tous les cookies */
        this.acceptAllButtonText = 'Accepter tous les cookies';
        /** Texte du bouton pour accepter uniquement les cookies fonctionnels */
        this.acceptRequiredButtonText = 'Accepter uniquement les cookies fonctionnels';
        this.isVisible = false;
        this.analyticsEnabled = false;
    }
    componentWillLoad() {
        this.initializeCookieSettings();
        this.checkCookieSettings();
    }
    initializeCookieSettings() {
        if (localStorage.getItem('spw-cookie-settings__required') === null) {
            localStorage.setItem('spw-cookie-settings__required', 'false');
        }
        if (localStorage.getItem('spw-cookie-settings__analytics') === null) {
            localStorage.setItem('spw-cookie-settings__analytics', 'false');
        }
        if (localStorage.getItem('spw-cookie-settings__saved') === null) {
            localStorage.setItem('spw-cookie-settings__saved', 'false');
        }
    }
    checkCookieSettings() {
        const settings = this.getCookieSettings();
        if (!settings['spw-cookie-settings__saved']) {
            this.isVisible = true;
        }
        this.analyticsEnabled = settings['spw-cookie-settings__analytics'];
    }
    getCookieSettings() {
        return {
            'spw-cookie-settings__required': JSON.parse(localStorage.getItem('spw-cookie-settings__required')),
            'spw-cookie-settings__analytics': JSON.parse(localStorage.getItem('spw-cookie-settings__analytics')),
            'spw-cookie-settings__saved': JSON.parse(localStorage.getItem('spw-cookie-settings__saved')),
        };
    }
    setCookieSettings(settings) {
        Object.keys(settings).forEach(key => {
            localStorage.setItem(key, JSON.stringify(settings[key]));
        });
    }
    toggleAnalytics() {
        this.analyticsEnabled = !this.analyticsEnabled;
        this.setCookieSettings({ 'spw-cookie-settings__analytics': this.analyticsEnabled });
    }
    acceptAllCookies() {
        this.setCookieSettings({
            'spw-cookie-settings__required': true,
            'spw-cookie-settings__analytics': true,
            'spw-cookie-settings__saved': true,
        });
        this.isVisible = false;
    }
    acceptRequiredCookies() {
        this.setCookieSettings({
            'spw-cookie-settings__required': true,
            'spw-cookie-settings__analytics': false,
            'spw-cookie-settings__saved': true,
        });
        this.isVisible = false;
    }
    render() {
        if (!this.isVisible) {
            return null;
        }
        return (h("div", { class: "spw-cookies" }, h("div", { class: "spw-cookies__container" }, h("div", { class: "spw-cookies__content" }, h("h2", { class: "spw-cookies__title" }, this.cookiesTitle), h("p", { class: "spw-cookies__text" }, this.cookiesDescription), h("spw-accordion", null, h("spw-accordion-item", null, h("spw-accordion-title", { slot: "title" }, "Param\u00E9trer les cookies"), h("spw-accordion-content", { slot: "content" }, h("div", { class: "spw-cookies__checkbox" }, h("spw-checkbox", { checked: this.analyticsEnabled, onSpwChange: () => this.toggleAnalytics() }, h("span", { class: "spw-cookies__checkbox-text" }, "Les cookies de statistiques proviennent de soci\u00E9t\u00E9s de externes (\"cookies tiers\") et sont utilis\u00E9s pour collecter des informations sur les sites web visit\u00E9s par l'utilisateur."))))))), h("div", { class: "spw-cookies__buttons" }, h("spw-button", { "is-full-width": "true", onClick: () => this.acceptAllCookies() }, this.acceptAllButtonText), h("spw-button", { "is-full-width": "true", variant: "secondary", onClick: () => this.acceptRequiredCookies() }, this.acceptRequiredButtonText)))));
    }
    static get is() { return "spw-cookies"; }
    static get encapsulation() { return "shadow"; }
    static get originalStyleUrls() {
        return {
            "$": ["spw-cookies.scss"]
        };
    }
    static get styleUrls() {
        return {
            "$": ["spw-cookies.css"]
        };
    }
    static get properties() {
        return {
            "cookiesTitle": {
                "type": "string",
                "mutable": false,
                "complexType": {
                    "original": "string",
                    "resolved": "string",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": "Titre affich\u00E9 dans la banni\u00E8re de cookies"
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "cookies-title",
                "defaultValue": "'Nous utilisons des cookies'"
            },
            "cookiesDescription": {
                "type": "string",
                "mutable": false,
                "complexType": {
                    "original": "string",
                    "resolved": "string",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": "Description des cookies et de leur utilisation, affich\u00E9e dans la banni\u00E8re"
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "cookies-description",
                "defaultValue": "`Ce site web utilise des cookies essentiels pour assurer son bon fonctionnement et des cookies de suivi pour comprendre comment vous interagissez avec lui. Ces derniers ne seront install\u00E9s qu'apr\u00E8s avoir obtenu votre consentement.`"
            },
            "acceptAllButtonText": {
                "type": "string",
                "mutable": false,
                "complexType": {
                    "original": "string",
                    "resolved": "string",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": "Texte du bouton pour accepter tous les cookies"
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "accept-all-button-text",
                "defaultValue": "'Accepter tous les cookies'"
            },
            "acceptRequiredButtonText": {
                "type": "string",
                "mutable": false,
                "complexType": {
                    "original": "string",
                    "resolved": "string",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": "Texte du bouton pour accepter uniquement les cookies fonctionnels"
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "accept-required-button-text",
                "defaultValue": "'Accepter uniquement les cookies fonctionnels'"
            }
        };
    }
    static get states() {
        return {
            "isVisible": {},
            "analyticsEnabled": {}
        };
    }
}
