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