ep-lib-ts 1.0.71 → 1.0.72
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/EpDivider.vue.js +2 -1
- package/dist/components/basics/EpDivider.vue.js.map +1 -1
- package/dist/components/basics/EpTable.vue.js +1 -1
- package/dist/components/basics/EpTable.vue.js.map +1 -1
- package/dist/components/basics/EpText.vue.js +1 -1
- package/dist/components/basics/EpText.vue.js.map +1 -1
- package/dist/components/educationals/EpBranchingScenario.vue2.js +2 -2
- package/dist/components/educationals/EpConclusion.vue.js +16 -18
- package/dist/components/educationals/EpConclusion.vue.js.map +1 -1
- package/dist/components/educationals/EpDescription.vue.js +3 -4
- package/dist/components/educationals/EpDescription.vue.js.map +1 -1
- package/dist/components/educationals/EpEdu.vue.js +1 -1
- package/dist/components/educationals/EpEdu.vue.js.map +1 -1
- package/dist/components/educationals/EpInstructions.vue.js +4 -3
- package/dist/components/educationals/EpInstructions.vue.js.map +1 -1
- package/dist/components/educationals/EpIntroduction.vue.js +3 -4
- package/dist/components/educationals/EpIntroduction.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/interactions/EpAccordeon.vue.js +1 -1
- package/dist/components/interactions/EpAccordeon.vue2.js +17 -14
- package/dist/components/interactions/EpAccordeon.vue2.js.map +1 -1
- package/dist/components/interactions/EpContentSlider.vue.js +3 -3
- package/dist/components/interactions/EpContentSlider.vue.js.map +1 -1
- package/dist/components/interactions/EpQuestion.vue.js +3 -2
- package/dist/components/interactions/EpQuestion.vue.js.map +1 -1
- package/dist/components/interactions/EpSummativeTable.vue.js +1 -1
- package/dist/components/interactions/EpSummativeTable.vue.js.map +1 -1
- package/dist/components/medias/EpAudio.vue.js +1 -1
- package/dist/components/medias/EpCarousel.vue.js +2 -2
- package/dist/components/medias/EpCarousel.vue.js.map +1 -1
- package/dist/components/medias/EpTerm.vue.js +1 -1
- package/dist/components/medias/EpTerm.vue.js.map +1 -1
- package/dist/components/medias/EpWordDef.vue.js +3 -6
- package/dist/components/medias/EpWordDef.vue.js.map +1 -1
- package/dist/components/signages/EpQuote.vue.js +1 -1
- package/dist/components/signages/EpQuote.vue.js.map +1 -1
- package/dist/components/tools/BgAudio.vue.js +52 -1
- package/dist/components/tools/BgAudio.vue.js.map +1 -1
- package/dist/components/tools/BgAudio.vue2.js +1 -52
- package/dist/components/tools/BgAudio.vue2.js.map +1 -1
- package/dist/components/tools/Details.vue.js +55 -1
- package/dist/components/tools/Details.vue.js.map +1 -1
- package/dist/components/tools/Details.vue2.js +1 -55
- package/dist/components/tools/Details.vue2.js.map +1 -1
- package/dist/components/tools/TextMedia.vue.js +49 -1
- package/dist/components/tools/TextMedia.vue.js.map +1 -1
- package/dist/components/tools/TextMedia.vue2.js +1 -49
- 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/useColors.js +8 -4
- package/dist/composables/useColors.js.map +1 -1
- package/dist/style.css +56 -56
- package/dist/types/Accordeon.js +11 -11
- package/dist/types/Accordeon.js.map +1 -1
- package/dist/types/Alert.js +16 -16
- package/dist/types/Alert.js.map +1 -1
- package/dist/types/Btn.js +15 -15
- package/dist/types/Btn.js.map +1 -1
- package/dist/types/Chip.js +8 -8
- package/dist/types/Chip.js.map +1 -1
- package/dist/types/Medias.js +2 -2
- package/dist/types/Medias.js.map +1 -1
- package/dist/types/TimeLine.js +1 -1
- package/dist/types/TimeLine.js.map +1 -1
- package/dist/types/educationals/EpInstructions.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EpContentSlider.vue.js","sources":["../../../src/components/interactions/EpContentSlider.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n ref,\n computed,\n defineAsyncComponent,\n type ComponentPublicInstance,\n} from \"vue\";\nimport { useComponent } from \"~/composables/useComponent\";\nimport { useRenderText } from \"~/composables/useRenderText\";\nimport { mdiArrowLeft, mdiArrowRight } from \"@mdi/js\";\nimport EpIcon from \"~/components/basics/EpIcon.vue\";\nimport EpSkeleton from \"~/components/signages/EpSkeleton.vue\";\nimport type { EpContentSliderProps } from \"~/types/interactions/EpContentSlider\";\n\nconst props = withDefaults(defineProps<EpContentSliderProps>(), {\n loading: \"...loading\",\n noData: \"No data available\",\n mediaPosition: \"left\",\n titleSize: \"md\"\n});\n\nconst dynamicComponents = import.meta.glob(\n '../{basics,educationals,forms,interactions,signages}/**/*.vue'\n) as Record<string, () => Promise<{ default: any }>>;\n\nfunction resolveAsyncByName(name: string) {\n for (const [path, loader] of Object.entries(dynamicComponents)) {\n if (path.endsWith(`/${name}.vue`)) {\n // ensure the loader returns the component itself (module.default)\n return defineAsyncComponent(() => loader().then((m) => m.default));\n }\n }\n return null\n}\n\nconst currentIndex = ref(0);\nconst isLoading = ref(false);\nconst slideRefs = ref<(HTMLElement | null)[]>([]);\n\nconst currentSlide = computed(() => {\n if (!props.slides || props.slides.length === 0) {\n return {\n title: props.noData,\n img: \"\",\n uid: 2,\n content: \"\",\n component: null,\n twoColumns: false,\n layoutRatio: \"50/50\"\n };\n }\n return props.slides[currentIndex.value];\n});\n\n// Title size classes\nconst getTitleClasses = computed(() => {\n const base = 'font-bold ep-text-primary mb-3'\n switch (props.titleSize) {\n case 'sm': return `${base} text-xl`\n case 'lg': return `${base} text-4xl`\n case 'md':\n default: return `${base} text-2xl`\n }\n});\n\n// Two-column layout helpers\nconst getGridClasses = computed(() => {\n if (!currentSlide.value.twoColumns) return ''\n\n switch (currentSlide.value.layoutRatio) {\n case '20/80': return 'grid grid-cols-5 gap-6'\n case '40/60': return 'grid grid-cols-5 gap-6'\n case '60/40': return 'grid grid-cols-5 gap-6'\n case '80/20': return 'grid grid-cols-5 gap-6'\n case '50/50':\n default: return 'grid grid-cols-2 gap-6'\n }\n});\n\nconst getMediaColSpan = computed(() => {\n if (!currentSlide.value.twoColumns) return ''\n\n switch (currentSlide.value.layoutRatio) {\n case '20/80': return 'col-span-1'\n case '40/60': return 'col-span-2'\n case '60/40': return 'col-span-3'\n case '80/20': return 'col-span-4'\n case '50/50':\n default: return 'col-span-1'\n }\n});\n\nconst getContentColSpan = computed(() => {\n if (!currentSlide.value.twoColumns) return ''\n\n switch (currentSlide.value.layoutRatio) {\n case '20/80': return 'col-span-4'\n case '40/60': return 'col-span-3'\n case '60/40': return 'col-span-2'\n case '80/20': return 'col-span-1'\n case '50/50':\n default: return 'col-span-1'\n }\n});\n\nconst hasTextContent = computed(() => {\n const content = currentSlide.value.content;\n return content && content.trim().length > 0;\n});\n\nconst currentSlideMediaContent = computed(() => {\n if (currentSlide.value.img) {\n return defineAsyncComponent(() => import(\"../basics/EpImg.vue\"));\n }\n if (currentSlide.value.component) {\n const { name } = useComponent(currentSlide.value.component.type)\n return resolveAsyncByName(name)\n }\n return null\n});\n\nconst max = computed(() => currentIndex.value < props.slides.length - 1);\n\nconst next = async () => {\n isLoading.value = true;\n if (max.value) {\n currentIndex.value += 1;\n }\n isLoading.value = false;\n};\n\nconst prev = async () => {\n isLoading.value = true;\n if (currentIndex.value > 0) {\n currentIndex.value -= 1;\n }\n isLoading.value = false;\n};\n\nconst goTo = (index: number) => (currentIndex.value = index);\n\nconst updateSlideRefs = (\n el: Element | ComponentPublicInstance | null,\n index: number\n) => {\n if (el instanceof HTMLElement) {\n slideRefs.value[index] = el;\n } else {\n slideRefs.value[index] = null;\n }\n};\n</script>\n\n<template>\n <div\n class=\"relative h-[600px] flex flex-col p-6 ep-surface-2 w-full overflow-hidden rounded-lg shadow-xl\"\n >\n <!-- Header section with navigation -->\n <div\n class=\"flex justify-between items-center pb-3 mb-3 border-b-2 border-gray-600 dark:border-gray-300\"\n >\n <h5 :class=\"getTitleClasses\">{{ currentSlide.title }}</h5>\n <div class=\"flex items-center space-x-3\" v-if=\"props.slides.length\">\n <!-- Bullets -->\n <div class=\"flex space-x-2\">\n <span\n v-for=\"(_, i) in props.slides.length\"\n :key=\"`slide-index-${i}`\"\n @click=\"goTo(i)\"\n :class=\"[\n 'w-2 h-2 rounded-full cursor-pointer',\n i === currentIndex ? 'bg-primary' : 'bg-neutral',\n ]\"\n />\n </div>\n\n <!-- Controls -->\n <div class=\"flex space-x-2\">\n <button class=\"nav-btn\" @click=\"prev\" :disabled=\"currentIndex === 0\">\n <EpIcon :icon-path=\"mdiArrowLeft\" size=\"24\" />\n </button>\n <button class=\"nav-btn\" @click=\"next\" :disabled=\"!max\">\n <EpIcon :icon-path=\"mdiArrowRight\" size=\"24\" />\n </button>\n </div>\n <span class=\"text-sm\"\n >{{ currentIndex + 1 }} / {{ props.slides.length }}</span\n >\n </div>\n </div>\n\n <!-- Slider content -->\n <div\n class=\"flex flex-grow items-center justify-center overflow-hidden mb-4\"\n >\n <transition name=\"slide-fade\" mode=\"out-in\">\n <div\n v-if=\"props.slides.length > 0\"\n :key=\"currentSlide.uid\"\n :ref=\"(el) => updateSlideRefs(el, currentIndex)\"\n :class=\"[\n 'flex w-full h-full',\n currentSlide.twoColumns ? getGridClasses : 'gap-2',\n !currentSlide.twoColumns && hasTextContent\n ? props.mediaPosition === 'left'\n ? 'flex-row'\n : 'flex-row-reverse'\n : !currentSlide.twoColumns ? 'justify-center' : ''\n ]\"\n >\n <div\n v-if=\"isLoading\"\n class=\"flex items-center justify-center w-full h-full\"\n >\n <EpSkeleton\n :type=\"'rectangle'\"\n :height=\"100\"\n :width=\"100\"\n :loading=\"true\"\n />\n </div>\n\n <div\n v-else-if=\"!hasTextContent && !currentSlideMediaContent\"\n class=\"flex items-center justify-center w-full h-full\"\n >\n <EpSkeleton\n class=\"p-4\"\n :type=\"'rectangle'\"\n :height=\"150\"\n :width=\"150\"\n :loading=\"true\"\n />\n </div>\n\n <!-- 2 column layout -->\n <template v-if=\"currentSlide.twoColumns\">\n <!-- Media column -->\n <div\n v-if=\"currentSlideMediaContent\"\n :class=\"getMediaColSpan\"\n class=\"flex items-center justify-center p-2\"\n style=\"max-height: 100%\"\n >\n <template v-if=\"currentSlide.img\">\n <component\n :is=\"currentSlideMediaContent\"\n :src=\"currentSlide.img\"\n cols=\"11\"\n class=\"max-h-full max-w-full object-contain\"\n :style=\"{\n height: 'auto',\n maxHeight: '100%',\n objectFit: 'contain',\n margin: 'auto',\n }\"\n />\n </template>\n <template v-else-if=\"currentSlide.component\">\n <Suspense>\n <component\n :is=\"currentSlideMediaContent\"\n v-bind=\"{ ...currentSlide.component.data }\"\n cols=\"11\"\n class=\"max-h-full max-w-full object-contain\"\n />\n <template #fallback>{{ loading }}</template>\n </Suspense>\n </template>\n </div>\n\n <!-- Text column -->\n <div\n v-if=\"hasTextContent\"\n :class=\"getContentColSpan\"\n class=\"p-2 overflow-y-auto\"\n >\n <div\n v-html=\"useRenderText(currentSlide.content)\"\n class=\"text-base leading-relaxed text-black dark:text-white\"\n />\n </div>\n </template>\n\n <!-- single column -->\n <template v-else>\n <!-- Media content -->\n <div\n v-if=\"currentSlideMediaContent\"\n class=\"flex items-center justify-center p-2 md:w-1/2 w-full\"\n style=\"max-height: 100%\"\n >\n <template v-if=\"currentSlide.img\">\n <component\n :is=\"currentSlideMediaContent\"\n :src=\"currentSlide.img\"\n cols=\"11\"\n class=\"max-h-full max-w-full object-contain\"\n :style=\"{\n height: 'auto',\n maxHeight: '100%',\n objectFit: 'contain',\n margin: 'auto',\n }\"\n />\n </template>\n <template v-else-if=\"currentSlide.component\">\n <Suspense>\n <component\n :is=\"currentSlideMediaContent\"\n v-bind=\"{ ...currentSlide.component.data }\"\n cols=\"11\"\n class=\"max-h-full max-w-full object-contain\"\n :style=\"{\n height: 'auto',\n maxHeight: '100%',\n objectFit: 'contain',\n margin: 'auto',\n }\"\n />\n <template #fallback>{{ loading }}</template>\n </Suspense>\n </template>\n </div>\n\n <!-- Text content -->\n <div\n v-if=\"hasTextContent\"\n class=\"flex-1 p-2 overflow-y-auto md:w-1/2 w-full\"\n >\n <div\n v-html=\"useRenderText(currentSlide.content)\"\n class=\"text-base leading-relaxed text-black dark:text-white\"\n />\n </div>\n </template>\n </div>\n </transition>\n </div>\n\n <!-- Progress bar -->\n <div class=\"mt-2 h-2 w-full bg-gray-300 rounded-full\">\n <div\n class=\"bg-primary h-full rounded-full transition-all duration-300\"\n :style=\"{\n width: ((currentIndex + 1) / props.slides.length) * 100 + '%',\n }\"\n />\n </div>\n </div>\n</template>"],"names":["_openBlock","_createElementBlock","_createElementVNode","_toDisplayString","_Fragment","_renderList","_normalizeClass","_createVNode","EpIcon","_unref","_Transition","EpSkeleton","_createBlock","_resolveDynamicComponent","_Suspense","loading","_mergeProps","_normalizeStyle"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EpContentSlider.vue.js","sources":["../../../src/components/interactions/EpContentSlider.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n ref,\n computed,\n defineAsyncComponent,\n type ComponentPublicInstance,\n} from \"vue\";\nimport { useComponent } from \"~/composables/useComponent\";\nimport { useRenderText } from \"~/composables/useRenderText\";\nimport { mdiArrowLeft, mdiArrowRight } from \"@mdi/js\";\nimport EpIcon from \"~/components/basics/EpIcon.vue\";\nimport EpSkeleton from \"~/components/signages/EpSkeleton.vue\";\nimport type { EpContentSliderProps } from \"~/types/interactions/EpContentSlider\";\n\nconst props = withDefaults(defineProps<EpContentSliderProps>(), {\n loading: \"...loading\",\n noData: \"No data available\",\n mediaPosition: \"left\",\n titleSize: \"md\"\n});\n\nconst dynamicComponents = import.meta.glob(\n '../{basics,educationals,forms,interactions,signages}/**/*.vue'\n) as Record<string, () => Promise<{ default: any }>>;\n\nfunction resolveAsyncByName(name: string) {\n for (const [path, loader] of Object.entries(dynamicComponents)) {\n if (path.endsWith(`/${name}.vue`)) {\n // ensure the loader returns the component itself (module.default)\n return defineAsyncComponent(() => loader().then((m) => m.default));\n }\n }\n return null\n}\n\nconst currentIndex = ref(0);\nconst isLoading = ref(false);\nconst slideRefs = ref<(HTMLElement | null)[]>([]);\n\nconst currentSlide = computed(() => {\n if (!props.slides || props.slides.length === 0) {\n return {\n title: props.noData,\n img: \"\",\n uid: 2,\n content: \"\",\n component: null,\n twoColumns: false,\n layoutRatio: \"50/50\"\n };\n }\n return props.slides[currentIndex.value];\n});\n\n// Title size classes\nconst getTitleClasses = computed(() => {\n const base = 'font-bold ep-text-primary mb-3'\n switch (props.titleSize) {\n case 'sm': return `${base} text-xl`\n case 'lg': return `${base} text-4xl`\n case 'md':\n default: return `${base} text-2xl`\n }\n});\n\n// Two-column layout helpers\nconst getGridClasses = computed(() => {\n if (!currentSlide.value.twoColumns) return ''\n\n switch (currentSlide.value.layoutRatio) {\n case '20/80': return 'grid grid-cols-5 gap-6'\n case '40/60': return 'grid grid-cols-5 gap-6'\n case '60/40': return 'grid grid-cols-5 gap-6'\n case '80/20': return 'grid grid-cols-5 gap-6'\n case '50/50':\n default: return 'grid grid-cols-2 gap-6'\n }\n});\n\nconst getMediaColSpan = computed(() => {\n if (!currentSlide.value.twoColumns) return ''\n\n switch (currentSlide.value.layoutRatio) {\n case '20/80': return 'col-span-1'\n case '40/60': return 'col-span-2'\n case '60/40': return 'col-span-3'\n case '80/20': return 'col-span-4'\n case '50/50':\n default: return 'col-span-1'\n }\n});\n\nconst getContentColSpan = computed(() => {\n if (!currentSlide.value.twoColumns) return ''\n\n switch (currentSlide.value.layoutRatio) {\n case '20/80': return 'col-span-4'\n case '40/60': return 'col-span-3'\n case '60/40': return 'col-span-2'\n case '80/20': return 'col-span-1'\n case '50/50':\n default: return 'col-span-1'\n }\n});\n\nconst hasTextContent = computed(() => {\n const content = currentSlide.value.content;\n return content && content.trim().length > 0;\n});\n\nconst currentSlideMediaContent = computed(() => {\n if (currentSlide.value.img) {\n return defineAsyncComponent(() => import(\"../basics/EpImg.vue\"));\n }\n if (currentSlide.value.component) {\n const { name } = useComponent(currentSlide.value.component.type)\n return resolveAsyncByName(name)\n }\n return null\n});\n\nconst max = computed(() => currentIndex.value < props.slides.length - 1);\n\nconst next = async () => {\n isLoading.value = true;\n if (max.value) {\n currentIndex.value += 1;\n }\n isLoading.value = false;\n};\n\nconst prev = async () => {\n isLoading.value = true;\n if (currentIndex.value > 0) {\n currentIndex.value -= 1;\n }\n isLoading.value = false;\n};\n\nconst goTo = (index: number) => (currentIndex.value = index);\n\nconst updateSlideRefs = (\n el: Element | ComponentPublicInstance | null,\n index: number\n) => {\n if (el instanceof HTMLElement) {\n slideRefs.value[index] = el;\n } else {\n slideRefs.value[index] = null;\n }\n};\n</script>\n\n<template>\n <div\n class=\"relative h-[600px] flex flex-col p-6 w-full overflow-hidden rounded-lg shadow-xl bg-surface-2 dark:bg-surface-2-dark\"\n >\n <!-- Header section with navigation -->\n <div\n class=\"flex justify-between items-center pb-3 mb-3 border-b-2 border-gray-600 dark:border-gray-300\"\n >\n <h5 :class=\"getTitleClasses\">{{ currentSlide.title }}</h5>\n <div class=\"flex items-center space-x-3\" v-if=\"props.slides.length\">\n <!-- Bullets -->\n <div class=\"flex space-x-2\">\n <span\n v-for=\"(_, i) in props.slides.length\"\n :key=\"`slide-index-${i}`\"\n @click=\"goTo(i)\"\n :class=\"[\n 'w-2 h-2 rounded-full cursor-pointer',\n i === currentIndex ? 'bg-primary' : 'bg-neutral',\n ]\"\n />\n </div>\n\n <!-- Controls -->\n <div class=\"flex space-x-2\">\n <button class=\"nav-btn\" @click=\"prev\" :disabled=\"currentIndex === 0\">\n <EpIcon :icon-path=\"mdiArrowLeft\" size=\"24\" />\n </button>\n <button class=\"nav-btn\" @click=\"next\" :disabled=\"!max\">\n <EpIcon :icon-path=\"mdiArrowRight\" size=\"24\" />\n </button>\n </div>\n <span class=\"text-sm\"\n >{{ currentIndex + 1 }} / {{ props.slides.length }}</span\n >\n </div>\n </div>\n\n <!-- Slider content -->\n <div\n class=\"flex flex-grow items-center justify-center overflow-hidden mb-4\"\n >\n <transition name=\"slide-fade\" mode=\"out-in\">\n <div\n v-if=\"props.slides.length > 0\"\n :key=\"currentSlide.uid\"\n :ref=\"(el) => updateSlideRefs(el, currentIndex)\"\n :class=\"[\n 'flex w-full h-full',\n currentSlide.twoColumns ? getGridClasses : 'gap-2',\n !currentSlide.twoColumns && hasTextContent\n ? props.mediaPosition === 'left'\n ? 'flex-row'\n : 'flex-row-reverse'\n : !currentSlide.twoColumns ? 'justify-center' : ''\n ]\"\n >\n <div\n v-if=\"isLoading\"\n class=\"flex items-center justify-center w-full h-full\"\n >\n <EpSkeleton\n :type=\"'rectangle'\"\n :height=\"100\"\n :width=\"100\"\n :loading=\"true\"\n />\n </div>\n\n <div\n v-else-if=\"!hasTextContent && !currentSlideMediaContent\"\n class=\"flex items-center justify-center w-full h-full\"\n >\n <EpSkeleton\n class=\"p-4\"\n :type=\"'rectangle'\"\n :height=\"150\"\n :width=\"150\"\n :loading=\"true\"\n />\n </div>\n\n <!-- 2 column layout -->\n <template v-if=\"currentSlide.twoColumns\">\n <!-- Media column -->\n <div\n v-if=\"currentSlideMediaContent\"\n :class=\"getMediaColSpan\"\n class=\"flex items-center justify-center p-2\"\n style=\"max-height: 100%\"\n >\n <template v-if=\"currentSlide.img\">\n <component\n :is=\"currentSlideMediaContent\"\n :src=\"currentSlide.img\"\n cols=\"11\"\n class=\"max-h-full max-w-full object-contain\"\n :style=\"{\n height: 'auto',\n maxHeight: '100%',\n objectFit: 'contain',\n margin: 'auto',\n }\"\n />\n </template>\n <template v-else-if=\"currentSlide.component\">\n <Suspense>\n <component\n :is=\"currentSlideMediaContent\"\n v-bind=\"{ ...currentSlide.component.data }\"\n cols=\"11\"\n class=\"max-h-full max-w-full object-contain\"\n />\n <template #fallback>{{ loading }}</template>\n </Suspense>\n </template>\n </div>\n\n <!-- Text column -->\n <div\n v-if=\"hasTextContent\"\n :class=\"getContentColSpan\"\n class=\"p-2 overflow-y-auto\"\n >\n <div\n v-html=\"useRenderText(currentSlide.content)\"\n class=\"text-base leading-relaxed\"\n />\n </div>\n </template>\n\n <!-- single column -->\n <template v-else>\n <!-- Media content -->\n <div\n v-if=\"currentSlideMediaContent\"\n class=\"flex items-center justify-center p-2 md:w-1/2 w-full\"\n style=\"max-height: 100%\"\n >\n <template v-if=\"currentSlide.img\">\n <component\n :is=\"currentSlideMediaContent\"\n :src=\"currentSlide.img\"\n cols=\"11\"\n class=\"max-h-full max-w-full object-contain\"\n :style=\"{\n height: 'auto',\n maxHeight: '100%',\n objectFit: 'contain',\n margin: 'auto',\n }\"\n />\n </template>\n <template v-else-if=\"currentSlide.component\">\n <Suspense>\n <component\n :is=\"currentSlideMediaContent\"\n v-bind=\"{ ...currentSlide.component.data }\"\n cols=\"11\"\n class=\"max-h-full max-w-full object-contain\"\n :style=\"{\n height: 'auto',\n maxHeight: '100%',\n objectFit: 'contain',\n margin: 'auto',\n }\"\n />\n <template #fallback>{{ loading }}</template>\n </Suspense>\n </template>\n </div>\n\n <!-- Text content -->\n <div\n v-if=\"hasTextContent\"\n class=\"flex-1 p-2 overflow-y-auto md:w-1/2 w-full\"\n >\n <div\n v-html=\"useRenderText(currentSlide.content)\"\n class=\"text-base leading-relaxed\"\n />\n </div>\n </template>\n </div>\n </transition>\n </div>\n\n <!-- Progress bar -->\n <div class=\"mt-2 h-2 w-full bg-gray-300 rounded-full\">\n <div\n class=\"bg-primary h-full rounded-full transition-all duration-300\"\n :style=\"{\n width: ((currentIndex + 1) / props.slides.length) * 100 + '%',\n }\"\n />\n </div>\n </div>\n</template>"],"names":["_openBlock","_createElementBlock","_createElementVNode","_toDisplayString","_Fragment","_renderList","_normalizeClass","_createVNode","EpIcon","_unref","_Transition","EpSkeleton","_createBlock","_resolveDynamicComponent","_Suspense","loading","_mergeProps","_normalizeStyle"],"mappings":"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"}
|
|
@@ -103,7 +103,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
103
103
|
return defineAsyncComponent(() => import("../signages/EpNothing.vue.js"));
|
|
104
104
|
}
|
|
105
105
|
return defineAsyncComponent(
|
|
106
|
-
() => __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "../basics/EpAvatar.vue": () => import("../basics/EpAvatar.vue.js"), "../basics/EpBadge.vue": () => import("../basics/EpBadge.vue.js"), "../basics/EpBtn.vue": () => import("../basics/EpBtn.vue2.js"), "../basics/EpCard.vue": () => import("../basics/EpCard.vue2.js"), "../basics/EpChip.vue": () => import("../basics/EpChip.vue2.js"), "../basics/EpDivider.vue": () => import("../basics/EpDivider.vue2.js"), "../basics/EpFlex.vue": () => import("../basics/EpFlex.vue2.js"), "../basics/EpHover.vue": () => import("../basics/EpHover.vue2.js"), "../basics/EpHoverCard.vue": () => import("../basics/EpHoverCard.vue2.js"), "../basics/EpIcon.vue": () => import("../basics/EpIcon.vue2.js"), "../basics/EpImg.vue": () => import("../basics/EpImg.vue2.js"), "../basics/EpImgCarousel.vue": () => import("../basics/EpImgCarousel.vue2.js"), "../basics/EpList.vue": () => import("../basics/EpList.vue.js"), "../basics/EpListItem.vue": () => import("../basics/EpListItem.vue2.js"), "../basics/EpSection.vue": () => import("../basics/EpSection.vue2.js"), "../basics/EpSectionCols.vue": () => import("../basics/EpSectionCols.vue2.js"), "../basics/EpSpinner.vue": () => import("../basics/EpSpinner.vue2.js"), "../basics/EpStackedList.vue": () => import("../basics/EpStackedList.vue2.js"), "../basics/EpTable.vue": () => import("../basics/EpTable.vue2.js"), "../basics/EpText.vue": () => import("../basics/EpText.vue2.js"), "../charts/EpBarChart.vue": () => import("../charts/EpBarChart.vue2.js"), "../charts/EpFunnelChart.vue": () => import("../charts/EpFunnelChart.vue2.js"), "../charts/EpLineChart.vue": () => import("../charts/EpLineChart.vue2.js"), "../charts/EpPieChart.vue": () => import("../charts/EpPieChart.vue2.js"), "../educationals/EpBranchingScenario.vue": () => import("../educationals/EpBranchingScenario.vue.js"), "../educationals/EpCodeblock.vue": () => import("../educationals/EpCodeblock.vue3.js"), "../educationals/EpConclusion.vue": () => import("../educationals/EpConclusion.vue2.js"), "../educationals/EpDescription.vue": () => import("../educationals/EpDescription.vue2.js"), "../educationals/EpDocument.vue": () => import("../educationals/EpDocument.vue2.js"), "../educationals/EpEdu.vue": () => import("../educationals/EpEdu.vue2.js"), "../educationals/EpInstructions.vue": () => import("../educationals/EpInstructions.vue2.js"), "../educationals/EpIntroduction.vue": () => import("../educationals/EpIntroduction.vue2.js"), "../educationals/EpObjective.vue": () => import("../educationals/EpObjective.vue2.js"), "../educationals/EpReading.vue": () => import("../educationals/EpReading.vue2.js"), "../educationals/EpResource.vue": () => import("../educationals/EpResource.vue2.js"), "../educationals/EpScope.vue": () => import("../educationals/EpScope.vue2.js"), "../educationals/EpSpecificObjective.vue": () => import("../educationals/EpSpecificObjective.vue2.js"), "../forms/EpCheckbox.vue": () => import("../forms/EpCheckbox.vue.js"), "../forms/EpInput.vue": () => import("../forms/EpInput.vue.js"), "../forms/EpRadio.vue": () => import("../forms/EpRadio.vue.js"), "../forms/EpRadioSummative.vue": () => import("../forms/EpRadioSummative.vue.js"), "../forms/EpSelect.vue": () => import("../forms/EpSelect.vue.js"), "../forms/EpSwitch.vue": () => import("../forms/EpSwitch.vue.js"), "../forms/EpTextarea.vue": () => import("../forms/EpTextarea.vue.js"), "../forms/EpToggle.vue": () => import("../forms/EpToggle.vue.js"), "./Ep360Image.vue": () => import("./Ep360Image.vue.js"), "./Ep360Video.vue": () => import("./Ep360Video.vue.js"), "./EpAccordeon.vue": () => import("./EpAccordeon.vue.js"), "./EpContentSlider.vue": () => import("./EpContentSlider.vue2.js"), "./EpDarkMode.vue": () => import("./EpDarkMode.vue2.js"), "./EpDraggable.vue": () => import("./EpDraggable.vue2.js"), "./EpHotSpot.vue": () => import("./EpHotSpot.vue2.js"), "./EpModal.vue": () => import("./EpModal.vue3.js"), "./EpQuestion.vue": () => import("./EpQuestion.vue2.js"), "./EpSummativeTable.vue": () => import("./EpSummativeTable.vue2.js"), "./EpSvgShow.vue": () => import("./EpSvgShow.vue2.js"), "./EpTabs.vue": () => import("./EpTabs.vue.js"), "./EpTooltip.vue": () => import("./EpTooltip.vue2.js"), "../medias/EpAudio.vue": () => import("../medias/EpAudio.vue2.js"), "../medias/EpCardLink.vue": () => import("../medias/EpCardLink.vue2.js"), "../medias/EpCarousel.vue": () => import("../medias/EpCarousel.vue2.js"), "../medias/EpHierarchy.vue": () => import("../medias/EpHierarchy.vue.js"), "../medias/EpIframe.vue": () => import("../medias/EpIframe.vue2.js"), "../medias/EpKatex.vue": () => import("../medias/EpKatex.vue.js"), "../medias/EpLink.vue": () => import("../medias/EpLink.vue2.js"), "../medias/EpLinkVersion.vue": () => import("../medias/EpLinkVersion.vue2.js"), "../medias/EpLottieSvg.vue": () => import("../medias/EpLottieSvg.vue2.js"), "../medias/EpSensibleImage.vue": () => import("../medias/EpSensibleImage.vue.js"), "../medias/EpSoftware.vue": () => import("../medias/EpSoftware.vue2.js"), "../medias/EpSvg.vue": () => import("../medias/EpSvg.vue2.js"), "../medias/EpTerm.vue": () => import("../medias/EpTerm.vue2.js"), "../medias/EpTimeLine.vue": () => import("../medias/EpTimeLine.vue.js"), "../medias/EpVideo.vue": () => import("../medias/EpVideo.vue2.js"), "../medias/EpVideoPanopto.vue": () => import("../medias/EpVideoPanopto.vue2.js"), "../medias/EpWordDef.vue": () => import("../medias/EpWordDef.vue2.js"), "../signages/EpAlert.vue": () => import("../signages/EpAlert.vue.js"), "../signages/EpBadge.vue": () => import("../signages/EpBadge.vue2.js"), "../signages/EpHeader.vue": () => import("../signages/EpHeader.vue2.js"), "../signages/EpNothing.vue": () => import("../signages/EpNothing.vue.js"), "../signages/EpQuote.vue": () => import("../signages/EpQuote.vue2.js"), "../signages/EpSkeleton.vue": () => import("../signages/EpSkeleton.vue.js"), "../tools/BgAudio.vue": () => import("../tools/BgAudio.
|
|
106
|
+
() => __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "../basics/EpAvatar.vue": () => import("../basics/EpAvatar.vue.js"), "../basics/EpBadge.vue": () => import("../basics/EpBadge.vue.js"), "../basics/EpBtn.vue": () => import("../basics/EpBtn.vue2.js"), "../basics/EpCard.vue": () => import("../basics/EpCard.vue2.js"), "../basics/EpChip.vue": () => import("../basics/EpChip.vue2.js"), "../basics/EpDivider.vue": () => import("../basics/EpDivider.vue2.js"), "../basics/EpFlex.vue": () => import("../basics/EpFlex.vue2.js"), "../basics/EpHover.vue": () => import("../basics/EpHover.vue2.js"), "../basics/EpHoverCard.vue": () => import("../basics/EpHoverCard.vue2.js"), "../basics/EpIcon.vue": () => import("../basics/EpIcon.vue2.js"), "../basics/EpImg.vue": () => import("../basics/EpImg.vue2.js"), "../basics/EpImgCarousel.vue": () => import("../basics/EpImgCarousel.vue2.js"), "../basics/EpList.vue": () => import("../basics/EpList.vue.js"), "../basics/EpListItem.vue": () => import("../basics/EpListItem.vue2.js"), "../basics/EpSection.vue": () => import("../basics/EpSection.vue2.js"), "../basics/EpSectionCols.vue": () => import("../basics/EpSectionCols.vue2.js"), "../basics/EpSpinner.vue": () => import("../basics/EpSpinner.vue2.js"), "../basics/EpStackedList.vue": () => import("../basics/EpStackedList.vue2.js"), "../basics/EpTable.vue": () => import("../basics/EpTable.vue2.js"), "../basics/EpText.vue": () => import("../basics/EpText.vue2.js"), "../charts/EpBarChart.vue": () => import("../charts/EpBarChart.vue2.js"), "../charts/EpFunnelChart.vue": () => import("../charts/EpFunnelChart.vue2.js"), "../charts/EpLineChart.vue": () => import("../charts/EpLineChart.vue2.js"), "../charts/EpPieChart.vue": () => import("../charts/EpPieChart.vue2.js"), "../educationals/EpBranchingScenario.vue": () => import("../educationals/EpBranchingScenario.vue.js"), "../educationals/EpCodeblock.vue": () => import("../educationals/EpCodeblock.vue3.js"), "../educationals/EpConclusion.vue": () => import("../educationals/EpConclusion.vue2.js"), "../educationals/EpDescription.vue": () => import("../educationals/EpDescription.vue2.js"), "../educationals/EpDocument.vue": () => import("../educationals/EpDocument.vue2.js"), "../educationals/EpEdu.vue": () => import("../educationals/EpEdu.vue2.js"), "../educationals/EpInstructions.vue": () => import("../educationals/EpInstructions.vue2.js"), "../educationals/EpIntroduction.vue": () => import("../educationals/EpIntroduction.vue2.js"), "../educationals/EpObjective.vue": () => import("../educationals/EpObjective.vue2.js"), "../educationals/EpReading.vue": () => import("../educationals/EpReading.vue2.js"), "../educationals/EpResource.vue": () => import("../educationals/EpResource.vue2.js"), "../educationals/EpScope.vue": () => import("../educationals/EpScope.vue2.js"), "../educationals/EpSpecificObjective.vue": () => import("../educationals/EpSpecificObjective.vue2.js"), "../forms/EpCheckbox.vue": () => import("../forms/EpCheckbox.vue.js"), "../forms/EpInput.vue": () => import("../forms/EpInput.vue.js"), "../forms/EpRadio.vue": () => import("../forms/EpRadio.vue.js"), "../forms/EpRadioSummative.vue": () => import("../forms/EpRadioSummative.vue.js"), "../forms/EpSelect.vue": () => import("../forms/EpSelect.vue.js"), "../forms/EpSwitch.vue": () => import("../forms/EpSwitch.vue.js"), "../forms/EpTextarea.vue": () => import("../forms/EpTextarea.vue.js"), "../forms/EpToggle.vue": () => import("../forms/EpToggle.vue.js"), "./Ep360Image.vue": () => import("./Ep360Image.vue.js"), "./Ep360Video.vue": () => import("./Ep360Video.vue.js"), "./EpAccordeon.vue": () => import("./EpAccordeon.vue.js"), "./EpContentSlider.vue": () => import("./EpContentSlider.vue2.js"), "./EpDarkMode.vue": () => import("./EpDarkMode.vue2.js"), "./EpDraggable.vue": () => import("./EpDraggable.vue2.js"), "./EpHotSpot.vue": () => import("./EpHotSpot.vue2.js"), "./EpModal.vue": () => import("./EpModal.vue3.js"), "./EpQuestion.vue": () => import("./EpQuestion.vue2.js"), "./EpSummativeTable.vue": () => import("./EpSummativeTable.vue2.js"), "./EpSvgShow.vue": () => import("./EpSvgShow.vue2.js"), "./EpTabs.vue": () => import("./EpTabs.vue.js"), "./EpTooltip.vue": () => import("./EpTooltip.vue2.js"), "../medias/EpAudio.vue": () => import("../medias/EpAudio.vue2.js"), "../medias/EpCardLink.vue": () => import("../medias/EpCardLink.vue2.js"), "../medias/EpCarousel.vue": () => import("../medias/EpCarousel.vue2.js"), "../medias/EpHierarchy.vue": () => import("../medias/EpHierarchy.vue.js"), "../medias/EpIframe.vue": () => import("../medias/EpIframe.vue2.js"), "../medias/EpKatex.vue": () => import("../medias/EpKatex.vue.js"), "../medias/EpLink.vue": () => import("../medias/EpLink.vue2.js"), "../medias/EpLinkVersion.vue": () => import("../medias/EpLinkVersion.vue2.js"), "../medias/EpLottieSvg.vue": () => import("../medias/EpLottieSvg.vue2.js"), "../medias/EpSensibleImage.vue": () => import("../medias/EpSensibleImage.vue.js"), "../medias/EpSoftware.vue": () => import("../medias/EpSoftware.vue2.js"), "../medias/EpSvg.vue": () => import("../medias/EpSvg.vue2.js"), "../medias/EpTerm.vue": () => import("../medias/EpTerm.vue2.js"), "../medias/EpTimeLine.vue": () => import("../medias/EpTimeLine.vue.js"), "../medias/EpVideo.vue": () => import("../medias/EpVideo.vue2.js"), "../medias/EpVideoPanopto.vue": () => import("../medias/EpVideoPanopto.vue2.js"), "../medias/EpWordDef.vue": () => import("../medias/EpWordDef.vue2.js"), "../signages/EpAlert.vue": () => import("../signages/EpAlert.vue.js"), "../signages/EpBadge.vue": () => import("../signages/EpBadge.vue2.js"), "../signages/EpHeader.vue": () => import("../signages/EpHeader.vue2.js"), "../signages/EpNothing.vue": () => import("../signages/EpNothing.vue.js"), "../signages/EpQuote.vue": () => import("../signages/EpQuote.vue2.js"), "../signages/EpSkeleton.vue": () => import("../signages/EpSkeleton.vue.js"), "../tools/BgAudio.vue": () => import("../tools/BgAudio.vue2.js"), "../tools/Details.vue": () => import("../tools/Details.vue2.js"), "../tools/DisplayBox.vue": () => import("../tools/DisplayBox.vue.js"), "../tools/SvgFilter.vue": () => import("../tools/SvgFilter.vue.js"), "../tools/TextMedia.vue": () => import("../tools/TextMedia.vue2.js"), "../tools/TimelineItem.vue": () => import("../tools/TimelineItem.vue.js"), "../tools/TwoColsMedia.vue": () => import("../tools/TwoColsMedia.vue.js") }), `../${componentToLoad.path}/${componentToLoad.name}.vue`, 3)
|
|
107
107
|
);
|
|
108
108
|
};
|
|
109
109
|
const { title, hideIcon, question, src } = toRefs(props);
|
|
@@ -113,7 +113,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
113
113
|
type: _ctx.type,
|
|
114
114
|
hideIcon: unref(hideIcon),
|
|
115
115
|
icon: unref(mdiHelpCircle),
|
|
116
|
-
"label-intentions": _ctx.labelIntentions
|
|
116
|
+
"label-intentions": _ctx.labelIntentions,
|
|
117
|
+
card: ""
|
|
117
118
|
}, createSlots({
|
|
118
119
|
content: withCtx(() => [
|
|
119
120
|
createElementVNode("div", _hoisted_2, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EpQuestion.vue.js","sources":["../../../src/components/interactions/EpQuestion.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { watch, ref, toRefs, computed, defineAsyncComponent } from \"vue\";\nimport EpEdu from \"~/components/educationals/EpEdu.vue\";\nimport { type Answer } from \"~/types/Answer\";\nimport { useRenderText } from \"~/composables/useRenderText\";\nimport { useComponent } from \"~/composables/useComponent\";\nimport { mdiHelpCircle } from \"@mdi/js\";\nimport EpImg from \"~/components/basics/EpImg.vue\";\nimport EpRadio from \"~/components/forms/EpRadio.vue\";\nimport EpBtn from \"~/components/basics/EpBtn.vue\";\nimport EpAlert from \"~/components/signages/EpAlert.vue\";\nimport type { EpQuestionProps } from \"~/types/interactions/EpQuestion\";\n\nconst props = withDefaults(defineProps<EpQuestionProps>(), {\n type: \"neutral\",\n hideIcon: false,\n shuffle: false,\n before: false,\n numeration: false,\n labelNoAnswer: \"Veuillez choisir une réponse\",\n labelAnswerBtn: \"Valider\",\n labelTryAgainBtn: \"Réessayer\",\n});\n\nconst renderText = computed(() => {\n if (!props.intentions) {\n return null;\n }\n return useRenderText(props.intentions);\n});\n\n//shuffle and list\nconst shuffleAnswers = computed(() => {\n const array = props.answers;\n if (props.shuffle) {\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n const temp = array[i];\n array[i] = array[j];\n array[j] = temp;\n }\n }\n return array;\n});\n\nconst alphabet = [\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\"];\nconst typeList = (index: number) => {\n if (props.numeration) {\n return alphabet[index];\n }\n return index + 1;\n};\n\n///user answer\nconst userAnswer = ref(\"\");\nconst answered = ref(false);\nconst valid = ref(true);\nconst response = ref<Answer>({\n type: \"warning\",\n text: \"no found\",\n component: null,\n feedback: \"\",\n});\nconst checkAnswer = () => {\n if (userAnswer.value === \"\") {\n valid.value = false;\n return;\n }\n const valuesAnswer = props.answers.find((x) => x.uid === userAnswer.value);\n if (!valuesAnswer) {\n return;\n }\n response.value = valuesAnswer!;\n answered.value = true;\n};\n\nconst reset = () => {\n answered.value = false;\n userAnswer.value = \"\";\n};\n\nwatch(userAnswer, (val) => {\n if (val !== \"\") {\n valid.value = true;\n }\n});\n\n//get Component asyncComponent\nconst getCompontent = (name: string | undefined) => {\n const componentToLoad = useComponent(name);\n //console.log(componentToLoad)\n if (componentToLoad.name === \"EpNothing\") {\n return defineAsyncComponent(() => import(\"../signages/EpNothing.vue\"));\n }\n return defineAsyncComponent(\n () => import(`../${componentToLoad.path}/${componentToLoad.name}.vue`)\n );\n};\n\n//returned values from props\nconst { title, intentions, hideIcon, question, src } = toRefs(props);\n</script>\n\n<template>\n <EpEdu\n :title=\"title\"\n :type=\"type\"\n :hideIcon=\"hideIcon\"\n :icon=\"mdiHelpCircle\"\n :label-intentions=\"labelIntentions\"\n >\n <template #intentions v-if=\"renderText\">\n <div v-html=\"renderText\" />\n </template>\n <template #content>\n <div class=\"mt-5\">\n <EpImg\n v-if=\"src && before\"\n :src=\"src\"\n :alt=\"`Image soutien à la question`\"\n cols=\"5\"\n />\n <div v-html=\"useRenderText(question)\" class=\"my-6\" />\n <EpImg\n v-if=\"src && !before\"\n :src=\"src\"\n :alt=\"`Image soutien à la question`\"\n cols=\"5\"\n />\n\n <div class=\"mb-6\">\n <ol class=\"no-list\">\n <li v-for=\"(answer, i) in shuffleAnswers\" :key=\"answer.uid\">\n <EpRadio\n :label=\"`${typeList(i)}. ${answer.text}`\"\n v-model=\"userAnswer\"\n :value=\"answer.uid\"\n :disabled=\"answered\"\n type=\"primary\"\n ></EpRadio>\n </li>\n </ol>\n <EpAlert type=\"error\" outlined noIcon v-if=\"!valid\">\n {{ labelNoAnswer }}\n </EpAlert>\n </div>\n\n <div v-if=\"answered\" class=\"mb-2\">\n <EpAlert :type=\"response.type\" outlined>\n <div v-html=\"useRenderText(response.feedback)\" />\n </EpAlert>\n\n <div v-if=\"response.component\" class=\"my-2\">\n <component\n :is=\"getCompontent(response.component.type)\"\n v-bind=\"{ ...response.component.data }\"\n ></component>\n </div>\n </div>\n\n <EpBtn\n type=\"primary\"\n @click=\"checkAnswer\"\n :disabled=\"answered\"\n outlined\n extraClass=\"mr-2\"\n >{{ labelAnswerBtn }}</EpBtn\n >\n <EpBtn type=\"primary\" v-if=\"answered\" @click=\"reset\" outlined>{{\n labelTryAgainBtn\n }}</EpBtn>\n </div>\n </template>\n <!-- <template #actions>\n <EpBtn :color=\"type=='base'?'text-gray-700':'text-white'\" :type=\"type\">[Repair btn style... to change]</EpBtn>\n </template> -->\n </EpEdu>\n</template>\n"],"names":["_createBlock","EpEdu","_unref","type","labelIntentions","_createElementVNode","before","EpImg","_openBlock","_createElementBlock","_Fragment","_renderList","_createVNode","EpRadio","EpAlert","labelNoAnswer","_resolveDynamicComponent","_normalizeProps","_guardReactiveProps","EpBtn","labelAnswerBtn","labelTryAgainBtn"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EpQuestion.vue.js","sources":["../../../src/components/interactions/EpQuestion.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { watch, ref, toRefs, computed, defineAsyncComponent } from \"vue\";\nimport EpEdu from \"~/components/educationals/EpEdu.vue\";\nimport { type Answer } from \"~/types/Answer\";\nimport { useRenderText } from \"~/composables/useRenderText\";\nimport { useComponent } from \"~/composables/useComponent\";\nimport { mdiHelpCircle } from \"@mdi/js\";\nimport EpImg from \"~/components/basics/EpImg.vue\";\nimport EpRadio from \"~/components/forms/EpRadio.vue\";\nimport EpBtn from \"~/components/basics/EpBtn.vue\";\nimport EpAlert from \"~/components/signages/EpAlert.vue\";\nimport type { EpQuestionProps } from \"~/types/interactions/EpQuestion\";\n\nconst props = withDefaults(defineProps<EpQuestionProps>(), {\n type: \"neutral\",\n hideIcon: false,\n shuffle: false,\n before: false,\n numeration: false,\n labelNoAnswer: \"Veuillez choisir une réponse\",\n labelAnswerBtn: \"Valider\",\n labelTryAgainBtn: \"Réessayer\",\n});\n\nconst renderText = computed(() => {\n if (!props.intentions) {\n return null;\n }\n return useRenderText(props.intentions);\n});\n\n//shuffle and list\nconst shuffleAnswers = computed(() => {\n const array = props.answers;\n if (props.shuffle) {\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n const temp = array[i];\n array[i] = array[j];\n array[j] = temp;\n }\n }\n return array;\n});\n\nconst alphabet = [\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\"];\nconst typeList = (index: number) => {\n if (props.numeration) {\n return alphabet[index];\n }\n return index + 1;\n};\n\n///user answer\nconst userAnswer = ref(\"\");\nconst answered = ref(false);\nconst valid = ref(true);\nconst response = ref<Answer>({\n type: \"warning\",\n text: \"no found\",\n component: null,\n feedback: \"\",\n});\nconst checkAnswer = () => {\n if (userAnswer.value === \"\") {\n valid.value = false;\n return;\n }\n const valuesAnswer = props.answers.find((x) => x.uid === userAnswer.value);\n if (!valuesAnswer) {\n return;\n }\n response.value = valuesAnswer!;\n answered.value = true;\n};\n\nconst reset = () => {\n answered.value = false;\n userAnswer.value = \"\";\n};\n\nwatch(userAnswer, (val) => {\n if (val !== \"\") {\n valid.value = true;\n }\n});\n\n//get Component asyncComponent\nconst getCompontent = (name: string | undefined) => {\n const componentToLoad = useComponent(name);\n //console.log(componentToLoad)\n if (componentToLoad.name === \"EpNothing\") {\n return defineAsyncComponent(() => import(\"../signages/EpNothing.vue\"));\n }\n return defineAsyncComponent(\n () => import(`../${componentToLoad.path}/${componentToLoad.name}.vue`)\n );\n};\n\n//returned values from props\nconst { title, intentions, hideIcon, question, src } = toRefs(props);\n</script>\n\n<template>\n <EpEdu\n :title=\"title\"\n :type=\"type\"\n :hideIcon=\"hideIcon\"\n :icon=\"mdiHelpCircle\"\n :label-intentions=\"labelIntentions\"\n card\n >\n <template #intentions v-if=\"renderText\">\n <div v-html=\"renderText\" />\n </template>\n <template #content>\n <div class=\"mt-5\">\n <EpImg\n v-if=\"src && before\"\n :src=\"src\"\n :alt=\"`Image soutien à la question`\"\n cols=\"5\"\n />\n <div v-html=\"useRenderText(question)\" class=\"my-6\" />\n <EpImg\n v-if=\"src && !before\"\n :src=\"src\"\n :alt=\"`Image soutien à la question`\"\n cols=\"5\"\n />\n\n <div class=\"mb-6\">\n <ol class=\"no-list\">\n <li v-for=\"(answer, i) in shuffleAnswers\" :key=\"answer.uid\">\n <EpRadio\n :label=\"`${typeList(i)}. ${answer.text}`\"\n v-model=\"userAnswer\"\n :value=\"answer.uid\"\n :disabled=\"answered\"\n type=\"primary\"\n ></EpRadio>\n </li>\n </ol>\n <EpAlert type=\"error\" outlined noIcon v-if=\"!valid\">\n {{ labelNoAnswer }}\n </EpAlert>\n </div>\n\n <div v-if=\"answered\" class=\"mb-2\">\n <EpAlert :type=\"response.type\" outlined>\n <div v-html=\"useRenderText(response.feedback)\" />\n </EpAlert>\n\n <div v-if=\"response.component\" class=\"my-2\">\n <component\n :is=\"getCompontent(response.component.type)\"\n v-bind=\"{ ...response.component.data }\"\n ></component>\n </div>\n </div>\n\n <EpBtn\n type=\"primary\"\n @click=\"checkAnswer\"\n :disabled=\"answered\"\n outlined\n extraClass=\"mr-2\"\n >{{ labelAnswerBtn }}</EpBtn\n >\n <EpBtn type=\"primary\" v-if=\"answered\" @click=\"reset\" outlined>{{\n labelTryAgainBtn\n }}</EpBtn>\n </div>\n </template>\n <!-- <template #actions>\n <EpBtn :color=\"type=='base'?'text-gray-700':'text-white'\" :type=\"type\">[Repair btn style... to change]</EpBtn>\n </template> -->\n </EpEdu>\n</template>\n"],"names":["_createBlock","EpEdu","_unref","type","labelIntentions","_createElementVNode","before","EpImg","_openBlock","_createElementBlock","_Fragment","_renderList","_createVNode","EpRadio","EpAlert","labelNoAnswer","_resolveDynamicComponent","_normalizeProps","_guardReactiveProps","EpBtn","labelAnswerBtn","labelTryAgainBtn"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent, ref, computed, createElementBlock, openBlock, createCommentVNode, createElementVNode, toDisplayString, Fragment, renderList, createVNode, createBlock } from "vue";
|
|
2
2
|
import _sfc_main$2 from "../basics/EpDivider.vue.js";
|
|
3
3
|
import _sfc_main$1 from "../forms/EpRadioSummative.vue2.js";
|
|
4
|
-
const _hoisted_1 = { class: "mt-4 bg-surface-2 dark:bg-surface-2-dark p-4" };
|
|
4
|
+
const _hoisted_1 = { class: "mt-4 bg-surface-2 dark:bg-surface-2-dark p-4 rounded" };
|
|
5
5
|
const _hoisted_2 = {
|
|
6
6
|
key: 0,
|
|
7
7
|
class: "text-xl font-semibold mb-6"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EpSummativeTable.vue.js","sources":["../../../src/components/interactions/EpSummativeTable.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, computed } from \"vue\";\nimport EpDivider from \"~/components/basics/EpDivider.vue\";\nimport EpRadioSummative from \"~/components/forms/EpRadioSummative.vue\";\nimport type { EpSummativeTableProps } from \"~/types/interactions/EpSummativeTable\";\nconst totalValue = ref<number[]>([]);\n\nconst {\n title,\n questions,\n totalLabel = \"Total :\",\n} = defineProps<EpSummativeTableProps>();\n\nconst resultSummative = computed(() => {\n return totalValue.value.reduce(\n (total, currentvalue) => total + currentvalue,\n 0\n );\n});\n\n//cette function sera efface, en creant le nouveau editeur\nconst transformNumber = (value: string | number) => {\n const num = Number(value);\n if (isNaN(num)) {\n return 0;\n } else {\n return num;\n }\n};\n</script>\n\n<template>\n <div class=\"mt-4 bg-surface-2 dark:bg-surface-2-dark p-4\">\n <h4 v-if=\"title\" class=\"text-xl font-semibold mb-6\">{{ title }}</h4>\n <template v-for=\"(question, i) in questions\" :key=\"`item-question-${i}`\">\n <p class=\"py-2 rounded\">\n {{ question.label }}\n </p>\n <div class=\"flex flex-row flex-wrap gap-y-2 sm:gap-x-4\">\n <template\n v-for=\"(_option, j) in question.options\"\n :key=\"`option-question-${j}`\"\n >\n <EpRadioSummative\n :id=\"`option-${i}-${j}-${_option.uid}`\"\n :name=\"`option-${i}-${j}-${_option.uid}`\"\n :label=\"_option.label\"\n :value=\"transformNumber(_option.value)\"\n v-model=\"totalValue[i]\"\n >\n </EpRadioSummative>\n </template>\n </div>\n <EpDivider />\n </template>\n <div class=\"text-right pr-16\">\n <span class=\"text-sm font-semibold uppercase\"\n >{{ totalLabel }} {{ resultSummative }}</span\n >\n </div>\n </div>\n</template>\n"],"names":["_openBlock","_createElementBlock","title","_toDisplayString","_Fragment","_renderList","questions","_createElementVNode","_createBlock","EpRadioSummative","_createVNode","EpDivider","totalLabel"],"mappings":";;;;;;;;;;;;;;;;;;;;AAKA,UAAM,aAAa,IAAc,EAAE;AAQnC,UAAM,kBAAkB,SAAS,MAAM;AACrC,aAAO,WAAW,MAAM;AAAA,QACtB,CAAC,OAAO,iBAAiB,QAAQ;AAAA,QACjC;AAAA,MAAA;AAAA,IAEJ,CAAC;AAGD,UAAM,kBAAkB,CAAC,UAA2B;AAClD,YAAM,MAAM,OAAO,KAAK;AACxB,UAAI,MAAM,GAAG,GAAG;AACd,eAAO;AAAA,MACT,OAAO;AACL,eAAO;AAAA,MACT;AAAA,IACF;;AAIE,aAAAA,UAAA,GAAAC,mBA4BM,OA5BN,YA4BM;AAAA,QA3BMC,KAAAA,sBAAVD,mBAAoE,MAApE,YAAoEE,gBAAbD,KAAAA,KAAK,GAAA,CAAA;SAC5DF,UAAA,IAAA,GAAAC,mBAoBWG,UAAA,MAAAC,WApBuBC,KAAAA,WAAS,CAAzB,UAAU,MAAC;;kCAAuC,CAAC;AAAA,UAAA;YACnEC,mBAEI,KAFJ,YAEIJ,gBADC,SAAS,KAAK,GAAA,CAAA;AAAA,YAEnBI,mBAcM,OAdN,YAcM;AAAA,eAbJP,UAAA,IAAA,GAAAC,mBAYWG,2BAXc,SAAS,SAAO,CAA/B,SAAS,MAAC;oCAGlBI,YAOmBC,aAAA;AAAA,0CATM,CAAC;AAAA,kBAGvB,cAAc,CAAC,IAAI,CAAC,IAAI,QAAQ,GAAG;AAAA,kBACnC,gBAAgB,CAAC,IAAI,CAAC,IAAI,QAAQ,GAAG;AAAA,kBACrC,OAAO,QAAQ;AAAA,kBACf,OAAO,gBAAgB,QAAQ,KAAK;AAAA,kBAC5B,YAAA,WAAA,MAAW,CAAC;AAAA,kBAAZ,uBAAA,CAAA,WAAA,WAAA,MAAW,CAAC,IAAA;AAAA,gBAAA;;;YAK3BC,YAAaC,WAAA;AAAA,UAAA;;QAEfJ,mBAIM,OAJN,YAIM;AAAA,UAHJA,mBAEC,QAFD,YAECJ,gBADKS,eAAU,IAAG,sBAAI,gBAAA,KAAe,GAAA,CAAA;AAAA,QAAA;;;;;"}
|
|
1
|
+
{"version":3,"file":"EpSummativeTable.vue.js","sources":["../../../src/components/interactions/EpSummativeTable.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, computed } from \"vue\";\nimport EpDivider from \"~/components/basics/EpDivider.vue\";\nimport EpRadioSummative from \"~/components/forms/EpRadioSummative.vue\";\nimport type { EpSummativeTableProps } from \"~/types/interactions/EpSummativeTable\";\nconst totalValue = ref<number[]>([]);\n\nconst {\n title,\n questions,\n totalLabel = \"Total :\",\n} = defineProps<EpSummativeTableProps>();\n\nconst resultSummative = computed(() => {\n return totalValue.value.reduce(\n (total, currentvalue) => total + currentvalue,\n 0\n );\n});\n\n//cette function sera efface, en creant le nouveau editeur\nconst transformNumber = (value: string | number) => {\n const num = Number(value);\n if (isNaN(num)) {\n return 0;\n } else {\n return num;\n }\n};\n</script>\n\n<template>\n <div class=\"mt-4 bg-surface-2 dark:bg-surface-2-dark p-4 rounded\">\n <h4 v-if=\"title\" class=\"text-xl font-semibold mb-6\">{{ title }}</h4>\n <template v-for=\"(question, i) in questions\" :key=\"`item-question-${i}`\">\n <p class=\"py-2 rounded\">\n {{ question.label }}\n </p>\n <div class=\"flex flex-row flex-wrap gap-y-2 sm:gap-x-4\">\n <template\n v-for=\"(_option, j) in question.options\"\n :key=\"`option-question-${j}`\"\n >\n <EpRadioSummative\n :id=\"`option-${i}-${j}-${_option.uid}`\"\n :name=\"`option-${i}-${j}-${_option.uid}`\"\n :label=\"_option.label\"\n :value=\"transformNumber(_option.value)\"\n v-model=\"totalValue[i]\"\n >\n </EpRadioSummative>\n </template>\n </div>\n <EpDivider />\n </template>\n <div class=\"text-right pr-16\">\n <span class=\"text-sm font-semibold uppercase\"\n >{{ totalLabel }} {{ resultSummative }}</span\n >\n </div>\n </div>\n</template>\n"],"names":["_openBlock","_createElementBlock","title","_toDisplayString","_Fragment","_renderList","questions","_createElementVNode","_createBlock","EpRadioSummative","_createVNode","EpDivider","totalLabel"],"mappings":";;;;;;;;;;;;;;;;;;;;AAKA,UAAM,aAAa,IAAc,EAAE;AAQnC,UAAM,kBAAkB,SAAS,MAAM;AACrC,aAAO,WAAW,MAAM;AAAA,QACtB,CAAC,OAAO,iBAAiB,QAAQ;AAAA,QACjC;AAAA,MAAA;AAAA,IAEJ,CAAC;AAGD,UAAM,kBAAkB,CAAC,UAA2B;AAClD,YAAM,MAAM,OAAO,KAAK;AACxB,UAAI,MAAM,GAAG,GAAG;AACd,eAAO;AAAA,MACT,OAAO;AACL,eAAO;AAAA,MACT;AAAA,IACF;;AAIE,aAAAA,UAAA,GAAAC,mBA4BM,OA5BN,YA4BM;AAAA,QA3BMC,KAAAA,sBAAVD,mBAAoE,MAApE,YAAoEE,gBAAbD,KAAAA,KAAK,GAAA,CAAA;SAC5DF,UAAA,IAAA,GAAAC,mBAoBWG,UAAA,MAAAC,WApBuBC,KAAAA,WAAS,CAAzB,UAAU,MAAC;;kCAAuC,CAAC;AAAA,UAAA;YACnEC,mBAEI,KAFJ,YAEIJ,gBADC,SAAS,KAAK,GAAA,CAAA;AAAA,YAEnBI,mBAcM,OAdN,YAcM;AAAA,eAbJP,UAAA,IAAA,GAAAC,mBAYWG,2BAXc,SAAS,SAAO,CAA/B,SAAS,MAAC;oCAGlBI,YAOmBC,aAAA;AAAA,0CATM,CAAC;AAAA,kBAGvB,cAAc,CAAC,IAAI,CAAC,IAAI,QAAQ,GAAG;AAAA,kBACnC,gBAAgB,CAAC,IAAI,CAAC,IAAI,QAAQ,GAAG;AAAA,kBACrC,OAAO,QAAQ;AAAA,kBACf,OAAO,gBAAgB,QAAQ,KAAK;AAAA,kBAC5B,YAAA,WAAA,MAAW,CAAC;AAAA,kBAAZ,uBAAA,CAAA,WAAA,WAAA,MAAW,CAAC,IAAA;AAAA,gBAAA;;;YAK3BC,YAAaC,WAAA;AAAA,UAAA;;QAEfJ,mBAIM,OAJN,YAIM;AAAA,UAHJA,mBAEC,QAFD,YAECJ,gBADKS,eAAU,IAAG,sBAAI,gBAAA,KAAe,GAAA,CAAA;AAAA,QAAA;;;;;"}
|
|
@@ -2,7 +2,7 @@ import { defineComponent, computed, toRefs, createBlock, openBlock, unref, creat
|
|
|
2
2
|
import { isHtml } from "../../composables/isHtml.js";
|
|
3
3
|
import { useMarkdown } from "../../composables/useMarkdown.js";
|
|
4
4
|
import { mdiHeadphones } from "@mdi/js";
|
|
5
|
-
import _sfc_main$2 from "../tools/BgAudio.
|
|
5
|
+
import _sfc_main$2 from "../tools/BgAudio.vue.js";
|
|
6
6
|
import Comp from "../signages/EpAlert.vue.js";
|
|
7
7
|
import _sfc_main$1 from "../educationals/EpEdu.vue.js";
|
|
8
8
|
const _hoisted_1 = ["innerHTML"];
|
|
@@ -11,11 +11,11 @@ const _hoisted_1 = {
|
|
|
11
11
|
};
|
|
12
12
|
const _hoisted_2 = { key: 1 };
|
|
13
13
|
const _hoisted_3 = { class: "flex items-center justify-center mb-2" };
|
|
14
|
-
const _hoisted_4 = { class: "
|
|
14
|
+
const _hoisted_4 = { class: "dark:bg-surface-2-dark shadow-xl p-4 lg:max-w-[800px] mx-auto border-solid border" };
|
|
15
15
|
const _hoisted_5 = ["src"];
|
|
16
16
|
const _hoisted_6 = {
|
|
17
17
|
key: 0,
|
|
18
|
-
class: "mt-2 text-sm text-center
|
|
18
|
+
class: "mt-2 text-sm text-center"
|
|
19
19
|
};
|
|
20
20
|
const _hoisted_7 = {
|
|
21
21
|
key: 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EpCarousel.vue.js","sources":["../../../src/components/medias/EpCarousel.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { toRefs, ref, computed } from \"vue\";\nimport { mdiChevronLeftCircleOutline } from \"@mdi/js\";\nimport { mdiChevronRightCircleOutline } from \"@mdi/js\";\nimport type { InfoModal } from \"~/types/Image\";\nimport EpIcon from \"~/components/basics/EpIcon.vue\";\nimport EpBtn from \"~/components/basics/EpBtn.vue\";\nimport EpModal from \"~/components/interactions/EpModal.vue\";\nimport EpImgCarousel from \"~/components/basics/EpImgCarousel.vue\";\nimport type { EpCarouselProps } from \"~/types/medias/EpCarousel\";\n\nconst props = withDefaults(defineProps<EpCarouselProps>(), {\n gallery: false,\n isCenter: false,\n puzzle: false,\n sizeThumbnail: \"medium\",\n labelRef: \"Référence\",\n labelClose: \"Fermer\",\n labelRefLib: \"Référence bibliographique\",\n});\n\n// Logique Carousel normal\nconst currentIndex = ref<number>(0);\nconst dialog = ref<boolean>(false);\n\nconst prevSlide = () => {\n const isFirstSlide = currentIndex.value === 0;\n const newIndex = isFirstSlide\n ? props.carrouselImg.length - 1\n : currentIndex.value - 1;\n currentIndex.value = newIndex;\n};\n\nconst nextSlide = () => {\n const isTheLastSlide = currentIndex.value === props.carrouselImg.length - 1;\n const newIndex = isTheLastSlide ? 0 : currentIndex.value + 1;\n currentIndex.value = newIndex;\n};\n\nconst isCenterStyle = computed(() => {\n return props.isCenter ? \"justify-center\" : \"\";\n});\n\n// Logique Carousel gallery\nconst managedIndex = ref(0);\nconst managedInfoModal = ref({ src: \"\", caption: \"\", bib: \"\" } as InfoModal);\n\nconst newFocus = (index: number) => {\n managedIndex.value = index;\n managedInfoModal.value = {\n src: props.carrouselImg[index].src,\n caption: props.carrouselImg[index].caption,\n bib: props.carrouselImg[index].bib,\n };\n};\n\nconst managedPrevSlide = () => {\n const isFirstSlide = managedIndex.value === 0;\n const newIndex = isFirstSlide\n ? props.carrouselImg.length - 1\n : managedIndex.value - 1;\n managedIndex.value = newIndex;\n managedInfoModal.value = {\n src: props.carrouselImg[newIndex].src,\n caption: props.carrouselImg[newIndex].caption,\n bib: props.carrouselImg[newIndex].bib,\n };\n};\n\nconst managedNextSlide = () => {\n const isTheLastSlide = managedIndex.value === props.carrouselImg.length - 1;\n const newIndex = isTheLastSlide ? 0 : managedIndex.value + 1;\n managedIndex.value = newIndex;\n managedInfoModal.value = {\n src: props.carrouselImg[newIndex].src,\n caption: props.carrouselImg[newIndex].caption,\n bib: props.carrouselImg[newIndex].bib,\n };\n};\n\nconst { carrouselImg, sizeThumbnail } = toRefs(props);\n</script>\n\n<template>\n <h2 v-if=\"props.title\" class=\"text-xl font-semibold mt-10 mb-4 text-center\">\n {{ props.title }}\n </h2>\n\n <div v-if=\"!gallery\">\n <div class=\"flex items-center justify-center mb-2\">\n <button class=\"p-2\" @click=\"prevSlide\">\n <EpIcon :icon-path=\"mdiChevronLeftCircleOutline\" />\n </button>\n {{ currentIndex + 1 }}/{{ carrouselImg.length }}\n <button class=\"p-2\" @click=\"nextSlide\">\n <EpIcon :icon-path=\"mdiChevronRightCircleOutline\" />\n </button>\n </div>\n <div\n class=\"
|
|
1
|
+
{"version":3,"file":"EpCarousel.vue.js","sources":["../../../src/components/medias/EpCarousel.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { toRefs, ref, computed } from \"vue\";\nimport { mdiChevronLeftCircleOutline } from \"@mdi/js\";\nimport { mdiChevronRightCircleOutline } from \"@mdi/js\";\nimport type { InfoModal } from \"~/types/Image\";\nimport EpIcon from \"~/components/basics/EpIcon.vue\";\nimport EpBtn from \"~/components/basics/EpBtn.vue\";\nimport EpModal from \"~/components/interactions/EpModal.vue\";\nimport EpImgCarousel from \"~/components/basics/EpImgCarousel.vue\";\nimport type { EpCarouselProps } from \"~/types/medias/EpCarousel\";\n\nconst props = withDefaults(defineProps<EpCarouselProps>(), {\n gallery: false,\n isCenter: false,\n puzzle: false,\n sizeThumbnail: \"medium\",\n labelRef: \"Référence\",\n labelClose: \"Fermer\",\n labelRefLib: \"Référence bibliographique\",\n});\n\n// Logique Carousel normal\nconst currentIndex = ref<number>(0);\nconst dialog = ref<boolean>(false);\n\nconst prevSlide = () => {\n const isFirstSlide = currentIndex.value === 0;\n const newIndex = isFirstSlide\n ? props.carrouselImg.length - 1\n : currentIndex.value - 1;\n currentIndex.value = newIndex;\n};\n\nconst nextSlide = () => {\n const isTheLastSlide = currentIndex.value === props.carrouselImg.length - 1;\n const newIndex = isTheLastSlide ? 0 : currentIndex.value + 1;\n currentIndex.value = newIndex;\n};\n\nconst isCenterStyle = computed(() => {\n return props.isCenter ? \"justify-center\" : \"\";\n});\n\n// Logique Carousel gallery\nconst managedIndex = ref(0);\nconst managedInfoModal = ref({ src: \"\", caption: \"\", bib: \"\" } as InfoModal);\n\nconst newFocus = (index: number) => {\n managedIndex.value = index;\n managedInfoModal.value = {\n src: props.carrouselImg[index].src,\n caption: props.carrouselImg[index].caption,\n bib: props.carrouselImg[index].bib,\n };\n};\n\nconst managedPrevSlide = () => {\n const isFirstSlide = managedIndex.value === 0;\n const newIndex = isFirstSlide\n ? props.carrouselImg.length - 1\n : managedIndex.value - 1;\n managedIndex.value = newIndex;\n managedInfoModal.value = {\n src: props.carrouselImg[newIndex].src,\n caption: props.carrouselImg[newIndex].caption,\n bib: props.carrouselImg[newIndex].bib,\n };\n};\n\nconst managedNextSlide = () => {\n const isTheLastSlide = managedIndex.value === props.carrouselImg.length - 1;\n const newIndex = isTheLastSlide ? 0 : managedIndex.value + 1;\n managedIndex.value = newIndex;\n managedInfoModal.value = {\n src: props.carrouselImg[newIndex].src,\n caption: props.carrouselImg[newIndex].caption,\n bib: props.carrouselImg[newIndex].bib,\n };\n};\n\nconst { carrouselImg, sizeThumbnail } = toRefs(props);\n</script>\n\n<template>\n <h2 v-if=\"props.title\" class=\"text-xl font-semibold mt-10 mb-4 text-center\">\n {{ props.title }}\n </h2>\n\n <div v-if=\"!gallery\">\n <div class=\"flex items-center justify-center mb-2\">\n <button class=\"p-2\" @click=\"prevSlide\">\n <EpIcon :icon-path=\"mdiChevronLeftCircleOutline\" />\n </button>\n {{ currentIndex + 1 }}/{{ carrouselImg.length }}\n <button class=\"p-2\" @click=\"nextSlide\">\n <EpIcon :icon-path=\"mdiChevronRightCircleOutline\" />\n </button>\n </div>\n <div\n class=\"dark:bg-surface-2-dark shadow-xl p-4 lg:max-w-[800px] mx-auto border-solid border\"\n >\n <!-- <div class=\"max-w-[800px] h-[550px] m-auto relative\">\n <div\n class=\"w-full h-full bg-center duration-500\"\n :style=\"`background-image:url('${carrouselImg[currentIndex].src}')`\"\n />\n </div> -->\n\n <img\n :src=\"carrouselImg[currentIndex].src\"\n alt=\"image\"\n class=\"rounded-sm m-auto\"\n />\n\n <div\n v-if=\"carrouselImg[currentIndex]?.caption\"\n class=\"mt-2 text-sm text-center\"\n >\n {{ carrouselImg[currentIndex].caption }}\n </div>\n <div v-if=\"carrouselImg[currentIndex]?.bib\" class=\"flex justify-end mt-2\">\n <EpBtn type=\"primary\" @click=\"dialog = true\" dark>{{ labelRef }}</EpBtn>\n </div>\n </div>\n <EpModal v-model=\"dialog\" :title=\"labelRefLib\">\n <div v-html=\"carrouselImg[currentIndex].bib\" />\n <div class=\"flex justify-end\">\n <EpBtn @click=\"dialog = false\" type=\"primary\" dark>{{\n labelClose\n }}</EpBtn>\n </div>\n </EpModal>\n </div>\n\n <div v-else-if=\"!puzzle\" :class=\"`flex flex-wrap ${isCenterStyle}`\">\n <template\n v-for=\"(image, index) in carrouselImg\"\n :key=\"`image-${image?.uid}`\"\n >\n <EpImgCarousel\n :src=\"image.src\"\n :bib=\"image.bib\"\n :caption=\"image.caption\"\n :label-ref=\"labelRef\"\n :label-close=\"labelClose\"\n :size-thumbnail=\"sizeThumbnail\"\n managed-modal\n @new-focus=\"newFocus(index)\"\n :info-modal=\"managedInfoModal\"\n @prev-slide=\"managedPrevSlide\"\n @next-slide=\"managedNextSlide\"\n ></EpImgCarousel>\n </template>\n </div>\n\n <div v-else-if=\"puzzle\" :class=\"`columns-3xs mx-5 gap-2`\">\n <template\n v-for=\"(image, index) in carrouselImg\"\n :key=\"`image-${image?.uid}`\"\n >\n <EpImgCarousel\n :src=\"image.src\"\n :bib=\"image.bib\"\n :caption=\"image.caption\"\n :label-ref=\"labelRef\"\n :label-close=\"labelClose\"\n puzzle\n managed-modal\n @new-focus=\"newFocus(index)\"\n :info-modal=\"managedInfoModal\"\n @prev-slide=\"managedPrevSlide\"\n @next-slide=\"managedNextSlide\"\n ></EpImgCarousel>\n </template>\n </div>\n</template>\n\n\n"],"names":["_openBlock","_createElementBlock","_toDisplayString","gallery","_createElementVNode","_createVNode","EpIcon","_unref","EpBtn","labelRef","EpModal","labelRefLib","labelClose","puzzle","_Fragment","_renderList","_createBlock","EpImgCarousel"],"mappings":"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"}
|
|
@@ -97,7 +97,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
97
97
|
return openBlock(), createElementBlock(Fragment, null, [
|
|
98
98
|
createElementVNode("span", {
|
|
99
99
|
onClick: toggleModal,
|
|
100
|
-
class: "cursor-pointer bg-surface-2 dark:bg-surface-2-dark ring-1 ring-primary ring-inset hover:bg-primary text-primary hover:text-white dark:hover:text-
|
|
100
|
+
class: "cursor-pointer bg-surface-2 dark:bg-surface-2-dark ring-1 ring-primary ring-inset hover:bg-primary text-primary hover:text-white dark:hover:text-neutral-900 px-2 py-1 m-1 rounded group overflow-hidden relative"
|
|
101
101
|
}, [
|
|
102
102
|
_cache[2] || (_cache[2] = createElementVNode("span", { class: "absolute top-0 left-0 flex w-full h-0 mb-0 transition-all duration-300 ease-out transform translate-y-0 group-hover:h-full opacity-90" }, null, -1)),
|
|
103
103
|
createElementVNode("span", _hoisted_1, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EpTerm.vue.js","sources":["../../../src/components/medias/EpTerm.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, toRefs, computed } from \"vue\";\nimport { useRouter } from \"vue-router\";\nimport { mdiBookmarkMultipleOutline } from \"@mdi/js\";\nimport EpImg from \"~/components/basics/EpImg.vue\";\nimport EpIcon from \"~/components/basics/EpIcon.vue\";\nimport EpModal from \"~/components/interactions/EpModal.vue\";\nimport EpDivider from \"~/components/basics/EpDivider.vue\";\nimport EpBtn from \"~/components/basics/EpBtn.vue\";\nimport type { EpTermProps } from \"~/types/medias/EpTerm\";\n\nconst props = withDefaults(defineProps<EpTermProps>(), {\n term: \"test\",\n variations: \"\",\n relations: \"\",\n idrelation: \"\",\n labelDefinition: \"Définition\",\n labelDomain: \"Domaine\",\n labelVariations: \"Variations\",\n labelRelations: \"Relations\",\n labelClose: \"Fermer\",\n});\n\nconst show = ref(false);\n\nconst subtitle = computed(() => {\n if (props.term !== props.word) {\n return `(${props.word})`;\n }\n return null;\n});\n\nconst renderVariations = computed(() => {\n let renderVariations = null;\n let valueprops = props.variations?.trim();\n if (valueprops?.length > 0) {\n renderVariations = valueprops.split(\",\");\n }\n return renderVariations;\n});\n\nconst renderRelations = computed(() => {\n let renderRelations = null;\n let valueprops = props.relations?.trim();\n if (valueprops?.length > 0) {\n renderRelations = valueprops.split(\",\");\n }\n return renderRelations;\n});\n\nconst router = useRouter();\nconst goto = (term: string) => {\n if (router.hasRoute(\"glossary\")) {\n router.push({ path: \"/glossary\", query: { word: term } });\n }\n //console.log(router.hasRoute('signages'))\n //\n};\n// const relationsID = computed(() => {\n// let relationsID = null;\n// let valueprops = props.idrelation?.trim();\n// if (valueprops?.length > 0) {\n// relationsID = valueprops.split(\",\");\n// }\n// return relationsID;\n// });\n\nconst renderDomain = computed(() => {\n if (props.domain === \"null\") {\n return null;\n }\n return props.domain;\n});\n\nconst toggleModal = () => {\n show.value = !show.value;\n};\n/*\nconst el = (contentref:any) => {\n const contentHtml = contentref.innerHTML \n const renderHtml = useRenderText(contentHtml)\n contentref.innerHTML = renderHtml\n}*/\n\nconst { term, graminfo, src } = toRefs(props);\n</script>\n\n<template>\n <span\n @click=\"toggleModal\"\n class=\"cursor-pointer bg-surface-2 dark:bg-surface-2-dark ring-1 ring-primary ring-inset hover:bg-primary text-primary hover:text-white dark:hover:text-
|
|
1
|
+
{"version":3,"file":"EpTerm.vue.js","sources":["../../../src/components/medias/EpTerm.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, toRefs, computed } from \"vue\";\nimport { useRouter } from \"vue-router\";\nimport { mdiBookmarkMultipleOutline } from \"@mdi/js\";\nimport EpImg from \"~/components/basics/EpImg.vue\";\nimport EpIcon from \"~/components/basics/EpIcon.vue\";\nimport EpModal from \"~/components/interactions/EpModal.vue\";\nimport EpDivider from \"~/components/basics/EpDivider.vue\";\nimport EpBtn from \"~/components/basics/EpBtn.vue\";\nimport type { EpTermProps } from \"~/types/medias/EpTerm\";\n\nconst props = withDefaults(defineProps<EpTermProps>(), {\n term: \"test\",\n variations: \"\",\n relations: \"\",\n idrelation: \"\",\n labelDefinition: \"Définition\",\n labelDomain: \"Domaine\",\n labelVariations: \"Variations\",\n labelRelations: \"Relations\",\n labelClose: \"Fermer\",\n});\n\nconst show = ref(false);\n\nconst subtitle = computed(() => {\n if (props.term !== props.word) {\n return `(${props.word})`;\n }\n return null;\n});\n\nconst renderVariations = computed(() => {\n let renderVariations = null;\n let valueprops = props.variations?.trim();\n if (valueprops?.length > 0) {\n renderVariations = valueprops.split(\",\");\n }\n return renderVariations;\n});\n\nconst renderRelations = computed(() => {\n let renderRelations = null;\n let valueprops = props.relations?.trim();\n if (valueprops?.length > 0) {\n renderRelations = valueprops.split(\",\");\n }\n return renderRelations;\n});\n\nconst router = useRouter();\nconst goto = (term: string) => {\n if (router.hasRoute(\"glossary\")) {\n router.push({ path: \"/glossary\", query: { word: term } });\n }\n //console.log(router.hasRoute('signages'))\n //\n};\n// const relationsID = computed(() => {\n// let relationsID = null;\n// let valueprops = props.idrelation?.trim();\n// if (valueprops?.length > 0) {\n// relationsID = valueprops.split(\",\");\n// }\n// return relationsID;\n// });\n\nconst renderDomain = computed(() => {\n if (props.domain === \"null\") {\n return null;\n }\n return props.domain;\n});\n\nconst toggleModal = () => {\n show.value = !show.value;\n};\n/*\nconst el = (contentref:any) => {\n const contentHtml = contentref.innerHTML \n const renderHtml = useRenderText(contentHtml)\n contentref.innerHTML = renderHtml\n}*/\n\nconst { term, graminfo, src } = toRefs(props);\n</script>\n\n<template>\n <span\n @click=\"toggleModal\"\n class=\"cursor-pointer bg-surface-2 dark:bg-surface-2-dark ring-1 ring-primary ring-inset hover:bg-primary text-primary hover:text-white dark:hover:text-neutral-900 px-2 py-1 m-1 rounded group overflow-hidden relative\"\n >\n <span\n class=\"absolute top-0 left-0 flex w-full h-0 mb-0 transition-all duration-300 ease-out transform translate-y-0 group-hover:h-full opacity-90\"\n />\n <span class=\"relative\"\n >{{ word }}\n <EpIcon :icon-path=\"mdiBookmarkMultipleOutline\" size=\"18\" />\n </span>\n </span>\n\n <EpModal v-model=\"show\" size=\"compact\">\n <div class=\"mb-2 flex items-center justify-between\">\n <div>\n <h3 class=\"font-bold text-2xl\">\n {{ term }}\n <span class=\"text-sm font-light text-error italic\">{{\n graminfo\n }}</span>\n </h3>\n <h4 class=\"text-xs\" v-if=\"subtitle\">{{ subtitle }}</h4>\n </div>\n <div>\n <EpIcon :icon-path=\"mdiBookmarkMultipleOutline\" />\n </div>\n </div>\n <EpDivider color=\"primary\" margin=\"mb-2\"></EpDivider>\n <div class=\"mb-4 flex items-center justify-between\">\n <h3 class=\"text-primary font-bold\">{{ labelDefinition }}</h3>\n <span class=\"text-xs\" v-if=\"renderDomain\"\n >{{ labelDomain }} :\n <span class=\"font-bold\">{{ renderDomain }}</span></span\n >\n </div>\n <!-- <div v-html=\"renderText\"/> -->\n <div>\n <slot />\n </div>\n <EpImg v-if=\"src\" :src=\"src\"></EpImg>\n\n <EpDivider v-if=\"renderVariations || renderRelations\"></EpDivider>\n <div class=\"text-sm mt-2\" v-if=\"renderVariations\">\n <span class=\"mr-2 font-bold\">{{ labelVariations }} :</span>\n <span v-for=\"(variation, i) in renderVariations\" :key=\"`variation-${i}`\">\n {{ variation }}{{ renderVariations.length > i + 1 ? \", \" : \".\" }}\n </span>\n </div>\n <div class=\"text-sm mt-2\" v-if=\"renderRelations\">\n <span class=\"mr-2 font-bold\">{{ labelRelations }} :</span>\n <template v-for=\"(relation, i) in renderRelations\" :key=\"`relation-${i}`\">\n <EpBtn\n size=\"small\"\n rounded\n extra-class=\"mr-2\"\n @click=\"goto(relation)\"\n >{{ relation }}</EpBtn\n >\n </template>\n </div>\n <div class=\"flex justify-end\">\n <EpBtn type=\"error\" outlined @click=\"show = false\" rounded>{{\n labelClose\n }}</EpBtn>\n </div>\n </EpModal>\n</template>\n"],"names":["renderVariations","renderRelations","term","_createElementVNode","word","_createVNode","EpIcon","_unref","EpModal","_createTextVNode","_toDisplayString","_createElementBlock","EpDivider","labelDefinition","_openBlock","labelDomain","_renderSlot","_createBlock","EpImg","labelVariations","_Fragment","_renderList","labelRelations","EpBtn","labelClose"],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ const _hoisted_1 = ["id"];
|
|
|
8
8
|
const _hoisted_2 = { key: 0 };
|
|
9
9
|
const _hoisted_3 = {
|
|
10
10
|
key: 0,
|
|
11
|
-
class: "h-min
|
|
11
|
+
class: "h-min divide-y"
|
|
12
12
|
};
|
|
13
13
|
const _hoisted_4 = { class: "flex justify-between" };
|
|
14
14
|
const _hoisted_5 = { class: "text-sm font-medium p-2" };
|
|
@@ -33,7 +33,7 @@ const _hoisted_17 = { class: "p-2" };
|
|
|
33
33
|
const _hoisted_18 = ["onClick"];
|
|
34
34
|
const _hoisted_19 = {
|
|
35
35
|
key: 1,
|
|
36
|
-
class: "h-min border divide-y"
|
|
36
|
+
class: "h-min border divide-y bg-surface-2 dark:bg-surface-2-dark rounded"
|
|
37
37
|
};
|
|
38
38
|
const _hoisted_20 = { class: "text-xl font-semibold p-2" };
|
|
39
39
|
const _hoisted_21 = { class: "flex justify-between" };
|
|
@@ -103,10 +103,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
103
103
|
};
|
|
104
104
|
const id = ref(props.uid || useCreateUid());
|
|
105
105
|
return (_ctx, _cache) => {
|
|
106
|
-
return openBlock(), createElementBlock("div", {
|
|
107
|
-
class: "bg-surface-2 dark:bg-surface-2-dark",
|
|
108
|
-
id: id.value
|
|
109
|
-
}, [
|
|
106
|
+
return openBlock(), createElementBlock("div", { id: id.value }, [
|
|
110
107
|
_ctx.term && _ctx.description ? (openBlock(), createElementBlock("div", _hoisted_2, [
|
|
111
108
|
_ctx.collapse ? (openBlock(), createElementBlock("div", _hoisted_3, [
|
|
112
109
|
createVNode(Comp, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EpWordDef.vue.js","sources":["../../../src/components/medias/EpWordDef.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from \"vue\";\nimport EpImg from \"~/components/basics/EpImg.vue\";\nimport { useCreateUid } from \"~/composables/useCreateUid\";\nimport { useRenderText } from \"~/composables/useRenderText\";\nimport { useRouter } from \"vue-router\";\nimport type { EpWordDefProps } from \"~/types/medias/EpWordDef\";\nimport EpAccordeon from \"~/components/interactions/EpAccordeon.vue\";\n\nconst props = withDefaults(defineProps<EpWordDefProps>(), {\n labelInformation: \"Information grammaticale\",\n labelDomain: \"Domaine\",\n labelRelations: \"Relations\",\n labelNoDefinition: \"La definition n'est pas disponible\",\n labelVariations: \"Variation(s)\",\n cols: \"10\",\n collapse: true,\n});\n\nconst sizeGramIngo = computed(() => {\n if (props.content) {\n return props.content.domain || props.variation.length > 0\n ? \"w-1/3\"\n : \"w-full\";\n }\n return \"\";\n});\n\nconst sizeDomain = computed(() => {\n if (props.variation) {\n return props.variation.length > 0 ? \"w-1/4\" : \"w-3/4\";\n }\n return \"\";\n});\n\nconst sizeVariations = computed(() => {\n if (props.content) {\n return props.content.domain ? \"w-2/4\" : \"w-3/4\";\n }\n return \"\";\n});\n\n/*\nconst findRelations = (relations: string[]): { id: number | string, term: string }[] => {\n let _relations = props.glossary.filter((term) => {\n return relations.some((x) => {\n return term.id === x;\n });\n });\n return _relations.map((x) => ({id:x.id, term:x.term}));\n};*/\n\nconst router = useRouter();\nconst goto = (term: string) => {\n if (router.hasRoute(\"glossary\")) {\n router.push({ path: \"/glossary\", query: { word: term } });\n }\n //console.log(router.hasRoute('signages'))\n //\n};\n\nconst id = ref(props.uid || useCreateUid());\n</script>\n\n<template>\n <div class=\"bg-surface-2 dark:bg-surface-2-dark\" :id=\"id\">\n <div v-if=\"term && description\">\n <div v-if=\"collapse\" class=\"h-min border divide-y\">\n <EpAccordeon :title=\"term\" :open=\"false\" :outlined=\"true\">\n <div class=\"flex justify-between\">\n <div :class=\"sizeGramIngo\">\n <p class=\"text-sm font-medium p-2\">\n {{ labelInformation }}\n </p>\n <div class=\"px-2 py-1\" v-if=\"content.gramInfo\">\n {{ content.gramInfo }}\n </div>\n </div>\n <div :class=\"sizeDomain\" v-if=\"content.domain\">\n <p class=\"text-sm font-medium p-2\">\n {{ labelDomain }}\n </p>\n <div class=\"px-2 py-1\">{{ content.domain }}</div>\n </div>\n <div :class=\"sizeVariations\" v-if=\"variation.length > 0\">\n <p class=\"text-sm font-medium p-2\">\n {{ labelVariations }}\n </p>\n <div class=\"px-2 py-1\">\n <span v-for=\"(_variation, i) in variation\" :key=\"`v-${i}`\"\n >{{ _variation\n }}{{ variation.length > i + 1 ? \", \" : \".\" }}</span\n >\n </div>\n </div>\n </div>\n <template v-if=\"!content.image\">\n <div class=\"px-2 py-6\" v-html=\"useRenderText(description)\" />\n </template>\n <template v-else>\n <div class=\"flex flex-row justify-between\">\n <div class=\"px-2 py-6\" v-html=\"useRenderText(description)\" />\n <div class=\"flex w-1/2 justify-center p-2\">\n <EpImg :src=\"content.image\" :cols=\"cols\" />\n </div>\n </div>\n </template>\n\n <div v-if=\"relation.length > 0\">\n <p class=\"text-sm font-medium p-2\">{{ labelRelations }}</p>\n <div class=\"p-2\">\n <template\n v-for=\"(_relation, i) in relation\"\n :key=\"`relation-${i}`\"\n >\n <button\n class=\"p-1 border rounded mr-1\"\n @click=\"goto(_relation.termId)\"\n >\n {{ _relation.term }}\n </button>\n </template>\n </div>\n </div>\n </EpAccordeon>\n </div>\n\n <div v-else class=\"h-min border divide-y\">\n <h2 class=\"text-xl font-semibold p-2\">{{ term }}</h2>\n\n <div class=\"flex justify-between\">\n <div :class=\"sizeGramIngo\">\n <p class=\"text-sm font-medium p-2\">{{ labelInformation }}</p>\n <div class=\"px-2 py-1\" v-if=\"content.gramInfo\">\n {{ content.gramInfo }}\n </div>\n </div>\n\n <div :class=\"sizeDomain\" v-if=\"content.domain\">\n <p class=\"text-sm font-medium p-2\">{{ labelDomain }}</p>\n <div class=\"px-2 py-1\">{{ content.domain }}</div>\n </div>\n\n <div :class=\"sizeVariations\" v-if=\"variation.length > 0\">\n <p class=\"text-sm font-medium p-2\">{{ labelVariations }}</p>\n <div class=\"px-2 py-1\">\n <span v-for=\"(_variation, i) in variation\" :key=\"`v-${i}`\">\n {{ _variation }}{{ variation.length > i + 1 ? \", \" : \".\" }}\n </span>\n </div>\n </div>\n </div>\n\n <template v-if=\"!content.image\">\n <div class=\"px-2 py-6\" v-html=\"useRenderText(description)\" />\n </template>\n <template v-else>\n <div class=\"flex flex-row justify-between\">\n <div class=\"px-2 py-6\" v-html=\"useRenderText(description)\" />\n <div class=\"flex w-1/2 justify-center p-2\">\n <EpImg :src=\"content.image\" :cols=\"cols\" />\n </div>\n </div>\n </template>\n\n <div v-if=\"relation.length > 0\">\n <p class=\"text-sm font-medium p-2\">{{ labelRelations }}</p>\n <div class=\"p-2\">\n <template v-for=\"(_relation, i) in relation\" :key=\"`relation-${i}`\">\n <button\n class=\"p-1 border rounded mr-1\"\n @click=\"goto(_relation.termId)\"\n >\n {{ _relation.term }}\n </button>\n </template>\n </div>\n </div>\n </div>\n </div>\n\n <div v-else>{{ labelNoDefinition }}</div>\n </div>\n</template>\n"],"names":["_createElementBlock","term","description","collapse","_openBlock","_createVNode","EpAccordeon","_createElementVNode","_toDisplayString","labelInformation","content","labelDomain","variation","labelVariations","_Fragment","_renderList","_unref","EpImg","cols","relation","labelRelations","labelNoDefinition"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EpWordDef.vue.js","sources":["../../../src/components/medias/EpWordDef.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from \"vue\";\nimport EpImg from \"~/components/basics/EpImg.vue\";\nimport { useCreateUid } from \"~/composables/useCreateUid\";\nimport { useRenderText } from \"~/composables/useRenderText\";\nimport { useRouter } from \"vue-router\";\nimport type { EpWordDefProps } from \"~/types/medias/EpWordDef\";\nimport EpAccordeon from \"~/components/interactions/EpAccordeon.vue\";\n\nconst props = withDefaults(defineProps<EpWordDefProps>(), {\n labelInformation: \"Information grammaticale\",\n labelDomain: \"Domaine\",\n labelRelations: \"Relations\",\n labelNoDefinition: \"La definition n'est pas disponible\",\n labelVariations: \"Variation(s)\",\n cols: \"10\",\n collapse: true,\n});\n\nconst sizeGramIngo = computed(() => {\n if (props.content) {\n return props.content.domain || props.variation.length > 0\n ? \"w-1/3\"\n : \"w-full\";\n }\n return \"\";\n});\n\nconst sizeDomain = computed(() => {\n if (props.variation) {\n return props.variation.length > 0 ? \"w-1/4\" : \"w-3/4\";\n }\n return \"\";\n});\n\nconst sizeVariations = computed(() => {\n if (props.content) {\n return props.content.domain ? \"w-2/4\" : \"w-3/4\";\n }\n return \"\";\n});\n\n/*\nconst findRelations = (relations: string[]): { id: number | string, term: string }[] => {\n let _relations = props.glossary.filter((term) => {\n return relations.some((x) => {\n return term.id === x;\n });\n });\n return _relations.map((x) => ({id:x.id, term:x.term}));\n};*/\n\nconst router = useRouter();\nconst goto = (term: string) => {\n if (router.hasRoute(\"glossary\")) {\n router.push({ path: \"/glossary\", query: { word: term } });\n }\n //console.log(router.hasRoute('signages'))\n //\n};\n\nconst id = ref(props.uid || useCreateUid());\n</script>\n\n<template>\n <div :id=\"id\">\n <div v-if=\"term && description\">\n <div v-if=\"collapse\" class=\"h-min divide-y\">\n <EpAccordeon :title=\"term\" :open=\"false\" :outlined=\"true\">\n <div class=\"flex justify-between\">\n <div :class=\"sizeGramIngo\">\n <p class=\"text-sm font-medium p-2\">\n {{ labelInformation }}\n </p>\n <div class=\"px-2 py-1\" v-if=\"content.gramInfo\">\n {{ content.gramInfo }}\n </div>\n </div>\n <div :class=\"sizeDomain\" v-if=\"content.domain\">\n <p class=\"text-sm font-medium p-2\">\n {{ labelDomain }}\n </p>\n <div class=\"px-2 py-1\">{{ content.domain }}</div>\n </div>\n <div :class=\"sizeVariations\" v-if=\"variation.length > 0\">\n <p class=\"text-sm font-medium p-2\">\n {{ labelVariations }}\n </p>\n <div class=\"px-2 py-1\">\n <span v-for=\"(_variation, i) in variation\" :key=\"`v-${i}`\"\n >{{ _variation\n }}{{ variation.length > i + 1 ? \", \" : \".\" }}</span\n >\n </div>\n </div>\n </div>\n <template v-if=\"!content.image\">\n <div class=\"px-2 py-6\" v-html=\"useRenderText(description)\" />\n </template>\n <template v-else>\n <div class=\"flex flex-row justify-between\">\n <div class=\"px-2 py-6\" v-html=\"useRenderText(description)\" />\n <div class=\"flex w-1/2 justify-center p-2\">\n <EpImg :src=\"content.image\" :cols=\"cols\" />\n </div>\n </div>\n </template>\n\n <div v-if=\"relation.length > 0\">\n <p class=\"text-sm font-medium p-2\">{{ labelRelations }}</p>\n <div class=\"p-2\">\n <template\n v-for=\"(_relation, i) in relation\"\n :key=\"`relation-${i}`\"\n >\n <button\n class=\"p-1 border rounded mr-1\"\n @click=\"goto(_relation.termId)\"\n >\n {{ _relation.term }}\n </button>\n </template>\n </div>\n </div>\n </EpAccordeon>\n </div>\n\n <div v-else class=\"h-min border divide-y bg-surface-2 dark:bg-surface-2-dark rounded\">\n <h2 class=\"text-xl font-semibold p-2\">{{ term }}</h2>\n\n <div class=\"flex justify-between\">\n <div :class=\"sizeGramIngo\">\n <p class=\"text-sm font-medium p-2\">{{ labelInformation }}</p>\n <div class=\"px-2 py-1\" v-if=\"content.gramInfo\">\n {{ content.gramInfo }}\n </div>\n </div>\n\n <div :class=\"sizeDomain\" v-if=\"content.domain\">\n <p class=\"text-sm font-medium p-2\">{{ labelDomain }}</p>\n <div class=\"px-2 py-1\">{{ content.domain }}</div>\n </div>\n\n <div :class=\"sizeVariations\" v-if=\"variation.length > 0\">\n <p class=\"text-sm font-medium p-2\">{{ labelVariations }}</p>\n <div class=\"px-2 py-1\">\n <span v-for=\"(_variation, i) in variation\" :key=\"`v-${i}`\">\n {{ _variation }}{{ variation.length > i + 1 ? \", \" : \".\" }}\n </span>\n </div>\n </div>\n </div>\n\n <template v-if=\"!content.image\">\n <div class=\"px-2 py-6\" v-html=\"useRenderText(description)\" />\n </template>\n <template v-else>\n <div class=\"flex flex-row justify-between\">\n <div class=\"px-2 py-6\" v-html=\"useRenderText(description)\" />\n <div class=\"flex w-1/2 justify-center p-2\">\n <EpImg :src=\"content.image\" :cols=\"cols\" />\n </div>\n </div>\n </template>\n\n <div v-if=\"relation.length > 0\">\n <p class=\"text-sm font-medium p-2\">{{ labelRelations }}</p>\n <div class=\"p-2\">\n <template v-for=\"(_relation, i) in relation\" :key=\"`relation-${i}`\">\n <button\n class=\"p-1 border rounded mr-1\"\n @click=\"goto(_relation.termId)\"\n >\n {{ _relation.term }}\n </button>\n </template>\n </div>\n </div>\n </div>\n </div>\n\n <div v-else>{{ labelNoDefinition }}</div>\n </div>\n</template>\n"],"names":["_createElementBlock","term","description","collapse","_openBlock","_createVNode","EpAccordeon","_createElementVNode","_toDisplayString","labelInformation","content","labelDomain","variation","labelVariations","_Fragment","_renderList","_unref","EpImg","cols","relation","labelRelations","labelNoDefinition"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EpQuote.vue.js","sources":["../../../src/components/signages/EpQuote.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { toRefs, computed } from \"vue\";\nimport EpCard from \"~/components/basics/EpCard.vue\";\nimport EpDivider from \"~/components/basics/EpDivider.vue\";\nimport EpIcon from \"~/components/basics/EpIcon.vue\";\nimport { mdiFormatQuoteOpen } from \"@mdi/js\";\nimport type { EpQuoteProps } from \"~/types/signages/EpQuote\";\n\nconst props = withDefaults(defineProps<EpQuoteProps>(), {\n author: null,\n img: null,\n card: false,\n hideIcon: false,\n});\n\nconst colorText = computed(() => {\n if (props.card) {\n return `text-white`;\n }\n});\n\nconst styleTextAutor = computed(() => {\n if (props.card) {\n return `text-white`;\n }\n return
|
|
1
|
+
{"version":3,"file":"EpQuote.vue.js","sources":["../../../src/components/signages/EpQuote.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { toRefs, computed } from \"vue\";\nimport EpCard from \"~/components/basics/EpCard.vue\";\nimport EpDivider from \"~/components/basics/EpDivider.vue\";\nimport EpIcon from \"~/components/basics/EpIcon.vue\";\nimport { mdiFormatQuoteOpen } from \"@mdi/js\";\nimport type { EpQuoteProps } from \"~/types/signages/EpQuote\";\n\nconst props = withDefaults(defineProps<EpQuoteProps>(), {\n author: null,\n img: null,\n card: false,\n hideIcon: false,\n});\n\nconst colorText = computed(() => {\n if (props.card) {\n return `text-white`;\n }\n});\n\nconst styleTextAutor = computed(() => {\n if (props.card) {\n return `text-white`;\n }\n return ``;\n});\n\nconst imageStyle = computed(() => {\n if (props.card) {\n return `md:rounded-lg`;\n }\n return `md:rounded-l-md`;\n});\n\nconst { author, img, card, hideIcon } = toRefs(props);\n</script>\n\n<template>\n <div :class=\"card ? 'w-4/6 mx-auto' : ''\">\n <EpCard\n :density=\"card ? 'default' : 'compact'\"\n :outlined=\"!card ? true : false\"\n :bgcolor=\"card ? 'primary' : 'neutral'\"\n >\n <div :class=\"`md:flex md:flex-wrap rounded-md`\">\n <div class=\"w-1/5 mr-6\" v-if=\"img\">\n <img\n :class=\"`${imageStyle} md:w-full md:h-full md:object-cover md:rounded-l-md`\"\n :src=\"img\"\n alt=\"Image of quote\"\n />\n </div>\n <div\n class=\"flex items-center justify-center px-7\"\n v-else-if=\"!hideIcon\"\n >\n <div :class=\"card ? 'text-white' : ' dark:text-white'\">\n <EpIcon :size=\"60\" :icon-path=\"mdiFormatQuoteOpen\" />\n </div>\n </div>\n <div :class=\"`py-6 flex-1 ${colorText} ${hideIcon ? 'px-6' : 'pr-2'}`\">\n <slot />\n <template v-if=\"author\">\n <EpDivider\n size=\"border\"\n :color=\"card ? 'white' : 'neutral'\"\n ></EpDivider>\n <p :class=\"`italic ${styleTextAutor}`\">\n {{ author }}\n </p>\n </template>\n </div>\n </div>\n </EpCard>\n </div>\n</template>\n"],"names":["_createElementBlock","_unref","_createVNode","EpCard","_createElementVNode","_openBlock","EpIcon","_normalizeClass","_renderSlot","_Fragment","EpDivider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,UAAM,QAAQ;AAOd,UAAM,YAAY,SAAS,MAAM;AAC/B,UAAI,MAAM,MAAM;AACd,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AAED,UAAM,iBAAiB,SAAS,MAAM;AACpC,UAAI,MAAM,MAAM;AACd,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT,CAAC;AAED,UAAM,aAAa,SAAS,MAAM;AAChC,UAAI,MAAM,MAAM;AACd,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT,CAAC;AAED,UAAM,EAAE,QAAQ,KAAK,MAAM,SAAA,IAAa,OAAO,KAAK;;0BAIlDA,mBAoCM,OAAA;AAAA,QApCA,sBAAOC,MAAA,IAAA,IAAI,kBAAA,EAAA;AAAA,MAAA;QACfC,YAkCSC,aAAA;AAAA,UAjCN,SAASF,MAAA,IAAA,IAAI,YAAA;AAAA,UACb,WAAWA,MAAA,IAAA,IAAI,OAAA;AAAA,UACf,SAASA,MAAA,IAAA,IAAI,YAAA;AAAA,QAAA;2BAEd,MA4BM;AAAA,YA5BNG,mBA4BM,OA5BN,YA4BM;AAAA,cA3B0BH,MAAA,GAAA,KAA9BI,aAAAL,mBAMM,OANN,YAMM;AAAA,gBALJI,mBAIE,OAAA;AAAA,kBAHC,yBAAU,WAAA,KAAU,sDAAA;AAAA,kBACpB,KAAKH,MAAA,GAAA;AAAA,kBACN,KAAI;AAAA,gBAAA;qBAKMA,MAAA,QAAA,KAFdI,UAAA,GAAAL,mBAOM,OAPN,YAOM;AAAA,gBAHJI,mBAEM,OAAA;AAAA,kBAFA,sBAAOH,MAAA,IAAA,IAAI,eAAA,kBAAA;AAAA,gBAAA;kBACfC,YAAqDI,aAAA;AAAA,oBAA5C,MAAM;AAAA,oBAAK,aAAWL,MAAA,kBAAA;AAAA,kBAAA;;;cAGnCG,mBAWM,OAAA;AAAA,gBAXA,OAAKG,eAAA,eAAiB,UAAA,KAAS,IAAIN,MAAA,QAAA,IAAQ,SAAA,MAAA,EAAA;AAAA,cAAA;gBAC/CO,WAAQ,KAAA,QAAA,SAAA;AAAA,gBACQP,MAAA,MAAA,kBAAhBD,mBAQWS,UAAA,EAAA,KAAA,KAAA;AAAA,kBAPTP,YAGaQ,aAAA;AAAA,oBAFX,MAAK;AAAA,oBACJ,OAAOT,MAAA,IAAA,IAAI,UAAA;AAAA,kBAAA;kBAEdG,mBAEI,KAAA;AAAA,oBAFA,gCAAiB,eAAA,KAAc,EAAA;AAAA,kBAAA,mBAC9BH,MAAA,MAAA,CAAM,GAAA,CAAA;AAAA,gBAAA;;;;;;;;;;"}
|
|
@@ -1,4 +1,55 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { defineComponent, createElementBlock, openBlock, createStaticVNode, createElementVNode, normalizeClass } from "vue";
|
|
2
|
+
const _hoisted_1 = {
|
|
3
|
+
version: "1.1",
|
|
4
|
+
id: "Layer_1",
|
|
5
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
6
|
+
"xmlns:xlink": "http://www.w3.org/1999/xlink",
|
|
7
|
+
x: "0px",
|
|
8
|
+
y: "0px",
|
|
9
|
+
viewBox: "0 0 640 360",
|
|
10
|
+
style: { "enable-background": "new 0 0 640 360" },
|
|
11
|
+
"xml:space": "preserve"
|
|
12
|
+
};
|
|
13
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
14
|
+
__name: "BgAudio",
|
|
15
|
+
props: {
|
|
16
|
+
fill: { default: "fill-primary" }
|
|
17
|
+
},
|
|
18
|
+
setup(__props) {
|
|
19
|
+
const props = __props;
|
|
20
|
+
return (_ctx, _cache) => {
|
|
21
|
+
return openBlock(), createElementBlock("svg", _hoisted_1, [
|
|
22
|
+
_cache[1] || (_cache[1] = createStaticVNode('<pattern y="-20" width="150" height="100" patternUnits="userSpaceOnUse" id="New_Pattern" viewBox="8 -107.8 150 100" style="overflow:visible;"><g><rect x="8" y="-107.8" style="fill:none;" width="150" height="100"></rect><g style="opacity:0.1;"><path d="M159.8-15.5c3.5,0.8,6.2,4,6.2,7.8s-2.7,7-6.2,7.8v-1.8c2.6-0.8,4.4-3.1,4.4-5.9s-1.9-5.2-4.4-5.9V-15.5 M162-7.8\n c0,1.6-0.9,2.9-2.2,3.5v-7.1C161.1-10.7,162-9.3,162-7.8 M153.5-10.4l4.4-4.4v14.2l-4.4-4.4H150v-5.3H153.5z"></path></g><g style="opacity:0.1;"><path d="M9.8-15.5c3.5,0.8,6.2,4,6.2,7.8s-2.7,7-6.2,7.8v-1.8c2.6-0.8,4.4-3.1,4.4-5.9s-1.9-5.2-4.4-5.9V-15.5 M12-7.8\n c0,1.6-0.9,2.9-2.2,3.5v-7.1C11.1-10.7,12-9.3,12-7.8 M3.5-10.4L8-14.8v14.2L3.5-5.1H0v-5.3H3.5z"></path></g><g style="opacity:0.1;"><path d="M159.8-115.5c3.5,0.8,6.2,4,6.2,7.8s-2.7,7-6.2,7.8v-1.8c2.6-0.8,4.4-3.1,4.4-5.9s-1.9-5.2-4.4-5.9V-115.5 M162-107.8\n c0,1.6-0.9,2.9-2.2,3.5v-7.1C161.1-110.7,162-109.3,162-107.8 M153.5-110.4l4.4-4.4v14.2l-4.4-4.4H150v-5.3H153.5z"></path></g><g style="opacity:0.1;"><path d="M84.8-65.5c3.5,0.8,6.2,4,6.2,7.8s-2.7,7-6.2,7.8v-1.8c2.6-0.8,4.4-3.1,4.4-5.9c0-2.8-1.9-5.2-4.4-5.9V-65.5 M87-57.8\n c0,1.6-0.9,2.9-2.2,3.5v-7.1C86.1-60.7,87-59.3,87-57.8 M78.5-60.4l4.4-4.4v14.2l-4.4-4.4H75v-5.3H78.5z"></path></g><g style="opacity:0.1;"><path d="M9.8-115.5c3.5,0.8,6.2,4,6.2,7.8s-2.7,7-6.2,7.8v-1.8c2.6-0.8,4.4-3.1,4.4-5.9s-1.9-5.2-4.4-5.9V-115.5 M12-107.8\n c0,1.6-0.9,2.9-2.2,3.5v-7.1C11.1-110.7,12-109.3,12-107.8 M3.5-110.4l4.4-4.4v14.2l-4.4-4.4H0v-5.3H3.5z"></path></g></g></pattern>', 1)),
|
|
23
|
+
createElementVNode("g", null, [
|
|
24
|
+
createElementVNode("rect", {
|
|
25
|
+
class: normalizeClass(props.fill),
|
|
26
|
+
width: "640",
|
|
27
|
+
height: "360"
|
|
28
|
+
}, null, 2),
|
|
29
|
+
_cache[0] || (_cache[0] = createElementVNode("path", {
|
|
30
|
+
style: { "fill": "url(#New_Pattern)" },
|
|
31
|
+
d: "M639,1v358H1V1H639 M640,0H0v360h640V0L640,0z"
|
|
32
|
+
}, null, -1))
|
|
33
|
+
]),
|
|
34
|
+
_cache[2] || (_cache[2] = createElementVNode("g", null, [
|
|
35
|
+
createElementVNode("rect", {
|
|
36
|
+
x: "0.5",
|
|
37
|
+
y: "0.5",
|
|
38
|
+
style: { "fill": "url(#New_Pattern)" },
|
|
39
|
+
width: "639",
|
|
40
|
+
height: "359"
|
|
41
|
+
})
|
|
42
|
+
], -1)),
|
|
43
|
+
_cache[3] || (_cache[3] = createElementVNode("g", null, [
|
|
44
|
+
createElementVNode("path", {
|
|
45
|
+
style: { "fill": "white" },
|
|
46
|
+
d: "M310.7,114.7c-31,4.4-53.2,32.4-53.2,63.7v46.8c0,11.5,9.3,20.8,20.8,20.8h20.8v-55.6h-27.8v-12\n c0-24.9,17.9-47.1,42.5-50.1c29.6-3.6,54.7,19.4,54.7,48.3v13.9h-27.8V246h20.8c11.5,0,20.8-9.3,20.8-20.8v-48.6\n C382.5,138.7,349.4,109.1,310.7,114.7z"
|
|
47
|
+
})
|
|
48
|
+
], -1))
|
|
49
|
+
]);
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
});
|
|
2
53
|
export {
|
|
3
54
|
_sfc_main as default
|
|
4
55
|
};
|