lau-ecom-design-system 1.0.19 → 1.0.20

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.
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>