@fremtind/jkl-cookie-consent-react
Advanced tools
Comparing version 10.0.46 to 10.1.0
@@ -40,3 +40,3 @@ "use strict"; | ||
const CookieConsent = ({ blocking, onAccept, ...rest }) => { | ||
const { dispatch, consent } = (0, import_CookieConsentContext.useCookieConsentState)(); | ||
const { dispatch, consent, cookieName, cookieDomain } = (0, import_CookieConsentContext.useCookieConsentState)(); | ||
const prevConsent = (0, import_jkl_react_hooks.usePreviousValue)(consent); | ||
@@ -70,3 +70,3 @@ (0, import_react.useEffect)(() => { | ||
dispatch({ type: "SET_SHOW_CONSENT", payload: false }); | ||
(0, import_cookieConsentUtils.setConsentCookie)(updatedConsent); | ||
(0, import_cookieConsentUtils.setConsentCookie)({ consent: updatedConsent, name: cookieName, domain: cookieDomain }); | ||
}; | ||
@@ -73,0 +73,0 @@ if (blocking) { |
@@ -32,2 +32,3 @@ "use strict"; | ||
CookieConsentProvider: () => CookieConsentProvider, | ||
DEFAULT_COOKIE_NAME: () => DEFAULT_COOKIE_NAME, | ||
useCookieConsent: () => useCookieConsent, | ||
@@ -39,2 +40,3 @@ useCookieConsentState: () => useCookieConsentState | ||
var import_cookieConsentUtils = require("./cookieConsentUtils"); | ||
const DEFAULT_COOKIE_NAME = "fremtind-cookie-consent"; | ||
const CookieConsentContext = import_react.default.createContext(void 0); | ||
@@ -76,7 +78,9 @@ const cookieConsentReducer = (state, action) => { | ||
functional, | ||
statistics | ||
statistics, | ||
cookieName = DEFAULT_COOKIE_NAME, | ||
cookieDomain | ||
}) => { | ||
const consentCookie = (0, import_react.useMemo)(() => { | ||
var _a; | ||
return (_a = (0, import_cookieConsentUtils.getConsentCookie)(cookieAdapter)) != null ? _a : { | ||
return (_a = (0, import_cookieConsentUtils.getConsentCookie)({ adapter: cookieAdapter, name: cookieName })) != null ? _a : { | ||
marketing: null, | ||
@@ -86,3 +90,3 @@ functional: null, | ||
}; | ||
}, [cookieAdapter]); | ||
}, [cookieAdapter, cookieName]); | ||
const requirement = (0, import_react.useMemo)( | ||
@@ -109,3 +113,3 @@ () => ({ | ||
}, [requirement, consentCookie]); | ||
const value = { state, dispatch }; | ||
const value = { state, dispatch, cookieName, cookieDomain }; | ||
return /* @__PURE__ */ import_react.default.createElement(CookieConsentContext.Provider, { value }, children); | ||
@@ -120,2 +124,4 @@ }; | ||
dispatch: context.dispatch, | ||
cookieName: context.cookieName, | ||
cookieDomain: context.cookieDomain, | ||
...context.state | ||
@@ -133,5 +139,9 @@ }; | ||
}; | ||
const openConsentModalWithDefaults = () => { | ||
context.dispatch({ type: "SET_SHOW_CONSENT", payload: true }); | ||
context.dispatch({ type: "SET_SHOW_SETTINGS", payload: false }); | ||
}; | ||
const consents = context.state.consent; | ||
return { openConsentModalWithSettings, consents }; | ||
return { openConsentModalWithSettings, openConsentModalWithDefaults, consents }; | ||
}; | ||
//# sourceMappingURL=CookieConsentContext.js.map |
@@ -34,5 +34,2 @@ "use strict"; | ||
module.exports = __toCommonJS(CookieConsentModal_exports); | ||
var import_jkl_button_react = require("@fremtind/jkl-button-react"); | ||
var import_jkl_checkbox_react = require("@fremtind/jkl-checkbox-react"); | ||
var import_jkl_list_react = require("@fremtind/jkl-list-react"); | ||
var import_jkl_modal_react = require("@fremtind/jkl-modal-react"); | ||
@@ -42,18 +39,8 @@ var import_jkl_react_hooks = require("@fremtind/jkl-react-hooks"); | ||
var import_react_dom = __toESM(require("react-dom")); | ||
var import_CustomConsents = require("./consents/CustomConsents"); | ||
var import_DefaultConsents = require("./consents/DefaultConsents"); | ||
var import_CookieConsentContext = require("./CookieConsentContext"); | ||
var import_cookieConsentUtils = require("./cookieConsentUtils"); | ||
const RequirementCheckbox = ({ defaultChecked, name, label, children }) => { | ||
return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement( | ||
import_jkl_checkbox_react.Checkbox, | ||
{ | ||
className: "jkl-cookie-consent-modal__checkbox", | ||
value: "True", | ||
name, | ||
defaultChecked | ||
}, | ||
label | ||
), /* @__PURE__ */ import_react.default.createElement("p", { className: "jkl-cookie-consent-modal__info-text" }, children)); | ||
}; | ||
const CookieConsentModal = ({ onAccept, ...rest }) => { | ||
const { consent, dispatch, isOpen, requirement, showSettings } = (0, import_CookieConsentContext.useCookieConsentState)(); | ||
const { isOpen, requirement, showSettings } = (0, import_CookieConsentContext.useCookieConsentState)(); | ||
const handleAccept = (0, import_react.useCallback)( | ||
@@ -69,18 +56,4 @@ (v) => { | ||
); | ||
const onFormSubmit = (0, import_react.useCallback)( | ||
(event) => { | ||
event.preventDefault(); | ||
const formValues = {}; | ||
const requiredFormNames = Object.entries(requirement).map(([name, required]) => required ? name : void 0).filter(Boolean); | ||
const formData = new FormData(event.target); | ||
requiredFormNames.forEach((name) => { | ||
formValues[name] = formData.get(name) === "True"; | ||
}); | ||
handleAccept((0, import_cookieConsentUtils.convertBooleanConsentObjectToConsentObject)(formValues)); | ||
}, | ||
[handleAccept, requirement] | ||
); | ||
const id = (0, import_jkl_react_hooks.useId)("jkl-cookie-modal"); | ||
const [instance, { container, overlay, modal, title, closeButton }] = (0, import_jkl_modal_react.useModal)({ | ||
id, | ||
const [instance, modalConfig] = (0, import_jkl_modal_react.useModal)({ | ||
id: (0, import_jkl_react_hooks.useId)("jkl-cookie-modal"), | ||
// The optional `role` attribute of the dialog element, either `dialog` | ||
@@ -108,45 +81,3 @@ // (default) or `alertdialog` to make it a modal (preventing closing on | ||
return import_react_dom.default.createPortal( | ||
/* @__PURE__ */ import_react.default.createElement(import_jkl_modal_react.ModalContainer, { ...rest, ...container, "data-testautoid": "jkl-cookie-consent-modal" }, /* @__PURE__ */ import_react.default.createElement(import_jkl_modal_react.ModalOverlay, { ...overlay }), !showSettings ? /* @__PURE__ */ import_react.default.createElement(import_jkl_modal_react.Modal, { ...modal }, /* @__PURE__ */ import_react.default.createElement(import_jkl_modal_react.ModalHeader, null, /* @__PURE__ */ import_react.default.createElement(import_jkl_modal_react.ModalTitle, { ...title }, "Vi bruker informasjonskapsler slik at:")), /* @__PURE__ */ import_react.default.createElement(import_jkl_modal_react.ModalBody, null, /* @__PURE__ */ import_react.default.createElement(import_jkl_list_react.UnorderedList, { className: "jkl-cookie-consent-modal__checklist" }, /* @__PURE__ */ import_react.default.createElement(import_jkl_list_react.CheckListItem, null, "Nettsidene skal fungere teknisk"), requirement.functional && /* @__PURE__ */ import_react.default.createElement(import_jkl_list_react.CheckListItem, null, "Nettsidene skal tilpasses din bruk, dine valg og dine innstillinger."), requirement.statistics && /* @__PURE__ */ import_react.default.createElement(import_jkl_list_react.CheckListItem, null, "Vi kan samle statistikk p\xE5 hvordan nettsidene brukes og dermed kunne forbedre tjenestene v\xE5re."), requirement.marketing && /* @__PURE__ */ import_react.default.createElement(import_jkl_list_react.CheckListItem, null, "Vi kan gi deg personlig tilpasset innhold og relevante annonser, ogs\xE5 gjennom v\xE5re samarbeidspartnere, p\xE5 for eksempel nettsider og i sosiale medier."))), /* @__PURE__ */ import_react.default.createElement(import_jkl_modal_react.ModalActions, null, /* @__PURE__ */ import_react.default.createElement( | ||
import_jkl_button_react.PrimaryButton, | ||
{ | ||
"data-testid": "jkl-cookie-consent-godta", | ||
...closeButton, | ||
onClick: () => { | ||
handleAccept("implicit"); | ||
} | ||
}, | ||
"Godta" | ||
), /* @__PURE__ */ import_react.default.createElement( | ||
import_jkl_button_react.TertiaryButton, | ||
{ | ||
onClick: () => { | ||
dispatch({ type: "SET_SHOW_SETTINGS", payload: true }); | ||
} | ||
}, | ||
"Innstillinger" | ||
))) : /* @__PURE__ */ import_react.default.createElement(import_jkl_modal_react.Modal, { component: "form", ...modal, ...{ onSubmit: onFormSubmit } }, /* @__PURE__ */ import_react.default.createElement(import_jkl_modal_react.ModalHeader, null, /* @__PURE__ */ import_react.default.createElement(import_jkl_modal_react.ModalTitle, { ...title }, "Informasjonskapsler")), /* @__PURE__ */ import_react.default.createElement(import_jkl_modal_react.ModalBody, null, /* @__PURE__ */ import_react.default.createElement(import_jkl_list_react.UnorderedList, { className: "jkl-cookie-consent-modal__checklist" }, /* @__PURE__ */ import_react.default.createElement(import_jkl_list_react.CheckListItem, null, "Nettsidene skal fungere teknisk")), /* @__PURE__ */ import_react.default.createElement("p", { className: "jkl-cookie-consent-modal__info-text" }, "For at nettsidene skal fungere, m\xE5 vi bruke tekniske informasjonskapsler. Denne kan derfor ikke sl\xE5s av."), requirement.functional && /* @__PURE__ */ import_react.default.createElement( | ||
RequirementCheckbox, | ||
{ | ||
name: "functional", | ||
label: "Tillat funksjonelle", | ||
defaultChecked: consent.functional === "accepted" | ||
}, | ||
"Funksjonelle informasjonskapsler lagrer opplysninger om din bruk av nettsidene og hvilke innstillinger du har gjort, slik at du kan f\xE5 funksjonalitet tilpasset deg." | ||
), requirement.statistics && /* @__PURE__ */ import_react.default.createElement( | ||
RequirementCheckbox, | ||
{ | ||
name: "statistics", | ||
label: "Tillat statistikk", | ||
defaultChecked: consent.statistics === "accepted" | ||
}, | ||
"Informasjonskapslene lagrer statistikk som hjelper oss med \xE5 forst\xE5 hvordan nettsidene blir brukt, slik at vi kan gj\xF8re dem bedre og enklere \xE5 bruke." | ||
), requirement.marketing && /* @__PURE__ */ import_react.default.createElement( | ||
RequirementCheckbox, | ||
{ | ||
name: "marketing", | ||
label: "Tillat personlig markedsf\xF8ring", | ||
defaultChecked: consent.marketing === "accepted" | ||
}, | ||
"Dette gj\xF8r at vi kan gi deg mer relevant og tilpasset markedsf\xF8ring, ogs\xE5 gjennom v\xE5re samarbeidspartnere, p\xE5 for eksempel nettsider, annonser og i sosiale medier." | ||
)), /* @__PURE__ */ import_react.default.createElement(import_jkl_modal_react.ModalActions, null, /* @__PURE__ */ import_react.default.createElement(import_jkl_button_react.PrimaryButton, { type: "submit", "data-testid": "jkl-cookie-consent-godta" }, "Godta")))), | ||
/* @__PURE__ */ import_react.default.createElement(import_jkl_modal_react.ModalContainer, { ...rest, ...modalConfig.container, "data-testautoid": "jkl-cookie-consent-modal" }, /* @__PURE__ */ import_react.default.createElement(import_jkl_modal_react.ModalOverlay, { ...modalConfig.overlay }), showSettings ? /* @__PURE__ */ import_react.default.createElement(import_CustomConsents.CustomConsents, { modalConfig, handleAccept }) : /* @__PURE__ */ import_react.default.createElement(import_DefaultConsents.DefaultConsents, { modalConfig, handleAccept })), | ||
document.body | ||
@@ -153,0 +84,0 @@ ); |
@@ -30,4 +30,3 @@ "use strict"; | ||
module.exports = __toCommonJS(cookieConsentUtils_exports); | ||
const COOKIE_NAME = "fremtind-cookie-consent"; | ||
const getCookie = (name = COOKIE_NAME) => { | ||
const getCookie = (name) => { | ||
if (typeof document === "undefined") { | ||
@@ -42,4 +41,7 @@ return void 0; | ||
}; | ||
const getConsentCookie = (adapter) => { | ||
const cookie = getCookie(); | ||
const getConsentCookie = ({ | ||
adapter, | ||
name | ||
}) => { | ||
const cookie = getCookie(name); | ||
if (cookie) { | ||
@@ -55,8 +57,14 @@ const consent = JSON.parse(cookie[1]); | ||
const DEFAULT_MAX_AGE = 10368e3; | ||
const setConsentCookie = (consent, maxAge = DEFAULT_MAX_AGE, name = COOKIE_NAME) => { | ||
const cookie = []; | ||
cookie.push("".concat(name, "=").concat(JSON.stringify(consent))); | ||
cookie.push("max-age=".concat(maxAge)); | ||
cookie.push("SameSite=Lax"); | ||
document.cookie = cookie.join(";"); | ||
const setConsentCookie = ({ | ||
consent, | ||
maxAge = DEFAULT_MAX_AGE, | ||
name, | ||
domain | ||
}) => { | ||
document.cookie = [ | ||
"".concat(name, "=").concat(JSON.stringify(consent)), | ||
"max-age=".concat(maxAge), | ||
"SameSite=Lax", | ||
!!domain && "domain=".concat(domain) | ||
].filter((f) => f).join(";"); | ||
}; | ||
@@ -63,0 +71,0 @@ const shouldShowConsentDialog = (requirement, consent) => { |
@@ -28,4 +28,7 @@ import { WithChildren } from "@fremtind/jkl-core"; | ||
} | ||
export declare const DEFAULT_COOKIE_NAME = "fremtind-cookie-consent"; | ||
export interface CookieConsentProviderProps extends Partial<ConsentRequirement>, WithChildren { | ||
cookieAdapter?: () => Consent | undefined; | ||
cookieName?: string; | ||
cookieDomain?: string; | ||
} | ||
@@ -35,2 +38,4 @@ declare const CookieConsentProvider: React.FC<CookieConsentProviderProps>; | ||
dispatch: Dispatch; | ||
cookieName: string; | ||
cookieDomain?: string; | ||
} | ||
@@ -40,2 +45,3 @@ declare const useCookieConsentState: () => UseCookieConsentState; | ||
openConsentModalWithSettings: () => void; | ||
openConsentModalWithDefaults: () => void; | ||
/** Se hvilke samtykker som er gitt, om du for eksempel trenger styre UI basert på samtykker. */ | ||
@@ -42,0 +48,0 @@ consents: Consent; |
@@ -1,4 +0,12 @@ | ||
import type { Consent, ConsentState, ConsentRequirement } from "./types"; | ||
export declare const getConsentCookie: (adapter?: () => Consent | undefined) => Consent | undefined; | ||
export declare const setConsentCookie: (consent: Consent, maxAge?: number, name?: string) => void; | ||
import type { Consent, ConsentRequirement, ConsentState } from "./types"; | ||
export declare const getConsentCookie: ({ adapter, name, }: { | ||
adapter?: (() => Consent | undefined) | undefined; | ||
name: string; | ||
}) => Consent | undefined; | ||
export declare const setConsentCookie: ({ consent, maxAge, name, domain, }: { | ||
consent: Consent; | ||
maxAge?: number | undefined; | ||
name: string; | ||
domain?: string | undefined; | ||
}) => void; | ||
export declare const shouldShowConsentDialog: (requirement: ConsentRequirement, consent: Consent | undefined) => boolean; | ||
@@ -5,0 +13,0 @@ export declare const convertConsentValueToFormValue: (consent: ConsentState) => boolean | undefined; |
@@ -7,3 +7,3 @@ import { usePreviousValue } from "@fremtind/jkl-react-hooks"; | ||
const CookieConsent = ({ blocking, onAccept, ...rest }) => { | ||
const { dispatch, consent } = useCookieConsentState(); | ||
const { dispatch, consent, cookieName, cookieDomain } = useCookieConsentState(); | ||
const prevConsent = usePreviousValue(consent); | ||
@@ -37,3 +37,3 @@ useEffect(() => { | ||
dispatch({ type: "SET_SHOW_CONSENT", payload: false }); | ||
setConsentCookie(updatedConsent); | ||
setConsentCookie({ consent: updatedConsent, name: cookieName, domain: cookieDomain }); | ||
}; | ||
@@ -40,0 +40,0 @@ if (blocking) { |
import React, { useEffect, useMemo } from "react"; | ||
import { shouldShowConsentDialog, getConsentCookie } from "./cookieConsentUtils"; | ||
const DEFAULT_COOKIE_NAME = "fremtind-cookie-consent"; | ||
const CookieConsentContext = React.createContext(void 0); | ||
@@ -39,7 +40,9 @@ const cookieConsentReducer = (state, action) => { | ||
functional, | ||
statistics | ||
statistics, | ||
cookieName = DEFAULT_COOKIE_NAME, | ||
cookieDomain | ||
}) => { | ||
const consentCookie = useMemo(() => { | ||
var _a; | ||
return (_a = getConsentCookie(cookieAdapter)) != null ? _a : { | ||
return (_a = getConsentCookie({ adapter: cookieAdapter, name: cookieName })) != null ? _a : { | ||
marketing: null, | ||
@@ -49,3 +52,3 @@ functional: null, | ||
}; | ||
}, [cookieAdapter]); | ||
}, [cookieAdapter, cookieName]); | ||
const requirement = useMemo( | ||
@@ -72,3 +75,3 @@ () => ({ | ||
}, [requirement, consentCookie]); | ||
const value = { state, dispatch }; | ||
const value = { state, dispatch, cookieName, cookieDomain }; | ||
return /* @__PURE__ */ React.createElement(CookieConsentContext.Provider, { value }, children); | ||
@@ -83,2 +86,4 @@ }; | ||
dispatch: context.dispatch, | ||
cookieName: context.cookieName, | ||
cookieDomain: context.cookieDomain, | ||
...context.state | ||
@@ -96,7 +101,12 @@ }; | ||
}; | ||
const openConsentModalWithDefaults = () => { | ||
context.dispatch({ type: "SET_SHOW_CONSENT", payload: true }); | ||
context.dispatch({ type: "SET_SHOW_SETTINGS", payload: false }); | ||
}; | ||
const consents = context.state.consent; | ||
return { openConsentModalWithSettings, consents }; | ||
return { openConsentModalWithSettings, openConsentModalWithDefaults, consents }; | ||
}; | ||
export { | ||
CookieConsentProvider, | ||
DEFAULT_COOKIE_NAME, | ||
useCookieConsent, | ||
@@ -103,0 +113,0 @@ useCookieConsentState |
@@ -1,33 +0,11 @@ | ||
import { PrimaryButton, TertiaryButton } from "@fremtind/jkl-button-react"; | ||
import { Checkbox } from "@fremtind/jkl-checkbox-react"; | ||
import { CheckListItem, UnorderedList } from "@fremtind/jkl-list-react"; | ||
import { | ||
ModalContainer, | ||
ModalOverlay, | ||
Modal, | ||
ModalHeader, | ||
ModalTitle, | ||
ModalBody, | ||
ModalActions, | ||
useModal | ||
} from "@fremtind/jkl-modal-react"; | ||
import { ModalContainer, ModalOverlay, useModal } from "@fremtind/jkl-modal-react"; | ||
import { useId } from "@fremtind/jkl-react-hooks"; | ||
import React, { useCallback, useEffect } from "react"; | ||
import ReactDOM from "react-dom"; | ||
import { CustomConsents } from "./consents/CustomConsents"; | ||
import { DefaultConsents } from "./consents/DefaultConsents"; | ||
import { useCookieConsentState } from "./CookieConsentContext"; | ||
import { convertBooleanConsentObjectToConsentObject } from "./cookieConsentUtils"; | ||
const RequirementCheckbox = ({ defaultChecked, name, label, children }) => { | ||
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement( | ||
Checkbox, | ||
{ | ||
className: "jkl-cookie-consent-modal__checkbox", | ||
value: "True", | ||
name, | ||
defaultChecked | ||
}, | ||
label | ||
), /* @__PURE__ */ React.createElement("p", { className: "jkl-cookie-consent-modal__info-text" }, children)); | ||
}; | ||
const CookieConsentModal = ({ onAccept, ...rest }) => { | ||
const { consent, dispatch, isOpen, requirement, showSettings } = useCookieConsentState(); | ||
const { isOpen, requirement, showSettings } = useCookieConsentState(); | ||
const handleAccept = useCallback( | ||
@@ -43,18 +21,4 @@ (v) => { | ||
); | ||
const onFormSubmit = useCallback( | ||
(event) => { | ||
event.preventDefault(); | ||
const formValues = {}; | ||
const requiredFormNames = Object.entries(requirement).map(([name, required]) => required ? name : void 0).filter(Boolean); | ||
const formData = new FormData(event.target); | ||
requiredFormNames.forEach((name) => { | ||
formValues[name] = formData.get(name) === "True"; | ||
}); | ||
handleAccept(convertBooleanConsentObjectToConsentObject(formValues)); | ||
}, | ||
[handleAccept, requirement] | ||
); | ||
const id = useId("jkl-cookie-modal"); | ||
const [instance, { container, overlay, modal, title, closeButton }] = useModal({ | ||
id, | ||
const [instance, modalConfig] = useModal({ | ||
id: useId("jkl-cookie-modal"), | ||
// The optional `role` attribute of the dialog element, either `dialog` | ||
@@ -82,45 +46,3 @@ // (default) or `alertdialog` to make it a modal (preventing closing on | ||
return ReactDOM.createPortal( | ||
/* @__PURE__ */ React.createElement(ModalContainer, { ...rest, ...container, "data-testautoid": "jkl-cookie-consent-modal" }, /* @__PURE__ */ React.createElement(ModalOverlay, { ...overlay }), !showSettings ? /* @__PURE__ */ React.createElement(Modal, { ...modal }, /* @__PURE__ */ React.createElement(ModalHeader, null, /* @__PURE__ */ React.createElement(ModalTitle, { ...title }, "Vi bruker informasjonskapsler slik at:")), /* @__PURE__ */ React.createElement(ModalBody, null, /* @__PURE__ */ React.createElement(UnorderedList, { className: "jkl-cookie-consent-modal__checklist" }, /* @__PURE__ */ React.createElement(CheckListItem, null, "Nettsidene skal fungere teknisk"), requirement.functional && /* @__PURE__ */ React.createElement(CheckListItem, null, "Nettsidene skal tilpasses din bruk, dine valg og dine innstillinger."), requirement.statistics && /* @__PURE__ */ React.createElement(CheckListItem, null, "Vi kan samle statistikk p\xE5 hvordan nettsidene brukes og dermed kunne forbedre tjenestene v\xE5re."), requirement.marketing && /* @__PURE__ */ React.createElement(CheckListItem, null, "Vi kan gi deg personlig tilpasset innhold og relevante annonser, ogs\xE5 gjennom v\xE5re samarbeidspartnere, p\xE5 for eksempel nettsider og i sosiale medier."))), /* @__PURE__ */ React.createElement(ModalActions, null, /* @__PURE__ */ React.createElement( | ||
PrimaryButton, | ||
{ | ||
"data-testid": "jkl-cookie-consent-godta", | ||
...closeButton, | ||
onClick: () => { | ||
handleAccept("implicit"); | ||
} | ||
}, | ||
"Godta" | ||
), /* @__PURE__ */ React.createElement( | ||
TertiaryButton, | ||
{ | ||
onClick: () => { | ||
dispatch({ type: "SET_SHOW_SETTINGS", payload: true }); | ||
} | ||
}, | ||
"Innstillinger" | ||
))) : /* @__PURE__ */ React.createElement(Modal, { component: "form", ...modal, ...{ onSubmit: onFormSubmit } }, /* @__PURE__ */ React.createElement(ModalHeader, null, /* @__PURE__ */ React.createElement(ModalTitle, { ...title }, "Informasjonskapsler")), /* @__PURE__ */ React.createElement(ModalBody, null, /* @__PURE__ */ React.createElement(UnorderedList, { className: "jkl-cookie-consent-modal__checklist" }, /* @__PURE__ */ React.createElement(CheckListItem, null, "Nettsidene skal fungere teknisk")), /* @__PURE__ */ React.createElement("p", { className: "jkl-cookie-consent-modal__info-text" }, "For at nettsidene skal fungere, m\xE5 vi bruke tekniske informasjonskapsler. Denne kan derfor ikke sl\xE5s av."), requirement.functional && /* @__PURE__ */ React.createElement( | ||
RequirementCheckbox, | ||
{ | ||
name: "functional", | ||
label: "Tillat funksjonelle", | ||
defaultChecked: consent.functional === "accepted" | ||
}, | ||
"Funksjonelle informasjonskapsler lagrer opplysninger om din bruk av nettsidene og hvilke innstillinger du har gjort, slik at du kan f\xE5 funksjonalitet tilpasset deg." | ||
), requirement.statistics && /* @__PURE__ */ React.createElement( | ||
RequirementCheckbox, | ||
{ | ||
name: "statistics", | ||
label: "Tillat statistikk", | ||
defaultChecked: consent.statistics === "accepted" | ||
}, | ||
"Informasjonskapslene lagrer statistikk som hjelper oss med \xE5 forst\xE5 hvordan nettsidene blir brukt, slik at vi kan gj\xF8re dem bedre og enklere \xE5 bruke." | ||
), requirement.marketing && /* @__PURE__ */ React.createElement( | ||
RequirementCheckbox, | ||
{ | ||
name: "marketing", | ||
label: "Tillat personlig markedsf\xF8ring", | ||
defaultChecked: consent.marketing === "accepted" | ||
}, | ||
"Dette gj\xF8r at vi kan gi deg mer relevant og tilpasset markedsf\xF8ring, ogs\xE5 gjennom v\xE5re samarbeidspartnere, p\xE5 for eksempel nettsider, annonser og i sosiale medier." | ||
)), /* @__PURE__ */ React.createElement(ModalActions, null, /* @__PURE__ */ React.createElement(PrimaryButton, { type: "submit", "data-testid": "jkl-cookie-consent-godta" }, "Godta")))), | ||
/* @__PURE__ */ React.createElement(ModalContainer, { ...rest, ...modalConfig.container, "data-testautoid": "jkl-cookie-consent-modal" }, /* @__PURE__ */ React.createElement(ModalOverlay, { ...modalConfig.overlay }), showSettings ? /* @__PURE__ */ React.createElement(CustomConsents, { modalConfig, handleAccept }) : /* @__PURE__ */ React.createElement(DefaultConsents, { modalConfig, handleAccept })), | ||
document.body | ||
@@ -127,0 +49,0 @@ ); |
@@ -1,3 +0,2 @@ | ||
const COOKIE_NAME = "fremtind-cookie-consent"; | ||
const getCookie = (name = COOKIE_NAME) => { | ||
const getCookie = (name) => { | ||
if (typeof document === "undefined") { | ||
@@ -12,4 +11,7 @@ return void 0; | ||
}; | ||
const getConsentCookie = (adapter) => { | ||
const cookie = getCookie(); | ||
const getConsentCookie = ({ | ||
adapter, | ||
name | ||
}) => { | ||
const cookie = getCookie(name); | ||
if (cookie) { | ||
@@ -25,8 +27,14 @@ const consent = JSON.parse(cookie[1]); | ||
const DEFAULT_MAX_AGE = 10368e3; | ||
const setConsentCookie = (consent, maxAge = DEFAULT_MAX_AGE, name = COOKIE_NAME) => { | ||
const cookie = []; | ||
cookie.push("".concat(name, "=").concat(JSON.stringify(consent))); | ||
cookie.push("max-age=".concat(maxAge)); | ||
cookie.push("SameSite=Lax"); | ||
document.cookie = cookie.join(";"); | ||
const setConsentCookie = ({ | ||
consent, | ||
maxAge = DEFAULT_MAX_AGE, | ||
name, | ||
domain | ||
}) => { | ||
document.cookie = [ | ||
"".concat(name, "=").concat(JSON.stringify(consent)), | ||
"max-age=".concat(maxAge), | ||
"SameSite=Lax", | ||
!!domain && "domain=".concat(domain) | ||
].filter((f) => f).join(";"); | ||
}; | ||
@@ -33,0 +41,0 @@ const shouldShowConsentDialog = (requirement, consent) => { |
{ | ||
"name": "@fremtind/jkl-cookie-consent-react", | ||
"version": "10.0.46", | ||
"version": "10.1.0", | ||
"publishConfig": { | ||
@@ -61,3 +61,3 @@ "access": "public" | ||
}, | ||
"gitHead": "e53834489fd9ae78b84c4c873f3634baa51dd397" | ||
"gitHead": "699d4996e9e4cb3225feeb9d07ffe718505c8efa" | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
123432
50
1254