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.
- package/README.md +49 -0
- package/dist/316236bc7a52233c.png +0 -0
- package/dist/lau-ecom-design-system.esm.css +6 -1
- package/dist/lau-ecom-design-system.esm.js +900 -327
- package/dist/lau-ecom-design-system.min.css +6 -1
- package/dist/lau-ecom-design-system.min.js +1 -1
- package/dist/lau-ecom-design-system.ssr.css +6 -1
- package/dist/lau-ecom-design-system.ssr.js +787 -256
- package/dist/style.css +120 -12
- package/package.json +80 -80
- package/src/components/LauEcomBannerCookies/LauEcomBannerCookies.vue +178 -168
- package/src/components/LauEcomBannerCookies/LauEcomBannerCookiesConfig.vue +160 -159
- package/src/components/LauEcomBannerCookies/LauEcomBannerCookiesConfigAccordion.vue +80 -76
- package/src/components/LauEcomButton/LauEcomButton.vue +137 -137
- package/src/components/LauEcomCheckbox/LauEcomCheckbox.vue +143 -143
- package/src/components/LauEcomDisclamer/LauEcomDisclamer.vue +79 -79
- package/src/components/LauEcomDropdown/LauEcomDropdown.vue +203 -203
- package/src/components/LauEcomFooter/LauEcomFooter.vue +24 -73
- package/src/components/LauEcomFooter/LauEcomSubFooter.vue +5 -31
- package/src/components/LauEcomFooter/LauEcomSubFooterCategory.vue +9 -48
- package/src/components/LauEcomIcon/LauEcomCoreIconBook.vue +26 -26
- package/src/components/LauEcomIcon/LauEcomCoreIconFileCode.vue +28 -28
- package/src/components/LauEcomIcon/LauEcomUpcIconArrowDown.vue +0 -7
- package/src/components/LauEcomIcon/LauEcomUpcIconCertificate.vue +28 -28
- package/src/components/LauEcomIcon/LauEcomUpcIconCheck.vue +26 -26
- package/src/components/LauEcomIcon/LauEcomUpcIconCheckCircle.vue +28 -28
- package/src/components/LauEcomIcon/LauEcomUpcIconCreditCard.vue +28 -28
- package/src/components/LauEcomIcon/LauEcomUpcIconExclamationCircle.vue +28 -28
- package/src/components/LauEcomIcon/LauEcomUpcIconExclamationTriangle.vue +28 -28
- package/src/components/LauEcomIcon/LauEcomUpcIconInfoCircle.vue +26 -26
- package/src/components/LauEcomIcon/LauEcomUpcIconNavArrow.vue +26 -26
- package/src/components/LauEcomIcon/LauEcomUpcIconNavBack.vue +25 -0
- package/src/components/LauEcomIcon/LauEcomUpcIconNavCheckmark.vue +26 -26
- package/src/components/LauEcomInput/LauEcomInput.vue +207 -207
- package/src/components/LauEcomLoaderPage/LauEcomLoaderPage.vue +16 -16
- package/src/components/LauEcomPaginator/LauEcomPaginator.vue +57 -0
- package/src/components/LauEcomPaginator/LauEcomPaginatorButton.vue +68 -0
- package/src/components/LauEcomRadioButton/LauEcomRadioButton.vue +103 -103
- package/src/components/LauEcomRtb/LauEcomRtb.vue +71 -71
- package/src/components/LauEcomStepbar/LauEcomStepbar.vue +43 -43
- package/src/components/LauEcomStepbar/LauEcomStepbarItem.vue +128 -128
- package/src/components/LauEcomSwitch/LauEcomSwitch.vue +110 -108
- package/src/components/LauEcomTab/LauEcomTab.vue +82 -82
- package/src/components/LauEcomTag/LauEcomTag.vue +56 -0
- package/src/components/LauEcomTextButton/LauEcomTextButton.vue +71 -71
- package/src/components/LauEcomTyPage/LauEcomSummary.vue +14 -0
- package/src/components/LauEcomTyPage/LauEcomSummaryItem.vue +22 -0
- package/src/components/LauEcomTyPage/LauEcomTyPage.vue +149 -0
@@ -1,203 +1,203 @@
|
|
1
|
-
<script lang="ts" setup>
|
2
|
-
import { computed, ref } from "vue";
|
3
|
-
import {
|
4
|
-
LauEcomUpcIconArrowDown,
|
5
|
-
LauEcomUpcIconExclamationTriangle,
|
6
|
-
} from "../LauEcomIcon";
|
7
|
-
import { DropdownItem } from "./types";
|
8
|
-
import { Colors } from "../../utils";
|
9
|
-
|
10
|
-
interface Props {
|
11
|
-
id?: string;
|
12
|
-
label?: string;
|
13
|
-
isDisabled?: boolean;
|
14
|
-
placeholder?: string;
|
15
|
-
dropdownItems: DropdownItem[];
|
16
|
-
errorMessage?: string;
|
17
|
-
}
|
18
|
-
|
19
|
-
const props = withDefaults(defineProps<Props>(), {
|
20
|
-
id: "label",
|
21
|
-
label: "Dropdown label",
|
22
|
-
isDisabled: false,
|
23
|
-
placeholder: "Placeholder",
|
24
|
-
errorMessage: "",
|
25
|
-
});
|
26
|
-
|
27
|
-
const isOpen = ref(false);
|
28
|
-
const selectedItem = ref<DropdownItem | null>(null);
|
29
|
-
|
30
|
-
const handleDropdownOpen = () => {
|
31
|
-
if (props.isDisabled) return;
|
32
|
-
isOpen.value = !isOpen.value;
|
33
|
-
};
|
34
|
-
|
35
|
-
const selectDropdownItem = (index: number) => {
|
36
|
-
selectedItem.value = props.dropdownItems[index];
|
37
|
-
isOpen.value = false;
|
38
|
-
};
|
39
|
-
|
40
|
-
const lauEcomLabelClasses = computed(() => {
|
41
|
-
return {
|
42
|
-
"lau-ecom-label core-font-body-bold-06-12px": true,
|
43
|
-
"lau-ecom-label--disabled": props.isDisabled,
|
44
|
-
};
|
45
|
-
});
|
46
|
-
|
47
|
-
const lauEcomDropdownClasses = computed(() => {
|
48
|
-
return {
|
49
|
-
"lau-ecom-dropdown core-font-body-reg-04-16px": true,
|
50
|
-
"lau-ecom-dropdown--open": isOpen.value,
|
51
|
-
"lau-ecom-dropdown--disabled": props.isDisabled,
|
52
|
-
"lau-ecom-dropdown--error": props.errorMessage,
|
53
|
-
};
|
54
|
-
});
|
55
|
-
|
56
|
-
const lauEcomIconClasses = computed(() => {
|
57
|
-
return {
|
58
|
-
"lau-ecom-icon": true,
|
59
|
-
"lau-ecom-icon--open": isOpen.value,
|
60
|
-
"lau-ecom-icon--disabled": props.isDisabled,
|
61
|
-
};
|
62
|
-
});
|
63
|
-
|
64
|
-
const iconArrowDownColor = computed(() => {
|
65
|
-
if (props.isDisabled) return Colors["upc-color-neutral-70"];
|
66
|
-
if (props.errorMessage) return Colors["upc-color-red-60-base"];
|
67
|
-
return Colors["upc-color-neutral-100"];
|
68
|
-
});
|
69
|
-
</script>
|
70
|
-
|
71
|
-
<template>
|
72
|
-
<div>
|
73
|
-
<label :class="lauEcomLabelClasses" :for="id">{{ label }}</label>
|
74
|
-
<div class="dsEcom-relative">
|
75
|
-
<div class="dsEcom-relative">
|
76
|
-
<input
|
77
|
-
:id="id"
|
78
|
-
:name="id"
|
79
|
-
:disabled="isDisabled"
|
80
|
-
:placeholder="placeholder"
|
81
|
-
:value="selectedItem?.name"
|
82
|
-
readonly
|
83
|
-
:class="lauEcomDropdownClasses"
|
84
|
-
@click="handleDropdownOpen"
|
85
|
-
/>
|
86
|
-
<span :class="lauEcomIconClasses">
|
87
|
-
<LauEcomUpcIconArrowDown :color="iconArrowDownColor" />
|
88
|
-
</span>
|
89
|
-
</div>
|
90
|
-
<ul
|
91
|
-
v-if="dropdownItems.length > 0"
|
92
|
-
v-show="isOpen"
|
93
|
-
class="lau-ecom-dropdown-list core-font-body-reg-04-16px"
|
94
|
-
>
|
95
|
-
<li
|
96
|
-
v-for="(dropdownItem, index) in dropdownItems"
|
97
|
-
:key="`dropdown-item-${index + 1}`"
|
98
|
-
class="lau-ecom-dropdown-list-item"
|
99
|
-
@click="selectDropdownItem(index)"
|
100
|
-
>
|
101
|
-
<span>{{ dropdownItem.name }}</span>
|
102
|
-
</li>
|
103
|
-
</ul>
|
104
|
-
</div>
|
105
|
-
<div
|
106
|
-
v-if="errorMessage"
|
107
|
-
class="lau-ecom-dropdown__error core-font-body-reg-06-12px"
|
108
|
-
>
|
109
|
-
<span>
|
110
|
-
<LauEcomUpcIconExclamationTriangle
|
111
|
-
width="16"
|
112
|
-
height="16"
|
113
|
-
:color="Colors['upc-color-red-60-base']"
|
114
|
-
/>
|
115
|
-
</span>
|
116
|
-
<p class="dsEcom-ml-1">
|
117
|
-
{{ errorMessage }}
|
118
|
-
</p>
|
119
|
-
</div>
|
120
|
-
</div>
|
121
|
-
</template>
|
122
|
-
|
123
|
-
<style scoped>
|
124
|
-
.lau-ecom-label {
|
125
|
-
@apply dsEcom-text-neutral-100;
|
126
|
-
}
|
127
|
-
|
128
|
-
.lau-ecom-label--disabled {
|
129
|
-
@apply dsEcom-text-neutral-70;
|
130
|
-
}
|
131
|
-
|
132
|
-
.lau-ecom-dropdown {
|
133
|
-
@apply dsEcom-w-full
|
134
|
-
dsEcom-h-auto
|
135
|
-
dsEcom-cursor-pointer
|
136
|
-
dsEcom-bg-neutral-10
|
137
|
-
dsEcom-px-3
|
138
|
-
dsEcom-py-[11px]
|
139
|
-
dsEcom-rounded-[2px]
|
140
|
-
dsEcom-border
|
141
|
-
dsEcom-border-neutral-80
|
142
|
-
hover:dsEcom-border-stroke-secondary-60
|
143
|
-
focus:dsEcom-border-stroke-secondary-60
|
144
|
-
focus:dsEcom-outline-none;
|
145
|
-
}
|
146
|
-
|
147
|
-
.lau-ecom-dropdown--disabled {
|
148
|
-
@apply !dsEcom-border-neutral-70
|
149
|
-
!dsEcom-bg-neutral-20;
|
150
|
-
}
|
151
|
-
|
152
|
-
.lau-ecom-dropdown--error {
|
153
|
-
@apply !dsEcom-border-feedback-error-60;
|
154
|
-
}
|
155
|
-
|
156
|
-
.lau-ecom-dropdown--open {
|
157
|
-
@apply dsEcom-border-stroke-secondary-60;
|
158
|
-
}
|
159
|
-
|
160
|
-
.lau-ecom-icon {
|
161
|
-
@apply dsEcom-absolute
|
162
|
-
dsEcom-right-4
|
163
|
-
dsEcom-top-3
|
164
|
-
dsEcom-transition-all
|
165
|
-
dsEcom-duration-300
|
166
|
-
dsEcom-cursor-pointer;
|
167
|
-
}
|
168
|
-
|
169
|
-
.lau-ecom-icon--open {
|
170
|
-
@apply dsEcom-rotate-180;
|
171
|
-
}
|
172
|
-
|
173
|
-
.lau-ecom-icon--disabled {
|
174
|
-
@apply dsEcom-cursor-default;
|
175
|
-
}
|
176
|
-
|
177
|
-
.lau-ecom-dropdown-list {
|
178
|
-
@apply dsEcom-absolute
|
179
|
-
dsEcom-top-full
|
180
|
-
dsEcom-left-0
|
181
|
-
dsEcom-w-full
|
182
|
-
dsEcom-z-20
|
183
|
-
dsEcom-py-1
|
184
|
-
dsEcom-shadow-upc-shadow-subtle
|
185
|
-
dsEcom-bg-neutral-10;
|
186
|
-
}
|
187
|
-
|
188
|
-
.lau-ecom-dropdown-list-item {
|
189
|
-
@apply dsEcom-py-2
|
190
|
-
dsEcom-px-3
|
191
|
-
dsEcom-cursor-pointer
|
192
|
-
hover:dsEcom-bg-neutral-30
|
193
|
-
active:dsEcom-bg-neutral-40
|
194
|
-
focus:dsEcom-bg-neutral-40;
|
195
|
-
}
|
196
|
-
|
197
|
-
.lau-ecom-dropdown__error {
|
198
|
-
@apply dsEcom-flex
|
199
|
-
dsEcom-items-center
|
200
|
-
dsEcom-mt-[2px]
|
201
|
-
dsEcom-text-primary-60;
|
202
|
-
}
|
203
|
-
</style>
|
1
|
+
<script lang="ts" setup>
|
2
|
+
import { computed, ref } from "vue";
|
3
|
+
import {
|
4
|
+
LauEcomUpcIconArrowDown,
|
5
|
+
LauEcomUpcIconExclamationTriangle,
|
6
|
+
} from "../LauEcomIcon";
|
7
|
+
import { DropdownItem } from "./types";
|
8
|
+
import { Colors } from "../../utils";
|
9
|
+
|
10
|
+
interface Props {
|
11
|
+
id?: string;
|
12
|
+
label?: string;
|
13
|
+
isDisabled?: boolean;
|
14
|
+
placeholder?: string;
|
15
|
+
dropdownItems: DropdownItem[];
|
16
|
+
errorMessage?: string;
|
17
|
+
}
|
18
|
+
|
19
|
+
const props = withDefaults(defineProps<Props>(), {
|
20
|
+
id: "label",
|
21
|
+
label: "Dropdown label",
|
22
|
+
isDisabled: false,
|
23
|
+
placeholder: "Placeholder",
|
24
|
+
errorMessage: "",
|
25
|
+
});
|
26
|
+
|
27
|
+
const isOpen = ref(false);
|
28
|
+
const selectedItem = ref<DropdownItem | null>(null);
|
29
|
+
|
30
|
+
const handleDropdownOpen = () => {
|
31
|
+
if (props.isDisabled) return;
|
32
|
+
isOpen.value = !isOpen.value;
|
33
|
+
};
|
34
|
+
|
35
|
+
const selectDropdownItem = (index: number) => {
|
36
|
+
selectedItem.value = props.dropdownItems[index];
|
37
|
+
isOpen.value = false;
|
38
|
+
};
|
39
|
+
|
40
|
+
const lauEcomLabelClasses = computed(() => {
|
41
|
+
return {
|
42
|
+
"lau-ecom-label core-font-body-bold-06-12px": true,
|
43
|
+
"lau-ecom-label--disabled": props.isDisabled,
|
44
|
+
};
|
45
|
+
});
|
46
|
+
|
47
|
+
const lauEcomDropdownClasses = computed(() => {
|
48
|
+
return {
|
49
|
+
"lau-ecom-dropdown core-font-body-reg-04-16px": true,
|
50
|
+
"lau-ecom-dropdown--open": isOpen.value,
|
51
|
+
"lau-ecom-dropdown--disabled": props.isDisabled,
|
52
|
+
"lau-ecom-dropdown--error": props.errorMessage,
|
53
|
+
};
|
54
|
+
});
|
55
|
+
|
56
|
+
const lauEcomIconClasses = computed(() => {
|
57
|
+
return {
|
58
|
+
"lau-ecom-icon": true,
|
59
|
+
"lau-ecom-icon--open": isOpen.value,
|
60
|
+
"lau-ecom-icon--disabled": props.isDisabled,
|
61
|
+
};
|
62
|
+
});
|
63
|
+
|
64
|
+
const iconArrowDownColor = computed(() => {
|
65
|
+
if (props.isDisabled) return Colors["upc-color-neutral-70"];
|
66
|
+
if (props.errorMessage) return Colors["upc-color-red-60-base"];
|
67
|
+
return Colors["upc-color-neutral-100"];
|
68
|
+
});
|
69
|
+
</script>
|
70
|
+
|
71
|
+
<template>
|
72
|
+
<div>
|
73
|
+
<label :class="lauEcomLabelClasses" :for="id">{{ label }}</label>
|
74
|
+
<div class="dsEcom-relative">
|
75
|
+
<div class="dsEcom-relative">
|
76
|
+
<input
|
77
|
+
:id="id"
|
78
|
+
:name="id"
|
79
|
+
:disabled="isDisabled"
|
80
|
+
:placeholder="placeholder"
|
81
|
+
:value="selectedItem?.name"
|
82
|
+
readonly
|
83
|
+
:class="lauEcomDropdownClasses"
|
84
|
+
@click="handleDropdownOpen"
|
85
|
+
/>
|
86
|
+
<span :class="lauEcomIconClasses">
|
87
|
+
<LauEcomUpcIconArrowDown :color="iconArrowDownColor" />
|
88
|
+
</span>
|
89
|
+
</div>
|
90
|
+
<ul
|
91
|
+
v-if="dropdownItems.length > 0"
|
92
|
+
v-show="isOpen"
|
93
|
+
class="lau-ecom-dropdown-list core-font-body-reg-04-16px"
|
94
|
+
>
|
95
|
+
<li
|
96
|
+
v-for="(dropdownItem, index) in dropdownItems"
|
97
|
+
:key="`dropdown-item-${index + 1}`"
|
98
|
+
class="lau-ecom-dropdown-list-item"
|
99
|
+
@click="selectDropdownItem(index)"
|
100
|
+
>
|
101
|
+
<span>{{ dropdownItem.name }}</span>
|
102
|
+
</li>
|
103
|
+
</ul>
|
104
|
+
</div>
|
105
|
+
<div
|
106
|
+
v-if="errorMessage"
|
107
|
+
class="lau-ecom-dropdown__error core-font-body-reg-06-12px"
|
108
|
+
>
|
109
|
+
<span>
|
110
|
+
<LauEcomUpcIconExclamationTriangle
|
111
|
+
width="16"
|
112
|
+
height="16"
|
113
|
+
:color="Colors['upc-color-red-60-base']"
|
114
|
+
/>
|
115
|
+
</span>
|
116
|
+
<p class="dsEcom-ml-1">
|
117
|
+
{{ errorMessage }}
|
118
|
+
</p>
|
119
|
+
</div>
|
120
|
+
</div>
|
121
|
+
</template>
|
122
|
+
|
123
|
+
<style scoped>
|
124
|
+
.lau-ecom-label {
|
125
|
+
@apply dsEcom-text-neutral-100;
|
126
|
+
}
|
127
|
+
|
128
|
+
.lau-ecom-label--disabled {
|
129
|
+
@apply dsEcom-text-neutral-70;
|
130
|
+
}
|
131
|
+
|
132
|
+
.lau-ecom-dropdown {
|
133
|
+
@apply dsEcom-w-full
|
134
|
+
dsEcom-h-auto
|
135
|
+
dsEcom-cursor-pointer
|
136
|
+
dsEcom-bg-neutral-10
|
137
|
+
dsEcom-px-3
|
138
|
+
dsEcom-py-[11px]
|
139
|
+
dsEcom-rounded-[2px]
|
140
|
+
dsEcom-border
|
141
|
+
dsEcom-border-neutral-80
|
142
|
+
hover:dsEcom-border-stroke-secondary-60
|
143
|
+
focus:dsEcom-border-stroke-secondary-60
|
144
|
+
focus:dsEcom-outline-none;
|
145
|
+
}
|
146
|
+
|
147
|
+
.lau-ecom-dropdown--disabled {
|
148
|
+
@apply !dsEcom-border-neutral-70
|
149
|
+
!dsEcom-bg-neutral-20;
|
150
|
+
}
|
151
|
+
|
152
|
+
.lau-ecom-dropdown--error {
|
153
|
+
@apply !dsEcom-border-feedback-error-60;
|
154
|
+
}
|
155
|
+
|
156
|
+
.lau-ecom-dropdown--open {
|
157
|
+
@apply dsEcom-border-stroke-secondary-60;
|
158
|
+
}
|
159
|
+
|
160
|
+
.lau-ecom-icon {
|
161
|
+
@apply dsEcom-absolute
|
162
|
+
dsEcom-right-4
|
163
|
+
dsEcom-top-3
|
164
|
+
dsEcom-transition-all
|
165
|
+
dsEcom-duration-300
|
166
|
+
dsEcom-cursor-pointer;
|
167
|
+
}
|
168
|
+
|
169
|
+
.lau-ecom-icon--open {
|
170
|
+
@apply dsEcom-rotate-180;
|
171
|
+
}
|
172
|
+
|
173
|
+
.lau-ecom-icon--disabled {
|
174
|
+
@apply dsEcom-cursor-default;
|
175
|
+
}
|
176
|
+
|
177
|
+
.lau-ecom-dropdown-list {
|
178
|
+
@apply dsEcom-absolute
|
179
|
+
dsEcom-top-full
|
180
|
+
dsEcom-left-0
|
181
|
+
dsEcom-w-full
|
182
|
+
dsEcom-z-20
|
183
|
+
dsEcom-py-1
|
184
|
+
dsEcom-shadow-upc-shadow-subtle
|
185
|
+
dsEcom-bg-neutral-10;
|
186
|
+
}
|
187
|
+
|
188
|
+
.lau-ecom-dropdown-list-item {
|
189
|
+
@apply dsEcom-py-2
|
190
|
+
dsEcom-px-3
|
191
|
+
dsEcom-cursor-pointer
|
192
|
+
hover:dsEcom-bg-neutral-30
|
193
|
+
active:dsEcom-bg-neutral-40
|
194
|
+
focus:dsEcom-bg-neutral-40;
|
195
|
+
}
|
196
|
+
|
197
|
+
.lau-ecom-dropdown__error {
|
198
|
+
@apply dsEcom-flex
|
199
|
+
dsEcom-items-center
|
200
|
+
dsEcom-mt-[2px]
|
201
|
+
dsEcom-text-primary-60;
|
202
|
+
}
|
203
|
+
</style>
|
@@ -1,28 +1,20 @@
|
|
1
1
|
<script setup lang="ts">
|
2
|
-
// import { computed } from 'vue';
|
3
|
-
import { computed } from "vue";
|
4
|
-
import { LauEcomInstance } from "../../enums";
|
5
|
-
import { Colors } from "../../utils";
|
6
2
|
import {
|
7
|
-
LauEcomCbtLogoLaureate,
|
8
|
-
LauEcomCbtLogoUpcWhite,
|
9
3
|
LauEcomCoreIconBook,
|
10
4
|
LauEcomLogoWasc,
|
11
5
|
LauEcomUpcIconInnova,
|
12
6
|
} from "../LauEcomIcon";
|
13
|
-
import LauEcomCbtLogoCbtVer from "../LauEcomIcon/LauEcomCbtLogoCbtVer.vue";
|
14
7
|
import LauEcomSubFooter from "./LauEcomSubFooter.vue";
|
15
8
|
|
16
9
|
interface Props {
|
17
|
-
instance?: LauEcomInstance;
|
18
10
|
urlPrivacyPolicy?: string;
|
19
11
|
urlTermAndConditions?: string;
|
20
12
|
urlComplaintsBook?: string;
|
21
13
|
urlPdpArco?: string;
|
14
|
+
institutionName?: string;
|
22
15
|
}
|
23
16
|
|
24
|
-
|
25
|
-
instance: LauEcomInstance.Upc,
|
17
|
+
withDefaults(defineProps<Props>(), {
|
26
18
|
urlContact: "https://www.upc.edu.pe/servicios/contacto-para-alumnos-upc/",
|
27
19
|
urlPrivacyPolicy:
|
28
20
|
"https://www.upc.edu.pe/html/politica-y-terminos/0/politica-privacidad.htm",
|
@@ -30,46 +22,23 @@ const props = withDefaults(defineProps<Props>(), {
|
|
30
22
|
"https://www.upc.edu.pe/html/politica-y-terminos/0/terminos-condiciones.htm",
|
31
23
|
urlComplaintsBook: "https://librodereclamaciones.upc.edu.pe/",
|
32
24
|
urlPdpArco: "https://upc.edu.pe/proteccion-de-datos/",
|
33
|
-
|
34
|
-
|
35
|
-
const isUpcInstance = computed(() => {
|
36
|
-
return props.instance === LauEcomInstance.Upc;
|
37
|
-
});
|
38
|
-
|
39
|
-
const isCbtInstance = computed(() => {
|
40
|
-
return props.instance === LauEcomInstance.Cibertec;
|
41
|
-
});
|
42
|
-
|
43
|
-
const lauEcomFooterLogosClasses = computed(() => {
|
44
|
-
return {
|
45
|
-
"lau-ecom-footer-logos": true,
|
46
|
-
"lau-ecom-footer-logos--upc": isUpcInstance.value,
|
47
|
-
"lau-ecom-footer-logos--cbt": isCbtInstance.value,
|
48
|
-
};
|
49
|
-
});
|
50
|
-
|
51
|
-
const lauEcomTermnsClasses = computed(() => {
|
52
|
-
return {
|
53
|
-
"lau-ecom-termns": true,
|
54
|
-
"lau-ecom-termns--upc": isUpcInstance.value,
|
55
|
-
"lau-ecom-termns--cbt": isCbtInstance.value,
|
56
|
-
};
|
25
|
+
institutionName: "Universidad Peruana de Ciencias Aplicadas",
|
57
26
|
});
|
58
27
|
</script>
|
59
28
|
|
60
29
|
<template>
|
61
30
|
<footer>
|
62
|
-
<LauEcomSubFooter
|
31
|
+
<LauEcomSubFooter />
|
63
32
|
<div class="dsEcom-flex dsEcom-flex-col">
|
64
|
-
<div
|
33
|
+
<div class="lau-ecom-footer-logos lau-ecom-footer-logos--upc">
|
65
34
|
<div
|
66
|
-
class="dsEcom-flex mobiles:dsEcom-w-full mobiles:dsEcom-justify-center mobiles:dsEcom-border-b-2 mobiles:dsEcom-border-b-
|
35
|
+
class="dsEcom-flex mobiles:dsEcom-w-full mobiles:dsEcom-justify-center mobiles:dsEcom-border-b-2 mobiles:dsEcom-border-b-neutral-40"
|
67
36
|
>
|
68
|
-
<span v-if="
|
69
|
-
<
|
37
|
+
<span v-if="$slots.mainLogo">
|
38
|
+
<slot name="mainLogo" />
|
70
39
|
</span>
|
71
|
-
<span v-
|
72
|
-
<
|
40
|
+
<span v-else>
|
41
|
+
<LauEcomUpcIconInnova />
|
73
42
|
</span>
|
74
43
|
</div>
|
75
44
|
<div
|
@@ -81,42 +50,30 @@ const lauEcomTermnsClasses = computed(() => {
|
|
81
50
|
<div
|
82
51
|
class="dsEcom-flex dsEcom-items-center mobiles:dsEcom-flex-col mobiles:dsEcom-gap-8"
|
83
52
|
>
|
53
|
+
<span v-if="$slots.sponsorLogo">
|
54
|
+
<slot name="sponsorLogo" />
|
55
|
+
</span>
|
84
56
|
<span
|
85
|
-
v-
|
86
|
-
class="dsEcom-pr-[51px] dsEcom-py-3 dsEcom-border-r-2 dsEcom-border-r-
|
57
|
+
v-else
|
58
|
+
class="dsEcom-pr-[51px] dsEcom-py-3 dsEcom-border-r-2 dsEcom-border-r-neutral-50 mobiles:dsEcom-pr-0 mobiles:dsEcom-border-r-0 mobiles:dsEcom-py-0"
|
87
59
|
>
|
88
60
|
<LauEcomLogoWasc />
|
89
61
|
</span>
|
90
|
-
<div
|
91
|
-
v-if="isCbtInstance"
|
92
|
-
class="dsEcom-flex mobiles:dsEcom-flex-col mobiles:dsEcom-gap-8"
|
93
|
-
>
|
94
|
-
<span
|
95
|
-
class="dsEcom-pr-[51px] dsEcom-py-2 dsEcom-border-r-2 dsEcom-border-r-color-cbt-color-neutral-50 mobiles:dsEcom-py-0 mobiles:dsEcom-pr-0 mobiles:dsEcom-border-r-0"
|
96
|
-
>
|
97
|
-
<LauEcomCbtLogoLaureate />
|
98
|
-
</span>
|
99
|
-
<span
|
100
|
-
class="dsEcom-px-[51px] dsEcom-py-2 dsEcom-border-r-2 dsEcom-border-r-color-cbt-color-neutral-50 mobiles:dsEcom-px-0 mobiles:dsEcom-py-0 mobiles:dsEcom-border-r-0"
|
101
|
-
>
|
102
|
-
<LauEcomCbtLogoUpcWhite />
|
103
|
-
</span>
|
104
|
-
</div>
|
105
62
|
<div
|
106
63
|
class="dsEcom-flex dsEcom-items-center dsEcom-pl-[51px] mobiles:dsEcom-pl-0"
|
107
64
|
>
|
108
65
|
<span>
|
109
66
|
<LauEcomCoreIconBook
|
67
|
+
class="dsEcom-fill-link-60"
|
110
68
|
width="56"
|
111
69
|
height="56"
|
112
|
-
:color="Colors['core-color-blue-60-base']"
|
113
70
|
/>
|
114
71
|
</span>
|
115
72
|
<a
|
116
73
|
:href="urlComplaintsBook"
|
117
74
|
target="_blank"
|
118
75
|
rel="nofollow"
|
119
|
-
class="core-font-body-bold-04-16px dsEcom-text-
|
76
|
+
class="core-font-body-bold-04-16px dsEcom-text-link-60"
|
120
77
|
>
|
121
78
|
Libro de reclamaciones
|
122
79
|
</a>
|
@@ -124,10 +81,9 @@ const lauEcomTermnsClasses = computed(() => {
|
|
124
81
|
</div>
|
125
82
|
</div>
|
126
83
|
</div>
|
127
|
-
<div
|
128
|
-
<!-- ToDo: Add links para terminos y politicas -->
|
84
|
+
<div class="lau-ecom-termns lau-ecom-termns--upc">
|
129
85
|
<div
|
130
|
-
class="dsEcom-flex dsEcom-gap-1 core-font-link-03-14px dsEcom-text-
|
86
|
+
class="dsEcom-flex dsEcom-gap-1 core-font-link-03-14px dsEcom-text-link-60 mobiles:dsEcom-block mobiles:dsEcom-text-center"
|
131
87
|
>
|
132
88
|
<a :href="urlPrivacyPolicy" target="_blank" rel="nofollow">
|
133
89
|
Politica de Privacidad
|
@@ -142,9 +98,8 @@ const lauEcomTermnsClasses = computed(() => {
|
|
142
98
|
</a>
|
143
99
|
</div>
|
144
100
|
<div class="core-font-body-reg-05-14px mobiles:dsEcom-text-center">
|
145
|
-
<p
|
146
|
-
|
147
|
-
Instituto de Educacion Superior Privado Cibertec S.A.C
|
101
|
+
<p>
|
102
|
+
{{ institutionName }}
|
148
103
|
</p>
|
149
104
|
</div>
|
150
105
|
</div>
|
@@ -165,11 +120,11 @@ const lauEcomTermnsClasses = computed(() => {
|
|
165
120
|
}
|
166
121
|
|
167
122
|
.lau-ecom-footer-logos--upc {
|
168
|
-
@apply dsEcom-bg-
|
123
|
+
@apply dsEcom-bg-neutral-20;
|
169
124
|
}
|
170
125
|
|
171
126
|
.lau-ecom-footer-logos--cbt {
|
172
|
-
@apply dsEcom-bg-
|
127
|
+
@apply dsEcom-bg-neutral-20;
|
173
128
|
}
|
174
129
|
|
175
130
|
.lau-ecom-termns {
|
@@ -185,10 +140,6 @@ const lauEcomTermnsClasses = computed(() => {
|
|
185
140
|
}
|
186
141
|
|
187
142
|
.lau-ecom-termns--upc {
|
188
|
-
@apply dsEcom-bg-
|
189
|
-
}
|
190
|
-
|
191
|
-
.lau-ecom-termns--cbt {
|
192
|
-
@apply dsEcom-bg-color-cbt-color-neutral-30;
|
143
|
+
@apply dsEcom-bg-neutral-30;
|
193
144
|
}
|
194
145
|
</style>
|
@@ -1,16 +1,12 @@
|
|
1
1
|
<script setup lang="ts">
|
2
|
-
import { computed } from "vue";
|
3
2
|
import LauEcomSubFooterCategory from "./LauEcomSubFooterCategory.vue";
|
4
3
|
import { Category } from "./types";
|
5
|
-
import { LauEcomInstance } from "../../enums";
|
6
4
|
|
7
5
|
interface Props {
|
8
|
-
instance?: LauEcomInstance;
|
9
6
|
categories?: Category[];
|
10
7
|
}
|
11
8
|
|
12
|
-
|
13
|
-
instance: LauEcomInstance.Upc,
|
9
|
+
withDefaults(defineProps<Props>(), {
|
14
10
|
categories: () => {
|
15
11
|
return [
|
16
12
|
{
|
@@ -58,42 +54,20 @@ const props = withDefaults(defineProps<Props>(), {
|
|
58
54
|
];
|
59
55
|
},
|
60
56
|
});
|
61
|
-
|
62
|
-
const isUpcInstance = computed(() => {
|
63
|
-
return props.instance === LauEcomInstance.Upc;
|
64
|
-
});
|
65
|
-
|
66
|
-
const isCbtInstance = computed(() => {
|
67
|
-
return props.instance === LauEcomInstance.Cibertec;
|
68
|
-
});
|
69
|
-
|
70
|
-
const lauEcomSubFooterClasses = computed(() => {
|
71
|
-
return {
|
72
|
-
"dsEcom-bg-upc-color-neutral-20": isUpcInstance.value,
|
73
|
-
"dsEcom-bg-color-cbt-color-neutral-20": isCbtInstance.value,
|
74
|
-
};
|
75
|
-
});
|
76
|
-
|
77
|
-
const subFooterLineClasses = computed(() => {
|
78
|
-
return {
|
79
|
-
"dsEcom-mx-[91px] dsEcom-h-[2px] mobiles:dsEcom-hidden": true,
|
80
|
-
"dsEcom-bg-upc-color-neutral-50": isUpcInstance.value,
|
81
|
-
"dsEcom-bg-color-cbt-color-neutral-50": isCbtInstance.value,
|
82
|
-
};
|
83
|
-
});
|
84
57
|
</script>
|
85
58
|
|
86
59
|
<template>
|
87
|
-
<div
|
60
|
+
<div class="dsEcom-bg-neutral-20">
|
88
61
|
<div class="lau-ecom-sub-footer-wrapper">
|
89
62
|
<LauEcomSubFooterCategory
|
90
63
|
v-for="(category, index) in categories"
|
91
64
|
:key="`sub-footer-category-${index + 1}`"
|
92
|
-
:instance="instance"
|
93
65
|
:category-data="category"
|
94
66
|
/>
|
95
67
|
</div>
|
96
|
-
<hr
|
68
|
+
<hr
|
69
|
+
class="dsEcom-mx-[91px] dsEcom-h-[2px] mobiles:dsEcom-hidden dsEcom-bg-neutral-50"
|
70
|
+
/>
|
97
71
|
</div>
|
98
72
|
</template>
|
99
73
|
|