ep-lib-ts 1.0.63 → 1.0.65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/basics/EpAvatar.vue.js +1 -54
- package/dist/components/basics/EpAvatar.vue.js.map +1 -1
- package/dist/components/basics/EpAvatar.vue2.js +54 -1
- package/dist/components/basics/EpAvatar.vue2.js.map +1 -1
- package/dist/components/basics/EpBadge.vue2.js +1 -10
- package/dist/components/basics/EpBadge.vue2.js.map +1 -1
- package/dist/components/basics/EpCard.vue.js +29 -41
- package/dist/components/basics/EpCard.vue.js.map +1 -1
- package/dist/components/basics/EpDivider.vue.js +2 -3
- package/dist/components/basics/EpDivider.vue.js.map +1 -1
- package/dist/components/basics/EpFlex.vue.js.map +1 -1
- package/dist/components/basics/EpHoverCard.vue.js +13 -31
- package/dist/components/basics/EpHoverCard.vue.js.map +1 -1
- package/dist/components/basics/EpImg.vue.js +5 -3
- package/dist/components/basics/EpImg.vue.js.map +1 -1
- package/dist/components/basics/EpListItem.vue.js +1 -1
- package/dist/components/basics/EpListItem.vue.js.map +1 -1
- package/dist/components/basics/EpSpinner.vue.js +1 -2
- package/dist/components/basics/EpSpinner.vue.js.map +1 -1
- package/dist/components/basics/EpStackedList.vue.js +3 -3
- package/dist/components/basics/EpStackedList.vue.js.map +1 -1
- package/dist/components/basics/EpTable.vue.js +4 -4
- package/dist/components/basics/EpTable.vue.js.map +1 -1
- package/dist/components/basics/EpText.vue.js +4 -3
- package/dist/components/basics/EpText.vue.js.map +1 -1
- package/dist/components/educationals/EpBranchingScenario.vue.js +1 -1
- package/dist/components/educationals/EpBranchingScenario.vue2.js +1 -1
- package/dist/components/educationals/EpBranchingScenario.vue2.js.map +1 -1
- package/dist/components/educationals/EpEdu.vue.js +10 -6
- package/dist/components/educationals/EpEdu.vue.js.map +1 -1
- package/dist/components/educationals/EpObjective.vue.js +3 -3
- package/dist/components/educationals/EpObjective.vue.js.map +1 -1
- package/dist/components/educationals/EpReading.vue.js +36 -28
- package/dist/components/educationals/EpReading.vue.js.map +1 -1
- package/dist/components/educationals/EpResource.vue.js +1 -1
- package/dist/components/educationals/EpResource.vue.js.map +1 -1
- package/dist/components/educationals/EpSpecificObjective.vue.js +7 -8
- package/dist/components/educationals/EpSpecificObjective.vue.js.map +1 -1
- package/dist/components/forms/EpRadioSummative.vue2.js +1 -1
- package/dist/components/forms/EpRadioSummative.vue2.js.map +1 -1
- package/dist/components/interactions/EpAccordeon.vue.js +1 -1
- package/dist/components/interactions/EpAccordeon.vue2.js +4 -7
- package/dist/components/interactions/EpAccordeon.vue2.js.map +1 -1
- package/dist/components/interactions/EpContentSlider.vue.js +7 -8
- package/dist/components/interactions/EpContentSlider.vue.js.map +1 -1
- package/dist/components/interactions/EpModal.vue.js +3 -3
- package/dist/components/interactions/EpModal.vue.js.map +1 -1
- package/dist/components/interactions/EpQuestion.vue.js +1 -1
- package/dist/components/interactions/EpQuestion.vue.js.map +1 -1
- package/dist/components/interactions/EpSummativeTable.vue.js +2 -2
- package/dist/components/interactions/EpSummativeTable.vue.js.map +1 -1
- package/dist/components/interactions/EpTooltip.vue.js.map +1 -1
- package/dist/components/interactions/{EpTooltip.vue3.js → EpTooltip.vue2.js} +1 -2
- package/dist/components/interactions/EpTooltip.vue2.js.map +1 -0
- package/dist/components/medias/EpAudio.vue.js +1 -2
- package/dist/components/medias/EpAudio.vue.js.map +1 -1
- package/dist/components/medias/EpCarousel.vue.js +197 -5
- package/dist/components/medias/EpCarousel.vue.js.map +1 -1
- package/dist/components/medias/EpCarousel.vue2.js +1 -196
- package/dist/components/medias/EpCarousel.vue2.js.map +1 -1
- package/dist/components/medias/EpHierarchy.vue.js +1 -1
- package/dist/components/medias/EpHierarchy.vue2.js +7 -7
- package/dist/components/medias/EpHierarchy.vue2.js.map +1 -1
- package/dist/components/medias/EpLink.vue.js +1 -5
- package/dist/components/medias/EpLink.vue.js.map +1 -1
- package/dist/components/medias/EpSensibleImage.vue.js +1 -1
- package/dist/components/medias/EpSensibleImage.vue2.js +2 -2
- package/dist/components/medias/EpSensibleImage.vue2.js.map +1 -1
- package/dist/components/medias/EpSoftware.vue.js +1 -1
- package/dist/components/medias/EpSoftware.vue.js.map +1 -1
- package/dist/components/medias/EpTerm.vue.js +4 -4
- package/dist/components/medias/EpTerm.vue.js.map +1 -1
- package/dist/components/medias/EpTimeLine.vue.js +5 -98
- package/dist/components/medias/EpTimeLine.vue.js.map +1 -1
- package/dist/components/medias/EpTimeLine.vue2.js +101 -0
- package/dist/components/medias/EpTimeLine.vue2.js.map +1 -0
- package/dist/components/medias/EpWordDef.vue.js +6 -6
- package/dist/components/medias/EpWordDef.vue.js.map +1 -1
- package/dist/components/signages/EpAlert.vue.js +1 -1
- package/dist/components/signages/EpAlert.vue2.js +1 -1
- package/dist/components/signages/EpAlert.vue2.js.map +1 -1
- package/dist/components/signages/EpHeader.vue.js +6 -6
- package/dist/components/signages/EpHeader.vue.js.map +1 -1
- package/dist/components/signages/EpQuote.vue.js +4 -4
- package/dist/components/signages/EpQuote.vue.js.map +1 -1
- package/dist/components/signages/EpSkeleton.vue.js +5 -40
- package/dist/components/signages/EpSkeleton.vue.js.map +1 -1
- package/dist/components/signages/EpSkeleton.vue2.js +43 -0
- package/dist/components/signages/EpSkeleton.vue2.js.map +1 -0
- package/dist/components/tools/Details.vue2.js +2 -3
- package/dist/components/tools/Details.vue2.js.map +1 -1
- package/dist/components/tools/DisplayBox.vue.js +5 -40
- package/dist/components/tools/DisplayBox.vue.js.map +1 -1
- package/dist/components/tools/DisplayBox.vue2.js +43 -0
- package/dist/components/tools/DisplayBox.vue2.js.map +1 -0
- package/dist/components/tools/TextMedia.vue2.js +2 -2
- package/dist/components/tools/TextMedia.vue2.js.map +1 -1
- package/dist/components/tools/TimelineItem.vue.js +1 -1
- package/dist/components/tools/TimelineItem.vue2.js +1 -1
- package/dist/components/tools/TimelineItem.vue2.js.map +1 -1
- package/dist/components/tools/TwoColsMedia.vue2.js +2 -2
- package/dist/components/tools/TwoColsMedia.vue2.js.map +1 -1
- package/dist/composables/useIcons.js +1 -1
- package/dist/composables/useIcons.js.map +1 -1
- package/dist/entry/interactions/EpTooltip.js +0 -1
- package/dist/entry/interactions/EpTooltip.js.map +1 -1
- package/dist/entry/medias/EpCarousel.js +2 -2
- package/dist/entry/medias/EpCarousel.js.map +1 -1
- package/dist/entry/medias/EpTimeLine.js +2 -3
- package/dist/entry/medias/EpTimeLine.js.map +1 -1
- package/dist/entry/signages/EpSkeleton.js +2 -3
- package/dist/entry/signages/EpSkeleton.js.map +1 -1
- package/dist/index.js +171 -173
- package/dist/index.js.map +1 -1
- package/dist/styles.css +655 -0
- package/dist/types/Accordeon.d.ts +1 -5
- package/dist/types/Accordeon.js +21 -25
- package/dist/types/Accordeon.js.map +1 -1
- package/dist/types/Alert.d.ts +2 -2
- package/dist/types/Alert.js +34 -34
- package/dist/types/Alert.js.map +1 -1
- package/dist/types/Btn.d.ts +0 -5
- package/dist/types/Btn.js +21 -26
- package/dist/types/Btn.js.map +1 -1
- package/dist/types/Chip.d.ts +0 -4
- package/dist/types/Chip.js +14 -18
- package/dist/types/Chip.js.map +1 -1
- package/dist/types/Colors.d.ts +1 -0
- package/dist/types/Hover.d.ts +1 -1
- package/dist/types/Medias.d.ts +0 -1
- package/dist/types/Medias.js +0 -1
- package/dist/types/Medias.js.map +1 -1
- package/dist/types/Radio.d.ts +0 -1
- package/dist/types/Radio.js +0 -1
- package/dist/types/Radio.js.map +1 -1
- package/dist/types/StackedList.d.ts +1 -1
- package/dist/types/StackedList.js.map +1 -1
- package/dist/types/Switch.d.ts +0 -1
- package/dist/types/Switch.js +0 -1
- package/dist/types/Switch.js.map +1 -1
- package/dist/types/basics/EpAvatar.d.ts +2 -10
- package/dist/types/basics/EpBadge.d.ts +2 -1
- package/dist/types/basics/EpCard.d.ts +3 -1
- package/dist/types/educationals/EpEdu.d.ts +1 -0
- package/dist/types/signages/EpBadge.d.ts +0 -1
- package/package.json +14 -17
- package/dist/components/interactions/EpTooltip.vue3.js.map +0 -1
- package/dist/components/medias/EpTimeLine.vue3.js +0 -6
- package/dist/components/medias/EpTimeLine.vue3.js.map +0 -1
- package/dist/components/signages/EpSkeleton.vue3.js +0 -6
- package/dist/components/signages/EpSkeleton.vue3.js.map +0 -1
- package/dist/components/tools/DisplayBox.vue3.js +0 -6
- package/dist/components/tools/DisplayBox.vue3.js.map +0 -1
- package/dist/composables/useColors.js +0 -135
- package/dist/composables/useColors.js.map +0 -1
- package/dist/style.css +0 -5212
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EpReading.vue.js","sources":["../../../src/components/educationals/EpReading.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { toRefs, computed } from \"vue\";\nimport EpIcon from \"~/components//basics/EpIcon.vue\";\nimport EpBtn from \"~/components//basics/EpBtn.vue\";\nimport DisplayBox from \"~/components//tools/DisplayBox.vue\";\nimport EpEdu from \"~/components/educationals/EpEdu.vue\";\nimport { useRenderText } from \"~/composables/useRenderText\";\nimport { mdiBookmarkBox } from \"@mdi/js\";\nimport { mdiBookOpenVariant } from \"@mdi/js\";\nimport { mdiBookOpenPageVariant } from \"@mdi/js\";\nimport { mdiOpenInNew } from \"@mdi/js\";\nimport type { EpReadingProps } from \"~/types/educationals/EpReading\";\n\nconst props = withDefaults(defineProps<EpReadingProps>(), {\n title: null,\n cover: \"\",\n icon: \"mdiBookmarkBox\",\n hideCover: false,\n compact: false,\n type: \"neutral\",\n hideIcon: false,\n labelIn: \"dans\",\n labelRead: \"Lire\",\n labelClose: \"Fermer\",\n labelDetails: \"détails\",\n labelCard: \"Lecture\",\n labelIntentions: \"Intentions de lecture\",\n});\n\nconst old_image =\n \"https://live.staticflickr.com/4868/45940268562_c5f7fdd06b_q.jpg\";\nconst bad_image =\n \"https://farm5.staticflickr.com/4868/45940268562_9452f09a61_o.png\";\n\nconst hasCover = computed(() => {\n if (\n props.cover === old_image ||\n props.cover.trim().length === 0 ||\n props.cover === bad_image\n ) {\n return false;\n }\n return true;\n});\n\nconst hasDetails = computed(() => {\n if (props.author || props.editor || props.container || props.year) {\n return true;\n }\n return false;\n});\n\nconst {\n title,\n intentions,\n cover,\n hideCover,\n year,\n author,\n container,\n editor,\n pages,\n type,\n mandateLevel,\n url,\n labelIn,\n labelRead,\n labelClose,\n labelDetails,\n labelCard,\n labelIntentions,\n} = toRefs(props);\n\nconst errorImg = (event: Event) => {\n const imgElement = event.target as HTMLImageElement;\n if (imgElement.src) {\n imgElement.src =\n \"https://live.staticflickr.com/4868/45940268562_c5f7fdd06b_q.jpg\";\n }\n};\n</script>\n\n<template>\n <div\n class=\"flex shadow-sm rounded-lg overflow-hidden bg-white dark:bg-dark md:flex-row\"\n v-if=\"!compact\"\n >\n <template v-if=\"!hideCover\">\n <div\n v-if=\"hasCover\"\n class=\"h-96 mr-2 w-full rounded-t-lg md:h-auto md:w-56 md:rounded-none md:rounded-l-lg flex justify-center items-center text-gray-300\"\n >\n <img\n :src=\"cover\"\n :alt=\"`image de la lecture ${title}`\"\n @error=\"errorImg\"\n />\n </div>\n\n <div\n v-else\n class=\"h-96 w-full rounded-t-lg md:h-auto md:w-56 md:rounded-none md:rounded-l-lg flex justify-center items-center text-gray-300 dark:bg-dark\"\n >\n <EpIcon :icon-path=\"mdiBookOpenPageVariant\" size=\"95\" />\n </div>\n </template>\n <div class=\"flex py-3 flex-col w-full\">\n <EpEdu\n :title=\"labelCard\"\n :labelIntentions=\"labelIntentions\"\n :icon=\"mdiBookOpenVariant\"\n flat\n :type=\"type\"\n :hideIcon=\"hideIcon\"\n :mandateLevel=\"mandateLevel\"\n >\n <template #intentions v-if=\"intentions\">\n <div v-html=\"useRenderText(intentions)\" />\n </template>\n <template #content>\n <div class=\"w-full\">\n <h4\n :class=\"`text-xl font-semibold ${\n hasDetails || pages ? 'border-b' : ''\n }`\"\n >\n {{ title }}\n </h4>\n <div class=\"flex\">\n <div class=\"flex-1 py-2\" v-if=\"hasDetails\">\n <p class=\"font-medium\">\n <span class=\"font-bold mr-1\" v-if=\"author\">{{ author }}</span>\n <span v-if=\"year\">({{ year }})</span>\n <span v-if=\"year && editor\">, </span>\n <span v-if=\"editor\">{{ editor }}</span>\n </p>\n <p v-if=\"container\">\n <span class=\"text-sm italic pr-1\">{{ labelIn }}</span>\n <span class=\"\">{{ container }}</span>\n </p>\n </div>\n <div\n :class=\"`flex-1 pt-2 pb-2 ${hasDetails ? 'border-l pl-2' : ''}`\"\n v-if=\"pages\"\n >\n <EpIcon :size=\"24\" :icon-path=\"mdiBookmarkBox\" />\n <span class=\"pl-2 align-middle\">{{ pages }}</span>\n </div>\n </div>\n </div>\n </template>\n <template #actions>\n <EpBtn text :href=\"url\" v-if=\"url\" type=\"primary\">\n <EpIcon :size=\"20\" :icon-path=\"mdiOpenInNew\" /> {{ labelRead }}\n </EpBtn>\n </template>\n </EpEdu>\n </div>\n </div>\n <!--compact mode-->\n <EpEdu\n :title=\"labelCard\"\n :labelIntentions=\"labelIntentions\"\n :icon=\"mdiBookOpenVariant\"\n flat\n :type=\"type\"\n :hideIcon=\"hideIcon\"\n v-else\n >\n <template #intentions v-if=\"intentions\">\n <div v-html=\"useRenderText(intentions)\" />\n </template>\n <template #content>\n <div class=\"flex flex-row justify-between\">\n <div class=\"p-5\">\n <span class=\"text-lg leading-6 font-semibold font-sans\">{{\n title\n }}</span>\n </div>\n <div class=\"flex\">\n <div class=\"p-5\">\n <DisplayBox>\n <template #default=\"{ open }\">\n <EpBtn text @click.stop=\"open\" type=\"primary\">\n {{ labelDetails }}\n </EpBtn>\n </template>\n <template #menu=\"{ close }\">\n <div class=\"w-[32rem]\">\n <div\n class=\"flex flex-col rounded-lg bg-white dark:bg-dark dark:border-r md:flex-row\"\n >\n <template v-if=\"!hideCover\">\n <img\n v-if=\"hasCover\"\n class=\"object-cover h-96 w-full rounded-t-lg md:h-auto md:w-56 md:rounded-none md:rounded-l-lg\"\n :src=\"cover\"\n :alt=\"`image de la lecture ${title}`\"\n @error=\"errorImg\"\n />\n <div\n v-else\n class=\"h-96 border-l border-t border-b w-full rounded-t-lg md:h-auto md:w-56 md:rounded-none md:rounded-l-lg flex justify-center items-center text-gray-300\"\n >\n <EpIcon :icon-path=\"mdiBookOpenPageVariant\" size=\"95\" />\n </div>\n </template>\n <div class=\"flex flex-col justify-between w-full\">\n <div\n class=\"text-left px-5 py-2 bg-gray-100 text-black dark:rounded-tr-lg\"\n >\n <EpIcon :size=\"24\" :icon-path=\"mdiBookOpenVariant\" />\n <span class=\"pl-2 align-middle\">{{ labelCard }}</span>\n </div>\n <div class=\"w-full px-5\">\n <h4\n :class=\"`text-xl font-semibold py-4 ${\n hasDetails || pages ? 'border-b' : ''\n }`\"\n >\n {{ title }}\n </h4>\n <div class=\"flex\">\n <div class=\"flex-1 py-2\" v-if=\"hasDetails\">\n <p class=\"font-medium\">\n <span class=\"font-bold mr-2\" v-if=\"author\">{{\n author\n }}</span>\n <span v-if=\"year\"> ({{ year }})</span>\n <span v-if=\"year && editor\">, </span>\n <span v-if=\"editor\">{{ editor }}</span>\n </p>\n <p v-if=\"container\">\n <span class=\"text-sm italic pr-1\">{{\n labelIn\n }}</span>\n <span>{{ container }}</span>\n </p>\n </div>\n <div\n :class=\"`flex-1 pt-2 pb-2 ${\n hasDetails ? 'border-l pl-2' : ''\n }`\"\n v-if=\"pages\"\n >\n <EpIcon :size=\"24\" :icon-path=\"mdiBookmarkBox\" />\n <span class=\"pl-2 align-middle\">{{ pages }}</span>\n </div>\n </div>\n </div>\n <div\n class=\"bg-gray-100 dark:bg-transparent dark:border-b dark:rounded-br text-right pr-5\"\n >\n <EpBtn text @click.stop=\"close\" type=\"error\">\n {{ labelClose }}\n </EpBtn>\n </div>\n </div>\n </div>\n </div>\n </template>\n </DisplayBox>\n </div>\n\n <div class=\"border-l p-5\">\n <EpBtn text :href=\"url\" v-if=\"url\" type=\"primary\">\n <EpIcon :size=\"20\" :icon-path=\"mdiOpenInNew\" /> {{ labelRead }}\n </EpBtn>\n </div>\n </div>\n </div>\n </template>\n </EpEdu>\n</template>\n"],"names":["compact","_openBlock","_createElementBlock","_unref","_Fragment","_createElementVNode","_createVNode","EpIcon","EpEdu","hideIcon","_normalizeClass","_toDisplayString","_createBlock","EpBtn","_createTextVNode","DisplayBox","_withCtx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EpReading.vue.js","sources":["../../../src/components/educationals/EpReading.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, toRefs, computed } from \"vue\";\nimport EpIcon from \"~/components//basics/EpIcon.vue\";\nimport EpBtn from \"~/components//basics/EpBtn.vue\";\nimport DisplayBox from \"~/components/tools/DisplayBox.vue\";\nimport EpModal from \"~/components/interactions/EpModal.vue\";\nimport EpEdu from \"~/components/educationals/EpEdu.vue\";\nimport { useRenderText } from \"~/composables/useRenderText\";\nimport { mdiBookmarkBox } from \"@mdi/js\";\nimport { mdiBookOpenVariant } from \"@mdi/js\";\nimport { mdiBookOpenPageVariant } from \"@mdi/js\";\nimport { mdiOpenInNew } from \"@mdi/js\";\nimport type { EpReadingProps } from \"~/types/educationals/EpReading\";\n\nconst props = withDefaults(defineProps<EpReadingProps>(), {\n title: null,\n cover: \"\",\n icon: \"mdiBookmarkBox\",\n hideCover: false,\n compact: false,\n type: \"neutral\",\n hideIcon: false,\n labelIn: \"dans\",\n labelRead: \"Lire\",\n labelClose: \"Fermer\",\n labelDetails: \"détails\",\n labelCard: \"Lecture\",\n labelIntentions: \"Intentions de lecture\",\n});\n\nconst old_image =\n \"https://live.staticflickr.com/4868/45940268562_c5f7fdd06b_q.jpg\";\nconst bad_image =\n \"https://farm5.staticflickr.com/4868/45940268562_9452f09a61_o.png\";\n\nconst modalCompact = ref(false)\n\nconst hasCover = computed(() => {\n if (\n props.cover === old_image ||\n props.cover.trim().length === 0 ||\n props.cover === bad_image\n ) {\n return false;\n }\n return true;\n});\n\nconst hasDetails = computed(() => {\n if (props.author || props.editor || props.container || props.year) {\n return true;\n }\n return false;\n});\n\nconst {\n title,\n intentions,\n cover,\n hideCover,\n year,\n author,\n container,\n editor,\n pages,\n type,\n mandateLevel,\n url,\n labelIn,\n labelRead,\n labelClose,\n labelDetails,\n labelCard,\n labelIntentions,\n} = toRefs(props);\n\nconst errorImg = (event: Event) => {\n const imgElement = event.target as HTMLImageElement;\n if (imgElement.src) {\n imgElement.src =\n \"https://live.staticflickr.com/4868/45940268562_c5f7fdd06b_q.jpg\";\n }\n};\n</script>\n\n<template>\n <div\n class=\"flex shadow-sm rounded-lg overflow-hidden ep-surface-2 md:flex-row\"\n v-if=\"!compact\"\n >\n <template v-if=\"!hideCover\">\n <div\n v-if=\"hasCover\"\n class=\"h-96 mr-2 w-full rounded-t-lg md:h-auto md:w-56 md:rounded-none md:rounded-l-lg flex justify-center items-center text-gray-300\"\n >\n <img\n :src=\"cover\"\n :alt=\"`image de la lecture ${title}`\"\n @error=\"errorImg\"\n />\n </div>\n\n <div\n v-else\n class=\"h-96 w-full rounded-t-lg md:h-auto md:w-56 md:rounded-none md:rounded-l-lg flex justify-center items-center text-gray-300 dark:bg-dark\"\n >\n <EpIcon :icon-path=\"mdiBookOpenPageVariant\" size=\"95\" />\n </div>\n </template>\n <div class=\"flex py-3 flex-col w-full\">\n <EpEdu\n :title=\"labelCard\"\n :labelIntentions=\"labelIntentions\"\n :icon=\"mdiBookOpenVariant\"\n flat\n :type=\"type\"\n :hideIcon=\"hideIcon\"\n :mandateLevel=\"mandateLevel\"\n card\n >\n <template #intentions v-if=\"intentions\">\n <div v-html=\"useRenderText(intentions)\" />\n </template>\n <template #content>\n <div class=\"w-full\">\n <h4\n :class=\"`text-xl font-semibold ${\n hasDetails || pages ? 'border-b' : ''\n }`\"\n >\n {{ title }}\n </h4>\n <div class=\"flex\">\n <div class=\"flex-1 py-2\" v-if=\"hasDetails\">\n <p class=\"font-medium\">\n <span class=\"font-bold mr-1\" v-if=\"author\">{{ author }}</span>\n <span v-if=\"year\">({{ year }})</span>\n <span v-if=\"year && editor\">, </span>\n <span v-if=\"editor\">{{ editor }}</span>\n </p>\n <p v-if=\"container\">\n <span class=\"text-sm italic pr-1\">{{ labelIn }}</span>\n <span class=\"\">{{ container }}</span>\n </p>\n </div>\n <div\n :class=\"`flex-1 pt-2 pb-2 ${hasDetails ? 'border-l pl-2' : ''}`\"\n v-if=\"pages\"\n >\n <EpIcon :size=\"24\" :icon-path=\"mdiBookmarkBox\" />\n <span class=\"pl-2 align-middle\">{{ pages }}</span>\n </div>\n </div>\n </div>\n </template>\n <template #actions>\n <EpBtn rounded text :href=\"url\" v-if=\"url\" type=\"primary\">\n <EpIcon :size=\"20\" :icon-path=\"mdiOpenInNew\" /> {{ labelRead }}\n </EpBtn>\n </template>\n </EpEdu>\n </div>\n </div>\n <!--compact mode-->\n <EpEdu\n :title=\"labelCard\"\n :labelIntentions=\"labelIntentions\"\n :icon=\"mdiBookOpenVariant\"\n flat\n :type=\"type\"\n :hideIcon=\"hideIcon\"\n v-else\n >\n <template #intentions v-if=\"intentions\">\n <div v-html=\"useRenderText(intentions)\" />\n </template>\n <template #content>\n <div class=\"flex flex-row justify-between\">\n <div class=\"p-5\">\n <span class=\"text-lg leading-6 font-semibold font-sans\">{{\n title\n }}</span>\n </div>\n <div class=\"flex\">\n <div class=\"p-5\">\n <EpBtn rounded text @click.stop=\"modalCompact = true\" type=\"primary\">\n {{ labelDetails }}\n </EpBtn>\n <EpModal v-model=\"modalCompact\" size=\"compact\">\n <div class=\"w-full\">\n <div\n class=\"flex flex-col md:flex-row\"\n >\n <template v-if=\"!hideCover\">\n <img\n v-if=\"hasCover\"\n class=\"object-cover h-96 w-full rounded-t-lg md:h-auto md:w-56 md:rounded-none md:rounded-l-lg\"\n :src=\"cover\"\n :alt=\"`image de la lecture ${title}`\"\n @error=\"errorImg\"\n />\n <div\n v-else\n class=\"h-96 w-full rounded-t-lg md:h-auto md:w-56 md:rounded-none md:rounded-l-lg flex justify-center items-center\"\n >\n <EpIcon :icon-path=\"mdiBookOpenPageVariant\" size=\"95\" />\n </div>\n </template>\n <div class=\"flex flex-col justify-between w-full\">\n <div\n class=\"text-left px-5 py-2\"\n >\n <EpIcon :size=\"24\" :icon-path=\"mdiBookOpenVariant\" />\n <span class=\"pl-2 align-middle\">{{ labelCard }}</span>\n </div>\n <div class=\"w-full px-5\">\n <h4\n :class=\"`text-xl font-semibold py-4 ${\n hasDetails || pages ? 'border-b' : ''\n }`\"\n >\n {{ title }}\n </h4>\n <div class=\"flex\">\n <div class=\"flex-1 py-2\" v-if=\"hasDetails\">\n <p class=\"font-medium\">\n <span class=\"font-bold mr-2\" v-if=\"author\">{{\n author\n }}</span>\n <span v-if=\"year\"> ({{ year }})</span>\n <span v-if=\"year && editor\">, </span>\n <span v-if=\"editor\">{{ editor }}</span>\n </p>\n <p v-if=\"container\">\n <span class=\"text-sm italic pr-1\">{{\n labelIn\n }}</span>\n <span>{{ container }}</span>\n </p>\n </div>\n <div\n :class=\"`flex-1 pt-2 pb-2 ${\n hasDetails ? 'border-l pl-2' : ''\n }`\"\n v-if=\"pages\"\n >\n <EpIcon :size=\"24\" :icon-path=\"mdiBookmarkBox\" />\n <span class=\"pl-2 align-middle\">{{ pages }}</span>\n </div>\n </div>\n </div>\n <div\n class=\"text-right pr-5\"\n >\n <EpBtn rounded size=\"small\" @click.stop=\"modalCompact = false\" type=\"error\">\n {{ labelClose }}\n </EpBtn>\n </div>\n </div>\n </div>\n </div>\n \n </EpModal>\n </div>\n\n <div class=\"border-l p-5\">\n <EpBtn rounded text :href=\"url\" v-if=\"url\" type=\"primary\">\n <EpIcon :size=\"20\" :icon-path=\"mdiOpenInNew\" /> {{ labelRead }}\n </EpBtn>\n </div>\n </div>\n </div>\n </template>\n </EpEdu>\n</template>\n"],"names":["compact","_openBlock","_createElementBlock","_unref","_Fragment","_createElementVNode","_createVNode","EpIcon","EpEdu","hideIcon","_normalizeClass","_toDisplayString","_createBlock","EpBtn","_createTextVNode","EpModal"],"mappings":"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"}
|
|
@@ -43,7 +43,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
43
43
|
return defineAsyncComponent(() => import("./EpReading.vue2.js"));
|
|
44
44
|
}
|
|
45
45
|
return defineAsyncComponent(
|
|
46
|
-
() => __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "../basics/EpAvatar.vue": () => import("../basics/EpAvatar.
|
|
46
|
+
() => __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"), "./EpBranchingScenario.vue": () => import("./EpBranchingScenario.vue.js"), "./EpCodeblock.vue": () => import("./EpCodeblock.vue3.js"), "./EpConclusion.vue": () => import("./EpConclusion.vue2.js"), "./EpDescription.vue": () => import("./EpDescription.vue2.js"), "./EpDocument.vue": () => import("./EpDocument.vue2.js"), "./EpEdu.vue": () => import("./EpEdu.vue2.js"), "./EpInstructions.vue": () => import("./EpInstructions.vue2.js"), "./EpIntroduction.vue": () => import("./EpIntroduction.vue2.js"), "./EpObjective.vue": () => import("./EpObjective.vue2.js"), "./EpReading.vue": () => import("./EpReading.vue2.js"), "./EpResource.vue": () => import("./EpResource.vue2.js"), "./EpScope.vue": () => import("./EpScope.vue2.js"), "./EpSpecificObjective.vue": () => import("./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"), "../interactions/Ep360Image.vue": () => import("../interactions/Ep360Image.vue.js"), "../interactions/Ep360Video.vue": () => import("../interactions/Ep360Video.vue.js"), "../interactions/EpAccordeon.vue": () => import("../interactions/EpAccordeon.vue.js"), "../interactions/EpContentSlider.vue": () => import("../interactions/EpContentSlider.vue2.js"), "../interactions/EpDarkMode.vue": () => import("../interactions/EpDarkMode.vue2.js"), "../interactions/EpDraggable.vue": () => import("../interactions/EpDraggable.vue2.js"), "../interactions/EpHotSpot.vue": () => import("../interactions/EpHotSpot.vue2.js"), "../interactions/EpModal.vue": () => import("../interactions/EpModal.vue3.js"), "../interactions/EpQuestion.vue": () => import("../interactions/EpQuestion.vue2.js"), "../interactions/EpSummativeTable.vue": () => import("../interactions/EpSummativeTable.vue2.js"), "../interactions/EpSvgShow.vue": () => import("../interactions/EpSvgShow.vue2.js"), "../interactions/EpTabs.vue": () => import("../interactions/EpTabs.vue.js"), "../interactions/EpTooltip.vue": () => import("../interactions/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.vue.js"), "../tools/Details.vue": () => import("../tools/Details.vue.js"), "../tools/DisplayBox.vue": () => import("../tools/DisplayBox.vue.js"), "../tools/SvgFilter.vue": () => import("../tools/SvgFilter.vue.js"), "../tools/TextMedia.vue": () => import("../tools/TextMedia.vue.js"), "../tools/TimelineItem.vue": () => import("../tools/TimelineItem.vue.js"), "../tools/TwoColsMedia.vue": () => import("../tools/TwoColsMedia.vue.js") }), `../${componentToLoad.path}/${componentToLoad.name}.vue`, 3)
|
|
47
47
|
);
|
|
48
48
|
};
|
|
49
49
|
const typeRess = computed(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EpResource.vue.js","sources":["../../../src/components/educationals/EpResource.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { defineAsyncComponent, computed, toRefs } from \"vue\";\nimport { useComponent } from \"~/composables/useComponent\";\nimport type { EpResourceProps } from \"~/types/educationals/EpResource\";\n\nconst { type = \"neutral\", resource, pages } = defineProps<EpResourceProps>();\n\nconst resourceInfo = computed(() => {\n if (!resource.hasOwnProperty(\"content\")) {\n return \"EpNothing\";\n }\n //console.log(resource)\n const typeRess = Object.keys(resource.content)[0];\n const ress = Object.assign({}, resource.content[typeRess]);\n\n ress.pages = pages;\n ress.type = typeRess;\n ress.intentions = pages;\n if (typeRess === \"clip\") {\n ress.src = ress.url;\n }\n if (typeRess === \"website\") {\n ress.href = ress.url;\n ress.label = ress.title;\n }\n if (typeRess === \"book\" && pages) {\n //ress.intentions = pages\n ress.pages = null;\n }\n if (ress.version_link) {\n ress.url = ress.version_link.url;\n }\n\n return ress;\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 if (componentToLoad.name === \"EpReading\") {\n return defineAsyncComponent(() => import(`./EpReading.vue`));\n }\n return defineAsyncComponent(\n () => import(`../${componentToLoad.path}/${componentToLoad.name}.vue`)\n );\n};\n\nconst typeRess = computed(() => {\n if (resourceInfo.value.type && resourceInfo.value.type === \"website\") {\n if (type === \"base\") {\n return \"primary\";\n }\n }\n return type;\n});\n</script>\n\n<template>\n <component\n :is=\"getCompontent(resourceInfo.type)\"\n v-bind=\"{ ...resourceInfo }\"\n :mandateLevel=\"mandateLevel\"\n :intentions=\"pages\"\n :type=\"typeRess\"\n ></component>\n</template>\n"],"names":["typeRess","_createBlock","_resolveDynamicComponent","_mergeProps","mandateLevel","pages"],"mappings":";;;;;;;;;;;;AAOA,UAAM,eAAe,SAAS,MAAM;AAClC,UAAI,CAAC,QAAA,SAAS,eAAe,SAAS,GAAG;AACvC,eAAO;AAAA,MACT;AAEA,YAAMA,YAAW,OAAO,KAAK,QAAA,SAAS,OAAO,EAAE,CAAC;AAChD,YAAM,OAAO,OAAO,OAAO,CAAA,GAAI,iBAAS,QAAQA,SAAQ,CAAC;AAEzD,WAAK,QAAQ,QAAA;AACb,WAAK,OAAOA;AACZ,WAAK,aAAa,QAAA;AAClB,UAAIA,cAAa,QAAQ;AACvB,aAAK,MAAM,KAAK;AAAA,MAClB;AACA,UAAIA,cAAa,WAAW;AAC1B,aAAK,OAAO,KAAK;AACjB,aAAK,QAAQ,KAAK;AAAA,MACpB;AACA,UAAIA,cAAa,UAAU,QAAA,OAAO;AAEhC,aAAK,QAAQ;AAAA,MACf;AACA,UAAI,KAAK,cAAc;AACrB,aAAK,MAAM,KAAK,aAAa;AAAA,MAC/B;AAEA,aAAO;AAAA,IACT,CAAC;AAGD,UAAM,gBAAgB,CAAC,SAA6B;AAClD,YAAM,kBAAkB,aAAa,IAAI;AAEzC,UAAI,gBAAgB,SAAS,aAAa;AACxC,eAAO,qBAAqB,MAAM,OAAO,8BAA2B,CAAC;AAAA,MACvE;AACA,UAAI,gBAAgB,SAAS,aAAa;AACxC,eAAO,qBAAqB,MAAM,OAAO,qBAAiB,CAAC;AAAA,MAC7D;AACA,aAAO;AAAA,QACL,MAAM,qCAAA,uBAAA,OAAA,EAAA,0BAAA,MAAA,OAAA,
|
|
1
|
+
{"version":3,"file":"EpResource.vue.js","sources":["../../../src/components/educationals/EpResource.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { defineAsyncComponent, computed, toRefs } from \"vue\";\nimport { useComponent } from \"~/composables/useComponent\";\nimport type { EpResourceProps } from \"~/types/educationals/EpResource\";\n\nconst { type = \"neutral\", resource, pages } = defineProps<EpResourceProps>();\n\nconst resourceInfo = computed(() => {\n if (!resource.hasOwnProperty(\"content\")) {\n return \"EpNothing\";\n }\n //console.log(resource)\n const typeRess = Object.keys(resource.content)[0];\n const ress = Object.assign({}, resource.content[typeRess]);\n\n ress.pages = pages;\n ress.type = typeRess;\n ress.intentions = pages;\n if (typeRess === \"clip\") {\n ress.src = ress.url;\n }\n if (typeRess === \"website\") {\n ress.href = ress.url;\n ress.label = ress.title;\n }\n if (typeRess === \"book\" && pages) {\n //ress.intentions = pages\n ress.pages = null;\n }\n if (ress.version_link) {\n ress.url = ress.version_link.url;\n }\n\n return ress;\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 if (componentToLoad.name === \"EpReading\") {\n return defineAsyncComponent(() => import(`./EpReading.vue`));\n }\n return defineAsyncComponent(\n () => import(`../${componentToLoad.path}/${componentToLoad.name}.vue`)\n );\n};\n\nconst typeRess = computed(() => {\n if (resourceInfo.value.type && resourceInfo.value.type === \"website\") {\n if (type === \"base\") {\n return \"primary\";\n }\n }\n return type;\n});\n</script>\n\n<template>\n <component\n :is=\"getCompontent(resourceInfo.type)\"\n v-bind=\"{ ...resourceInfo }\"\n :mandateLevel=\"mandateLevel\"\n :intentions=\"pages\"\n :type=\"typeRess\"\n ></component>\n</template>\n"],"names":["typeRess","_createBlock","_resolveDynamicComponent","_mergeProps","mandateLevel","pages"],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { defineComponent, computed, createElementBlock, openBlock, normalizeClass, createElementVNode, createCommentVNode, toDisplayString } from "vue";
|
|
2
|
-
const _hoisted_1 = { class: "flex flex-
|
|
2
|
+
const _hoisted_1 = { class: "flex flex-col lg:flex-row lg:items-center gap-y-2 lg:gap-x-4" };
|
|
3
3
|
const _hoisted_2 = {
|
|
4
4
|
key: 0,
|
|
5
|
-
class: "flex-none self-center"
|
|
5
|
+
class: "flex-none self-start lg:self-center"
|
|
6
6
|
};
|
|
7
|
-
const _hoisted_3 = { class: "inline-flex items-center rounded-md px-2 py-1 text-xs font-medium
|
|
7
|
+
const _hoisted_3 = { class: "inline-flex items-center rounded-md px-2 py-1 text-xs font-medium ring-1 ring-inset ring-primary-600/20" };
|
|
8
8
|
const _hoisted_4 = { class: "flex-auto" };
|
|
9
|
+
const _hoisted_5 = { class: "mt-1" };
|
|
9
10
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
10
11
|
__name: "EpSpecificObjective",
|
|
11
12
|
props: {
|
|
@@ -18,21 +19,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
18
19
|
setup(__props) {
|
|
19
20
|
const styles = computed(() => {
|
|
20
21
|
const tabStyle = __props.tab ? `border-l-8 ${__props.color} ` : "";
|
|
21
|
-
const bgStyle = __props.bg ? "
|
|
22
|
+
const bgStyle = __props.bg ? "ep-surface-2" : "";
|
|
22
23
|
return `${tabStyle} ${bgStyle}`;
|
|
23
24
|
});
|
|
24
25
|
return (_ctx, _cache) => {
|
|
25
26
|
return openBlock(), createElementBlock("div", {
|
|
26
|
-
class: normalizeClass(`${styles.value} rounded-lg p-4 ml-10 border border-t-gray-100 border-r-gray-100 border-b-gray-100`)
|
|
27
|
+
class: normalizeClass(`${styles.value} rounded-lg p-4 lg:ml-10 ml-0 border border-t-gray-100 border-r-gray-100 border-b-gray-100`)
|
|
27
28
|
}, [
|
|
28
29
|
createElementVNode("div", _hoisted_1, [
|
|
29
30
|
_ctx.label ? (openBlock(), createElementBlock("div", _hoisted_2, [
|
|
30
31
|
createElementVNode("div", _hoisted_3, toDisplayString(_ctx.label), 1)
|
|
31
32
|
])) : createCommentVNode("", true),
|
|
32
33
|
createElementVNode("div", _hoisted_4, [
|
|
33
|
-
createElementVNode("dd",
|
|
34
|
-
class: normalizeClass(`mt-1 text-base font-base text-gray-900 ${_ctx.bg ? "dark:text-dark" : "dark:text-gray-300"}`)
|
|
35
|
-
}, toDisplayString(_ctx.content), 3)
|
|
34
|
+
createElementVNode("dd", _hoisted_5, toDisplayString(_ctx.content), 1)
|
|
36
35
|
])
|
|
37
36
|
])
|
|
38
37
|
], 2);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EpSpecificObjective.vue.js","sources":["../../../src/components/educationals/EpSpecificObjective.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport type { EpSpecificObjectiveProps } from \"~/types/educationals/EpSpecificObjective\";\n\nconst {\n color = \"border-gray-200\",\n tab = false,\n bg,\n} = defineProps<EpSpecificObjectiveProps>();\n\nconst styles = computed(() => {\n const tabStyle = tab ? `border-l-8 ${color} ` : \"\";\n const bgStyle = bg ? \"
|
|
1
|
+
{"version":3,"file":"EpSpecificObjective.vue.js","sources":["../../../src/components/educationals/EpSpecificObjective.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport type { EpSpecificObjectiveProps } from \"~/types/educationals/EpSpecificObjective\";\n\nconst {\n color = \"border-gray-200\",\n tab = false,\n bg,\n} = defineProps<EpSpecificObjectiveProps>();\n\nconst styles = computed(() => {\n const tabStyle = tab ? `border-l-8 ${color} ` : \"\";\n const bgStyle = bg ? \"ep-surface-2\" : \"\";\n return `${tabStyle} ${bgStyle}`;\n});\n</script>\n\n<template>\n <div\n :class=\"`${styles} rounded-lg p-4 lg:ml-10 ml-0 border border-t-gray-100 border-r-gray-100 border-b-gray-100`\"\n >\n <!-- mobile: column (stacked). lg and up: row (two columns) -->\n <div class=\"flex flex-col lg:flex-row lg:items-center gap-y-2 lg:gap-x-4\">\n <div v-if=\"label\" class=\"flex-none self-start lg:self-center\">\n <div\n class=\"inline-flex items-center rounded-md px-2 py-1 text-xs font-medium ring-1 ring-inset ring-primary-600/20\"\n >\n {{ label }}\n </div>\n </div>\n\n <div class=\"flex-auto\">\n <dd class=\"mt-1\">\n {{ content }}\n </dd>\n </div>\n </div>\n </div>\n</template>\n"],"names":["_createElementBlock","_createElementVNode","label","_openBlock","_toDisplayString","content"],"mappings":";;;;;;;;;;;;;;;;;;;AAUA,UAAM,SAAS,SAAS,MAAM;AAC5B,YAAM,WAAW,QAAA,MAAM,cAAc,QAAA,KAAK,MAAM;AAChD,YAAM,UAAU,QAAA,KAAK,iBAAiB;AACtC,aAAO,GAAG,QAAQ,IAAI,OAAO;AAAA,IAC/B,CAAC;;0BAICA,mBAmBM,OAAA;AAAA,QAlBH,yBAAU,OAAA,KAAM,4FAAA;AAAA,MAAA;QAGjBC,mBAcM,OAdN,YAcM;AAAA,UAbOC,KAAAA,SAAXC,UAAA,GAAAH,mBAMM,OANN,YAMM;AAAA,YALJC,mBAIM,OAJN,YAIMG,gBADDF,KAAAA,KAAK,GAAA,CAAA;AAAA,UAAA;UAIZD,mBAIM,OAJN,YAIM;AAAA,YAHJA,mBAEK,MAFL,YAEKG,gBADAC,KAAAA,OAAO,GAAA,CAAA;AAAA,UAAA;;;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent, computed, toRefs, createElementBlock, openBlock, createElementVNode, unref, toDisplayString } from "vue";
|
|
2
|
-
const _hoisted_1 = { class: "cursor-pointer
|
|
2
|
+
const _hoisted_1 = { class: "cursor-pointer flex items-center rounded-md py-3 px-3 text-xs font-semibold uppercase sm:flex-1 hover:bg-base" };
|
|
3
3
|
const _hoisted_2 = ["id", "name", "disabled", "readonly", "value", "checked"];
|
|
4
4
|
const _hoisted_3 = { class: "ml-2" };
|
|
5
5
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EpRadioSummative.vue2.js","sources":["../../../src/components/forms/EpRadioSummative.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { toRefs, computed } from \"vue\";\nimport type { EpRadioSummativeProps } from \"~/types/forms/EpRadioSummative\";\n\nconst props = withDefaults(defineProps<EpRadioSummativeProps>(), {\n id: \"01\",\n disabled: false,\n readonly: false,\n checked: false,\n type: \"base\",\n value: undefined,\n modelValue: null,\n});\n\nconst isChecked = computed(() => {\n return props.modelValue === props.value;\n});\n\nconst { label, disabled, readonly, value, id } = toRefs(props);\n\nconst emit = defineEmits<{\n (e: \"update:modelValue\", modelValue: number): void;\n}>();\n\nconst onChange = (event: Event) => {\n const target = event.target as HTMLInputElement;\n const value = +target.value || 0;\n emit(\"update:modelValue\", value);\n};\n</script>\n\n<template>\n <label\n class=\"cursor-pointer
|
|
1
|
+
{"version":3,"file":"EpRadioSummative.vue2.js","sources":["../../../src/components/forms/EpRadioSummative.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { toRefs, computed } from \"vue\";\nimport type { EpRadioSummativeProps } from \"~/types/forms/EpRadioSummative\";\n\nconst props = withDefaults(defineProps<EpRadioSummativeProps>(), {\n id: \"01\",\n disabled: false,\n readonly: false,\n checked: false,\n type: \"base\",\n value: undefined,\n modelValue: null,\n});\n\nconst isChecked = computed(() => {\n return props.modelValue === props.value;\n});\n\nconst { label, disabled, readonly, value, id } = toRefs(props);\n\nconst emit = defineEmits<{\n (e: \"update:modelValue\", modelValue: number): void;\n}>();\n\nconst onChange = (event: Event) => {\n const target = event.target as HTMLInputElement;\n const value = +target.value || 0;\n emit(\"update:modelValue\", value);\n};\n</script>\n\n<template>\n <label\n class=\"cursor-pointer flex items-center rounded-md py-3 px-3 text-xs font-semibold uppercase sm:flex-1 hover:bg-base\"\n >\n <input\n type=\"radio\"\n :id=\"id\"\n :name=\"id\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :value=\"value\"\n :checked=\"isChecked\"\n @change=\"onChange\"\n class=\"rounded bg-base-dark border-gray-300 focus:border-transparent focus:bg-base text-primary focus:ring-1 focus:ring-offset-2 focus:ring-primary\"\n />\n <span class=\"ml-2\">{{ label }}</span>\n </label>\n</template>\n"],"names":["value","_openBlock","_createElementBlock","_createElementVNode","_unref","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;AAIA,UAAM,QAAQ;AAUd,UAAM,YAAY,SAAS,MAAM;AAC/B,aAAO,MAAM,eAAe,MAAM;AAAA,IACpC,CAAC;AAED,UAAM,EAAE,OAAO,UAAU,UAAU,OAAO,GAAA,IAAO,OAAO,KAAK;AAE7D,UAAM,OAAO;AAIb,UAAM,WAAW,CAAC,UAAiB;AACjC,YAAM,SAAS,MAAM;AACrB,YAAMA,SAAQ,CAAC,OAAO,SAAS;AAC/B,WAAK,qBAAqBA,MAAK;AAAA,IACjC;;AAIE,aAAAC,UAAA,GAAAC,mBAeQ,SAfR,YAeQ;AAAA,QAZNC,mBAUE,SAAA;AAAA,UATA,MAAK;AAAA,UACJ,IAAIC,MAAA,EAAA;AAAA,UACJ,MAAMA,MAAA,EAAA;AAAA,UACN,UAAUA,MAAA,QAAA;AAAA,UACV,UAAUA,MAAA,QAAA;AAAA,UACV,OAAOA,MAAA,KAAA;AAAA,UACP,SAAS,UAAA;AAAA,UACT;AAAA,UACD,OAAM;AAAA,QAAA;QAERD,mBAAqC,QAArC,YAAqCE,gBAAfD,MAAA,KAAA,CAAK,GAAA,CAAA;AAAA,MAAA;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _sfc_main from "./EpAccordeon.vue2.js";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import _export_sfc from "../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
-
const Comp = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
4
|
+
const Comp = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-e4ec841e"]]);
|
|
5
5
|
export {
|
|
6
6
|
Comp as default
|
|
7
7
|
};
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { defineComponent, ref, computed, onMounted, toRefs, createElementBlock, openBlock, createElementVNode, normalizeClass, unref, createBlock, createCommentVNode, createTextVNode, toDisplayString, renderSlot } from "vue";
|
|
2
2
|
import _sfc_main$1 from "../basics/EpIcon.vue.js";
|
|
3
|
-
import useColors from "../../composables/useColors.js";
|
|
4
3
|
import { typeAccordeon } from "../../types/Accordeon.js";
|
|
5
4
|
const _hoisted_1 = { class: "py-3" };
|
|
6
5
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
7
6
|
__name: "EpAccordeon",
|
|
8
7
|
props: {
|
|
9
|
-
type: { default: "
|
|
8
|
+
type: { default: "neutral" },
|
|
10
9
|
icon: {},
|
|
11
10
|
open: { type: Boolean, default: false },
|
|
12
11
|
outlined: { type: Boolean, default: false },
|
|
@@ -28,10 +27,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
28
27
|
return `flex justify-between items-center px-4 ${props.small ? "py-1" : "py-2"} cursor-pointer ${(_a = typeAccordeon[props.type]) == null ? void 0 : _a[isOutlined.value]}`;
|
|
29
28
|
});
|
|
30
29
|
const contentStyles = computed(() => {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
props.type + "light"
|
|
34
|
-
)} dark:bg-dark dark:${useColors("border", props.type + "dark")} ${showDiv.value ? "" : "dark:border-0"}`;
|
|
30
|
+
const colorBorder = `ep-border-${props.type.toLocaleLowerCase()}`;
|
|
31
|
+
return `px-4 ep-surface-2 border border-t-0 ${showDiv.value ? colorBorder : "border-0"}`;
|
|
35
32
|
});
|
|
36
33
|
onMounted(() => {
|
|
37
34
|
var content = collapsible.value;
|
|
@@ -87,7 +84,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
87
84
|
createElementVNode("div", {
|
|
88
85
|
ref_key: "collapsible",
|
|
89
86
|
ref: collapsible,
|
|
90
|
-
class: normalizeClass(`${contentStyles.value} content`)
|
|
87
|
+
class: normalizeClass(`${contentStyles.value} ep-accordeon-content`)
|
|
91
88
|
}, [
|
|
92
89
|
createElementVNode("div", _hoisted_1, [
|
|
93
90
|
renderSlot(_ctx.$slots, "default", {}, void 0, true)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EpAccordeon.vue2.js","sources":["../../../src/components/interactions/EpAccordeon.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, toRefs, onMounted, computed } from \"vue\";\nimport EpIcon from \"~/components/basics/EpIcon.vue\";\nimport
|
|
1
|
+
{"version":3,"file":"EpAccordeon.vue2.js","sources":["../../../src/components/interactions/EpAccordeon.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, toRefs, onMounted, computed } from \"vue\";\nimport EpIcon from \"~/components/basics/EpIcon.vue\";\nimport { typeAccordeon } from \"~/types/Accordeon\";\nimport type { EpAccordeonProps } from \"~/types/interactions/EpAccordeon\";\n\nconst props = withDefaults(defineProps<EpAccordeonProps>(), {\n open: false,\n type: \"neutral\",\n outlined: false,\n title: \"En savoir plus\",\n});\n\nconst showDiv = ref(props.open);\nconst collapsible = ref();\n\nconst isOutlined = computed(() => {\n if (props.outlined) {\n return \"outlined\";\n }\n return \"default\";\n});\n\nconst stylesHeader = computed(() => {\n return `flex justify-between items-center px-4 ${\n props.small ? \"py-1\" : \"py-2\"\n } cursor-pointer ${typeAccordeon[props.type]?.[isOutlined.value]}`;\n});\n\nconst contentStyles = computed(() => {\n const colorBorder = `ep-border-${props.type.toLocaleLowerCase()}`\n return `px-4 ep-surface-2 border border-t-0 ${\n showDiv.value ? colorBorder : \"border-0\"\n }`;\n});\n\nonMounted(() => {\n var content = collapsible.value;\n if (props.open) {\n content.style.maxHeight = content.scrollHeight + \"px\";\n }\n});\n\nfunction toggleDivVisibility() {\n showDiv.value = !showDiv.value;\n var content = collapsible.value;\n if (content.style.maxHeight) {\n content.style.maxHeight = null;\n } else {\n content.style.maxHeight = content.scrollHeight + \"px\";\n }\n //add transition\n if (!content.style.transition) {\n content.style.transition = \"max-height 0.2s ease-out\";\n }\n}\n\nconst { title, icon, small } = toRefs(props);\n</script>\n\n<template>\n <div>\n <div :class=\"stylesHeader\" @click=\"toggleDivVisibility\">\n <h3 :class=\"`${small ? 'text' : 'text-lg'} flex items-center`\">\n <EpIcon\n v-if=\"icon\"\n :icon-path=\"icon\"\n size=\"28\"\n extraClass=\"mr-2\"\n ></EpIcon\n >{{ title }}\n </h3>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"1.5\"\n stroke=\"currentColor\"\n :class=\"`mx-4 my-3 h-6 w-6 transition-all duration-200 ${\n showDiv ? 'rotate-45' : ''\n }`\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M12 6v12m6-6H6\"\n />\n </svg>\n </div>\n <div ref=\"collapsible\" :class=\"`${contentStyles} ep-accordeon-content`\">\n <div class=\"py-3\">\n <slot />\n </div>\n </div>\n </div>\n</template>\n\n<style scoped>\n.ep-accordeon-content {\n max-height: 0;\n overflow: hidden;\n}\n</style>\n"],"names":["_createElementBlock","_createElementVNode","_unref","_createBlock","EpIcon","_normalizeClass","_renderSlot"],"mappings":";;;;;;;;;;;;;;;AAMA,UAAM,QAAQ;AAOd,UAAM,UAAU,IAAI,MAAM,IAAI;AAC9B,UAAM,cAAc,IAAA;AAEpB,UAAM,aAAa,SAAS,MAAM;AAChC,UAAI,MAAM,UAAU;AAClB,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT,CAAC;AAED,UAAM,eAAe,SAAS,MAAM;;AAClC,aAAO,0CACL,MAAM,QAAQ,SAAS,MACzB,oBAAmB,mBAAc,MAAM,IAAI,MAAxB,mBAA4B,WAAW,MAAM;AAAA,IAClE,CAAC;AAED,UAAM,gBAAgB,SAAS,MAAM;AACnC,YAAM,cAAc,aAAa,MAAM,KAAK,mBAAmB;AAC/D,aAAO,uCACL,QAAQ,QAAQ,cAAc,UAChC;AAAA,IACF,CAAC;AAED,cAAU,MAAM;AACd,UAAI,UAAU,YAAY;AAC1B,UAAI,MAAM,MAAM;AACd,gBAAQ,MAAM,YAAY,QAAQ,eAAe;AAAA,MACnD;AAAA,IACF,CAAC;AAED,aAAS,sBAAsB;AAC7B,cAAQ,QAAQ,CAAC,QAAQ;AACzB,UAAI,UAAU,YAAY;AAC1B,UAAI,QAAQ,MAAM,WAAW;AAC3B,gBAAQ,MAAM,YAAY;AAAA,MAC5B,OAAO;AACL,gBAAQ,MAAM,YAAY,QAAQ,eAAe;AAAA,MACnD;AAEA,UAAI,CAAC,QAAQ,MAAM,YAAY;AAC7B,gBAAQ,MAAM,aAAa;AAAA,MAC7B;AAAA,IACF;AAEA,UAAM,EAAE,OAAO,MAAM,MAAA,IAAU,OAAO,KAAK;;0BAIzCA,mBAiCM,OAAA,MAAA;AAAA,QAhCJC,mBA0BM,OAAA;AAAA,UA1BA,sBAAO,aAAA,KAAY;AAAA,UAAG,SAAO;AAAA,QAAA;UACjCA,mBAQK,MAAA;AAAA,YARA,yBAAUC,MAAA,KAAA,IAAK,SAAA,SAAA,oBAAA;AAAA,UAAA;YAEVA,MAAA,IAAA,kBADRC,YAMCC,aAAA;AAAA;cAJE,aAAWF,MAAA,IAAA;AAAA,cACZ,MAAK;AAAA,cACL,YAAW;AAAA,YAAA;4CAETA,MAAA,KAAA,CAAK,GAAA,CAAA;AAAA,UAAA;wBAEXF,mBAeM,OAAA;AAAA,YAdJ,OAAM;AAAA,YACN,MAAK;AAAA,YACL,SAAQ;AAAA,YACR,gBAAa;AAAA,YACb,QAAO;AAAA,YACN,OAAKK,eAAA,iDAA8D,QAAA,QAAO,cAAA;;YAI3EJ,mBAIE,QAAA;AAAA,cAHA,kBAAe;AAAA,cACf,mBAAgB;AAAA,cAChB,GAAE;AAAA,YAAA;;;QAIRA,mBAIM,OAAA;AAAA,mBAJG;AAAA,UAAJ,KAAI;AAAA,UAAe,yBAAU,cAAA,KAAa,uBAAA;AAAA,QAAA;UAC7CA,mBAEM,OAFN,YAEM;AAAA,YADJK,WAAQ,KAAA,QAAA,WAAA,CAAA,GAAA,QAAA,IAAA;AAAA,UAAA;;;;;;"}
|
|
@@ -4,11 +4,10 @@ import { useComponent } from "../../composables/useComponent.js";
|
|
|
4
4
|
import { useRenderText } from "../../composables/useRenderText.js";
|
|
5
5
|
import { mdiArrowLeft, mdiArrowRight } from "@mdi/js";
|
|
6
6
|
import _sfc_main$1 from "../basics/EpIcon.vue.js";
|
|
7
|
-
import
|
|
8
|
-
|
|
9
|
-
const _hoisted_1 = { class: "relative h-[600px] flex flex-col p-6 bg-zinc-100 dark:bg-dark w-full overflow-hidden rounded-lg shadow-xl" };
|
|
7
|
+
import Comp from "../signages/EpSkeleton.vue.js";
|
|
8
|
+
const _hoisted_1 = { class: "relative h-[600px] flex flex-col p-6 ep-surface-2 w-full overflow-hidden rounded-lg shadow-xl" };
|
|
10
9
|
const _hoisted_2 = { class: "flex justify-between items-center pb-3 mb-3 border-b-2 border-gray-600 dark:border-gray-300" };
|
|
11
|
-
const _hoisted_3 = { class: "text-2xl font-bold text-primary" };
|
|
10
|
+
const _hoisted_3 = { class: "text-2xl font-bold ep-text-primary" };
|
|
12
11
|
const _hoisted_4 = {
|
|
13
12
|
key: 0,
|
|
14
13
|
class: "flex items-center space-x-3"
|
|
@@ -76,7 +75,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
76
75
|
if (currentSlide.value.component) {
|
|
77
76
|
const componentToLoad = useComponent((_a = currentSlide.value.component) == null ? void 0 : _a.type);
|
|
78
77
|
return defineAsyncComponent(
|
|
79
|
-
() => __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "../basics/EpAvatar.vue": () => import("../basics/EpAvatar.
|
|
78
|
+
() => __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.vue.js"), "../tools/Details.vue": () => import("../tools/Details.vue.js"), "../tools/DisplayBox.vue": () => import("../tools/DisplayBox.vue.js"), "../tools/SvgFilter.vue": () => import("../tools/SvgFilter.vue.js"), "../tools/TextMedia.vue": () => import("../tools/TextMedia.vue.js"), "../tools/TimelineItem.vue": () => import("../tools/TimelineItem.vue.js"), "../tools/TwoColsMedia.vue": () => import("../tools/TwoColsMedia.vue.js") }), `../${componentToLoad.path}/${componentToLoad.name}.vue`, 3)
|
|
80
79
|
);
|
|
81
80
|
}
|
|
82
81
|
return null;
|
|
@@ -116,7 +115,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
116
115
|
onClick: ($event) => goTo(i),
|
|
117
116
|
class: normalizeClass([
|
|
118
117
|
"w-2 h-2 rounded-full cursor-pointer",
|
|
119
|
-
i === currentIndex.value ? "bg-primary" : "bg-
|
|
118
|
+
i === currentIndex.value ? "ep-bg-primary" : "ep-bg-neutral"
|
|
120
119
|
])
|
|
121
120
|
}, null, 10, _hoisted_6);
|
|
122
121
|
}), 128))
|
|
@@ -161,14 +160,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
161
160
|
])
|
|
162
161
|
}, [
|
|
163
162
|
isLoading.value ? (openBlock(), createElementBlock("div", _hoisted_12, [
|
|
164
|
-
createVNode(
|
|
163
|
+
createVNode(Comp, {
|
|
165
164
|
type: "rectangle",
|
|
166
165
|
height: 100,
|
|
167
166
|
width: 100,
|
|
168
167
|
loading: true
|
|
169
168
|
})
|
|
170
169
|
])) : !hasTextContent.value && !currentSlideMediaContent.value ? (openBlock(), createElementBlock("div", _hoisted_13, [
|
|
171
|
-
createVNode(
|
|
170
|
+
createVNode(Comp, {
|
|
172
171
|
class: "p-4",
|
|
173
172
|
type: "rectangle",
|
|
174
173
|
height: 150,
|
|
@@ -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});\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 };\n }\n return props.slides[currentIndex.value];\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 componentToLoad = useComponent(currentSlide.value.component?.type);\n return defineAsyncComponent(\n () => import(`../${componentToLoad.path}/${componentToLoad.name}.vue`)\n );\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 bg-zinc-100 dark:bg-dark 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=\"text-2xl font-bold text-primary\">{{ 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-gray-400',\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 gap-2',\n hasTextContent\n ? props.mediaPosition === 'left'\n ? 'flex-row'\n : 'flex-row-reverse'\n : '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 <!-- 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 <!--condition is img-->\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 ></component>\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 </component>\n <template #fallback>\n {{ loading }}\n </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 ></div>\n </div>\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>\n"],"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});\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 };\n }\n return props.slides[currentIndex.value];\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 componentToLoad = useComponent(currentSlide.value.component?.type);\n return defineAsyncComponent(\n () => import(`../${componentToLoad.path}/${componentToLoad.name}.vue`)\n );\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=\"text-2xl font-bold ep-text-primary\">{{ 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 ? 'ep-bg-primary' : 'ep-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 gap-2',\n hasTextContent\n ? props.mediaPosition === 'left'\n ? 'flex-row'\n : 'flex-row-reverse'\n : '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 <!-- 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 <!--condition is img-->\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 ></component>\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 </component>\n <template #fallback>\n {{ loading }}\n </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 ></div>\n </div>\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>\n"],"names":["_openBlock","_createElementBlock","_createElementVNode","_toDisplayString","_Fragment","_renderList","_normalizeClass","_createVNode","EpIcon","_unref","_Transition","EpSkeleton","_createBlock","_resolveDynamicComponent","_Suspense","loading","_mergeProps","_normalizeStyle"],"mappings":"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"}
|
|
@@ -30,15 +30,15 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
30
30
|
});
|
|
31
31
|
return (_ctx, _cache) => {
|
|
32
32
|
return openBlock(), createBlock(Teleport, { to: "body" }, [
|
|
33
|
-
createVNode(Transition, { name: "modal" }, {
|
|
33
|
+
createVNode(Transition, { name: "ep-modal" }, {
|
|
34
34
|
default: withCtx(() => [
|
|
35
35
|
_ctx.modelValue ? (openBlock(), createElementBlock("div", {
|
|
36
36
|
key: 0,
|
|
37
|
-
class: "modal-mask",
|
|
37
|
+
class: "ep-modal-mask",
|
|
38
38
|
onClick: withModifiers(closeModal, ["self"])
|
|
39
39
|
}, [
|
|
40
40
|
createElementVNode("div", {
|
|
41
|
-
class: normalizeClass(`modal-container ${sizeModal.value} max-h-screen overflow-auto`)
|
|
41
|
+
class: normalizeClass(`ep-modal-container ${sizeModal.value} max-h-screen overflow-auto`)
|
|
42
42
|
}, [
|
|
43
43
|
createElementVNode("div", _hoisted_1, [
|
|
44
44
|
createVNode(_sfc_main$1, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EpModal.vue.js","sources":["../../../src/components/interactions/EpModal.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport EpCard from \"~/components/basics/EpCard.vue\";\nimport type { EpModalProps } from \"~/types/interactions/EpModal\";\n\nconst props = withDefaults(defineProps<EpModalProps>(), {\n modelValue: false,\n title: null,\n subtitle: null,\n icon: null,\n persistent: false,\n size: \"default\", // ✅ must be a string literal\n});\n\nconst size = {\n compact: \"w-[45%]\",\n default: \"w-[75%]\",\n comfortable: \"w-[85%]\",\n};\n\nconst emit = defineEmits<{\n (e: \"update:modelValue\", modelValue: boolean): void;\n}>();\n\nconst closeModal = (): void => {\n if (!props.persistent) {\n emit(\"update:modelValue\", false);\n }\n};\n\nconst sizeModal = computed(() => {\n return size[props.size];\n});\n</script>\n\n<template>\n <Teleport to=\"body\">\n <Transition name=\"modal\">\n <div v-if=\"modelValue\" class=\"modal-mask\" @click.self=\"closeModal\">\n <div :class=\"`modal-container ${sizeModal} max-h-screen overflow-auto`\">\n <div class=\"mx-auto\">\n <EpCard :title=\"title\" :subtitle=\"subtitle\" :icon=\"icon\">\n <slot />\n </EpCard>\n </div>\n </div>\n </div>\n </Transition>\n </Teleport>\n</template>\n\n<style>\n.modal-mask {\n position: fixed;\n z-index: 6998;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.5);\n display: flex;\n transition: opacity 0.3s ease;\n}\n\n.modal-container {\n margin: auto;\n max-height: 95%;\n transition: all 0.3s ease;\n z-index: 7000;\n}\n\n.modal-header h3 {\n margin-top: 0;\n color: #42b983;\n}\n\n.modal-body {\n margin: 20px 0;\n}\n\n.modal-default-button {\n float: right;\n}\n\n.modal-enter-from {\n opacity: 0;\n}\n\n.modal-leave-to {\n opacity: 0;\n}\n\n.modal-enter-from .modal-container,\n.modal-leave-to .modal-container {\n -webkit-transform: scale(1.1);\n transform: scale(1.1);\n}\n</style>\n"],"names":["_createBlock","_Teleport","_createVNode","_Transition","modelValue","_createElementBlock","_createElementVNode","EpCard","title","subtitle","icon","_renderSlot"],"mappings":";;;;;;;;;;;;;;;AAKA,UAAM,QAAQ;AASd,UAAM,OAAO;AAAA,MACX,SAAS;AAAA,MACT,SAAS;AAAA,MACT,aAAa;AAAA,IAAA;AAGf,UAAM,OAAO;AAIb,UAAM,aAAa,MAAY;AAC7B,UAAI,CAAC,MAAM,YAAY;AACrB,aAAK,qBAAqB,KAAK;AAAA,MACjC;AAAA,IACF;AAEA,UAAM,YAAY,SAAS,MAAM;AAC/B,aAAO,KAAK,MAAM,IAAI;AAAA,IACxB,CAAC;;0BAICA,YAYWC,UAAA,EAZD,IAAG,UAAM;AAAA,QACjBC,YAUaC,YAAA,EAVD,MAAK,
|
|
1
|
+
{"version":3,"file":"EpModal.vue.js","sources":["../../../src/components/interactions/EpModal.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport EpCard from \"~/components/basics/EpCard.vue\";\nimport type { EpModalProps } from \"~/types/interactions/EpModal\";\n\nconst props = withDefaults(defineProps<EpModalProps>(), {\n modelValue: false,\n title: null,\n subtitle: null,\n icon: null,\n persistent: false,\n size: \"default\", // ✅ must be a string literal\n});\n\nconst size = {\n compact: \"w-[45%]\",\n default: \"w-[75%]\",\n comfortable: \"w-[85%]\",\n};\n\nconst emit = defineEmits<{\n (e: \"update:modelValue\", modelValue: boolean): void;\n}>();\n\nconst closeModal = (): void => {\n if (!props.persistent) {\n emit(\"update:modelValue\", false);\n }\n};\n\nconst sizeModal = computed(() => {\n return size[props.size];\n});\n</script>\n\n<template>\n <Teleport to=\"body\">\n <Transition name=\"ep-modal\">\n <div v-if=\"modelValue\" class=\"ep-modal-mask\" @click.self=\"closeModal\">\n <div :class=\"`ep-modal-container ${sizeModal} max-h-screen overflow-auto`\">\n <div class=\"mx-auto\">\n <EpCard :title=\"title\" :subtitle=\"subtitle\" :icon=\"icon\">\n <slot />\n </EpCard>\n </div>\n </div>\n </div>\n </Transition>\n </Teleport>\n</template>\n\n<style>\n.ep-modal-mask {\n position: fixed;\n z-index: 6998;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.5);\n display: flex;\n transition: opacity 0.3s ease;\n}\n\n.ep-modal-container {\n margin: auto;\n max-height: 95%;\n transition: all 0.3s ease;\n z-index: 7000;\n}\n\n.ep-modal-header h3 {\n margin-top: 0;\n color: #42b983;\n}\n\n.ep-modal-body {\n margin: 20px 0;\n}\n\n.ep-modal-default-button {\n float: right;\n}\n\n.ep-modal-enter-from {\n opacity: 0;\n}\n\n.ep-modal-leave-to {\n opacity: 0;\n}\n\n.ep-modal-enter-from .ep-modal-container,\n.ep-modal-leave-to .ep-modal-container {\n -webkit-transform: scale(1.1);\n transform: scale(1.1);\n}\n</style>\n"],"names":["_createBlock","_Teleport","_createVNode","_Transition","modelValue","_createElementBlock","_createElementVNode","EpCard","title","subtitle","icon","_renderSlot"],"mappings":";;;;;;;;;;;;;;;AAKA,UAAM,QAAQ;AASd,UAAM,OAAO;AAAA,MACX,SAAS;AAAA,MACT,SAAS;AAAA,MACT,aAAa;AAAA,IAAA;AAGf,UAAM,OAAO;AAIb,UAAM,aAAa,MAAY;AAC7B,UAAI,CAAC,MAAM,YAAY;AACrB,aAAK,qBAAqB,KAAK;AAAA,MACjC;AAAA,IACF;AAEA,UAAM,YAAY,SAAS,MAAM;AAC/B,aAAO,KAAK,MAAM,IAAI;AAAA,IACxB,CAAC;;0BAICA,YAYWC,UAAA,EAZD,IAAG,UAAM;AAAA,QACjBC,YAUaC,YAAA,EAVD,MAAK,cAAU;AAAA,2BACzB,MAQM;AAAA,YARKC,KAAAA,2BAAXC,mBAQM,OAAA;AAAA;cARiB,OAAM;AAAA,cAAiB,uBAAY,YAAU,CAAA,MAAA,CAAA;AAAA,YAAA;cAClEC,mBAMM,OAAA;AAAA,gBANA,4CAA6B,UAAA,KAAS,6BAAA;AAAA,cAAA;gBAC1CA,mBAIM,OAJN,YAIM;AAAA,kBAHJJ,YAESK,aAAA;AAAA,oBAFA,OAAOC,KAAAA;AAAAA,oBAAQ,UAAUC,KAAAA;AAAAA,oBAAW,MAAMC,KAAAA;AAAAA,kBAAAA;qCACjD,MAAQ;AAAA,sBAARC,WAAQ,KAAA,QAAA,SAAA;AAAA,oBAAA;;;;;;;;;;;;;"}
|