ep-lib-ts 1.0.63 → 1.0.65
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/components/basics/EpAvatar.vue.js +1 -54
- package/dist/components/basics/EpAvatar.vue.js.map +1 -1
- package/dist/components/basics/EpAvatar.vue2.js +54 -1
- package/dist/components/basics/EpAvatar.vue2.js.map +1 -1
- package/dist/components/basics/EpBadge.vue2.js +1 -10
- package/dist/components/basics/EpBadge.vue2.js.map +1 -1
- package/dist/components/basics/EpCard.vue.js +29 -41
- package/dist/components/basics/EpCard.vue.js.map +1 -1
- package/dist/components/basics/EpDivider.vue.js +2 -3
- package/dist/components/basics/EpDivider.vue.js.map +1 -1
- package/dist/components/basics/EpFlex.vue.js.map +1 -1
- package/dist/components/basics/EpHoverCard.vue.js +13 -31
- package/dist/components/basics/EpHoverCard.vue.js.map +1 -1
- package/dist/components/basics/EpImg.vue.js +5 -3
- package/dist/components/basics/EpImg.vue.js.map +1 -1
- package/dist/components/basics/EpListItem.vue.js +1 -1
- package/dist/components/basics/EpListItem.vue.js.map +1 -1
- package/dist/components/basics/EpSpinner.vue.js +1 -2
- package/dist/components/basics/EpSpinner.vue.js.map +1 -1
- package/dist/components/basics/EpStackedList.vue.js +3 -3
- package/dist/components/basics/EpStackedList.vue.js.map +1 -1
- package/dist/components/basics/EpTable.vue.js +4 -4
- package/dist/components/basics/EpTable.vue.js.map +1 -1
- package/dist/components/basics/EpText.vue.js +4 -3
- package/dist/components/basics/EpText.vue.js.map +1 -1
- package/dist/components/educationals/EpBranchingScenario.vue.js +1 -1
- package/dist/components/educationals/EpBranchingScenario.vue2.js +1 -1
- package/dist/components/educationals/EpBranchingScenario.vue2.js.map +1 -1
- package/dist/components/educationals/EpEdu.vue.js +10 -6
- package/dist/components/educationals/EpEdu.vue.js.map +1 -1
- package/dist/components/educationals/EpObjective.vue.js +3 -3
- package/dist/components/educationals/EpObjective.vue.js.map +1 -1
- package/dist/components/educationals/EpReading.vue.js +36 -28
- package/dist/components/educationals/EpReading.vue.js.map +1 -1
- package/dist/components/educationals/EpResource.vue.js +1 -1
- package/dist/components/educationals/EpResource.vue.js.map +1 -1
- package/dist/components/educationals/EpSpecificObjective.vue.js +7 -8
- package/dist/components/educationals/EpSpecificObjective.vue.js.map +1 -1
- package/dist/components/forms/EpRadioSummative.vue2.js +1 -1
- package/dist/components/forms/EpRadioSummative.vue2.js.map +1 -1
- package/dist/components/interactions/EpAccordeon.vue.js +1 -1
- package/dist/components/interactions/EpAccordeon.vue2.js +4 -7
- package/dist/components/interactions/EpAccordeon.vue2.js.map +1 -1
- package/dist/components/interactions/EpContentSlider.vue.js +7 -8
- package/dist/components/interactions/EpContentSlider.vue.js.map +1 -1
- package/dist/components/interactions/EpModal.vue.js +3 -3
- package/dist/components/interactions/EpModal.vue.js.map +1 -1
- package/dist/components/interactions/EpQuestion.vue.js +1 -1
- package/dist/components/interactions/EpQuestion.vue.js.map +1 -1
- package/dist/components/interactions/EpSummativeTable.vue.js +2 -2
- package/dist/components/interactions/EpSummativeTable.vue.js.map +1 -1
- package/dist/components/interactions/EpTooltip.vue.js.map +1 -1
- package/dist/components/interactions/{EpTooltip.vue3.js → EpTooltip.vue2.js} +1 -2
- package/dist/components/interactions/EpTooltip.vue2.js.map +1 -0
- package/dist/components/medias/EpAudio.vue.js +1 -2
- package/dist/components/medias/EpAudio.vue.js.map +1 -1
- package/dist/components/medias/EpCarousel.vue.js +197 -5
- package/dist/components/medias/EpCarousel.vue.js.map +1 -1
- package/dist/components/medias/EpCarousel.vue2.js +1 -196
- package/dist/components/medias/EpCarousel.vue2.js.map +1 -1
- package/dist/components/medias/EpHierarchy.vue.js +1 -1
- package/dist/components/medias/EpHierarchy.vue2.js +7 -7
- package/dist/components/medias/EpHierarchy.vue2.js.map +1 -1
- package/dist/components/medias/EpLink.vue.js +1 -5
- package/dist/components/medias/EpLink.vue.js.map +1 -1
- package/dist/components/medias/EpSensibleImage.vue.js +1 -1
- package/dist/components/medias/EpSensibleImage.vue2.js +2 -2
- package/dist/components/medias/EpSensibleImage.vue2.js.map +1 -1
- package/dist/components/medias/EpSoftware.vue.js +1 -1
- package/dist/components/medias/EpSoftware.vue.js.map +1 -1
- package/dist/components/medias/EpTerm.vue.js +4 -4
- package/dist/components/medias/EpTerm.vue.js.map +1 -1
- package/dist/components/medias/EpTimeLine.vue.js +5 -98
- package/dist/components/medias/EpTimeLine.vue.js.map +1 -1
- package/dist/components/medias/EpTimeLine.vue2.js +101 -0
- package/dist/components/medias/EpTimeLine.vue2.js.map +1 -0
- package/dist/components/medias/EpWordDef.vue.js +6 -6
- package/dist/components/medias/EpWordDef.vue.js.map +1 -1
- package/dist/components/signages/EpAlert.vue.js +1 -1
- package/dist/components/signages/EpAlert.vue2.js +1 -1
- package/dist/components/signages/EpAlert.vue2.js.map +1 -1
- package/dist/components/signages/EpHeader.vue.js +6 -6
- package/dist/components/signages/EpHeader.vue.js.map +1 -1
- package/dist/components/signages/EpQuote.vue.js +4 -4
- package/dist/components/signages/EpQuote.vue.js.map +1 -1
- package/dist/components/signages/EpSkeleton.vue.js +5 -40
- package/dist/components/signages/EpSkeleton.vue.js.map +1 -1
- package/dist/components/signages/EpSkeleton.vue2.js +43 -0
- package/dist/components/signages/EpSkeleton.vue2.js.map +1 -0
- package/dist/components/tools/Details.vue2.js +2 -3
- package/dist/components/tools/Details.vue2.js.map +1 -1
- package/dist/components/tools/DisplayBox.vue.js +5 -40
- package/dist/components/tools/DisplayBox.vue.js.map +1 -1
- package/dist/components/tools/DisplayBox.vue2.js +43 -0
- package/dist/components/tools/DisplayBox.vue2.js.map +1 -0
- package/dist/components/tools/TextMedia.vue2.js +2 -2
- package/dist/components/tools/TextMedia.vue2.js.map +1 -1
- package/dist/components/tools/TimelineItem.vue.js +1 -1
- package/dist/components/tools/TimelineItem.vue2.js +1 -1
- package/dist/components/tools/TimelineItem.vue2.js.map +1 -1
- package/dist/components/tools/TwoColsMedia.vue2.js +2 -2
- package/dist/components/tools/TwoColsMedia.vue2.js.map +1 -1
- package/dist/composables/useIcons.js +1 -1
- package/dist/composables/useIcons.js.map +1 -1
- package/dist/entry/interactions/EpTooltip.js +0 -1
- package/dist/entry/interactions/EpTooltip.js.map +1 -1
- package/dist/entry/medias/EpCarousel.js +2 -2
- package/dist/entry/medias/EpCarousel.js.map +1 -1
- package/dist/entry/medias/EpTimeLine.js +2 -3
- package/dist/entry/medias/EpTimeLine.js.map +1 -1
- package/dist/entry/signages/EpSkeleton.js +2 -3
- package/dist/entry/signages/EpSkeleton.js.map +1 -1
- package/dist/index.js +171 -173
- package/dist/index.js.map +1 -1
- package/dist/styles.css +655 -0
- package/dist/types/Accordeon.d.ts +1 -5
- package/dist/types/Accordeon.js +21 -25
- package/dist/types/Accordeon.js.map +1 -1
- package/dist/types/Alert.d.ts +2 -2
- package/dist/types/Alert.js +34 -34
- package/dist/types/Alert.js.map +1 -1
- package/dist/types/Btn.d.ts +0 -5
- package/dist/types/Btn.js +21 -26
- package/dist/types/Btn.js.map +1 -1
- package/dist/types/Chip.d.ts +0 -4
- package/dist/types/Chip.js +14 -18
- package/dist/types/Chip.js.map +1 -1
- package/dist/types/Colors.d.ts +1 -0
- package/dist/types/Hover.d.ts +1 -1
- package/dist/types/Medias.d.ts +0 -1
- package/dist/types/Medias.js +0 -1
- package/dist/types/Medias.js.map +1 -1
- package/dist/types/Radio.d.ts +0 -1
- package/dist/types/Radio.js +0 -1
- package/dist/types/Radio.js.map +1 -1
- package/dist/types/StackedList.d.ts +1 -1
- package/dist/types/StackedList.js.map +1 -1
- package/dist/types/Switch.d.ts +0 -1
- package/dist/types/Switch.js +0 -1
- package/dist/types/Switch.js.map +1 -1
- package/dist/types/basics/EpAvatar.d.ts +2 -10
- package/dist/types/basics/EpBadge.d.ts +2 -1
- package/dist/types/basics/EpCard.d.ts +3 -1
- package/dist/types/educationals/EpEdu.d.ts +1 -0
- package/dist/types/signages/EpBadge.d.ts +0 -1
- package/package.json +14 -17
- package/dist/components/interactions/EpTooltip.vue3.js.map +0 -1
- package/dist/components/medias/EpTimeLine.vue3.js +0 -6
- package/dist/components/medias/EpTimeLine.vue3.js.map +0 -1
- package/dist/components/signages/EpSkeleton.vue3.js +0 -6
- package/dist/components/signages/EpSkeleton.vue3.js.map +0 -1
- package/dist/components/tools/DisplayBox.vue3.js +0 -6
- package/dist/components/tools/DisplayBox.vue3.js.map +0 -1
- package/dist/composables/useColors.js +0 -135
- package/dist/composables/useColors.js.map +0 -1
- package/dist/style.css +0 -5212
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { defineComponent, computed, createElementBlock, openBlock, normalizeClass, createElementVNode } from "vue";
|
|
2
|
-
import useColors from "../../composables/useColors.js";
|
|
3
2
|
const _hoisted_1 = ["width", "height"];
|
|
4
3
|
const _hoisted_2 = ["width", "height"];
|
|
5
4
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
@@ -13,7 +12,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
13
12
|
setup(__props) {
|
|
14
13
|
const props = __props;
|
|
15
14
|
const currentColor = computed(() => {
|
|
16
|
-
return
|
|
15
|
+
return props.color;
|
|
17
16
|
});
|
|
18
17
|
const styles = computed(() => {
|
|
19
18
|
return props.inline ? "" : "flex flex-row w-full h-screen items-center justify-center";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EpSpinner.vue.js","sources":["../../../src/components/basics/EpSpinner.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport
|
|
1
|
+
{"version":3,"file":"EpSpinner.vue.js","sources":["../../../src/components/basics/EpSpinner.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport type { EpSpinnerProps } from \"~/types/basics/EpSpinner\";\n\nconst props = withDefaults(defineProps<EpSpinnerProps>(), {\n color: \"primary\",\n dots: false,\n size: 46,\n inline: false,\n});\n\nconst currentColor = computed(() => {\n return props.color\n});\n\nconst styles = computed(() => {\n return props.inline\n ? \"\"\n : \"flex flex-row w-full h-screen items-center justify-center\";\n});\n</script>\n\n<template>\n <div :class=\"styles\">\n <svg\n v-if=\"!dots\"\n xmlns=\"http://www.w3.org/2000/svg\"\n :width=\"size\"\n :height=\"size\"\n class=\"inline\"\n viewBox=\"0 0 32 32\"\n >\n <path\n :class=\"currentColor\"\n fill=\"currentColor\"\n d=\"M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z\"\n opacity=\".25\"\n ></path>\n <path\n :class=\"currentColor\"\n fill=\"currentColor\"\n d=\"M12,4a8,8,0,0,1,7.89,6.7A1.53,1.53,0,0,0,21.38,12h0a1.5,1.5,0,0,0,1.48-1.75,11,11,0,0,0-21.72,0A1.5,1.5,0,0,0,2.62,12h0a1.53,1.53,0,0,0,1.49-1.3A8,8,0,0,1,12,4Z\"\n >\n <animateTransform\n attributeName=\"transform\"\n dur=\"0.75s\"\n repeatCount=\"indefinite\"\n type=\"rotate\"\n values=\"0 12 12;360 12 12\"\n ></animateTransform>\n </path>\n </svg>\n <svg\n v-else\n xmlns=\"http://www.w3.org/2000/svg\"\n :width=\"size\"\n :height=\"size\"\n class=\"inline\"\n viewBox=\"0 0 32 32\"\n >\n <g>\n <circle\n cx=\"12\"\n cy=\"2.5\"\n r=\"1.5\"\n :class=\"currentColor\"\n fill=\"currentColor\"\n opacity=\".14\"\n />\n <circle\n cx=\"16.75\"\n cy=\"3.77\"\n r=\"1.5\"\n :class=\"currentColor\"\n fill=\"currentColor\"\n opacity=\".29\"\n />\n <circle\n cx=\"20.23\"\n cy=\"7.25\"\n r=\"1.5\"\n :class=\"currentColor\"\n fill=\"currentColor\"\n opacity=\".43\"\n />\n <circle\n cx=\"21.5\"\n cy=\"12\"\n r=\"1.5\"\n :class=\"currentColor\"\n fill=\"currentColor\"\n opacity=\".57\"\n />\n <circle\n cx=\"20.23\"\n cy=\"16.75\"\n r=\"1.5\"\n :class=\"currentColor\"\n fill=\"currentColor\"\n opacity=\".71\"\n />\n <circle\n cx=\"16.75\"\n cy=\"20.23\"\n r=\"1.5\"\n :class=\"currentColor\"\n fill=\"currentColor\"\n opacity=\".86\"\n />\n <circle\n cx=\"12\"\n cy=\"21.5\"\n r=\"1.5\"\n :class=\"currentColor\"\n fill=\"currentColor\"\n />\n <animateTransform\n attributeName=\"transform\"\n calcMode=\"discrete\"\n dur=\"0.75s\"\n repeatCount=\"indefinite\"\n type=\"rotate\"\n values=\"0 12 12;30 12 12;60 12 12;90 12 12;120 12 12;150 12 12;180 12 12;210 12 12;240 12 12;270 12 12;300 12 12;330 12 12;360 12 12\"\n />\n </g>\n </svg>\n </div>\n</template>\n"],"names":["_createElementBlock","dots","size","_createElementVNode"],"mappings":";;;;;;;;;;;;AAIA,UAAM,QAAQ;AAOd,UAAM,eAAe,SAAS,MAAM;AAClC,aAAO,MAAM;AAAA,IACf,CAAC;AAED,UAAM,SAAS,SAAS,MAAM;AAC5B,aAAO,MAAM,SACT,KACA;AAAA,IACN,CAAC;;0BAICA,mBAuGM,OAAA;AAAA,QAvGA,sBAAO,OAAA,KAAM;AAAA,MAAA;SAERC,KAAAA,qBADTD,mBA2BM,OAAA;AAAA;UAzBJ,OAAM;AAAA,UACL,OAAOE,KAAAA;AAAAA,UACP,QAAQA,KAAAA;AAAAA,UACT,OAAM;AAAA,UACN,SAAQ;AAAA,QAAA;UAERC,mBAKQ,QAAA;AAAA,YAJL,sBAAO,aAAA,KAAY;AAAA,YACpB,MAAK;AAAA,YACL,GAAE;AAAA,YACF,SAAQ;AAAA,UAAA;UAEVA,mBAYO,QAAA;AAAA,YAXJ,sBAAO,aAAA,KAAY;AAAA,YACpB,MAAK;AAAA,YACL,GAAE;AAAA,UAAA;YAEFA,mBAMoB,oBAAA;AAAA,cALlB,eAAc;AAAA,cACd,KAAI;AAAA,cACJ,aAAY;AAAA,cACZ,MAAK;AAAA,cACL,QAAO;AAAA,YAAA;;2CAIbH,mBAyEM,OAAA;AAAA;UAvEJ,OAAM;AAAA,UACL,OAAOE,KAAAA;AAAAA,UACP,QAAQA,KAAAA;AAAAA,UACT,OAAM;AAAA,UACN,SAAQ;AAAA,QAAA;UAERC,mBAgEI,KAAA,MAAA;AAAA,YA/DFA,mBAOE,UAAA;AAAA,cANA,IAAG;AAAA,cACH,IAAG;AAAA,cACH,GAAE;AAAA,cACD,sBAAO,aAAA,KAAY;AAAA,cACpB,MAAK;AAAA,cACL,SAAQ;AAAA,YAAA;YAEVA,mBAOE,UAAA;AAAA,cANA,IAAG;AAAA,cACH,IAAG;AAAA,cACH,GAAE;AAAA,cACD,sBAAO,aAAA,KAAY;AAAA,cACpB,MAAK;AAAA,cACL,SAAQ;AAAA,YAAA;YAEVA,mBAOE,UAAA;AAAA,cANA,IAAG;AAAA,cACH,IAAG;AAAA,cACH,GAAE;AAAA,cACD,sBAAO,aAAA,KAAY;AAAA,cACpB,MAAK;AAAA,cACL,SAAQ;AAAA,YAAA;YAEVA,mBAOE,UAAA;AAAA,cANA,IAAG;AAAA,cACH,IAAG;AAAA,cACH,GAAE;AAAA,cACD,sBAAO,aAAA,KAAY;AAAA,cACpB,MAAK;AAAA,cACL,SAAQ;AAAA,YAAA;YAEVA,mBAOE,UAAA;AAAA,cANA,IAAG;AAAA,cACH,IAAG;AAAA,cACH,GAAE;AAAA,cACD,sBAAO,aAAA,KAAY;AAAA,cACpB,MAAK;AAAA,cACL,SAAQ;AAAA,YAAA;YAEVA,mBAOE,UAAA;AAAA,cANA,IAAG;AAAA,cACH,IAAG;AAAA,cACH,GAAE;AAAA,cACD,sBAAO,aAAA,KAAY;AAAA,cACpB,MAAK;AAAA,cACL,SAAQ;AAAA,YAAA;YAEVA,mBAME,UAAA;AAAA,cALA,IAAG;AAAA,cACH,IAAG;AAAA,cACH,GAAE;AAAA,cACD,sBAAO,aAAA,KAAY;AAAA,cACpB,MAAK;AAAA,YAAA;sCAEPA,mBAOE,oBAAA;AAAA,cANA,eAAc;AAAA,cACd,UAAS;AAAA,cACT,KAAI;AAAA,cACJ,aAAY;AAAA,cACZ,MAAK;AAAA,cACL,QAAO;AAAA,YAAA;;;;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent, computed, createElementBlock, openBlock, normalizeClass, Fragment, renderList, createBlock, resolveDynamicComponent, mergeProps, withCtx, createElementVNode, createCommentVNode, toDisplayString, unref, createVNode } from "vue";
|
|
2
|
-
import _sfc_main$1 from "./EpAvatar.
|
|
2
|
+
import _sfc_main$1 from "./EpAvatar.vue2.js";
|
|
3
3
|
import _sfc_main$2 from "./EpIcon.vue.js";
|
|
4
4
|
import { useRenderText } from "../../composables/useRenderText.js";
|
|
5
5
|
import { roundedType } from "../../types/StackedList.js";
|
|
@@ -36,7 +36,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
36
36
|
const elementSpacing = computed(() => props.restricted ? "p-3" : "mx-6 py-4");
|
|
37
37
|
return (_ctx, _cache) => {
|
|
38
38
|
return openBlock(), createElementBlock("ul", {
|
|
39
|
-
class: normalizeClass(`${className.value}
|
|
39
|
+
class: normalizeClass(`${className.value} flex flex-col ep-surface-2 lg:mx-28`)
|
|
40
40
|
}, [
|
|
41
41
|
(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.elements, (elem) => {
|
|
42
42
|
return openBlock(), createElementBlock("li", {
|
|
@@ -50,7 +50,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
50
50
|
), {
|
|
51
51
|
default: withCtx(() => [
|
|
52
52
|
createElementVNode("div", {
|
|
53
|
-
class: normalizeClass(`${elementSpacing.value} ${elem.url ? "hover:bg-gray-
|
|
53
|
+
class: normalizeClass(`${elementSpacing.value} ${elem.url ? "hover:bg-gray-200 dark:hover:bg-black" : ""} grid grid-cols-11 justify-items-center items-center ep-border-neutral`)
|
|
54
54
|
}, [
|
|
55
55
|
elem.avatar ? (openBlock(), createBlock(_sfc_main$1, mergeProps({
|
|
56
56
|
key: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EpStackedList.vue.js","sources":["../../../src/components/basics/EpStackedList.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, defineAsyncComponent } from \"vue\";\nimport EpAvatar from \"~/components/basics/EpAvatar.vue\";\nimport EpIcon from \"~/components/basics/EpIcon.vue\";\nimport { useRenderText } from \"~/composables/useRenderText\";\n\n// Importing the necessary interfaces for the code\nimport { roundedType } from \"~/types/StackedList\";\nimport type { EpStackedListProps } from \"~/types/basics/EpStackedList\";\n\nconst props = withDefaults(defineProps<EpStackedListProps>(), {\n elements: () => [],\n avatarStyle: () => {\n return {\n size: \"middle\",\n };\n },\n border: true,\n rounded: \"small\",\n restricted: false,\n cropped: false,\n iconSize: 36,\n});\n\n// The style of the wrapper div\nconst className = computed(() => {\n const border = props.border === false ? \"border-0\" : \"border\";\n const rounded = roundedType[props.rounded ? props.rounded : \"small\"];\n const padding = props.restricted ? \"p-0\" : \"p-2\";\n return `${border} ${rounded} ${padding}`;\n});\n\n// The style of the list elements\nconst elementSpacing = computed(() => (props.restricted ? \"p-3\" : \"mx-6 py-4\"));\n\nconst elementGrid = (element: Record<string, any> | undefined) => {\n return element ? \"grid-cols-11\" : \"grid-cols-7\";\n};\n</script>\n\n<template>\n <ul\n :class=\"`${className}
|
|
1
|
+
{"version":3,"file":"EpStackedList.vue.js","sources":["../../../src/components/basics/EpStackedList.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, defineAsyncComponent } from \"vue\";\nimport EpAvatar from \"~/components/basics/EpAvatar.vue\";\nimport EpIcon from \"~/components/basics/EpIcon.vue\";\nimport { useRenderText } from \"~/composables/useRenderText\";\n\n// Importing the necessary interfaces for the code\nimport { roundedType } from \"~/types/StackedList\";\nimport type { EpStackedListProps } from \"~/types/basics/EpStackedList\";\n\nconst props = withDefaults(defineProps<EpStackedListProps>(), {\n elements: () => [],\n avatarStyle: () => {\n return {\n size: \"middle\",\n };\n },\n border: true,\n rounded: \"small\",\n restricted: false,\n cropped: false,\n iconSize: 36,\n});\n\n// The style of the wrapper div\nconst className = computed(() => {\n const border = props.border === false ? \"border-0\" : \"border\";\n const rounded = roundedType[props.rounded ? props.rounded : \"small\"];\n const padding = props.restricted ? \"p-0\" : \"p-2\";\n return `${border} ${rounded} ${padding}`;\n});\n\n// The style of the list elements\nconst elementSpacing = computed(() => (props.restricted ? \"p-3\" : \"mx-6 py-4\"));\n\nconst elementGrid = (element: Record<string, any> | undefined) => {\n return element ? \"grid-cols-11\" : \"grid-cols-7\";\n};\n</script>\n\n<template>\n <ul\n :class=\"`${className} flex flex-col ep-surface-2 lg:mx-28`\"\n >\n <template v-for=\"elem in elements\" :key=\"elements.indexOf(elem)\">\n <li\n :class=\"`${elements.indexOf(elem) !== 0 ? 'border-t' : ''} list-none`\"\n >\n <component\n :is=\"elem.url ? 'a' : 'div'\"\n v-bind=\"\n elem.url\n ? { href: elem.url, target: '_blank', rel: 'noopener noreferrer' }\n : {}\n \"\n :class=\"`contents`\"\n >\n <div\n :class=\"`${elementSpacing} ${\n elem.url ? 'hover:bg-gray-200 dark:hover:bg-black' : ''\n } grid grid-cols-11 justify-items-center items-center ep-border-neutral`\"\n >\n <EpAvatar\n v-if=\"elem.avatar\"\n :src=\"elem.avatar\"\n v-bind=\"avatarStyle\"\n class=\"col-span-2\"\n />\n <div class=\"col-span-5 justify-self-start\">\n <h3 class=\"font-semibold\">{{ elem.title }}</h3>\n <div\n :class=\"`${cropped ? 'line-clamp-3' : ''}`\"\n v-html=\"useRenderText(elem.description)\"\n />\n </div>\n <!--element icon-->\n <div\n v-if=\"elem.icon\"\n class=\"flex gap-2 items-center col-span-4 justify-self-auto\"\n >\n <EpIcon :icon-path=\"elem.icon\" :size=\"iconSize\" />\n </div>\n </div>\n </component>\n </li>\n </template>\n </ul>\n</template>\n"],"names":["_createElementBlock","_Fragment","_renderList","elements","_normalizeClass","_openBlock","_createBlock","_resolveDynamicComponent","_mergeProps","_createElementVNode","EpAvatar","avatarStyle","_toDisplayString","cropped","_unref","_createVNode","EpIcon","iconSize"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,UAAM,QAAQ;AAed,UAAM,YAAY,SAAS,MAAM;AAC/B,YAAM,SAAS,MAAM,WAAW,QAAQ,aAAa;AACrD,YAAM,UAAU,YAAY,MAAM,UAAU,MAAM,UAAU,OAAO;AACnE,YAAM,UAAU,MAAM,aAAa,QAAQ;AAC3C,aAAO,GAAG,MAAM,IAAI,OAAO,IAAI,OAAO;AAAA,IACxC,CAAC;AAGD,UAAM,iBAAiB,SAAS,MAAO,MAAM,aAAa,QAAQ,WAAY;;0BAQ5EA,mBA6CK,MAAA;AAAA,QA5CF,yBAAU,UAAA,KAAS,uCAAA;AAAA,MAAA;0BAEpBA,mBAyCWC,UAAA,MAAAC,WAzCcC,KAAAA,UAAQ,CAAhB,SAAI;8BACnBH,mBAuCK,MAAA;AAAA,iBAxCkCG,KAAAA,SAAS,QAAQ,IAAI;AAAA,YAEzD,OAAKC,eAAA,GAAKD,KAAAA,SAAS,QAAQ,IAAI,MAAA,IAAA,aAAA,EAAA,YAAA;AAAA,UAAA;aAEhCE,UAAA,GAAAC,YAmCYC,wBAlCL,KAAK,oBADZC;AAAAA,cAmCY,EAAA,SAAA,KAAA;AAAA,cAjCW,KAAK,MAA4B,EAAA,MAAA,KAAK,KAAG,QAAA,UAAA,KAAA,sBAAA;cAK7D,EAAA,OAAO,WAAA;AAAA,YAAU,GAAA;AAAA,+BAElB,MAyBM;AAAA,gBAzBNC,mBAyBM,OAAA;AAAA,kBAxBH,yBAAU,eAAA,KAAc,IAAmB,KAAK,MAAG,0CAAA;;kBAK5C,KAAK,UADbJ,UAAA,GAAAC,YAKEI,aALFF,WAKE;AAAA;oBAHC,KAAK,KAAK;AAAA,kBAAA,sBACHG,KAAAA,aAAW,EACnB,OAAM,aAAA,CAAY,GAAA,MAAA,IAAA,CAAA,KAAA,CAAA;kBAEpBF,mBAMM,OANN,YAMM;AAAA,oBALJA,mBAA+C,MAA/C,YAA+CG,gBAAlB,KAAK,KAAK,GAAA,CAAA;AAAA,oBACvCH,mBAGE,OAAA;AAAA,sBAFC,yBAAUI,KAAAA,UAAO,iBAAA,EAAA,EAAA;AAAA,sBAClB,WAAQC,MAAA,aAAA,EAAc,KAAK,WAAW;AAAA,oBAAA;;kBAKlC,KAAK,QADbT,UAAA,GAAAL,mBAKM,OALN,YAKM;AAAA,oBADJe,YAAkDC,aAAA;AAAA,sBAAzC,aAAW,KAAK;AAAA,sBAAO,MAAMC,KAAAA;AAAAA,oBAAAA;;;;;;;;;;;;"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { defineComponent, toRefs, createBlock, openBlock, unref, withCtx, createElementVNode, createElementBlock, createCommentVNode, Fragment, renderList, normalizeClass, toDisplayString } from "vue";
|
|
2
2
|
import _sfc_main$1 from "./EpCard.vue.js";
|
|
3
|
-
const _hoisted_1 = { class: "min-w-full divide-y shadow
|
|
3
|
+
const _hoisted_1 = { class: "min-w-full divide-y shadow" };
|
|
4
4
|
const _hoisted_2 = {
|
|
5
5
|
key: 0,
|
|
6
|
-
class: "
|
|
6
|
+
class: "ep-surface"
|
|
7
7
|
};
|
|
8
|
-
const _hoisted_3 = { class: "
|
|
8
|
+
const _hoisted_3 = { class: "divide-y" };
|
|
9
9
|
const styleTh = "px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:text-white";
|
|
10
10
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
11
11
|
__name: "EpTable",
|
|
@@ -39,7 +39,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
39
39
|
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(arrayContent), (tr, i) => {
|
|
40
40
|
return openBlock(), createElementBlock("tr", {
|
|
41
41
|
key: `tr-${i}`,
|
|
42
|
-
class: "hover:bg-gray-
|
|
42
|
+
class: "hover:bg-gray-200 dark:hover:bg-black"
|
|
43
43
|
}, [
|
|
44
44
|
(openBlock(true), createElementBlock(Fragment, null, renderList(tr, (value, j) => {
|
|
45
45
|
return openBlock(), createElementBlock("td", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EpTable.vue.js","sources":["../../../src/components/basics/EpTable.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { toRefs } from \"vue\";\nimport EpCard from \"../basics/EpCard.vue\";\nimport type { EpTableProps } from \"~/types/basics/EpTable\";\n\nconst props = defineProps<EpTableProps>();\n\nconst { headers, arrayContent, title } = toRefs(props);\n\nconst styleTh =\n \"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:text-white\";\n</script>\n<template>\n <EpCard flat :title=\"title\">\n <table class=\"min-w-full divide-y shadow
|
|
1
|
+
{"version":3,"file":"EpTable.vue.js","sources":["../../../src/components/basics/EpTable.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { toRefs } from \"vue\";\nimport EpCard from \"../basics/EpCard.vue\";\nimport type { EpTableProps } from \"~/types/basics/EpTable\";\n\nconst props = defineProps<EpTableProps>();\n\nconst { headers, arrayContent, title } = toRefs(props);\n\nconst styleTh =\n \"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:text-white\";\n</script>\n<template>\n <EpCard flat :title=\"title\">\n <table class=\"min-w-full divide-y shadow\">\n <thead class=\"ep-surface\" v-if=\"headers\">\n <tr>\n <th\n v-for=\"(title, i) in headers\"\n :key=\"`th-${i}`\"\n scope=\"col\"\n :class=\"styleTh\"\n >\n {{ title }}\n </th>\n </tr>\n </thead>\n <tbody class=\"divide-y\">\n <tr\n v-for=\"(tr, i) in arrayContent\"\n :key=\"`tr-${i}`\"\n class=\"hover:bg-gray-200 dark:hover:bg-black\"\n >\n <td v-for=\"(value, j) in tr\" :key=\"`td-${i}-${j}`\" class=\"px-6 py-4\">\n {{ value }}\n </td>\n </tr>\n </tbody>\n </table>\n </EpCard>\n</template>\n"],"names":["_createBlock","EpCard","_unref","_createElementVNode","_openBlock","_createElementBlock","_Fragment","_renderList","title"],"mappings":";;;;;;;;AASA,MAAM,UACJ;;;;;;;;;AALF,UAAM,QAAQ;AAEd,UAAM,EAAE,SAAS,cAAc,MAAA,IAAU,OAAO,KAAK;;0BAMnDA,YA0BSC,aAAA;AAAA,QA1BD,MAAA;AAAA,QAAM,OAAOC,MAAA,KAAA;AAAA,MAAA;yBACnB,MAwBQ;AAAA,UAxBRC,mBAwBQ,SAxBR,YAwBQ;AAAA,YAvB0BD,MAAA,OAAA,KAAhCE,aAAAC,mBAWQ,SAXR,YAWQ;AAAA,cAVNF,mBASK,MAAA,MAAA;AAAA,iBARHC,UAAA,IAAA,GAAAC,mBAOKC,UAAA,MAAAC,WANkBL,MAAA,OAAA,GAAO,CAApBM,QAAO,MAAC;sCADlBH,mBAOK,MAAA;AAAA,oBALF,WAAW,CAAC;AAAA,oBACb,OAAM;AAAA,oBACL,sBAAO,OAAO;AAAA,kBAAA,mBAEZG,MAAK,GAAA,CAAA;AAAA;;;YAIdL,mBAUQ,SAVR,YAUQ;AAAA,eATNC,UAAA,IAAA,GAAAC,mBAQKC,UAAA,MAAAC,WAPeL,MAAA,YAAA,GAAY,CAAtB,IAAI,MAAC;oCADfG,mBAQK,MAAA;AAAA,kBANF,WAAW,CAAC;AAAA,kBACb,OAAM;AAAA,gBAAA;mBAEND,UAAA,IAAA,GAAAC,mBAEKC,UAAA,MAAAC,WAFoB,IAAE,CAAf,OAAO,MAAC;wCAApBF,mBAEK,MAAA;AAAA,sBAFyB,KAAG,MAAQ,CAAC,IAAI,CAAC;AAAA,sBAAI,OAAM;AAAA,oBAAA,mBACpD,KAAK,GAAA,CAAA;AAAA;;;;;;;;;;;"}
|
|
@@ -27,9 +27,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
27
27
|
container.innerHTML = html;
|
|
28
28
|
const nodes = [];
|
|
29
29
|
container.childNodes.forEach((node) => {
|
|
30
|
-
var _a;
|
|
30
|
+
var _a, _b;
|
|
31
31
|
if (node.nodeType === 3) {
|
|
32
|
-
|
|
32
|
+
const text = (_a = node.textContent) == null ? void 0 : _a.trim();
|
|
33
|
+
if (text) nodes.push(text);
|
|
33
34
|
} else if (node.nodeType === 1) {
|
|
34
35
|
const el = node;
|
|
35
36
|
if (el.classList.contains("ep_glossary_item")) {
|
|
@@ -64,7 +65,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
64
65
|
word: render_word,
|
|
65
66
|
variations: stringVariations,
|
|
66
67
|
graminfo: term.graminfo,
|
|
67
|
-
src: (
|
|
68
|
+
src: (_b = term.img) != null ? _b : "",
|
|
68
69
|
domain: term.domain,
|
|
69
70
|
relations: stringRelations,
|
|
70
71
|
labelDefinition: props.labelDefinition,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EpText.vue.js","sources":["../../../src/components/basics/EpText.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, toRefs, h, type VNode } from \"vue\";\nimport type { Glossary } from \"~/types/Glossary\"\nimport { isHtml } from \"~/composables/isHtml\";\nimport { useRenderText } from \"~/composables/useRenderText\";\nimport EpAccordeon from \"~/components/interactions/EpAccordeon.vue\";\nimport EpTerm from \"~/components/medias/EpTerm.vue\";\nimport type { EpTextProps } from \"~/types/basics/EpText\";\n\nconst props = withDefaults(defineProps<EpTextProps>(), {\n compact: false,\n labelDefinition: \"Définition\",\n labelDomain: \"Domaine\",\n labelVariations: \"Variations\",\n labelRelations: \"Relations\",\n labelClose: \"Fermer\",\n});\n\nconst { compact } = toRefs(props);\n\nconst renderTitle = computed(() => props.title || \"En savoir plus\");\n\nfunction parseHtmlToVNodes(html: string): (VNode | string)[] {\n const container = document.createElement(\"div\");\n container.innerHTML = html;\n\n const nodes: (VNode | string)[] = [];\n\n container.childNodes.forEach((node) => {\n if (node.nodeType === 3) {\n // Text node\n
|
|
1
|
+
{"version":3,"file":"EpText.vue.js","sources":["../../../src/components/basics/EpText.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, toRefs, h, type VNode } from \"vue\";\nimport type { Glossary } from \"~/types/Glossary\"\nimport { isHtml } from \"~/composables/isHtml\";\nimport { useRenderText } from \"~/composables/useRenderText\";\nimport EpAccordeon from \"~/components/interactions/EpAccordeon.vue\";\nimport EpTerm from \"~/components/medias/EpTerm.vue\";\nimport type { EpTextProps } from \"~/types/basics/EpText\";\n\nconst props = withDefaults(defineProps<EpTextProps>(), {\n compact: false,\n labelDefinition: \"Définition\",\n labelDomain: \"Domaine\",\n labelVariations: \"Variations\",\n labelRelations: \"Relations\",\n labelClose: \"Fermer\",\n});\n\nconst { compact } = toRefs(props);\n\nconst renderTitle = computed(() => props.title || \"En savoir plus\");\n\nfunction parseHtmlToVNodes(html: string): (VNode | string)[] {\n const container = document.createElement(\"div\");\n container.innerHTML = html;\n\n const nodes: (VNode | string)[] = [];\n\n container.childNodes.forEach((node) => {\n if (node.nodeType === 3) {\n // Text node\n const text = node.textContent?.trim();\n if (text) nodes.push(text); // only push non-empty text\n } else if (node.nodeType === 1) {\n const el = node as HTMLElement;\n\n if (el.classList.contains(\"ep_glossary_item\")) {\n const id = el.getAttribute(\"data-id\");\n const render_word = el.innerHTML;\n\n let _glossary: Glossary[] = [];\n if (props.glossary) {\n _glossary = props.glossary.map((item) => ({\n ...item,\n id: item.documentId ?? item.id\n }));\n }\n\n const term = _glossary.find((word) => word.id === id);\n\n if (term) {\n const foundedRelations = _glossary.filter((x) =>\n x.relation.some((r: string) => r === id)\n );\n const termsRelation = foundedRelations.map((x) => x.term);\n const stringRelations = termsRelation.join(', ')\n const stringVariations = term.variation.join(', ')\n\n nodes.push(\n h(\n \"div\",\n { style: \"display:inline\" },\n h(\n EpTerm,\n {\n term: term.term,\n word: render_word,\n variations: stringVariations,\n graminfo: term.graminfo,\n src: term.img ?? \"\",\n domain: term.domain,\n relations: stringRelations,\n labelDefinition: props.labelDefinition,\n labelDomain: props.labelDomain,\n labelVariations: props.labelVariations,\n labelRelations: props.labelRelations,\n labelClose: props.labelClose,\n },\n () => {\n const def = useRenderText(term.definition);\n if (!isHtml(def)) {\n return h(\"div\", { innerHTML: def });\n }\n return parseHtmlToVNodes(def);\n }\n )\n )\n );\n return;\n }\n }\n nodes.push(\n h(\n el.tagName.toLowerCase(),\n {},\n parseHtmlToVNodes(el.innerHTML) \n )\n );\n }\n });\n\n return nodes;\n}\n\nconst renderText = computed(() => {\n if (!props.content) return [h(\"div\")];\n if (!isHtml(props.content)) {\n return [h(\"div\", { innerHTML: useRenderText(props.content) })];\n }\n\n const formatted = useRenderText(props.content)\n\n return parseHtmlToVNodes(formatted);\n});\n</script>\n\n<template>\n <div class=\"px-2 text-black dark:text-white\">\n <EpAccordeon v-if=\"compact\" outlined :title=\"renderTitle\">\n <div>\n <component :is=\"node\" v-for=\"(node, i) in renderText\" :key=\"i\" />\n </div>\n </EpAccordeon>\n <div v-else>\n <component :is=\"node\" v-for=\"(node, i) in renderText\" :key=\"i\" />\n </div>\n </div>\n</template>\n"],"names":["_a","EpTerm","_openBlock","_createElementBlock","_unref","_createBlock","EpAccordeon","_createElementVNode","_Fragment","_renderList","_resolveDynamicComponent"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _sfc_main from "./EpBranchingScenario.vue2.js";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import _export_sfc from "../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
-
const Comp = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
4
|
+
const Comp = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c85132a3"]]);
|
|
5
5
|
export {
|
|
6
6
|
Comp as default
|
|
7
7
|
};
|
|
@@ -126,7 +126,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
126
126
|
var _a, _b;
|
|
127
127
|
return openBlock(), createElementBlock("div", null, [
|
|
128
128
|
createElementVNode("div", {
|
|
129
|
-
class: "
|
|
129
|
+
class: "ep-surface-2 rounded-md p-4 flex flex-col",
|
|
130
130
|
style: normalizeStyle({ minHeight: "500px", backgroundColor: _ctx.bgColor })
|
|
131
131
|
}, [
|
|
132
132
|
createElementVNode("div", _hoisted_1, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EpBranchingScenario.vue2.js","sources":["../../../src/components/educationals/EpBranchingScenario.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, computed } from \"vue\";\nimport { useRenderText } from \"~/composables/useRenderText\";\nimport type { TreeNode } from \"~/types/Hierarchy\";\nimport EpIcon from \"~/components/basics/EpIcon.vue\";\nimport Details from \"~/components/tools/Details.vue\";\nimport EpModal from \"~/components/interactions/EpModal.vue\";\nimport EpHierarchy from \"~/components/medias/EpHierarchy.vue\";\nimport EpBtn from \"../basics/EpBtn.vue\";\nimport { mdiArrowLeft } from \"@mdi/js\";\nimport TextMedia from \"~/components/tools/TextMedia.vue\";\nimport type { EpBranchingScenarioProps } from \"~/types/educationals/EpBranchingScenario\";\n\nconst props = withDefaults(defineProps<EpBranchingScenarioProps>(), {\n initialInstruction: null,\n transitionAnimation: \"fade\",\n labelFinish: \"Vous avez terminé le scénario!\",\n labelYourPath: \"Votre parcours\",\n labelShowFullPath: \"Voir le parcours au complet\",\n labelClose: \"Fermer\",\n labelRestart: \"Recommencer\",\n labelStart: \"Commencer\",\n colorRect: \"fill-main-color-400\",\n colorPath: \"stroke-yellow-400\",\n});\n\nconst showPath = ref(false);\nconst path = ref<TreeNode[]>([]);\nconst userPath = ref<TreeNode | null>(null);\nconst currentOption = ref<TreeNode | null>(null);\n\n// Manage the introductory part\nconst isIntroductoryPart = ref(true);\n\nconst start = () => {\n isIntroductoryPart.value = false;\n currentOption.value = props.decisionTree;\n};\n\nconst styleIntro = computed(() => {\n const noInstruction = !props.initialInstruction;\n const noMedia = !props.media;\n\n if (noInstruction && noMedia) {\n return \"pt-44\";\n }\n\n return \"\";\n});\n\n// Return function\nconst goToPrevious = () => {\n //if(notTheEnd.value){\n if (path.value.length === 0) {\n isIntroductoryPart.value = true;\n currentOption.value = null;\n return;\n }\n\n path.value.pop();\n // Get the previous option in the path\n const lastOption = path.value[path.value.length - 1];\n\n if (lastOption) {\n currentOption.value = lastOption;\n } else {\n currentOption.value = props.decisionTree;\n }\n};\n\n// Restart function\nconst restart = () => {\n //currentSlide.value = 0;\n currentOption.value = null;\n isIntroductoryPart.value = true;\n path.value = [];\n};\n\nconst nextSlide = (option: TreeNode) => {\n //currentSlide.value++\n path.value.push(option);\n if (option.children && option.children.length > 0) {\n currentOption.value = option; // drill into next level\n } else {\n currentOption.value = null; // reached the end (leaf node)\n userPath.value = convertOptionToTreeNode(props.decisionTree, path.value);\n }\n};\n\n//helper function\nfunction convertOptionToTreeNode(option: TreeNode, path: TreeNode[]): TreeNode {\n const isActive = path.includes(option);\n return {\n name: option.name,\n text: option.text,\n component: option.component,\n active: isActive,\n children: option.children?.map((child) =>\n convertOptionToTreeNode(child, path)\n ),\n };\n}\n</script>\n\n<template>\n <div>\n <div\n class=\"bg-gray-200 dark:bg-slate-800 rounded-md p-4 flex flex-col\"\n :style=\"{ minHeight: '500px', backgroundColor: bgColor }\"\n >\n <!-- <div v-for=\"item in path\" :key=\"item.name\">\n <span class=\"text-xs\">{{ item.name }}</span>\n </div> -->\n <!-- Header (fixed at top of card) -->\n <div class=\"mb-2\">\n <h1 class=\"font-bold text-3xl text-center\">{{ title }}</h1>\n <div v-if=\"currentOption\" class=\"mt-2\">\n <EpBtn\n type=\"primary\"\n rounded\n size=\"small\"\n :extra-class=\"`${transitionAnimation}`\"\n @click=\"goToPrevious\"\n >\n <EpIcon :icon-path=\"mdiArrowLeft\" size=\"25\" />\n </EpBtn>\n </div>\n </div>\n\n <!-- Content Area -->\n <div>\n <!-- Introductory Part -->\n <div v-if=\"isIntroductoryPart\" class=\"w-full flex flex-col space-y-6\">\n <TextMedia\n :text=\"initialInstruction ?? ''\"\n :media=\"media\"\n :cols=\"initialTwoCols\"\n />\n <div :class=\"`justify-center flex ${styleIntro}`\">\n <EpBtn type=\"primary\" rounded @click=\"start\">{{\n labelStart\n }}</EpBtn>\n </div>\n </div>\n\n <!-- Slides -->\n <template v-else-if=\"currentOption && !isIntroductoryPart\">\n <div class=\"w-full\">\n <div :class=\"`${transitionAnimation} my-12`\">\n <TextMedia\n :text=\"currentOption.text ?? ''\"\n :media=\"currentOption.component\"\n :cols=\"currentOption.cols\"\n />\n\n <div\n :class=\"`w-full my-4 mx-4 flex flex-wrap gap-2 justify-center items-center`\"\n >\n <template\n v-for=\"(option, index) in currentOption.children\"\n :key=\"`option-${index}`\"\n >\n <EpBtn\n rounded\n type=\"primary\"\n class=\"flex-1 min-w-[120px] sm:min-w-[160px] max-w-xs\"\n @click=\"nextSlide(option)\"\n >\n {{ option.name }}\n </EpBtn>\n </template>\n </div>\n </div>\n </div>\n </template>\n\n <!--show path-->\n <div v-else>\n <!-- <template v-if=\"userPath\">\n <EpHierarchy :nodes=\"userPath\"/>\n </template> -->\n <h3 class=\"text-xl text-center font-semibold\">{{ labelFinish }}</h3>\n <div\n :class=\"`flex gap-6 mt-3 ${\n !generalFeedback ? 'w-3/6 mx-auto' : ''\n }`\"\n >\n <div class=\"w-full\">\n <h3 class=\"font-semibold mb-3\">{{ labelYourPath }}</h3>\n <div class=\"overflow-auto p-2\" :style=\"{ height: '200px' }\">\n <template v-for=\"(item, i) in path\" :key=\"`user-choice-${i}`\">\n <div class=\"mb-2\">\n <Details\n :content=\"item.text ?? ''\"\n :title=\"item.name\"\n :media=\"item.component\"\n />\n </div>\n </template>\n </div>\n <div class=\"flex justify-center mt-2\">\n <EpBtn type=\"info\" rounded @click=\"showPath = true\">{{\n labelShowFullPath\n }}</EpBtn>\n </div>\n <EpModal v-if=\"userPath\" v-model=\"showPath\">\n <EpHierarchy\n :nodes=\"userPath\"\n :is-cluster=\"props.isCluster\"\n :color-path=\"props.colorPath\"\n :color-rect=\"props.colorRect\"\n />\n <div class=\"flex justify-end mt-4\">\n <EpBtn\n @click=\"showPath = false\"\n type=\"error\"\n outlined\n rounded\n >{{ labelClose }}</EpBtn\n >\n </div>\n </EpModal>\n </div>\n <div\n v-if=\"generalFeedback\"\n class=\"flex w-full flex-col col-span-1 items-center px-4 border-l-2 border-gray-700 overflow-auto\"\n >\n <div v-html=\"useRenderText(generalFeedback)\" />\n </div>\n </div>\n\n <div class=\"flex justify-center mt-2\">\n <EpBtn rounded type=\"warning\" @click=\"restart\">{{\n labelRestart\n }}</EpBtn>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<style scoped>\n@keyframes fade {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes scale {\n 0% {\n transform: scale(0.5);\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n\n@keyframes slideY {\n 0% {\n transform: translateY(-100%);\n opacity: 0;\n }\n 100% {\n transform: translateY(0);\n opacity: 1;\n }\n}\n\n/* Transition animation */\n.fade {\n animation: fade 1s;\n}\n\n.scale {\n animation: scale 1s;\n}\n\n.slideY {\n animation: slideY 1s;\n}\n</style>\n"],"names":["path","_createElementBlock","_createElementVNode","bgColor","_toDisplayString","title","_openBlock","_createVNode","EpBtn","transitionAnimation","EpIcon","_unref","TextMedia","initialInstruction","media","initialTwoCols","labelStart","_Fragment","_createBlock","_createTextVNode","labelFinish","_normalizeClass","generalFeedback","labelYourPath","_renderList","Details","_a","labelShowFullPath","EpModal","EpHierarchy","labelClose","labelRestart"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EpBranchingScenario.vue2.js","sources":["../../../src/components/educationals/EpBranchingScenario.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, computed } from \"vue\";\nimport { useRenderText } from \"~/composables/useRenderText\";\nimport type { TreeNode } from \"~/types/Hierarchy\";\nimport EpIcon from \"~/components/basics/EpIcon.vue\";\nimport Details from \"~/components/tools/Details.vue\";\nimport EpModal from \"~/components/interactions/EpModal.vue\";\nimport EpHierarchy from \"~/components/medias/EpHierarchy.vue\";\nimport EpBtn from \"../basics/EpBtn.vue\";\nimport { mdiArrowLeft } from \"@mdi/js\";\nimport TextMedia from \"~/components/tools/TextMedia.vue\";\nimport type { EpBranchingScenarioProps } from \"~/types/educationals/EpBranchingScenario\";\n\nconst props = withDefaults(defineProps<EpBranchingScenarioProps>(), {\n initialInstruction: null,\n transitionAnimation: \"fade\",\n labelFinish: \"Vous avez terminé le scénario!\",\n labelYourPath: \"Votre parcours\",\n labelShowFullPath: \"Voir le parcours au complet\",\n labelClose: \"Fermer\",\n labelRestart: \"Recommencer\",\n labelStart: \"Commencer\",\n colorRect: \"fill-main-color-400\",\n colorPath: \"stroke-yellow-400\",\n});\n\nconst showPath = ref(false);\nconst path = ref<TreeNode[]>([]);\nconst userPath = ref<TreeNode | null>(null);\nconst currentOption = ref<TreeNode | null>(null);\n\n// Manage the introductory part\nconst isIntroductoryPart = ref(true);\n\nconst start = () => {\n isIntroductoryPart.value = false;\n currentOption.value = props.decisionTree;\n};\n\nconst styleIntro = computed(() => {\n const noInstruction = !props.initialInstruction;\n const noMedia = !props.media;\n\n if (noInstruction && noMedia) {\n return \"pt-44\";\n }\n\n return \"\";\n});\n\n// Return function\nconst goToPrevious = () => {\n //if(notTheEnd.value){\n if (path.value.length === 0) {\n isIntroductoryPart.value = true;\n currentOption.value = null;\n return;\n }\n\n path.value.pop();\n // Get the previous option in the path\n const lastOption = path.value[path.value.length - 1];\n\n if (lastOption) {\n currentOption.value = lastOption;\n } else {\n currentOption.value = props.decisionTree;\n }\n};\n\n// Restart function\nconst restart = () => {\n //currentSlide.value = 0;\n currentOption.value = null;\n isIntroductoryPart.value = true;\n path.value = [];\n};\n\nconst nextSlide = (option: TreeNode) => {\n //currentSlide.value++\n path.value.push(option);\n if (option.children && option.children.length > 0) {\n currentOption.value = option; // drill into next level\n } else {\n currentOption.value = null; // reached the end (leaf node)\n userPath.value = convertOptionToTreeNode(props.decisionTree, path.value);\n }\n};\n\n//helper function\nfunction convertOptionToTreeNode(option: TreeNode, path: TreeNode[]): TreeNode {\n const isActive = path.includes(option);\n return {\n name: option.name,\n text: option.text,\n component: option.component,\n active: isActive,\n children: option.children?.map((child) =>\n convertOptionToTreeNode(child, path)\n ),\n };\n}\n</script>\n\n<template>\n <div>\n <div\n class=\"ep-surface-2 rounded-md p-4 flex flex-col\"\n :style=\"{ minHeight: '500px', backgroundColor: bgColor }\"\n >\n <!-- <div v-for=\"item in path\" :key=\"item.name\">\n <span class=\"text-xs\">{{ item.name }}</span>\n </div> -->\n <!-- Header (fixed at top of card) -->\n <div class=\"mb-2\">\n <h1 class=\"font-bold text-3xl text-center\">{{ title }}</h1>\n <div v-if=\"currentOption\" class=\"mt-2\">\n <EpBtn\n type=\"primary\"\n rounded\n size=\"small\"\n :extra-class=\"`${transitionAnimation}`\"\n @click=\"goToPrevious\"\n >\n <EpIcon :icon-path=\"mdiArrowLeft\" size=\"25\" />\n </EpBtn>\n </div>\n </div>\n\n <!-- Content Area -->\n <div>\n <!-- Introductory Part -->\n <div v-if=\"isIntroductoryPart\" class=\"w-full flex flex-col space-y-6\">\n <TextMedia\n :text=\"initialInstruction ?? ''\"\n :media=\"media\"\n :cols=\"initialTwoCols\"\n />\n <div :class=\"`justify-center flex ${styleIntro}`\">\n <EpBtn type=\"primary\" rounded @click=\"start\">{{\n labelStart\n }}</EpBtn>\n </div>\n </div>\n\n <!-- Slides -->\n <template v-else-if=\"currentOption && !isIntroductoryPart\">\n <div class=\"w-full\">\n <div :class=\"`${transitionAnimation} my-12`\">\n <TextMedia\n :text=\"currentOption.text ?? ''\"\n :media=\"currentOption.component\"\n :cols=\"currentOption.cols\"\n />\n\n <div\n :class=\"`w-full my-4 mx-4 flex flex-wrap gap-2 justify-center items-center`\"\n >\n <template\n v-for=\"(option, index) in currentOption.children\"\n :key=\"`option-${index}`\"\n >\n <EpBtn\n rounded\n type=\"primary\"\n class=\"flex-1 min-w-[120px] sm:min-w-[160px] max-w-xs\"\n @click=\"nextSlide(option)\"\n >\n {{ option.name }}\n </EpBtn>\n </template>\n </div>\n </div>\n </div>\n </template>\n\n <!--show path-->\n <div v-else>\n <!-- <template v-if=\"userPath\">\n <EpHierarchy :nodes=\"userPath\"/>\n </template> -->\n <h3 class=\"text-xl text-center font-semibold\">{{ labelFinish }}</h3>\n <div\n :class=\"`flex gap-6 mt-3 ${\n !generalFeedback ? 'w-3/6 mx-auto' : ''\n }`\"\n >\n <div class=\"w-full\">\n <h3 class=\"font-semibold mb-3\">{{ labelYourPath }}</h3>\n <div class=\"overflow-auto p-2\" :style=\"{ height: '200px' }\">\n <template v-for=\"(item, i) in path\" :key=\"`user-choice-${i}`\">\n <div class=\"mb-2\">\n <Details\n :content=\"item.text ?? ''\"\n :title=\"item.name\"\n :media=\"item.component\"\n />\n </div>\n </template>\n </div>\n <div class=\"flex justify-center mt-2\">\n <EpBtn type=\"info\" rounded @click=\"showPath = true\">{{\n labelShowFullPath\n }}</EpBtn>\n </div>\n <EpModal v-if=\"userPath\" v-model=\"showPath\">\n <EpHierarchy\n :nodes=\"userPath\"\n :is-cluster=\"props.isCluster\"\n :color-path=\"props.colorPath\"\n :color-rect=\"props.colorRect\"\n />\n <div class=\"flex justify-end mt-4\">\n <EpBtn\n @click=\"showPath = false\"\n type=\"error\"\n outlined\n rounded\n >{{ labelClose }}</EpBtn\n >\n </div>\n </EpModal>\n </div>\n <div\n v-if=\"generalFeedback\"\n class=\"flex w-full flex-col col-span-1 items-center px-4 border-l-2 border-gray-700 overflow-auto\"\n >\n <div v-html=\"useRenderText(generalFeedback)\" />\n </div>\n </div>\n\n <div class=\"flex justify-center mt-2\">\n <EpBtn rounded type=\"warning\" @click=\"restart\">{{\n labelRestart\n }}</EpBtn>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<style scoped>\n@keyframes fade {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes scale {\n 0% {\n transform: scale(0.5);\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n\n@keyframes slideY {\n 0% {\n transform: translateY(-100%);\n opacity: 0;\n }\n 100% {\n transform: translateY(0);\n opacity: 1;\n }\n}\n\n/* Transition animation */\n.fade {\n animation: fade 1s;\n}\n\n.scale {\n animation: scale 1s;\n}\n\n.slideY {\n animation: slideY 1s;\n}\n</style>\n"],"names":["path","_createElementBlock","_createElementVNode","bgColor","_toDisplayString","title","_openBlock","_createVNode","EpBtn","transitionAnimation","EpIcon","_unref","TextMedia","initialInstruction","media","initialTwoCols","labelStart","_Fragment","_createBlock","_createTextVNode","labelFinish","_normalizeClass","generalFeedback","labelYourPath","_renderList","Details","_a","labelShowFullPath","EpModal","EpHierarchy","labelClose","labelRestart"],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ const _hoisted_2 = {
|
|
|
11
11
|
};
|
|
12
12
|
const _hoisted_3 = {
|
|
13
13
|
key: 0,
|
|
14
|
-
class: "font-light text-sm pb-1 tracking-wide
|
|
14
|
+
class: "font-light text-sm pb-1 tracking-wide"
|
|
15
15
|
};
|
|
16
16
|
const _hoisted_4 = { class: "pt-2" };
|
|
17
17
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
@@ -25,7 +25,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
25
25
|
type: { default: "neutral" },
|
|
26
26
|
labelIntentions: { default: "" },
|
|
27
27
|
hideIcon: { type: Boolean, default: false },
|
|
28
|
-
flat: { type: Boolean, default: true }
|
|
28
|
+
flat: { type: Boolean, default: true },
|
|
29
|
+
card: { type: Boolean, default: false }
|
|
29
30
|
},
|
|
30
31
|
setup(__props) {
|
|
31
32
|
const props = __props;
|
|
@@ -69,14 +70,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
69
70
|
}
|
|
70
71
|
return `flex flex-col justify-between`;
|
|
71
72
|
});
|
|
73
|
+
const bgColor = computed(() => {
|
|
74
|
+
return props.card ? "ep-surface-2" : "ep-surface";
|
|
75
|
+
});
|
|
72
76
|
const { title, hideIcon } = toRefs(props);
|
|
73
77
|
return (_ctx, _cache) => {
|
|
74
78
|
return openBlock(), createElementBlock("div", {
|
|
75
|
-
class: normalizeClass(containerStyle.value)
|
|
79
|
+
class: normalizeClass(`${containerStyle.value} ${bgColor.value}`)
|
|
76
80
|
}, [
|
|
77
81
|
unref(title) || _ctx.mandateLevel ? (openBlock(), createElementBlock("div", {
|
|
78
82
|
key: 0,
|
|
79
|
-
class: normalizeClass(`${topBarStyle.value} ${paddingTopStyle.value}
|
|
83
|
+
class: normalizeClass(`${topBarStyle.value} ${paddingTopStyle.value}`)
|
|
80
84
|
}, [
|
|
81
85
|
createElementVNode("h3", null, [
|
|
82
86
|
!unref(hideIcon) ? (openBlock(), createBlock(_sfc_main$1, {
|
|
@@ -93,7 +97,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
93
97
|
}, null, 8, ["mandateLevel"])) : createCommentVNode("", true)
|
|
94
98
|
], 2)) : createCommentVNode("", true),
|
|
95
99
|
createElementVNode("div", {
|
|
96
|
-
class: normalizeClass(`${boxPaddingStyle.value}
|
|
100
|
+
class: normalizeClass(`${boxPaddingStyle.value} `)
|
|
97
101
|
}, [
|
|
98
102
|
hasIntentions.value ? (openBlock(), createElementBlock("div", _hoisted_2, [
|
|
99
103
|
_ctx.labelIntentions ? (openBlock(), createElementBlock("h4", _hoisted_3, toDisplayString(_ctx.labelIntentions), 1)) : createCommentVNode("", true),
|
|
@@ -106,7 +110,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
106
110
|
], 2),
|
|
107
111
|
hasActions.value ? (openBlock(), createElementBlock("div", {
|
|
108
112
|
key: 1,
|
|
109
|
-
class: normalizeClass(
|
|
113
|
+
class: normalizeClass(`${bottomBarStyle.value} ${paddingBottomStyle.value}`)
|
|
110
114
|
}, [
|
|
111
115
|
renderSlot(_ctx.$slots, "actions")
|
|
112
116
|
], 2)) : createCommentVNode("", true)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EpEdu.vue.js","sources":["../../../src/components/educationals/EpEdu.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { toRefs, computed, useSlots, type SetupContext } from \"vue\";\nimport { mediaVariants } from \"~/types/Medias\";\nimport EpIcon from \"~/components/basics/EpIcon.vue\";\nimport EpDivider from \"~/components/basics/EpDivider.vue\";\nimport EpScope from \"~/components/educationals/EpScope.vue\";\nimport { mdiLeadPencil } from \"@mdi/js\";\nimport type { EpEduProps } from \"~/types/educationals/EpEdu\";\n\nconst props = withDefaults(defineProps<EpEduProps>(), {\n title: null,\n type: \"neutral\",\n hideIcon: false,\n flat: true,\n labelIntentions: \"\",\n});\n\n//get slots\nconst slots: SetupContext[\"slots\"] = useSlots();\n\nconst hasIntentions = computed(() => {\n return slots.intentions ? true : false;\n});\n\nconst hasActions = computed(() => {\n return slots.actions ? true : false;\n});\n\nconst renderIcon = computed(() => {\n if (props.icon) {\n return props.icon;\n }\n return mdiLeadPencil;\n});\n\nconst topBarStyle = computed(() => {\n return `${mediaVariants[props.type]} text-left ${\n props.flat ? \"\" : \"rounded-t-md\"\n } flex justify-between items-center `;\n});\n\nconst bottomBarStyle = computed(() => {\n return `${mediaVariants[props.type]} text-right`;\n});\n\nconst paddingTopStyle = computed(() => {\n if (props.type != \"neutral\") {\n return `px-5 py-2`;\n }\n});\n\nconst paddingBottomStyle = computed(() => {\n if (props.type != \"neutral\") {\n return `pr-5`;\n }\n});\nconst boxPaddingStyle = computed(() => {\n if (props.type != \"neutral\") {\n return `px-5`;\n }\n});\n\nconst containerStyle = computed(() => {\n if (hasActions.value || hasIntentions.value || props.title) {\n return ` overflow-hidden ${\n props.flat ? \"\" : \"shadow-md\"\n } flex flex-col justify-start h-full`;\n }\n return `flex flex-col justify-between`;\n});\n\n
|
|
1
|
+
{"version":3,"file":"EpEdu.vue.js","sources":["../../../src/components/educationals/EpEdu.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { toRefs, computed, useSlots, type SetupContext } from \"vue\";\nimport { mediaVariants } from \"~/types/Medias\";\nimport EpIcon from \"~/components/basics/EpIcon.vue\";\nimport EpDivider from \"~/components/basics/EpDivider.vue\";\nimport EpScope from \"~/components/educationals/EpScope.vue\";\nimport { mdiLeadPencil } from \"@mdi/js\";\nimport type { EpEduProps } from \"~/types/educationals/EpEdu\";\n\nconst props = withDefaults(defineProps<EpEduProps>(), {\n title: null,\n type: \"neutral\",\n hideIcon: false,\n flat: true,\n labelIntentions: \"\",\n card: false\n});\n\n//get slots\nconst slots: SetupContext[\"slots\"] = useSlots();\n\nconst hasIntentions = computed(() => {\n return slots.intentions ? true : false;\n});\n\nconst hasActions = computed(() => {\n return slots.actions ? true : false;\n});\n\nconst renderIcon = computed(() => {\n if (props.icon) {\n return props.icon;\n }\n return mdiLeadPencil;\n});\n\nconst topBarStyle = computed(() => {\n return `${mediaVariants[props.type]} text-left ${\n props.flat ? \"\" : \"rounded-t-md\"\n } flex justify-between items-center `;\n});\n\nconst bottomBarStyle = computed(() => {\n return `${mediaVariants[props.type]} text-right`;\n});\n\nconst paddingTopStyle = computed(() => {\n if (props.type != \"neutral\") {\n return `px-5 py-2`;\n }\n});\n\nconst paddingBottomStyle = computed(() => {\n if (props.type != \"neutral\") {\n return `pr-5`;\n }\n});\nconst boxPaddingStyle = computed(() => {\n if (props.type != \"neutral\") {\n return `px-5`;\n }\n});\n\nconst containerStyle = computed(() => {\n if (hasActions.value || hasIntentions.value || props.title) {\n return ` overflow-hidden ${\n props.flat ? \"\" : \"shadow-md\"\n } flex flex-col justify-start h-full`;\n }\n return `flex flex-col justify-between`;\n});\n\n\nconst bgColor = computed(()=> {\n return props.card ? 'ep-surface-2' : 'ep-surface'\n})\n\n\n\nconst { title, hideIcon } = toRefs(props);\n</script>\n\n<template>\n <div :class=\"`${containerStyle} ${bgColor}`\">\n <div\n :class=\"`${topBarStyle} ${paddingTopStyle}`\"\n v-if=\"title || mandateLevel\"\n >\n <!-- <EpIcon :size=\"24\" :icon-path=\"mdiBookOpenVariant\"/> -->\n <h3>\n <EpIcon\n v-if=\"!hideIcon\"\n :iconPath=\"renderIcon\"\n size=\"24\"\n class=\"mr-2\"\n />\n <span class=\"font-bold align-middle\">{{ title }}</span>\n </h3>\n <EpScope v-if=\"mandateLevel\" :mandateLevel=\"mandateLevel\"></EpScope>\n </div>\n <div :class=\"`${boxPaddingStyle} `\">\n <div class=\"py-4\" v-if=\"hasIntentions\">\n <!-- <EpIcon :size=\"24\" :icon-path=\"mdiInformationOutline\"/> -->\n <h4\n v-if=\"labelIntentions\"\n class=\"font-light text-sm pb-1 tracking-wide\"\n >\n {{ labelIntentions }}\n </h4>\n <slot name=\"intentions\" />\n <EpDivider />\n </div>\n <div class=\"pt-2\">\n <slot name=\"content\" />\n </div>\n </div>\n <div\n :class=\"`${bottomBarStyle} ${paddingBottomStyle}`\"\n v-if=\"hasActions\"\n >\n <slot name=\"actions\" />\n </div>\n </div>\n</template>\n"],"names":["_createElementBlock","_normalizeClass","_unref","mandateLevel","_createElementVNode","_createBlock","EpIcon","_toDisplayString","EpScope","_openBlock","labelIntentions","_renderSlot","_createVNode","EpDivider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,UAAM,QAAQ;AAUd,UAAM,QAA+B,SAAA;AAErC,UAAM,gBAAgB,SAAS,MAAM;AACnC,aAAO,MAAM,aAAa,OAAO;AAAA,IACnC,CAAC;AAED,UAAM,aAAa,SAAS,MAAM;AAChC,aAAO,MAAM,UAAU,OAAO;AAAA,IAChC,CAAC;AAED,UAAM,aAAa,SAAS,MAAM;AAChC,UAAI,MAAM,MAAM;AACd,eAAO,MAAM;AAAA,MACf;AACA,aAAO;AAAA,IACT,CAAC;AAED,UAAM,cAAc,SAAS,MAAM;AACjC,aAAO,GAAG,cAAc,MAAM,IAAI,CAAC,eACjC,MAAM,OAAO,KAAK,cACpB;AAAA,IACF,CAAC;AAED,UAAM,iBAAiB,SAAS,MAAM;AACpC,aAAO,GAAG,cAAc,MAAM,IAAI,CAAC;AAAA,IACrC,CAAC;AAED,UAAM,kBAAkB,SAAS,MAAM;AACrC,UAAI,MAAM,QAAQ,WAAW;AAC3B,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AAED,UAAM,qBAAqB,SAAS,MAAM;AACxC,UAAI,MAAM,QAAQ,WAAW;AAC3B,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AACD,UAAM,kBAAkB,SAAS,MAAM;AACrC,UAAI,MAAM,QAAQ,WAAW;AAC3B,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AAED,UAAM,iBAAiB,SAAS,MAAM;AACpC,UAAI,WAAW,SAAS,cAAc,SAAS,MAAM,OAAO;AAC1D,eAAO,oBACL,MAAM,OAAO,KAAK,WACpB;AAAA,MACF;AACA,aAAO;AAAA,IACT,CAAC;AAGD,UAAM,UAAU,SAAS,MAAK;AAC3B,aAAO,MAAM,OAAO,iBAAiB;AAAA,IACxC,CAAC;AAID,UAAM,EAAE,OAAO,aAAa,OAAO,KAAK;;0BAItCA,mBAuCM,OAAA;AAAA,QAvCA,OAAKC,eAAA,GAAK,eAAA,KAAc,IAAI,QAAA,KAAO,EAAA;AAAA,MAAA;QAG/BC,MAAA,KAAA,KAASC,KAAAA,6BAFjBH,mBAeM,OAAA;AAAA;UAdH,OAAKC,eAAA,GAAK,YAAA,KAAW,IAAI,gBAAA,KAAe,EAAA;AAAA,QAAA;UAIzCG,mBAQK,MAAA,MAAA;AAAA,aANMF,MAAA,QAAA,kBADTG,YAKEC,aAAA;AAAA;cAHC,UAAU,WAAA;AAAA,cACX,MAAK;AAAA,cACL,OAAM;AAAA,YAAA;YAERF,mBAAuD,QAAvD,YAAuDG,gBAAfL,MAAA,KAAA,CAAK,GAAA,CAAA;AAAA,UAAA;UAEhCC,KAAAA,6BAAfE,YAAoEG,aAAA;AAAA;YAAtC,cAAcL,KAAAA;AAAAA,UAAAA;;QAE9CC,mBAeM,OAAA;AAAA,UAfA,yBAAU,gBAAA,KAAe,GAAA;AAAA,QAAA;UACL,cAAA,SAAxBK,UAAA,GAAAT,mBAUM,OAVN,YAUM;AAAA,YAPIU,KAAAA,gCADRV,mBAKK,MALL,YAKKO,gBADAG,KAAAA,eAAe,GAAA,CAAA;YAEpBC,WAA0B,KAAA,QAAA,YAAA;AAAA,YAC1BC,YAAaC,WAAA;AAAA,UAAA;UAEfT,mBAEM,OAFN,YAEM;AAAA,YADJO,WAAuB,KAAA,QAAA,SAAA;AAAA,UAAA;;QAKnB,WAAA,sBAFRX,mBAKM,OAAA;AAAA;UAJH,OAAKC,eAAA,GAAK,eAAA,KAAc,IAAI,mBAAA,KAAkB,EAAA;AAAA,QAAA;UAG/CU,WAAuB,KAAA,QAAA,SAAA;AAAA,QAAA;;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent, createElementBlock, openBlock, normalizeClass, createElementVNode, toDisplayString, renderSlot } from "vue";
|
|
2
|
-
const _hoisted_1 = { class: "flex flex-row divide-x gap-x-4" };
|
|
3
|
-
const _hoisted_2 = { class: "w-32" };
|
|
4
|
-
const _hoisted_3 = { class: "flex-1 pl-4" };
|
|
2
|
+
const _hoisted_1 = { class: "flex flex-col gap-y-2 lg:flex-row lg:divide-x lg:gap-x-4" };
|
|
3
|
+
const _hoisted_2 = { class: "w-full lg:w-32 lg:flex-none" };
|
|
4
|
+
const _hoisted_3 = { class: "flex-1 lg:pl-4" };
|
|
5
5
|
const _hoisted_4 = { class: "font-medium mb-1" };
|
|
6
6
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
7
7
|
__name: "EpObjective",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EpObjective.vue.js","sources":["../../../src/components/educationals/EpObjective.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { EpObjectiveProps } from \"~/types/educationals/EpObjective\";\n\nconst {\n color = \"border-gray\",\n nameApproach,\n title,\n} = defineProps<EpObjectiveProps>();\n</script>\n\n<template>\n <div\n :class=\"`border-l-8\n ${color} \n p-4 \n my-3 \n transition \n duration-200 \n ease-in-out \n outline-primary \n focus-within:outline \n focus-within:outline-1 \n outline-offset-4 \n hover:outline \n hover:outline-1 \n hover:outline-gray-200 \n dark:hover:outline-gray-700`\"\n >\n <div class=\"flex flex-row divide-x gap-x-4\">\n <div class=\"w-32\">\n {{ nameApproach }}\n </div>\n <div class=\"flex-1 pl-4\">\n <h4 class=\"font-medium mb-1\">{{ title }}</h4>\n <slot />\n </div>\n </div>\n </div>\n</template>\n"],"names":["_createElementBlock","_normalizeClass","color","_createElementVNode","_toDisplayString","nameApproach","title","_renderSlot"],"mappings":";;;;;;;;;;;;;;0BAWEA,
|
|
1
|
+
{"version":3,"file":"EpObjective.vue.js","sources":["../../../src/components/educationals/EpObjective.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { EpObjectiveProps } from \"~/types/educationals/EpObjective\";\n\nconst {\n color = \"border-gray\",\n nameApproach,\n title,\n} = defineProps<EpObjectiveProps>();\n</script>\n\n<template>\n <div\n :class=\"`border-l-8\n ${color} \n p-4 \n my-3 \n transition \n duration-200 \n ease-in-out \n outline-primary \n focus-within:outline \n focus-within:outline-1 \n outline-offset-4 \n hover:outline \n hover:outline-1 \n hover:outline-gray-200 \n dark:hover:outline-gray-700`\"\n >\n <!-- mobile: stacked, lg+: row with divider -->\n <div class=\"flex flex-col gap-y-2 lg:flex-row lg:divide-x lg:gap-x-4\">\n <div class=\"w-full lg:w-32 lg:flex-none\">\n {{ nameApproach }}\n </div>\n <div class=\"flex-1 lg:pl-4\">\n <h4 class=\"font-medium mb-1\">{{ title }}</h4>\n <slot />\n </div>\n </div>\n </div>\n</template>\n"],"names":["_createElementBlock","_normalizeClass","color","_createElementVNode","_toDisplayString","nameApproach","title","_renderSlot"],"mappings":";;;;;;;;;;;;;;0BAWEA,mBA2BM,OAAA;AAAA,QA1BH,OAAKC,eAAA;AAAA,MAAoBC,KAAAA,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;QAiB/BC,mBAQM,OARN,YAQM;AAAA,UAPJA,mBAEM,OAFN,YAEMC,gBADDC,KAAAA,YAAY,GAAA,CAAA;AAAA,UAEjBF,mBAGM,OAHN,YAGM;AAAA,YAFJA,mBAA6C,MAA7C,YAA6CC,gBAAbE,KAAAA,KAAK,GAAA,CAAA;AAAA,YACrCC,WAAQ,KAAA,QAAA,SAAA;AAAA,UAAA;;;;;;"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { defineComponent, computed, toRefs, createElementBlock, createBlock, openBlock, createCommentVNode, createElementVNode, unref, Fragment, createVNode, createSlots, withCtx, createTextVNode, toDisplayString, normalizeClass, withModifiers } from "vue";
|
|
1
|
+
import { defineComponent, ref, computed, toRefs, createElementBlock, createBlock, openBlock, createCommentVNode, createElementVNode, unref, Fragment, createVNode, createSlots, withCtx, createTextVNode, toDisplayString, normalizeClass, withModifiers } from "vue";
|
|
2
2
|
import _sfc_main$1 from "../basics/EpIcon.vue.js";
|
|
3
3
|
import _sfc_main$3 from "../basics/EpBtn.vue.js";
|
|
4
|
-
import _sfc_main$4 from "../
|
|
5
|
-
/* empty css
|
|
4
|
+
import _sfc_main$4 from "../interactions/EpModal.vue.js";
|
|
5
|
+
/* empty css */
|
|
6
6
|
import _sfc_main$2 from "./EpEdu.vue.js";
|
|
7
7
|
import { useRenderText } from "../../composables/useRenderText.js";
|
|
8
8
|
import { mdiBookOpenPageVariant, mdiBookOpenVariant, mdiOpenInNew, mdiBookmarkBox } from "@mdi/js";
|
|
9
9
|
const _hoisted_1 = {
|
|
10
10
|
key: 0,
|
|
11
|
-
class: "flex shadow-sm rounded-lg overflow-hidden
|
|
11
|
+
class: "flex shadow-sm rounded-lg overflow-hidden ep-surface-2 md:flex-row"
|
|
12
12
|
};
|
|
13
13
|
const _hoisted_2 = {
|
|
14
14
|
key: 0,
|
|
@@ -45,15 +45,15 @@ const _hoisted_21 = { class: "p-5" };
|
|
|
45
45
|
const _hoisted_22 = { class: "text-lg leading-6 font-semibold font-sans" };
|
|
46
46
|
const _hoisted_23 = { class: "flex" };
|
|
47
47
|
const _hoisted_24 = { class: "p-5" };
|
|
48
|
-
const _hoisted_25 = { class: "w-
|
|
49
|
-
const _hoisted_26 = { class: "flex flex-col
|
|
48
|
+
const _hoisted_25 = { class: "w-full" };
|
|
49
|
+
const _hoisted_26 = { class: "flex flex-col md:flex-row" };
|
|
50
50
|
const _hoisted_27 = ["src", "alt"];
|
|
51
51
|
const _hoisted_28 = {
|
|
52
52
|
key: 1,
|
|
53
|
-
class: "h-96
|
|
53
|
+
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"
|
|
54
54
|
};
|
|
55
55
|
const _hoisted_29 = { class: "flex flex-col justify-between w-full" };
|
|
56
|
-
const _hoisted_30 = { class: "text-left px-5 py-2
|
|
56
|
+
const _hoisted_30 = { class: "text-left px-5 py-2" };
|
|
57
57
|
const _hoisted_31 = { class: "pl-2 align-middle" };
|
|
58
58
|
const _hoisted_32 = { class: "w-full px-5" };
|
|
59
59
|
const _hoisted_33 = { class: "flex" };
|
|
@@ -72,7 +72,7 @@ const _hoisted_39 = { key: 3 };
|
|
|
72
72
|
const _hoisted_40 = { key: 0 };
|
|
73
73
|
const _hoisted_41 = { class: "text-sm italic pr-1" };
|
|
74
74
|
const _hoisted_42 = { class: "pl-2 align-middle" };
|
|
75
|
-
const _hoisted_43 = { class: "
|
|
75
|
+
const _hoisted_43 = { class: "text-right pr-5" };
|
|
76
76
|
const _hoisted_44 = { class: "border-l p-5" };
|
|
77
77
|
const old_image = "https://live.staticflickr.com/4868/45940268562_c5f7fdd06b_q.jpg";
|
|
78
78
|
const bad_image = "https://farm5.staticflickr.com/4868/45940268562_9452f09a61_o.png";
|
|
@@ -104,6 +104,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
104
104
|
},
|
|
105
105
|
setup(__props) {
|
|
106
106
|
const props = __props;
|
|
107
|
+
const modalCompact = ref(false);
|
|
107
108
|
const hasCover = computed(() => {
|
|
108
109
|
if (props.cover === old_image || props.cover.trim().length === 0 || props.cover === bad_image) {
|
|
109
110
|
return false;
|
|
@@ -166,7 +167,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
166
167
|
flat: "",
|
|
167
168
|
type: unref(type),
|
|
168
169
|
hideIcon: _ctx.hideIcon,
|
|
169
|
-
mandateLevel: unref(mandateLevel)
|
|
170
|
+
mandateLevel: unref(mandateLevel),
|
|
171
|
+
card: ""
|
|
170
172
|
}, createSlots({
|
|
171
173
|
content: withCtx(() => [
|
|
172
174
|
createElementVNode("div", _hoisted_7, [
|
|
@@ -202,6 +204,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
202
204
|
actions: withCtx(() => [
|
|
203
205
|
unref(url) ? (openBlock(), createBlock(_sfc_main$3, {
|
|
204
206
|
key: 0,
|
|
207
|
+
rounded: "",
|
|
205
208
|
text: "",
|
|
206
209
|
href: unref(url),
|
|
207
210
|
type: "primary"
|
|
@@ -245,20 +248,23 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
245
248
|
]),
|
|
246
249
|
createElementVNode("div", _hoisted_23, [
|
|
247
250
|
createElementVNode("div", _hoisted_24, [
|
|
248
|
-
createVNode(_sfc_main$
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
createTextVNode(toDisplayString(unref(labelDetails)), 1)
|
|
257
|
-
]),
|
|
258
|
-
_: 2
|
|
259
|
-
}, 1032, ["onClick"])
|
|
251
|
+
createVNode(_sfc_main$3, {
|
|
252
|
+
rounded: "",
|
|
253
|
+
text: "",
|
|
254
|
+
onClick: _cache[0] || (_cache[0] = withModifiers(($event) => modalCompact.value = true, ["stop"])),
|
|
255
|
+
type: "primary"
|
|
256
|
+
}, {
|
|
257
|
+
default: withCtx(() => [
|
|
258
|
+
createTextVNode(toDisplayString(unref(labelDetails)), 1)
|
|
260
259
|
]),
|
|
261
|
-
|
|
260
|
+
_: 1
|
|
261
|
+
}),
|
|
262
|
+
createVNode(_sfc_main$4, {
|
|
263
|
+
modelValue: modalCompact.value,
|
|
264
|
+
"onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => modalCompact.value = $event),
|
|
265
|
+
size: "compact"
|
|
266
|
+
}, {
|
|
267
|
+
default: withCtx(() => [
|
|
262
268
|
createElementVNode("div", _hoisted_25, [
|
|
263
269
|
createElementVNode("div", _hoisted_26, [
|
|
264
270
|
!unref(hideCover) ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
|
@@ -314,26 +320,28 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
314
320
|
]),
|
|
315
321
|
createElementVNode("div", _hoisted_43, [
|
|
316
322
|
createVNode(_sfc_main$3, {
|
|
317
|
-
|
|
318
|
-
|
|
323
|
+
rounded: "",
|
|
324
|
+
size: "small",
|
|
325
|
+
onClick: _cache[1] || (_cache[1] = withModifiers(($event) => modalCompact.value = false, ["stop"])),
|
|
319
326
|
type: "error"
|
|
320
327
|
}, {
|
|
321
328
|
default: withCtx(() => [
|
|
322
329
|
createTextVNode(toDisplayString(unref(labelClose)), 1)
|
|
323
330
|
]),
|
|
324
|
-
_:
|
|
325
|
-
}
|
|
331
|
+
_: 1
|
|
332
|
+
})
|
|
326
333
|
])
|
|
327
334
|
])
|
|
328
335
|
])
|
|
329
336
|
])
|
|
330
337
|
]),
|
|
331
338
|
_: 1
|
|
332
|
-
})
|
|
339
|
+
}, 8, ["modelValue"])
|
|
333
340
|
]),
|
|
334
341
|
createElementVNode("div", _hoisted_44, [
|
|
335
342
|
unref(url) ? (openBlock(), createBlock(_sfc_main$3, {
|
|
336
343
|
key: 0,
|
|
344
|
+
rounded: "",
|
|
337
345
|
text: "",
|
|
338
346
|
href: unref(url),
|
|
339
347
|
type: "primary"
|