ep-lib-ts 1.0.63 → 1.0.64

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/dist/components/basics/EpAvatar.vue.js +1 -1
  2. package/dist/components/basics/EpAvatar.vue.js.map +1 -1
  3. package/dist/components/basics/EpBadge.vue2.js +1 -10
  4. package/dist/components/basics/EpBadge.vue2.js.map +1 -1
  5. package/dist/components/basics/EpCard.vue.js +2 -3
  6. package/dist/components/basics/EpCard.vue.js.map +1 -1
  7. package/dist/components/basics/EpDivider.vue.js +1 -2
  8. package/dist/components/basics/EpDivider.vue.js.map +1 -1
  9. package/dist/components/basics/EpFlex.vue.js.map +1 -1
  10. package/dist/components/basics/EpHoverCard.vue.js +2 -3
  11. package/dist/components/basics/EpHoverCard.vue.js.map +1 -1
  12. package/dist/components/basics/EpImg.vue.js +1 -1
  13. package/dist/components/basics/EpImg.vue.js.map +1 -1
  14. package/dist/components/basics/EpListItem.vue.js +1 -1
  15. package/dist/components/basics/EpListItem.vue.js.map +1 -1
  16. package/dist/components/basics/EpSpinner.vue.js +1 -2
  17. package/dist/components/basics/EpSpinner.vue.js.map +1 -1
  18. package/dist/components/basics/EpText.vue.js +4 -3
  19. package/dist/components/basics/EpText.vue.js.map +1 -1
  20. package/dist/components/educationals/EpReading.vue.js +1 -1
  21. package/dist/components/educationals/EpResource.vue.js +1 -1
  22. package/dist/components/educationals/EpResource.vue.js.map +1 -1
  23. package/dist/components/interactions/EpAccordeon.vue.js +1 -1
  24. package/dist/components/interactions/EpAccordeon.vue2.js +2 -6
  25. package/dist/components/interactions/EpAccordeon.vue2.js.map +1 -1
  26. package/dist/components/interactions/EpContentSlider.vue.js +4 -5
  27. package/dist/components/interactions/EpContentSlider.vue.js.map +1 -1
  28. package/dist/components/interactions/EpModal.vue.js +3 -3
  29. package/dist/components/interactions/EpModal.vue.js.map +1 -1
  30. package/dist/components/interactions/EpQuestion.vue.js +1 -1
  31. package/dist/components/interactions/EpQuestion.vue.js.map +1 -1
  32. package/dist/components/interactions/EpTooltip.vue.js.map +1 -1
  33. package/dist/components/interactions/{EpTooltip.vue3.js → EpTooltip.vue2.js} +1 -2
  34. package/dist/components/interactions/EpTooltip.vue2.js.map +1 -0
  35. package/dist/components/medias/EpAudio.vue.js +1 -2
  36. package/dist/components/medias/EpAudio.vue.js.map +1 -1
  37. package/dist/components/medias/EpCarousel.vue.js +197 -5
  38. package/dist/components/medias/EpCarousel.vue.js.map +1 -1
  39. package/dist/components/medias/EpCarousel.vue2.js +1 -196
  40. package/dist/components/medias/EpCarousel.vue2.js.map +1 -1
  41. package/dist/components/medias/EpHierarchy.vue.js +1 -1
  42. package/dist/components/medias/EpHierarchy.vue2.js +5 -5
  43. package/dist/components/medias/EpHierarchy.vue2.js.map +1 -1
  44. package/dist/components/medias/EpLink.vue.js +1 -5
  45. package/dist/components/medias/EpLink.vue.js.map +1 -1
  46. package/dist/components/medias/EpSensibleImage.vue.js +1 -1
  47. package/dist/components/medias/EpSensibleImage.vue2.js +2 -2
  48. package/dist/components/medias/EpSensibleImage.vue2.js.map +1 -1
  49. package/dist/components/medias/EpTimeLine.vue.js +5 -98
  50. package/dist/components/medias/EpTimeLine.vue.js.map +1 -1
  51. package/dist/components/medias/EpTimeLine.vue2.js +101 -0
  52. package/dist/components/medias/EpTimeLine.vue2.js.map +1 -0
  53. package/dist/components/signages/EpSkeleton.vue.js +5 -40
  54. package/dist/components/signages/EpSkeleton.vue.js.map +1 -1
  55. package/dist/components/signages/EpSkeleton.vue2.js +43 -0
  56. package/dist/components/signages/EpSkeleton.vue2.js.map +1 -0
  57. package/dist/components/tools/DisplayBox.vue.js +2 -39
  58. package/dist/components/tools/DisplayBox.vue.js.map +1 -1
  59. package/dist/components/tools/DisplayBox.vue2.js +43 -0
  60. package/dist/components/tools/DisplayBox.vue2.js.map +1 -0
  61. package/dist/components/tools/TextMedia.vue2.js +1 -1
  62. package/dist/components/tools/TextMedia.vue2.js.map +1 -1
  63. package/dist/components/tools/TimelineItem.vue.js +1 -1
  64. package/dist/components/tools/TimelineItem.vue2.js +1 -1
  65. package/dist/components/tools/TimelineItem.vue2.js.map +1 -1
  66. package/dist/components/tools/TwoColsMedia.vue2.js +2 -2
  67. package/dist/components/tools/TwoColsMedia.vue2.js.map +1 -1
  68. package/dist/entry/interactions/EpTooltip.js +0 -1
  69. package/dist/entry/interactions/EpTooltip.js.map +1 -1
  70. package/dist/entry/medias/EpCarousel.js +2 -2
  71. package/dist/entry/medias/EpCarousel.js.map +1 -1
  72. package/dist/entry/medias/EpTimeLine.js +2 -3
  73. package/dist/entry/medias/EpTimeLine.js.map +1 -1
  74. package/dist/entry/signages/EpSkeleton.js +2 -3
  75. package/dist/entry/signages/EpSkeleton.js.map +1 -1
  76. package/dist/index.js +171 -173
  77. package/dist/index.js.map +1 -1
  78. package/dist/styles.css +587 -0
  79. package/dist/types/Accordeon.js +1 -1
  80. package/dist/types/Accordeon.js.map +1 -1
  81. package/dist/types/Btn.js +24 -24
  82. package/dist/types/Btn.js.map +1 -1
  83. package/dist/types/Colors.d.ts +1 -0
  84. package/dist/types/basics/EpAvatar.d.ts +2 -10
  85. package/dist/types/basics/EpBadge.d.ts +2 -1
  86. package/package.json +14 -17
  87. package/dist/components/interactions/EpTooltip.vue3.js.map +0 -1
  88. package/dist/components/medias/EpTimeLine.vue3.js +0 -6
  89. package/dist/components/medias/EpTimeLine.vue3.js.map +0 -1
  90. package/dist/components/signages/EpSkeleton.vue3.js +0 -6
  91. package/dist/components/signages/EpSkeleton.vue3.js.map +0 -1
  92. package/dist/components/tools/DisplayBox.vue3.js +0 -6
  93. package/dist/components/tools/DisplayBox.vue3.js.map +0 -1
  94. package/dist/composables/useColors.js +0 -135
  95. package/dist/composables/useColors.js.map +0 -1
  96. package/dist/style.css +0 -5212
@@ -4,8 +4,7 @@ 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 _sfc_main$2 from "../signages/EpSkeleton.vue.js";
8
- /* empty css */
7
+ import Comp from "../signages/EpSkeleton.vue.js";
9
8
  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" };
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
10
  const _hoisted_3 = { class: "text-2xl font-bold text-primary" };
@@ -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.vue2.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.vue3.js"), "../medias/EpAudio.vue": () => import("../medias/EpAudio.vue2.js"), "../medias/EpCardLink.vue": () => import("../medias/EpCardLink.vue2.js"), "../medias/EpCarousel.vue": () => import("../medias/EpCarousel.vue.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.vue3.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.vue3.js"), "../tools/BgAudio.vue": () => import("../tools/BgAudio.vue.js"), "../tools/Details.vue": () => import("../tools/Details.vue.js"), "../tools/DisplayBox.vue": () => import("../tools/DisplayBox.vue3.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)
78
+ () => __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "../basics/EpAvatar.vue": () => import("../basics/EpAvatar.vue2.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;
@@ -161,14 +160,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
161
160
  ])
162
161
  }, [
163
162
  isLoading.value ? (openBlock(), createElementBlock("div", _hoisted_12, [
164
- createVNode(_sfc_main$2, {
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(_sfc_main$2, {
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 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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"}
@@ -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,WAAO;AAAA,2BACtB,MAQM;AAAA,YARKC,KAAAA,2BAAXC,mBAQM,OAAA;AAAA;cARiB,OAAM;AAAA,cAAc,uBAAY,YAAU,CAAA,MAAA,CAAA;AAAA,YAAA;cAC/DC,mBAMM,OAAA;AAAA,gBANA,yCAA0B,UAAA,KAAS,6BAAA;AAAA,cAAA;gBACvCA,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;;;;;;;;;;;;;"}
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;;;;;;;;;;;;;"}
@@ -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.vue2.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.vue3.js"), "../medias/EpAudio.vue": () => import("../medias/EpAudio.vue2.js"), "../medias/EpCardLink.vue": () => import("../medias/EpCardLink.vue2.js"), "../medias/EpCarousel.vue": () => import("../medias/EpCarousel.vue.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.vue3.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.vue3.js"), "../tools/BgAudio.vue": () => import("../tools/BgAudio.vue.js"), "../tools/Details.vue": () => import("../tools/Details.vue.js"), "../tools/DisplayBox.vue": () => import("../tools/DisplayBox.vue3.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)
106
+ () => __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "../basics/EpAvatar.vue": () => import("../basics/EpAvatar.vue2.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)
107
107
  );
108
108
  };
109
109
  const { title, hideIcon, question, src } = toRefs(props);
@@ -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 >\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 +1 @@
1
- {"version":3,"file":"EpTooltip.vue.js","sources":["../../../src/components/interactions/EpTooltip.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport { typeTooltip } from \"~/types/Tooltip\";\nimport type { EpTooltipProps } from \"~/types/interactions/EpTooltip\";\n\nconst props = withDefaults(defineProps<EpTooltipProps>(), {\n styles: \"light\",\n placement: \"top\",\n arrow: \"none\",\n});\n\nconst finalType = computed(() => {\n return props.placement;\n});\n\nconst arrowStyle = computed(() => {\n if (props.arrow == \"arrow\") {\n if (props.styles == \"dark\") {\n return \"arrowdark\";\n } else {\n return \"arrow\";\n }\n } else {\n if (props.styles == \"light\") {\n return \"default\";\n } else {\n return \"dark\";\n }\n }\n});\n\nconst finalStyles = computed(() => {\n return `${typeTooltip[finalType.value]?.[arrowStyle.value]}`;\n});\n</script>\n<template>\n <div class=\"group relative w-max\">\n <slot />\n <span\n :class=\"`pointer-events-none absolute w-max rounded px-2 py-1 text-sm font-medium opacity-0 shadow transition-opacity group-hover:opacity-100 ${finalStyles} `\"\n >{{ text }}</span\n >\n </div>\n</template>\n\n<style>\n.arrow-light-top::before {\n content: \" \";\n position: absolute;\n top: 100%; /* At the bottom of the tooltip */\n left: 50%;\n margin-left: -5px;\n border-width: 5px;\n border-style: solid;\n border-color: rgba(0, 0, 0, 0.2) transparent transparent transparent;\n}\n.arrow-dark-top::before {\n content: \" \";\n position: absolute;\n top: 100%; /* At the bottom of the tooltip */\n left: 50%;\n margin-left: -5px;\n border-width: 5px;\n border-style: solid;\n border-color: black transparent transparent transparent;\n}\n.arrow-light-bottom::before {\n content: \"\";\n position: absolute;\n display: inline-block;\n left: 50%;\n bottom: 100%;\n border-right: 7px solid transparent;\n border-bottom: 7px solid #eee;\n border-left: 7px solid transparent;\n border-bottom-color: rgba(0, 0, 0, 0.2);\n}\n.arrow-dark-bottom::before {\n content: \"\";\n position: absolute;\n display: inline-block;\n left: 50%;\n bottom: 100%;\n border-right: 7px solid transparent;\n border-bottom: 7px solid black;\n border-left: 7px solid transparent;\n border-bottom-color: black transparent transparent transparent;\n}\n\n.arrow-light-left::before {\n position: absolute;\n display: inline-block;\n left: 100%;\n top: 50%;\n content: \"\";\n margin-right: 0px;\n border-top: 5px solid transparent;\n border-left: 5px solid #eee;\n border-bottom: 5px solid transparent;\n border-left-color: rgba(0, 0, 0, 0.2);\n}\n\n.arrow-dark-left::before {\n position: absolute;\n display: inline-block;\n left: 100%;\n top: 50%;\n content: \"\";\n margin-right: 0px;\n border-top: 5px solid transparent;\n border-left: 5px solid black;\n border-bottom: 5px solid transparent;\n border-left-color: black transparent transparent transparent;\n}\n\n.arrow-light-right::before {\n position: absolute;\n display: inline-block;\n right: 100%;\n top: 50%;\n content: \"\";\n margin-right: 0px;\n border-top: 5px solid transparent;\n border-right: 5px solid #eee;\n border-bottom: 5px solid transparent;\n border-right-color: rgba(0, 0, 0, 0.2);\n}\n\n.arrow-dark-right::before {\n position: absolute;\n display: inline-block;\n right: 100%;\n top: 50%;\n content: \"\";\n margin-right: 0px;\n border-top: 5px solid transparent;\n border-right: 5px solid black;\n border-bottom: 5px solid transparent;\n border-right-color: black transparent transparent transparent;\n}\n</style>\n"],"names":["_openBlock","_createElementBlock","_renderSlot","_createElementVNode","text"],"mappings":";;;;;;;;;;;;;AAKA,UAAM,QAAQ;AAMd,UAAM,YAAY,SAAS,MAAM;AAC/B,aAAO,MAAM;AAAA,IACf,CAAC;AAED,UAAM,aAAa,SAAS,MAAM;AAChC,UAAI,MAAM,SAAS,SAAS;AAC1B,YAAI,MAAM,UAAU,QAAQ;AAC1B,iBAAO;AAAA,QACT,OAAO;AACL,iBAAO;AAAA,QACT;AAAA,MACF,OAAO;AACL,YAAI,MAAM,UAAU,SAAS;AAC3B,iBAAO;AAAA,QACT,OAAO;AACL,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF,CAAC;AAED,UAAM,cAAc,SAAS,MAAM;;AACjC,aAAO,IAAG,iBAAY,UAAU,KAAK,MAA3B,mBAA+B,WAAW,MAAM;AAAA,IAC5D,CAAC;;AAGC,aAAAA,UAAA,GAAAC,mBAMM,OANN,YAMM;AAAA,QALJC,WAAQ,KAAA,QAAA,SAAA;AAAA,QACRC,mBAGC,QAAA;AAAA,UAFE,kKAAmJ,YAAA,KAAW,GAAA;AAAA,QAAA,mBAC3JC,KAAAA,IAAI,GAAA,CAAA;AAAA,MAAA;;;;"}
1
+ {"version":3,"file":"EpTooltip.vue.js","sources":["../../../src/components/interactions/EpTooltip.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport { typeTooltip } from \"~/types/Tooltip\";\nimport type { EpTooltipProps } from \"~/types/interactions/EpTooltip\";\n\nconst props = withDefaults(defineProps<EpTooltipProps>(), {\n styles: \"light\",\n placement: \"top\",\n arrow: \"none\",\n});\n\nconst finalType = computed(() => {\n return props.placement;\n});\n\nconst arrowStyle = computed(() => {\n if (props.arrow == \"arrow\") {\n if (props.styles == \"dark\") {\n return \"arrowdark\";\n } else {\n return \"arrow\";\n }\n } else {\n if (props.styles == \"light\") {\n return \"default\";\n } else {\n return \"dark\";\n }\n }\n});\n\nconst finalStyles = computed(() => {\n return `${typeTooltip[finalType.value]?.[arrowStyle.value]}`;\n});\n</script>\n<template>\n <div class=\"group relative w-max\">\n <slot />\n <span\n :class=\"`pointer-events-none absolute w-max rounded px-2 py-1 text-sm font-medium opacity-0 shadow transition-opacity group-hover:opacity-100 ${finalStyles} `\"\n >{{ text }}</span\n >\n </div>\n</template>\n\n"],"names":["_openBlock","_createElementBlock","_renderSlot","_createElementVNode","text"],"mappings":";;;;;;;;;;;;;AAKA,UAAM,QAAQ;AAMd,UAAM,YAAY,SAAS,MAAM;AAC/B,aAAO,MAAM;AAAA,IACf,CAAC;AAED,UAAM,aAAa,SAAS,MAAM;AAChC,UAAI,MAAM,SAAS,SAAS;AAC1B,YAAI,MAAM,UAAU,QAAQ;AAC1B,iBAAO;AAAA,QACT,OAAO;AACL,iBAAO;AAAA,QACT;AAAA,MACF,OAAO;AACL,YAAI,MAAM,UAAU,SAAS;AAC3B,iBAAO;AAAA,QACT,OAAO;AACL,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF,CAAC;AAED,UAAM,cAAc,SAAS,MAAM;;AACjC,aAAO,IAAG,iBAAY,UAAU,KAAK,MAA3B,mBAA+B,WAAW,MAAM;AAAA,IAC5D,CAAC;;AAGC,aAAAA,UAAA,GAAAC,mBAMM,OANN,YAMM;AAAA,QALJC,WAAQ,KAAA,QAAA,SAAA;AAAA,QACRC,mBAGC,QAAA;AAAA,UAFE,kKAAmJ,YAAA,KAAW,GAAA;AAAA,QAAA,mBAC3JC,KAAAA,IAAI,GAAA,CAAA;AAAA,MAAA;;;;"}
@@ -1,6 +1,5 @@
1
1
  import _sfc_main from "./EpTooltip.vue.js";
2
- /* empty css */
3
2
  export {
4
3
  _sfc_main as default
5
4
  };
6
- //# sourceMappingURL=EpTooltip.vue3.js.map
5
+ //# sourceMappingURL=EpTooltip.vue2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EpTooltip.vue2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -2,7 +2,6 @@ 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 useColors from "../../composables/useColors.js";
6
5
  import _sfc_main$2 from "../tools/BgAudio.vue2.js";
7
6
  import Comp from "../signages/EpAlert.vue.js";
8
7
  import _sfc_main$1 from "../educationals/EpEdu.vue.js";
@@ -41,7 +40,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
41
40
  return false;
42
41
  });
43
42
  const bgColor = computed(() => {
44
- return useColors("fill", props.type);
43
+ return props.type;
45
44
  });
46
45
  const renderText = computed(() => {
47
46
  if (!props.intentions) {
@@ -1 +1 @@
1
- {"version":3,"file":"EpAudio.vue.js","sources":["../../../src/components/medias/EpAudio.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, toRefs } from \"vue\";\nimport { isHtml } from \"~/composables/isHtml\";\nimport { useMarkdown } from \"~/composables/useMarkdown\";\nimport { mdiHeadphones } from \"@mdi/js\";\nimport useColors from \"~/composables/useColors\";\nimport BgAudio from \"~/components/tools/BgAudio.vue\";\nimport EpAlert from \"~/components/signages/EpAlert.vue\";\nimport EpEdu from \"~/components/educationals/EpEdu.vue\";\nimport type { EpAudioProps } from \"~/types/medias/EpAudio\";\n\nconst props = withDefaults(defineProps<EpAudioProps>(), {\n type: \"neutral\",\n hideIcon: false,\n labelIntentions: \"Intentions d'écoute\",\n messageError: \"Mauvais url\",\n});\n\n//regex url panopto udem\nconst hasmp4 = /\\.mp4\\?/;\n\nconst cleanSrc = computed(() => {\n let srcString = props.src;\n const isPanopto = hasmp4.test(props.src);\n if (isPanopto) {\n srcString = srcString.replace(/\\.mp4.*$/, \".mp4\");\n }\n return srcString;\n});\n\nconst isAudioFormat = computed(() => {\n if (\n cleanSrc.value.endsWith(\".mp3\") ||\n cleanSrc.value.endsWith(\".mp4\") ||\n cleanSrc.value.endsWith(\".ogg\") ||\n cleanSrc.value.endsWith(\".wav\")\n ) {\n return true;\n }\n return false;\n});\n\nconst bgColor = computed(() => {\n return useColors(\"fill\", props.type);\n});\n\nconst renderText = computed(() => {\n if (!props.intentions) {\n return null;\n }\n if (!isHtml(props.intentions)) {\n return useMarkdown(props.intentions);\n }\n return props.intentions;\n});\n\n//controls\n//const controls = useMediaControls(video, {src:props.src})\n\nconst { src, title, hideIcon, mandateLevel, bgImg } = toRefs(props);\n</script>\n\n<template>\n <EpEdu\n :title=\"title\"\n :labelIntentions=\"labelIntentions\"\n :type=\"type\"\n :hideIcon=\"hideIcon\"\n :icon=\"mdiHeadphones\"\n :mandateLevel=\"mandateLevel\"\n >\n <template #intentions v-if=\"renderText\">\n <div v-html=\"renderText\" />\n </template>\n <template #content>\n <div class=\"max-w-screen-sm mx-auto\">\n <BgAudio :fill=\"bgColor\" v-if=\"!bgImg\"></BgAudio>\n <img v-else :src=\"bgImg\" />\n <audio\n v-if=\"isAudioFormat\"\n ref=\"video\"\n controls\n :src=\"cleanSrc\"\n controlsList=\"nodownload\"\n ></audio>\n <EpAlert type=\"error\" outlined v-else>\n <p>{{ messageError }}</p>\n </EpAlert>\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","labelIntentions","type","_createElementVNode","BgAudio","_createElementBlock","EpAlert","messageError"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,UAAM,QAAQ;AAQd,UAAM,SAAS;AAEf,UAAM,WAAW,SAAS,MAAM;AAC9B,UAAI,YAAY,MAAM;AACtB,YAAM,YAAY,OAAO,KAAK,MAAM,GAAG;AACvC,UAAI,WAAW;AACb,oBAAY,UAAU,QAAQ,YAAY,MAAM;AAAA,MAClD;AACA,aAAO;AAAA,IACT,CAAC;AAED,UAAM,gBAAgB,SAAS,MAAM;AACnC,UACE,SAAS,MAAM,SAAS,MAAM,KAC9B,SAAS,MAAM,SAAS,MAAM,KAC9B,SAAS,MAAM,SAAS,MAAM,KAC9B,SAAS,MAAM,SAAS,MAAM,GAC9B;AACA,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT,CAAC;AAED,UAAM,UAAU,SAAS,MAAM;AAC7B,aAAO,UAAU,QAAQ,MAAM,IAAI;AAAA,IACrC,CAAC;AAED,UAAM,aAAa,SAAS,MAAM;AAChC,UAAI,CAAC,MAAM,YAAY;AACrB,eAAO;AAAA,MACT;AACA,UAAI,CAAC,OAAO,MAAM,UAAU,GAAG;AAC7B,eAAO,YAAY,MAAM,UAAU;AAAA,MACrC;AACA,aAAO,MAAM;AAAA,IACf,CAAC;AAKD,UAAM,EAAO,OAAO,UAAU,cAAc,MAAA,IAAU,OAAO,KAAK;;0BAIhEA,YA8BQC,aAAA;AAAA,QA7BL,OAAOC,MAAA,KAAA;AAAA,QACP,iBAAiBC,KAAAA;AAAAA,QACjB,MAAMC,KAAAA;AAAAA,QACN,UAAUF,MAAA,QAAA;AAAA,QACV,MAAMA,MAAA,aAAA;AAAA,QACN,cAAcA,MAAA,YAAA;AAAA,MAAA;QAKJ,iBACT,MAaM;AAAA,UAbNG,mBAaM,OAbN,YAaM;AAAA,aAZ4BH,MAAA,KAAA,kBAAhCF,YAAiDM,aAAA;AAAA;cAAvC,MAAM,QAAA;AAAA,YAAA,uCAChBC,mBAA2B,OAAA;AAAA;cAAd,KAAKL,MAAA,KAAA;AAAA,YAAA;YAEV,cAAA,sBADRK,mBAMS,SAAA;AAAA;cAJP,KAAI;AAAA,cACJ,UAAA;AAAA,cACC,KAAK,SAAA;AAAA,cACN,cAAa;AAAA,YAAA,yCAEfP,YAEUQ,MAAA;AAAA;cAFD,MAAK;AAAA,cAAQ,UAAA;AAAA,YAAA;+BACpB,MAAyB;AAAA,gBAAzBH,mBAAyB,2BAAnBI,KAAAA,YAAY,GAAA,CAAA;AAAA,cAAA;;;;;;;QAfI,WAAA;gBAAjB;AAAA,sBACT,MAA2B;AAAA,YAA3BJ,mBAA2B,OAAA,EAAtB,WAAQ,WAAA,SAAU,MAAA,GAAA,UAAA;AAAA,UAAA;;;;;;;"}
1
+ {"version":3,"file":"EpAudio.vue.js","sources":["../../../src/components/medias/EpAudio.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, toRefs } from \"vue\";\nimport { isHtml } from \"~/composables/isHtml\";\nimport { useMarkdown } from \"~/composables/useMarkdown\";\nimport { mdiHeadphones } from \"@mdi/js\";\nimport BgAudio from \"~/components/tools/BgAudio.vue\";\nimport EpAlert from \"~/components/signages/EpAlert.vue\";\nimport EpEdu from \"~/components/educationals/EpEdu.vue\";\nimport type { EpAudioProps } from \"~/types/medias/EpAudio\";\n\nconst props = withDefaults(defineProps<EpAudioProps>(), {\n type: \"neutral\",\n hideIcon: false,\n labelIntentions: \"Intentions d'écoute\",\n messageError: \"Mauvais url\",\n});\n\n//regex url panopto udem\nconst hasmp4 = /\\.mp4\\?/;\n\nconst cleanSrc = computed(() => {\n let srcString = props.src;\n const isPanopto = hasmp4.test(props.src);\n if (isPanopto) {\n srcString = srcString.replace(/\\.mp4.*$/, \".mp4\");\n }\n return srcString;\n});\n\nconst isAudioFormat = computed(() => {\n if (\n cleanSrc.value.endsWith(\".mp3\") ||\n cleanSrc.value.endsWith(\".mp4\") ||\n cleanSrc.value.endsWith(\".ogg\") ||\n cleanSrc.value.endsWith(\".wav\")\n ) {\n return true;\n }\n return false;\n});\n\nconst bgColor = computed(() => {\n return props.type\n});\n\nconst renderText = computed(() => {\n if (!props.intentions) {\n return null;\n }\n if (!isHtml(props.intentions)) {\n return useMarkdown(props.intentions);\n }\n return props.intentions;\n});\n\n//controls\n//const controls = useMediaControls(video, {src:props.src})\n\nconst { src, title, hideIcon, mandateLevel, bgImg } = toRefs(props);\n</script>\n\n<template>\n <EpEdu\n :title=\"title\"\n :labelIntentions=\"labelIntentions\"\n :type=\"type\"\n :hideIcon=\"hideIcon\"\n :icon=\"mdiHeadphones\"\n :mandateLevel=\"mandateLevel\"\n >\n <template #intentions v-if=\"renderText\">\n <div v-html=\"renderText\" />\n </template>\n <template #content>\n <div class=\"max-w-screen-sm mx-auto\">\n <BgAudio :fill=\"bgColor\" v-if=\"!bgImg\"></BgAudio>\n <img v-else :src=\"bgImg\" />\n <audio\n v-if=\"isAudioFormat\"\n ref=\"video\"\n controls\n :src=\"cleanSrc\"\n controlsList=\"nodownload\"\n ></audio>\n <EpAlert type=\"error\" outlined v-else>\n <p>{{ messageError }}</p>\n </EpAlert>\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","labelIntentions","type","_createElementVNode","BgAudio","_createElementBlock","EpAlert","messageError"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAUA,UAAM,QAAQ;AAQd,UAAM,SAAS;AAEf,UAAM,WAAW,SAAS,MAAM;AAC9B,UAAI,YAAY,MAAM;AACtB,YAAM,YAAY,OAAO,KAAK,MAAM,GAAG;AACvC,UAAI,WAAW;AACb,oBAAY,UAAU,QAAQ,YAAY,MAAM;AAAA,MAClD;AACA,aAAO;AAAA,IACT,CAAC;AAED,UAAM,gBAAgB,SAAS,MAAM;AACnC,UACE,SAAS,MAAM,SAAS,MAAM,KAC9B,SAAS,MAAM,SAAS,MAAM,KAC9B,SAAS,MAAM,SAAS,MAAM,KAC9B,SAAS,MAAM,SAAS,MAAM,GAC9B;AACA,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT,CAAC;AAED,UAAM,UAAU,SAAS,MAAM;AAC7B,aAAO,MAAM;AAAA,IACf,CAAC;AAED,UAAM,aAAa,SAAS,MAAM;AAChC,UAAI,CAAC,MAAM,YAAY;AACrB,eAAO;AAAA,MACT;AACA,UAAI,CAAC,OAAO,MAAM,UAAU,GAAG;AAC7B,eAAO,YAAY,MAAM,UAAU;AAAA,MACrC;AACA,aAAO,MAAM;AAAA,IACf,CAAC;AAKD,UAAM,EAAO,OAAO,UAAU,cAAc,MAAA,IAAU,OAAO,KAAK;;0BAIhEA,YA8BQC,aAAA;AAAA,QA7BL,OAAOC,MAAA,KAAA;AAAA,QACP,iBAAiBC,KAAAA;AAAAA,QACjB,MAAMC,KAAAA;AAAAA,QACN,UAAUF,MAAA,QAAA;AAAA,QACV,MAAMA,MAAA,aAAA;AAAA,QACN,cAAcA,MAAA,YAAA;AAAA,MAAA;QAKJ,iBACT,MAaM;AAAA,UAbNG,mBAaM,OAbN,YAaM;AAAA,aAZ4BH,MAAA,KAAA,kBAAhCF,YAAiDM,aAAA;AAAA;cAAvC,MAAM,QAAA;AAAA,YAAA,uCAChBC,mBAA2B,OAAA;AAAA;cAAd,KAAKL,MAAA,KAAA;AAAA,YAAA;YAEV,cAAA,sBADRK,mBAMS,SAAA;AAAA;cAJP,KAAI;AAAA,cACJ,UAAA;AAAA,cACC,KAAK,SAAA;AAAA,cACN,cAAa;AAAA,YAAA,yCAEfP,YAEUQ,MAAA;AAAA;cAFD,MAAK;AAAA,cAAQ,UAAA;AAAA,YAAA;+BACpB,MAAyB;AAAA,gBAAzBH,mBAAyB,2BAAnBI,KAAAA,YAAY,GAAA,CAAA;AAAA,cAAA;;;;;;;QAfI,WAAA;gBAAjB;AAAA,sBACT,MAA2B;AAAA,YAA3BJ,mBAA2B,OAAA,EAAtB,WAAQ,WAAA,SAAU,MAAA,GAAA,UAAA;AAAA,UAAA;;;;;;;"}
@@ -1,8 +1,200 @@
1
- import _sfc_main from "./EpCarousel.vue2.js";
2
- /* empty css */
3
- import _export_sfc from "../../_virtual/_plugin-vue_export-helper.js";
4
- const Comp = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-3332826e"]]);
1
+ import { defineComponent, ref, computed, toRefs, createElementBlock, openBlock, Fragment, createCommentVNode, toDisplayString, createElementVNode, createVNode, createTextVNode, unref, withCtx, normalizeClass, renderList, createBlock } from "vue";
2
+ import { mdiChevronLeftCircleOutline, mdiChevronRightCircleOutline } from "@mdi/js";
3
+ import _sfc_main$1 from "../basics/EpIcon.vue.js";
4
+ import _sfc_main$2 from "../basics/EpBtn.vue.js";
5
+ import _sfc_main$3 from "../interactions/EpModal.vue.js";
6
+ /* empty css */
7
+ import _sfc_main$4 from "../basics/EpImgCarousel.vue.js";
8
+ const _hoisted_1 = {
9
+ key: 0,
10
+ class: "text-xl font-semibold mt-10 mb-4 text-center"
11
+ };
12
+ const _hoisted_2 = { key: 1 };
13
+ const _hoisted_3 = { class: "flex items-center justify-center mb-2" };
14
+ const _hoisted_4 = { class: "bg-white dark:bg-dark shadow-xl p-4 lg:max-w-[800px] mx-auto border-solid border" };
15
+ const _hoisted_5 = ["src"];
16
+ const _hoisted_6 = {
17
+ key: 0,
18
+ class: "mt-2 text-sm text-center text-base-dark dark:text-white"
19
+ };
20
+ const _hoisted_7 = {
21
+ key: 1,
22
+ class: "flex justify-end mt-2"
23
+ };
24
+ const _hoisted_8 = ["innerHTML"];
25
+ const _hoisted_9 = { class: "flex justify-end" };
26
+ const _hoisted_10 = {
27
+ key: 3,
28
+ class: /* @__PURE__ */ normalizeClass(`columns-3xs mx-5 gap-2`)
29
+ };
30
+ const _sfc_main = /* @__PURE__ */ defineComponent({
31
+ __name: "EpCarousel",
32
+ props: {
33
+ carrouselImg: {},
34
+ title: {},
35
+ gallery: { type: Boolean, default: false },
36
+ puzzle: { type: Boolean, default: false },
37
+ sizeThumbnail: { default: "medium" },
38
+ isCenter: { type: Boolean, default: false },
39
+ labelClose: { default: "Fermer" },
40
+ labelRef: { default: "Référence" },
41
+ labelRefLib: { default: "Référence bibliographique" }
42
+ },
43
+ setup(__props) {
44
+ const props = __props;
45
+ const currentIndex = ref(0);
46
+ const dialog = ref(false);
47
+ const prevSlide = () => {
48
+ const isFirstSlide = currentIndex.value === 0;
49
+ const newIndex = isFirstSlide ? props.carrouselImg.length - 1 : currentIndex.value - 1;
50
+ currentIndex.value = newIndex;
51
+ };
52
+ const nextSlide = () => {
53
+ const isTheLastSlide = currentIndex.value === props.carrouselImg.length - 1;
54
+ const newIndex = isTheLastSlide ? 0 : currentIndex.value + 1;
55
+ currentIndex.value = newIndex;
56
+ };
57
+ const isCenterStyle = computed(() => {
58
+ return props.isCenter ? "justify-center" : "";
59
+ });
60
+ const managedIndex = ref(0);
61
+ const managedInfoModal = ref({ src: "", caption: "", bib: "" });
62
+ const newFocus = (index) => {
63
+ managedIndex.value = index;
64
+ managedInfoModal.value = {
65
+ src: props.carrouselImg[index].src,
66
+ caption: props.carrouselImg[index].caption,
67
+ bib: props.carrouselImg[index].bib
68
+ };
69
+ };
70
+ const managedPrevSlide = () => {
71
+ const isFirstSlide = managedIndex.value === 0;
72
+ const newIndex = isFirstSlide ? props.carrouselImg.length - 1 : managedIndex.value - 1;
73
+ managedIndex.value = newIndex;
74
+ managedInfoModal.value = {
75
+ src: props.carrouselImg[newIndex].src,
76
+ caption: props.carrouselImg[newIndex].caption,
77
+ bib: props.carrouselImg[newIndex].bib
78
+ };
79
+ };
80
+ const managedNextSlide = () => {
81
+ const isTheLastSlide = managedIndex.value === props.carrouselImg.length - 1;
82
+ const newIndex = isTheLastSlide ? 0 : managedIndex.value + 1;
83
+ managedIndex.value = newIndex;
84
+ managedInfoModal.value = {
85
+ src: props.carrouselImg[newIndex].src,
86
+ caption: props.carrouselImg[newIndex].caption,
87
+ bib: props.carrouselImg[newIndex].bib
88
+ };
89
+ };
90
+ const { carrouselImg, sizeThumbnail } = toRefs(props);
91
+ return (_ctx, _cache) => {
92
+ var _a, _b;
93
+ return openBlock(), createElementBlock(Fragment, null, [
94
+ props.title ? (openBlock(), createElementBlock("h2", _hoisted_1, toDisplayString(props.title), 1)) : createCommentVNode("", true),
95
+ !_ctx.gallery ? (openBlock(), createElementBlock("div", _hoisted_2, [
96
+ createElementVNode("div", _hoisted_3, [
97
+ createElementVNode("button", {
98
+ class: "p-2",
99
+ onClick: prevSlide
100
+ }, [
101
+ createVNode(_sfc_main$1, { "icon-path": unref(mdiChevronLeftCircleOutline) }, null, 8, ["icon-path"])
102
+ ]),
103
+ createTextVNode(" " + toDisplayString(currentIndex.value + 1) + "/" + toDisplayString(unref(carrouselImg).length) + " ", 1),
104
+ createElementVNode("button", {
105
+ class: "p-2",
106
+ onClick: nextSlide
107
+ }, [
108
+ createVNode(_sfc_main$1, { "icon-path": unref(mdiChevronRightCircleOutline) }, null, 8, ["icon-path"])
109
+ ])
110
+ ]),
111
+ createElementVNode("div", _hoisted_4, [
112
+ createElementVNode("img", {
113
+ src: unref(carrouselImg)[currentIndex.value].src,
114
+ alt: "image",
115
+ class: "rounded-sm m-auto"
116
+ }, null, 8, _hoisted_5),
117
+ ((_a = unref(carrouselImg)[currentIndex.value]) == null ? void 0 : _a.caption) ? (openBlock(), createElementBlock("div", _hoisted_6, toDisplayString(unref(carrouselImg)[currentIndex.value].caption), 1)) : createCommentVNode("", true),
118
+ ((_b = unref(carrouselImg)[currentIndex.value]) == null ? void 0 : _b.bib) ? (openBlock(), createElementBlock("div", _hoisted_7, [
119
+ createVNode(_sfc_main$2, {
120
+ type: "primary",
121
+ onClick: _cache[0] || (_cache[0] = ($event) => dialog.value = true),
122
+ dark: ""
123
+ }, {
124
+ default: withCtx(() => [
125
+ createTextVNode(toDisplayString(_ctx.labelRef), 1)
126
+ ]),
127
+ _: 1
128
+ })
129
+ ])) : createCommentVNode("", true)
130
+ ]),
131
+ createVNode(_sfc_main$3, {
132
+ modelValue: dialog.value,
133
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => dialog.value = $event),
134
+ title: _ctx.labelRefLib
135
+ }, {
136
+ default: withCtx(() => [
137
+ createElementVNode("div", {
138
+ innerHTML: unref(carrouselImg)[currentIndex.value].bib
139
+ }, null, 8, _hoisted_8),
140
+ createElementVNode("div", _hoisted_9, [
141
+ createVNode(_sfc_main$2, {
142
+ onClick: _cache[1] || (_cache[1] = ($event) => dialog.value = false),
143
+ type: "primary",
144
+ dark: ""
145
+ }, {
146
+ default: withCtx(() => [
147
+ createTextVNode(toDisplayString(_ctx.labelClose), 1)
148
+ ]),
149
+ _: 1
150
+ })
151
+ ])
152
+ ]),
153
+ _: 1
154
+ }, 8, ["modelValue", "title"])
155
+ ])) : !_ctx.puzzle ? (openBlock(), createElementBlock("div", {
156
+ key: 2,
157
+ class: normalizeClass(`flex flex-wrap ${isCenterStyle.value}`)
158
+ }, [
159
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(carrouselImg), (image, index) => {
160
+ return openBlock(), createBlock(_sfc_main$4, {
161
+ key: `image-${image == null ? void 0 : image.uid}`,
162
+ src: image.src,
163
+ bib: image.bib,
164
+ caption: image.caption,
165
+ "label-ref": _ctx.labelRef,
166
+ "label-close": _ctx.labelClose,
167
+ "size-thumbnail": unref(sizeThumbnail),
168
+ "managed-modal": "",
169
+ onNewFocus: ($event) => newFocus(index),
170
+ "info-modal": managedInfoModal.value,
171
+ onPrevSlide: managedPrevSlide,
172
+ onNextSlide: managedNextSlide
173
+ }, null, 8, ["src", "bib", "caption", "label-ref", "label-close", "size-thumbnail", "onNewFocus", "info-modal"]);
174
+ }), 128))
175
+ ], 2)) : _ctx.puzzle ? (openBlock(), createElementBlock("div", _hoisted_10, [
176
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(carrouselImg), (image, index) => {
177
+ return openBlock(), createBlock(_sfc_main$4, {
178
+ key: `image-${image == null ? void 0 : image.uid}`,
179
+ src: image.src,
180
+ bib: image.bib,
181
+ caption: image.caption,
182
+ "label-ref": _ctx.labelRef,
183
+ "label-close": _ctx.labelClose,
184
+ puzzle: "",
185
+ "managed-modal": "",
186
+ onNewFocus: ($event) => newFocus(index),
187
+ "info-modal": managedInfoModal.value,
188
+ onPrevSlide: managedPrevSlide,
189
+ onNextSlide: managedNextSlide
190
+ }, null, 8, ["src", "bib", "caption", "label-ref", "label-close", "onNewFocus", "info-modal"]);
191
+ }), 128))
192
+ ])) : createCommentVNode("", true)
193
+ ], 64);
194
+ };
195
+ }
196
+ });
5
197
  export {
6
- Comp as default
198
+ _sfc_main as default
7
199
  };
8
200
  //# sourceMappingURL=EpCarousel.vue.js.map