@ecored-sena/base-kit 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/package.json +49 -0
- package/plugin/components/AccordionRED.vue +78 -0
- package/plugin/components/AcordionA.vue +78 -0
- package/plugin/components/Audio.vue +20 -0
- package/plugin/components/BannerHero.vue +104 -0
- package/plugin/components/CarouselCard.vue +70 -0
- package/plugin/components/CarouselRED.vue +65 -0
- package/plugin/components/Complementario.vue +81 -0
- package/plugin/components/Creditos.vue +101 -0
- package/plugin/components/Dialogo.vue +30 -0
- package/plugin/components/DialogoActividad.vue +274 -0
- package/plugin/components/DialogoBurbuja.vue +46 -0
- package/plugin/components/DialogoChat.vue +88 -0
- package/plugin/components/Footer.vue +42 -0
- package/plugin/components/GlobalComponents.js +39 -0
- package/plugin/components/Glosario.vue +100 -0
- package/plugin/components/ImagenInfografica.vue +100 -0
- package/plugin/components/ImagenInfograficaB.vue +68 -0
- package/plugin/components/Inicio.vue +128 -0
- package/plugin/components/LineaTiempoA.vue +30 -0
- package/plugin/components/LineaTiempoB.vue +36 -0
- package/plugin/components/LineaTiempoC.vue +95 -0
- package/plugin/components/LineaTiempoD.vue +51 -0
- package/plugin/components/LineaTiempoE.vue +25 -0
- package/plugin/components/ModalA.vue +22 -0
- package/plugin/components/PasosA.vue +59 -0
- package/plugin/components/PasosB.vue +90 -0
- package/plugin/components/Referencias.vue +45 -0
- package/plugin/components/ScrollHorizontal.vue +105 -0
- package/plugin/components/Separador.vue +12 -0
- package/plugin/components/SlyderA.vue +65 -0
- package/plugin/components/SlyderB.vue +48 -0
- package/plugin/components/SlyderC.vue +53 -0
- package/plugin/components/SlyderD.vue +50 -0
- package/plugin/components/SlyderE.vue +58 -0
- package/plugin/components/SlyderF.vue +141 -0
- package/plugin/components/TabsA.vue +44 -0
- package/plugin/components/TabsB.vue +40 -0
- package/plugin/components/TabsC.vue +39 -0
- package/plugin/components/TarjetaAudio.vue +65 -0
- package/plugin/components/TimeLineRED.vue +51 -0
- package/plugin/components/actividad/ActividadController.vue +34 -0
- package/plugin/components/actividad/actividadCompletar/ActividadCompletar.vue +283 -0
- package/plugin/components/actividad/actividadCompletar/ActividadCompletarFooter.vue +63 -0
- package/plugin/components/actividad/actividadCompletar/ActividadParrafo.vue +218 -0
- package/plugin/components/actividad/actividadCompletar/ActividadResultados.vue +215 -0
- package/plugin/components/actividad/actividadCuestionario/Actividad.vue +222 -0
- package/plugin/components/actividad/actividadCuestionario/ActividadBarraAvance.vue +116 -0
- package/plugin/components/actividad/actividadCuestionario/ActividadPregunta.vue +146 -0
- package/plugin/components/actividad/actividadCuestionario/ActividadResultados.vue +215 -0
- package/plugin/components/audioMixins.js +73 -0
- package/plugin/components/componentSlotMixins.js +87 -0
- package/plugin/components/dialogoMixins.js +28 -0
- package/plugin/components/globalMixins.js +11 -0
- package/plugin/components/plantilla/Accesibilidad.vue +101 -0
- package/plugin/components/plantilla/AsideMenu.vue +242 -0
- package/plugin/components/plantilla/BannerInterno.vue +66 -0
- package/plugin/components/plantilla/BannerPrincipal.vue +104 -0
- package/plugin/components/plantilla/BarraAvance.vue +379 -0
- package/plugin/components/plantilla/Curso.vue +12 -0
- package/plugin/components/plantilla/Footer.vue +42 -0
- package/plugin/components/plantilla/Header.vue +152 -0
- package/plugin/components/plantilla/ScrollHorizontal.vue +105 -0
- package/plugin/components/plantillaMixins.js +34 -0
- package/plugin/components/slyderMixins.js +18 -0
- package/plugin/plugin.js +49 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
<template lang="pug">
|
|
2
|
+
.img-infografica-b(
|
|
3
|
+
:class="{'img-infografica-b--open': selectedItem}"
|
|
4
|
+
)
|
|
5
|
+
.img-infografica-b__img(:ref="'img-ref-'+mainId")
|
|
6
|
+
slot(name="imagen")
|
|
7
|
+
.img-infografica-b__content(v-if="elements.length")
|
|
8
|
+
.img-infografica-b__item(
|
|
9
|
+
v-for="(item, index) in elements"
|
|
10
|
+
:key="'img-infografica-b-btn-'+item.id"
|
|
11
|
+
:style="[{top: item.y},{left: item.x}]"
|
|
12
|
+
@click="selected = item.id"
|
|
13
|
+
)
|
|
14
|
+
.indicador--click(v-if="showIndicator && firstElement.id === item.id")
|
|
15
|
+
.img-infografica-b__item__tooltip
|
|
16
|
+
span.text-small(v-html="item.tooltip")
|
|
17
|
+
.img-infografica-b__item__dot
|
|
18
|
+
.img-infografica-b__item__numero(v-if="item.hasOwnProperty('numero')") {{item.numero}}
|
|
19
|
+
.img-infografica-b__item__numero(v-else)
|
|
20
|
+
i.fas.fa-plus
|
|
21
|
+
|
|
22
|
+
.img-infografica-b__modal.p-3.p-md-4.p-xl-5(v-if="selectedItem" :style="getImageHeight()")
|
|
23
|
+
.img-infografica-b__modal__btn-cerrar(@click="selected = 0")
|
|
24
|
+
i.fas.fa-times
|
|
25
|
+
.img-infografica-b__modal__contenido(v-child="selectedItem.elm")
|
|
26
|
+
|
|
27
|
+
.hidden-slot
|
|
28
|
+
slot
|
|
29
|
+
</template>
|
|
30
|
+
|
|
31
|
+
<script>
|
|
32
|
+
import componentSlotMixins from './componentSlotMixins'
|
|
33
|
+
export default {
|
|
34
|
+
name: 'ImagenInfograficaB',
|
|
35
|
+
mixins: [componentSlotMixins],
|
|
36
|
+
data: () => ({
|
|
37
|
+
firstSelection: false,
|
|
38
|
+
showIndicator: true,
|
|
39
|
+
}),
|
|
40
|
+
computed: {
|
|
41
|
+
selectedItem() {
|
|
42
|
+
return this.elements.find(element => element.id === this.selected)
|
|
43
|
+
},
|
|
44
|
+
firstElement() {
|
|
45
|
+
return this.elements.length && this.elements[0]
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
watch: {
|
|
49
|
+
selected() {
|
|
50
|
+
if (this.showIndicator) {
|
|
51
|
+
this.showIndicator = false
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
methods: {
|
|
56
|
+
getImageHeight() {
|
|
57
|
+
const imgElement = this.$refs['img-ref-' + this.mainId]
|
|
58
|
+
if (imgElement) {
|
|
59
|
+
return {
|
|
60
|
+
'min-height': imgElement.clientHeight + 'px',
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
}
|
|
66
|
+
</script>
|
|
67
|
+
|
|
68
|
+
<style lang="sass"></style>
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
<template lang="pug">
|
|
2
|
+
section.inicio
|
|
3
|
+
BannerHero.mb-5
|
|
4
|
+
|
|
5
|
+
//- Desarrollo de contenidos
|
|
6
|
+
#contenidos.container.tarjeta.tarjeta__template--azul-claro.px-3.py-4.px-sm-5.pb-sm-5.mb-5
|
|
7
|
+
.titulo__template--a.mb-4
|
|
8
|
+
h3 Desarrollo<br>de contenidos
|
|
9
|
+
|
|
10
|
+
.tarjeta--blanca.p-3.p-sm-4
|
|
11
|
+
.desarrollo-contenidos
|
|
12
|
+
router-link.desarrollo-contenidos__item(
|
|
13
|
+
v-for="item of desarrolloContenidosData"
|
|
14
|
+
:key="'desarrollo-'+item.nombreRuta"
|
|
15
|
+
:to="{name: item.nombreRuta}"
|
|
16
|
+
)
|
|
17
|
+
.desarrollo-contenidos__item__texto
|
|
18
|
+
span.desarrollo-contenidos__item__icono(v-if="item.hasOwnProperty('numero')" ) {{item.numero}}
|
|
19
|
+
i.desarrollo-contenidos__item__icono(v-else :class="item.icono")
|
|
20
|
+
span(v-html="item.titulo")
|
|
21
|
+
|
|
22
|
+
a.boton--sm
|
|
23
|
+
span.d-none.d-md-block Ver contenido
|
|
24
|
+
span.d-md-none Ver
|
|
25
|
+
|
|
26
|
+
.container.tarjeta.tarjeta__template--azul-claro.creditos-inicio.px-3.py-4.px-sm-5
|
|
27
|
+
|
|
28
|
+
.creditos-inicio__container(v-if="creditosInicio")
|
|
29
|
+
.creditos-inicio__item(v-for="(row, index) in creditosInicio")
|
|
30
|
+
.row
|
|
31
|
+
.creditos-inicio__titulo.col-md-3.col-lg-2.mb-3.mb-md-0
|
|
32
|
+
h5.mb-0(v-html="row.titulo")
|
|
33
|
+
|
|
34
|
+
.creditos-inicio__imagenes.col
|
|
35
|
+
img(v-for="imagen in row.contenido" :src="imagen")
|
|
36
|
+
hr(v-if="index != creditosInicio.length -1")
|
|
37
|
+
|
|
38
|
+
.text-center(v-else)
|
|
39
|
+
img.d-inline-block.mb-2(src="@/assets/logos/logo-sena.svg" style="width: 100px")
|
|
40
|
+
h5.mb-0 Ecosistema de recursos educativos digitales
|
|
41
|
+
Footer
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
</template>
|
|
45
|
+
<script>
|
|
46
|
+
export default {
|
|
47
|
+
name: 'Inicio',
|
|
48
|
+
computed: {
|
|
49
|
+
menuPrincipalData() {
|
|
50
|
+
return this.$config.menuPrincipal
|
|
51
|
+
},
|
|
52
|
+
creditosInicio() {
|
|
53
|
+
return this.$config.creditosInicio
|
|
54
|
+
},
|
|
55
|
+
desarrolloContenidosData() {
|
|
56
|
+
const allMenuData = [
|
|
57
|
+
...this.menuPrincipalData.menu,
|
|
58
|
+
...this.menuPrincipalData.subMenu,
|
|
59
|
+
]
|
|
60
|
+
return allMenuData.filter(item => item.desarrolloContenidos)
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
}
|
|
64
|
+
</script>
|
|
65
|
+
|
|
66
|
+
<style lang="sass">
|
|
67
|
+
.inicio
|
|
68
|
+
.footer
|
|
69
|
+
border-radius: 0 !important
|
|
70
|
+
.resultados-aprendizaje
|
|
71
|
+
&__item
|
|
72
|
+
margin-bottom: 20px
|
|
73
|
+
&:last-child
|
|
74
|
+
margin-bottom: 0
|
|
75
|
+
|
|
76
|
+
.desarrollo-contenidos
|
|
77
|
+
&__item
|
|
78
|
+
display: flex
|
|
79
|
+
align-items: center
|
|
80
|
+
justify-content: space-between
|
|
81
|
+
margin-bottom: 25px
|
|
82
|
+
padding: 5px
|
|
83
|
+
border-radius: $base-border-radius
|
|
84
|
+
|
|
85
|
+
&__texto
|
|
86
|
+
display: flex
|
|
87
|
+
align-items: center
|
|
88
|
+
color: $color-sistema-texto
|
|
89
|
+
|
|
90
|
+
&__icono
|
|
91
|
+
display: block
|
|
92
|
+
background-color: $color-sistema-g
|
|
93
|
+
font-size: 20px
|
|
94
|
+
font-weight: $base-black-font-weight
|
|
95
|
+
text-align: center
|
|
96
|
+
padding: 10px
|
|
97
|
+
line-height: 1em
|
|
98
|
+
width: 40px
|
|
99
|
+
margin-right: 15px
|
|
100
|
+
|
|
101
|
+
&:last-child
|
|
102
|
+
margin-bottom: 0
|
|
103
|
+
|
|
104
|
+
&:hover
|
|
105
|
+
background-color: $color-sistema-g
|
|
106
|
+
font-weight: $base-black-font-weight
|
|
107
|
+
color: $color-sistema-a
|
|
108
|
+
|
|
109
|
+
.creditos-inicio
|
|
110
|
+
border-bottom-left-radius: 0 !important
|
|
111
|
+
border-bottom-right-radius: 0 !important
|
|
112
|
+
&__container
|
|
113
|
+
hr
|
|
114
|
+
margin: 15px 0
|
|
115
|
+
&__titulo
|
|
116
|
+
display: flex
|
|
117
|
+
align-items: center
|
|
118
|
+
&__item
|
|
119
|
+
&__imagenes
|
|
120
|
+
display: flex
|
|
121
|
+
flex-wrap: wrap
|
|
122
|
+
img
|
|
123
|
+
width: auto
|
|
124
|
+
max-height: 60px
|
|
125
|
+
margin-right: 15px
|
|
126
|
+
margin-top: 5px
|
|
127
|
+
margin-bottom: 5px
|
|
128
|
+
</style>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<template lang="pug">
|
|
2
|
+
.linea-tiempo-a
|
|
3
|
+
.linea-tiempo-a__row(
|
|
4
|
+
v-for="(item,index) of datos"
|
|
5
|
+
:ref="'linea-tiempo-item-'+index"
|
|
6
|
+
)
|
|
7
|
+
.linea-tiempo-a__content
|
|
8
|
+
.linea-tiempo-a__text
|
|
9
|
+
h3.mb-2(v-html="item.titulo")
|
|
10
|
+
span(v-html="item.texto")
|
|
11
|
+
|
|
12
|
+
.linea-tiempo-a__content
|
|
13
|
+
.linea-tiempo-a__icon
|
|
14
|
+
.linea-tiempo-a__icon__container
|
|
15
|
+
span.h4(v-html="item.ano")
|
|
16
|
+
</template>
|
|
17
|
+
|
|
18
|
+
<script>
|
|
19
|
+
export default {
|
|
20
|
+
name: 'LineaTiempoA',
|
|
21
|
+
props: {
|
|
22
|
+
datos: {
|
|
23
|
+
type: Array,
|
|
24
|
+
default: () => [],
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
}
|
|
28
|
+
</script>
|
|
29
|
+
|
|
30
|
+
<style lang="sass"></style>
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<template lang="pug">
|
|
2
|
+
.linea-tiempo-b.py-5
|
|
3
|
+
.linea-tiempo-b__line-row.row
|
|
4
|
+
.col-5.d-none.d-md-block
|
|
5
|
+
.col-3.col-md-2
|
|
6
|
+
.linea-tiempo-b__line
|
|
7
|
+
.col-9.col-md-5
|
|
8
|
+
|
|
9
|
+
.linea-tiempo-b__row.row.align-items-center(
|
|
10
|
+
v-for="(item,index) of datos"
|
|
11
|
+
:ref="'linea-tiempo-item-'+index"
|
|
12
|
+
)
|
|
13
|
+
.col-5.d-none.d-md-block
|
|
14
|
+
.col-3.col-md-2
|
|
15
|
+
.linea-tiempo-b__icon
|
|
16
|
+
img(:src="item.icono")
|
|
17
|
+
.col-9.col-md-5
|
|
18
|
+
.linea-tiempo-b__content
|
|
19
|
+
h3.mb-2(v-html="item.titulo")
|
|
20
|
+
span(v-html="item.texto")
|
|
21
|
+
|
|
22
|
+
</template>
|
|
23
|
+
|
|
24
|
+
<script>
|
|
25
|
+
export default {
|
|
26
|
+
name: 'LineaTiempoB',
|
|
27
|
+
props: {
|
|
28
|
+
datos: {
|
|
29
|
+
type: Array,
|
|
30
|
+
default: () => [],
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
}
|
|
34
|
+
</script>
|
|
35
|
+
|
|
36
|
+
<style lang="sass"></style>
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
<template lang="pug">
|
|
2
|
+
.linea-tiempo-c
|
|
3
|
+
.row.flex-nowrap.mx-0.linea-tiempo-c__header.mb-4
|
|
4
|
+
.col-2.col-sm-auto.px-0.me-sm-3
|
|
5
|
+
.linea-tiempo-c__header__btn--left(@click="selected = leftBtnId")
|
|
6
|
+
i.fas.fa-angle-left
|
|
7
|
+
.col-8.col-sm.px-0
|
|
8
|
+
.row.mx-0.flex-nowrap.linea-tiempo-c__header__items
|
|
9
|
+
ScrollHorizontal(
|
|
10
|
+
v-if="elements.length"
|
|
11
|
+
:selectedId="'ltc-header-' + (selected -1)"
|
|
12
|
+
)
|
|
13
|
+
.col-6.col-sm-4.px-0.linea-tiempo-c__header__item(
|
|
14
|
+
v-for="(elm,index) of elements"
|
|
15
|
+
:key="'ltc-header-key-'+elm.id"
|
|
16
|
+
:id="'ltc-header-' +elm.id"
|
|
17
|
+
:class="itemClasses(elm.id)"
|
|
18
|
+
@click="selected = elm.id"
|
|
19
|
+
@mouseover="mostrarIndicador = mostrarIndicador && index >= 1 ? false : mostrarIndicador"
|
|
20
|
+
)
|
|
21
|
+
.indicador__container(v-if="mostrarIndicador && index === 1")
|
|
22
|
+
.indicador--click.indicador--sm
|
|
23
|
+
span.linea-tiempo-c__header__item__year(v-html="elm.titulo" :class="{'text-small' : textSmall }")
|
|
24
|
+
.linea-tiempo-c__header__item__line-container
|
|
25
|
+
.linea-tiempo-c__header__item__dot
|
|
26
|
+
.col-2.col-sm-auto.px-0.ms-sm-3.d-flex.justify-content-end
|
|
27
|
+
.linea-tiempo-c__header__btn--right(@click="selected = rightBtnId")
|
|
28
|
+
i.fas.fa-angle-right
|
|
29
|
+
|
|
30
|
+
.linea-tiempo-c__content
|
|
31
|
+
ScrollHorizontal(
|
|
32
|
+
v-if="elements.length"
|
|
33
|
+
:selectedId="'ltc-content-' + selected"
|
|
34
|
+
item-full-width
|
|
35
|
+
)
|
|
36
|
+
.linea-tiempo-c__content__item(
|
|
37
|
+
v-for="item in elements"
|
|
38
|
+
:key="'ltc-content-key-'+item.id"
|
|
39
|
+
:id="'ltc-content-'+item.id"
|
|
40
|
+
v-child="item.elm"
|
|
41
|
+
)
|
|
42
|
+
.hidden-slot
|
|
43
|
+
slot
|
|
44
|
+
</template>
|
|
45
|
+
|
|
46
|
+
<script>
|
|
47
|
+
import componentSlotMixins from './componentSlotMixins'
|
|
48
|
+
import ScrollHorizontal from './ScrollHorizontal'
|
|
49
|
+
export default {
|
|
50
|
+
name: 'LineaTiempoC',
|
|
51
|
+
components: { ScrollHorizontal },
|
|
52
|
+
mixins: [componentSlotMixins],
|
|
53
|
+
props: {
|
|
54
|
+
textSmall: {
|
|
55
|
+
type: Boolean,
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
data: () => ({
|
|
59
|
+
headerSelected: 0,
|
|
60
|
+
mostrarIndicador: true,
|
|
61
|
+
}),
|
|
62
|
+
computed: {
|
|
63
|
+
leftBtnId() {
|
|
64
|
+
return this.selected - 1 === this.mainId
|
|
65
|
+
? this.selected
|
|
66
|
+
: this.selected - 1
|
|
67
|
+
},
|
|
68
|
+
rightBtnId() {
|
|
69
|
+
return this.selected + 1 ===
|
|
70
|
+
this.elements[this.elements.length - 1].id + 1
|
|
71
|
+
? this.selected
|
|
72
|
+
: this.selected + 1
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
watch: {
|
|
76
|
+
elements(newVal, oldVal) {
|
|
77
|
+
if (!oldVal.length && newVal.length) {
|
|
78
|
+
this.headerSelected = newVal[0].id
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
methods: {
|
|
83
|
+
itemClasses(id) {
|
|
84
|
+
return [
|
|
85
|
+
{ 'linea-tiempo-c__header__item--active': id === this.selected },
|
|
86
|
+
{ 'linea-tiempo-c__header__item--before': id < this.selected },
|
|
87
|
+
this.elements.length > 6 ? 'col-lg-2' : 'col-lg',
|
|
88
|
+
this.elements.length >= 4 ? 'col-md-3' : 'col-md',
|
|
89
|
+
]
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
}
|
|
93
|
+
</script>
|
|
94
|
+
|
|
95
|
+
<style lang="sass"></style>
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<template lang="pug">
|
|
2
|
+
.linea-tiempo-d
|
|
3
|
+
.linea-tiempo-d__item.row(
|
|
4
|
+
v-for="(item, index) in elements"
|
|
5
|
+
:key="'linea-tiempo-d-key-'+item.id"
|
|
6
|
+
:class="{'linea-tiempo-d__item--selected' : selected === item.id}"
|
|
7
|
+
)
|
|
8
|
+
.col-auto.linea-tiempo-d__item__col-number
|
|
9
|
+
.linea-tiempo-d__item__number.tarjeta.tarjeta--gris(
|
|
10
|
+
:class="[,{'px-3' : item.numero.length > 1}]"
|
|
11
|
+
@click="selected = item.id"
|
|
12
|
+
@mouseover="mostrarIndicador = mostrarIndicador && index >= 1 ? false : mostrarIndicador"
|
|
13
|
+
)
|
|
14
|
+
.indicador__container(v-if="mostrarIndicador && index === 1")
|
|
15
|
+
.indicador--click
|
|
16
|
+
span(v-html="item.numero")
|
|
17
|
+
.linea-tiempo-d__item__dots(
|
|
18
|
+
v-if="index < elements.length -1"
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
.col(:class="{'mb-4' : index < elements.length -1}")
|
|
22
|
+
.linea-tiempo-d__item__content.tarjeta.tarjeta--gris
|
|
23
|
+
.linea-tiempo-d__item__content__title.px-3(
|
|
24
|
+
@click="selected = item.id"
|
|
25
|
+
@mouseover="mostrarIndicador = mostrarIndicador && index >= 1 ? false : mostrarIndicador"
|
|
26
|
+
)
|
|
27
|
+
span(v-html="item.titulo")
|
|
28
|
+
.linea-tiempo-d__item__content__slot(
|
|
29
|
+
:style="{ height: rendered && selected === item.id ? getActiveHeight(item.id) : 0 } "
|
|
30
|
+
)
|
|
31
|
+
.p-3.pt-0(:ref="item.id" v-child="item.elm" )
|
|
32
|
+
|
|
33
|
+
.hidden-slot
|
|
34
|
+
slot
|
|
35
|
+
</template>
|
|
36
|
+
|
|
37
|
+
<script>
|
|
38
|
+
import componentSlotMixins from './componentSlotMixins'
|
|
39
|
+
export default {
|
|
40
|
+
name: 'LineaTiempoD',
|
|
41
|
+
mixins: [componentSlotMixins],
|
|
42
|
+
data: () => ({
|
|
43
|
+
mostrarIndicador: true,
|
|
44
|
+
}),
|
|
45
|
+
computed: {},
|
|
46
|
+
watch: {},
|
|
47
|
+
methods: {},
|
|
48
|
+
}
|
|
49
|
+
</script>
|
|
50
|
+
|
|
51
|
+
<style lang="sass"></style>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<template lang="pug">
|
|
2
|
+
.linea-tiempo-e
|
|
3
|
+
.linea-tiempo-e__item(
|
|
4
|
+
v-for="(item, index) in elements"
|
|
5
|
+
:key="'linea-tiempo-e-key-'+item.id"
|
|
6
|
+
)
|
|
7
|
+
.linea-tiempo-e__item__header
|
|
8
|
+
h3.mb-1 {{item.titulo}}
|
|
9
|
+
p.mb-0(v-if="item.hasOwnProperty('subtitulo')") {{item.subtitulo}}
|
|
10
|
+
.linea-tiempo-e__item__body(v-child="item.elm")
|
|
11
|
+
|
|
12
|
+
.hidden-slot
|
|
13
|
+
slot
|
|
14
|
+
|
|
15
|
+
</template>
|
|
16
|
+
|
|
17
|
+
<script>
|
|
18
|
+
import componentSlotMixins from './componentSlotMixins'
|
|
19
|
+
export default {
|
|
20
|
+
name: 'LineaTiempoE',
|
|
21
|
+
mixins: [componentSlotMixins],
|
|
22
|
+
}
|
|
23
|
+
</script>
|
|
24
|
+
|
|
25
|
+
<style lang="sass"></style>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<template lang="pug">
|
|
2
|
+
.modal-a(:class="{'modal-a--abierto' : abrirModal}")
|
|
3
|
+
.modal-a__fondo(@click="$emit('update:abrir-modal', false)")
|
|
4
|
+
.modal-a__content.p-5
|
|
5
|
+
.modal-a__close-btn(@click="$emit('update:abrir-modal', false)")
|
|
6
|
+
i.fas.fa-times
|
|
7
|
+
slot
|
|
8
|
+
</template>
|
|
9
|
+
|
|
10
|
+
<script>
|
|
11
|
+
export default {
|
|
12
|
+
name: 'ModalA',
|
|
13
|
+
props: {
|
|
14
|
+
abrirModal: {
|
|
15
|
+
type: Boolean,
|
|
16
|
+
default: true,
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
}
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
<style lang="sass"></style>
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
<template lang="pug">
|
|
2
|
+
.pasos-a
|
|
3
|
+
.pasos-a__item(v-if="elements.length" v-for="(item, index) in elements")
|
|
4
|
+
.row.align-items-center.d-flex(
|
|
5
|
+
:class="!isEven(index) && 'flex-row-reverse'"
|
|
6
|
+
)
|
|
7
|
+
.col-3.col-sm-2.col-lg-1.pasos-a__numero.text-center.d-inline-flex.justify-content-center.align-items-center(
|
|
8
|
+
:class="getClass(index)"
|
|
9
|
+
)
|
|
10
|
+
.pasos-a__circle
|
|
11
|
+
.h2(v-if="tipo === 'n'") {{index + 1}}
|
|
12
|
+
.h2(v-else-if="tipo === 'l'") {{abecedario[index]}}
|
|
13
|
+
.col.py-3(v-child="item.elm" :class="!isEven(index) && 'text-end'")
|
|
14
|
+
.col-1
|
|
15
|
+
|
|
16
|
+
.row.pasos-a__linea(v-if="index + 1 != elements.length")
|
|
17
|
+
.col-3.col-sm-2.col-lg-1.pasos-a__linea__esquina
|
|
18
|
+
.pasos-a__linea__esquina__linea.top-right(v-if="isEven(index)")
|
|
19
|
+
.pasos-a__linea__esquina__linea.right-bottom(v-else)
|
|
20
|
+
.col-6.col-sm-8.col-lg-10
|
|
21
|
+
.hor-line
|
|
22
|
+
.col-3.col-sm-2.col-lg-1.pasos-a__linea__esquina
|
|
23
|
+
.pasos-a__linea__esquina__linea.left-bottom(v-if="isEven(index)")
|
|
24
|
+
.pasos-a__linea__esquina__linea.top-left(v-else)
|
|
25
|
+
|
|
26
|
+
.hidden-slot
|
|
27
|
+
slot
|
|
28
|
+
</template>
|
|
29
|
+
|
|
30
|
+
<script>
|
|
31
|
+
import componentSlotMixins from './componentSlotMixins'
|
|
32
|
+
export default {
|
|
33
|
+
name: 'PasosA',
|
|
34
|
+
mixins: [componentSlotMixins],
|
|
35
|
+
props: {
|
|
36
|
+
tipo: {
|
|
37
|
+
type: String,
|
|
38
|
+
default: 'n',
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
data: () => ({
|
|
42
|
+
abecedario: 'ABCDEFGHIJKLMNÑOPQRSTUVWXYZ',
|
|
43
|
+
}),
|
|
44
|
+
methods: {
|
|
45
|
+
getClass(idx) {
|
|
46
|
+
return idx === 0
|
|
47
|
+
? 'bottom'
|
|
48
|
+
: idx + 1 === this.elements.length
|
|
49
|
+
? 'top'
|
|
50
|
+
: 'full'
|
|
51
|
+
},
|
|
52
|
+
isEven(idx) {
|
|
53
|
+
return idx % 2 === 0
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
}
|
|
57
|
+
</script>
|
|
58
|
+
|
|
59
|
+
<style lang="sass"></style>
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
<template lang="pug">
|
|
2
|
+
.pasos-b
|
|
3
|
+
.row.flex-nowrap.mx-0.pasos-b__header.mb-4
|
|
4
|
+
.col-2.col-sm-auto.px-0.me-sm-3
|
|
5
|
+
.pasos-b__header__btn--left(@click="selected = leftBtnId")
|
|
6
|
+
i.fas.fa-angle-left
|
|
7
|
+
.col-8.col-sm.px-0
|
|
8
|
+
.row.mx-0.flex-nowrap.pasos-b__header__items
|
|
9
|
+
ScrollHorizontal(
|
|
10
|
+
v-if="elements.length"
|
|
11
|
+
:selectedId="'pb-header-' + (selected -1)"
|
|
12
|
+
)
|
|
13
|
+
.col-6.col-sm-4.px-0.pasos-b__header__item(
|
|
14
|
+
v-for="(elm,index) of elements"
|
|
15
|
+
:key="'pb-header-key-'+elm.id"
|
|
16
|
+
:id="'pb-header-' +elm.id"
|
|
17
|
+
:class="itemClasses(elm.id)"
|
|
18
|
+
)
|
|
19
|
+
.pasos-b__header__item__line-container
|
|
20
|
+
.pasos-b__header__item__dot
|
|
21
|
+
span.text-bold {{index +1}}
|
|
22
|
+
i.fas.fa-check
|
|
23
|
+
.pasos-b__header__item__tittle.px-2.text-small(v-html="elm.titulo")
|
|
24
|
+
.col-2.col-sm-auto.px-0.ms-sm-3.d-flex.justify-content-end
|
|
25
|
+
.pasos-b__header__btn--right(@click="selected = rightBtnId" @mouseover="mostrarIndicador = false")
|
|
26
|
+
i.fas.fa-angle-right
|
|
27
|
+
.indicador__container.indicador--left(v-if="mostrarIndicador")
|
|
28
|
+
.indicador--click
|
|
29
|
+
|
|
30
|
+
.linea-tiempo-c__content
|
|
31
|
+
ScrollHorizontal(
|
|
32
|
+
v-if="elements.length"
|
|
33
|
+
:selectedId="'pb-content-' + selected"
|
|
34
|
+
item-full-width
|
|
35
|
+
)
|
|
36
|
+
.linea-tiempo-c__content__item(
|
|
37
|
+
v-for="item in elements"
|
|
38
|
+
:key="'pb-content-key-'+item.id"
|
|
39
|
+
:id="'pb-content-'+item.id"
|
|
40
|
+
v-child="item.elm"
|
|
41
|
+
)
|
|
42
|
+
.hidden-slot
|
|
43
|
+
slot
|
|
44
|
+
</template>
|
|
45
|
+
|
|
46
|
+
<script>
|
|
47
|
+
import ScrollHorizontal from './ScrollHorizontal'
|
|
48
|
+
import componentSlotMixins from './componentSlotMixins'
|
|
49
|
+
export default {
|
|
50
|
+
name: 'PasosB',
|
|
51
|
+
components: { ScrollHorizontal },
|
|
52
|
+
mixins: [componentSlotMixins],
|
|
53
|
+
data: () => ({
|
|
54
|
+
headerSelected: 0,
|
|
55
|
+
mostrarIndicador: true,
|
|
56
|
+
}),
|
|
57
|
+
computed: {
|
|
58
|
+
leftBtnId() {
|
|
59
|
+
return this.selected - 1 === this.mainId
|
|
60
|
+
? this.selected
|
|
61
|
+
: this.selected - 1
|
|
62
|
+
},
|
|
63
|
+
rightBtnId() {
|
|
64
|
+
return this.selected + 1 ===
|
|
65
|
+
this.elements[this.elements.length - 1].id + 1
|
|
66
|
+
? this.selected
|
|
67
|
+
: this.selected + 1
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
watch: {
|
|
71
|
+
elements(newVal, oldVal) {
|
|
72
|
+
if (!oldVal.length && newVal.length) {
|
|
73
|
+
this.headerSelected = newVal[0].id
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
methods: {
|
|
78
|
+
itemClasses(id) {
|
|
79
|
+
return [
|
|
80
|
+
{ 'pasos-b__header__item--active': id === this.selected },
|
|
81
|
+
{ 'pasos-b__header__item--before': id < this.selected },
|
|
82
|
+
this.elements.length > 6 ? 'col-lg-2' : 'col-lg',
|
|
83
|
+
this.elements.length >= 4 ? 'col-md-3' : 'col-md',
|
|
84
|
+
]
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
}
|
|
88
|
+
</script>
|
|
89
|
+
|
|
90
|
+
<style lang="sass"></style>
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<template lang="pug">
|
|
2
|
+
.curso-main-container.referencias
|
|
3
|
+
BannerInterno(icono="fas fa-book" titulo="Referencias bibliográficas")
|
|
4
|
+
.container.tarjeta.tarjeta--blanca.p-4.p-md-5.mb-5
|
|
5
|
+
.referencias__item(v-for="ref in orderedData" :key="ref.link")
|
|
6
|
+
span(v-html="ref.referencia")
|
|
7
|
+
a.ms-1(v-if="ref.link" :href="ref.link" target="_blank")
|
|
8
|
+
span(v-html="ref.link")
|
|
9
|
+
i.ms-1.fas.fa-external-link-alt
|
|
10
|
+
hr.my-3
|
|
11
|
+
</template>
|
|
12
|
+
<script>
|
|
13
|
+
import plantillaMixins from './plantillaMixins'
|
|
14
|
+
export default {
|
|
15
|
+
name: 'Referencias',
|
|
16
|
+
mixins: [plantillaMixins],
|
|
17
|
+
computed: {
|
|
18
|
+
referenciasData() {
|
|
19
|
+
return this.$config.referencias
|
|
20
|
+
},
|
|
21
|
+
orderedData() {
|
|
22
|
+
const ArrayOrdered = [...this.referenciasData].sort((a, b) => {
|
|
23
|
+
const afl = this.quitarAcentos(a.referencia.split(' ')[0].toLowerCase())
|
|
24
|
+
const bfl = this.quitarAcentos(b.referencia.split(' ')[0].toLowerCase())
|
|
25
|
+
if (afl < bfl) return -1
|
|
26
|
+
if (afl > bfl) return 1
|
|
27
|
+
return 0
|
|
28
|
+
})
|
|
29
|
+
return ArrayOrdered
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
}
|
|
33
|
+
</script>
|
|
34
|
+
|
|
35
|
+
<style lang="sass">
|
|
36
|
+
.referencias
|
|
37
|
+
&__item
|
|
38
|
+
&:last-child
|
|
39
|
+
hr
|
|
40
|
+
display: none
|
|
41
|
+
a
|
|
42
|
+
color: $blue
|
|
43
|
+
text-decoration: underline
|
|
44
|
+
overflow-wrap: break-word
|
|
45
|
+
</style>
|