@c15t/react 0.0.1-rc.9 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/consent-manager-dialog/__tests__/styles.spec.cjs +41 -20
- package/dist/components/consent-manager-dialog/__tests__/styles.spec.js +34 -6
- package/dist/components/consent-manager-dialog/atoms/dialog-card.cjs +67 -32
- package/dist/components/consent-manager-dialog/atoms/dialog-card.d.ts +9 -3
- package/dist/components/consent-manager-dialog/atoms/dialog-card.d.ts.map +1 -1
- package/dist/components/consent-manager-dialog/atoms/dialog-card.js +26 -12
- package/dist/components/consent-manager-dialog/atoms/overlay.cjs +20 -19
- package/dist/components/consent-manager-dialog/atoms/overlay.d.ts.map +1 -1
- package/dist/components/consent-manager-dialog/atoms/overlay.js +7 -4
- package/dist/components/consent-manager-dialog/consent-manager-dialog.cjs +20 -16
- package/dist/components/consent-manager-dialog/consent-manager-dialog.d.ts +0 -2
- package/dist/components/consent-manager-dialog/consent-manager-dialog.d.ts.map +1 -1
- package/dist/components/consent-manager-dialog/consent-manager-dialog.js +10 -2
- package/dist/components/consent-manager-dialog/consent-manager-dialog.module.cjs +12 -10
- package/dist/components/consent-manager-dialog/consent-manager-dialog.module.js +4 -2
- package/dist/components/consent-manager-dialog/consent-manager-dialog_module.css +29 -15
- package/dist/components/consent-manager-dialog/index.cjs +43 -17
- package/dist/components/consent-manager-dialog/theme.cjs +3 -4
- package/dist/components/consent-manager-widget/__tests__/styles.spec.cjs +41 -20
- package/dist/components/consent-manager-widget/__tests__/styles.spec.js +34 -6
- package/dist/components/consent-manager-widget/atoms/accordion.cjs +50 -24
- package/dist/components/consent-manager-widget/atoms/accordion.d.ts.map +1 -1
- package/dist/components/consent-manager-widget/atoms/button.cjs +27 -13
- package/dist/components/consent-manager-widget/atoms/footer.cjs +19 -17
- package/dist/components/consent-manager-widget/atoms/root.cjs +10 -8
- package/dist/components/consent-manager-widget/consent-manager-widget.cjs +11 -22
- package/dist/components/consent-manager-widget/consent-manager-widget.d.ts.map +1 -1
- package/dist/components/consent-manager-widget/consent-manager-widget.js +3 -14
- package/dist/components/consent-manager-widget/consent-manager-widget.module.cjs +12 -13
- package/dist/components/consent-manager-widget/consent-manager-widget.module.js +4 -5
- package/dist/components/consent-manager-widget/consent-manager-widget_module.css +24 -29
- package/dist/components/consent-manager-widget/index.cjs +87 -29
- package/dist/components/consent-manager-widget/theme.cjs +3 -4
- package/dist/components/consent-manager-widget/types.cjs +3 -4
- package/dist/components/cookie-banner/__tests__/cookie-banner.e2e.test.cjs +189 -0
- package/dist/components/cookie-banner/__tests__/cookie-banner.e2e.test.d.ts +2 -0
- package/dist/components/cookie-banner/__tests__/cookie-banner.e2e.test.d.ts.map +1 -0
- package/dist/components/cookie-banner/__tests__/cookie-banner.e2e.test.js +183 -0
- package/dist/components/cookie-banner/__tests__/styles.spec.cjs +35 -20
- package/dist/components/cookie-banner/__tests__/styles.spec.js +28 -6
- package/dist/components/cookie-banner/atoms/overlay.cjs +18 -18
- package/dist/components/cookie-banner/atoms/overlay.d.ts.map +1 -1
- package/dist/components/cookie-banner/atoms/overlay.js +7 -5
- package/dist/components/cookie-banner/atoms/root.cjs +17 -17
- package/dist/components/cookie-banner/atoms/root.d.ts +14 -0
- package/dist/components/cookie-banner/atoms/root.d.ts.map +1 -1
- package/dist/components/cookie-banner/atoms/root.js +6 -4
- package/dist/components/cookie-banner/components.cjs +69 -28
- package/dist/components/cookie-banner/components.d.ts.map +1 -1
- package/dist/components/cookie-banner/components.js +14 -3
- package/dist/components/cookie-banner/cookie-banner.cjs +11 -9
- package/dist/components/cookie-banner/cookie-banner.d.ts +12 -0
- package/dist/components/cookie-banner/cookie-banner.d.ts.map +1 -1
- package/dist/components/cookie-banner/cookie-banner.js +3 -1
- package/dist/components/cookie-banner/cookie-banner.module.cjs +10 -10
- package/dist/components/cookie-banner/cookie-banner.module.js +2 -2
- package/dist/components/cookie-banner/cookie-banner_module.css +7 -7
- package/dist/components/cookie-banner/error-boundary.cjs +8 -9
- package/dist/components/cookie-banner/error-boundary.d.ts +1 -1
- package/dist/components/cookie-banner/error-boundary.js +0 -1
- package/dist/components/cookie-banner/index.cjs +65 -23
- package/dist/components/cookie-banner/theme.cjs +3 -4
- package/dist/components/shared/libs/polymorphic.cjs +3 -4
- package/dist/components/shared/libs/polymorphic.d.ts +1 -7
- package/dist/components/shared/libs/polymorphic.d.ts.map +1 -1
- package/dist/components/shared/libs/recursive-clone-children.cjs +8 -8
- package/dist/components/shared/primitives/box.cjs +10 -10
- package/dist/components/shared/primitives/box.d.ts.map +1 -1
- package/dist/components/shared/primitives/box.js +3 -3
- package/dist/components/shared/primitives/button.cjs +9 -9
- package/dist/components/shared/primitives/button.d.ts +2 -102
- package/dist/components/shared/primitives/button.d.ts.map +1 -1
- package/dist/components/shared/primitives/button.js +2 -2
- package/dist/components/shared/primitives/button.types.cjs +3 -4
- package/dist/components/shared/primitives/button.types.d.ts +1 -8
- package/dist/components/shared/primitives/button.types.d.ts.map +1 -1
- package/dist/components/shared/ui/accordion/accordion.cjs +25 -17
- package/dist/components/shared/ui/accordion/accordion.d.ts.map +1 -1
- package/dist/components/shared/ui/accordion/accordion.js +8 -8
- package/dist/components/shared/ui/accordion/accordion.module.cjs +11 -11
- package/dist/components/shared/ui/accordion/accordion.module.js +3 -3
- package/dist/components/shared/ui/accordion/accordion.types.cjs +3 -4
- package/dist/components/shared/ui/accordion/accordion.types.d.ts +0 -10
- package/dist/components/shared/ui/accordion/accordion.types.d.ts.map +1 -1
- package/dist/components/shared/ui/accordion/accordion_module.css +39 -19
- package/dist/components/shared/ui/accordion/index.cjs +7 -14
- package/dist/components/shared/ui/button/button.cjs +16 -16
- package/dist/components/shared/ui/button/button.d.ts +4 -204
- package/dist/components/shared/ui/button/button.d.ts.map +1 -1
- package/dist/components/shared/ui/button/button.module.cjs +10 -10
- package/dist/components/shared/ui/button/button.module.js +2 -2
- package/dist/components/shared/ui/button/button.types.cjs +3 -4
- package/dist/components/shared/ui/button/button_module.css +40 -19
- package/dist/components/shared/ui/button/index.cjs +7 -14
- package/dist/components/shared/ui/icon.cjs +8 -8
- package/dist/components/shared/ui/icon.d.ts.map +1 -1
- package/dist/components/shared/ui/logo.cjs +43 -54
- package/dist/components/shared/ui/logo.d.ts +3 -2
- package/dist/components/shared/ui/logo.d.ts.map +1 -1
- package/dist/components/shared/ui/logo.js +32 -46
- package/dist/components/shared/ui/switch/index.cjs +7 -14
- package/dist/components/shared/ui/switch/switch.cjs +11 -15
- package/dist/components/shared/ui/switch/switch.d.ts.map +1 -1
- package/dist/components/shared/ui/switch/switch.js +3 -3
- package/dist/components/shared/ui/switch/switch.module.cjs +10 -10
- package/dist/components/shared/ui/switch/switch.module.js +2 -2
- package/dist/components/shared/ui/switch/switch.types.cjs +3 -4
- package/dist/components/shared/ui/switch/switch_module.css +32 -10
- package/dist/context/consent-manager-context.cjs +9 -9
- package/dist/context/consent-manager-context.d.ts +29 -10
- package/dist/context/consent-manager-context.d.ts.map +1 -1
- package/dist/context/consent-manager-context.js +1 -1
- package/dist/context/theme-context.cjs +17 -9
- package/dist/context/theme-context.d.ts +16 -1
- package/dist/context/theme-context.d.ts.map +1 -1
- package/dist/context/theme-context.js +7 -1
- package/dist/hooks/__tests__/use-consent-manager.test.cjs +76 -0
- package/dist/hooks/__tests__/use-consent-manager.test.d.ts +2 -0
- package/dist/hooks/__tests__/use-consent-manager.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/use-consent-manager.test.js +70 -0
- package/dist/hooks/__tests__/use-styles.test.cjs +76 -0
- package/dist/hooks/__tests__/use-styles.test.d.ts +2 -0
- package/dist/hooks/__tests__/use-styles.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/use-styles.test.js +70 -0
- package/dist/hooks/__tests__/use-theme.test.cjs +86 -0
- package/dist/hooks/__tests__/use-theme.test.d.ts +2 -0
- package/dist/hooks/__tests__/use-theme.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/use-theme.test.js +80 -0
- package/dist/hooks/index.cjs +23 -21
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/use-color-scheme.cjs +66 -0
- package/dist/hooks/use-color-scheme.d.ts +16 -0
- package/dist/hooks/use-color-scheme.d.ts.map +1 -0
- package/dist/hooks/use-color-scheme.js +32 -0
- package/dist/hooks/use-consent-manager.cjs +13 -9
- package/dist/hooks/use-consent-manager.d.ts +13 -5
- package/dist/hooks/use-consent-manager.d.ts.map +1 -1
- package/dist/hooks/use-consent-manager.js +5 -1
- package/dist/hooks/use-focus-trap.cjs +76 -0
- package/dist/hooks/use-focus-trap.d.ts +15 -0
- package/dist/hooks/use-focus-trap.d.ts.map +1 -0
- package/dist/hooks/use-focus-trap.js +42 -0
- package/dist/hooks/use-scroll-lock.cjs +55 -0
- package/dist/hooks/use-scroll-lock.d.ts +26 -0
- package/dist/hooks/use-scroll-lock.d.ts.map +1 -0
- package/dist/hooks/use-scroll-lock.js +21 -0
- package/dist/{utils → hooks}/use-styles.cjs +13 -13
- package/dist/{utils → hooks}/use-styles.d.ts.map +1 -1
- package/dist/{utils → hooks}/use-styles.js +5 -5
- package/dist/hooks/use-theme.cjs +10 -12
- package/dist/hooks/use-theme.d.ts.map +1 -1
- package/dist/hooks/use-theme.js +2 -4
- package/dist/hooks/use-translations.cjs +8 -8
- package/dist/index.cjs +66 -30
- package/dist/index.d.ts +9 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -4
- package/dist/providers/__tests__/provider-basic.test.cjs +127 -0
- package/dist/providers/__tests__/provider-basic.test.d.ts +2 -0
- package/dist/providers/__tests__/provider-basic.test.d.ts.map +1 -0
- package/dist/providers/__tests__/provider-basic.test.js +121 -0
- package/dist/providers/__tests__/provider-context.test.cjs +139 -0
- package/dist/providers/__tests__/provider-context.test.d.ts +2 -0
- package/dist/providers/__tests__/provider-context.test.d.ts.map +1 -0
- package/dist/providers/__tests__/provider-context.test.js +133 -0
- package/dist/providers/__tests__/provider-errors.test.cjs +98 -0
- package/dist/providers/__tests__/provider-errors.test.d.ts +2 -0
- package/dist/providers/__tests__/provider-errors.test.d.ts.map +1 -0
- package/dist/providers/__tests__/provider-errors.test.js +92 -0
- package/dist/providers/__tests__/test-helpers.cjs +171 -0
- package/dist/providers/__tests__/test-helpers.d.ts +6 -0
- package/dist/providers/__tests__/test-helpers.d.ts.map +1 -0
- package/dist/providers/__tests__/test-helpers.js +134 -0
- package/dist/providers/consent-manager-provider.cjs +95 -38
- package/dist/providers/consent-manager-provider.d.ts +16 -2
- package/dist/providers/consent-manager-provider.d.ts.map +1 -1
- package/dist/providers/consent-manager-provider.js +87 -30
- package/dist/types/consent-manager.cjs +3 -4
- package/dist/types/consent-manager.d.ts +47 -72
- package/dist/types/consent-manager.d.ts.map +1 -1
- package/dist/types/theme/index.cjs +7 -14
- package/dist/types/theme/style-keys.cjs +3 -4
- package/dist/types/theme/style-types.cjs +3 -4
- package/dist/utils/cn.cjs +10 -16
- package/dist/utils/cn.d.ts +1 -5
- package/dist/utils/cn.d.ts.map +1 -1
- package/dist/utils/cn.js +1 -2
- package/dist/utils/merge-styles.cjs +8 -8
- package/dist/utils/test-helpers.cjs +70 -0
- package/dist/utils/test-helpers.d.ts +30 -0
- package/dist/utils/test-helpers.d.ts.map +1 -0
- package/dist/utils/test-helpers.js +33 -0
- package/dist/utils/translations.cjs +12 -8
- package/package.json +13 -12
- package/dist/components/consent-manager-dialog/__tests__/utils.cjs +0 -68
- package/dist/components/consent-manager-dialog/__tests__/utils.d.ts +0 -13
- package/dist/components/consent-manager-dialog/__tests__/utils.d.ts.map +0 -1
- package/dist/components/consent-manager-dialog/__tests__/utils.js +0 -34
- package/dist/components/consent-manager-widget/__tests__/utils.cjs +0 -68
- package/dist/components/consent-manager-widget/__tests__/utils.d.ts +0 -13
- package/dist/components/consent-manager-widget/__tests__/utils.d.ts.map +0 -1
- package/dist/components/consent-manager-widget/__tests__/utils.js +0 -34
- package/dist/components/consent-manager-widget/atoms/logo.cjs +0 -101
- package/dist/components/consent-manager-widget/atoms/logo.d.ts +0 -8
- package/dist/components/consent-manager-widget/atoms/logo.d.ts.map +0 -1
- package/dist/components/consent-manager-widget/atoms/logo.js +0 -67
- package/dist/components/cookie-banner/__tests__/utils.cjs +0 -67
- package/dist/components/cookie-banner/__tests__/utils.d.ts +0 -13
- package/dist/components/cookie-banner/__tests__/utils.d.ts.map +0 -1
- package/dist/components/cookie-banner/__tests__/utils.js +0 -33
- /package/dist/{utils → hooks}/use-styles.d.ts +0 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__ from "react/jsx-runtime";
|
|
2
|
+
import * as __WEBPACK_EXTERNAL_MODULE_vitest__ from "vitest";
|
|
3
|
+
import * as __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__ from "vitest-browser-react";
|
|
4
|
+
import * as __WEBPACK_EXTERNAL_MODULE__consent_manager_dialog_consent_manager_dialog_js_9cbc4f9a__ from "../../consent-manager-dialog/consent-manager-dialog.js";
|
|
5
|
+
import * as __WEBPACK_EXTERNAL_MODULE__providers_consent_manager_provider_js_47c65d87__ from "../../../providers/consent-manager-provider.js";
|
|
6
|
+
import * as __WEBPACK_EXTERNAL_MODULE__cookie_banner_js_0a2d98b7__ from "../cookie-banner.js";
|
|
7
|
+
let mockShowPopup = true;
|
|
8
|
+
let mockIsPrivacyDialogOpen = false;
|
|
9
|
+
__WEBPACK_EXTERNAL_MODULE_vitest__.vi.mock('~/hooks/use-consent-manager', async (importOriginal)=>{
|
|
10
|
+
const realModule = await importOriginal();
|
|
11
|
+
return {
|
|
12
|
+
useConsentManager: ()=>({
|
|
13
|
+
...realModule.useConsentManager(),
|
|
14
|
+
showPopup: mockShowPopup,
|
|
15
|
+
isPrivacyDialogOpen: mockIsPrivacyDialogOpen,
|
|
16
|
+
setShowPopup: (value)=>{
|
|
17
|
+
mockShowPopup = value;
|
|
18
|
+
},
|
|
19
|
+
setIsPrivacyDialogOpen: (value)=>{
|
|
20
|
+
mockIsPrivacyDialogOpen = value;
|
|
21
|
+
}
|
|
22
|
+
})
|
|
23
|
+
};
|
|
24
|
+
});
|
|
25
|
+
const localStorageMock = (()=>{
|
|
26
|
+
let store = {};
|
|
27
|
+
return {
|
|
28
|
+
getItem: (key)=>store[key] || null,
|
|
29
|
+
setItem: (key, value)=>{
|
|
30
|
+
store[key] = value.toString();
|
|
31
|
+
},
|
|
32
|
+
removeItem: (key)=>{
|
|
33
|
+
delete store[key];
|
|
34
|
+
},
|
|
35
|
+
clear: ()=>{
|
|
36
|
+
store = {};
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
})();
|
|
40
|
+
Object.defineProperty(window, 'localStorage', {
|
|
41
|
+
value: localStorageMock
|
|
42
|
+
});
|
|
43
|
+
const defaultOptions = {
|
|
44
|
+
mode: 'offline'
|
|
45
|
+
};
|
|
46
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.describe)('CookieBanner E2E Tests', ()=>{
|
|
47
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.beforeEach)(()=>{
|
|
48
|
+
window.localStorage.clear();
|
|
49
|
+
mockShowPopup = true;
|
|
50
|
+
__WEBPACK_EXTERNAL_MODULE_vitest__.vi.clearAllMocks();
|
|
51
|
+
});
|
|
52
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.test)('should show cookie banner on first visit', async ()=>{
|
|
53
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__.render)(/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE__providers_consent_manager_provider_js_47c65d87__.ConsentManagerProvider, {
|
|
54
|
+
options: defaultOptions,
|
|
55
|
+
children: [
|
|
56
|
+
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__cookie_banner_js_0a2d98b7__.CookieBanner, {}),
|
|
57
|
+
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__consent_manager_dialog_consent_manager_dialog_js_9cbc4f9a__.ConsentManagerDialog, {})
|
|
58
|
+
]
|
|
59
|
+
}));
|
|
60
|
+
const element = document.body.querySelector('[data-testid="cookie-banner-root"]');
|
|
61
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(element).toBeInTheDocument();
|
|
62
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(mockShowPopup).toBe(true);
|
|
63
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.querySelector('[data-testid="cookie-banner-title"]')).toBeInTheDocument();
|
|
64
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.querySelector('[data-testid="cookie-banner-description"]')).toBeInTheDocument();
|
|
65
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.querySelector('[data-testid="cookie-banner-reject-button"]')).toBeInTheDocument();
|
|
66
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.querySelector('[data-testid="cookie-banner-customize-button"]')).toBeInTheDocument();
|
|
67
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.querySelector('[data-testid="cookie-banner-accept-button"]')).toBeInTheDocument();
|
|
68
|
+
});
|
|
69
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.test)('should accept all cookies when clicking Accept All', async ()=>{
|
|
70
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__.render)(/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE__providers_consent_manager_provider_js_47c65d87__.ConsentManagerProvider, {
|
|
71
|
+
options: defaultOptions,
|
|
72
|
+
children: [
|
|
73
|
+
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__cookie_banner_js_0a2d98b7__.CookieBanner, {}),
|
|
74
|
+
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__consent_manager_dialog_consent_manager_dialog_js_9cbc4f9a__.ConsentManagerDialog, {})
|
|
75
|
+
]
|
|
76
|
+
}));
|
|
77
|
+
const acceptButton = document.querySelector('[data-testid="cookie-banner-accept-button"]');
|
|
78
|
+
acceptButton?.dispatchEvent(new MouseEvent('click', {
|
|
79
|
+
bubbles: true
|
|
80
|
+
}));
|
|
81
|
+
await new Promise((resolve)=>setTimeout(resolve, 100));
|
|
82
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(mockShowPopup).toBe(false);
|
|
83
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.querySelector('[data-testid="cookie-banner-root"]')).not.toBeInTheDocument();
|
|
84
|
+
const consent = JSON.parse(window.localStorage.getItem('privacy-consent-storage') || '{}');
|
|
85
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(consent.consents).toBeTruthy();
|
|
86
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(consent.consentInfo.type).toBe('all');
|
|
87
|
+
});
|
|
88
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.test)('should reject non-essential cookies when clicking Reject All', async ()=>{
|
|
89
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__.render)(/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE__providers_consent_manager_provider_js_47c65d87__.ConsentManagerProvider, {
|
|
90
|
+
options: defaultOptions,
|
|
91
|
+
children: [
|
|
92
|
+
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__cookie_banner_js_0a2d98b7__.CookieBanner, {}),
|
|
93
|
+
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__consent_manager_dialog_consent_manager_dialog_js_9cbc4f9a__.ConsentManagerDialog, {})
|
|
94
|
+
]
|
|
95
|
+
}));
|
|
96
|
+
const rejectButton = document.querySelector('[data-testid="cookie-banner-reject-button"]');
|
|
97
|
+
rejectButton?.dispatchEvent(new MouseEvent('click', {
|
|
98
|
+
bubbles: true
|
|
99
|
+
}));
|
|
100
|
+
await new Promise((resolve)=>setTimeout(resolve, 100));
|
|
101
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(mockShowPopup).toBe(false);
|
|
102
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.querySelector('[data-testid="cookie-banner-root"]')).not.toBeInTheDocument();
|
|
103
|
+
const consent = JSON.parse(window.localStorage.getItem('privacy-consent-storage') || '{}');
|
|
104
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(consent.consents).toBeTruthy();
|
|
105
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(consent.consentInfo.type).toBe('necessary');
|
|
106
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(consent.consents.necessary).toBe(true);
|
|
107
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(consent.consents.experience).toBe(false);
|
|
108
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(consent.consents.functionality).toBe(false);
|
|
109
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(consent.consents.marketing).toBe(false);
|
|
110
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(consent.consents.measurement).toBe(false);
|
|
111
|
+
});
|
|
112
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.test)('should open consent manager dialog when clicking Customize', async ()=>{
|
|
113
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__.render)(/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE__providers_consent_manager_provider_js_47c65d87__.ConsentManagerProvider, {
|
|
114
|
+
options: defaultOptions,
|
|
115
|
+
children: [
|
|
116
|
+
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__cookie_banner_js_0a2d98b7__.CookieBanner, {}),
|
|
117
|
+
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__consent_manager_dialog_consent_manager_dialog_js_9cbc4f9a__.ConsentManagerDialog, {})
|
|
118
|
+
]
|
|
119
|
+
}));
|
|
120
|
+
const customizeButton = document.querySelector('[data-testid="cookie-banner-customize-button"]');
|
|
121
|
+
customizeButton?.dispatchEvent(new MouseEvent('click', {
|
|
122
|
+
bubbles: true
|
|
123
|
+
}));
|
|
124
|
+
await new Promise((resolve)=>setTimeout(resolve, 100));
|
|
125
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(mockShowPopup).toBe(false);
|
|
126
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.querySelector('[data-testid="cookie-banner-root"]')).not.toBeInTheDocument();
|
|
127
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(mockIsPrivacyDialogOpen).toBe(true);
|
|
128
|
+
const dialog = document.querySelector('[data-testid="consent-manager-dialog-root"]');
|
|
129
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(dialog).toBeInTheDocument();
|
|
130
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.querySelector('[data-testid="consent-manager-widget-switch-necessary"]')).toBeInTheDocument();
|
|
131
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.querySelector('[data-testid="consent-manager-widget-switch-marketing"]')).toBeInTheDocument();
|
|
132
|
+
const marketingSwitch = document.querySelector('[data-testid="consent-manager-widget-switch-marketing"]');
|
|
133
|
+
marketingSwitch?.dispatchEvent(new MouseEvent('click', {
|
|
134
|
+
bubbles: true
|
|
135
|
+
}));
|
|
136
|
+
const saveButton = document.querySelector('[data-testid="consent-manager-widget-footer-save-button"]');
|
|
137
|
+
saveButton?.dispatchEvent(new MouseEvent('click', {
|
|
138
|
+
bubbles: true
|
|
139
|
+
}));
|
|
140
|
+
await new Promise((resolve)=>setTimeout(resolve, 100));
|
|
141
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(mockIsPrivacyDialogOpen).toBe(false);
|
|
142
|
+
const consent = JSON.parse(window.localStorage.getItem('privacy-consent-storage') || '{}');
|
|
143
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(consent.consents).toBeTruthy();
|
|
144
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(consent.consentInfo.type).toBe('custom');
|
|
145
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(consent.consents.marketing).toBe(true);
|
|
146
|
+
});
|
|
147
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.test)('should be keyboard accessible', async ()=>{
|
|
148
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__.render)(/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE__providers_consent_manager_provider_js_47c65d87__.ConsentManagerProvider, {
|
|
149
|
+
options: defaultOptions,
|
|
150
|
+
children: [
|
|
151
|
+
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__cookie_banner_js_0a2d98b7__.CookieBanner, {}),
|
|
152
|
+
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__consent_manager_dialog_consent_manager_dialog_js_9cbc4f9a__.ConsentManagerDialog, {})
|
|
153
|
+
]
|
|
154
|
+
}));
|
|
155
|
+
const rejectButton = document.querySelector('[data-testid="cookie-banner-reject-button"]');
|
|
156
|
+
const customizeButton = document.querySelector('[data-testid="cookie-banner-customize-button"]');
|
|
157
|
+
const acceptButton = document.querySelector('[data-testid="cookie-banner-accept-button"]');
|
|
158
|
+
rejectButton.focus();
|
|
159
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.activeElement).toBe(rejectButton);
|
|
160
|
+
customizeButton.focus();
|
|
161
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.activeElement).toBe(customizeButton);
|
|
162
|
+
acceptButton.focus();
|
|
163
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.activeElement).toBe(acceptButton);
|
|
164
|
+
});
|
|
165
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.test)('should handle scroll lock properly', async ()=>{
|
|
166
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest_browser_react_6a851916__.render)(/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE__providers_consent_manager_provider_js_47c65d87__.ConsentManagerProvider, {
|
|
167
|
+
options: defaultOptions,
|
|
168
|
+
children: [
|
|
169
|
+
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__cookie_banner_js_0a2d98b7__.CookieBanner, {
|
|
170
|
+
scrollLock: true
|
|
171
|
+
}),
|
|
172
|
+
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__consent_manager_dialog_consent_manager_dialog_js_9cbc4f9a__.ConsentManagerDialog, {})
|
|
173
|
+
]
|
|
174
|
+
}));
|
|
175
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.querySelector('[data-testid="cookie-banner-overlay"]')).toBeInTheDocument();
|
|
176
|
+
const acceptButton = document.querySelector('[data-testid="cookie-banner-accept-button"]');
|
|
177
|
+
acceptButton?.dispatchEvent(new MouseEvent('click', {
|
|
178
|
+
bubbles: true
|
|
179
|
+
}));
|
|
180
|
+
await new Promise((resolve)=>setTimeout(resolve, 100));
|
|
181
|
+
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.expect)(document.querySelector('[data-testid="cookie-banner-overlay"]')).not.toBeInTheDocument();
|
|
182
|
+
});
|
|
183
|
+
});
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.n =
|
|
5
|
-
var getter = module && module.__esModule ?
|
|
6
|
-
return module['default'];
|
|
7
|
-
} : function() {
|
|
8
|
-
return module;
|
|
9
|
-
};
|
|
4
|
+
__webpack_require__.n = (module)=>{
|
|
5
|
+
var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
|
|
10
6
|
__webpack_require__.d(getter, {
|
|
11
7
|
a: getter
|
|
12
8
|
});
|
|
@@ -14,7 +10,7 @@ var __webpack_require__ = {};
|
|
|
14
10
|
};
|
|
15
11
|
})();
|
|
16
12
|
(()=>{
|
|
17
|
-
__webpack_require__.d =
|
|
13
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
18
14
|
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
19
15
|
enumerable: true,
|
|
20
16
|
get: definition[key]
|
|
@@ -22,16 +18,31 @@ var __webpack_require__ = {};
|
|
|
22
18
|
};
|
|
23
19
|
})();
|
|
24
20
|
(()=>{
|
|
25
|
-
__webpack_require__.o =
|
|
26
|
-
return Object.prototype.hasOwnProperty.call(obj, prop);
|
|
27
|
-
};
|
|
21
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
28
22
|
})();
|
|
29
23
|
var __webpack_exports__ = {};
|
|
30
24
|
const jsx_runtime_namespaceObject = require("react/jsx-runtime");
|
|
31
25
|
const external_vitest_namespaceObject = require("vitest");
|
|
32
26
|
const external_cookie_banner_cjs_namespaceObject = require("../cookie-banner.cjs");
|
|
33
|
-
const
|
|
34
|
-
var
|
|
27
|
+
const test_helpers_cjs_namespaceObject = require("../../../utils/test-helpers.cjs");
|
|
28
|
+
var test_helpers_cjs_default = /*#__PURE__*/ __webpack_require__.n(test_helpers_cjs_namespaceObject);
|
|
29
|
+
external_vitest_namespaceObject.vi.mock('~/hooks/use-consent-manager', ()=>({
|
|
30
|
+
useConsentManager: ()=>({
|
|
31
|
+
showPopup: true,
|
|
32
|
+
...external_vitest_namespaceObject.vi.fn()
|
|
33
|
+
})
|
|
34
|
+
}));
|
|
35
|
+
external_vitest_namespaceObject.vi.mock('~/hooks/use-translations', ()=>({
|
|
36
|
+
useTranslations: ()=>({
|
|
37
|
+
cookieBanner: {
|
|
38
|
+
title: 'Cookie Settings',
|
|
39
|
+
description: 'We use cookies to enhance your experience',
|
|
40
|
+
acceptAll: 'Accept All',
|
|
41
|
+
rejectAll: 'Reject All',
|
|
42
|
+
customize: 'Customize'
|
|
43
|
+
}
|
|
44
|
+
})
|
|
45
|
+
}));
|
|
35
46
|
const ALL_COMPONENTS = [
|
|
36
47
|
{
|
|
37
48
|
testId: 'cookie-banner-root',
|
|
@@ -91,12 +102,13 @@ const ALL_COMPONENTS = [
|
|
|
91
102
|
];
|
|
92
103
|
(0, external_vitest_namespaceObject.test)('Theme prop applies string classnames to all components', async ()=>{
|
|
93
104
|
const test = /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_cookie_banner_cjs_namespaceObject.CookieBanner, {
|
|
105
|
+
scrollLock: true,
|
|
94
106
|
theme: ALL_COMPONENTS.reduce((acc, { themeKey, styles })=>{
|
|
95
107
|
acc[themeKey] = styles;
|
|
96
108
|
return acc;
|
|
97
109
|
}, {})
|
|
98
110
|
});
|
|
99
|
-
await
|
|
111
|
+
await test_helpers_cjs_default()({
|
|
100
112
|
component: test,
|
|
101
113
|
testCases: ALL_COMPONENTS.map(({ testId, styles })=>({
|
|
102
114
|
testId,
|
|
@@ -117,6 +129,7 @@ const ALL_COMPONENTS = [
|
|
|
117
129
|
style
|
|
118
130
|
}));
|
|
119
131
|
const test = /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_cookie_banner_cjs_namespaceObject.CookieBanner, {
|
|
132
|
+
scrollLock: true,
|
|
120
133
|
theme: testCases.reduce((acc, { themeKey, className, style })=>{
|
|
121
134
|
acc[themeKey] = {
|
|
122
135
|
className,
|
|
@@ -125,7 +138,7 @@ const ALL_COMPONENTS = [
|
|
|
125
138
|
return acc;
|
|
126
139
|
}, {})
|
|
127
140
|
});
|
|
128
|
-
await
|
|
141
|
+
await test_helpers_cjs_default()({
|
|
129
142
|
component: test,
|
|
130
143
|
testCases: testCases.map(({ testId, className, style })=>({
|
|
131
144
|
testId,
|
|
@@ -138,13 +151,14 @@ const ALL_COMPONENTS = [
|
|
|
138
151
|
});
|
|
139
152
|
(0, external_vitest_namespaceObject.test)('No style prop removes default styles but keeps custom classNames', async ()=>{
|
|
140
153
|
const test = /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_cookie_banner_cjs_namespaceObject.CookieBanner, {
|
|
154
|
+
scrollLock: true,
|
|
141
155
|
noStyle: true,
|
|
142
156
|
theme: ALL_COMPONENTS.reduce((acc, { themeKey, styles })=>{
|
|
143
157
|
acc[themeKey] = styles;
|
|
144
158
|
return acc;
|
|
145
159
|
}, {})
|
|
146
160
|
});
|
|
147
|
-
await
|
|
161
|
+
await test_helpers_cjs_default()({
|
|
148
162
|
component: test,
|
|
149
163
|
testCases: ALL_COMPONENTS.map(({ testId, styles })=>({
|
|
150
164
|
testId,
|
|
@@ -165,9 +179,10 @@ const ALL_COMPONENTS = [
|
|
|
165
179
|
'banner.header.title': 'custom-title'
|
|
166
180
|
};
|
|
167
181
|
const test = /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_cookie_banner_cjs_namespaceObject.CookieBanner, {
|
|
182
|
+
scrollLock: true,
|
|
168
183
|
theme: mixedTheme
|
|
169
184
|
});
|
|
170
|
-
await
|
|
185
|
+
await test_helpers_cjs_default()({
|
|
171
186
|
component: test,
|
|
172
187
|
testCases: [
|
|
173
188
|
{
|
|
@@ -203,9 +218,10 @@ const ALL_COMPONENTS = [
|
|
|
203
218
|
}
|
|
204
219
|
};
|
|
205
220
|
const test = /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_cookie_banner_cjs_namespaceObject.CookieBanner, {
|
|
221
|
+
scrollLock: true,
|
|
206
222
|
theme: edgeCaseTheme
|
|
207
223
|
});
|
|
208
|
-
await
|
|
224
|
+
await test_helpers_cjs_default()({
|
|
209
225
|
component: test,
|
|
210
226
|
testCases: [
|
|
211
227
|
{
|
|
@@ -229,8 +245,7 @@ const ALL_COMPONENTS = [
|
|
|
229
245
|
]
|
|
230
246
|
});
|
|
231
247
|
});
|
|
232
|
-
var
|
|
233
|
-
|
|
234
|
-
if (__webpack_exports__.__esModule) Object.defineProperty(__webpack_export_target__, '__esModule', {
|
|
248
|
+
for(var __webpack_i__ in __webpack_exports__)exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
|
|
249
|
+
Object.defineProperty(exports, '__esModule', {
|
|
235
250
|
value: true
|
|
236
251
|
});
|
|
@@ -1,7 +1,24 @@
|
|
|
1
1
|
import * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__ from "react/jsx-runtime";
|
|
2
2
|
import * as __WEBPACK_EXTERNAL_MODULE_vitest__ from "vitest";
|
|
3
3
|
import * as __WEBPACK_EXTERNAL_MODULE__cookie_banner_js_0a2d98b7__ from "../cookie-banner.js";
|
|
4
|
-
import * as
|
|
4
|
+
import * as __WEBPACK_EXTERNAL_MODULE__utils_test_helpers_js_1e3d26b6__ from "../../../utils/test-helpers.js";
|
|
5
|
+
__WEBPACK_EXTERNAL_MODULE_vitest__.vi.mock('~/hooks/use-consent-manager', ()=>({
|
|
6
|
+
useConsentManager: ()=>({
|
|
7
|
+
showPopup: true,
|
|
8
|
+
...__WEBPACK_EXTERNAL_MODULE_vitest__.vi.fn()
|
|
9
|
+
})
|
|
10
|
+
}));
|
|
11
|
+
__WEBPACK_EXTERNAL_MODULE_vitest__.vi.mock('~/hooks/use-translations', ()=>({
|
|
12
|
+
useTranslations: ()=>({
|
|
13
|
+
cookieBanner: {
|
|
14
|
+
title: 'Cookie Settings',
|
|
15
|
+
description: 'We use cookies to enhance your experience',
|
|
16
|
+
acceptAll: 'Accept All',
|
|
17
|
+
rejectAll: 'Reject All',
|
|
18
|
+
customize: 'Customize'
|
|
19
|
+
}
|
|
20
|
+
})
|
|
21
|
+
}));
|
|
5
22
|
const ALL_COMPONENTS = [
|
|
6
23
|
{
|
|
7
24
|
testId: 'cookie-banner-root',
|
|
@@ -61,12 +78,13 @@ const ALL_COMPONENTS = [
|
|
|
61
78
|
];
|
|
62
79
|
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.test)('Theme prop applies string classnames to all components', async ()=>{
|
|
63
80
|
const test = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__cookie_banner_js_0a2d98b7__.CookieBanner, {
|
|
81
|
+
scrollLock: true,
|
|
64
82
|
theme: ALL_COMPONENTS.reduce((acc, { themeKey, styles })=>{
|
|
65
83
|
acc[themeKey] = styles;
|
|
66
84
|
return acc;
|
|
67
85
|
}, {})
|
|
68
86
|
});
|
|
69
|
-
await (0,
|
|
87
|
+
await (0, __WEBPACK_EXTERNAL_MODULE__utils_test_helpers_js_1e3d26b6__["default"])({
|
|
70
88
|
component: test,
|
|
71
89
|
testCases: ALL_COMPONENTS.map(({ testId, styles })=>({
|
|
72
90
|
testId,
|
|
@@ -87,6 +105,7 @@ const ALL_COMPONENTS = [
|
|
|
87
105
|
style
|
|
88
106
|
}));
|
|
89
107
|
const test = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__cookie_banner_js_0a2d98b7__.CookieBanner, {
|
|
108
|
+
scrollLock: true,
|
|
90
109
|
theme: testCases.reduce((acc, { themeKey, className, style })=>{
|
|
91
110
|
acc[themeKey] = {
|
|
92
111
|
className,
|
|
@@ -95,7 +114,7 @@ const ALL_COMPONENTS = [
|
|
|
95
114
|
return acc;
|
|
96
115
|
}, {})
|
|
97
116
|
});
|
|
98
|
-
await (0,
|
|
117
|
+
await (0, __WEBPACK_EXTERNAL_MODULE__utils_test_helpers_js_1e3d26b6__["default"])({
|
|
99
118
|
component: test,
|
|
100
119
|
testCases: testCases.map(({ testId, className, style })=>({
|
|
101
120
|
testId,
|
|
@@ -108,13 +127,14 @@ const ALL_COMPONENTS = [
|
|
|
108
127
|
});
|
|
109
128
|
(0, __WEBPACK_EXTERNAL_MODULE_vitest__.test)('No style prop removes default styles but keeps custom classNames', async ()=>{
|
|
110
129
|
const test = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__cookie_banner_js_0a2d98b7__.CookieBanner, {
|
|
130
|
+
scrollLock: true,
|
|
111
131
|
noStyle: true,
|
|
112
132
|
theme: ALL_COMPONENTS.reduce((acc, { themeKey, styles })=>{
|
|
113
133
|
acc[themeKey] = styles;
|
|
114
134
|
return acc;
|
|
115
135
|
}, {})
|
|
116
136
|
});
|
|
117
|
-
await (0,
|
|
137
|
+
await (0, __WEBPACK_EXTERNAL_MODULE__utils_test_helpers_js_1e3d26b6__["default"])({
|
|
118
138
|
component: test,
|
|
119
139
|
testCases: ALL_COMPONENTS.map(({ testId, styles })=>({
|
|
120
140
|
testId,
|
|
@@ -135,9 +155,10 @@ const ALL_COMPONENTS = [
|
|
|
135
155
|
'banner.header.title': 'custom-title'
|
|
136
156
|
};
|
|
137
157
|
const test = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__cookie_banner_js_0a2d98b7__.CookieBanner, {
|
|
158
|
+
scrollLock: true,
|
|
138
159
|
theme: mixedTheme
|
|
139
160
|
});
|
|
140
|
-
await (0,
|
|
161
|
+
await (0, __WEBPACK_EXTERNAL_MODULE__utils_test_helpers_js_1e3d26b6__["default"])({
|
|
141
162
|
component: test,
|
|
142
163
|
testCases: [
|
|
143
164
|
{
|
|
@@ -173,9 +194,10 @@ const ALL_COMPONENTS = [
|
|
|
173
194
|
}
|
|
174
195
|
};
|
|
175
196
|
const test = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__cookie_banner_js_0a2d98b7__.CookieBanner, {
|
|
197
|
+
scrollLock: true,
|
|
176
198
|
theme: edgeCaseTheme
|
|
177
199
|
});
|
|
178
|
-
await (0,
|
|
200
|
+
await (0, __WEBPACK_EXTERNAL_MODULE__utils_test_helpers_js_1e3d26b6__["default"])({
|
|
179
201
|
component: test,
|
|
180
202
|
testCases: [
|
|
181
203
|
{
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.n =
|
|
5
|
-
var getter = module && module.__esModule ?
|
|
6
|
-
return module['default'];
|
|
7
|
-
} : function() {
|
|
8
|
-
return module;
|
|
9
|
-
};
|
|
4
|
+
__webpack_require__.n = (module)=>{
|
|
5
|
+
var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
|
|
10
6
|
__webpack_require__.d(getter, {
|
|
11
7
|
a: getter
|
|
12
8
|
});
|
|
@@ -14,7 +10,7 @@ var __webpack_require__ = {};
|
|
|
14
10
|
};
|
|
15
11
|
})();
|
|
16
12
|
(()=>{
|
|
17
|
-
__webpack_require__.d =
|
|
13
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
18
14
|
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
19
15
|
enumerable: true,
|
|
20
16
|
get: definition[key]
|
|
@@ -22,12 +18,10 @@ var __webpack_require__ = {};
|
|
|
22
18
|
};
|
|
23
19
|
})();
|
|
24
20
|
(()=>{
|
|
25
|
-
__webpack_require__.o =
|
|
26
|
-
return Object.prototype.hasOwnProperty.call(obj, prop);
|
|
27
|
-
};
|
|
21
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
28
22
|
})();
|
|
29
23
|
(()=>{
|
|
30
|
-
__webpack_require__.r =
|
|
24
|
+
__webpack_require__.r = (exports1)=>{
|
|
31
25
|
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
32
26
|
value: 'Module'
|
|
33
27
|
});
|
|
@@ -45,19 +39,21 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
45
39
|
const jsx_runtime_namespaceObject = require("react/jsx-runtime");
|
|
46
40
|
const react_namespaceObject = require("motion/react");
|
|
47
41
|
const external_react_namespaceObject = require("react");
|
|
48
|
-
const index_cjs_namespaceObject = require("../../../hooks/index.cjs");
|
|
49
42
|
const use_consent_manager_cjs_namespaceObject = require("../../../hooks/use-consent-manager.cjs");
|
|
50
|
-
const
|
|
43
|
+
const use_scroll_lock_cjs_namespaceObject = require("../../../hooks/use-scroll-lock.cjs");
|
|
44
|
+
const use_styles_cjs_namespaceObject = require("../../../hooks/use-styles.cjs");
|
|
45
|
+
const use_theme_cjs_namespaceObject = require("../../../hooks/use-theme.cjs");
|
|
51
46
|
const external_cookie_banner_module_cjs_namespaceObject = require("../cookie-banner.module.cjs");
|
|
52
47
|
var external_cookie_banner_module_cjs_default = /*#__PURE__*/ __webpack_require__.n(external_cookie_banner_module_cjs_namespaceObject);
|
|
53
48
|
const CookieBannerOverlay = /*#__PURE__*/ (0, external_react_namespaceObject.forwardRef)(({ className, style, noStyle, asChild, ...props }, ref)=>{
|
|
54
49
|
const { showPopup } = (0, use_consent_manager_cjs_namespaceObject.useConsentManager)();
|
|
55
|
-
const { disableAnimation, noStyle: contextNoStyle } = (0,
|
|
50
|
+
const { disableAnimation, noStyle: contextNoStyle, scrollLock } = (0, use_theme_cjs_namespaceObject.useTheme)();
|
|
56
51
|
const theme = (0, use_styles_cjs_namespaceObject.useStyles)('banner.overlay', {
|
|
57
52
|
baseClassName: !(contextNoStyle || noStyle) && external_cookie_banner_module_cjs_default().overlay,
|
|
58
53
|
noStyle
|
|
59
54
|
});
|
|
60
|
-
|
|
55
|
+
(0, use_scroll_lock_cjs_namespaceObject.useScrollLock)(!!(showPopup && scrollLock));
|
|
56
|
+
return showPopup && scrollLock ? disableAnimation ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
|
|
61
57
|
ref: ref,
|
|
62
58
|
...props,
|
|
63
59
|
...theme,
|
|
@@ -80,8 +76,12 @@ const CookieBannerOverlay = /*#__PURE__*/ (0, external_react_namespaceObject.for
|
|
|
80
76
|
}) : null;
|
|
81
77
|
});
|
|
82
78
|
const Overlay = CookieBannerOverlay;
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
79
|
+
exports.CookieBannerOverlay = __webpack_exports__.CookieBannerOverlay;
|
|
80
|
+
exports.Overlay = __webpack_exports__.Overlay;
|
|
81
|
+
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
|
|
82
|
+
"CookieBannerOverlay",
|
|
83
|
+
"Overlay"
|
|
84
|
+
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
|
|
85
|
+
Object.defineProperty(exports, '__esModule', {
|
|
86
86
|
value: true
|
|
87
87
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../../../src/components/cookie-banner/atoms/overlay.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,KAAK,cAAc,EAAc,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../../../src/components/cookie-banner/atoms/overlay.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,KAAK,cAAc,EAAc,MAAM,OAAO,CAAC;AASxD;;;;;;;;GAQG;AACH,UAAU,YAAa,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC5D;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,mBAAmB,yGAqCxB,CAAC;AAEF,QAAA,MAAM,OAAO,yGAAsB,CAAC;AAEpC,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
import * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__ from "react/jsx-runtime";
|
|
2
2
|
import * as __WEBPACK_EXTERNAL_MODULE_motion_react_9decfa63__ from "motion/react";
|
|
3
3
|
import * as __WEBPACK_EXTERNAL_MODULE_react__ from "react";
|
|
4
|
-
import * as __WEBPACK_EXTERNAL_MODULE__hooks_index_js_d5d998a4__ from "../../../hooks/index.js";
|
|
5
4
|
import * as __WEBPACK_EXTERNAL_MODULE__hooks_use_consent_manager_js_8a30bd26__ from "../../../hooks/use-consent-manager.js";
|
|
6
|
-
import * as
|
|
5
|
+
import * as __WEBPACK_EXTERNAL_MODULE__hooks_use_scroll_lock_js_ebd470d2__ from "../../../hooks/use-scroll-lock.js";
|
|
6
|
+
import * as __WEBPACK_EXTERNAL_MODULE__hooks_use_styles_js_ffc85ca5__ from "../../../hooks/use-styles.js";
|
|
7
|
+
import * as __WEBPACK_EXTERNAL_MODULE__hooks_use_theme_js_3abff3d7__ from "../../../hooks/use-theme.js";
|
|
7
8
|
import * as __WEBPACK_EXTERNAL_MODULE__cookie_banner_module_js_af314f6d__ from "../cookie-banner.module.js";
|
|
8
9
|
const CookieBannerOverlay = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.forwardRef)(({ className, style, noStyle, asChild, ...props }, ref)=>{
|
|
9
10
|
const { showPopup } = (0, __WEBPACK_EXTERNAL_MODULE__hooks_use_consent_manager_js_8a30bd26__.useConsentManager)();
|
|
10
|
-
const { disableAnimation, noStyle: contextNoStyle } = (0,
|
|
11
|
-
const theme = (0,
|
|
11
|
+
const { disableAnimation, noStyle: contextNoStyle, scrollLock } = (0, __WEBPACK_EXTERNAL_MODULE__hooks_use_theme_js_3abff3d7__.useTheme)();
|
|
12
|
+
const theme = (0, __WEBPACK_EXTERNAL_MODULE__hooks_use_styles_js_ffc85ca5__.useStyles)('banner.overlay', {
|
|
12
13
|
baseClassName: !(contextNoStyle || noStyle) && __WEBPACK_EXTERNAL_MODULE__cookie_banner_module_js_af314f6d__["default"].overlay,
|
|
13
14
|
noStyle
|
|
14
15
|
});
|
|
15
|
-
|
|
16
|
+
(0, __WEBPACK_EXTERNAL_MODULE__hooks_use_scroll_lock_js_ebd470d2__.useScrollLock)(!!(showPopup && scrollLock));
|
|
17
|
+
return showPopup && scrollLock ? disableAnimation ? /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
16
18
|
ref: ref,
|
|
17
19
|
...props,
|
|
18
20
|
...theme,
|
|
@@ -2,12 +2,8 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
var __webpack_require__ = {};
|
|
4
4
|
(()=>{
|
|
5
|
-
__webpack_require__.n =
|
|
6
|
-
var getter = module && module.__esModule ?
|
|
7
|
-
return module['default'];
|
|
8
|
-
} : function() {
|
|
9
|
-
return module;
|
|
10
|
-
};
|
|
5
|
+
__webpack_require__.n = (module)=>{
|
|
6
|
+
var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
|
|
11
7
|
__webpack_require__.d(getter, {
|
|
12
8
|
a: getter
|
|
13
9
|
});
|
|
@@ -15,7 +11,7 @@ var __webpack_require__ = {};
|
|
|
15
11
|
};
|
|
16
12
|
})();
|
|
17
13
|
(()=>{
|
|
18
|
-
__webpack_require__.d =
|
|
14
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
19
15
|
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
20
16
|
enumerable: true,
|
|
21
17
|
get: definition[key]
|
|
@@ -23,12 +19,10 @@ var __webpack_require__ = {};
|
|
|
23
19
|
};
|
|
24
20
|
})();
|
|
25
21
|
(()=>{
|
|
26
|
-
__webpack_require__.o =
|
|
27
|
-
return Object.prototype.hasOwnProperty.call(obj, prop);
|
|
28
|
-
};
|
|
22
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
29
23
|
})();
|
|
30
24
|
(()=>{
|
|
31
|
-
__webpack_require__.r =
|
|
25
|
+
__webpack_require__.r = (exports1)=>{
|
|
32
26
|
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
33
27
|
value: 'Module'
|
|
34
28
|
});
|
|
@@ -50,14 +44,16 @@ const external_react_dom_namespaceObject = require("react-dom");
|
|
|
50
44
|
const external_overlay_cjs_namespaceObject = require("./overlay.cjs");
|
|
51
45
|
const theme_context_cjs_namespaceObject = require("../../../context/theme-context.cjs");
|
|
52
46
|
const use_consent_manager_cjs_namespaceObject = require("../../../hooks/use-consent-manager.cjs");
|
|
53
|
-
const use_styles_cjs_namespaceObject = require("../../../
|
|
47
|
+
const use_styles_cjs_namespaceObject = require("../../../hooks/use-styles.cjs");
|
|
54
48
|
const external_cookie_banner_module_cjs_namespaceObject = require("../cookie-banner.module.cjs");
|
|
55
49
|
var external_cookie_banner_module_cjs_default = /*#__PURE__*/ __webpack_require__.n(external_cookie_banner_module_cjs_namespaceObject);
|
|
56
|
-
const CookieBannerRoot = ({ children, className, noStyle, disableAnimation, theme, ...props })=>{
|
|
50
|
+
const CookieBannerRoot = ({ children, className, noStyle, disableAnimation, theme, scrollLock, trapFocus = true, ...props })=>{
|
|
57
51
|
const contextValue = {
|
|
58
52
|
disableAnimation,
|
|
59
53
|
noStyle,
|
|
60
|
-
theme
|
|
54
|
+
theme,
|
|
55
|
+
scrollLock,
|
|
56
|
+
trapFocus
|
|
61
57
|
};
|
|
62
58
|
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(theme_context_cjs_namespaceObject.LocalThemeContext.Provider, {
|
|
63
59
|
value: contextValue,
|
|
@@ -123,8 +119,12 @@ const CookieBannerRootChildren = /*#__PURE__*/ (0, external_react_namespaceObjec
|
|
|
123
119
|
});
|
|
124
120
|
CookieBannerRootChildren.displayName = 'CookieBannerRootChildren';
|
|
125
121
|
const Root = CookieBannerRoot;
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
122
|
+
exports.CookieBannerRoot = __webpack_exports__.CookieBannerRoot;
|
|
123
|
+
exports.Root = __webpack_exports__.Root;
|
|
124
|
+
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
|
|
125
|
+
"CookieBannerRoot",
|
|
126
|
+
"Root"
|
|
127
|
+
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
|
|
128
|
+
Object.defineProperty(exports, '__esModule', {
|
|
129
129
|
value: true
|
|
130
130
|
});
|
|
@@ -35,6 +35,20 @@ interface CookieBannerRootProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
35
35
|
* Useful for environments where animations are not desired.
|
|
36
36
|
*/
|
|
37
37
|
disableAnimation?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* @remarks
|
|
40
|
+
* When true, the cookie banner will lock the scroll of the page.
|
|
41
|
+
* Useful for implementing a cookie banner that locks the scroll of the page.
|
|
42
|
+
* @default false
|
|
43
|
+
*/
|
|
44
|
+
scrollLock?: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* @remarks
|
|
47
|
+
* When true, the cookie banner will trap focus.
|
|
48
|
+
* Useful for implementing a cookie banner that traps focus.
|
|
49
|
+
* @default true
|
|
50
|
+
*/
|
|
51
|
+
trapFocus?: boolean;
|
|
38
52
|
}
|
|
39
53
|
/**
|
|
40
54
|
* Root component of the CookieBanner that provides context and styling.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../../../src/components/cookie-banner/atoms/root.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEN,KAAK,EAAE,EACP,KAAK,cAAc,EACnB,KAAK,SAAS,EAId,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAIlD;;;;;;;;;GASG;AACH,UAAU,qBAAsB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACrE;;;;OAIG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEnC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../../../src/components/cookie-banner/atoms/root.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEN,KAAK,EAAE,EACP,KAAK,cAAc,EACnB,KAAK,SAAS,EAId,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAIlD;;;;;;;;;GASG;AACH,UAAU,qBAAsB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACrE;;;;OAIG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEnC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,QAAA,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CAiC/C,CAAC;AA4JF,QAAA,MAAM,IAAI,2BAAmB,CAAC;AAE9B,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC"}
|