ep-lib-ts 0.1.30 → 0.1.33

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 (155) hide show
  1. package/dist/BgAudio-03ab87a2.js +6 -0
  2. package/dist/DisplayBox-2a24a5ba.js +6 -0
  3. package/dist/EpAlert-174fcb58.js +6 -0
  4. package/dist/EpAudio-3273480f.js +6 -0
  5. package/dist/EpAvatar-b8e6cc02.js +50 -0
  6. package/dist/EpBadge-1001b3f1.js +6 -0
  7. package/dist/EpBadge-f5faab43.js +55 -0
  8. package/dist/EpBarChart-9f7bfb0a.js +6 -0
  9. package/dist/EpBtn-d2ee85de.js +6 -0
  10. package/dist/EpCard-eb83211e.js +6 -0
  11. package/dist/EpChip-916932cb.js +6 -0
  12. package/dist/EpContentSlider-0cf1508d.js +6 -0
  13. package/dist/EpDivider-e7cb7f8a.js +6 -0
  14. package/dist/EpEdu-5a7baed7.js +6 -0
  15. package/dist/EpFlex-5a98c073.js +6 -0
  16. package/dist/EpHeader-6434c484.js +6 -0
  17. package/dist/EpIcon-ee0a43f7.js +6 -0
  18. package/dist/EpIframe-22b07140.js +6 -0
  19. package/dist/EpImg-a6041dc8.js +6 -0
  20. package/dist/{EpInput-81ae2a5e.js → EpInput-84694089.js} +4 -3
  21. package/dist/EpLineChart-2575d63d.js +6 -0
  22. package/dist/EpLink-973bc022.js +6 -0
  23. package/dist/EpLinkVersion-24002433.js +6 -0
  24. package/dist/EpModal-c85f0d51.js +6 -0
  25. package/dist/EpNothing-97d18b42.js +11 -0
  26. package/dist/EpPieChart-0eb59e41.js +6 -0
  27. package/dist/EpQuestion-9a2344da.js +6 -0
  28. package/dist/EpQuote-aaa938d0.js +6 -0
  29. package/dist/EpRadio-57e34517.js +6 -0
  30. package/dist/EpReading-e17c098f.js +6 -0
  31. package/dist/EpResource-2adf0ce4.js +6 -0
  32. package/dist/EpScope-2eceb2e9.js +6 -0
  33. package/dist/EpSection-d658f245.js +6 -0
  34. package/dist/{EpSelect-0bc80667.js → EpSelect-c508997b.js} +4 -3
  35. package/dist/EpSkeleton-fccbc6be.js +6 -0
  36. package/dist/EpSoftware-32ca0529.js +6 -0
  37. package/dist/EpSpinner-d8682586.js +6 -0
  38. package/dist/EpSvg-7d74c2b2.js +6 -0
  39. package/dist/EpTable-e5bd6c19.js +6 -0
  40. package/dist/EpTerm-427f5b86.js +6 -0
  41. package/dist/EpText-f96b3863.js +6 -0
  42. package/dist/EpTimeLine-54cbf65e.js +6 -0
  43. package/dist/EpTooltip-05e1d8fe.js +99 -0
  44. package/dist/EpVideo-9a9ce1e1.js +6 -0
  45. package/dist/EpVideoPanopto-f42c01cc.js +6 -0
  46. package/dist/components/basics/EpAvatar.vue.d.ts +51 -0
  47. package/dist/components/basics/EpBadge.vue.d.ts +33 -34
  48. package/dist/components/basics/EpBtn.vue.d.ts +54 -94
  49. package/dist/components/basics/EpCard.vue.d.ts +51 -76
  50. package/dist/components/basics/EpChip.vue.d.ts +44 -59
  51. package/dist/components/basics/EpDivider.vue.d.ts +38 -44
  52. package/dist/components/basics/EpIcon.vue.d.ts +30 -33
  53. package/dist/components/basics/EpImg.vue.d.ts +40 -73
  54. package/dist/components/basics/EpSection.vue.d.ts +39 -73
  55. package/dist/components/basics/EpSpinner.vue.d.ts +34 -35
  56. package/dist/components/basics/EpTable.vue.d.ts +22 -22
  57. package/dist/components/basics/EpText.vue.d.ts +28 -31
  58. package/dist/components/charts/EpBarChart.vue.d.ts +35 -69
  59. package/dist/components/charts/EpLineChart.vue.d.ts +35 -69
  60. package/dist/components/charts/EpPieChart.vue.d.ts +37 -66
  61. package/dist/components/educationals/EpEdu.vue.d.ts +41 -66
  62. package/dist/components/educationals/EpReading.vue.d.ts +65 -140
  63. package/dist/components/educationals/EpResource.vue.d.ts +30 -32
  64. package/dist/components/educationals/EpScope.vue.d.ts +28 -19
  65. package/dist/components/forms/EpCheckbox.vue.d.ts +44 -60
  66. package/dist/components/forms/EpInput.vue.d.ts +51 -84
  67. package/dist/components/forms/EpRadio.vue.d.ts +46 -59
  68. package/dist/components/forms/EpSelect.vue.d.ts +47 -73
  69. package/dist/components/forms/EpSwitch.vue.d.ts +47 -68
  70. package/dist/components/forms/EpTextarea.vue.d.ts +50 -76
  71. package/dist/components/forms/EpToggle.vue.d.ts +47 -68
  72. package/dist/components/interactions/EpAccordeon.vue.d.ts +37 -42
  73. package/dist/components/interactions/EpContentSlider.vue.d.ts +20 -10
  74. package/dist/components/interactions/EpModal.vue.d.ts +47 -52
  75. package/dist/components/interactions/EpQuestion.vue.d.ts +45 -84
  76. package/dist/components/interactions/EpTooltip.vue.d.ts +48 -0
  77. package/dist/components/medias/EpAudio.vue.d.ts +41 -68
  78. package/dist/components/medias/EpCarousel.vue.d.ts +32 -35
  79. package/dist/components/medias/EpIframe.vue.d.ts +37 -54
  80. package/dist/components/medias/EpKatex.vue.d.ts +32 -49
  81. package/dist/components/medias/EpLink.vue.d.ts +41 -68
  82. package/dist/components/medias/EpLinkVersion.vue.d.ts +27 -27
  83. package/dist/components/medias/EpSoftware.vue.d.ts +47 -82
  84. package/dist/components/medias/EpSvg.vue.d.ts +31 -41
  85. package/dist/components/medias/EpTerm.vue.d.ts +41 -69
  86. package/dist/components/medias/EpTimeLine.vue.d.ts +22 -24
  87. package/dist/components/medias/EpVideo.vue.d.ts +38 -60
  88. package/dist/components/medias/EpVideoPanopto.vue.d.ts +38 -60
  89. package/dist/components/signages/EpAlert.vue.d.ts +36 -42
  90. package/dist/components/signages/EpBadge.vue.d.ts +56 -0
  91. package/dist/components/signages/EpHeader.vue.d.ts +53 -94
  92. package/dist/components/signages/EpQuote.vue.d.ts +31 -27
  93. package/dist/components/signages/EpSkeleton.vue.d.ts +40 -1
  94. package/dist/components/tools/BgAudio.vue.d.ts +26 -11
  95. package/dist/components/tools/TimelineItem.vue.d.ts +32 -33
  96. package/dist/ep-lib-ts.js +35 -33
  97. package/dist/ep-lib-ts.umd.cjs +31 -35
  98. package/dist/{index-78ac7d74.js → index-a7b2a6d7.js} +3544 -3532
  99. package/dist/index.d.ts +2 -1
  100. package/dist/style.css +1 -1
  101. package/dist/types/Avatar.d.ts +18 -0
  102. package/dist/types/Badge.d.ts +23 -0
  103. package/dist/types/Tooltip.d.ts +75 -0
  104. package/package.json +2 -2
  105. package/src/components/basics/EpAvatar.vue +72 -0
  106. package/src/components/basics/EpText.vue +1 -1
  107. package/src/components/educationals/EpEdu.vue +1 -0
  108. package/src/components/educationals/EpReading.vue +2 -2
  109. package/src/components/interactions/EpQuestion.vue +1 -1
  110. package/src/components/interactions/EpTooltip.vue +164 -0
  111. package/src/components/medias/EpCarousel.vue +21 -18
  112. package/src/components/signages/EpBadge.vue +82 -0
  113. package/src/components/signages/EpQuote.vue +53 -37
  114. package/src/components/signages/EpSkeleton.vue +36 -9
  115. package/src/components/tools/TimelineItem.vue +1 -1
  116. package/dist/BgAudio-820c0a39.js +0 -5
  117. package/dist/DisplayBox-05ba8755.js +0 -5
  118. package/dist/EpAlert-f32ad986.js +0 -5
  119. package/dist/EpAudio-80dbaf40.js +0 -5
  120. package/dist/EpBadge-cb67d4b1.js +0 -5
  121. package/dist/EpBarChart-710b4ff4.js +0 -5
  122. package/dist/EpBtn-5c939189.js +0 -5
  123. package/dist/EpCard-3c75fd57.js +0 -5
  124. package/dist/EpChip-75b64fd5.js +0 -5
  125. package/dist/EpContentSlider-5f4ed454.js +0 -5
  126. package/dist/EpDivider-05f71886.js +0 -5
  127. package/dist/EpEdu-b7e92524.js +0 -5
  128. package/dist/EpFlex-f7103829.js +0 -5
  129. package/dist/EpHeader-564a55a0.js +0 -5
  130. package/dist/EpIcon-5c184634.js +0 -5
  131. package/dist/EpIframe-e47cdf06.js +0 -5
  132. package/dist/EpImg-4ac885e3.js +0 -5
  133. package/dist/EpLineChart-468b3ed7.js +0 -5
  134. package/dist/EpLink-9f599e06.js +0 -5
  135. package/dist/EpLinkVersion-9a5026a6.js +0 -5
  136. package/dist/EpModal-8208c45a.js +0 -5
  137. package/dist/EpNothing-2c04e40e.js +0 -10
  138. package/dist/EpPieChart-0b7f0752.js +0 -5
  139. package/dist/EpQuestion-f5c0082f.js +0 -5
  140. package/dist/EpQuote-c51e2778.js +0 -5
  141. package/dist/EpRadio-edd52b6b.js +0 -5
  142. package/dist/EpReading-19d5e14b.js +0 -5
  143. package/dist/EpResource-d05a5a4a.js +0 -5
  144. package/dist/EpScope-e4c2d014.js +0 -5
  145. package/dist/EpSection-97392b3b.js +0 -5
  146. package/dist/EpSkeleton-9542d360.js +0 -10
  147. package/dist/EpSoftware-3c6dce6e.js +0 -5
  148. package/dist/EpSpinner-d47f52b4.js +0 -5
  149. package/dist/EpSvg-c08f08c7.js +0 -5
  150. package/dist/EpTable-15f79011.js +0 -5
  151. package/dist/EpTerm-892a5db3.js +0 -5
  152. package/dist/EpText-466d34a5.js +0 -5
  153. package/dist/EpTimeLine-7c0f2078.js +0 -5
  154. package/dist/EpVideo-ddedb1ac.js +0 -5
  155. package/dist/EpVideoPanopto-2d7bdf5f.js +0 -5
package/dist/index.d.ts CHANGED
@@ -37,4 +37,5 @@ import EpVideoPanopto from './components/medias/EpVideoPanopto.vue';
37
37
  import EpAlert from './components/signages/EpAlert.vue';
38
38
  import EpHeader from './components/signages/EpHeader.vue';
39
39
  import EpQuote from './components/signages/EpQuote.vue';
40
- export { EpBadge, EpBtn, EpCard, EpChip, EpDivider, EpFlex, EpIcon, EpImg, EpSection, EpSpinner, EpTable, EpBarChart, EpLineChart, EpPieChart, EpText, EpEdu, EpReading, EpResource, EpScope, EpAccordeon, EpContentSlider, EpModal, EpQuestion, EpTabs, EpAudio, EpCarousel, EpIframe, EpKatex, EpLink, EpLinkVersion, EpSoftware, EpSvg, EpTerm, EpTimeLine, EpVideo, EpVideoPanopto, EpAlert, EpHeader, EpQuote, };
40
+ import EpSkeleton from './components/signages/EpSkeleton.vue';
41
+ export { EpBadge, EpBtn, EpCard, EpChip, EpDivider, EpFlex, EpIcon, EpImg, EpSection, EpSpinner, EpTable, EpBarChart, EpLineChart, EpPieChart, EpText, EpEdu, EpReading, EpResource, EpScope, EpAccordeon, EpContentSlider, EpModal, EpQuestion, EpTabs, EpAudio, EpCarousel, EpIframe, EpKatex, EpLink, EpLinkVersion, EpSoftware, EpSvg, EpTerm, EpTimeLine, EpVideo, EpVideoPanopto, EpAlert, EpHeader, EpQuote, EpSkeleton };
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-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)}
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-63d168f1],.v-leave-active[data-v-63d168f1]{transition:opacity .5s ease}.v-enter-from[data-v-63d168f1],.v-leave-to[data-v-63d168f1]{opacity:0}.katex[data-v-24ff8b28]{font-size:1.3em}.content[data-v-89d118fb]{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)}.shape{height:var(--5ad0279f);width:var(--6f1de84e)}.arrow-light-top:before{content:" ";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:rgba(0,0,0,.2) transparent transparent transparent}.arrow-dark-top:before{content:" ";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:black transparent transparent transparent}.arrow-light-bottom:before{content:"";position:absolute;display:inline-block;left:50%;bottom:100%;border-right:7px solid transparent;border-bottom:7px solid #eee;border-left:7px solid transparent;border-bottom-color:#0003}.arrow-dark-bottom:before{content:"";position:absolute;display:inline-block;left:50%;bottom:100%;border-right:7px solid transparent;border-bottom:7px solid black;border-left:7px solid transparent;border-bottom-color:black transparent transparent transparent}.arrow-light-left:before{position:absolute;display:inline-block;left:100%;top:50%;content:"";margin-right:0;border-top:5px solid transparent;border-left:5px solid #eee;border-bottom:5px solid transparent;border-left-color:#0003}.arrow-dark-left:before{position:absolute;display:inline-block;left:100%;top:50%;content:"";margin-right:0;border-top:5px solid transparent;border-left:5px solid black;border-bottom:5px solid transparent;border-left-color:black transparent transparent transparent}.arrow-light-right:before{position:absolute;display:inline-block;right:100%;top:50%;content:"";margin-right:0;border-top:5px solid transparent;border-right:5px solid #eee;border-bottom:5px solid transparent;border-right-color:#0003}.arrow-dark-right:before{position:absolute;display:inline-block;right:100%;top:50%;content:"";margin-right:0;border-top:5px solid transparent;border-right:5px solid black;border-bottom:5px solid transparent;border-right-color:black transparent transparent transparent}
@@ -0,0 +1,18 @@
1
+ export declare const typeAvatar: {
2
+ circle: {
3
+ small: string;
4
+ middle: string;
5
+ big: string;
6
+ };
7
+ square: {
8
+ small: string;
9
+ middle: string;
10
+ big: string;
11
+ };
12
+ rounded: {
13
+ small: string;
14
+ middle: string;
15
+ big: string;
16
+ };
17
+ };
18
+ export type TypeAvatar = keyof typeof typeAvatar;
@@ -0,0 +1,23 @@
1
+ export declare const typeBadge: {
2
+ top_left: {
3
+ default: string;
4
+ dot: string;
5
+ hide: string;
6
+ };
7
+ top_right: {
8
+ default: string;
9
+ dot: string;
10
+ hide: string;
11
+ };
12
+ bottom_left: {
13
+ default: string;
14
+ dot: string;
15
+ hide: string;
16
+ };
17
+ bottom_right: {
18
+ default: string;
19
+ dot: string;
20
+ hide: string;
21
+ };
22
+ };
23
+ export type TypeBadge = keyof typeof typeBadge;
@@ -0,0 +1,75 @@
1
+ export declare const typeTooltip: {
2
+ top: {
3
+ default: string;
4
+ dark: string;
5
+ arrow: string;
6
+ arrowdark: string;
7
+ };
8
+ top_start: {
9
+ default: string;
10
+ dark: string;
11
+ arrow: string;
12
+ arrowdark: string;
13
+ };
14
+ top_end: {
15
+ default: string;
16
+ dark: string;
17
+ arrow: string;
18
+ arrowdark: string;
19
+ };
20
+ bottom: {
21
+ default: string;
22
+ dark: string;
23
+ arrow: string;
24
+ arrowdark: string;
25
+ };
26
+ bottom_start: {
27
+ default: string;
28
+ dark: string;
29
+ arrow: string;
30
+ arrowdark: string;
31
+ };
32
+ bottom_end: {
33
+ default: string;
34
+ dark: string;
35
+ arrow: string;
36
+ arrowdark: string;
37
+ };
38
+ left: {
39
+ default: string;
40
+ dark: string;
41
+ arrow: string;
42
+ arrowdark: string;
43
+ };
44
+ left_start: {
45
+ default: string;
46
+ dark: string;
47
+ arrow: string;
48
+ arrowdark: string;
49
+ };
50
+ left_end: {
51
+ default: string;
52
+ dark: string;
53
+ arrow: string;
54
+ arrowdark: string;
55
+ };
56
+ right: {
57
+ default: string;
58
+ dark: string;
59
+ arrow: string;
60
+ arrowdark: string;
61
+ };
62
+ right_start: {
63
+ default: string;
64
+ dark: string;
65
+ arrow: string;
66
+ arrowdark: string;
67
+ };
68
+ right_end: {
69
+ default: string;
70
+ dark: string;
71
+ arrow: string;
72
+ arrowdark: string;
73
+ };
74
+ };
75
+ export type TypeTooltip = keyof typeof typeTooltip;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ep-lib-ts",
3
3
  "private": false,
4
- "version": "0.1.30",
4
+ "version": "0.1.33",
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.19"
53
+ "vue-tsc": "^1.8.22"
54
54
  },
55
55
  "peerDependencies": {
56
56
  "vue": "^3.2.45"
@@ -0,0 +1,72 @@
1
+
2
+ <script setup lang="ts">
3
+
4
+ import { toRefs, computed } from "vue";
5
+ import { TypeAvatar, typeAvatar } from "../../types/Avatar"; //"../../types/Avatar";
6
+
7
+ type Color = "primary"|"secondary"|"accent"|"error"|"warning"|"success"|"info"|"question"|"tip";
8
+ type Variant = "circle"|"square"|"rounded";
9
+ type Size = "small"|"middle"|"big";
10
+
11
+
12
+ interface Props {
13
+ src?:string;
14
+ alt?:string;
15
+ color?:Color;
16
+ size?:Size;
17
+ variant?:Variant;
18
+ name?:string
19
+ }
20
+
21
+ // define parameter and default valule
22
+ const props = withDefaults(defineProps<Props>(), {
23
+ src:"",
24
+ alt:"",
25
+ color:"primary",
26
+ size:"small",
27
+ variant:"circle" ,
28
+ name:""
29
+ })
30
+
31
+
32
+ const style = computed(()=>{
33
+ return props.variant
34
+ })
35
+
36
+ const size = computed(()=>{
37
+ return props.size
38
+ })
39
+
40
+ const final_style = computed(()=>{
41
+ return `${typeAvatar[style.value]?.[size.value]}`
42
+ })
43
+
44
+
45
+ const bgcolor = computed(()=>{
46
+ return " bg-"+ props.color
47
+ })
48
+
49
+ const final_name = computed(()=>{
50
+ if (props.name.length>2){
51
+ return props.name.slice(0,2)
52
+ }
53
+ else{
54
+ return props.name
55
+ }
56
+ })
57
+
58
+
59
+ </script>
60
+ <template>
61
+ <div >
62
+ <div v-if="props.src != ''">
63
+ <img :src=props.src :alt=props.alt :class="`${final_style} `" >
64
+ </div>
65
+ <div v-else-if="props.src == ''">
66
+ <div :class="`${final_style} ${bgcolor} justify-center font-bold text-white flex items-center` " >
67
+ {{final_name}}
68
+ </div>
69
+ </div>
70
+ </div>
71
+ </template>
72
+
@@ -78,7 +78,7 @@ const renderText = computed(() => {
78
78
  //const idsRelation = foundedRelations.map((x) => x.id);
79
79
  const termsRelation = foundedRelations.map((x) => x.term);
80
80
  const variation = term.variation;
81
- const hasImge = term.src ? term.src : "";
81
+ const hasImge = term.img ? term.img : "";
82
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}"> ${term.definition}</EpTerm> </div>`;
83
83
  //replace output string
84
84
  newStr = newStr.replace(word, replaceWord);
@@ -96,6 +96,7 @@ const { title, hideIcon } = toRefs(props);
96
96
  </div>
97
97
  <div :class="bottomBarStyle" v-if="hasActions">
98
98
  <slot name="actions"></slot>
99
+
99
100
  </div>
100
101
  </div>
101
102
  </template>
@@ -194,14 +194,14 @@ const {
194
194
  <div class="flex-1 py-2" v-if="hasDetails">
195
195
  <p class="font-medium">
196
196
  <span class="text-sm italic pr-1" v-if="author">par</span>
197
- <span class="font-bold" v-if="author">{{ author }}</span>
197
+ <span class="font-bold mr-2" v-if="author">{{ author }}</span>
198
198
  <span v-if="year">({{ year }})</span>
199
199
  <span v-if="year && editor">, </span>
200
200
  <span v-if="editor">{{ editor }}</span>
201
201
  </p>
202
202
  <p v-if="container">
203
203
  <span class="text-sm italic pr-1">dans</span>
204
- <span class="">{{ container }}</span>
204
+ <span>{{ container }}</span>
205
205
  </p>
206
206
  </div>
207
207
  <div
@@ -137,7 +137,7 @@ const { title, intentions, hideIcon, question, src } = toRefs(props);
137
137
  />
138
138
 
139
139
  <div class="mb-6">
140
- <ol>
140
+ <ol class="list-none">
141
141
  <li v-for="(answer, i) in answers" :key="answer.uid">
142
142
  <EpRadio
143
143
  :label="`${typeList(i)}. ${answer.text}`"
@@ -0,0 +1,164 @@
1
+
2
+ <script setup lang="ts">
3
+
4
+ import { computed } from "vue";
5
+ import { TypeTooltip, typeTooltip } from "../../types/Tooltip"; //"../../types/Tooltip";
6
+
7
+ type Place = "top_start"|"top"|"top_end"|"bottom_start"|"bottom"|"bottom_end"|"left_start"|"left"|"left_end"|"right_start" | "right"|"right_end";
8
+ type Mode = "light"|"dark";
9
+
10
+
11
+ interface Props {
12
+ text:string;
13
+ styles?:Mode;
14
+ placement?:Place
15
+ type: TypeTooltip;
16
+ arrow:string
17
+ }
18
+
19
+ // define parameter and default valule
20
+ const props = withDefaults(defineProps<Props>(), {
21
+ styles:'light',
22
+ placement:'top',
23
+ arrow:'none',
24
+ })
25
+ //const { arrowstyle } =toRefs<TypeTooltip>(props)
26
+
27
+
28
+ const finalType = computed(()=>{
29
+ return props.placement
30
+ })
31
+
32
+ const arrowStyle = computed(()=>{
33
+ if(props.arrow =="arrow"){
34
+ if(props.styles =='dark'){
35
+ return 'arrowdark'
36
+ }
37
+ else {
38
+ return 'arrow'
39
+ }
40
+ }
41
+ else{
42
+ if(props.styles =='light'){
43
+ return 'default'
44
+ }
45
+ else {
46
+ return 'dark'
47
+ }
48
+ }
49
+ })
50
+
51
+ const finalStyles = computed(()=>{
52
+ return `${typeTooltip[finalType.value]?.[arrowStyle.value]}`
53
+
54
+ })
55
+
56
+
57
+ </script>
58
+ <template>
59
+ <div class="group relative w-max ">
60
+ <slot></slot>
61
+ <span :class="`pointer-events-none absolute w-max rounded px-2 py-1 text-sm font-medium opacity-0 shadow transition-opacity group-hover:opacity-100 ${ finalStyles} `" >{{ text }}</span>
62
+ </div>
63
+ </template>
64
+
65
+ <style >
66
+ .arrow-light-top::before {
67
+ content: " ";
68
+ position: absolute;
69
+ top: 100%; /* At the bottom of the tooltip */
70
+ left: 50%;
71
+ margin-left: -5px;
72
+ border-width: 5px;
73
+ border-style: solid;
74
+ border-color: rgba(0, 0, 0, 0.2) transparent transparent transparent ;
75
+ }
76
+ .arrow-dark-top::before {
77
+ content: " ";
78
+ position: absolute;
79
+ top: 100%; /* At the bottom of the tooltip */
80
+ left: 50%;
81
+ margin-left: -5px;
82
+ border-width: 5px;
83
+ border-style: solid;
84
+ border-color: black transparent transparent transparent ;
85
+ }
86
+ .arrow-light-bottom::before {
87
+ content: '';
88
+ position: absolute;
89
+ display: inline-block;
90
+ left: 50%;
91
+ bottom: 100%;
92
+ border-right: 7px solid transparent;
93
+ border-bottom: 7px solid #eee;
94
+ border-left: 7px solid transparent;
95
+ border-bottom-color: rgba(0, 0, 0, 0.2);
96
+
97
+ }
98
+ .arrow-dark-bottom::before {
99
+ content: '';
100
+ position: absolute;
101
+ display: inline-block;
102
+ left: 50%;
103
+ bottom: 100%;
104
+ border-right: 7px solid transparent;
105
+ border-bottom: 7px solid black;
106
+ border-left: 7px solid transparent;
107
+ border-bottom-color:black transparent transparent transparent ;
108
+ }
109
+
110
+ .arrow-light-left::before {
111
+ position: absolute;
112
+ display: inline-block;
113
+ left:100%;
114
+ top: 50%;
115
+ content: '';
116
+ margin-right: 0px;
117
+ border-top: 5px solid transparent;
118
+ border-left: 5px solid #eee;
119
+ border-bottom: 5px solid transparent;
120
+ border-left-color: rgba(0, 0, 0, 0.2);
121
+ }
122
+
123
+ .arrow-dark-left::before {
124
+ position: absolute;
125
+ display: inline-block;
126
+ left:100%;
127
+ top: 50%;
128
+ content: '';
129
+ margin-right: 0px;
130
+ border-top: 5px solid transparent;
131
+ border-left: 5px solid black;
132
+ border-bottom: 5px solid transparent;
133
+ border-left-color: black transparent transparent transparent ;
134
+
135
+
136
+ }
137
+
138
+ .arrow-light-right::before {
139
+ position: absolute;
140
+ display: inline-block;
141
+ right:100%;
142
+ top: 50%;
143
+ content: '';
144
+ margin-right: 0px;
145
+ border-top: 5px solid transparent;
146
+ border-right: 5px solid #eee;
147
+ border-bottom: 5px solid transparent;
148
+ border-right-color: rgba(0, 0, 0, 0.2);
149
+ }
150
+
151
+ .arrow-dark-right::before {
152
+ position: absolute;
153
+ display: inline-block;
154
+ right:100%;
155
+ top: 50%;
156
+ content: '';
157
+ margin-right: 0px;
158
+ border-top: 5px solid transparent;
159
+ border-right: 5px solid black;
160
+ border-bottom: 5px solid transparent;
161
+ border-right-color:black transparent transparent transparent ;
162
+
163
+ }
164
+ </style>
@@ -9,16 +9,16 @@ import EpModal from "../interactions/EpModal.vue";
9
9
  import EpImg from "../basics/EpImg.vue";
10
10
 
11
11
  interface Props {
12
- carrouselImg: MediaCarousel[];
13
- gallery?:boolean;
14
- labelRef?:string|null;
15
- labelClose?:string|null
12
+ carrouselImg: MediaCarousel[];
13
+ gallery?: boolean;
14
+ labelRef?: string | null;
15
+ labelClose?: string | null;
16
16
  }
17
17
 
18
18
  const props = withDefaults(defineProps<Props>(), {
19
- labelClose:"Fermer",
20
- labelRef:"Référence",
21
- gallery:false
19
+ labelClose: "Fermer",
20
+ labelRef: "Référence",
21
+ gallery: false,
22
22
  });
23
23
 
24
24
  const currentIndex = ref<number>(0);
@@ -50,28 +50,31 @@ const { carrouselImg, labelClose, labelRef } = toRefs(props);
50
50
  <EpIcon :icon-path="mdiChevronRightCircleOutline"></EpIcon>
51
51
  </button>
52
52
  </div>
53
- <div class="bg-white shadow-xl p-4 max-w-[800px] mx-auto border-solid">
54
- <div class="max-w-[800px] h-[550px] m-auto relative">
53
+ <div class="bg-white shadow-xl p-4 lg:max-w-[800px] mx-auto border-solid">
54
+ <!-- <div class="max-w-[800px] h-[550px] m-auto relative">
55
55
  <div
56
- class="w-full h-full bg-center bg-cover duration-500"
56
+ class="w-full h-full bg-center duration-500"
57
57
  :style="`background-image:url('${carrouselImg[currentIndex].src}')`"
58
58
  ></div>
59
- </div>
59
+ </div> -->
60
+
61
+ <img :src="carrouselImg[currentIndex].src" alt="image" class="rounded-sm" />
62
+
60
63
  <div v-if="carrouselImg[currentIndex]?.caption" class="mt-2 text-sm text-gray-800">
61
64
  {{ carrouselImg[currentIndex].caption }}
62
65
  </div>
63
- <div v-if="carrouselImg[currentIndex]?.bib" class="flex justify-end">
64
- <EpBtn type="primary" @click="dialog = true" dark>{{ labelRef }}</EpBtn>
66
+ <div v-if="carrouselImg[currentIndex]?.bib" class="flex justify-end mt-2">
67
+ <EpBtn type="primary" @click="dialog = true" dark>{{ labelRef }}</EpBtn>
65
68
  </div>
66
69
  </div>
67
70
  <EpModal v-model="dialog" title="Référence">
68
- <div v-html="carrouselImg[currentIndex].bib"></div>
69
- <div class="flex justify-end">
70
- <EpBtn @click="dialog = false" type="primary" dark>{{ labelClose }}</EpBtn>
71
- </div>
71
+ <div v-html="carrouselImg[currentIndex].bib"></div>
72
+ <div class="flex justify-end">
73
+ <EpBtn @click="dialog = false" type="primary" dark>{{ labelClose }}</EpBtn>
74
+ </div>
72
75
  </EpModal>
73
76
  </div>
74
- <div v-else class="flex">
77
+ <div v-else class="flex flex-wrap">
75
78
  <template v-for="image in carrouselImg" :key="`image-${image?.uid}`">
76
79
  <EpImg :src="image.src" :bib="image.bib" :caption="image.caption" thumbnail></EpImg>
77
80
  </template>
@@ -0,0 +1,82 @@
1
+
2
+ <script setup lang="ts">
3
+
4
+ import { computed } from "vue";
5
+ import { TypeBadge, typeBadge } from "../../types/Badge"; //"../../types/Badge";
6
+
7
+ type Mode = "default"|"dot";
8
+ type Color = "primary"|"secondary"|"accent"|"error"|"warning"|"success"|"info"|"question"|"tip";
9
+ type Visibility = "true"|"false"
10
+
11
+
12
+ interface Props {
13
+ content:number;
14
+ mode?:Mode;
15
+ placement?:TypeBadge
16
+ visibility:Visibility
17
+ color:Color
18
+ maxValue:number
19
+ }
20
+
21
+ // define parameter and default valule
22
+ const props = withDefaults(defineProps<Props>(), {
23
+ mode:'default',
24
+ placement:'top_right',
25
+ visibility:'true',
26
+ color:"primary",
27
+ maxValue : 0
28
+
29
+ })
30
+
31
+ // const { badgestyle } = toRefs(props)
32
+
33
+
34
+ const finalType = computed(()=>{
35
+ return props.placement
36
+ })
37
+
38
+ const finalContent = computed(()=>{
39
+ if (props.mode =="dot" ){
40
+ return ""
41
+ }
42
+ else if (props.visibility == 'false'){
43
+ return ""
44
+ }
45
+ else if (props.content !=0) {
46
+ if (props.content > props.maxValue && props.maxValue !=0){
47
+ return props.maxValue +"+"
48
+ }
49
+ else{
50
+ return props.content
51
+ }
52
+
53
+ }
54
+
55
+ })
56
+
57
+
58
+ const badgeStyle = computed(()=>{
59
+ if (props.visibility == "true") {
60
+ return props.mode
61
+ } else{
62
+ return 'hide'
63
+ }
64
+ })
65
+
66
+
67
+ const bgcolor = computed(()=>{
68
+ return "bg-"+ props.color
69
+ })
70
+
71
+ const finalStyles = computed(()=>{
72
+ return `${typeBadge[finalType.value]?.[badgeStyle.value]}`
73
+ })
74
+
75
+
76
+ </script>
77
+ <template>
78
+ <div class="group relative w-max ">
79
+ <slot></slot>
80
+ <div :class="`${finalStyles} ${bgcolor}`">{{ finalContent }}</div>
81
+ </div>
82
+ </template>