ep-lib-ts 0.1.25 → 0.1.27
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/dist/BgAudio-0d3e1906.js +5 -0
- package/dist/DisplayBox-e24b0716.js +5 -0
- package/dist/EpAlert-127a5ec0.js +5 -0
- package/dist/EpAudio-232093fb.js +5 -0
- package/dist/EpBadge-3b2b1b16.js +5 -0
- package/dist/EpBarChart-c85cf146.js +5 -0
- package/dist/EpBtn-6a6aa737.js +5 -0
- package/dist/EpCard-bc9eea67.js +5 -0
- package/dist/{EpDivider-24b9fdae.js → EpChip-2fc73c23.js} +1 -1
- package/dist/EpContentSlider-c3f223dc.js +5 -0
- package/dist/EpDivider-85308a54.js +5 -0
- package/dist/EpEdu-226108fc.js +5 -0
- package/dist/EpFlex-58da2ff0.js +5 -0
- package/dist/EpHeader-b3d00ddd.js +5 -0
- package/dist/{EpImg-c144d3d2.js → EpIcon-ff5233d3.js} +1 -1
- package/dist/EpIframe-e537d5fe.js +5 -0
- package/dist/EpImg-5da4a13a.js +5 -0
- package/dist/{EpInput-e4461512.js → EpInput-38a116e8.js} +36 -36
- package/dist/EpLineChart-e4b95ea0.js +5 -0
- package/dist/EpLink-1d0c4a58.js +5 -0
- package/dist/EpLinkVersion-4b7ceff9.js +5 -0
- package/dist/EpModal-25720774.js +5 -0
- package/dist/{EpNothing-49d6aaf9.js → EpNothing-0c1161b5.js} +2 -2
- package/dist/EpPieChart-d411615d.js +5 -0
- package/dist/EpQuestion-e8b96e78.js +5 -0
- package/dist/EpQuote-a90ebf39.js +5 -0
- package/dist/EpRadio-5bb772a8.js +5 -0
- package/dist/EpReading-edf407a0.js +5 -0
- package/dist/EpResource-99b6e173.js +5 -0
- package/dist/EpScope-da257fa6.js +5 -0
- package/dist/EpSection-c4d0969f.js +5 -0
- package/dist/{EpSelect-16c1dc3e.js → EpSelect-54dc2caf.js} +4 -4
- package/dist/EpSoftware-2c98a593.js +5 -0
- package/dist/EpSpinner-f183bf19.js +5 -0
- package/dist/EpSvg-44db647b.js +5 -0
- package/dist/EpTable-0cbaf4f8.js +5 -0
- package/dist/EpTerm-41a877f2.js +5 -0
- package/dist/EpText-c659f337.js +5 -0
- package/dist/EpTimeLine-587db16d.js +5 -0
- package/dist/EpVideo-77bcdc7a.js +5 -0
- package/dist/EpVideoPanopto-5cc9743f.js +5 -0
- package/dist/components/basics/EpBadge.vue.d.ts +9 -9
- package/dist/components/basics/EpBtn.vue.d.ts +11 -11
- package/dist/components/basics/EpDivider.vue.d.ts +9 -9
- package/dist/components/basics/EpImg.vue.d.ts +4 -4
- package/dist/components/basics/EpSection.vue.d.ts +6 -6
- package/dist/components/basics/EpSpinner.vue.d.ts +9 -9
- package/dist/components/charts/EpBarChart.vue.d.ts +6 -6
- package/dist/components/charts/EpLineChart.vue.d.ts +6 -6
- package/dist/components/charts/EpPieChart.vue.d.ts +6 -6
- package/dist/components/educationals/EpResource.vue.d.ts +5 -5
- package/dist/components/forms/EpCheckbox.vue.d.ts +9 -9
- package/dist/components/forms/EpInput.vue.d.ts +26 -26
- package/dist/components/forms/EpRadio.vue.d.ts +18 -18
- package/dist/components/forms/EpSelect.vue.d.ts +17 -17
- package/dist/components/forms/EpSwitch.vue.d.ts +18 -18
- package/dist/components/forms/EpTextarea.vue.d.ts +18 -18
- package/dist/components/forms/EpToggle.vue.d.ts +18 -18
- package/dist/components/medias/EpCarousel.vue.d.ts +6 -6
- package/dist/components/medias/EpSoftware.vue.d.ts +6 -6
- package/dist/components/medias/EpSvg.vue.d.ts +11 -1
- package/dist/components/medias/EpTerm.vue.d.ts +9 -9
- package/dist/components/tools/TimelineItem.vue.d.ts +9 -0
- package/dist/ep-lib-ts.js +5 -5
- package/dist/ep-lib-ts.umd.cjs +29 -29
- package/dist/{index-6098179c.js → index-8ba6a808.js} +3649 -3629
- package/dist/style.css +1 -1
- package/package.json +2 -2
- package/src/components/basics/EpImg.vue +1 -1
- package/src/components/basics/EpText.vue +30 -19
- package/src/components/medias/EpSvg.vue +29 -6
- package/src/components/medias/EpTerm.vue +3 -3
- package/src/components/medias/EpTimeLine.vue +52 -45
- package/src/components/signages/EpHeader.vue +5 -5
- package/src/components/tools/TimelineItem.vue +3 -3
- package/dist/BgAudio-19fc3ef0.js +0 -5
- package/dist/DisplayBox-fa19ab72.js +0 -5
- package/dist/EpAlert-ab232357.js +0 -5
- package/dist/EpAudio-00157c16.js +0 -5
- package/dist/EpBadge-cb10612f.js +0 -5
- package/dist/EpBarChart-83419240.js +0 -5
- package/dist/EpBtn-af008ece.js +0 -5
- package/dist/EpCard-c3b9b7f3.js +0 -5
- package/dist/EpChip-fe638461.js +0 -5
- package/dist/EpContentSlider-3f980aaa.js +0 -5
- package/dist/EpEdu-bfa65400.js +0 -5
- package/dist/EpFlex-7055e504.js +0 -5
- package/dist/EpHeader-ccce56a6.js +0 -5
- package/dist/EpIcon-c07e65b8.js +0 -5
- package/dist/EpIframe-8b386b2d.js +0 -5
- package/dist/EpLineChart-171befe5.js +0 -5
- package/dist/EpLink-198d821f.js +0 -5
- package/dist/EpLinkVersion-f04da9ef.js +0 -5
- package/dist/EpModal-a0b66d0c.js +0 -5
- package/dist/EpPieChart-582e11c2.js +0 -5
- package/dist/EpQuestion-4bde8b02.js +0 -5
- package/dist/EpQuote-45484b6a.js +0 -5
- package/dist/EpRadio-ae91a584.js +0 -5
- package/dist/EpReading-63a6b4a7.js +0 -5
- package/dist/EpResource-4103b249.js +0 -5
- package/dist/EpScope-737d27a9.js +0 -5
- package/dist/EpSection-7d78ae7e.js +0 -5
- package/dist/EpSoftware-41e74d15.js +0 -5
- package/dist/EpSpinner-a06a4c1e.js +0 -5
- package/dist/EpSvg-b79609dc.js +0 -5
- package/dist/EpTable-f7a4501f.js +0 -5
- package/dist/EpTerm-51f8798c.js +0 -5
- package/dist/EpText-3c37dea4.js +0 -5
- package/dist/EpTimeLine-fb50cf15.js +0 -5
- package/dist/EpVideo-7c248b82.js +0 -5
- package/dist/EpVideoPanopto-43a49f5c.js +0 -5
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.content[data-v-ab122c9c]{max-height:0;overflow:hidden}.modal-mask{position:fixed;z-index:9998;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;transition:opacity .3s ease}.modal-container{margin:auto;max-height:95%;transition:all .3s ease;z-index:9999}.modal-header h3{margin-top:0;color:#42b983}.modal-body{margin:20px 0}.modal-default-button{float:right}.modal-enter-from,.modal-leave-to{opacity:0}.modal-enter-from .modal-container,.modal-leave-to .modal-container{transform:scale(1.1)}.custom_index{z-index:9999;position:absolute;right:12rem}.h-custom{height:30rem}.p-custom p{margin-bottom:1em}.v-enter-active[data-v-049ea2df],.v-leave-active[data-v-049ea2df]{transition:opacity .5s ease}.v-enter-from[data-v-049ea2df],.v-leave-to[data-v-049ea2df]{opacity:0}.katex[data-v-24ff8b28]{font-size:1.3em}.content[data-v-
|
|
1
|
+
.content[data-v-ab122c9c]{max-height:0;overflow:hidden}.modal-mask{position:fixed;z-index:9998;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;transition:opacity .3s ease}.modal-container{margin:auto;max-height:95%;transition:all .3s ease;z-index:9999}.modal-header h3{margin-top:0;color:#42b983}.modal-body{margin:20px 0}.modal-default-button{float:right}.modal-enter-from,.modal-leave-to{opacity:0}.modal-enter-from .modal-container,.modal-leave-to .modal-container{transform:scale(1.1)}.custom_index{z-index:9999;position:absolute;right:12rem}.h-custom{height:30rem}.p-custom p{margin-bottom:1em}.v-enter-active[data-v-049ea2df],.v-leave-active[data-v-049ea2df]{transition:opacity .5s ease}.v-enter-from[data-v-049ea2df],.v-leave-to[data-v-049ea2df]{opacity:0}.katex[data-v-24ff8b28]{font-size:1.3em}.content[data-v-4cca257a]{max-height:0;overflow:hidden}.list-enter-active,.list-leave-active{transition:all .5s ease}.list-enter-from,.list-leave-to{opacity:0;transform:translate(30px)}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ep-lib-ts",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.27",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
7
7
|
"src/components/"
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"typescript": "^5.2.0-dev.20230801",
|
|
51
51
|
"vite": "^4.1.0",
|
|
52
52
|
"vite-plugin-dts": "^3.5.2",
|
|
53
|
-
"vue-tsc": "^1.8.
|
|
53
|
+
"vue-tsc": "^1.8.19"
|
|
54
54
|
},
|
|
55
55
|
"peerDependencies": {
|
|
56
56
|
"vue": "^3.2.45"
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import { computed, toRefs, h, } from "vue";
|
|
2
|
+
import { computed, toRefs, h, defineAsyncComponent} from "vue";
|
|
3
3
|
import { isHtml } from "../../composables/isHtml";
|
|
4
4
|
import { useMarkdown } from "../../composables/useMarkdown";
|
|
5
5
|
import EpAccordeon from "../interactions/EpAccordeon.vue";
|
|
6
6
|
|
|
7
|
-
|
|
8
7
|
interface Props {
|
|
9
8
|
glossary?: any[];
|
|
10
9
|
content: string;
|
|
@@ -30,13 +29,21 @@ const renderText = computed(() => {
|
|
|
30
29
|
if (!isHtml(props.content)) {
|
|
31
30
|
return useMarkdown(props.content);
|
|
32
31
|
}
|
|
32
|
+
if(!props.glossary){
|
|
33
|
+
return props.content
|
|
34
|
+
}
|
|
33
35
|
//return props.content
|
|
34
36
|
//create a div
|
|
35
37
|
const div = document.createElement("DIV");
|
|
38
|
+
|
|
39
|
+
//format string
|
|
40
|
+
const contentString = props.content.trim();
|
|
41
|
+
const newFormat = contentString.replace(/<p>/g, '<div style="margin-bottom: 1em;">').replace(/<\/p>/g, '</div>')
|
|
36
42
|
///add the html input to the div
|
|
37
|
-
div.innerHTML =
|
|
43
|
+
div.innerHTML = newFormat
|
|
38
44
|
///get strign of html
|
|
39
45
|
let newStr = div.outerHTML;
|
|
46
|
+
//console.log(newStr)
|
|
40
47
|
//find all span.ep_glossary_item to know the glossary terms in the text
|
|
41
48
|
const glossaryTerms = div.querySelectorAll(".ep_glossary_item");
|
|
42
49
|
// console.log(glossaryTerms)
|
|
@@ -45,6 +52,7 @@ const renderText = computed(() => {
|
|
|
45
52
|
///check every term and replace it
|
|
46
53
|
glossaryTerms.forEach((item) => {
|
|
47
54
|
//get id
|
|
55
|
+
|
|
48
56
|
const id = item.getAttribute("data-id");
|
|
49
57
|
//get content text
|
|
50
58
|
const render_word = item.innerHTML;
|
|
@@ -57,7 +65,9 @@ const renderText = computed(() => {
|
|
|
57
65
|
//if was found
|
|
58
66
|
if (term) {
|
|
59
67
|
///add the new values to the array
|
|
68
|
+
|
|
60
69
|
const word = item.outerHTML;
|
|
70
|
+
// console.log(word)
|
|
61
71
|
//check if the term has relations
|
|
62
72
|
const foundedRelations = _glossary.filter((x) =>
|
|
63
73
|
x.relation.some((item: string) => {
|
|
@@ -69,29 +79,29 @@ const renderText = computed(() => {
|
|
|
69
79
|
const termsRelation = foundedRelations.map((x) => x.term);
|
|
70
80
|
const variation = term.variation;
|
|
71
81
|
const hasImge = term.src ? term.src : "";
|
|
72
|
-
|
|
73
|
-
const replaceWord = ` <EpTerm term="${term.term}" word="${render_word}" variations="${variation}" graminfo="${term.graminfo}" src='${hasImge}' domain="${term.domain}" relations="${termsRelation}" idrelation="${idsRelation}"> ${term.definition} </EpTerm> `;
|
|
82
|
+
const replaceWord = `<div style="display:inline"><EpTerm term="${term.term}" word="${render_word}" variations="${variation}" graminfo="${term.graminfo}" src="${hasImge}" domain="${term.domain}" relations="${termsRelation}" idrelation="${idsRelation}" > ${term.definition}</EpTerm> </div>`;
|
|
74
83
|
//replace output string
|
|
75
84
|
newStr = newStr.replace(word, replaceWord);
|
|
85
|
+
|
|
76
86
|
}
|
|
77
87
|
});
|
|
78
88
|
}
|
|
79
|
-
div.innerHTML = newStr
|
|
80
|
-
|
|
81
|
-
return div.innerHTML;
|
|
89
|
+
div.innerHTML = newStr
|
|
90
|
+
return div.innerHTML
|
|
82
91
|
});
|
|
83
92
|
|
|
84
|
-
//
|
|
85
|
-
// const r = {
|
|
86
|
-
// components: {
|
|
87
|
-
// epterm: defineAsyncComponent(()=>import('../medias/EpTerm.vue')),
|
|
88
|
-
// },
|
|
89
|
-
// template: `<div>${renderText.value}</div>`,
|
|
90
|
-
// };
|
|
93
|
+
//console.log(renderText.value)
|
|
91
94
|
|
|
92
|
-
|
|
93
|
-
|
|
95
|
+
const myRenderComponent = () => {
|
|
96
|
+
const r = {
|
|
97
|
+
components: {
|
|
98
|
+
epterm: defineAsyncComponent(()=>import('../medias/EpTerm.vue')),
|
|
99
|
+
},
|
|
100
|
+
template: `${renderText.value}`,
|
|
101
|
+
};
|
|
94
102
|
|
|
103
|
+
return h(r);
|
|
104
|
+
};
|
|
95
105
|
|
|
96
106
|
|
|
97
107
|
const { compact } = toRefs(props);
|
|
@@ -99,9 +109,10 @@ const { compact } = toRefs(props);
|
|
|
99
109
|
|
|
100
110
|
<template>
|
|
101
111
|
<div>
|
|
102
|
-
|
|
112
|
+
|
|
113
|
+
<myRenderComponent v-if="!compact"></myRenderComponent>
|
|
103
114
|
<EpAccordeon outlined :title="renderTitle" v-else>
|
|
104
|
-
<
|
|
115
|
+
<myRenderComponent></myRenderComponent>
|
|
105
116
|
</EpAccordeon>
|
|
106
117
|
</div>
|
|
107
118
|
</template>
|
|
@@ -6,16 +6,39 @@ import { useRenderText } from "../../composables/useRenderText";
|
|
|
6
6
|
import { mdiImage } from '@mdi/js';
|
|
7
7
|
import EpEdu from '../educationals/EpEdu.vue';
|
|
8
8
|
|
|
9
|
+
|
|
10
|
+
|
|
9
11
|
interface Props {
|
|
10
12
|
desc?:string;
|
|
11
13
|
title?:string;
|
|
12
14
|
content?:string;
|
|
13
15
|
mandateLevel?: string | MandateLevel | null;
|
|
14
|
-
type?:MediaVariants
|
|
16
|
+
type?:MediaVariants;
|
|
17
|
+
cols?:string | number;
|
|
15
18
|
}
|
|
16
19
|
|
|
17
20
|
const props = withDefaults(defineProps<Props>(), {
|
|
21
|
+
cols: "6",
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
const Cols = [
|
|
25
|
+
'basis-6/12',
|
|
26
|
+
'basis-1/12',
|
|
27
|
+
'basis-2/12',
|
|
28
|
+
'basis-3/12',
|
|
29
|
+
'basis-4/12',
|
|
30
|
+
'basis-5/12',
|
|
31
|
+
'basis-6/12',
|
|
32
|
+
'basis-7/12',
|
|
33
|
+
'basis-8/12',
|
|
34
|
+
'basis-9/12',
|
|
35
|
+
'basis-10/12',
|
|
36
|
+
'basis-11/12',
|
|
37
|
+
'basis-12/12',
|
|
38
|
+
]
|
|
18
39
|
|
|
40
|
+
const renderCols = computed(() => {
|
|
41
|
+
return Cols[+props.cols]
|
|
19
42
|
})
|
|
20
43
|
|
|
21
44
|
const renderText = computed(()=> {
|
|
@@ -27,7 +50,7 @@ const renderText = computed(()=> {
|
|
|
27
50
|
|
|
28
51
|
|
|
29
52
|
|
|
30
|
-
const {title, content} = toRefs(props)
|
|
53
|
+
const {title, content, cols} = toRefs(props)
|
|
31
54
|
|
|
32
55
|
</script>
|
|
33
56
|
|
|
@@ -37,11 +60,11 @@ const {title, content} = toRefs(props)
|
|
|
37
60
|
<div v-html="renderText"></div>
|
|
38
61
|
</template>
|
|
39
62
|
<template #content>
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
63
|
+
<div class="flex">
|
|
64
|
+
<div v-if="content" :class="`mx-auto ${renderCols} bg-primary`">
|
|
65
|
+
<div v-html="content" class="w-full"></div>
|
|
66
|
+
</div>
|
|
43
67
|
</div>
|
|
44
|
-
</div>
|
|
45
68
|
</template>
|
|
46
69
|
</EpEdu>
|
|
47
70
|
</template>
|
|
@@ -81,12 +81,12 @@ const renderDomain = computed(() => {
|
|
|
81
81
|
const toggleModal = () => {
|
|
82
82
|
show.value = !show.value
|
|
83
83
|
}
|
|
84
|
-
|
|
84
|
+
/*
|
|
85
85
|
const el = (contentref:any) => {
|
|
86
86
|
const contentHtml = contentref.innerHTML
|
|
87
87
|
const renderHtml = useRenderText(contentHtml)
|
|
88
88
|
contentref.innerHTML = renderHtml
|
|
89
|
-
}
|
|
89
|
+
}*/
|
|
90
90
|
|
|
91
91
|
const { term, graminfo, labelClose, src } = toRefs(props);
|
|
92
92
|
</script>
|
|
@@ -128,7 +128,7 @@ const { term, graminfo, labelClose, src } = toRefs(props);
|
|
|
128
128
|
>
|
|
129
129
|
</div>
|
|
130
130
|
<!-- <div v-html="renderText"></div> -->
|
|
131
|
-
<div
|
|
131
|
+
<div>
|
|
132
132
|
<slot></slot>
|
|
133
133
|
</div>
|
|
134
134
|
<EpImg v-if="src" :src="src"></EpImg>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { ref, toRefs, onMounted, computed } from 'vue';
|
|
3
3
|
//types in capital letter
|
|
4
|
-
import {TagTimeLine, HeadTimeLine, EventTimeLine, ColorsTags, colorsTimeLine} from '../../types/TimeLine'
|
|
4
|
+
import { TagTimeLine, HeadTimeLine, EventTimeLine, ColorsTags, colorsTimeLine } from '../../types/TimeLine'
|
|
5
5
|
import TimeLineItem from '../tools/TimelineItem.vue'
|
|
6
6
|
import EpIcon from '../basics/EpIcon.vue';
|
|
7
7
|
import { mdiCheckboxBlankCircleOutline } from '@mdi/js';
|
|
@@ -9,83 +9,89 @@ import { mdiCheckboxMarkedCircle } from '@mdi/js';
|
|
|
9
9
|
|
|
10
10
|
interface TimelineHeading {
|
|
11
11
|
title?: {
|
|
12
|
-
text?:HeadTimeLine
|
|
12
|
+
text?: HeadTimeLine
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
interface Props {
|
|
17
|
-
tags:TagTimeLine[];
|
|
18
|
-
events:EventTimeLine[];
|
|
19
|
-
title?:TimelineHeading;
|
|
17
|
+
tags: TagTimeLine[];
|
|
18
|
+
events: EventTimeLine[];
|
|
19
|
+
title?: TimelineHeading;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
const props = withDefaults(defineProps<Props>(), {
|
|
25
|
+
|
|
26
|
+
})
|
|
23
27
|
|
|
24
28
|
const timeLineTags = ref<TagTimeLine[]>()
|
|
25
29
|
|
|
26
|
-
onMounted(()=> {
|
|
27
|
-
if(props.tags){
|
|
28
|
-
timeLineTags.value = props.tags.map(tag => ({...tag, active:false}))
|
|
30
|
+
onMounted(() => {
|
|
31
|
+
if (props.tags) {
|
|
32
|
+
timeLineTags.value = props.tags.map(tag => ({ ...tag, active: false }))
|
|
29
33
|
}
|
|
30
34
|
})
|
|
31
35
|
|
|
32
|
-
const styleTag = (color:ColorsTags) => {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
const styleTag = (color: ColorsTags) => {
|
|
37
|
+
const styles = colorsTimeLine[color]
|
|
38
|
+
if (!styles) {
|
|
39
|
+
return colorsTimeLine.noTag
|
|
40
|
+
}
|
|
41
|
+
return styles
|
|
38
42
|
}
|
|
39
43
|
|
|
40
|
-
const activeTags = computed(()=>{
|
|
41
|
-
|
|
44
|
+
const activeTags = computed(() => {
|
|
45
|
+
return timeLineTags.value?.filter(tag => tag.active) || []
|
|
42
46
|
})
|
|
43
47
|
|
|
44
|
-
const filteredEvents = computed(()=>{
|
|
45
|
-
if(activeTags.value.length === 0){
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
})
|
|
54
|
-
return filtered
|
|
48
|
+
const filteredEvents = computed(() => {
|
|
49
|
+
if (activeTags.value.length === 0) {
|
|
50
|
+
return props.events
|
|
51
|
+
} else {
|
|
52
|
+
const filtered = props.events.filter(event => {
|
|
53
|
+
if (event.tag) {
|
|
54
|
+
///event.tag.id === this.activesTags.some(t => t.id)
|
|
55
|
+
return activeTags.value.some(t => t.id === event.tag?.id)
|
|
55
56
|
}
|
|
57
|
+
})
|
|
58
|
+
return filtered
|
|
59
|
+
}
|
|
56
60
|
})
|
|
57
61
|
|
|
58
|
-
const toggleActive = (tag:TagTimeLine) => {
|
|
59
|
-
|
|
62
|
+
const toggleActive = (tag: TagTimeLine) => {
|
|
63
|
+
tag.active = !tag.active
|
|
60
64
|
}
|
|
61
65
|
|
|
62
|
-
|
|
66
|
+
|
|
67
|
+
const { title } = toRefs(props)
|
|
63
68
|
|
|
64
69
|
</script>
|
|
65
70
|
|
|
66
71
|
<template>
|
|
67
72
|
<!-- component -->
|
|
68
|
-
|
|
73
|
+
<div>
|
|
69
74
|
<div class="w-10/12 md:w-7/12 lg:6/12 mx-auto relative">
|
|
70
75
|
<h3 class="text-2xl mb-2">{{ title?.title?.text?.headline }}</h3>
|
|
71
76
|
<p>{{ title?.title?.text?.text }}</p>
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
<div class="my-4 px-2">
|
|
78
|
+
<template v-for="tag in timeLineTags" :key="tag.id">
|
|
79
|
+
<span @click="toggleActive(tag)"
|
|
80
|
+
:class="`mr-2 mb-2 inline-block cursor-pointer text-sm px-2 py-1 rounded border ${styleTag(tag.color).border} ${tag.active ? 'text-white' : styleTag(tag.color).text} ${tag.active ? styleTag(tag.color).bg : ''}`">
|
|
81
|
+
{{ tag.title }} <EpIcon :icon-path="tag.active ? mdiCheckboxMarkedCircle : mdiCheckboxBlankCircleOutline"
|
|
82
|
+
size="14"></EpIcon>
|
|
83
|
+
</span>
|
|
84
|
+
</template>
|
|
85
|
+
</div>
|
|
79
86
|
<div class="border-l-4 pl-1 transition-all">
|
|
80
|
-
<TransitionGroup name="list" tag="
|
|
81
|
-
<template v-for="(item, i) in filteredEvents" :key="`${i}-card-${item.id}`">
|
|
82
|
-
<TimeLineItem :event="item"></TimeLineItem>
|
|
87
|
+
<TransitionGroup name="list" tag="div">
|
|
88
|
+
<template v-for="(item, i) in filteredEvents" :key="`${i}-card-${item.id}`">
|
|
89
|
+
<TimeLineItem :event="item"></TimeLineItem>
|
|
83
90
|
</template>
|
|
84
|
-
|
|
91
|
+
</TransitionGroup>
|
|
85
92
|
</div>
|
|
86
93
|
</div>
|
|
87
|
-
|
|
88
|
-
|
|
94
|
+
</div>
|
|
89
95
|
</template>
|
|
90
96
|
|
|
91
97
|
<style>
|
|
@@ -93,6 +99,7 @@ const {title} = toRefs(props)
|
|
|
93
99
|
.list-leave-active {
|
|
94
100
|
transition: all 0.5s ease;
|
|
95
101
|
}
|
|
102
|
+
|
|
96
103
|
.list-enter-from,
|
|
97
104
|
.list-leave-to {
|
|
98
105
|
opacity: 0;
|
|
@@ -46,12 +46,12 @@ const styles = computed(() => {
|
|
|
46
46
|
return `
|
|
47
47
|
flex
|
|
48
48
|
flex-col
|
|
49
|
-
items-start
|
|
50
49
|
overflow-hidden
|
|
51
50
|
w-full
|
|
52
51
|
absolute
|
|
53
52
|
${props.big ? "min-h-screen" : "h-96"}
|
|
54
|
-
bg-cover
|
|
53
|
+
bg-cover
|
|
54
|
+
bg-center`;
|
|
55
55
|
});
|
|
56
56
|
|
|
57
57
|
const bgImg = computed(() => {
|
|
@@ -77,13 +77,13 @@ const { title, headerImgColor, big } = toRefs(props);
|
|
|
77
77
|
<section :class="`${big?'h-screen ':''}items-center overflow-hidden relative `" ref="el">
|
|
78
78
|
<div :class="styles" :style="`background-image:url('${bgImg}'); filter:url(#${headerImgColor});`"></div>
|
|
79
79
|
|
|
80
|
-
<div :class="`relative ${big?'mb-36':''}`">
|
|
80
|
+
<div :class="`relative ${big?'mb-36':''} h-full items-end`">
|
|
81
81
|
<div class="flex md:justify-end justify-center pt-5">
|
|
82
82
|
<EpChip v-if="synchrone" :prependIcon="mdiCast">Synchrone</EpChip>
|
|
83
83
|
<EpChip v-if="duration" :prependIcon="mdiTimerOutline"> {{ duration }}</EpChip>
|
|
84
84
|
<EpChip v-if="assessment" :prependIcon="mdiChairSchool">Formatif</EpChip>
|
|
85
85
|
</div>
|
|
86
|
-
<div class="md:px-64 flex w-full py-24 grow flex items-
|
|
86
|
+
<div class="md:px-64 flex w-full py-24 grow flex h-full items-center">
|
|
87
87
|
<div class="container flex flex-col px-8 max-w-7xl md:flex-row lg:px-16">
|
|
88
88
|
<div v-if="title || subtitle"
|
|
89
89
|
class="p-4 md:items-center backdrop-blur-md backdrop-brightness-50 backdrop-opacity-75 rounded"
|
|
@@ -101,7 +101,7 @@ const { title, headerImgColor, big } = toRefs(props);
|
|
|
101
101
|
</div>
|
|
102
102
|
</div>
|
|
103
103
|
|
|
104
|
-
<div v-if="props.big" class="animate-bounce">
|
|
104
|
+
<div v-if="props.big" class="animate-bounce absolute bottom-10 left-1/2">
|
|
105
105
|
<div class="mx-auto w-12 bg-white rounded-full p-2" @click="clickScroll">
|
|
106
106
|
<EpIcon :iconPath="mdiChevronDown" size="32"></EpIcon>
|
|
107
107
|
</div>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import { ref, toRefs, onMounted, computed } from "vue";
|
|
2
|
+
import { ref, toRefs, onMounted, computed, watch } from "vue";
|
|
3
3
|
import { useImage } from '@vueuse/core'
|
|
4
4
|
import { useRenderText } from "../../composables/useRenderText";
|
|
5
5
|
///types with Capital letters... object with styles same name in lowercase
|
|
@@ -10,18 +10,19 @@ interface Props {
|
|
|
10
10
|
title?: string | null;
|
|
11
11
|
date?: string;
|
|
12
12
|
event: EventTimeLine;
|
|
13
|
+
collapse?:boolean
|
|
13
14
|
}
|
|
14
15
|
|
|
15
16
|
const props = withDefaults(defineProps<Props>(), {
|
|
16
17
|
title: 'En savoir plus',
|
|
17
18
|
type: 'base',
|
|
19
|
+
collapse:false
|
|
18
20
|
});
|
|
19
21
|
|
|
20
22
|
|
|
21
23
|
const showDiv = ref(true);
|
|
22
24
|
const collapsible = ref();
|
|
23
25
|
|
|
24
|
-
|
|
25
26
|
onMounted(() => {
|
|
26
27
|
var content = collapsible.value
|
|
27
28
|
if (showDiv.value) {
|
|
@@ -88,7 +89,6 @@ const { event } = toRefs(props)
|
|
|
88
89
|
|
|
89
90
|
<template>
|
|
90
91
|
<div
|
|
91
|
-
|
|
92
92
|
:class="`cursor-pointer ml-10 relative flex items-center p-2 ${colorEvent.border} border border-2 rounded-r-lg mb-8 flex-col md:flex-row space-y-4 md:space-y-0`"
|
|
93
93
|
@click="toggleDivVisibility">
|
|
94
94
|
<!-- Dot -->
|
package/dist/BgAudio-19fc3ef0.js
DELETED
package/dist/EpAlert-ab232357.js
DELETED
package/dist/EpAudio-00157c16.js
DELETED
package/dist/EpBadge-cb10612f.js
DELETED
package/dist/EpBtn-af008ece.js
DELETED
package/dist/EpCard-c3b9b7f3.js
DELETED
package/dist/EpChip-fe638461.js
DELETED
package/dist/EpEdu-bfa65400.js
DELETED
package/dist/EpFlex-7055e504.js
DELETED
package/dist/EpIcon-c07e65b8.js
DELETED
package/dist/EpLink-198d821f.js
DELETED
package/dist/EpModal-a0b66d0c.js
DELETED
package/dist/EpQuote-45484b6a.js
DELETED
package/dist/EpRadio-ae91a584.js
DELETED
package/dist/EpScope-737d27a9.js
DELETED