ep-lib-ts 1.0.1 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/dist/BgAudio-C9b05zDe.js +4 -0
  2. package/dist/DisplayBox-DwV5vdf4.js +4 -0
  3. package/dist/EpAlert-DEERqegj.js +4 -0
  4. package/dist/EpAudio-D1Pergv3.js +4 -0
  5. package/dist/EpBadge-CXG9CCs-.js +4 -0
  6. package/dist/EpBarChart-DqcfpObW.js +4 -0
  7. package/dist/EpBtn-CjpUqmnk.js +4 -0
  8. package/dist/EpCard-D2Yuf56Q.js +4 -0
  9. package/dist/EpChip-1BDl9148.js +4 -0
  10. package/dist/{EpCodeblock-DVX2XFFj.js → EpCodeblock-DX7H-PE3.js} +2 -2
  11. package/dist/EpContentSlider-G24sedKV.js +4 -0
  12. package/dist/EpDarkmode-CVX7I7Oh.js +22 -0
  13. package/dist/EpDivider-By54laP-.js +4 -0
  14. package/dist/EpEdu-D_vwhqgL.js +4 -0
  15. package/dist/EpFlex-C8FUteog.js +4 -0
  16. package/dist/EpFunnelChart-vUi3II3g.js +4 -0
  17. package/dist/EpHeader-IOUvF-no.js +4 -0
  18. package/dist/EpHotsPot-DFz_Du9o.js +59 -0
  19. package/dist/{EpHover-BL7JsbVZ.js → EpHover-D3o7-8F6.js} +1 -1
  20. package/dist/EpIcon-C5N1EmKo.js +4 -0
  21. package/dist/EpIframe-DlYnZzA2.js +4 -0
  22. package/dist/EpImg-DBdJTFxB.js +4 -0
  23. package/dist/{EpInput-DMIxjwBM.js → EpInput-DtqEfGYC.js} +429 -438
  24. package/dist/EpLineChart-DHRVciuH.js +4 -0
  25. package/dist/EpLink-BA65sB5T.js +4 -0
  26. package/dist/EpLinkVersion-DJWO90l3.js +4 -0
  27. package/dist/{EpList-BkH08ROd.js → EpList-gjrvWauh.js} +1 -1
  28. package/dist/EpModal-Bkn0UYrU.js +4 -0
  29. package/dist/{EpNothing-IEAPsIPI.js → EpNothing-Di7BP_gj.js} +1 -1
  30. package/dist/EpPieChart-ep1v3gNm.js +4 -0
  31. package/dist/EpQuestion-BIz290OE.js +4 -0
  32. package/dist/EpQuote-C7vFc3nU.js +4 -0
  33. package/dist/EpRadio-DZTarnBT.js +4 -0
  34. package/dist/EpRadioSummative-CorOWGOQ.js +4 -0
  35. package/dist/EpReading-DMtuDG_x.js +4 -0
  36. package/dist/EpResource-BYf45kWh.js +4 -0
  37. package/dist/EpScope-Ba2Q1Ff_.js +4 -0
  38. package/dist/EpSection-DscmvV47.js +4 -0
  39. package/dist/EpSelect-DRPIgo_k.js +43 -0
  40. package/dist/EpSkeleton-CI5AEDN9.js +4 -0
  41. package/dist/EpSoftware-DqR9_72s.js +4 -0
  42. package/dist/EpSpinner-BYYDdBAv.js +4 -0
  43. package/dist/EpSummativeTable-DYj6fOso.js +4 -0
  44. package/dist/EpSvg-qV8Jv7hA.js +4 -0
  45. package/dist/EpTable-CIXtqslP.js +4 -0
  46. package/dist/EpTerm-zVklM1Ty.js +4 -0
  47. package/dist/EpText-DlG9XQYl.js +4 -0
  48. package/dist/EpTextarea-D8UCQuga.js +44 -0
  49. package/dist/EpTimeLine-8okBy26f.js +4 -0
  50. package/dist/{EpToggle-CfXYpI1b.js → EpToggle-BDp54LpY.js} +26 -23
  51. package/dist/EpVideo-CMhul8b_.js +4 -0
  52. package/dist/EpVideoPanopto-CB7xf6qs.js +4 -0
  53. package/dist/EpWordDef-Ctx-w2Ll.js +4 -0
  54. package/dist/components/basics/EpAvatar.vue.d.ts +4 -4
  55. package/dist/components/basics/EpBadge.vue.d.ts +16 -4
  56. package/dist/components/basics/EpBtn.vue.d.ts +4 -11
  57. package/dist/components/basics/EpCard.vue.d.ts +4 -4
  58. package/dist/components/basics/EpChip.vue.d.ts +4 -4
  59. package/dist/components/basics/EpDivider.vue.d.ts +4 -4
  60. package/dist/components/basics/EpFlex.vue.d.ts +1 -1
  61. package/dist/components/basics/EpHover.vue.d.ts +4 -4
  62. package/dist/components/basics/EpIcon.vue.d.ts +4 -4
  63. package/dist/components/basics/EpImg.vue.d.ts +24 -4
  64. package/dist/components/basics/EpList.vue.d.ts +1 -1
  65. package/dist/components/basics/EpListitem.vue.d.ts +4 -4
  66. package/dist/components/basics/EpSection.vue.d.ts +4 -4
  67. package/dist/components/basics/EpSpinner.vue.d.ts +4 -4
  68. package/dist/components/basics/EpTable.vue.d.ts +3 -3
  69. package/dist/components/basics/EpText.vue.d.ts +16 -4
  70. package/dist/components/charts/EpBarChart.vue.d.ts +16 -4
  71. package/dist/components/charts/EpFunnelChart.vue.d.ts +62 -0
  72. package/dist/components/charts/EpLineChart.vue.d.ts +16 -4
  73. package/dist/components/charts/EpPieChart.vue.d.ts +16 -4
  74. package/dist/components/educationals/EpCodeblock.vue.d.ts +5 -5
  75. package/dist/components/educationals/EpEdu.vue.d.ts +17 -5
  76. package/dist/components/educationals/EpReading.vue.d.ts +49 -17
  77. package/dist/components/educationals/EpResource.vue.d.ts +5 -5
  78. package/dist/components/educationals/EpScope.vue.d.ts +4 -4
  79. package/dist/components/forms/EpCheckbox.vue.d.ts +5 -5
  80. package/dist/components/forms/EpInput.vue.d.ts +5 -5
  81. package/dist/components/forms/EpRadio.vue.d.ts +5 -5
  82. package/dist/components/forms/EpRadioSummative.vue.d.ts +5 -5
  83. package/dist/components/forms/EpSelect.vue.d.ts +36 -4
  84. package/dist/components/forms/EpSwitch.vue.d.ts +5 -5
  85. package/dist/components/forms/EpTextarea.vue.d.ts +17 -5
  86. package/dist/components/forms/EpToggle.vue.d.ts +17 -5
  87. package/dist/components/interactions/EpAccordeon.vue.d.ts +16 -8
  88. package/dist/components/interactions/EpContentSlider.vue.d.ts +22 -3
  89. package/dist/components/interactions/EpDarkmode.vue.d.ts +6 -2
  90. package/dist/components/interactions/EpHotsPot.vue.d.ts +18 -3
  91. package/dist/components/interactions/EpModal.vue.d.ts +5 -5
  92. package/dist/components/interactions/EpQuestion.vue.d.ts +25 -5
  93. package/dist/components/interactions/EpSummativeTable.vue.d.ts +3 -3
  94. package/dist/components/interactions/EpTabs.vue.d.ts +1 -1
  95. package/dist/components/interactions/EpTooltip.vue.d.ts +4 -4
  96. package/dist/components/medias/EpAudio.vue.d.ts +21 -13
  97. package/dist/components/medias/EpCarousel.vue.d.ts +6 -6
  98. package/dist/components/medias/EpIframe.vue.d.ts +5 -4
  99. package/dist/components/medias/EpKatex.vue.d.ts +4 -4
  100. package/dist/components/medias/EpLink.vue.d.ts +5 -5
  101. package/dist/components/medias/EpLinkVersion.vue.d.ts +16 -4
  102. package/dist/components/medias/EpSoftware.vue.d.ts +17 -5
  103. package/dist/components/medias/EpSvg.vue.d.ts +5 -5
  104. package/dist/components/medias/EpTerm.vue.d.ts +32 -8
  105. package/dist/components/medias/EpTimeLine.vue.d.ts +3 -3
  106. package/dist/components/medias/EpVideo.vue.d.ts +17 -9
  107. package/dist/components/medias/EpVideoPanopto.vue.d.ts +5 -5
  108. package/dist/components/medias/EpWordDef.vue.d.ts +38 -3
  109. package/dist/components/signages/EpAlert.vue.d.ts +4 -4
  110. package/dist/components/signages/EpBadge.vue.d.ts +5 -5
  111. package/dist/components/signages/EpHeader.vue.d.ts +21 -5
  112. package/dist/components/signages/EpNothing.vue.d.ts +1 -1
  113. package/dist/components/signages/EpQuote.vue.d.ts +4 -4
  114. package/dist/components/signages/EpSkeleton.vue.d.ts +4 -4
  115. package/dist/components/tools/BgAudio.vue.d.ts +4 -4
  116. package/dist/components/tools/DisplayBox.vue.d.ts +1 -1
  117. package/dist/components/tools/SvgFilter.vue.d.ts +1 -1
  118. package/dist/components/tools/TimelineItem.vue.d.ts +4 -4
  119. package/dist/ep-lib-ts.js +18 -17
  120. package/dist/ep-lib-ts.umd.cjs +55 -48
  121. package/dist/{index-Dl6z_ITi.js → index-BPsMiFm1.js} +3985 -3789
  122. package/dist/{index-M54_P8uC.js → index-DNwUz3uD.js} +2 -2
  123. package/dist/index.d.ts +84 -42
  124. package/dist/{prism-B0q7vMaL.js → prism-DENTMpmV.js} +1 -1
  125. package/dist/style.css +1 -1
  126. package/dist/types/Btn.d.ts +8 -0
  127. package/package.json +2 -2
  128. package/src/components/basics/EpAvatar.vue +1 -1
  129. package/src/components/basics/EpBadge.vue +11 -2
  130. package/src/components/basics/EpBtn.vue +3 -15
  131. package/src/components/basics/EpCard.vue +21 -11
  132. package/src/components/basics/EpChip.vue +1 -2
  133. package/src/components/basics/EpImg.vue +18 -6
  134. package/src/components/basics/EpSection.vue +1 -1
  135. package/src/components/basics/EpTable.vue +5 -5
  136. package/src/components/basics/EpText.vue +10 -2
  137. package/src/components/charts/EpBarChart.vue +11 -3
  138. package/src/components/charts/EpFunnelChart.vue +129 -0
  139. package/src/components/charts/EpLineChart.vue +11 -3
  140. package/src/components/charts/EpPieChart.vue +12 -4
  141. package/src/components/educationals/EpCodeblock.vue +1 -1
  142. package/src/components/educationals/EpEdu.vue +17 -10
  143. package/src/components/educationals/EpReading.vue +45 -27
  144. package/src/components/educationals/EpResource.vue +2 -2
  145. package/src/components/educationals/EpScope.vue +1 -1
  146. package/src/components/forms/EpRadio.vue +1 -1
  147. package/src/components/forms/EpRadioSummative.vue +1 -1
  148. package/src/components/forms/EpSelect.vue +24 -6
  149. package/src/components/forms/EpSwitch.vue +1 -1
  150. package/src/components/forms/EpTextarea.vue +9 -1
  151. package/src/components/forms/EpToggle.vue +9 -1
  152. package/src/components/interactions/EpAccordeon.vue +13 -7
  153. package/src/components/interactions/EpContentSlider.vue +17 -6
  154. package/src/components/interactions/EpDarkmode.vue +25 -14
  155. package/src/components/interactions/EpHotsPot.vue +11 -2
  156. package/src/components/interactions/EpQuestion.vue +17 -5
  157. package/src/components/interactions/EpSummativeTable.vue +1 -1
  158. package/src/components/interactions/EpTabs.vue +1 -1
  159. package/src/components/interactions/EpTooltip.vue +1 -1
  160. package/src/components/medias/EpAudio.vue +17 -11
  161. package/src/components/medias/EpCarousel.vue +2 -2
  162. package/src/components/medias/EpIframe.vue +6 -2
  163. package/src/components/medias/EpKatex.vue +1 -1
  164. package/src/components/medias/EpLink.vue +2 -2
  165. package/src/components/medias/EpLinkVersion.vue +11 -3
  166. package/src/components/medias/EpSoftware.vue +12 -4
  167. package/src/components/medias/EpSvg.vue +2 -2
  168. package/src/components/medias/EpTerm.vue +24 -11
  169. package/src/components/medias/EpTimeLine.vue +2 -2
  170. package/src/components/medias/EpVideo.vue +13 -7
  171. package/src/components/medias/EpVideoPanopto.vue +2 -3
  172. package/src/components/medias/EpWordDef.vue +33 -11
  173. package/src/components/signages/EpAlert.vue +1 -1
  174. package/src/components/signages/EpBadge.vue +1 -1
  175. package/src/components/signages/EpHeader.vue +13 -3
  176. package/src/components/signages/EpSkeleton.vue +2 -2
  177. package/src/components/tools/TimelineItem.vue +1 -1
  178. package/dist/BgAudio-C8bS54bl.js +0 -4
  179. package/dist/DisplayBox-BTPVW9_v.js +0 -4
  180. package/dist/EpAlert-Daji8LsR.js +0 -4
  181. package/dist/EpAudio-Dq7twl4x.js +0 -4
  182. package/dist/EpBadge-DBfMe1r_.js +0 -4
  183. package/dist/EpBarChart-cAlm0rKf.js +0 -4
  184. package/dist/EpBtn-S2VJnt--.js +0 -4
  185. package/dist/EpCard-SvaBmdDK.js +0 -4
  186. package/dist/EpChip-Chn_9bRP.js +0 -4
  187. package/dist/EpContentSlider-Ds2GlrkO.js +0 -4
  188. package/dist/EpDarkmode--_9Qi6HH.js +0 -19
  189. package/dist/EpDivider-Bj4Zya_F.js +0 -4
  190. package/dist/EpEdu-Y7Lkf3Ew.js +0 -4
  191. package/dist/EpFlex-5yWhvYX7.js +0 -4
  192. package/dist/EpHeader-CEQBk1ah.js +0 -4
  193. package/dist/EpHotsPot-NGjKJCc8.js +0 -56
  194. package/dist/EpIcon-CuhZ90Zx.js +0 -4
  195. package/dist/EpIframe-DbPnkezB.js +0 -4
  196. package/dist/EpImg-DJ9gNwhJ.js +0 -4
  197. package/dist/EpLineChart-ALvSFQ-w.js +0 -4
  198. package/dist/EpLink-CQSfQHRj.js +0 -4
  199. package/dist/EpLinkVersion-VIxCHjDt.js +0 -4
  200. package/dist/EpModal-CYy1Iu1T.js +0 -4
  201. package/dist/EpPieChart-Cpxylmzw.js +0 -4
  202. package/dist/EpQuestion-gFjB_YVU.js +0 -4
  203. package/dist/EpQuote-C2WMKC8z.js +0 -4
  204. package/dist/EpRadio-CZu2BYd-.js +0 -4
  205. package/dist/EpRadioSummative-POEEv1YI.js +0 -4
  206. package/dist/EpReading-6LKvPJl5.js +0 -4
  207. package/dist/EpResource-Bqu38I44.js +0 -4
  208. package/dist/EpScope-B04S9t4O.js +0 -4
  209. package/dist/EpSection-B9obOS7v.js +0 -4
  210. package/dist/EpSelect-DLGx5g-U.js +0 -31
  211. package/dist/EpSkeleton-rkvPpE2y.js +0 -4
  212. package/dist/EpSoftware-DmH-rUDN.js +0 -4
  213. package/dist/EpSpinner-7XiNy9LV.js +0 -4
  214. package/dist/EpSummativeTable-JWOA25gE.js +0 -4
  215. package/dist/EpSvg-Dfvodejy.js +0 -4
  216. package/dist/EpTable-C0lD6aED.js +0 -4
  217. package/dist/EpTerm-XGV0Zf2w.js +0 -4
  218. package/dist/EpText-DhHXfEHv.js +0 -4
  219. package/dist/EpTextarea-DyMM95ER.js +0 -41
  220. package/dist/EpTimeLine-CDL7liGh.js +0 -4
  221. package/dist/EpVideo-em0qb_rk.js +0 -4
  222. package/dist/EpVideoPanopto-DAMRV6HD.js +0 -4
  223. package/dist/EpWordDef-bLyQzqx8.js +0 -4
@@ -0,0 +1,129 @@
1
+ <script setup lang="ts">
2
+ import { computed, toRefs } from "vue";
3
+ import EpEdu from "../educationals/EpEdu.vue";
4
+ import { mdiTriangle } from '@mdi/js';
5
+ import { type MediaVariants } from "../../types/Medias";
6
+ import { isHtml } from "../../composables/isHtml";
7
+ import { useMarkdown } from "../../composables/useMarkdown";
8
+
9
+ interface OptionsFormmater{
10
+ dataPointIndex:number;
11
+ w:{globals:{
12
+ labels:string[]
13
+ }}
14
+ }
15
+
16
+ interface seriesFunnel {
17
+ name: string,
18
+ data: number[]
19
+ }
20
+
21
+ interface Props {
22
+ series: seriesFunnel[];
23
+ labels: string[];
24
+ //options: OptionsFunnelChart;
25
+ id?: string;
26
+ title?:string;
27
+ center?: boolean;
28
+ intentions?: string;
29
+ hideIcon?: boolean;
30
+ type?: MediaVariants;
31
+ mandateLevel?: string | null;
32
+ source?: string;
33
+ width?: string;
34
+ height?: number;
35
+ isFunnel?:boolean;
36
+ colors?:string[];
37
+ }
38
+
39
+ const props = withDefaults(defineProps<Props>(), {
40
+ center: true,
41
+ type: 'base',
42
+ width: "800",
43
+ height: 350,
44
+ isFunnel:true,
45
+ colors:()=>[
46
+ '#283243',
47
+ '#3b4f6d',
48
+ '#465e87',
49
+ '#5072a5',
50
+ '#648bb9',
51
+ '#6e9ac3',
52
+ '#8ab3d0',
53
+ '#b0cee0',]
54
+ });
55
+
56
+
57
+ const renderText = computed(() => {
58
+ if (!props.intentions) {
59
+ return null;
60
+ }
61
+ if (!isHtml(props.intentions)) {
62
+ return useMarkdown(props.intentions);
63
+ }
64
+ return props.intentions;
65
+ });
66
+
67
+ const optionsFunnel = computed(()=> {
68
+ return {
69
+ chart: {
70
+ type: 'bar',
71
+ height: props.height,
72
+ },
73
+ plotOptions: {
74
+ bar: {
75
+ borderRadius: 0,
76
+ horizontal: true,
77
+ distributed: true,
78
+ barHeight: '80%',
79
+ isFunnel: props.isFunnel,
80
+ },
81
+ },
82
+ colors: props.colors,
83
+ dataLabels: {
84
+ enabled: true,
85
+ formatter: function (val:string, opt:OptionsFormmater) {
86
+ let label = ''
87
+ if(opt.w.globals.labels[opt.dataPointIndex]){
88
+ label = opt.w.globals.labels[opt.dataPointIndex] + ': '
89
+ }
90
+ return label + val
91
+ },
92
+ dropShadow: {
93
+ enabled: true,
94
+ },
95
+ },
96
+ xaxis: {
97
+ categories: props.labels
98
+ },
99
+ legend: {
100
+ show: false,
101
+ },
102
+ }
103
+ })
104
+
105
+
106
+ const { center, series, source, labels, width } = toRefs(props)
107
+
108
+
109
+ </script>
110
+
111
+ <template>
112
+
113
+ <EpEdu :title="title" :type="type" :hideIcon="hideIcon" :icon="mdiTriangle"
114
+ :mandateLevel="mandateLevel">
115
+ <template #intentions v-if="renderText">
116
+
117
+ <div v-html="renderText"></div>
118
+ </template>
119
+ <template #content>
120
+ <div :class="`p-4 ${center ? 'flex justify-center' : ''}`" v-if="labels && series">
121
+ <apexchart type="bar" :width="width" :height="height" :options="optionsFunnel"
122
+ :series="series"></apexchart>
123
+ </div>
124
+ </template>
125
+ <template #actions v-if="source">
126
+ <p>{{ source }}</p>
127
+ </template>
128
+ </EpEdu>
129
+ </template>
@@ -2,7 +2,7 @@
2
2
  import { computed, toRefs } from "vue";
3
3
  import EpEdu from "../educationals/EpEdu.vue";
4
4
  import { mdiChartLine } from "@mdi/js";
5
- import { MediaVariants } from "../../types/Medias";
5
+ import { type MediaVariants } from "../../types/Medias";
6
6
  import { isHtml } from "../../composables/isHtml";
7
7
  import { useMarkdown } from "../../composables/useMarkdown";
8
8
 
@@ -31,11 +31,19 @@ interface Props {
31
31
  mandateLevel?: string | null;
32
32
  source?: string;
33
33
  width?:string;
34
+ labels?:{
35
+ dataNoDisponible?:string;
36
+ }
34
37
  }
35
38
 
36
39
  const props = withDefaults(defineProps<Props>(), {
37
40
  center: true,
38
- width:"500"
41
+ width:"500",
42
+ labels:()=>{
43
+ return {
44
+ dataNoDisponible:"Data no disponible"
45
+ }
46
+ }
39
47
  });
40
48
 
41
49
  const renderText = computed(() => {
@@ -81,7 +89,7 @@ const { center, series, source, width} = toRefs(props)
81
89
  <apexchart :width="width" type="line" :options="globalOptions" :series="series"></apexchart>
82
90
  </div>
83
91
  <div v-else>
84
- <p>Data no disponible</p>
92
+ <p>{{labels.dataNoDisponible}}</p>
85
93
  </div>
86
94
  </template>
87
95
  <template #actions v-if="source">
@@ -2,7 +2,7 @@
2
2
  import { computed, toRefs } from "vue";
3
3
  import EpEdu from "../educationals/EpEdu.vue";
4
4
  import { mdiChartPie } from '@mdi/js';
5
- import { MediaVariants } from "../../types/Medias";
5
+ import { type MediaVariants } from "../../types/Medias";
6
6
  import { isHtml } from "../../composables/isHtml";
7
7
  import { useMarkdown } from "../../composables/useMarkdown";
8
8
 
@@ -33,13 +33,21 @@ interface Props {
33
33
  type?: MediaVariants;
34
34
  mandateLevel?: string | null;
35
35
  source?: string;
36
- width?:string
36
+ width?:string;
37
+ labels?:{
38
+ dataNoDisponible?:string;
39
+ }
37
40
  }
38
41
 
39
42
  const props = withDefaults(defineProps<Props>(), {
40
43
  center: true,
41
44
  type:'base',
42
- width:"450"
45
+ width:"450",
46
+ labels:()=>{
47
+ return {
48
+ dataNoDisponible:"Data no disponible"
49
+ }
50
+ }
43
51
  });
44
52
 
45
53
 
@@ -70,7 +78,7 @@ const { center, series, source, options, width } = toRefs(props)
70
78
  <apexchart :width="width" type="pie" :options="options" :series="series"></apexchart>
71
79
  </div>
72
80
  <div v-else>
73
- <p>Data no disponible</p>
81
+ <p>{{labels.dataNoDisponible}}</p>
74
82
  </div>
75
83
  </template>
76
84
  <template #actions v-if="source">
@@ -1,7 +1,7 @@
1
1
  <script setup lang="ts">
2
2
  import VCodeBlock from '@wdns/vue-code-block';
3
3
  import {defaultOption} from "../../types/Codeblock";
4
- import Theme from "../../types/Codeblock";
4
+ import type Theme from "../../types/Codeblock";
5
5
  import { computed} from "vue";
6
6
  import { ref } from "vue";
7
7
 
@@ -1,8 +1,8 @@
1
1
  <script setup lang="ts">
2
2
  import { toRefs, computed, useSlots } from "vue";
3
3
  //types with capital letter, object styles in lowercase
4
- import { MediaVariants, mediaVariants } from "../../types/Medias";
5
- import { MandateLevel } from "../../types/MandateLevel";
4
+ import { type MediaVariants, mediaVariants } from "../../types/Medias";
5
+ import { type MandateLevel } from "../../types/MandateLevel";
6
6
  import EpIcon from "../basics/EpIcon.vue";
7
7
  import EpDivider from "../basics/EpDivider.vue";
8
8
  import EpChip from "../basics/EpChip.vue";
@@ -19,7 +19,10 @@ interface Props {
19
19
  type?: MediaVariants;
20
20
  intentions?: string;
21
21
  hideIcon?:boolean;
22
- flat?:boolean
22
+ flat?:boolean;
23
+ labels?:{
24
+ intentions?:string;
25
+ }
23
26
  }
24
27
 
25
28
  const props = withDefaults(defineProps<Props>(), {
@@ -27,6 +30,11 @@ const props = withDefaults(defineProps<Props>(), {
27
30
  type: "base",
28
31
  hideIcon:false,
29
32
  flat:false,
33
+ labels:()=>{
34
+ return {
35
+ intentions:"[Intentions]"
36
+ }
37
+ }
30
38
  });
31
39
 
32
40
  //get slots
@@ -76,16 +84,16 @@ const { title, hideIcon } = toRefs(props);
76
84
 
77
85
  <template>
78
86
  <div :class="containerStyle">
79
- <div :class="`${topBarStyle}`" v-if="title || mandateLevel">
87
+ <div :class="`${topBarStyle}`" class="dark:bg-gray-300" v-if="title || mandateLevel">
80
88
  <!-- <EpIcon :size="24" :icon-path="mdiBookOpenVariant"></EpIcon> -->
81
89
  <h3><EpIcon v-if="!hideIcon" :iconPath="renderIcon" size="24"></EpIcon> <span class="font-bold align-middle">{{ title }}</span></h3>
82
90
  <EpScope v-if="mandateLevel" :title="renderMandateLevel"></EpScope>
83
91
  </div>
84
- <div class="px-5">
92
+ <div class="px-5 dark:bg-gray-300">
85
93
  <div class="py-2" v-if="hasIntentions">
86
94
  <!-- <EpIcon :size="24" :icon-path="mdiInformationOutline"></EpIcon> -->
87
95
  <h4 class="font-semibold mb-2 text-sm uppercase tracking-wide text-gray-500">
88
- [Intentions]
96
+ {{labels.intentions}}
89
97
  </h4>
90
98
  <slot name="intentions"></slot>
91
99
  <EpDivider/>
@@ -94,9 +102,8 @@ const { title, hideIcon } = toRefs(props);
94
102
  <slot name="content"></slot>
95
103
  </div>
96
104
  </div>
97
- <div :class="bottomBarStyle" v-if="hasActions">
98
- <slot name="actions"></slot>
99
-
100
- </div>
105
+ <div :class="bottomBarStyle" class="dark:bg-gray-300" v-if="hasActions">
106
+ <slot name="actions"></slot>
107
+ </div>
101
108
  </div>
102
109
  </template>
@@ -4,8 +4,8 @@ import EpIcon from "../basics/EpIcon.vue";
4
4
  import EpBtn from "../basics/EpBtn.vue";
5
5
  import DisplayBox from "../tools/DisplayBox.vue";
6
6
  import EpEdu from "./EpEdu.vue";
7
- import { MediaVariants } from "../../types/Medias";
8
- import { MandateLevel } from '../../types/MandateLevel';
7
+ import { type MediaVariants } from "../../types/Medias";
8
+ import { type MandateLevel } from '../../types/MandateLevel';
9
9
  import { useRenderText } from "../../composables/useRenderText";
10
10
  import { mdiBookmarkBox } from "@mdi/js";
11
11
  import { mdiBookOpenVariant } from "@mdi/js";
@@ -27,11 +27,19 @@ interface Props {
27
27
  more?: boolean;
28
28
  version_link?: null;
29
29
  hideCover?: boolean;
30
- labelcard?: string;
31
- labelBtb?: string;
32
- labelIntentions?: string;
33
30
  type?:MediaVariants;
34
31
  hideIcon?:boolean;
32
+ labels?:{
33
+ par?:string;
34
+ dans?:string;
35
+ lire?:string;
36
+ fermer?:string;
37
+ details?:string;
38
+ lecture?:string;
39
+ card?: string;
40
+ Btb?: string;
41
+ Intentions?: string;
42
+ }
35
43
  }
36
44
 
37
45
  // type, taxonomyLevel, courseCode, courseTitle, title, subtitle, height, src, color, synchrone
@@ -41,13 +49,23 @@ const props = withDefaults(defineProps<Props>(), {
41
49
  cover: "",
42
50
  icon: "mdiBookmarkBox",
43
51
  hideCover: false,
44
- labelcard: "lecture",
45
- labelBtb: "lire",
46
- labelIntentions: "Intentions de lecture",
47
52
  intentions: "",
48
53
  compact: false,
49
54
  type:"base",
50
- hideIcon:false
55
+ hideIcon:false,
56
+ labels:()=>{
57
+ return {
58
+ par:"par",
59
+ dans:"dans",
60
+ lire:"Lire",
61
+ fermer:"Fermer",
62
+ details:"détails",
63
+ lecture:"Lecture",
64
+ card: "lecture",
65
+ Btb: "lire",
66
+ intentions: "Intentions de lecture",
67
+ }
68
+ }
51
69
  });
52
70
 
53
71
  const old_image = "https://live.staticflickr.com/4868/45940268562_c5f7fdd06b_q.jpg";
@@ -72,7 +90,6 @@ const {
72
90
  intentions,
73
91
  cover,
74
92
  hideCover,
75
- labelcard,
76
93
  year,
77
94
  author,
78
95
  container,
@@ -80,7 +97,8 @@ const {
80
97
  pages,
81
98
  type,
82
99
  mandateLevel,
83
- url
100
+ url,
101
+ labels,
84
102
  } = toRefs(props);
85
103
 
86
104
  const errorImg = (event:Event)=>{
@@ -92,7 +110,7 @@ const errorImg = (event:Event)=>{
92
110
  </script>
93
111
 
94
112
  <template>
95
- <div class="flex rounded-lg overflow-hidden bg-white md:flex-row" v-if="!compact">
113
+ <div class="flex rounded-lg overflow-hidden bg-white md:flex-row " v-if="!compact">
96
114
  <template v-if="!hideCover">
97
115
  <div
98
116
  v-if="hasCover"
@@ -103,13 +121,13 @@ const errorImg = (event:Event)=>{
103
121
 
104
122
  <div
105
123
  v-else
106
- class="h-96 w-full rounded-t-lg md:h-auto md:w-56 md:rounded-none md:rounded-l-lg flex justify-center items-center text-gray-300"
124
+ class="h-96 w-full rounded-t-lg md:h-auto md:w-56 md:rounded-none md:rounded-l-lg flex justify-center items-center text-gray-300 dark:bg-gray- "
107
125
  >
108
126
  <EpIcon :icon-path="mdiBookOpenPageVariant" size="95"></EpIcon>
109
127
  </div>
110
128
  </template>
111
129
  <div class="flex flex-col w-full">
112
- <EpEdu :title="labelcard" :icon="mdiBookOpenVariant" flat :type="type" :hideIcon="hideIcon" :mandateLevel="mandateLevel">
130
+ <EpEdu :title="labels.card" :icon="mdiBookOpenVariant" flat :type="type" :hideIcon="hideIcon" :mandateLevel="mandateLevel">
113
131
  <template #intentions v-if="useRenderText(intentions)">
114
132
  <div v-html="useRenderText(intentions)"></div>
115
133
  </template>
@@ -121,14 +139,14 @@ const errorImg = (event:Event)=>{
121
139
  <div class="flex">
122
140
  <div class="flex-1 py-2" v-if="hasDetails">
123
141
  <p class="font-medium">
124
- <span class="text-sm italic pr-1" v-if="author">par</span>
142
+ <span class="text-sm italic pr-1" v-if="author">{{labels.par}}</span>
125
143
  <span class="font-bold mr-1" v-if="author">{{ author }}</span>
126
144
  <span v-if="year">({{ year }})</span>
127
145
  <span v-if="year && editor">, </span>
128
146
  <span v-if="editor">{{ editor }}</span>
129
147
  </p>
130
148
  <p v-if="container">
131
- <span class="text-sm italic pr-1">dans</span>
149
+ <span class="text-sm italic pr-1">{{labels.dans}}</span>
132
150
  <span class="">{{ container }}</span>
133
151
  </p>
134
152
  </div>
@@ -143,13 +161,13 @@ const errorImg = (event:Event)=>{
143
161
  </div>
144
162
  </template>
145
163
  <template #actions>
146
- <EpBtn :color="type=='base'?'text-gray-700':'text-white'" :type="type" :href="url" v-if="url">LIRE</EpBtn>
164
+ <EpBtn :color="type=='base'?'text-gray-700':'text-white'" :type="type" :href="url" v-if="url">{{labels.lire}}</EpBtn>
147
165
  </template>
148
166
  </EpEdu>
149
167
  </div>
150
168
  </div>
151
169
  <!--compact mode-->
152
- <EpEdu :title="labelcard" :icon="mdiBookOpenVariant" flat :type="type" :hideIcon="hideIcon" v-else>
170
+ <EpEdu :title="labels.card" :icon="mdiBookOpenVariant" flat :type="type" :hideIcon="hideIcon" v-else>
153
171
  <template #intentions v-if="useRenderText(intentions)">
154
172
  <div v-html="useRenderText(intentions)"></div>
155
173
  </template>
@@ -165,15 +183,15 @@ const errorImg = (event:Event)=>{
165
183
  <div class="p-5">
166
184
  <DisplayBox>
167
185
  <template #default="{ open }">
168
- <EpBtn text @click.stop="open"> détails </EpBtn>
186
+ <EpBtn text @click.stop="open"> {{labels.details}} </EpBtn>
169
187
  </template>
170
188
  <template #menu="{ close }">
171
189
  <div class="w-[32rem]">
172
- <div class="flex flex-col rounded-lg bg-white md:flex-row">
190
+ <div class="flex flex-col rounded-lg bg-white md:flex-row ">
173
191
  <template v-if="!hideCover">
174
192
  <img
175
193
  v-if="hasCover"
176
- class="object-cover h-96 w-full rounded-t-lg object-cover md:h-auto md:w-56 md:rounded-none md:rounded-l-lg"
194
+ class="object-cover h-96 w-full rounded-t-lg object-cover md:h-auto md:w-56 md:rounded-none md:rounded-l-lg "
177
195
  :src="cover"
178
196
  :alt="`image de la lecture ${title}`"
179
197
  @error="errorImg"
@@ -186,9 +204,9 @@ const errorImg = (event:Event)=>{
186
204
  </div>
187
205
  </template>
188
206
  <div class="flex flex-col justify-between w-full">
189
- <div class="bg-neutral-100 text-left px-5 py-2">
207
+ <div class="bg-neutral-100 text-left px-5 py-2 dark:bg-neutral-300 ">
190
208
  <EpIcon :size="24" :icon-path="mdiBookOpenVariant"></EpIcon>
191
- <span class="pl-2 align-middle">Lecture</span>
209
+ <span class="pl-2 align-middle">{{labels.lecture}}</span>
192
210
  </div>
193
211
  <div class="w-full px-5">
194
212
  <h4
@@ -201,14 +219,14 @@ const errorImg = (event:Event)=>{
201
219
  <div class="flex">
202
220
  <div class="flex-1 py-2" v-if="hasDetails">
203
221
  <p class="font-medium">
204
- <span class="text-sm italic pr-1" v-if="author">par</span>
222
+ <span class="text-sm italic pr-1" v-if="author">{{labels.par}}</span>
205
223
  <span class="font-bold mr-2" v-if="author">{{ author }}</span>
206
224
  <span v-if="year"> ({{ year }})</span>
207
225
  <span v-if="year && editor">, </span>
208
226
  <span v-if="editor">{{ editor }}</span>
209
227
  </p>
210
228
  <p v-if="container">
211
- <span class="text-sm italic pr-1">dans</span>
229
+ <span class="text-sm italic pr-1">{{labels.dans}}</span>
212
230
  <span>{{ container }}</span>
213
231
  </p>
214
232
  </div>
@@ -224,7 +242,7 @@ const errorImg = (event:Event)=>{
224
242
  </div>
225
243
  </div>
226
244
  <div class="bg-neutral-100 text-right pr-5">
227
- <EpBtn text @click.stop="close"> Fermer </EpBtn>
245
+ <EpBtn text @click.stop="close"> {{labels.fermer}} </EpBtn>
228
246
  </div>
229
247
  </div>
230
248
  </div>
@@ -235,7 +253,7 @@ const errorImg = (event:Event)=>{
235
253
 
236
254
  <div class="border-l p-5">
237
255
  <EpBtn text :href="url" v-if="url">
238
- <EpIcon :size="20" :icon-path="mdiOpenInNew"></EpIcon> Lire
256
+ <EpIcon :size="20" :icon-path="mdiOpenInNew"></EpIcon> {{labels.lire}}
239
257
  </EpBtn>
240
258
  </div>
241
259
  </div>
@@ -1,8 +1,8 @@
1
1
  <script setup lang="ts">
2
2
  import { defineAsyncComponent, computed, toRefs } from 'vue';
3
- import { MandateLevel } from '../../types/MandateLevel';
3
+ import { type MandateLevel } from '../../types/MandateLevel';
4
4
  import { useComponent } from '../../composables/useComponent';
5
- import { MediaVariants } from "../../types/Medias";
5
+ import { type MediaVariants } from "../../types/Medias";
6
6
  interface Props {
7
7
  pages?:string;
8
8
  resource:any;
@@ -2,7 +2,7 @@
2
2
  import { ref, toRefs, computed } from "vue";
3
3
  //types with capital letter, object styles in lowercase
4
4
  import EpChip from "../basics/EpChip.vue";
5
- import { ChipBgVariant } from "../../types/Chip";
5
+ import { type ChipBgVariant } from "../../types/Chip";
6
6
 
7
7
  interface Props {
8
8
  title?: string;
@@ -1,6 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import { toRefs, computed } from "vue";
3
- import { RadioVariants, radioVariants } from "../../types/Radio";
3
+ import { type RadioVariants, radioVariants } from "../../types/Radio";
4
4
 
5
5
  interface Props {
6
6
  id?: string;
@@ -1,6 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import { toRefs, computed } from "vue";
3
- import { RadioVariants, radioVariants } from "../../types/Radio";
3
+ import { type RadioVariants, radioVariants } from "../../types/Radio";
4
4
 
5
5
  interface Props {
6
6
  id?: string;
@@ -22,6 +22,14 @@ interface Props {
22
22
  iconSize?: string;
23
23
  disabled?: boolean;
24
24
  readonly?: boolean;
25
+ labels?:{
26
+ option?:string;
27
+ vanderpoel?:string;
28
+ vanaert?:string;
29
+ pogacar?:string;
30
+ evenepoel?:string;
31
+ meilleur?:string;
32
+ }
25
33
  }
26
34
 
27
35
  const props = withDefaults(defineProps<Props>(), {
@@ -33,6 +41,16 @@ const props = withDefaults(defineProps<Props>(), {
33
41
  iconPath: "",
34
42
  iconSize: "",
35
43
  disabled: false,
44
+ labels:()=>{
45
+ return {
46
+ option:"Choisissez une option",
47
+ vanderpoel:"Van Der Poel",
48
+ vanaert:"Van Aert",
49
+ pogacar:"Pogacar",
50
+ evenepoel:"Evenepoel",
51
+ meilleur:"Quel est le meilleur cycliste"
52
+ }
53
+ }
36
54
  });
37
55
 
38
56
 
@@ -72,11 +90,11 @@ const props = withDefaults(defineProps<Props>(), {
72
90
  disabled:bg-neutral-200
73
91
  focus:ring-0
74
92
  ">
75
- <option value="option">Choisissez une option</option>
76
- <option value="vanderpoel">Van Der Poel</option>
77
- <option value="vanaert">Van Aert</option>
78
- <option value="pogacar">Pogacar</option>
79
- <option value="evenepoel">Evenepoel</option>
93
+ <option value="option">{{labels.option}}</option>
94
+ <option value="vanderpoel">{{labels.vanderpoel}}</option>
95
+ <option value="vanaert">{{labels.vanaert}}</option>
96
+ <option value="pogacar">{{labels.pogacar}}</option>
97
+ <option value="evenepoel">{{labels.evenepoel}}</option>
80
98
  </select>
81
99
  <label class="before:content[' ']
82
100
  after:content[' ']
@@ -138,7 +156,7 @@ const props = withDefaults(defineProps<Props>(), {
138
156
  peer-disabled:after:border-transparent
139
157
  peer-disabled:peer-placeholder-shown:text-blue-gray-500
140
158
  ">
141
- Quel est le meilleur cycliste
159
+ {{labels.meilleur}}
142
160
  </label>
143
161
  <EpBadge :iconPath="mdiLockOutline" />
144
162
  </div>
@@ -1,7 +1,7 @@
1
1
  <script setup lang="ts">
2
2
  import { toRefs,computed } from "vue";
3
3
  import { defineEmits } from 'vue'
4
- import { SwitchColorVariant , ColorVariants} from "../../types/Switch";
4
+ import { type SwitchColorVariant, ColorVariants} from "../../types/Switch";
5
5
 
6
6
  interface Props {
7
7
  id?: string;
@@ -24,6 +24,9 @@ interface Props {
24
24
  iconSize?: string;
25
25
  disabled?: boolean;
26
26
  readonly?: boolean;
27
+ labels?:{
28
+ message?:string;
29
+ }
27
30
  }
28
31
 
29
32
  // text: mdiText
@@ -46,6 +49,11 @@ const props = withDefaults(defineProps<Props>(), {
46
49
  iconSize: "",
47
50
  disabled: false,
48
51
  readonly: false,
52
+ labels:()=>{
53
+ return {
54
+ message:"Message"
55
+ }
56
+ }
49
57
  });
50
58
 
51
59
  const emit = defineEmits<{
@@ -72,7 +80,7 @@ const {
72
80
  placeholder=" "></textarea>
73
81
  <label
74
82
  class="before:content[' '] after:content[' '] pointer-events-none absolute left-0 -top-1.5 flex h-full w-full select-none text-[11px] font-normal leading-tight text-blue-400 transition-all before:pointer-events-none before:mt-[6.5px] before:mr-1 before:box-border before:block before:h-1.5 before:w-2.5 before:rounded-tl-md before:border-t before:border-l before:border-neutral-300 before:transition-all after:pointer-events-none after:mt-[6.5px] after:ml-1 after:box-border after:block after:h-1.5 after:w-2.5 after:flex-grow after:rounded-tr-md after:border-t after:border-r after:border-neutral-300 after:transition-all peer-placeholder-shown:text-sm peer-placeholder-shown:leading-[3.75] peer-placeholder-shown:text-blue-500 peer-placeholder-shown:before:border-transparent peer-placeholder-shown:after:border-transparent peer-focus:text-[11px] peer-focus:leading-tight peer-focus:text-blue-500 peer-focus:before:border-t-2 peer-focus:before:border-l-2 peer-focus:before:border-blue-500 peer-focus:after:border-t-2 peer-focus:after:border-r-2 peer-focus:after:border-blue-500 peer-disabled:text-transparent peer-disabled:before:border-transparent peer-disabled:after:border-transparent peer-disabled:peer-placeholder-shown:text-blue-500">
75
- Message
83
+ {{labels.message}}
76
84
  </label>
77
85
  </div>
78
86
  </div>
@@ -10,6 +10,9 @@ interface Props {
10
10
  disabled?: boolean;
11
11
  readonly?: boolean;
12
12
  checked?: boolean;
13
+ labels?:{
14
+ defaultSwitch?:string; //Default switch checkbox input
15
+ }
13
16
  }
14
17
 
15
18
  const props = withDefaults(defineProps<Props>(), {
@@ -21,6 +24,11 @@ const props = withDefaults(defineProps<Props>(), {
21
24
  disabled: false,
22
25
  readonly: false,
23
26
  checked: false,
27
+ labels:()=>{
28
+ return {
29
+ defaultSwitch:"Default switch checkbox input"
30
+ }
31
+ }
24
32
  });
25
33
 
26
34
  const emit = defineEmits<{
@@ -83,6 +91,6 @@ const {
83
91
 
84
92
  dark:bg-neutral-600 dark:after:bg-neutral-400 dark:checked:bg-blue-600 dark:checked:after:bg-blue-600 dark:focus:before:shadow-[3px_-1px_0px_13px_rgba(255,255,255,0.4)] dark:checked:focus:before:shadow-[3px_-1px_0px_13px_#3b71ca] disabled:opacity-40 disabled:cursor-not-allowed"
85
93
  role="switch" :disabled="disabled" />
86
- <label class="inline-block pl-[0.15rem] hover:cursor-pointer" :for="id">Default switch checkbox input</label>
94
+ <label class="inline-block pl-[0.15rem] hover:cursor-pointer" :for="id">{{labels.defaultSwitch}}</label>
87
95
  </div>
88
96
  </template>