ep-lib-ts 1.1.13 → 1.1.14
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/EpBtn.vue.js +2 -2
- package/dist/components/basics/EpBtn.vue.js.map +1 -1
- package/dist/components/basics/EpChip.vue.js +2 -2
- package/dist/components/basics/EpChip.vue.js.map +1 -1
- package/dist/components/basics/EpHover.vue.js +1 -1
- package/dist/components/basics/EpHover.vue.js.map +1 -1
- package/dist/components/basics/EpHoverCard.vue.js +6 -6
- package/dist/components/basics/EpHoverCard.vue.js.map +1 -1
- package/dist/components/basics/EpImg.vue.js +8 -8
- package/dist/components/basics/EpImg.vue.js.map +1 -1
- package/dist/components/basics/EpImgCarousel.vue.js +8 -8
- package/dist/components/basics/EpImgCarousel.vue.js.map +1 -1
- package/dist/components/basics/EpSection.vue.js +25 -25
- package/dist/components/basics/EpSection.vue.js.map +1 -1
- package/dist/components/basics/EpSectionCols.vue.js +29 -29
- package/dist/components/basics/EpSectionCols.vue.js.map +1 -1
- package/dist/components/basics/EpSpinner.vue.js +5 -5
- package/dist/components/basics/EpSpinner.vue.js.map +1 -1
- package/dist/components/basics/EpStackedList.vue.js +4 -4
- package/dist/components/basics/EpStackedList.vue.js.map +1 -1
- package/dist/components/charts/EpBarChart.vue.js +3 -3
- package/dist/components/charts/EpBarChart.vue.js.map +1 -1
- package/dist/components/charts/EpFunnelChart.vue.js +4 -4
- package/dist/components/charts/EpFunnelChart.vue.js.map +1 -1
- package/dist/components/charts/EpLineChart.vue.js +3 -3
- package/dist/components/charts/EpLineChart.vue.js.map +1 -1
- package/dist/components/charts/EpPieChart.vue.js +4 -4
- package/dist/components/charts/EpPieChart.vue.js.map +1 -1
- package/dist/components/educationals/EpBranchingScenario.vue2.js +19 -19
- package/dist/components/educationals/EpBranchingScenario.vue2.js.map +1 -1
- package/dist/components/educationals/EpCodeblock.vue.js +1 -1
- package/dist/components/educationals/EpCodeblock.vue.js.map +1 -1
- package/dist/components/educationals/EpConclusion.vue.js +3 -3
- package/dist/components/educationals/EpConclusion.vue.js.map +1 -1
- package/dist/components/educationals/EpDescription.vue.js +1 -1
- package/dist/components/educationals/EpDocument.vue.js +4 -4
- package/dist/components/educationals/EpDocument.vue.js.map +1 -1
- package/dist/components/educationals/EpEdu.vue.js +4 -4
- package/dist/components/educationals/EpEdu.vue.js.map +1 -1
- package/dist/components/educationals/EpFillBlanks.vue.js +1 -1
- package/dist/components/educationals/EpFillBlanks.vue.js.map +1 -1
- package/dist/components/educationals/EpInstructions.vue.js +1 -1
- package/dist/components/educationals/EpIntroduction.vue.js +6 -6
- package/dist/components/educationals/EpIntroduction.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 +3 -3
- package/dist/components/educationals/EpReading.vue.js.map +1 -1
- package/dist/components/educationals/EpResource.vue.js +3 -3
- package/dist/components/educationals/EpResource.vue.js.map +1 -1
- package/dist/components/educationals/EpScope.vue.js +2 -2
- package/dist/components/educationals/EpScope.vue.js.map +1 -1
- package/dist/components/educationals/EpSegmentedBox.vue.js +1 -1
- package/dist/components/educationals/EpSegmentedBox.vue.js.map +1 -1
- package/dist/components/educationals/EpSpecificObjective.vue.js +10 -10
- package/dist/components/educationals/EpSpecificObjective.vue.js.map +1 -1
- package/dist/components/forms/EpSelect.vue.js +3 -3
- package/dist/components/forms/EpSelect.vue.js.map +1 -1
- package/dist/components/forms/EpTextarea.vue2.js +1 -1
- package/dist/components/forms/EpTextarea.vue2.js.map +1 -1
- package/dist/components/forms/EpToggle.vue2.js +1 -1
- package/dist/components/forms/EpToggle.vue2.js.map +1 -1
- package/dist/components/interactions/EpAccordeon.vue2.js +1 -1
- package/dist/components/interactions/EpAccordeon.vue2.js.map +1 -1
- package/dist/components/interactions/EpAssociation.vue.js +13 -14
- package/dist/components/interactions/EpAssociation.vue.js.map +1 -1
- package/dist/components/interactions/EpContentSlider.vue.js +2 -2
- package/dist/components/interactions/EpContentSlider.vue.js.map +1 -1
- package/dist/components/interactions/EpFlipCard.vue2.js +17 -17
- package/dist/components/interactions/EpFlipCard.vue2.js.map +1 -1
- package/dist/components/interactions/EpHotSpot.vue.js +1 -1
- package/dist/components/interactions/EpHotSpot.vue.js.map +1 -1
- package/dist/components/interactions/EpImageCompare.vue.js +6 -6
- package/dist/components/interactions/EpImageCompare.vue.js.map +1 -1
- package/dist/components/interactions/EpModal.vue.js +4 -4
- package/dist/components/interactions/EpModal.vue.js.map +1 -1
- package/dist/components/interactions/EpQuestion.vue.js +8 -8
- package/dist/components/interactions/EpQuestion.vue.js.map +1 -1
- package/dist/components/interactions/EpSummativeTable.vue.js +3 -3
- package/dist/components/interactions/EpSummativeTable.vue.js.map +1 -1
- package/dist/components/interactions/EpTooltip.vue.js +1 -1
- package/dist/components/interactions/EpTooltip.vue.js.map +1 -1
- package/dist/components/medias/EpAudio.vue.js +3 -3
- package/dist/components/medias/EpAudio.vue.js.map +1 -1
- package/dist/components/medias/EpCardLink.vue.js +16 -16
- package/dist/components/medias/EpCardLink.vue.js.map +1 -1
- package/dist/components/medias/EpCarousel.vue.js +10 -10
- package/dist/components/medias/EpCarousel.vue.js.map +1 -1
- package/dist/components/medias/EpHierarchy.vue2.js +1 -1
- package/dist/components/medias/EpHierarchy.vue2.js.map +1 -1
- package/dist/components/medias/EpIframe.vue.js +3 -3
- package/dist/components/medias/EpIframe.vue.js.map +1 -1
- package/dist/components/medias/EpKatex.vue2.js +4 -4
- package/dist/components/medias/EpKatex.vue2.js.map +1 -1
- package/dist/components/medias/EpLink.vue.js +2 -2
- package/dist/components/medias/EpLink.vue.js.map +1 -1
- package/dist/components/medias/EpLinkVersion.vue.js +1 -1
- package/dist/components/medias/EpLinkVersion.vue.js.map +1 -1
- package/dist/components/medias/EpLottieSvg.vue.js +8 -8
- package/dist/components/medias/EpLottieSvg.vue.js.map +1 -1
- package/dist/components/medias/EpSensibleImage.vue2.js +18 -18
- package/dist/components/medias/EpSensibleImage.vue2.js.map +1 -1
- package/dist/components/medias/EpSoftware.vue.js +3 -3
- package/dist/components/medias/EpSoftware.vue.js.map +1 -1
- package/dist/components/medias/EpSvg.vue.js +4 -4
- package/dist/components/medias/EpSvg.vue.js.map +1 -1
- package/dist/components/medias/EpTerm.vue.js +6 -6
- package/dist/components/medias/EpTerm.vue.js.map +1 -1
- package/dist/components/medias/EpVideo.vue.js +2 -2
- package/dist/components/medias/EpVideo.vue.js.map +1 -1
- package/dist/components/medias/EpVideoPanopto.vue.js +3 -3
- package/dist/components/medias/EpVideoPanopto.vue.js.map +1 -1
- package/dist/components/medias/EpWordDef.vue.js +39 -39
- package/dist/components/medias/EpWordDef.vue.js.map +1 -1
- package/dist/components/signages/EpAlert.vue2.js +1 -1
- package/dist/components/signages/EpHeader.vue.js +22 -22
- package/dist/components/signages/EpHeader.vue.js.map +1 -1
- package/dist/components/signages/EpQuote.vue.js +1 -1
- package/dist/components/signages/EpSkeleton.vue2.js +1 -1
- package/dist/components/tools/AssociationNode.vue2.js +8 -8
- package/dist/components/tools/AssociationNode.vue2.js.map +1 -1
- package/dist/components/tools/AsyncKatexRender.vue2.js +1 -1
- package/dist/components/tools/AsyncKatexRender.vue2.js.map +1 -1
- package/dist/components/tools/Details.vue.js +1 -56
- package/dist/components/tools/Details.vue.js.map +1 -1
- package/dist/components/tools/Details.vue2.js +56 -1
- package/dist/components/tools/Details.vue2.js.map +1 -1
- package/dist/components/tools/RenderTextNode.vue.js +1 -19
- package/dist/components/tools/RenderTextNode.vue.js.map +1 -1
- package/dist/components/tools/RenderTextNode.vue2.js +19 -1
- package/dist/components/tools/RenderTextNode.vue2.js.map +1 -1
- package/dist/components/tools/SegmentedBox.vue2.js +3 -3
- package/dist/components/tools/SegmentedBox.vue2.js.map +1 -1
- package/dist/components/tools/TextMedia.vue.js +1 -50
- package/dist/components/tools/TextMedia.vue.js.map +1 -1
- package/dist/components/tools/TextMedia.vue2.js +50 -1
- package/dist/components/tools/TextMedia.vue2.js.map +1 -1
- package/dist/components/tools/TimelineItem.vue2.js +1 -1
- package/dist/components/tools/TwoColsMedia.vue2.js +4 -4
- package/dist/components/tools/TwoColsMedia.vue2.js.map +1 -1
- package/dist/style.css +81 -81
- package/package.json +40 -43
|
@@ -95,7 +95,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
95
95
|
});
|
|
96
96
|
const { title, headerImgColor, big } = toRefs(props);
|
|
97
97
|
return (_ctx, _cache) => {
|
|
98
|
-
return
|
|
98
|
+
return _ctx.type === "imgBg" ? (openBlock(), createElementBlock("header", {
|
|
99
99
|
key: 0,
|
|
100
100
|
class: normalizeClass(`${unref(big) ? "h-screen " : "h-96"} items-center overflow-hidden relative `),
|
|
101
101
|
ref: "el"
|
|
@@ -108,56 +108,56 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
108
108
|
class: normalizeClass(`relative ${unref(big) ? "mb-36" : ""} h-full items-end`)
|
|
109
109
|
}, [
|
|
110
110
|
createElementVNode("div", _hoisted_1, [
|
|
111
|
-
|
|
111
|
+
_ctx.synchrone ? (openBlock(), createBlock(_sfc_main$1, {
|
|
112
112
|
key: 0,
|
|
113
113
|
prependIcon: unref(mdiCast),
|
|
114
114
|
size: "small"
|
|
115
115
|
}, {
|
|
116
116
|
default: withCtx(() => [
|
|
117
|
-
createTextVNode(toDisplayString(
|
|
117
|
+
createTextVNode(toDisplayString(_ctx.labels.synchrone), 1)
|
|
118
118
|
]),
|
|
119
119
|
_: 1
|
|
120
120
|
}, 8, ["prependIcon"])) : createCommentVNode("", true),
|
|
121
|
-
|
|
121
|
+
_ctx.duration ? (openBlock(), createBlock(_sfc_main$1, {
|
|
122
122
|
key: 1,
|
|
123
123
|
prependIcon: unref(mdiTimerOutline),
|
|
124
124
|
size: "small"
|
|
125
125
|
}, {
|
|
126
126
|
default: withCtx(() => [
|
|
127
|
-
createTextVNode(toDisplayString(
|
|
127
|
+
createTextVNode(toDisplayString(_ctx.duration), 1)
|
|
128
128
|
]),
|
|
129
129
|
_: 1
|
|
130
130
|
}, 8, ["prependIcon"])) : createCommentVNode("", true),
|
|
131
|
-
|
|
131
|
+
_ctx.assessment ? (openBlock(), createBlock(_sfc_main$1, {
|
|
132
132
|
key: 2,
|
|
133
133
|
prependIcon: unref(mdiChairSchool),
|
|
134
134
|
size: "small"
|
|
135
135
|
}, {
|
|
136
136
|
default: withCtx(() => [
|
|
137
|
-
createTextVNode(toDisplayString(
|
|
137
|
+
createTextVNode(toDisplayString(_ctx.labels.formatif), 1)
|
|
138
138
|
]),
|
|
139
139
|
_: 1
|
|
140
140
|
}, 8, ["prependIcon"])) : createCommentVNode("", true)
|
|
141
141
|
]),
|
|
142
142
|
createElementVNode("div", {
|
|
143
|
-
class: normalizeClass(`${
|
|
143
|
+
class: normalizeClass(`${_ctx.vAlign} ${_ctx.hAlign} flex w-full grow h-96 `)
|
|
144
144
|
}, [
|
|
145
145
|
createElementVNode("div", {
|
|
146
146
|
class: normalizeClass(`${bgTextFit}`)
|
|
147
147
|
}, [
|
|
148
|
-
unref(title) ||
|
|
148
|
+
unref(title) || _ctx.subtitle ? (openBlock(), createElementBlock("div", {
|
|
149
149
|
key: 0,
|
|
150
|
-
class: normalizeClass(`${
|
|
150
|
+
class: normalizeClass(`${_ctx.textBg ? "inline-block backdrop-blur-lg backdrop-brightness-65 backdrop-opacity-95 rounded" : ""} p-4 md:items-center`)
|
|
151
151
|
}, [
|
|
152
152
|
createElementVNode("div", _hoisted_2, [
|
|
153
153
|
unref(title) ? (openBlock(), createElementBlock("h1", {
|
|
154
154
|
key: 0,
|
|
155
155
|
class: normalizeClass(`text-3xl font-medium ${darkText.value} sm:text-3xl`)
|
|
156
156
|
}, toDisplayString(unref(title)), 3)) : createCommentVNode("", true),
|
|
157
|
-
|
|
157
|
+
_ctx.subtitle ? (openBlock(), createElementBlock("h2", {
|
|
158
158
|
key: 1,
|
|
159
159
|
class: normalizeClass(`max-w-xl mt-4 text-2xl ${darkText.value}`)
|
|
160
|
-
}, toDisplayString(
|
|
160
|
+
}, toDisplayString(_ctx.subtitle), 3)) : createCommentVNode("", true)
|
|
161
161
|
])
|
|
162
162
|
], 2)) : createCommentVNode("", true)
|
|
163
163
|
], 2)
|
|
@@ -175,52 +175,52 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
175
175
|
])
|
|
176
176
|
])) : createCommentVNode("", true),
|
|
177
177
|
createVNode(SvgFilter)
|
|
178
|
-
], 2)) :
|
|
178
|
+
], 2)) : _ctx.type === "simple" ? (openBlock(), createElementBlock("header", _hoisted_4, [
|
|
179
179
|
createElementVNode("div", _hoisted_5, [
|
|
180
180
|
unref(title) ? (openBlock(), createElementBlock("h1", _hoisted_6, toDisplayString(unref(title)), 1)) : createCommentVNode("", true),
|
|
181
|
-
|
|
181
|
+
_ctx.subtitle ? (openBlock(), createElementBlock("h2", _hoisted_7, toDisplayString(_ctx.subtitle), 1)) : createCommentVNode("", true)
|
|
182
182
|
])
|
|
183
183
|
])) : (openBlock(), createElementBlock("header", _hoisted_8, [
|
|
184
184
|
createElementVNode("div", _hoisted_9, [
|
|
185
185
|
createElementVNode("div", _hoisted_10, [
|
|
186
186
|
createElementVNode("div", _hoisted_11, [
|
|
187
|
-
|
|
187
|
+
_ctx.synchrone ? (openBlock(), createBlock(_sfc_main$1, {
|
|
188
188
|
key: 0,
|
|
189
189
|
prependIcon: unref(mdiCast),
|
|
190
190
|
size: "small"
|
|
191
191
|
}, {
|
|
192
192
|
default: withCtx(() => [
|
|
193
|
-
createTextVNode(toDisplayString(
|
|
193
|
+
createTextVNode(toDisplayString(_ctx.labels.synchrone), 1)
|
|
194
194
|
]),
|
|
195
195
|
_: 1
|
|
196
196
|
}, 8, ["prependIcon"])) : createCommentVNode("", true),
|
|
197
|
-
|
|
197
|
+
_ctx.duration ? (openBlock(), createBlock(_sfc_main$1, {
|
|
198
198
|
key: 1,
|
|
199
199
|
prependIcon: unref(mdiTimerOutline),
|
|
200
200
|
size: "small"
|
|
201
201
|
}, {
|
|
202
202
|
default: withCtx(() => [
|
|
203
|
-
createTextVNode(toDisplayString(
|
|
203
|
+
createTextVNode(toDisplayString(_ctx.duration), 1)
|
|
204
204
|
]),
|
|
205
205
|
_: 1
|
|
206
206
|
}, 8, ["prependIcon"])) : createCommentVNode("", true),
|
|
207
|
-
|
|
207
|
+
_ctx.assessment ? (openBlock(), createBlock(_sfc_main$1, {
|
|
208
208
|
key: 2,
|
|
209
209
|
prependIcon: unref(mdiChairSchool),
|
|
210
210
|
size: "small"
|
|
211
211
|
}, {
|
|
212
212
|
default: withCtx(() => [
|
|
213
|
-
createTextVNode(toDisplayString(
|
|
213
|
+
createTextVNode(toDisplayString(_ctx.labels.formatif), 1)
|
|
214
214
|
]),
|
|
215
215
|
_: 1
|
|
216
216
|
}, 8, ["prependIcon"])) : createCommentVNode("", true)
|
|
217
217
|
]),
|
|
218
218
|
createElementVNode("div", {
|
|
219
|
-
class: normalizeClass(`${
|
|
219
|
+
class: normalizeClass(`${_ctx.vAlign} flex h-full pb-8 pl-6 max-w-3xl`)
|
|
220
220
|
}, [
|
|
221
221
|
createElementVNode("div", null, [
|
|
222
222
|
unref(title) ? (openBlock(), createElementBlock("h1", _hoisted_12, toDisplayString(unref(title)), 1)) : createCommentVNode("", true),
|
|
223
|
-
|
|
223
|
+
_ctx.subtitle ? (openBlock(), createElementBlock("p", _hoisted_13, toDisplayString(_ctx.subtitle), 1)) : createCommentVNode("", true),
|
|
224
224
|
createElementVNode("div", _hoisted_14, [
|
|
225
225
|
renderSlot(_ctx.$slots, "default")
|
|
226
226
|
])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EpHeader.vue.js","sources":["../../../src/components/signages/EpHeader.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { toRefs, computed } from \"vue\";\nimport { mdiCast } from \"@mdi/js\";\nimport { mdiTimerOutline } from \"@mdi/js\";\nimport { mdiChairSchool } from \"@mdi/js\";\nimport { mdiChevronDown } from \"@mdi/js\";\nimport SvgFilter from \"~/components/tools/SvgFilter.vue\";\nimport EpIcon from \"~/components/basics/EpIcon.vue\";\nimport EpChip from \"~/components/basics/EpChip.vue\";\nimport type { EpHeaderProps } from \"~/types/signages/EpHeader\";\n\nconst props = withDefaults(defineProps<EpHeaderProps>(), {\n title: null,\n icon: null,\n src: null,\n big: false,\n synchrone: false,\n hideImg: false,\n duration: null,\n assessment: null,\n labels: () => {\n return {\n synchrone: \"Synchrone\",\n formatif: \"Formatif\",\n };\n },\n textBg: true,\n type: \"imgBg\",\n titlePosition: \"center\",\n vAlign: \"items-center\",\n hAlign: \"justify-center\",\n});\n\nconst bgTextFit = \"w-8/12\"; // ''\n\nconst styles = computed(() => {\n return ` \n\tflex\n\tflex-col\n\toverflow-hidden \n\tw-full \n\tabsolute\n\t${props.big ? \"min-h-screen\" : \"h-96\"}\n\tbg-cover\n\tbg-center`;\n});\n\nconst bgImg = computed(() => {\n if (props.src) {\n return props.src;\n }\n return `https://live.staticflickr.com/1757/42677241511_a350206ac2_b.jpg`;\n});\n\nconst emit = defineEmits<{\n (e: \"clicked\"): void;\n}>();\n\nconst clickScroll = (): void => {\n emit(\"clicked\");\n};\n\nconst darkText = computed(()=> {\n if(props.darkText){\n return 'text-black'\n }\n return 'text-white'\n})\n\nconst { title, headerImgColor, big } = toRefs(props);\n</script>\n\n<template>\n <header\n v-if=\"type === 'imgBg'\"\n :class=\"`${\n big ? 'h-screen ' : 'h-96'\n } items-center overflow-hidden relative `\"\n ref=\"el\"\n >\n <div\n :class=\"styles\"\n :style=\"`background-image:url('${bgImg}'); filter:url(#${headerImgColor});`\"\n />\n\n <div :class=\"`relative ${big ? 'mb-36' : ''} h-full items-end`\">\n <div class=\"flex md:justify-end justify-center pt-5\">\n <EpChip v-if=\"synchrone\" :prependIcon=\"mdiCast\" size=\"small\">{{\n labels.synchrone\n }}</EpChip>\n <EpChip v-if=\"duration\" :prependIcon=\"mdiTimerOutline\" size=\"small\">\n {{ duration }}</EpChip\n >\n <EpChip v-if=\"assessment\" :prependIcon=\"mdiChairSchool\" size=\"small\">{{\n labels.formatif\n }}</EpChip>\n </div>\n <div :class=\"`${vAlign} ${hAlign} flex w-full grow h-96 `\">\n <div :class=\"`${bgTextFit}`\">\n <div\n v-if=\"title || subtitle\"\n :class=\"`${\n textBg\n ? 'inline-block backdrop-blur-lg backdrop-brightness-65 backdrop-opacity-95 rounded'\n : ''\n } p-4 md:items-center`\"\n >\n <div class=\"text-center md:text-left\">\n <h1\n v-if=\"title\"\n :class=\"`text-3xl font-medium ${darkText} sm:text-3xl`\"\n >\n {{ title }}\n </h1>\n <h2\n v-if=\"subtitle\"\n :class=\"`max-w-xl mt-4 text-2xl ${darkText}`\"\n >\n {{ subtitle }}\n </h2>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div v-if=\"props.big\" class=\"animate-bounce absolute bottom-10 left-1/2\">\n <div\n class=\"mx-auto w-12 rounded-full p-2\"\n @click=\"clickScroll\"\n >\n <EpIcon :iconPath=\"mdiChevronDown\" size=\"32\" />\n </div>\n </div>\n <SvgFilter></SvgFilter>\n </header>\n\n <header v-else-if=\"type === 'simple'\">\n <div class=\"text-center md:text-left mt-16 mb-32\">\n <h1\n v-if=\"title\"\n class=\"text-4xl font-bold tracking-tight\"\n >\n {{ title }}\n </h1>\n <h2 v-if=\"subtitle\" class=\"w-1/2 mt-4\">\n {{ subtitle }}\n </h2>\n </div>\n </header>\n\n <header v-else=\"type === 'sideBy'\">\n <div class=\"flex flex-col-reverse lg:flex-row items-stretch\">\n <div class=\"basis-1/2 bg-surface-2 dark:bg-surface-2-dark lg:min-h-48 p-4\">\n <div class=\"flex justify-start pt-0 mb-4\">\n <EpChip v-if=\"synchrone\" :prependIcon=\"mdiCast\" size=\"small\">{{\n labels.synchrone\n }}</EpChip>\n <EpChip v-if=\"duration\" :prependIcon=\"mdiTimerOutline\" size=\"small\">\n {{ duration }}</EpChip\n >\n <EpChip\n v-if=\"assessment\"\n :prependIcon=\"mdiChairSchool\"\n size=\"small\"\n >{{ labels.formatif }}</EpChip\n >\n </div>\n <div :class=\"`${vAlign} flex h-full pb-8 pl-6 max-w-3xl`\">\n <div>\n <h1\n v-if=\"title\"\n class=\"text-3xl sm:text-4xl xl:text-5xl font-bold tracking-tight\"\n >\n {{ title }}\n </h1>\n <p\n v-if=\"subtitle\"\n class=\"mt-4 text-xl\"\n >\n {{ subtitle }}\n </p>\n <div class=\"mt-4\">\n <slot />\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"basis-1/2\">\n <img\n :src=\"bgImg\"\n alt=\"\"\n class=\"h-32 lg:h-full size-full object-cover\"\n :style=\"`filter:url(#${headerImgColor});`\"\n />\n </div>\n </div>\n </header>\n</template>\n"],"names":["_createElementBlock","_normalizeClass","_unref","_createElementVNode","_normalizeStyle","_createBlock","EpChip","
|
|
1
|
+
{"version":3,"file":"EpHeader.vue.js","sources":["../../../src/components/signages/EpHeader.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { toRefs, computed } from \"vue\";\nimport { mdiCast } from \"@mdi/js\";\nimport { mdiTimerOutline } from \"@mdi/js\";\nimport { mdiChairSchool } from \"@mdi/js\";\nimport { mdiChevronDown } from \"@mdi/js\";\nimport SvgFilter from \"~/components/tools/SvgFilter.vue\";\nimport EpIcon from \"~/components/basics/EpIcon.vue\";\nimport EpChip from \"~/components/basics/EpChip.vue\";\nimport type { EpHeaderProps } from \"~/types/signages/EpHeader\";\n\nconst props = withDefaults(defineProps<EpHeaderProps>(), {\n title: null,\n icon: null,\n src: null,\n big: false,\n synchrone: false,\n hideImg: false,\n duration: null,\n assessment: null,\n labels: () => {\n return {\n synchrone: \"Synchrone\",\n formatif: \"Formatif\",\n };\n },\n textBg: true,\n type: \"imgBg\",\n titlePosition: \"center\",\n vAlign: \"items-center\",\n hAlign: \"justify-center\",\n});\n\nconst bgTextFit = \"w-8/12\"; // ''\n\nconst styles = computed(() => {\n return ` \n\tflex\n\tflex-col\n\toverflow-hidden \n\tw-full \n\tabsolute\n\t${props.big ? \"min-h-screen\" : \"h-96\"}\n\tbg-cover\n\tbg-center`;\n});\n\nconst bgImg = computed(() => {\n if (props.src) {\n return props.src;\n }\n return `https://live.staticflickr.com/1757/42677241511_a350206ac2_b.jpg`;\n});\n\nconst emit = defineEmits<{\n (e: \"clicked\"): void;\n}>();\n\nconst clickScroll = (): void => {\n emit(\"clicked\");\n};\n\nconst darkText = computed(()=> {\n if(props.darkText){\n return 'text-black'\n }\n return 'text-white'\n})\n\nconst { title, headerImgColor, big } = toRefs(props);\n</script>\n\n<template>\n <header\n v-if=\"type === 'imgBg'\"\n :class=\"`${\n big ? 'h-screen ' : 'h-96'\n } items-center overflow-hidden relative `\"\n ref=\"el\"\n >\n <div\n :class=\"styles\"\n :style=\"`background-image:url('${bgImg}'); filter:url(#${headerImgColor});`\"\n />\n\n <div :class=\"`relative ${big ? 'mb-36' : ''} h-full items-end`\">\n <div class=\"flex md:justify-end justify-center pt-5\">\n <EpChip v-if=\"synchrone\" :prependIcon=\"mdiCast\" size=\"small\">{{\n labels.synchrone\n }}</EpChip>\n <EpChip v-if=\"duration\" :prependIcon=\"mdiTimerOutline\" size=\"small\">\n {{ duration }}</EpChip\n >\n <EpChip v-if=\"assessment\" :prependIcon=\"mdiChairSchool\" size=\"small\">{{\n labels.formatif\n }}</EpChip>\n </div>\n <div :class=\"`${vAlign} ${hAlign} flex w-full grow h-96 `\">\n <div :class=\"`${bgTextFit}`\">\n <div\n v-if=\"title || subtitle\"\n :class=\"`${\n textBg\n ? 'inline-block backdrop-blur-lg backdrop-brightness-65 backdrop-opacity-95 rounded'\n : ''\n } p-4 md:items-center`\"\n >\n <div class=\"text-center md:text-left\">\n <h1\n v-if=\"title\"\n :class=\"`text-3xl font-medium ${darkText} sm:text-3xl`\"\n >\n {{ title }}\n </h1>\n <h2\n v-if=\"subtitle\"\n :class=\"`max-w-xl mt-4 text-2xl ${darkText}`\"\n >\n {{ subtitle }}\n </h2>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div v-if=\"props.big\" class=\"animate-bounce absolute bottom-10 left-1/2\">\n <div\n class=\"mx-auto w-12 rounded-full p-2\"\n @click=\"clickScroll\"\n >\n <EpIcon :iconPath=\"mdiChevronDown\" size=\"32\" />\n </div>\n </div>\n <SvgFilter></SvgFilter>\n </header>\n\n <header v-else-if=\"type === 'simple'\">\n <div class=\"text-center md:text-left mt-16 mb-32\">\n <h1\n v-if=\"title\"\n class=\"text-4xl font-bold tracking-tight\"\n >\n {{ title }}\n </h1>\n <h2 v-if=\"subtitle\" class=\"w-1/2 mt-4\">\n {{ subtitle }}\n </h2>\n </div>\n </header>\n\n <header v-else=\"type === 'sideBy'\">\n <div class=\"flex flex-col-reverse lg:flex-row items-stretch\">\n <div class=\"basis-1/2 bg-surface-2 dark:bg-surface-2-dark lg:min-h-48 p-4\">\n <div class=\"flex justify-start pt-0 mb-4\">\n <EpChip v-if=\"synchrone\" :prependIcon=\"mdiCast\" size=\"small\">{{\n labels.synchrone\n }}</EpChip>\n <EpChip v-if=\"duration\" :prependIcon=\"mdiTimerOutline\" size=\"small\">\n {{ duration }}</EpChip\n >\n <EpChip\n v-if=\"assessment\"\n :prependIcon=\"mdiChairSchool\"\n size=\"small\"\n >{{ labels.formatif }}</EpChip\n >\n </div>\n <div :class=\"`${vAlign} flex h-full pb-8 pl-6 max-w-3xl`\">\n <div>\n <h1\n v-if=\"title\"\n class=\"text-3xl sm:text-4xl xl:text-5xl font-bold tracking-tight\"\n >\n {{ title }}\n </h1>\n <p\n v-if=\"subtitle\"\n class=\"mt-4 text-xl\"\n >\n {{ subtitle }}\n </p>\n <div class=\"mt-4\">\n <slot />\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"basis-1/2\">\n <img\n :src=\"bgImg\"\n alt=\"\"\n class=\"h-32 lg:h-full size-full object-cover\"\n :style=\"`filter:url(#${headerImgColor});`\"\n />\n </div>\n </div>\n </header>\n</template>\n"],"names":["type","_createElementBlock","_normalizeClass","_unref","_createElementVNode","_normalizeStyle","synchrone","_createBlock","EpChip","labels","duration","assessment","vAlign","hAlign","subtitle","textBg","_openBlock","_createVNode","EpIcon","_toDisplayString","_renderSlot"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import _sfc_main$1 from "../basics/EpCard.vue.js";
|
|
|
3
3
|
import _sfc_main$4 from "../basics/EpDivider.vue.js";
|
|
4
4
|
import _sfc_main$2 from "../basics/EpIcon.vue.js";
|
|
5
5
|
import { mdiFormatQuoteOpen } from "@mdi/js";
|
|
6
|
-
import _sfc_main$3 from "../tools/RenderTextNode.
|
|
6
|
+
import _sfc_main$3 from "../tools/RenderTextNode.vue2.js";
|
|
7
7
|
const _hoisted_1 = {
|
|
8
8
|
class: /* @__PURE__ */ normalizeClass(`md:flex md:flex-wrap rounded-md`)
|
|
9
9
|
};
|
|
@@ -46,14 +46,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
46
46
|
}, [
|
|
47
47
|
createElementVNode("div", {
|
|
48
48
|
class: "px-4 py-2 break-words",
|
|
49
|
-
innerHTML: unref(useRenderText)(
|
|
49
|
+
innerHTML: unref(useRenderText)(_ctx.data.label)
|
|
50
50
|
}, null, 8, _hoisted_1),
|
|
51
51
|
createElementVNode("span", {
|
|
52
|
-
class: normalizeClass(`rounded-full w-6 h-6 flex justify-center bg-white dark:bg-neutral-800 items-center absolute bottom-1/3 ${
|
|
53
|
-
}, toDisplayString(
|
|
52
|
+
class: normalizeClass(`rounded-full w-6 h-6 flex justify-center bg-white dark:bg-neutral-800 items-center absolute bottom-1/3 ${_ctx.data.left ? "-left-3" : "-right-3"} ${colorStyle.value}`)
|
|
53
|
+
}, toDisplayString(_ctx.data.left ? String.fromCharCode(65 + _ctx.data.index) : _ctx.data.index), 3),
|
|
54
54
|
createVNode(unref(Handle), {
|
|
55
|
-
type:
|
|
56
|
-
position:
|
|
55
|
+
type: _ctx.data.left ? "source" : "target",
|
|
56
|
+
position: _ctx.data.left ? unref(Position).Right : unref(Position).Left,
|
|
57
57
|
style: normalizeStyle({
|
|
58
58
|
width: "20px",
|
|
59
59
|
// handle invisible, pas d’espace
|
|
@@ -61,19 +61,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
61
61
|
top: "50%",
|
|
62
62
|
zIndex: "100",
|
|
63
63
|
transform: "translateY(-50%)",
|
|
64
|
-
left:
|
|
64
|
+
left: _ctx.data.left ? "96%" : "-10px",
|
|
65
65
|
opacity: 0
|
|
66
66
|
})
|
|
67
67
|
}, null, 8, ["type", "position", "style"]),
|
|
68
68
|
createVNode(_sfc_main$1, {
|
|
69
|
-
"icon-path":
|
|
69
|
+
"icon-path": _ctx.data.left ? plug : socket,
|
|
70
70
|
style: normalizeStyle({
|
|
71
71
|
position: "absolute",
|
|
72
72
|
width: "30px",
|
|
73
73
|
height: "30px",
|
|
74
74
|
top: "50%",
|
|
75
75
|
transform: "translateY(-50%)",
|
|
76
|
-
left:
|
|
76
|
+
left: _ctx.data.left ? "97%" : "-20px"
|
|
77
77
|
})
|
|
78
78
|
}, null, 8, ["icon-path", "style"])
|
|
79
79
|
], 2);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssociationNode.vue2.js","sources":["../../../src/components/tools/AssociationNode.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport { Position, Handle } from '@vue-flow/core'\nimport type { NodeProps } from '@vue-flow/core'\nimport EpIcon from '../basics/EpIcon.vue'\nimport { useRenderText } from '~/composables/useRenderText';\n\n\nconst plug = 'M17,16H21V14H17V10H21V8H17V8C17,7 16,6 15,6H9.5L6,9.5H3V14.5H6L9.5,18H15C16,18 17,17 17,16Z';\nconst socket = 'M7,16C7,17 8,18 9,18H14.5L18,14.5H21V9.5H18L14.5,6H9C8,6 7,7 7,8Z M7 19 L7 5';\n\ninterface AssociationData {\n mode?: 'neutral' | 'correct' | 'wrong';\n left: boolean;\n index: number;\n label: string;\n}\n\nconst props = withDefaults(defineProps<NodeProps<AssociationData>>(), {});\n\nconst colorStyle = computed(() => {\n if(!props.data.mode || props.data.mode == 'neutral') {\n return 'border-2 border-black dark:border-white'\n }\n if(props.data.mode == 'correct') {\n return 'border-2 border-green-600'\n } else if(props.data.mode == 'wrong') {\n return 'border-2 border-red-600'\n }\n});\n\n</script>\n\n<template>\n <div :class=\"`shadow-lg rounded w-96 relative bg-surface-2 dark:bg-surface-2-dark ${colorStyle}`\">\n <div class=\"px-4 py-2 break-words\" v-html=\"useRenderText(data.label)\"></div>\n <span :class=\"`rounded-full w-6 h-6 flex justify-center bg-white dark:bg-neutral-800 items-center absolute bottom-1/3 ${(data.left)? '-left-3' : '-right-3'} ${colorStyle}`\">{{ (data.left)? String.fromCharCode(65 + data.index) : data.index }}</span>\n\n <Handle\n :type=\"data.left ? 'source' : 'target'\"\n :position=\"data.left ? Position.Right : Position.Left\"\n :style=\"{\n width: '20px', // handle invisible, pas d’espace\n height: '20px',\n top: '50%',\n zIndex: '100',\n transform: 'translateY(-50%)',\n left: data.left ? '96%' : '-10px',\n opacity: 0\n }\"\n />\n <EpIcon \n :icon-path=\"data.left ? plug : socket\"\n :style=\"{\n position: 'absolute',\n width: '30px',\n height: '30px',\n top: '50%',\n transform: 'translateY(-50%)',\n left: data.left ? '97%' : '-20px'\n }\" \n />\n </div>\n</template>\n"],"names":["_createElementBlock","_createElementVNode","_unref","
|
|
1
|
+
{"version":3,"file":"AssociationNode.vue2.js","sources":["../../../src/components/tools/AssociationNode.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport { Position, Handle } from '@vue-flow/core'\nimport type { NodeProps } from '@vue-flow/core'\nimport EpIcon from '../basics/EpIcon.vue'\nimport { useRenderText } from '~/composables/useRenderText';\n\n\nconst plug = 'M17,16H21V14H17V10H21V8H17V8C17,7 16,6 15,6H9.5L6,9.5H3V14.5H6L9.5,18H15C16,18 17,17 17,16Z';\nconst socket = 'M7,16C7,17 8,18 9,18H14.5L18,14.5H21V9.5H18L14.5,6H9C8,6 7,7 7,8Z M7 19 L7 5';\n\ninterface AssociationData {\n mode?: 'neutral' | 'correct' | 'wrong';\n left: boolean;\n index: number;\n label: string;\n}\n\nconst props = withDefaults(defineProps<NodeProps<AssociationData>>(), {});\n\nconst colorStyle = computed(() => {\n if(!props.data.mode || props.data.mode == 'neutral') {\n return 'border-2 border-black dark:border-white'\n }\n if(props.data.mode == 'correct') {\n return 'border-2 border-green-600'\n } else if(props.data.mode == 'wrong') {\n return 'border-2 border-red-600'\n }\n});\n\n</script>\n\n<template>\n <div :class=\"`shadow-lg rounded w-96 relative bg-surface-2 dark:bg-surface-2-dark ${colorStyle}`\">\n <div class=\"px-4 py-2 break-words\" v-html=\"useRenderText(data.label)\"></div>\n <span :class=\"`rounded-full w-6 h-6 flex justify-center bg-white dark:bg-neutral-800 items-center absolute bottom-1/3 ${(data.left)? '-left-3' : '-right-3'} ${colorStyle}`\">{{ (data.left)? String.fromCharCode(65 + data.index) : data.index }}</span>\n\n <Handle\n :type=\"data.left ? 'source' : 'target'\"\n :position=\"data.left ? Position.Right : Position.Left\"\n :style=\"{\n width: '20px', // handle invisible, pas d’espace\n height: '20px',\n top: '50%',\n zIndex: '100',\n transform: 'translateY(-50%)',\n left: data.left ? '96%' : '-10px',\n opacity: 0\n }\"\n />\n <EpIcon \n :icon-path=\"data.left ? plug : socket\"\n :style=\"{\n position: 'absolute',\n width: '30px',\n height: '30px',\n top: '50%',\n transform: 'translateY(-50%)',\n left: data.left ? '97%' : '-20px'\n }\" \n />\n </div>\n</template>\n"],"names":["_createElementBlock","_createElementVNode","_unref","data","_normalizeClass","_createVNode","_normalizeStyle","EpIcon"],"mappings":";;;;;AAQA,MAAM,OAAO;AACb,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;AASf,UAAM,QAAQ;AAEd,UAAM,aAAa,SAAS,MAAM;AAC9B,UAAG,CAAC,MAAM,KAAK,QAAQ,MAAM,KAAK,QAAQ,WAAW;AACjD,eAAO;AAAA,MACX;AACA,UAAG,MAAM,KAAK,QAAQ,WAAW;AAC7B,eAAO;AAAA,MACX,WAAU,MAAM,KAAK,QAAQ,SAAS;AAClC,eAAO;AAAA,MACX;AAAA,IACJ,CAAC;;0BAKGA,mBA4BM,OAAA;AAAA,QA5BA,6FAA8E,WAAA,KAAU,EAAA;AAAA,MAAA;QAC1FC,mBAA4E,OAAA;AAAA,UAAvE,OAAM;AAAA,UAAwB,WAAQC,MAAA,aAAA,EAAcC,KAAAA,KAAK,KAAK;AAAA,QAAA;QACnEF,mBAAwP,QAAA;AAAA,UAAjP,OAAKG,eAAA,0GAA6GD,KAAAA,KAAK,iCAAiC,WAAA,KAAU,EAAA;AAAA,QAAA,GAAQA,gBAAAA,KAAAA,KAAK,OAAO,OAAO,aAAY,KAAMA,KAAAA,KAAK,KAAK,IAAIA,KAAAA,KAAK,KAAK,GAAA,CAAA;AAAA,QAE9OE,YAYEH,MAAA,MAAA,GAAA;AAAA,UAXG,MAAMC,KAAAA,KAAK,OAAI,WAAA;AAAA,UACf,UAAUA,KAAAA,KAAK,OAAOD,MAAA,QAAA,EAAS,QAAQA,MAAA,QAAA,EAAS;AAAA,UAChD,OAAKI,eAAA;AAAA;;;;;;YAAuOH,MAAAA,KAAAA,KAAK,OAAI,QAAA;AAAA;;;QAU1PE,YAUEE,aAAA;AAAA,UATG,aAAWJ,KAAAA,KAAK,OAAO,OAAO;AAAA,UAC9B,OAAKG,eAAA;AAAA;;;;;YAA0MH,MAAAA,KAAAA,KAAK,OAAI,QAAA;AAAA,UAAA;;;;;;"}
|
|
@@ -20,7 +20,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
20
20
|
renderedHtml.value = `<span style="color: red;">Il y a un error pour afficher la formule.</span>`;
|
|
21
21
|
});
|
|
22
22
|
return (_ctx, _cache) => {
|
|
23
|
-
return !
|
|
23
|
+
return !_ctx.block ? (openBlock(), createElementBlock("span", {
|
|
24
24
|
key: 0,
|
|
25
25
|
class: "katex-render",
|
|
26
26
|
innerHTML: renderedHtml.value
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AsyncKatexRender.vue2.js","sources":["../../../src/components/tools/AsyncKatexRender.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref } from 'vue';\n\nconst props = defineProps<{\n formula: string;\n block?:boolean;\n}>();\n\nconst renderedHtml = ref('...');\n\nimport('katex')\n .then((katexModule) => {\n renderedHtml.value = katexModule.default.renderToString(props.formula, {\n throwOnError: false,\n displayMode: false,\n });\n })\n .catch((error) => {\n console.error(\"Failed to load Katex library:\", error);\n renderedHtml.value = `<span style=\"color: red;\">Il y a un error pour afficher la formule.</span>`;\n });\n</script>\n\n<template>\n <span class=\"katex-render\" v-html=\"renderedHtml\" v-if=\"!block\"></span>\n <div v-else class=\"katex-block text-center\" v-html=\"renderedHtml\"></div>\n</template>\n\n<style scoped>\n/* Target the top-level KaTeX container and increase the font size */\n.katex-block :deep(.katex) {\n /* Increase the overall size of the math relative to the parent font size */\n font-size: 2em; \n}\n/* If you want inline math to be a specific size relative to surrounding text */\n.katex-render :deep(.katex-display) {\n font-size: 1.5em; \n}\n</style>"],"names":["_createElementBlock"],"mappings":";;;;;;;;;;AAGA,UAAM,QAAQ;AAKd,UAAM,eAAe,IAAI,KAAK;AAE9B,WAAO,OAAO,EACX,KAAK,CAAC,gBAAgB;AACrB,mBAAa,QAAQ,YAAY,QAAQ,eAAe,MAAM,SAAS;AAAA,QACrE,cAAc;AAAA,QACd,aAAa;AAAA,MAAA,CACd;AAAA,IACH,CAAC,EACA,MAAM,CAAC,UAAU;AAChB,cAAQ,MAAM,iCAAiC,KAAK;AACpD,mBAAa,QAAQ;AAAA,IACvB,CAAC;;
|
|
1
|
+
{"version":3,"file":"AsyncKatexRender.vue2.js","sources":["../../../src/components/tools/AsyncKatexRender.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref } from 'vue';\n\nconst props = defineProps<{\n formula: string;\n block?:boolean;\n}>();\n\nconst renderedHtml = ref('...');\n\nimport('katex')\n .then((katexModule) => {\n renderedHtml.value = katexModule.default.renderToString(props.formula, {\n throwOnError: false,\n displayMode: false,\n });\n })\n .catch((error) => {\n console.error(\"Failed to load Katex library:\", error);\n renderedHtml.value = `<span style=\"color: red;\">Il y a un error pour afficher la formule.</span>`;\n });\n</script>\n\n<template>\n <span class=\"katex-render\" v-html=\"renderedHtml\" v-if=\"!block\"></span>\n <div v-else class=\"katex-block text-center\" v-html=\"renderedHtml\"></div>\n</template>\n\n<style scoped>\n/* Target the top-level KaTeX container and increase the font size */\n.katex-block :deep(.katex) {\n /* Increase the overall size of the math relative to the parent font size */\n font-size: 2em; \n}\n/* If you want inline math to be a specific size relative to surrounding text */\n.katex-render :deep(.katex-display) {\n font-size: 1.5em; \n}\n</style>"],"names":["block","_createElementBlock"],"mappings":";;;;;;;;;;AAGA,UAAM,QAAQ;AAKd,UAAM,eAAe,IAAI,KAAK;AAE9B,WAAO,OAAO,EACX,KAAK,CAAC,gBAAgB;AACrB,mBAAa,QAAQ,YAAY,QAAQ,eAAe,MAAM,SAAS;AAAA,QACrE,cAAc;AAAA,QACd,aAAa;AAAA,MAAA,CACd;AAAA,IACH,CAAC,EACA,MAAM,CAAC,UAAU;AAChB,cAAQ,MAAM,iCAAiC,KAAK;AACpD,mBAAa,QAAQ;AAAA,IACvB,CAAC;;cAIuDA,KAAAA,sBAAxDC,mBAAsE,QAAA;AAAA;QAAhE,OAAM;AAAA,QAAe,WAAQ,aAAA;AAAA,MAAA,yCACnCA,mBAAwE,OAAA;AAAA;QAA5D,OAAM;AAAA,QAA0B,WAAQ,aAAA;AAAA,MAAA;;;;"}
|
|
@@ -1,59 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import _sfc_main$1 from "../interactions/EpModal.vue.js";
|
|
3
|
-
/* empty css */
|
|
4
|
-
import _sfc_main$4 from "../basics/EpBtn.vue.js";
|
|
5
|
-
import _sfc_main$3 from "../basics/EpDivider.vue.js";
|
|
6
|
-
import _sfc_main$2 from "./TextMedia.vue.js";
|
|
7
|
-
const _hoisted_1 = { class: "flex justify-end" };
|
|
8
|
-
const _hoisted_2 = { class: "text-white dark:text-neutral-900" };
|
|
9
|
-
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
10
|
-
__name: "Details",
|
|
11
|
-
props: {
|
|
12
|
-
title: { default: "Voir détails" },
|
|
13
|
-
content: {},
|
|
14
|
-
labelClose: { default: "Fermer" },
|
|
15
|
-
media: {}
|
|
16
|
-
},
|
|
17
|
-
setup(__props) {
|
|
18
|
-
const showModal = ref(false);
|
|
19
|
-
return (_ctx, _cache) => {
|
|
20
|
-
return openBlock(), createElementBlock("div", {
|
|
21
|
-
class: "cursor-pointer rounded bg-primary py-2 px-4 flex flex-col items-center",
|
|
22
|
-
onClick: _cache[2] || (_cache[2] = ($event) => showModal.value = true)
|
|
23
|
-
}, [
|
|
24
|
-
createVNode(_sfc_main$1, {
|
|
25
|
-
modelValue: showModal.value,
|
|
26
|
-
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => showModal.value = $event),
|
|
27
|
-
title: __props.title
|
|
28
|
-
}, {
|
|
29
|
-
default: withCtx(() => [
|
|
30
|
-
createVNode(_sfc_main$2, {
|
|
31
|
-
text: __props.content,
|
|
32
|
-
media: __props.media,
|
|
33
|
-
"text-left": ""
|
|
34
|
-
}, null, 8, ["text", "media"]),
|
|
35
|
-
createVNode(_sfc_main$3),
|
|
36
|
-
createElementVNode("div", _hoisted_1, [
|
|
37
|
-
createVNode(_sfc_main$4, {
|
|
38
|
-
type: "error",
|
|
39
|
-
rounded: "",
|
|
40
|
-
size: "small",
|
|
41
|
-
onClick: _cache[0] || (_cache[0] = ($event) => showModal.value = false)
|
|
42
|
-
}, {
|
|
43
|
-
default: withCtx(() => [
|
|
44
|
-
createTextVNode(toDisplayString(__props.labelClose), 1)
|
|
45
|
-
]),
|
|
46
|
-
_: 1
|
|
47
|
-
})
|
|
48
|
-
])
|
|
49
|
-
]),
|
|
50
|
-
_: 1
|
|
51
|
-
}, 8, ["modelValue", "title"]),
|
|
52
|
-
createElementVNode("p", _hoisted_2, toDisplayString(__props.title), 1)
|
|
53
|
-
]);
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
});
|
|
1
|
+
import _sfc_main from "./Details.vue2.js";
|
|
57
2
|
export {
|
|
58
3
|
_sfc_main as default
|
|
59
4
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Details.vue.js","sources":[
|
|
1
|
+
{"version":3,"file":"Details.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -1,4 +1,59 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { defineComponent, ref, createElementBlock, openBlock, createVNode, createElementVNode, withCtx, createTextVNode, toDisplayString } from "vue";
|
|
2
|
+
import _sfc_main$1 from "../interactions/EpModal.vue.js";
|
|
3
|
+
/* empty css */
|
|
4
|
+
import _sfc_main$4 from "../basics/EpBtn.vue.js";
|
|
5
|
+
import _sfc_main$3 from "../basics/EpDivider.vue.js";
|
|
6
|
+
import _sfc_main$2 from "./TextMedia.vue2.js";
|
|
7
|
+
const _hoisted_1 = { class: "flex justify-end" };
|
|
8
|
+
const _hoisted_2 = { class: "text-white dark:text-neutral-900" };
|
|
9
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
10
|
+
__name: "Details",
|
|
11
|
+
props: {
|
|
12
|
+
title: { default: "Voir détails" },
|
|
13
|
+
content: {},
|
|
14
|
+
labelClose: { default: "Fermer" },
|
|
15
|
+
media: {}
|
|
16
|
+
},
|
|
17
|
+
setup(__props) {
|
|
18
|
+
const showModal = ref(false);
|
|
19
|
+
return (_ctx, _cache) => {
|
|
20
|
+
return openBlock(), createElementBlock("div", {
|
|
21
|
+
class: "cursor-pointer rounded bg-primary py-2 px-4 flex flex-col items-center",
|
|
22
|
+
onClick: _cache[2] || (_cache[2] = ($event) => showModal.value = true)
|
|
23
|
+
}, [
|
|
24
|
+
createVNode(_sfc_main$1, {
|
|
25
|
+
modelValue: showModal.value,
|
|
26
|
+
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => showModal.value = $event),
|
|
27
|
+
title: _ctx.title
|
|
28
|
+
}, {
|
|
29
|
+
default: withCtx(() => [
|
|
30
|
+
createVNode(_sfc_main$2, {
|
|
31
|
+
text: _ctx.content,
|
|
32
|
+
media: _ctx.media,
|
|
33
|
+
"text-left": ""
|
|
34
|
+
}, null, 8, ["text", "media"]),
|
|
35
|
+
createVNode(_sfc_main$3),
|
|
36
|
+
createElementVNode("div", _hoisted_1, [
|
|
37
|
+
createVNode(_sfc_main$4, {
|
|
38
|
+
type: "error",
|
|
39
|
+
rounded: "",
|
|
40
|
+
size: "small",
|
|
41
|
+
onClick: _cache[0] || (_cache[0] = ($event) => showModal.value = false)
|
|
42
|
+
}, {
|
|
43
|
+
default: withCtx(() => [
|
|
44
|
+
createTextVNode(toDisplayString(_ctx.labelClose), 1)
|
|
45
|
+
]),
|
|
46
|
+
_: 1
|
|
47
|
+
})
|
|
48
|
+
])
|
|
49
|
+
]),
|
|
50
|
+
_: 1
|
|
51
|
+
}, 8, ["modelValue", "title"]),
|
|
52
|
+
createElementVNode("p", _hoisted_2, toDisplayString(_ctx.title), 1)
|
|
53
|
+
]);
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
});
|
|
2
57
|
export {
|
|
3
58
|
_sfc_main as default
|
|
4
59
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Details.vue2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
1
|
+
{"version":3,"file":"Details.vue2.js","sources":["../../../src/components/tools/Details.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport EpModal from \"~/components/interactions/EpModal.vue\";\nimport type { NestedComponents } from \"~/types/Component\";\nimport EpBtn from \"~/components/basics/EpBtn.vue\";\nimport EpDivider from \"~/components/basics/EpDivider.vue\";\nimport TextMedia from \"./TextMedia.vue\";\nconst showModal = ref(false);\n\ninterface Props {\n title?: string;\n content: string;\n labelClose?: string;\n media?: NestedComponents;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n title: \"Voir détails\",\n labelClose: \"Fermer\",\n});\n</script>\n\n<template>\n <div\n class=\"cursor-pointer rounded bg-primary py-2 px-4 flex flex-col items-center\"\n @click=\"showModal = true\"\n >\n <EpModal v-model=\"showModal\" :title=\"title\">\n <TextMedia :text=\"content\" :media=\"media\" text-left />\n <EpDivider />\n <div class=\"flex justify-end\">\n <EpBtn type=\"error\" rounded size=\"small\" @click=\"showModal = false\">\n {{ labelClose }}\n </EpBtn>\n </div>\n </EpModal>\n <p class=\"text-white dark:text-neutral-900\">{{ title }}</p>\n </div>\n</template>\n"],"names":["_createElementBlock","_createVNode","EpModal","title","TextMedia","content","media","EpDivider","_createElementVNode","EpBtn","labelClose","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;AAOA,UAAM,YAAY,IAAI,KAAK;;0BAgBzBA,mBAcM,OAAA;AAAA,QAbJ,OAAM;AAAA,QACL,+CAAO,UAAA,QAAS;AAAA,MAAA;QAEjBC,YAQUC,aAAA;AAAA,sBARQ,UAAA;AAAA,uEAAA,UAAS,QAAA;AAAA,UAAG,OAAOC,KAAAA;AAAAA,QAAAA;2BACnC,MAAsD;AAAA,YAAtDF,YAAsDG,aAAA;AAAA,cAA1C,MAAMC,KAAAA;AAAAA,cAAU,OAAOC,KAAAA;AAAAA,cAAO,aAAA;AAAA,YAAA;YAC1CL,YAAaM,WAAA;AAAA,YACbC,mBAIM,OAJN,YAIM;AAAA,cAHJP,YAEQQ,aAAA;AAAA,gBAFD,MAAK;AAAA,gBAAQ,SAAA;AAAA,gBAAQ,MAAK;AAAA,gBAAS,+CAAO,UAAA,QAAS;AAAA,cAAA;iCACxD,MAAgB;AAAA,kDAAbC,KAAAA,UAAU,GAAA,CAAA;AAAA,gBAAA;;;;;;;QAInBF,mBAA2D,KAA3D,YAA2DG,gBAAZR,KAAAA,KAAK,GAAA,CAAA;AAAA,MAAA;;;;"}
|
|
@@ -1,22 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { useTextParser } from "../../composables/useTextParser.js";
|
|
3
|
-
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
4
|
-
__name: "RenderTextNode",
|
|
5
|
-
props: {
|
|
6
|
-
content: {}
|
|
7
|
-
},
|
|
8
|
-
setup(__props) {
|
|
9
|
-
const props = __props;
|
|
10
|
-
const { renderText } = useTextParser(props.content);
|
|
11
|
-
return (_ctx, _cache) => {
|
|
12
|
-
return openBlock(), createElementBlock("div", null, [
|
|
13
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(renderText), (node, i) => {
|
|
14
|
-
return openBlock(), createBlock(resolveDynamicComponent(node), { key: i });
|
|
15
|
-
}), 128))
|
|
16
|
-
]);
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
});
|
|
1
|
+
import _sfc_main from "./RenderTextNode.vue2.js";
|
|
20
2
|
export {
|
|
21
3
|
_sfc_main as default
|
|
22
4
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderTextNode.vue.js","sources":[
|
|
1
|
+
{"version":3,"file":"RenderTextNode.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -1,4 +1,22 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { defineComponent, createElementBlock, openBlock, Fragment, renderList, unref, createBlock, resolveDynamicComponent } from "vue";
|
|
2
|
+
import { useTextParser } from "../../composables/useTextParser.js";
|
|
3
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
4
|
+
__name: "RenderTextNode",
|
|
5
|
+
props: {
|
|
6
|
+
content: {}
|
|
7
|
+
},
|
|
8
|
+
setup(__props) {
|
|
9
|
+
const props = __props;
|
|
10
|
+
const { renderText } = useTextParser(props.content);
|
|
11
|
+
return (_ctx, _cache) => {
|
|
12
|
+
return openBlock(), createElementBlock("div", null, [
|
|
13
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(renderText), (node, i) => {
|
|
14
|
+
return openBlock(), createBlock(resolveDynamicComponent(node), { key: i });
|
|
15
|
+
}), 128))
|
|
16
|
+
]);
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
});
|
|
2
20
|
export {
|
|
3
21
|
_sfc_main as default
|
|
4
22
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderTextNode.vue2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
1
|
+
{"version":3,"file":"RenderTextNode.vue2.js","sources":["../../../src/components/tools/RenderTextNode.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useTextParser } from \"~/composables/useTextParser\";\ninterface Props {\n content:string;\n}\nconst props = defineProps<Props>()\nconst { renderText } = useTextParser(props.content);\n</script>\n\n<template>\n <div>\n <component :is=\"node\" v-for=\"(node, i) in renderText\" :key=\"i\" />\n </div>\n</template>"],"names":["_createElementBlock","_openBlock","_Fragment","_renderList","_unref","_createBlock","_resolveDynamicComponent"],"mappings":";;;;;;;;AAKA,UAAM,QAAQ;AACd,UAAM,EAAE,WAAA,IAAe,cAAc,MAAM,OAAO;;0BAI9CA,mBAEM,OAAA,MAAA;AAAA,SADFC,UAAA,IAAA,GAAAD,mBAAiEE,UAAA,MAAAC,WAAvBC,MAAA,UAAA,GAAU,CAAtB,MAAM,MAAC;AAArC,iBAAAH,UAAA,GAAAI,YAAiEC,wBAAjD,IAAI,GAAA,EAAmC,KAAK,GAAC;AAAA;;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent, computed, createElementBlock, openBlock, normalizeClass, createElementVNode, createVNode, toDisplayString } from "vue";
|
|
2
|
-
import _sfc_main$1 from "./RenderTextNode.
|
|
2
|
+
import _sfc_main$1 from "./RenderTextNode.vue2.js";
|
|
3
3
|
const _hoisted_1 = { class: "text-xl font-semibold mb-1" };
|
|
4
4
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
5
5
|
__name: "SegmentedBox",
|
|
@@ -46,8 +46,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
46
46
|
createElementVNode("div", {
|
|
47
47
|
class: normalizeClass(innerClasses.value)
|
|
48
48
|
}, [
|
|
49
|
-
createElementVNode("h3", _hoisted_1, toDisplayString(
|
|
50
|
-
createVNode(_sfc_main$1, { content:
|
|
49
|
+
createElementVNode("h3", _hoisted_1, toDisplayString(_ctx.title), 1),
|
|
50
|
+
createVNode(_sfc_main$1, { content: _ctx.content }, null, 8, ["content"])
|
|
51
51
|
], 2)
|
|
52
52
|
], 2);
|
|
53
53
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentedBox.vue2.js","sources":["../../../src/components/tools/SegmentedBox.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {computed} from 'vue'\nimport RenderTextNode from \"~/components/tools/RenderTextNode.vue\";\nimport type { Box } from '~/types/educationals/EpSegmentedBox';\n\n\nconst props = withDefaults(defineProps<Box>(), {\n widthFull: false, \n boxCenter: true,\n opacity:false,\n bgColor:'bg-transparent',\n textCenter:true,\n})\n\nconst containerClasses = computed(() => ({\n 'w-full': props.widthFull,\n 'w-3/6': !props.widthFull,\n 'mx-auto': props.boxCenter,\n 'opacity-50': props.opacity\n}))\n\n\nconst textColorClass = computed(() => {\n if (!props.bgColor || props.bgColor === 'bg-transparent' || props.bgColor === '') {\n return ''\n }\n // Check if it's a dark shade (700, 500, or black)\n if (props.bgColor.includes('-700')) {\n return 'text-white dark:text-neutral-900'\n }\n if (props.bgColor === 'bg-black') {\n return 'text-white dark:text-neutral-900'\n }\n return ''\n})\n\nconst innerClasses = computed(() => [\n 'border border-black dark:border-white p-4 rounded-md',\n props.textCenter ? 'text-center' : 'text-left',\n props.bgColor, textColorClass.value\n])\n</script>\n\n<template>\n <div :class=\"containerClasses\" class=\"mb-3\">\n <div :class=\"innerClasses\">\n <h3 class=\"text-xl font-semibold mb-1\">{{ title }}</h3>\n <RenderTextNode :content=\"content\" />\n </div>\n </div>\n</template>"],"names":["_createElementBlock","_normalizeClass","_createElementVNode","_toDisplayString","_createVNode","RenderTextNode"],"mappings":";;;;;;;;;;;;;;;;AAMA,UAAM,QAAQ;AAQd,UAAM,mBAAmB,SAAS,OAAO;AAAA,MACrC,UAAU,MAAM;AAAA,MAChB,SAAS,CAAC,MAAM;AAAA,MAChB,WAAW,MAAM;AAAA,MACjB,cAAc,MAAM;AAAA,IAAA,EACtB;AAGF,UAAM,iBAAiB,SAAS,MAAM;AAClC,UAAI,CAAC,MAAM,WAAW,MAAM,YAAY,oBAAoB,MAAM,YAAY,IAAI;AAC9E,eAAO;AAAA,MACX;AAEA,UAAI,MAAM,QAAQ,SAAS,MAAM,GAAG;AAChC,eAAO;AAAA,MACX;AACA,UAAI,MAAM,YAAY,YAAY;AAC9B,eAAO;AAAA,MACX;AACA,aAAO;AAAA,IACX,CAAC;AAED,UAAM,eAAe,SAAS,MAAM;AAAA,MACjC;AAAA,MACC,MAAM,aAAa,gBAAgB;AAAA,MACnC,MAAM;AAAA,MAAS,eAAe;AAAA,IAAA,CACjC;;0BAIEA,mBAKM,OAAA;AAAA,QALA,OAAKC,eAAA,CAAE,iBAAA,OAAwB,MAAM,CAAA;AAAA,MAAA;QACtCC,mBAGM,OAAA;AAAA,UAHA,sBAAO,aAAA,KAAY;AAAA,QAAA;UACrBA,mBAAuD,MAAvD,YAAuDC,
|
|
1
|
+
{"version":3,"file":"SegmentedBox.vue2.js","sources":["../../../src/components/tools/SegmentedBox.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {computed} from 'vue'\nimport RenderTextNode from \"~/components/tools/RenderTextNode.vue\";\nimport type { Box } from '~/types/educationals/EpSegmentedBox';\n\n\nconst props = withDefaults(defineProps<Box>(), {\n widthFull: false, \n boxCenter: true,\n opacity:false,\n bgColor:'bg-transparent',\n textCenter:true,\n})\n\nconst containerClasses = computed(() => ({\n 'w-full': props.widthFull,\n 'w-3/6': !props.widthFull,\n 'mx-auto': props.boxCenter,\n 'opacity-50': props.opacity\n}))\n\n\nconst textColorClass = computed(() => {\n if (!props.bgColor || props.bgColor === 'bg-transparent' || props.bgColor === '') {\n return ''\n }\n // Check if it's a dark shade (700, 500, or black)\n if (props.bgColor.includes('-700')) {\n return 'text-white dark:text-neutral-900'\n }\n if (props.bgColor === 'bg-black') {\n return 'text-white dark:text-neutral-900'\n }\n return ''\n})\n\nconst innerClasses = computed(() => [\n 'border border-black dark:border-white p-4 rounded-md',\n props.textCenter ? 'text-center' : 'text-left',\n props.bgColor, textColorClass.value\n])\n</script>\n\n<template>\n <div :class=\"containerClasses\" class=\"mb-3\">\n <div :class=\"innerClasses\">\n <h3 class=\"text-xl font-semibold mb-1\">{{ title }}</h3>\n <RenderTextNode :content=\"content\" />\n </div>\n </div>\n</template>"],"names":["_createElementBlock","_normalizeClass","_createElementVNode","_toDisplayString","title","_createVNode","RenderTextNode","content"],"mappings":";;;;;;;;;;;;;;;;AAMA,UAAM,QAAQ;AAQd,UAAM,mBAAmB,SAAS,OAAO;AAAA,MACrC,UAAU,MAAM;AAAA,MAChB,SAAS,CAAC,MAAM;AAAA,MAChB,WAAW,MAAM;AAAA,MACjB,cAAc,MAAM;AAAA,IAAA,EACtB;AAGF,UAAM,iBAAiB,SAAS,MAAM;AAClC,UAAI,CAAC,MAAM,WAAW,MAAM,YAAY,oBAAoB,MAAM,YAAY,IAAI;AAC9E,eAAO;AAAA,MACX;AAEA,UAAI,MAAM,QAAQ,SAAS,MAAM,GAAG;AAChC,eAAO;AAAA,MACX;AACA,UAAI,MAAM,YAAY,YAAY;AAC9B,eAAO;AAAA,MACX;AACA,aAAO;AAAA,IACX,CAAC;AAED,UAAM,eAAe,SAAS,MAAM;AAAA,MACjC;AAAA,MACC,MAAM,aAAa,gBAAgB;AAAA,MACnC,MAAM;AAAA,MAAS,eAAe;AAAA,IAAA,CACjC;;0BAIEA,mBAKM,OAAA;AAAA,QALA,OAAKC,eAAA,CAAE,iBAAA,OAAwB,MAAM,CAAA;AAAA,MAAA;QACtCC,mBAGM,OAAA;AAAA,UAHA,sBAAO,aAAA,KAAY;AAAA,QAAA;UACrBA,mBAAuD,MAAvD,YAAuDC,gBAAbC,KAAAA,KAAK,GAAA,CAAA;AAAA,UAC/CC,YAAqCC,aAAA,EAApB,SAASC,KAAAA,QAAAA,GAAO,MAAA,GAAA,CAAA,SAAA,CAAA;AAAA,QAAA;;;;;"}
|