lau-ecom-design-system 1.0.19 → 1.0.20

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. package/README.md +49 -0
  2. package/dist/316236bc7a52233c.png +0 -0
  3. package/dist/lau-ecom-design-system.esm.css +6 -1
  4. package/dist/lau-ecom-design-system.esm.js +900 -327
  5. package/dist/lau-ecom-design-system.min.css +6 -1
  6. package/dist/lau-ecom-design-system.min.js +1 -1
  7. package/dist/lau-ecom-design-system.ssr.css +6 -1
  8. package/dist/lau-ecom-design-system.ssr.js +787 -256
  9. package/dist/style.css +120 -12
  10. package/package.json +80 -80
  11. package/src/components/LauEcomBannerCookies/LauEcomBannerCookies.vue +178 -168
  12. package/src/components/LauEcomBannerCookies/LauEcomBannerCookiesConfig.vue +160 -159
  13. package/src/components/LauEcomBannerCookies/LauEcomBannerCookiesConfigAccordion.vue +80 -76
  14. package/src/components/LauEcomButton/LauEcomButton.vue +137 -137
  15. package/src/components/LauEcomCheckbox/LauEcomCheckbox.vue +143 -143
  16. package/src/components/LauEcomDisclamer/LauEcomDisclamer.vue +79 -79
  17. package/src/components/LauEcomDropdown/LauEcomDropdown.vue +203 -203
  18. package/src/components/LauEcomFooter/LauEcomFooter.vue +24 -73
  19. package/src/components/LauEcomFooter/LauEcomSubFooter.vue +5 -31
  20. package/src/components/LauEcomFooter/LauEcomSubFooterCategory.vue +9 -48
  21. package/src/components/LauEcomIcon/LauEcomCoreIconBook.vue +26 -26
  22. package/src/components/LauEcomIcon/LauEcomCoreIconFileCode.vue +28 -28
  23. package/src/components/LauEcomIcon/LauEcomUpcIconArrowDown.vue +0 -7
  24. package/src/components/LauEcomIcon/LauEcomUpcIconCertificate.vue +28 -28
  25. package/src/components/LauEcomIcon/LauEcomUpcIconCheck.vue +26 -26
  26. package/src/components/LauEcomIcon/LauEcomUpcIconCheckCircle.vue +28 -28
  27. package/src/components/LauEcomIcon/LauEcomUpcIconCreditCard.vue +28 -28
  28. package/src/components/LauEcomIcon/LauEcomUpcIconExclamationCircle.vue +28 -28
  29. package/src/components/LauEcomIcon/LauEcomUpcIconExclamationTriangle.vue +28 -28
  30. package/src/components/LauEcomIcon/LauEcomUpcIconInfoCircle.vue +26 -26
  31. package/src/components/LauEcomIcon/LauEcomUpcIconNavArrow.vue +26 -26
  32. package/src/components/LauEcomIcon/LauEcomUpcIconNavBack.vue +25 -0
  33. package/src/components/LauEcomIcon/LauEcomUpcIconNavCheckmark.vue +26 -26
  34. package/src/components/LauEcomInput/LauEcomInput.vue +207 -207
  35. package/src/components/LauEcomLoaderPage/LauEcomLoaderPage.vue +16 -16
  36. package/src/components/LauEcomPaginator/LauEcomPaginator.vue +57 -0
  37. package/src/components/LauEcomPaginator/LauEcomPaginatorButton.vue +68 -0
  38. package/src/components/LauEcomRadioButton/LauEcomRadioButton.vue +103 -103
  39. package/src/components/LauEcomRtb/LauEcomRtb.vue +71 -71
  40. package/src/components/LauEcomStepbar/LauEcomStepbar.vue +43 -43
  41. package/src/components/LauEcomStepbar/LauEcomStepbarItem.vue +128 -128
  42. package/src/components/LauEcomSwitch/LauEcomSwitch.vue +110 -108
  43. package/src/components/LauEcomTab/LauEcomTab.vue +82 -82
  44. package/src/components/LauEcomTag/LauEcomTag.vue +56 -0
  45. package/src/components/LauEcomTextButton/LauEcomTextButton.vue +71 -71
  46. package/src/components/LauEcomTyPage/LauEcomSummary.vue +14 -0
  47. package/src/components/LauEcomTyPage/LauEcomSummaryItem.vue +22 -0
  48. package/src/components/LauEcomTyPage/LauEcomTyPage.vue +149 -0
@@ -1,168 +1,178 @@
1
- <script lang="ts" setup>
2
- import { onBeforeMount, ref } from "vue";
3
- import LauEcomButton from "../LauEcomButton/LauEcomButton.vue";
4
- import LauEcomTextButton from "../LauEcomTextButton/LauEcomTextButton.vue";
5
- import { getCookie, acceptAllCookies } from "../../utils/Cookies";
6
- import LauEcomBannerCookiesConfig from "./LauEcomBannerCookiesConfig.vue";
7
- import { CategoryCookie } from "./types";
8
- import { COOKIE_CONSENT, CookieItemKey } from "../../utils";
9
-
10
- interface Props {
11
- isVisible?: boolean;
12
- categoryCookies?: CategoryCookie[] | null;
13
- }
14
-
15
- const props = withDefaults(defineProps<Props>(), {
16
- isVisible: true,
17
- categoryCookies: () => {
18
- return [
19
- {
20
- title: "Esenciales",
21
- description:
22
- "Este sitio web utiliza cookies gracias a esto podemos personalizar los ingresos a la web en futuras visitas y brindarte una mejor experiencia.",
23
- isChecked: false,
24
- isDisabled: false,
25
- },
26
- {
27
- title: "Preferencias",
28
- description:
29
- "Este sitio web utiliza cookies gracias a esto podemos personalizar los ingresos a la web en futuras visitas y brindarte una mejor experiencia.",
30
- isChecked: false,
31
- isDisabled: false,
32
- },
33
- {
34
- id: CookieItemKey.statistics,
35
- title: "Estadisticas",
36
- description:
37
- "Este sitio web utiliza cookies gracias a esto podemos personalizar los ingresos a la web en futuras visitas y brindarte una mejor experiencia.",
38
- isChecked: true,
39
- isDisabled: false,
40
- },
41
- {
42
- id: CookieItemKey.marketing,
43
- title: "Marketing",
44
- description:
45
- "Este sitio web utiliza cookies gracias a esto podemos personalizar los ingresos a la web en futuras visitas y brindarte una mejor experiencia.",
46
- isChecked: true,
47
- isDisabled: false,
48
- },
49
- ];
50
- },
51
- });
52
-
53
- const isConfigOpen = ref(false);
54
- const isBannerVisible = ref(props.isVisible);
55
-
56
- const emit = defineEmits([
57
- "onConfigCookies",
58
- "onAccept",
59
- "onAcceptAll",
60
- "onReject",
61
- "onAcceptSelected",
62
- "onAcceptAll",
63
- "onClose",
64
- ]);
65
-
66
- onBeforeMount(() => {
67
- const cookieConsent = getCookie(COOKIE_CONSENT);
68
- if (cookieConsent) isBannerVisible.value = false;
69
- });
70
-
71
- const handleConfigCookies = () => {
72
- isConfigOpen.value = !isConfigOpen.value;
73
- emit("onConfigCookies");
74
- };
75
-
76
- const handleAccept = () => {
77
- acceptAllCookies();
78
- emit("onAccept");
79
- isBannerVisible.value = false;
80
- };
81
-
82
- const handleConfigClose = () => {
83
- emit("onClose");
84
- isConfigOpen.value = false;
85
- };
86
-
87
- const closeCookiesBanner = () => {
88
- isConfigOpen.value = false;
89
- isBannerVisible.value = false;
90
- };
91
-
92
- const handleReject = () => {
93
- emit("onReject");
94
- closeCookiesBanner();
95
- };
96
-
97
- const handleAcceptSelected = () => {
98
- emit("onAcceptSelected");
99
- closeCookiesBanner();
100
- };
101
-
102
- const handleAcceptAll = () => {
103
- emit("onAcceptAll");
104
- closeCookiesBanner();
105
- };
106
- </script>
107
-
108
- <template>
109
- <div v-if="isBannerVisible">
110
- <div v-if="!isConfigOpen" class="lau-ecom-cookies lau-ecom-cookies--upc">
111
- <p class="lau-ecom-text lau-ecom-text--upc core-font-body-reg-04-16px">
112
- Este sitio web utiliza cookies gracias a esto podemos personalizar los
113
- ingresos a la web en futuras visitas y brindarte una mejor experiencia
114
- dentro de nuestro sitio.
115
- <a class="core-font-link-02-16px dsEcom-text-link-60">Conoce más</a>
116
- </p>
117
- <div class="lau-ecom-buttons">
118
- <LauEcomTextButton @on-click="handleConfigCookies">
119
- Configurar cookies
120
- </LauEcomTextButton>
121
- <LauEcomButton @on-click="handleAccept"> Aceptar </LauEcomButton>
122
- </div>
123
- </div>
124
- <LauEcomBannerCookiesConfig
125
- v-else
126
- :category-cookies="categoryCookies"
127
- @on-accept-all="handleAcceptAll"
128
- @on-reject="handleReject"
129
- @on-accept-selected="handleAcceptSelected"
130
- @on-close="handleConfigClose"
131
- />
132
- </div>
133
- </template>
134
-
135
- <style scoped>
136
- .lau-ecom-cookies {
137
- @apply dsEcom-w-full
138
- dsEcom-py-[32px]
139
- dsEcom-px-[64px]
140
- dsEcom-flex
141
- dsEcom-justify-between
142
- dsEcom-items-center
143
- dsEcom-gap-20
144
- dsEcom-shadow-upc-shadow-prominent
145
- mobiles:dsEcom-flex-col
146
- mobiles:dsEcom-px-[24px];
147
- }
148
-
149
- .lau-ecom-cookies--upc {
150
- @apply dsEcom-text-neutral-20;
151
- }
152
-
153
- .lau-ecom-text {
154
- @apply dsEcom-block
155
- dsEcom-w-[883px]
156
- mobiles:dsEcom-w-full;
157
- }
158
-
159
- .lau-ecom-text--upc {
160
- @apply dsEcom-text-neutral-90;
161
- }
162
-
163
- .lau-ecom-buttons {
164
- @apply dsEcom-flex
165
- dsEcom-gap-8
166
- mobiles:dsEcom-self-end;
167
- }
168
- </style>
1
+ <script lang="ts" setup>
2
+ import { onBeforeMount, onMounted, ref } from "vue";
3
+ import LauEcomButton from "../LauEcomButton/LauEcomButton.vue";
4
+ import LauEcomTextButton from "../LauEcomTextButton/LauEcomTextButton.vue";
5
+ import { getCookie, acceptAllCookies } from "../../utils/Cookies";
6
+ import LauEcomBannerCookiesConfig from "./LauEcomBannerCookiesConfig.vue";
7
+ import { CategoryCookie } from "./types";
8
+ import { COOKIE_CONSENT, CookieItemKey } from "../../utils";
9
+
10
+ interface Props {
11
+ isVisible?: boolean;
12
+ categoryCookies?: CategoryCookie[] | null;
13
+ }
14
+
15
+ const props = withDefaults(defineProps<Props>(), {
16
+ isVisible: true,
17
+ categoryCookies: () => {
18
+ return [
19
+ {
20
+ title: "Esenciales",
21
+ description:
22
+ "Este sitio web utiliza cookies gracias a esto podemos personalizar los ingresos a la web en futuras visitas y brindarte una mejor experiencia.",
23
+ isChecked: false,
24
+ isDisabled: false,
25
+ onToggle: (value: boolean) => {
26
+ console.log("firstSwitch: " + value);
27
+ },
28
+ },
29
+ {
30
+ title: "Preferencias",
31
+ description:
32
+ "Este sitio web utiliza cookies gracias a esto podemos personalizar los ingresos a la web en futuras visitas y brindarte una mejor experiencia.",
33
+ isChecked: false,
34
+ isDisabled: false,
35
+ onToggle: () => {},
36
+ },
37
+ {
38
+ id: CookieItemKey.statistics,
39
+ title: "Estadisticas",
40
+ description:
41
+ "Este sitio web utiliza cookies gracias a esto podemos personalizar los ingresos a la web en futuras visitas y brindarte una mejor experiencia.",
42
+ isChecked: true,
43
+ isDisabled: false,
44
+ onToggle: () => {},
45
+ },
46
+ {
47
+ id: CookieItemKey.marketing,
48
+ title: "Marketing",
49
+ description:
50
+ "Este sitio web utiliza cookies gracias a esto podemos personalizar los ingresos a la web en futuras visitas y brindarte una mejor experiencia.",
51
+ isChecked: true,
52
+ isDisabled: false,
53
+ onToggle: () => {},
54
+ },
55
+ ];
56
+ },
57
+ });
58
+
59
+ const isConfigOpen = ref(false);
60
+ const isBannerVisible = ref(props.isVisible);
61
+
62
+ const emit = defineEmits([
63
+ "onConfigCookies",
64
+ "onDisplayBanner",
65
+ "onAccept",
66
+ "onAcceptAll",
67
+ "onReject",
68
+ "onAcceptSelected",
69
+ "onClose",
70
+ ]);
71
+
72
+ onBeforeMount(() => {
73
+ const cookieConsent = getCookie(COOKIE_CONSENT);
74
+ if (cookieConsent) isBannerVisible.value = false;
75
+ });
76
+
77
+ onMounted(() => {
78
+ emit("onDisplayBanner");
79
+ });
80
+
81
+ const handleConfigCookies = () => {
82
+ isConfigOpen.value = !isConfigOpen.value;
83
+ emit("onConfigCookies");
84
+ };
85
+
86
+ const handleAccept = () => {
87
+ acceptAllCookies();
88
+ emit("onAccept");
89
+ isBannerVisible.value = false;
90
+ };
91
+
92
+ const handleConfigClose = () => {
93
+ emit("onClose");
94
+ isConfigOpen.value = false;
95
+ };
96
+
97
+ const closeCookiesBanner = () => {
98
+ isConfigOpen.value = false;
99
+ isBannerVisible.value = false;
100
+ };
101
+
102
+ const handleReject = () => {
103
+ emit("onReject");
104
+ closeCookiesBanner();
105
+ };
106
+
107
+ const handleAcceptSelected = () => {
108
+ emit("onAcceptSelected");
109
+ closeCookiesBanner();
110
+ };
111
+
112
+ const handleAcceptAll = () => {
113
+ emit("onAcceptAll");
114
+ closeCookiesBanner();
115
+ };
116
+ </script>
117
+
118
+ <template>
119
+ <div v-if="isBannerVisible">
120
+ <div v-if="!isConfigOpen" class="lau-ecom-cookies lau-ecom-cookies--upc">
121
+ <p class="lau-ecom-text lau-ecom-text--upc core-font-body-reg-04-16px">
122
+ Este sitio web utiliza cookies gracias a esto podemos personalizar los
123
+ ingresos a la web en futuras visitas y brindarte una mejor experiencia
124
+ dentro de nuestro sitio.
125
+ <a class="core-font-link-02-16px dsEcom-text-link-60">Conoce más</a>
126
+ </p>
127
+ <div class="lau-ecom-buttons">
128
+ <LauEcomTextButton @on-click="handleConfigCookies">
129
+ Configurar cookies
130
+ </LauEcomTextButton>
131
+ <LauEcomButton @on-click="handleAccept"> Aceptar </LauEcomButton>
132
+ </div>
133
+ </div>
134
+ <LauEcomBannerCookiesConfig
135
+ v-else
136
+ :category-cookies="categoryCookies"
137
+ @on-accept-all="handleAcceptAll"
138
+ @on-reject="handleReject"
139
+ @on-accept-selected="handleAcceptSelected"
140
+ @on-close="handleConfigClose"
141
+ />
142
+ </div>
143
+ </template>
144
+
145
+ <style scoped>
146
+ .lau-ecom-cookies {
147
+ @apply dsEcom-w-full
148
+ dsEcom-py-[32px]
149
+ dsEcom-px-[64px]
150
+ dsEcom-flex
151
+ dsEcom-justify-between
152
+ dsEcom-items-center
153
+ dsEcom-gap-20
154
+ dsEcom-shadow-upc-shadow-prominent
155
+ mobiles:dsEcom-flex-col
156
+ mobiles:dsEcom-px-[24px];
157
+ }
158
+
159
+ .lau-ecom-cookies--upc {
160
+ @apply dsEcom-text-neutral-20;
161
+ }
162
+
163
+ .lau-ecom-text {
164
+ @apply dsEcom-block
165
+ dsEcom-w-[883px]
166
+ mobiles:dsEcom-w-full;
167
+ }
168
+
169
+ .lau-ecom-text--upc {
170
+ @apply dsEcom-text-neutral-90;
171
+ }
172
+
173
+ .lau-ecom-buttons {
174
+ @apply dsEcom-flex
175
+ dsEcom-gap-8
176
+ mobiles:dsEcom-self-end;
177
+ }
178
+ </style>
@@ -1,159 +1,160 @@
1
- <script lang="ts" setup>
2
- import { ref } from "vue";
3
- import LauEcomButton from "../LauEcomButton/LauEcomButton.vue";
4
- import { LauEcomButtonType } from "../LauEcomButton/types";
5
- import { LauEcomCoreIconNavClose } from "../LauEcomIcon";
6
- import LauEcomBannerCookiesConfigAccordion from "./LauEcomBannerCookiesConfigAccordion.vue";
7
- import { CategoryCookie } from "./types";
8
- import {
9
- acceptAllCookies,
10
- acceptCookiesSelected,
11
- CookieItemKey,
12
- CookieOption,
13
- rejectCookies,
14
- } from "../../utils";
15
-
16
- interface Props {
17
- categoryCookies?: CategoryCookie[] | null;
18
- }
19
-
20
- const props = withDefaults(defineProps<Props>(), {
21
- categoryCookies: null,
22
- });
23
-
24
- const items = ref(props.categoryCookies);
25
-
26
- const emit = defineEmits([
27
- "onClose",
28
- "onReject",
29
- "onAcceptSelected",
30
- "onAcceptAll",
31
- ]);
32
-
33
- const handleCloseConfig = () => {
34
- emit("onClose");
35
- };
36
-
37
- const handleReject = () => {
38
- rejectCookies();
39
- emit("onReject");
40
- };
41
-
42
- const handleAcceptSelected = () => {
43
- let analyticsStorageOption;
44
- let adStorageOption;
45
-
46
- const analyticsStorageIndex = items.value?.findIndex(
47
- (item) => item.id === CookieItemKey.statistics,
48
- );
49
- if (analyticsStorageIndex) {
50
- analyticsStorageOption = items.value![analyticsStorageIndex].isChecked
51
- ? CookieOption.granted
52
- : CookieOption.denied;
53
- }
54
-
55
- const adStorageIndex = items.value?.findIndex(
56
- (item) => item.id === CookieItemKey.marketing,
57
- );
58
- if (adStorageIndex) {
59
- adStorageOption = items.value![adStorageIndex].isChecked
60
- ? CookieOption.granted
61
- : CookieOption.denied;
62
- }
63
-
64
- acceptCookiesSelected(analyticsStorageOption!, adStorageOption!);
65
- emit("onAcceptSelected");
66
- };
67
-
68
- const handleAcceptAll = () => {
69
- acceptAllCookies();
70
- emit("onAcceptAll");
71
- };
72
- </script>
73
-
74
- <template>
75
- <div
76
- class="lau-ecom-banner-cookies-config lau-ecom-banner-cookies-config--upc"
77
- >
78
- <div class="lau-ecom-config-head lau-ecom-config-head--upc">
79
- <p class="upc-font-subtitle-03-20px">Configuracion de cookies</p>
80
- <button @click="handleCloseConfig">
81
- <span><LauEcomCoreIconNavClose /></span>
82
- </button>
83
- </div>
84
- <div>
85
- <LauEcomBannerCookiesConfigAccordion
86
- v-for="(item, index) in items"
87
- :key="`cookie-config-${index + 1}`"
88
- v-model="item.isChecked"
89
- :category-cookie="item"
90
- />
91
- </div>
92
- <div class="lau-ecom-banner-cookies-buttons">
93
- <LauEcomButton
94
- class="!dsEcom-w-full mobiles:dsEcom-order-last"
95
- :type="LauEcomButtonType.Secondary"
96
- @on-click="handleReject"
97
- >
98
- Rechazar
99
- </LauEcomButton>
100
- <LauEcomButton
101
- class="!dsEcom-w-full"
102
- :type="LauEcomButtonType.Secondary"
103
- @on-click="handleAcceptSelected"
104
- >
105
- Aceptar seleccionadas
106
- </LauEcomButton>
107
- <LauEcomButton
108
- class="!dsEcom-w-full mobiles:dsEcom-order-first"
109
- @on-click="handleAcceptAll"
110
- >
111
- Aceptar todas
112
- </LauEcomButton>
113
- </div>
114
- </div>
115
- </template>
116
-
117
- <style scoped>
118
- .lau-ecom-banner-cookies-config {
119
- @apply dsEcom-flex
120
- dsEcom-flex-col
121
- dsEcom-gap-10
122
- dsEcom-absolute
123
- dsEcom-top-1/2
124
- dsEcom-left-1/2
125
- dsEcom-transform
126
- -dsEcom-translate-x-1/2
127
- -dsEcom-translate-y-1/2
128
- dsEcom-pt-6
129
- dsEcom-pb-8
130
- dsEcom-px-6
131
- dsEcom-w-[584px]
132
- dsEcom-h-auto
133
- dsEcom-shadow-upc-shadow-prominent
134
- mobiles:dsEcom-gap-8
135
- mobiles:dsEcom-w-[360px];
136
- }
137
-
138
- .lau-ecom-banner-cookies-config--upc {
139
- @apply dsEcom-text-neutral-100;
140
- }
141
-
142
- .lau-ecom-config-head {
143
- @apply dsEcom-flex
144
- dsEcom-justify-between
145
- dsEcom-items-center;
146
- }
147
-
148
- .lau-ecom-config-head--upc {
149
- @apply dsEcom-text-secondary-60;
150
- }
151
-
152
- .lau-ecom-banner-cookies-buttons {
153
- @apply dsEcom-flex
154
- dsEcom-justify-between
155
- dsEcom-items-center
156
- dsEcom-gap-4
157
- mobiles:dsEcom-flex-col;
158
- }
159
- </style>
1
+ <script lang="ts" setup>
2
+ import { ref } from "vue";
3
+ import LauEcomButton from "../LauEcomButton/LauEcomButton.vue";
4
+ import { LauEcomButtonType } from "../LauEcomButton/types";
5
+ import { LauEcomCoreIconNavClose } from "../LauEcomIcon";
6
+ import LauEcomBannerCookiesConfigAccordion from "./LauEcomBannerCookiesConfigAccordion.vue";
7
+ import { CategoryCookie } from "./types";
8
+ import {
9
+ acceptAllCookies,
10
+ acceptCookiesSelected,
11
+ CookieItemKey,
12
+ CookieOption,
13
+ rejectCookies,
14
+ } from "../../utils";
15
+
16
+ interface Props {
17
+ categoryCookies?: CategoryCookie[] | null;
18
+ }
19
+
20
+ const props = withDefaults(defineProps<Props>(), {
21
+ categoryCookies: null,
22
+ });
23
+
24
+ const items = ref(props.categoryCookies);
25
+
26
+ const emit = defineEmits([
27
+ "onClose",
28
+ "onReject",
29
+ "onAcceptSelected",
30
+ "onAcceptAll",
31
+ ]);
32
+
33
+ const handleCloseConfig = () => {
34
+ emit("onClose");
35
+ };
36
+
37
+ const handleReject = () => {
38
+ rejectCookies();
39
+ emit("onReject");
40
+ };
41
+
42
+ const handleAcceptSelected = () => {
43
+ let analyticsStorageOption;
44
+ let adStorageOption;
45
+
46
+ const analyticsStorageIndex = items.value?.findIndex(
47
+ (item) => item.id === CookieItemKey.statistics,
48
+ );
49
+ if (analyticsStorageIndex) {
50
+ analyticsStorageOption = items.value![analyticsStorageIndex].isChecked
51
+ ? CookieOption.granted
52
+ : CookieOption.denied;
53
+ }
54
+
55
+ const adStorageIndex = items.value?.findIndex(
56
+ (item) => item.id === CookieItemKey.marketing,
57
+ );
58
+ if (adStorageIndex) {
59
+ adStorageOption = items.value![adStorageIndex].isChecked
60
+ ? CookieOption.granted
61
+ : CookieOption.denied;
62
+ }
63
+
64
+ acceptCookiesSelected(analyticsStorageOption!, adStorageOption!);
65
+ emit("onAcceptSelected");
66
+ };
67
+
68
+ const handleAcceptAll = () => {
69
+ acceptAllCookies();
70
+ emit("onAcceptAll");
71
+ };
72
+ </script>
73
+
74
+ <template>
75
+ <div
76
+ class="lau-ecom-banner-cookies-config lau-ecom-banner-cookies-config--upc"
77
+ >
78
+ <div class="lau-ecom-config-head lau-ecom-config-head--upc">
79
+ <p class="upc-font-subtitle-03-20px">Configuracion de cookies</p>
80
+ <button @click="handleCloseConfig">
81
+ <span><LauEcomCoreIconNavClose /></span>
82
+ </button>
83
+ </div>
84
+ <div>
85
+ <LauEcomBannerCookiesConfigAccordion
86
+ v-for="(item, index) in items"
87
+ :key="`cookie-config-${index + 1}`"
88
+ v-model="item.isChecked"
89
+ :category-cookie="item"
90
+ @on-toggle="item.onToggle"
91
+ />
92
+ </div>
93
+ <div class="lau-ecom-banner-cookies-buttons">
94
+ <LauEcomButton
95
+ class="!dsEcom-w-full mobiles:dsEcom-order-last"
96
+ :type="LauEcomButtonType.Secondary"
97
+ @on-click="handleReject"
98
+ >
99
+ Rechazar
100
+ </LauEcomButton>
101
+ <LauEcomButton
102
+ class="!dsEcom-w-full"
103
+ :type="LauEcomButtonType.Secondary"
104
+ @on-click="handleAcceptSelected"
105
+ >
106
+ Aceptar seleccionadas
107
+ </LauEcomButton>
108
+ <LauEcomButton
109
+ class="!dsEcom-w-full mobiles:dsEcom-order-first"
110
+ @on-click="handleAcceptAll"
111
+ >
112
+ Aceptar todas
113
+ </LauEcomButton>
114
+ </div>
115
+ </div>
116
+ </template>
117
+
118
+ <style scoped>
119
+ .lau-ecom-banner-cookies-config {
120
+ @apply dsEcom-flex
121
+ dsEcom-flex-col
122
+ dsEcom-gap-10
123
+ dsEcom-absolute
124
+ dsEcom-top-1/2
125
+ dsEcom-left-1/2
126
+ dsEcom-transform
127
+ -dsEcom-translate-x-1/2
128
+ -dsEcom-translate-y-1/2
129
+ dsEcom-pt-6
130
+ dsEcom-pb-8
131
+ dsEcom-px-6
132
+ dsEcom-w-[584px]
133
+ dsEcom-h-auto
134
+ dsEcom-shadow-upc-shadow-prominent
135
+ mobiles:dsEcom-gap-8
136
+ mobiles:dsEcom-w-[360px];
137
+ }
138
+
139
+ .lau-ecom-banner-cookies-config--upc {
140
+ @apply dsEcom-text-neutral-100;
141
+ }
142
+
143
+ .lau-ecom-config-head {
144
+ @apply dsEcom-flex
145
+ dsEcom-justify-between
146
+ dsEcom-items-center;
147
+ }
148
+
149
+ .lau-ecom-config-head--upc {
150
+ @apply dsEcom-text-secondary-60;
151
+ }
152
+
153
+ .lau-ecom-banner-cookies-buttons {
154
+ @apply dsEcom-flex
155
+ dsEcom-justify-between
156
+ dsEcom-items-center
157
+ dsEcom-gap-4
158
+ mobiles:dsEcom-flex-col;
159
+ }
160
+ </style>