ep-lib-ts 1.0.61 → 1.0.63

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 (313) hide show
  1. package/dist/components/basics/EpAvatar.vue.js +54 -1
  2. package/dist/components/basics/EpAvatar.vue.js.map +1 -1
  3. package/dist/components/basics/EpAvatar.vue2.js +1 -54
  4. package/dist/components/basics/EpAvatar.vue2.js.map +1 -1
  5. package/dist/components/basics/EpBadge.vue2.js.map +1 -1
  6. package/dist/components/basics/EpBtn.vue.js.map +1 -1
  7. package/dist/components/basics/EpCard.vue.js.map +1 -1
  8. package/dist/components/basics/EpChip.vue.js.map +1 -1
  9. package/dist/components/basics/EpDivider.vue.js.map +1 -1
  10. package/dist/components/basics/EpHover.vue.js.map +1 -1
  11. package/dist/components/basics/EpHoverCard.vue.js.map +1 -1
  12. package/dist/components/basics/EpIcon.vue.js.map +1 -1
  13. package/dist/components/basics/EpImg.vue.js.map +1 -1
  14. package/dist/components/basics/EpImgCarousel.vue.js.map +1 -1
  15. package/dist/components/basics/EpListItem.vue.js.map +1 -1
  16. package/dist/components/basics/EpSection.vue.js.map +1 -1
  17. package/dist/components/basics/EpSectionCols.vue.js.map +1 -1
  18. package/dist/components/basics/EpSpinner.vue.js.map +1 -1
  19. package/dist/components/basics/EpStackedList.vue.js +1 -1
  20. package/dist/components/basics/EpStackedList.vue.js.map +1 -1
  21. package/dist/components/basics/EpTable.vue.js.map +1 -1
  22. package/dist/components/basics/EpText.vue.js.map +1 -1
  23. package/dist/components/charts/EpBarChart.vue.js.map +1 -1
  24. package/dist/components/charts/EpFunnelChart.vue.js.map +1 -1
  25. package/dist/components/charts/EpLineChart.vue.js.map +1 -1
  26. package/dist/components/charts/EpPieChart.vue.js.map +1 -1
  27. package/dist/components/educationals/EpBranchingScenario.vue.js +1 -1
  28. package/dist/components/educationals/EpBranchingScenario.vue2.js.map +1 -1
  29. package/dist/components/educationals/EpCodeblock.vue.js.map +1 -1
  30. package/dist/components/educationals/EpConclusion.vue.js.map +1 -1
  31. package/dist/components/educationals/EpDescription.vue.js.map +1 -1
  32. package/dist/components/educationals/EpDocument.vue.js.map +1 -1
  33. package/dist/components/educationals/EpEdu.vue.js.map +1 -1
  34. package/dist/components/educationals/EpInstructions.vue.js.map +1 -1
  35. package/dist/components/educationals/EpIntroduction.vue.js.map +1 -1
  36. package/dist/components/educationals/EpObjective.vue.js.map +1 -1
  37. package/dist/components/educationals/EpReading.vue.js +1 -1
  38. package/dist/components/educationals/EpReading.vue.js.map +1 -1
  39. package/dist/components/educationals/EpResource.vue.js +1 -1
  40. package/dist/components/educationals/EpResource.vue.js.map +1 -1
  41. package/dist/components/educationals/EpScope.vue.js.map +1 -1
  42. package/dist/components/educationals/EpSpecificObjective.vue.js.map +1 -1
  43. package/dist/components/forms/EpCheckbox.vue2.js.map +1 -1
  44. package/dist/components/forms/EpInput.vue2.js.map +1 -1
  45. package/dist/components/forms/EpRadio.vue2.js.map +1 -1
  46. package/dist/components/forms/EpRadioSummative.vue2.js.map +1 -1
  47. package/dist/components/forms/EpSelect.vue2.js.map +1 -1
  48. package/dist/components/forms/EpSwitch.vue2.js.map +1 -1
  49. package/dist/components/forms/EpTextarea.vue2.js.map +1 -1
  50. package/dist/components/forms/EpToggle.vue2.js.map +1 -1
  51. package/dist/components/interactions/EpAccordeon.vue.js +1 -1
  52. package/dist/components/interactions/EpAccordeon.vue2.js.map +1 -1
  53. package/dist/components/interactions/EpContentSlider.vue.js +1 -1
  54. package/dist/components/interactions/EpContentSlider.vue.js.map +1 -1
  55. package/dist/components/interactions/EpDraggable.vue.js.map +1 -1
  56. package/dist/components/interactions/EpHotSpot.vue.js.map +1 -1
  57. package/dist/components/interactions/EpModal.vue.js.map +1 -1
  58. package/dist/components/interactions/EpQuestion.vue.js +1 -1
  59. package/dist/components/interactions/EpQuestion.vue.js.map +1 -1
  60. package/dist/components/interactions/EpSummativeTable.vue.js.map +1 -1
  61. package/dist/components/interactions/EpSvgShow.vue.js.map +1 -1
  62. package/dist/components/interactions/EpTooltip.vue.js.map +1 -1
  63. package/dist/components/medias/EpAudio.vue.js.map +1 -1
  64. package/dist/components/medias/EpCardLink.vue.js.map +1 -1
  65. package/dist/components/medias/EpCarousel.vue.js +1 -1
  66. package/dist/components/medias/EpCarousel.vue2.js.map +1 -1
  67. package/dist/components/medias/EpHierarchy.vue.js +1 -1
  68. package/dist/components/medias/EpHierarchy.vue2.js +1 -1
  69. package/dist/components/medias/EpHierarchy.vue2.js.map +1 -1
  70. package/dist/components/medias/EpIframe.vue.js.map +1 -1
  71. package/dist/components/medias/EpKatex.vue.js +1 -1
  72. package/dist/components/medias/EpKatex.vue2.js.map +1 -1
  73. package/dist/components/medias/EpLink.vue.js.map +1 -1
  74. package/dist/components/medias/EpLinkVersion.vue.js.map +1 -1
  75. package/dist/components/medias/EpLottieSvg.vue.js.map +1 -1
  76. package/dist/components/medias/EpSensibleImage.vue.js +1 -1
  77. package/dist/components/medias/EpSensibleImage.vue2.js.map +1 -1
  78. package/dist/components/medias/EpSoftware.vue.js.map +1 -1
  79. package/dist/components/medias/EpSvg.vue.js.map +1 -1
  80. package/dist/components/medias/EpTerm.vue.js.map +1 -1
  81. package/dist/components/medias/EpTimeLine.vue.js.map +1 -1
  82. package/dist/components/medias/EpVideo.vue.js.map +1 -1
  83. package/dist/components/medias/EpVideoPanopto.vue.js.map +1 -1
  84. package/dist/components/medias/EpWordDef.vue.js.map +1 -1
  85. package/dist/components/signages/EpAlert.vue.js +1 -1
  86. package/dist/components/signages/EpAlert.vue2.js.map +1 -1
  87. package/dist/components/signages/EpBadge.vue.js.map +1 -1
  88. package/dist/components/signages/EpHeader.vue.js.map +1 -1
  89. package/dist/components/signages/EpQuote.vue.js.map +1 -1
  90. package/dist/components/signages/EpSkeleton.vue.js +2 -2
  91. package/dist/components/signages/EpSkeleton.vue.js.map +1 -1
  92. package/dist/components/tools/DisplayBox.vue.js +39 -2
  93. package/dist/components/tools/DisplayBox.vue.js.map +1 -1
  94. package/dist/components/tools/DisplayBox.vue3.js +6 -0
  95. package/dist/components/tools/DisplayBox.vue3.js.map +1 -0
  96. package/dist/components/tools/TextMedia.vue2.js +1 -1
  97. package/dist/components/tools/TextMedia.vue2.js.map +1 -1
  98. package/dist/components/tools/TwoColsMedia.vue2.js +2 -2
  99. package/dist/components/tools/TwoColsMedia.vue2.js.map +1 -1
  100. package/dist/entry/basics/EpBtn.d.ts +3 -2
  101. package/dist/entry/basics/EpBtn.js +3 -1
  102. package/dist/entry/basics/EpBtn.js.map +1 -1
  103. package/dist/entry/basics/EpCard.d.ts +3 -2
  104. package/dist/entry/basics/EpCard.js +3 -1
  105. package/dist/entry/basics/EpCard.js.map +1 -1
  106. package/dist/entry/basics/EpChip.d.ts +3 -2
  107. package/dist/entry/basics/EpChip.js +3 -1
  108. package/dist/entry/basics/EpChip.js.map +1 -1
  109. package/dist/entry/basics/EpDivider.d.ts +3 -2
  110. package/dist/entry/basics/EpDivider.js +3 -1
  111. package/dist/entry/basics/EpDivider.js.map +1 -1
  112. package/dist/entry/basics/EpFlex.d.ts +3 -2
  113. package/dist/entry/basics/EpFlex.js +3 -1
  114. package/dist/entry/basics/EpFlex.js.map +1 -1
  115. package/dist/entry/basics/EpHover.d.ts +3 -2
  116. package/dist/entry/basics/EpHover.js +3 -1
  117. package/dist/entry/basics/EpHover.js.map +1 -1
  118. package/dist/entry/basics/EpHoverCard.d.ts +3 -2
  119. package/dist/entry/basics/EpHoverCard.js +3 -1
  120. package/dist/entry/basics/EpHoverCard.js.map +1 -1
  121. package/dist/entry/basics/EpIcon.d.ts +3 -2
  122. package/dist/entry/basics/EpIcon.js +3 -1
  123. package/dist/entry/basics/EpIcon.js.map +1 -1
  124. package/dist/entry/basics/EpImg.d.ts +3 -2
  125. package/dist/entry/basics/EpImg.js +3 -1
  126. package/dist/entry/basics/EpImg.js.map +1 -1
  127. package/dist/entry/basics/EpImgCarousel.d.ts +3 -2
  128. package/dist/entry/basics/EpImgCarousel.js +3 -1
  129. package/dist/entry/basics/EpImgCarousel.js.map +1 -1
  130. package/dist/entry/basics/EpList.d.ts +3 -2
  131. package/dist/entry/basics/EpList.js +3 -1
  132. package/dist/entry/basics/EpList.js.map +1 -1
  133. package/dist/entry/basics/EpListItem.d.ts +3 -2
  134. package/dist/entry/basics/EpListItem.js +3 -1
  135. package/dist/entry/basics/EpListItem.js.map +1 -1
  136. package/dist/entry/basics/EpSection.d.ts +3 -2
  137. package/dist/entry/basics/EpSection.js +3 -1
  138. package/dist/entry/basics/EpSection.js.map +1 -1
  139. package/dist/entry/basics/EpSectionCols.d.ts +3 -2
  140. package/dist/entry/basics/EpSectionCols.js +3 -1
  141. package/dist/entry/basics/EpSectionCols.js.map +1 -1
  142. package/dist/entry/basics/EpSpinner.d.ts +3 -2
  143. package/dist/entry/basics/EpSpinner.js +3 -1
  144. package/dist/entry/basics/EpSpinner.js.map +1 -1
  145. package/dist/entry/basics/EpStackedList.d.ts +3 -2
  146. package/dist/entry/basics/EpStackedList.js +3 -1
  147. package/dist/entry/basics/EpStackedList.js.map +1 -1
  148. package/dist/entry/basics/EpTable.d.ts +3 -2
  149. package/dist/entry/basics/EpTable.js +3 -1
  150. package/dist/entry/basics/EpTable.js.map +1 -1
  151. package/dist/entry/basics/EpText.d.ts +3 -2
  152. package/dist/entry/basics/EpText.js +3 -1
  153. package/dist/entry/basics/EpText.js.map +1 -1
  154. package/dist/entry/charts/EpBarChart.d.ts +3 -2
  155. package/dist/entry/charts/EpBarChart.js +3 -1
  156. package/dist/entry/charts/EpBarChart.js.map +1 -1
  157. package/dist/entry/charts/EpFunnelChart.d.ts +3 -2
  158. package/dist/entry/charts/EpFunnelChart.js +3 -1
  159. package/dist/entry/charts/EpFunnelChart.js.map +1 -1
  160. package/dist/entry/charts/EpLineChart.d.ts +3 -2
  161. package/dist/entry/charts/EpLineChart.js +3 -1
  162. package/dist/entry/charts/EpLineChart.js.map +1 -1
  163. package/dist/entry/charts/EpPieChart.d.ts +3 -2
  164. package/dist/entry/charts/EpPieChart.js +3 -1
  165. package/dist/entry/charts/EpPieChart.js.map +1 -1
  166. package/dist/entry/educationals/EpBranchingScenario.d.ts +3 -2
  167. package/dist/entry/educationals/EpBranchingScenario.js +3 -1
  168. package/dist/entry/educationals/EpBranchingScenario.js.map +1 -1
  169. package/dist/entry/educationals/EpCodeblock.d.ts +3 -2
  170. package/dist/entry/educationals/EpCodeblock.js +3 -1
  171. package/dist/entry/educationals/EpCodeblock.js.map +1 -1
  172. package/dist/entry/educationals/EpConclusion.d.ts +3 -2
  173. package/dist/entry/educationals/EpConclusion.js +3 -1
  174. package/dist/entry/educationals/EpConclusion.js.map +1 -1
  175. package/dist/entry/educationals/EpDescription.d.ts +3 -2
  176. package/dist/entry/educationals/EpDescription.js +3 -1
  177. package/dist/entry/educationals/EpDescription.js.map +1 -1
  178. package/dist/entry/educationals/EpDocument.d.ts +3 -2
  179. package/dist/entry/educationals/EpDocument.js +3 -1
  180. package/dist/entry/educationals/EpDocument.js.map +1 -1
  181. package/dist/entry/educationals/EpEdu.d.ts +3 -2
  182. package/dist/entry/educationals/EpEdu.js +3 -1
  183. package/dist/entry/educationals/EpEdu.js.map +1 -1
  184. package/dist/entry/educationals/EpInstructions.d.ts +3 -2
  185. package/dist/entry/educationals/EpInstructions.js +3 -1
  186. package/dist/entry/educationals/EpInstructions.js.map +1 -1
  187. package/dist/entry/educationals/EpIntroduction.d.ts +3 -2
  188. package/dist/entry/educationals/EpIntroduction.js +3 -1
  189. package/dist/entry/educationals/EpIntroduction.js.map +1 -1
  190. package/dist/entry/educationals/EpObjective.d.ts +3 -2
  191. package/dist/entry/educationals/EpObjective.js +3 -1
  192. package/dist/entry/educationals/EpObjective.js.map +1 -1
  193. package/dist/entry/educationals/EpReading.d.ts +3 -2
  194. package/dist/entry/educationals/EpReading.js +3 -1
  195. package/dist/entry/educationals/EpReading.js.map +1 -1
  196. package/dist/entry/educationals/EpResource.d.ts +3 -2
  197. package/dist/entry/educationals/EpResource.js +3 -1
  198. package/dist/entry/educationals/EpResource.js.map +1 -1
  199. package/dist/entry/educationals/EpScope.d.ts +3 -2
  200. package/dist/entry/educationals/EpScope.js +3 -1
  201. package/dist/entry/educationals/EpScope.js.map +1 -1
  202. package/dist/entry/educationals/EpSpecificObjective.d.ts +3 -2
  203. package/dist/entry/educationals/EpSpecificObjective.js +3 -1
  204. package/dist/entry/educationals/EpSpecificObjective.js.map +1 -1
  205. package/dist/entry/interactions/EpAccordeon.d.ts +3 -2
  206. package/dist/entry/interactions/EpAccordeon.js +3 -1
  207. package/dist/entry/interactions/EpAccordeon.js.map +1 -1
  208. package/dist/entry/interactions/EpContentSlider.d.ts +3 -2
  209. package/dist/entry/interactions/EpContentSlider.js +3 -1
  210. package/dist/entry/interactions/EpContentSlider.js.map +1 -1
  211. package/dist/entry/interactions/EpDarkMode.d.ts +3 -2
  212. package/dist/entry/interactions/EpDarkMode.js +3 -1
  213. package/dist/entry/interactions/EpDarkMode.js.map +1 -1
  214. package/dist/entry/interactions/EpDraggable.d.ts +3 -2
  215. package/dist/entry/interactions/EpDraggable.js +3 -1
  216. package/dist/entry/interactions/EpDraggable.js.map +1 -1
  217. package/dist/entry/interactions/EpHotSpot.d.ts +3 -2
  218. package/dist/entry/interactions/EpHotSpot.js +3 -1
  219. package/dist/entry/interactions/EpHotSpot.js.map +1 -1
  220. package/dist/entry/interactions/EpModal.d.ts +3 -2
  221. package/dist/entry/interactions/EpModal.js +3 -1
  222. package/dist/entry/interactions/EpModal.js.map +1 -1
  223. package/dist/entry/interactions/EpQuestion.d.ts +3 -2
  224. package/dist/entry/interactions/EpQuestion.js +3 -1
  225. package/dist/entry/interactions/EpQuestion.js.map +1 -1
  226. package/dist/entry/interactions/EpSummativeTable.d.ts +3 -2
  227. package/dist/entry/interactions/EpSummativeTable.js +3 -1
  228. package/dist/entry/interactions/EpSummativeTable.js.map +1 -1
  229. package/dist/entry/interactions/EpSvgShow.d.ts +3 -2
  230. package/dist/entry/interactions/EpSvgShow.js +3 -1
  231. package/dist/entry/interactions/EpSvgShow.js.map +1 -1
  232. package/dist/entry/interactions/EpTabs.d.ts +3 -2
  233. package/dist/entry/interactions/EpTabs.js +3 -1
  234. package/dist/entry/interactions/EpTabs.js.map +1 -1
  235. package/dist/entry/interactions/EpTooltip.d.ts +3 -2
  236. package/dist/entry/interactions/EpTooltip.js +3 -1
  237. package/dist/entry/interactions/EpTooltip.js.map +1 -1
  238. package/dist/entry/medias/EpAudio.d.ts +3 -2
  239. package/dist/entry/medias/EpAudio.js +3 -1
  240. package/dist/entry/medias/EpAudio.js.map +1 -1
  241. package/dist/entry/medias/EpCardLink.d.ts +3 -2
  242. package/dist/entry/medias/EpCardLink.js +3 -1
  243. package/dist/entry/medias/EpCardLink.js.map +1 -1
  244. package/dist/entry/medias/EpCarousel.d.ts +3 -2
  245. package/dist/entry/medias/EpCarousel.js +3 -1
  246. package/dist/entry/medias/EpCarousel.js.map +1 -1
  247. package/dist/entry/medias/EpHierarchy.d.ts +3 -2
  248. package/dist/entry/medias/EpHierarchy.js +3 -1
  249. package/dist/entry/medias/EpHierarchy.js.map +1 -1
  250. package/dist/entry/medias/EpIframe.d.ts +3 -2
  251. package/dist/entry/medias/EpIframe.js +3 -1
  252. package/dist/entry/medias/EpIframe.js.map +1 -1
  253. package/dist/entry/medias/EpKatex.d.ts +3 -2
  254. package/dist/entry/medias/EpKatex.js +3 -1
  255. package/dist/entry/medias/EpKatex.js.map +1 -1
  256. package/dist/entry/medias/EpLink.d.ts +3 -2
  257. package/dist/entry/medias/EpLink.js +3 -1
  258. package/dist/entry/medias/EpLink.js.map +1 -1
  259. package/dist/entry/medias/EpLinkVersion.d.ts +3 -2
  260. package/dist/entry/medias/EpLinkVersion.js +3 -1
  261. package/dist/entry/medias/EpLinkVersion.js.map +1 -1
  262. package/dist/entry/medias/EpLottieSvg.d.ts +3 -2
  263. package/dist/entry/medias/EpLottieSvg.js +3 -1
  264. package/dist/entry/medias/EpLottieSvg.js.map +1 -1
  265. package/dist/entry/medias/EpSoftware.d.ts +3 -2
  266. package/dist/entry/medias/EpSoftware.js +3 -1
  267. package/dist/entry/medias/EpSoftware.js.map +1 -1
  268. package/dist/entry/medias/EpSvg.d.ts +3 -2
  269. package/dist/entry/medias/EpSvg.js +3 -1
  270. package/dist/entry/medias/EpSvg.js.map +1 -1
  271. package/dist/entry/medias/EpTerm.d.ts +3 -2
  272. package/dist/entry/medias/EpTerm.js +3 -1
  273. package/dist/entry/medias/EpTerm.js.map +1 -1
  274. package/dist/entry/medias/EpTimeLine.d.ts +3 -2
  275. package/dist/entry/medias/EpTimeLine.js +3 -1
  276. package/dist/entry/medias/EpTimeLine.js.map +1 -1
  277. package/dist/entry/medias/EpVideo.d.ts +3 -2
  278. package/dist/entry/medias/EpVideo.js +3 -1
  279. package/dist/entry/medias/EpVideo.js.map +1 -1
  280. package/dist/entry/medias/EpVideoPanopto.d.ts +3 -2
  281. package/dist/entry/medias/EpVideoPanopto.js +3 -1
  282. package/dist/entry/medias/EpVideoPanopto.js.map +1 -1
  283. package/dist/entry/medias/EpWordDef.d.ts +3 -2
  284. package/dist/entry/medias/EpWordDef.js +3 -1
  285. package/dist/entry/medias/EpWordDef.js.map +1 -1
  286. package/dist/entry/signages/EpAlert.d.ts +3 -2
  287. package/dist/entry/signages/EpAlert.js +3 -1
  288. package/dist/entry/signages/EpAlert.js.map +1 -1
  289. package/dist/entry/signages/EpBadge.d.ts +3 -2
  290. package/dist/entry/signages/EpBadge.js +3 -1
  291. package/dist/entry/signages/EpBadge.js.map +1 -1
  292. package/dist/entry/signages/EpHeader.d.ts +3 -2
  293. package/dist/entry/signages/EpHeader.js +3 -1
  294. package/dist/entry/signages/EpHeader.js.map +1 -1
  295. package/dist/entry/signages/EpNothing.d.ts +3 -2
  296. package/dist/entry/signages/EpNothing.js +3 -1
  297. package/dist/entry/signages/EpNothing.js.map +1 -1
  298. package/dist/entry/signages/EpQuote.d.ts +3 -2
  299. package/dist/entry/signages/EpQuote.js +3 -1
  300. package/dist/entry/signages/EpQuote.js.map +1 -1
  301. package/dist/entry/signages/EpSkeleton.d.ts +3 -2
  302. package/dist/entry/signages/EpSkeleton.js +3 -1
  303. package/dist/entry/signages/EpSkeleton.js.map +1 -1
  304. package/dist/style.css +5212 -0
  305. package/dist/types/Border.d.ts +1 -2
  306. package/dist/types/Codeblock.d.ts +1 -2
  307. package/dist/types/Codeblock.js.map +1 -1
  308. package/package.json +4 -3
  309. package/dist/assets/ep-lib-ts.css +0 -235
  310. package/dist/components/tools/DisplayBox.vue2.js +0 -43
  311. package/dist/components/tools/DisplayBox.vue2.js.map +0 -1
  312. package/dist/testImg.jpg +0 -0
  313. package/dist/testMaria.jpg +0 -0
@@ -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 { 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 ? \"bg-gray-100 dark:text-dark\" : \"\";\n return `${tabStyle} ${bgStyle}`;\n});\n</script>\n<template>\n <div\n :class=\"`${styles} rounded-lg p-4 ml-10 border border-t-gray-100 border-r-gray-100 border-b-gray-100`\"\n >\n <div class=\"flex flex-nowrap gap-x-4\">\n <div v-if=\"label\" class=\"flex-none self-center\">\n <div\n class=\"inline-flex items-center rounded-md px-2 py-1 text-xs font-medium text-primary-700 ring-1 ring-inset ring-primary-600/20\"\n >\n {{ label }}\n </div>\n </div>\n <div class=\"flex-auto\">\n <dd\n :class=\"`mt-1 text-base font-base text-gray-900 ${\n bg ? 'dark:text-dark' : 'dark:text-gray-300'\n }`\"\n >\n {{ content }}\n </dd>\n </div>\n </div>\n </div>\n</template>\n"],"names":["_createElementBlock","_createElementVNode","label","_openBlock","_toDisplayString","_normalizeClass","bg","content"],"mappings":";;;;;;;;;;;;;;;;;;AAUA,UAAM,SAAS,SAAS,MAAM;AAC5B,YAAM,WAAW,QAAA,MAAM,cAAc,QAAA,KAAK,MAAM;AAChD,YAAM,UAAU,QAAA,KAAK,+BAA+B;AACpD,aAAO,GAAG,QAAQ,IAAI,OAAO;AAAA,IAC/B,CAAC;;0BAGCA,mBAqBM,OAAA;AAAA,QApBH,yBAAU,OAAA,KAAM,oFAAA;AAAA,MAAA;QAEjBC,mBAiBM,OAjBN,YAiBM;AAAA,UAhBOC,KAAAA,SAAXC,UAAA,GAAAH,mBAMM,OANN,YAMM;AAAA,YALJC,mBAIM,OAJN,YAIMG,gBADDF,KAAAA,KAAK,GAAA,CAAA;AAAA,UAAA;UAGZD,mBAQM,OARN,YAQM;AAAA,YAPJA,mBAMK,MAAA;AAAA,cALF,OAAKI,eAAA,0CAAyDC,KAAAA,KAAE,mBAAA;+BAI9DC,KAAAA,OAAO,GAAA,CAAA;AAAA,UAAA;;;;;;"}
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 ? \"bg-gray-100 dark:text-dark\" : \"\";\n return `${tabStyle} ${bgStyle}`;\n});\n</script>\n<template>\n <div\n :class=\"`${styles} rounded-lg p-4 ml-10 border border-t-gray-100 border-r-gray-100 border-b-gray-100`\"\n >\n <div class=\"flex flex-nowrap gap-x-4\">\n <div v-if=\"label\" class=\"flex-none self-center\">\n <div\n class=\"inline-flex items-center rounded-md px-2 py-1 text-xs font-medium text-primary-700 ring-1 ring-inset ring-primary-600/20\"\n >\n {{ label }}\n </div>\n </div>\n <div class=\"flex-auto\">\n <dd\n :class=\"`mt-1 text-base font-base text-gray-900 ${\n bg ? 'dark:text-dark' : 'dark:text-gray-300'\n }`\"\n >\n {{ content }}\n </dd>\n </div>\n </div>\n </div>\n</template>\n"],"names":["_createElementBlock","_createElementVNode","label","_openBlock","_toDisplayString","_normalizeClass","bg","content"],"mappings":";;;;;;;;;;;;;;;;;;AAUA,UAAM,SAAS,SAAS,MAAM;AAC5B,YAAM,WAAW,QAAA,MAAM,cAAc,QAAA,KAAK,MAAM;AAChD,YAAM,UAAU,QAAA,KAAK,+BAA+B;AACpD,aAAO,GAAG,QAAQ,IAAI,OAAO;AAAA,IAC/B,CAAC;;0BAGCA,mBAqBM,OAAA;AAAA,QApBH,yBAAU,OAAA,KAAM,oFAAA;AAAA,MAAA;QAEjBC,mBAiBM,OAjBN,YAiBM;AAAA,UAhBOC,KAAAA,SAAXC,UAAA,GAAAH,mBAMM,OANN,YAMM;AAAA,YALJC,mBAIM,OAJN,YAIMG,gBADDF,KAAAA,KAAK,GAAA,CAAA;AAAA,UAAA;UAGZD,mBAQM,OARN,YAQM;AAAA,YAPJA,mBAMK,MAAA;AAAA,cALF,OAAKI,eAAA,0CAAyDC,KAAAA,KAAE,mBAAA;+BAI9DC,KAAAA,OAAO,GAAA,CAAA;AAAA,UAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"EpCheckbox.vue2.js","sources":["../../../src/components/forms/EpCheckbox.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { toRefs, computed } from \"vue\";\nimport { EpCheckboxProps } from \"~/types/forms/EpCheckbox\";\n\nconst props = withDefaults(defineProps<EpCheckboxProps>(), {\n id: \"0\",\n label: \"check\",\n disabled: false,\n readonly: false,\n value: undefined,\n modelValue: \"\",\n});\n\nconst emit = defineEmits<{\n (e: \"update:modelValue\", modelValue: string | string[] | boolean): void;\n}>();\n\nconst model = computed({\n get() {\n return props.modelValue;\n },\n set(value) {\n emit(\"update:modelValue\", value);\n },\n});\n\nconst { id, label, disabled, readonly, value } = toRefs(props);\n</script>\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-gray-200\"\n >\n <input\n type=\"checkbox\"\n :id=\"id\"\n v-model=\"model\"\n :value=\"value\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n name=\"notification-method\"\n class=\"rounded bg-gray-200 border-gray-300 focus:border-transparent focus:bg-gray-200 text-primary focus:ring-1 focus:ring-offset-2 focus:ring-primary\"\n />\n <span class=\"ml-2\">{{ label }}</span>\n <!-- sm:w-24 md:w-48 -->\n </label>\n</template>\n"],"names":["value","_openBlock","_createElementBlock","_createElementVNode","_unref","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;AAIA,UAAM,QAAQ;AASd,UAAM,OAAO;AAIb,UAAM,QAAQ,SAAS;AAAA,MACrB,MAAM;AACJ,eAAO,MAAM;AAAA,MACf;AAAA,MACA,IAAIA,QAAO;AACT,aAAK,qBAAqBA,MAAK;AAAA,MACjC;AAAA,IAAA,CACD;AAED,UAAM,EAAE,IAAI,OAAO,UAAU,UAAU,MAAA,IAAU,OAAO,KAAK;;AAG3D,aAAAC,UAAA,GAAAC,mBAeQ,SAfR,YAeQ;AAAA,uBAZNC,mBASE,SAAA;AAAA,UARA,MAAK;AAAA,UACJ,IAAIC,MAAA,EAAA;AAAA,uEACI,MAAK,QAAA;AAAA,UACb,OAAOA,MAAA,KAAA;AAAA,UACP,UAAUA,MAAA,QAAA;AAAA,UACV,UAAUA,MAAA,QAAA;AAAA,UACX,MAAK;AAAA,UACL,OAAM;AAAA,QAAA;2BALG,MAAA,KAAK;AAAA,QAAA;QAOhBD,mBAAqC,QAArC,YAAqCE,gBAAfD,MAAA,KAAA,CAAK,GAAA,CAAA;AAAA,MAAA;;;;"}
1
+ {"version":3,"file":"EpCheckbox.vue2.js","sources":["../../../src/components/forms/EpCheckbox.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { toRefs, computed } from \"vue\";\nimport type { EpCheckboxProps } from \"~/types/forms/EpCheckbox\";\n\nconst props = withDefaults(defineProps<EpCheckboxProps>(), {\n id: \"0\",\n label: \"check\",\n disabled: false,\n readonly: false,\n value: undefined,\n modelValue: \"\",\n});\n\nconst emit = defineEmits<{\n (e: \"update:modelValue\", modelValue: string | string[] | boolean): void;\n}>();\n\nconst model = computed({\n get() {\n return props.modelValue;\n },\n set(value) {\n emit(\"update:modelValue\", value);\n },\n});\n\nconst { id, label, disabled, readonly, value } = toRefs(props);\n</script>\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-gray-200\"\n >\n <input\n type=\"checkbox\"\n :id=\"id\"\n v-model=\"model\"\n :value=\"value\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n name=\"notification-method\"\n class=\"rounded bg-gray-200 border-gray-300 focus:border-transparent focus:bg-gray-200 text-primary focus:ring-1 focus:ring-offset-2 focus:ring-primary\"\n />\n <span class=\"ml-2\">{{ label }}</span>\n <!-- sm:w-24 md:w-48 -->\n </label>\n</template>\n"],"names":["value","_openBlock","_createElementBlock","_createElementVNode","_unref","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;AAIA,UAAM,QAAQ;AASd,UAAM,OAAO;AAIb,UAAM,QAAQ,SAAS;AAAA,MACrB,MAAM;AACJ,eAAO,MAAM;AAAA,MACf;AAAA,MACA,IAAIA,QAAO;AACT,aAAK,qBAAqBA,MAAK;AAAA,MACjC;AAAA,IAAA,CACD;AAED,UAAM,EAAE,IAAI,OAAO,UAAU,UAAU,MAAA,IAAU,OAAO,KAAK;;AAG3D,aAAAC,UAAA,GAAAC,mBAeQ,SAfR,YAeQ;AAAA,uBAZNC,mBASE,SAAA;AAAA,UARA,MAAK;AAAA,UACJ,IAAIC,MAAA,EAAA;AAAA,uEACI,MAAK,QAAA;AAAA,UACb,OAAOA,MAAA,KAAA;AAAA,UACP,UAAUA,MAAA,QAAA;AAAA,UACV,UAAUA,MAAA,QAAA;AAAA,UACX,MAAK;AAAA,UACL,OAAM;AAAA,QAAA;2BALG,MAAA,KAAK;AAAA,QAAA;QAOhBD,mBAAqC,QAArC,YAAqCE,gBAAfD,MAAA,KAAA,CAAK,GAAA,CAAA;AAAA,MAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"EpInput.vue2.js","sources":["../../../src/components/forms/EpInput.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { toRefs, toRef } from \"vue\";\nimport { useField } from \"vee-validate\";\nimport EpBadge from \"~/components/basics/EpBadge.vue\";\nimport { mdiLockOutline } from \"@mdi/js\";\nimport { EpInputProps } from \"~/types/forms/EpInput\";\n\nconst props = withDefaults(defineProps<EpInputProps>(), {\n id: \"0\",\n label: \"label\",\n modelValue: \"\",\n type: \"text\",\n placeholder: \"\",\n iconPath: \"\",\n iconSize: \"32\",\n disabled: false,\n readonly: false,\n});\n\ndefineEmits<{\n (e: \"update:modelValue\", modelValue: string): void;\n}>();\n\nconst { id, label, type, disabled } = toRefs(props);\n\nconst name = toRef(props, \"name\");\n\nfunction validateField(value: string) {\n if (!value) {\n return \"this field is required\";\n }\n if (value.length < 8) {\n return \"this field must contain at least 8 characters\";\n }\n return true;\n}\n\nconst { value, errorMessage, meta } = useField(name, validateField);\n//($event.target as HTMLInputElement).value)\n</script>\n\n<template>\n {{ meta }}\n <!-- <div>\n <label :for=\"id\">{{ label }}</label>\n <input\n :id=\"id\"\n :type=\"type\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :value=\"modelValue\"\n @input=\"$emit('update:modelValue', $event.target.value)\"\n class=\"form-input p-2 border-solid border-gray-400 border-1 w-full rounded-md\"\n />\n </div> -->\n\n <!-- <EpIcon\n v-if=\"prependIcon\"\n :iconPath=\"prependIcon\"\n :size=\"iconSize\"\n extraClass=\"mr-2\"\n /> -->\n\n <!-- <label for=\"\" class=\"text-xs px-1\">\n <span>First name</span>\n <span class=\"text-xs font-semibold px-1\">* requis</span>\n <div class=\"flex\">\n <div\n class=\"w-10 z-10 pl-1 text-center pointer-events-none text-gray-500 flex items-center justify-center\"\n >\n <EpIcon\n v-if=\"iconPath\"\n :iconPath=\"iconPath\"\n :size=\"iconSize\"\n extraClass=\"mr-2\"\n />\n </div>\n <input\n type=\"text\"\n class=\"w-full -ml-10 pl-10 pr-3 py-2 rounded-lg border-2 border-gray-300 outline-none focus:border-blue-500\"\n placeholder=\"John\"\n />\n <input\n type=\"text\"\n class=\"mt-0 block w-full px-0.5 border-0 border-b-2 border-gray-200 focus:ring-0 focus:border-black\"\n placeholder=\"\"\n />\n </div>\n </label> -->\n <div class=\"w-72\">\n <div class=\"relative h-10 w-full min-w-[200px]\">\n <div\n class=\"absolute top-2/4 right-3 grid h-5 w-5 -translate-y-2/4 place-items-center text-neutral-400\"\n >\n <!-- <EpIcon\n v-if=\"iconPath\"\n :iconPath=\"iconPath\"\n :size=\"iconSize\"\n extraClass=\"mr-2\"\n /> -->\n </div>\n <input\n :id=\"id\"\n :type=\"type\"\n class=\"peer h-full w-full rounded-[7px] border border-blue-200 border-t-transparent bg-transparent px-3 py-2.5 !pr-9 font-sans text-sm font-normal text-neutral-700 outline outline-0 transition-all placeholder-shown:border placeholder-shown:border-neutral-200 placeholder-shown:border-t-neutral-200 focus:border-2 focus:border-blue-500 focus:border-t-transparent focus:outline-0 disabled:border-0 disabled:bg-neutral-100 disabled:cursor-not-allowed\"\n placeholder=\" \"\n :disabled=\"disabled\"\n />\n <label\n :for=\"id\"\n class=\"before:content[' '] after:content[' '] pointer-events-none absolute left-0 -top-1.5 flex h-full w-full select-none text-[11px] font-normal leading-tight text-neutral-400 transition-all before:pointer-events-none before:mt-[6.5px] before:mr-1 before:box-border before:block before:h-1.5 before:w-2.5 before:rounded-tl-md before:border-t before:border-l before:border-blue-200 before:transition-all after:pointer-events-none after:mt-[6.5px] after:ml-1 after:box-border after:block after:h-1.5 after:w-2.5 after:flex-grow after:rounded-tr-md after:border-t after:border-r after:border-blue-200 after:transition-all peer-placeholder-shown:text-sm peer-placeholder-shown:leading-[3.75] peer-placeholder-shown:text-neutral-700 peer-placeholder-shown:before:border-transparent peer-placeholder-shown:after:border-transparent peer-focus:text-[11px] peer-focus:leading-tight peer-focus:text-blue-500 peer-focus:before:border-t-2 peer-focus:before:border-l-2 peer-focus:before:border-blue-500 peer-focus:after:border-t-2 peer-focus:after:border-r-2 peer-focus:after:border-blue-500 peer-disabled:text-transparent peer-disabled:before:border-transparent peer-disabled:after:border-transparent peer-disabled:peer-placeholder-shown:text-neutral-500\"\n >\n {{ label }}\n </label>\n <EpBadge :iconPath=\"mdiLockOutline\" />\n <!-- <span class=\"badge absolute -top-1 -right-1 flex h-3 w-3\">\n <span\n class=\"animate-ping absolute inline-flex h-full w-full rounded-full bg-red-400 opacity-75\"\n />\n <span\n class=\"relative inline-flex rounded-full h-3 w-3 bg-red-500\"\n />\n </span> -->\n </div>\n </div>\n <div class=\"my-3\">\n {{ name }}\n <input type=\"text\" v-model=\"value\" :name=\"name\" :id=\"name\" />\n <div v-if=\"errorMessage\">{{ errorMessage }}</div>\n </div>\n</template>\n"],"names":["value","_createTextVNode","_toDisplayString","_unref","_createElementVNode","_createVNode","EpBadge","_openBlock","_createElementBlock"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,UAAM,QAAQ;AAgBd,UAAM,EAAE,IAAI,OAAO,MAAM,SAAA,IAAa,OAAO,KAAK;AAElD,UAAM,OAAO,MAAM,OAAO,MAAM;AAEhC,aAAS,cAAcA,QAAe;AACpC,UAAI,CAACA,QAAO;AACV,eAAO;AAAA,MACT;AACA,UAAIA,OAAM,SAAS,GAAG;AACpB,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT;AAEA,UAAM,EAAE,OAAO,cAAc,SAAS,SAAS,MAAM,aAAa;;;QAK7DC,gBAAAC,gBAAAC,MAAA,IAAA,CAAI,IAAG,KAgDV,CAAA;AAAA,QAAAC,mBAmCM,OAnCN,YAmCM;AAAA,UAlCJA,mBAiCM,OAjCN,YAiCM;AAAA,sCAhCJA,mBASM,OAAA,EARJ,OAAM,6FAAA,GAA4F,MAAA,EAAA;AAAA,YASpGA,mBAME,SAAA;AAAA,cALC,IAAID,MAAA,EAAA;AAAA,cACJ,MAAMA,MAAA,IAAA;AAAA,cACP,OAAM;AAAA,cACN,aAAY;AAAA,cACX,UAAUA,MAAA,QAAA;AAAA,YAAA;YAEbC,mBAKQ,SAAA;AAAA,cAJL,KAAKD,MAAA,EAAA;AAAA,cACN,OAAM;AAAA,YAAA,mBAEHA,MAAA,KAAA,CAAK,GAAA,GAAA,UAAA;AAAA,YAEVE,YAAsCC,aAAA,EAA5B,UAAUH,MAAA,cAAA,EAAA,GAAc,MAAA,GAAA,CAAA,UAAA,CAAA;AAAA,UAAA;;QAWtCC,mBAIM,OAJN,YAIM;AAAA,UAHDH,gBAAAC,gBAAA,KAAA,KAAI,IAAG,KACV,CAAA;AAAA,yBAAAE,mBAA6D,SAAA;AAAA,YAAtD,MAAK;AAAA,wFAAgB,MAAK,QAAA,SAAA;AAAA,YAAG,MAAM,KAAA;AAAA,YAAO,IAAI,KAAA;AAAA,UAAA;yBAAzBD,MAAA,KAAA,CAAK;AAAA,UAAA;UACtBA,MAAA,YAAA,KAAXI,UAAA,GAAAC,mBAAiD,mCAArBL,MAAA,YAAA,CAAY,GAAA,CAAA;;;;;;"}
1
+ {"version":3,"file":"EpInput.vue2.js","sources":["../../../src/components/forms/EpInput.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { toRefs, toRef } from \"vue\";\nimport { useField } from \"vee-validate\";\nimport EpBadge from \"~/components/basics/EpBadge.vue\";\nimport { mdiLockOutline } from \"@mdi/js\";\nimport type { EpInputProps } from \"~/types/forms/EpInput\";\n\nconst props = withDefaults(defineProps<EpInputProps>(), {\n id: \"0\",\n label: \"label\",\n modelValue: \"\",\n type: \"text\",\n placeholder: \"\",\n iconPath: \"\",\n iconSize: \"32\",\n disabled: false,\n readonly: false,\n});\n\ndefineEmits<{\n (e: \"update:modelValue\", modelValue: string): void;\n}>();\n\nconst { id, label, type, disabled } = toRefs(props);\n\nconst name = toRef(props, \"name\");\n\nfunction validateField(value: string) {\n if (!value) {\n return \"this field is required\";\n }\n if (value.length < 8) {\n return \"this field must contain at least 8 characters\";\n }\n return true;\n}\n\nconst { value, errorMessage, meta } = useField(name, validateField);\n//($event.target as HTMLInputElement).value)\n</script>\n\n<template>\n {{ meta }}\n <!-- <div>\n <label :for=\"id\">{{ label }}</label>\n <input\n :id=\"id\"\n :type=\"type\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :value=\"modelValue\"\n @input=\"$emit('update:modelValue', $event.target.value)\"\n class=\"form-input p-2 border-solid border-gray-400 border-1 w-full rounded-md\"\n />\n </div> -->\n\n <!-- <EpIcon\n v-if=\"prependIcon\"\n :iconPath=\"prependIcon\"\n :size=\"iconSize\"\n extraClass=\"mr-2\"\n /> -->\n\n <!-- <label for=\"\" class=\"text-xs px-1\">\n <span>First name</span>\n <span class=\"text-xs font-semibold px-1\">* requis</span>\n <div class=\"flex\">\n <div\n class=\"w-10 z-10 pl-1 text-center pointer-events-none text-gray-500 flex items-center justify-center\"\n >\n <EpIcon\n v-if=\"iconPath\"\n :iconPath=\"iconPath\"\n :size=\"iconSize\"\n extraClass=\"mr-2\"\n />\n </div>\n <input\n type=\"text\"\n class=\"w-full -ml-10 pl-10 pr-3 py-2 rounded-lg border-2 border-gray-300 outline-none focus:border-blue-500\"\n placeholder=\"John\"\n />\n <input\n type=\"text\"\n class=\"mt-0 block w-full px-0.5 border-0 border-b-2 border-gray-200 focus:ring-0 focus:border-black\"\n placeholder=\"\"\n />\n </div>\n </label> -->\n <div class=\"w-72\">\n <div class=\"relative h-10 w-full min-w-[200px]\">\n <div\n class=\"absolute top-2/4 right-3 grid h-5 w-5 -translate-y-2/4 place-items-center text-neutral-400\"\n >\n <!-- <EpIcon\n v-if=\"iconPath\"\n :iconPath=\"iconPath\"\n :size=\"iconSize\"\n extraClass=\"mr-2\"\n /> -->\n </div>\n <input\n :id=\"id\"\n :type=\"type\"\n class=\"peer h-full w-full rounded-[7px] border border-blue-200 border-t-transparent bg-transparent px-3 py-2.5 !pr-9 font-sans text-sm font-normal text-neutral-700 outline outline-0 transition-all placeholder-shown:border placeholder-shown:border-neutral-200 placeholder-shown:border-t-neutral-200 focus:border-2 focus:border-blue-500 focus:border-t-transparent focus:outline-0 disabled:border-0 disabled:bg-neutral-100 disabled:cursor-not-allowed\"\n placeholder=\" \"\n :disabled=\"disabled\"\n />\n <label\n :for=\"id\"\n class=\"before:content[' '] after:content[' '] pointer-events-none absolute left-0 -top-1.5 flex h-full w-full select-none text-[11px] font-normal leading-tight text-neutral-400 transition-all before:pointer-events-none before:mt-[6.5px] before:mr-1 before:box-border before:block before:h-1.5 before:w-2.5 before:rounded-tl-md before:border-t before:border-l before:border-blue-200 before:transition-all after:pointer-events-none after:mt-[6.5px] after:ml-1 after:box-border after:block after:h-1.5 after:w-2.5 after:flex-grow after:rounded-tr-md after:border-t after:border-r after:border-blue-200 after:transition-all peer-placeholder-shown:text-sm peer-placeholder-shown:leading-[3.75] peer-placeholder-shown:text-neutral-700 peer-placeholder-shown:before:border-transparent peer-placeholder-shown:after:border-transparent peer-focus:text-[11px] peer-focus:leading-tight peer-focus:text-blue-500 peer-focus:before:border-t-2 peer-focus:before:border-l-2 peer-focus:before:border-blue-500 peer-focus:after:border-t-2 peer-focus:after:border-r-2 peer-focus:after:border-blue-500 peer-disabled:text-transparent peer-disabled:before:border-transparent peer-disabled:after:border-transparent peer-disabled:peer-placeholder-shown:text-neutral-500\"\n >\n {{ label }}\n </label>\n <EpBadge :iconPath=\"mdiLockOutline\" />\n <!-- <span class=\"badge absolute -top-1 -right-1 flex h-3 w-3\">\n <span\n class=\"animate-ping absolute inline-flex h-full w-full rounded-full bg-red-400 opacity-75\"\n />\n <span\n class=\"relative inline-flex rounded-full h-3 w-3 bg-red-500\"\n />\n </span> -->\n </div>\n </div>\n <div class=\"my-3\">\n {{ name }}\n <input type=\"text\" v-model=\"value\" :name=\"name\" :id=\"name\" />\n <div v-if=\"errorMessage\">{{ errorMessage }}</div>\n </div>\n</template>\n"],"names":["value","_createTextVNode","_toDisplayString","_unref","_createElementVNode","_createVNode","EpBadge","_openBlock","_createElementBlock"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,UAAM,QAAQ;AAgBd,UAAM,EAAE,IAAI,OAAO,MAAM,SAAA,IAAa,OAAO,KAAK;AAElD,UAAM,OAAO,MAAM,OAAO,MAAM;AAEhC,aAAS,cAAcA,QAAe;AACpC,UAAI,CAACA,QAAO;AACV,eAAO;AAAA,MACT;AACA,UAAIA,OAAM,SAAS,GAAG;AACpB,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT;AAEA,UAAM,EAAE,OAAO,cAAc,SAAS,SAAS,MAAM,aAAa;;;QAK7DC,gBAAAC,gBAAAC,MAAA,IAAA,CAAI,IAAG,KAgDV,CAAA;AAAA,QAAAC,mBAmCM,OAnCN,YAmCM;AAAA,UAlCJA,mBAiCM,OAjCN,YAiCM;AAAA,sCAhCJA,mBASM,OAAA,EARJ,OAAM,6FAAA,GAA4F,MAAA,EAAA;AAAA,YASpGA,mBAME,SAAA;AAAA,cALC,IAAID,MAAA,EAAA;AAAA,cACJ,MAAMA,MAAA,IAAA;AAAA,cACP,OAAM;AAAA,cACN,aAAY;AAAA,cACX,UAAUA,MAAA,QAAA;AAAA,YAAA;YAEbC,mBAKQ,SAAA;AAAA,cAJL,KAAKD,MAAA,EAAA;AAAA,cACN,OAAM;AAAA,YAAA,mBAEHA,MAAA,KAAA,CAAK,GAAA,GAAA,UAAA;AAAA,YAEVE,YAAsCC,aAAA,EAA5B,UAAUH,MAAA,cAAA,EAAA,GAAc,MAAA,GAAA,CAAA,UAAA,CAAA;AAAA,UAAA;;QAWtCC,mBAIM,OAJN,YAIM;AAAA,UAHDH,gBAAAC,gBAAA,KAAA,KAAI,IAAG,KACV,CAAA;AAAA,yBAAAE,mBAA6D,SAAA;AAAA,YAAtD,MAAK;AAAA,wFAAgB,MAAK,QAAA,SAAA;AAAA,YAAG,MAAM,KAAA;AAAA,YAAO,IAAI,KAAA;AAAA,UAAA;yBAAzBD,MAAA,KAAA,CAAK;AAAA,UAAA;UACtBA,MAAA,YAAA,KAAXI,UAAA,GAAAC,mBAAiD,mCAArBL,MAAA,YAAA,CAAY,GAAA,CAAA;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"EpRadio.vue2.js","sources":["../../../src/components/forms/EpRadio.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { toRefs, computed } from \"vue\";\nimport { EpRadioProps } from \"~/types/forms/EpRadio\";\nimport { radioVariants } from \"~/types/Radio\";\n\nconst props = withDefaults(defineProps<EpRadioProps>(), {\n id: \"01\",\n disabled: false,\n readonly: false,\n checked: false,\n type: \"base\",\n value: undefined,\n modelValue: \"\",\n});\n\nconst styleRadio = computed(() => {\n return `${radioVariants[props.type]} mx-2 `;\n});\n\nconst isChecked = computed(() => {\n return props.modelValue === props.value;\n});\n\nconst labelFor = computed(() => {\n if (props.label) {\n return props.label.trim().replace(/\\s/g, \"_\");\n }\n return `label_${Math.round(Math.random() * 100)}`;\n});\n\nconst { label, disabled, readonly, value } = toRefs(props);\n\nconst emit = defineEmits<{\n (e: \"update:modelValue\", modelValue: string): void;\n}>();\n\nconst onChange = (event: Event) => {\n const target = event.target as HTMLInputElement;\n emit(\"update:modelValue\", target.value);\n};\n</script>\n\n<template>\n <span class=\"flex items-center\">\n <input\n class=\"cursor-pointer\"\n type=\"radio\"\n :id=\"labelFor\"\n :name=\"labelFor\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :class=\"styleRadio\"\n :value=\"value\"\n :checked=\"isChecked\"\n @change=\"onChange\"\n />\n <label :for=\"labelFor\" class=\"disabled:opacity-40 cursor-pointer\">{{\n label\n }}</label>\n </span>\n</template>\n"],"names":["_openBlock","_createElementBlock","_createElementVNode","_normalizeClass","_unref"],"mappings":";;;;;;;;;;;;;;;;;;AAKA,UAAM,QAAQ;AAUd,UAAM,aAAa,SAAS,MAAM;AAChC,aAAO,GAAG,cAAc,MAAM,IAAI,CAAC;AAAA,IACrC,CAAC;AAED,UAAM,YAAY,SAAS,MAAM;AAC/B,aAAO,MAAM,eAAe,MAAM;AAAA,IACpC,CAAC;AAED,UAAM,WAAW,SAAS,MAAM;AAC9B,UAAI,MAAM,OAAO;AACf,eAAO,MAAM,MAAM,KAAA,EAAO,QAAQ,OAAO,GAAG;AAAA,MAC9C;AACA,aAAO,SAAS,KAAK,MAAM,KAAK,OAAA,IAAW,GAAG,CAAC;AAAA,IACjD,CAAC;AAED,UAAM,EAAE,OAAO,UAAU,UAAU,MAAA,IAAU,OAAO,KAAK;AAEzD,UAAM,OAAO;AAIb,UAAM,WAAW,CAAC,UAAiB;AACjC,YAAM,SAAS,MAAM;AACrB,WAAK,qBAAqB,OAAO,KAAK;AAAA,IACxC;;AAIE,aAAAA,UAAA,GAAAC,mBAgBO,QAhBP,YAgBO;AAAA,QAfLC,mBAWE,SAAA;AAAA,UAVA,OAAKC,eAAA,CAAC,kBAME,WAAA,KAAU,CAAA;AAAA,UALlB,MAAK;AAAA,UACJ,IAAI,SAAA;AAAA,UACJ,MAAM,SAAA;AAAA,UACN,UAAUC,MAAA,QAAA;AAAA,UACV,UAAUA,MAAA,QAAA;AAAA,UAEV,OAAOA,MAAA,KAAA;AAAA,UACP,SAAS,UAAA;AAAA,UACT;AAAA,QAAA;QAEHF,mBAEU,SAAA;AAAA,UAFF,KAAK,SAAA;AAAA,UAAU,OAAM;AAAA,QAAA,mBAC3BE,MAAA,KAAA,CAAK,GAAA,GAAA,UAAA;AAAA,MAAA;;;;"}
1
+ {"version":3,"file":"EpRadio.vue2.js","sources":["../../../src/components/forms/EpRadio.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { toRefs, computed } from \"vue\";\nimport type { EpRadioProps } from \"~/types/forms/EpRadio\";\nimport { radioVariants } from \"~/types/Radio\";\n\nconst props = withDefaults(defineProps<EpRadioProps>(), {\n id: \"01\",\n disabled: false,\n readonly: false,\n checked: false,\n type: \"base\",\n value: undefined,\n modelValue: \"\",\n});\n\nconst styleRadio = computed(() => {\n return `${radioVariants[props.type]} mx-2 `;\n});\n\nconst isChecked = computed(() => {\n return props.modelValue === props.value;\n});\n\nconst labelFor = computed(() => {\n if (props.label) {\n return props.label.trim().replace(/\\s/g, \"_\");\n }\n return `label_${Math.round(Math.random() * 100)}`;\n});\n\nconst { label, disabled, readonly, value } = toRefs(props);\n\nconst emit = defineEmits<{\n (e: \"update:modelValue\", modelValue: string): void;\n}>();\n\nconst onChange = (event: Event) => {\n const target = event.target as HTMLInputElement;\n emit(\"update:modelValue\", target.value);\n};\n</script>\n\n<template>\n <span class=\"flex items-center\">\n <input\n class=\"cursor-pointer\"\n type=\"radio\"\n :id=\"labelFor\"\n :name=\"labelFor\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :class=\"styleRadio\"\n :value=\"value\"\n :checked=\"isChecked\"\n @change=\"onChange\"\n />\n <label :for=\"labelFor\" class=\"disabled:opacity-40 cursor-pointer\">{{\n label\n }}</label>\n </span>\n</template>\n"],"names":["_openBlock","_createElementBlock","_createElementVNode","_normalizeClass","_unref"],"mappings":";;;;;;;;;;;;;;;;;;AAKA,UAAM,QAAQ;AAUd,UAAM,aAAa,SAAS,MAAM;AAChC,aAAO,GAAG,cAAc,MAAM,IAAI,CAAC;AAAA,IACrC,CAAC;AAED,UAAM,YAAY,SAAS,MAAM;AAC/B,aAAO,MAAM,eAAe,MAAM;AAAA,IACpC,CAAC;AAED,UAAM,WAAW,SAAS,MAAM;AAC9B,UAAI,MAAM,OAAO;AACf,eAAO,MAAM,MAAM,KAAA,EAAO,QAAQ,OAAO,GAAG;AAAA,MAC9C;AACA,aAAO,SAAS,KAAK,MAAM,KAAK,OAAA,IAAW,GAAG,CAAC;AAAA,IACjD,CAAC;AAED,UAAM,EAAE,OAAO,UAAU,UAAU,MAAA,IAAU,OAAO,KAAK;AAEzD,UAAM,OAAO;AAIb,UAAM,WAAW,CAAC,UAAiB;AACjC,YAAM,SAAS,MAAM;AACrB,WAAK,qBAAqB,OAAO,KAAK;AAAA,IACxC;;AAIE,aAAAA,UAAA,GAAAC,mBAgBO,QAhBP,YAgBO;AAAA,QAfLC,mBAWE,SAAA;AAAA,UAVA,OAAKC,eAAA,CAAC,kBAME,WAAA,KAAU,CAAA;AAAA,UALlB,MAAK;AAAA,UACJ,IAAI,SAAA;AAAA,UACJ,MAAM,SAAA;AAAA,UACN,UAAUC,MAAA,QAAA;AAAA,UACV,UAAUA,MAAA,QAAA;AAAA,UAEV,OAAOA,MAAA,KAAA;AAAA,UACP,SAAS,UAAA;AAAA,UACT;AAAA,QAAA;QAEHF,mBAEU,SAAA;AAAA,UAFF,KAAK,SAAA;AAAA,UAAU,OAAM;AAAA,QAAA,mBAC3BE,MAAA,KAAA,CAAK,GAAA,GAAA,UAAA;AAAA,MAAA;;;;"}
@@ -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 { 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 hover:text-white dark:hover:text-black 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
+ {"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 hover:text-white dark:hover:text-black 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 +1 @@
1
- {"version":3,"file":"EpSelect.vue2.js","sources":["../../../src/components/forms/EpSelect.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { EpSelectProps } from \"~/types/forms/EpSelect\";\n\nconst { label = \"Select Theme:\", options } = defineProps<EpSelectProps>();\n\nconst model = defineModel();\n</script>\n\n<template>\n <div class=\"w-full max-w-xs\">\n <label class=\"block text-sm font-medium text-gray-700 mb-1\">{{\n label\n }}</label>\n <select\n v-model=\"model\"\n class=\"block w-full bg-white border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm\"\n >\n <option\n v-for=\"option in options\"\n :key=\"option.value\"\n :value=\"option.value\"\n >\n {{ option.text }}\n </option>\n </select>\n </div>\n</template>\n"],"names":["_useModel","_openBlock","_createElementBlock","_createElementVNode","_toDisplayString","label","_Fragment","_renderList","options"],"mappings":";;;;;;;;;;;;;;;;AAKA,UAAM,QAAQA,8BAAY;;AAIxB,aAAAC,UAAA,GAAAC,mBAgBM,OAhBN,YAgBM;AAAA,QAfJC,mBAEU,SAFV,YAEUC,gBADRC,KAAAA,KAAK,GAAA,CAAA;AAAA,uBAEPF,mBAWS,UAAA;AAAA,uEAVE,MAAK,QAAA;AAAA,UACd,OAAM;AAAA,QAAA;4BAEND,mBAMSI,UAAA,MAAAC,WALUC,KAAAA,SAAO,CAAjB,WAAM;gCADfN,mBAMS,UAAA;AAAA,cAJN,KAAK,OAAO;AAAA,cACZ,OAAO,OAAO;AAAA,YAAA,GAEZE,gBAAA,OAAO,IAAI,GAAA,GAAA,UAAA;AAAA;;yBARP,MAAA,KAAK;AAAA,QAAA;;;;;"}
1
+ {"version":3,"file":"EpSelect.vue2.js","sources":["../../../src/components/forms/EpSelect.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { EpSelectProps } from \"~/types/forms/EpSelect\";\n\nconst { label = \"Select Theme:\", options } = defineProps<EpSelectProps>();\n\nconst model = defineModel();\n</script>\n\n<template>\n <div class=\"w-full max-w-xs\">\n <label class=\"block text-sm font-medium text-gray-700 mb-1\">{{\n label\n }}</label>\n <select\n v-model=\"model\"\n class=\"block w-full bg-white border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm\"\n >\n <option\n v-for=\"option in options\"\n :key=\"option.value\"\n :value=\"option.value\"\n >\n {{ option.text }}\n </option>\n </select>\n </div>\n</template>\n"],"names":["_useModel","_openBlock","_createElementBlock","_createElementVNode","_toDisplayString","label","_Fragment","_renderList","options"],"mappings":";;;;;;;;;;;;;;;;AAKA,UAAM,QAAQA,8BAAY;;AAIxB,aAAAC,UAAA,GAAAC,mBAgBM,OAhBN,YAgBM;AAAA,QAfJC,mBAEU,SAFV,YAEUC,gBADRC,KAAAA,KAAK,GAAA,CAAA;AAAA,uBAEPF,mBAWS,UAAA;AAAA,uEAVE,MAAK,QAAA;AAAA,UACd,OAAM;AAAA,QAAA;4BAEND,mBAMSI,UAAA,MAAAC,WALUC,KAAAA,SAAO,CAAjB,WAAM;gCADfN,mBAMS,UAAA;AAAA,cAJN,KAAK,OAAO;AAAA,cACZ,OAAO,OAAO;AAAA,YAAA,GAEZE,gBAAA,OAAO,IAAI,GAAA,GAAA,UAAA;AAAA;;yBARP,MAAA,KAAK;AAAA,QAAA;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"EpSwitch.vue2.js","sources":["../../../src/components/forms/EpSwitch.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { toRefs, computed } from \"vue\";\nimport { ColorVariants } from \"~/types/Switch\";\nimport { EpSwitchProps } from \"~/types/forms/EpSwitch\";\n\nconst props = withDefaults(defineProps<EpSwitchProps>(), {\n id: \"toggle\",\n label: \"\",\n type: \"base\",\n modelValue: false,\n disabled: false,\n readonly: false,\n checked: false,\n});\n\nconst emit = defineEmits([\"update:modelValue\"]);\n\nconst updateValue = (event: Event) => {\n emit(\"update:modelValue\", (event.target as HTMLInputElement).checked);\n};\n\nconst style = computed(() => {\n return `${ColorVariants[props.type]}`;\n});\n\nconst { id, label, type, modelValue, disabled, readonly, checked } =\n toRefs(props);\n</script>\n\n<template>\n <div>\n <label class=\"relative inline-flex items-center cursor-pointer\">\n <input\n :id=\"id\"\n type=\"checkbox\"\n :checked=\"modelValue\"\n :value=\"modelValue\"\n @input=\"updateValue\"\n class=\"sr-only peer\"\n role=\"switch\"\n :disabled=\"disabled\"\n @change=\"updateValue\"\n />\n <div\n :class=\"`w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-4 \n ${style} dark:bg-gray-700 peer-checked:after:translate-x-full rtl:peer-checked:after:-translate-x-full \n peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:start-[2px] \n after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all `\"\n ></div>\n </label>\n\n <label class=\"inline-block pl-[0.15rem] hover:cursor-pointer\" :for=\"id\">{{\n label\n }}</label>\n </div>\n</template>\n"],"names":["_createElementBlock","_createElementVNode","_unref","_normalizeClass"],"mappings":";;;;;;;;;;;;;;;;;;AAKA,UAAM,QAAQ;AAUd,UAAM,OAAO;AAEb,UAAM,cAAc,CAAC,UAAiB;AACpC,WAAK,qBAAsB,MAAM,OAA4B,OAAO;AAAA,IACtE;AAEA,UAAM,QAAQ,SAAS,MAAM;AAC3B,aAAO,GAAG,cAAc,MAAM,IAAI,CAAC;AAAA,IACrC,CAAC;AAED,UAAM,EAAE,IAAI,OAAa,YAAY,SAA4B,IAC/D,OAAO,KAAK;;0BAIZA,mBAwBM,OAAA,MAAA;AAAA,QAvBJC,mBAkBQ,SAlBR,YAkBQ;AAAA,UAjBNA,mBAUE,SAAA;AAAA,YATC,IAAIC,MAAA,EAAA;AAAA,YACL,MAAK;AAAA,YACJ,SAASA,MAAA,UAAA;AAAA,YACT,OAAOA,MAAA,UAAA;AAAA,YACP,SAAO;AAAA,YACR,OAAM;AAAA,YACN,MAAK;AAAA,YACJ,UAAUA,MAAA,QAAA;AAAA,YACV,UAAQ;AAAA,UAAA;UAEXD,mBAKO,OAAA;AAAA,YAJJ,OAAKE,eAAA;AAAA,YAAuF,MAAA,KAAK;AAAA;AAAA;;;QAOtGF,mBAEU,SAAA;AAAA,UAFH,OAAM;AAAA,UAAkD,KAAKC,MAAA,EAAA;AAAA,QAAA,mBAClEA,MAAA,KAAA,CAAK,GAAA,GAAA,UAAA;AAAA,MAAA;;;;"}
1
+ {"version":3,"file":"EpSwitch.vue2.js","sources":["../../../src/components/forms/EpSwitch.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { toRefs, computed } from \"vue\";\nimport { ColorVariants } from \"~/types/Switch\";\nimport type { EpSwitchProps } from \"~/types/forms/EpSwitch\";\n\nconst props = withDefaults(defineProps<EpSwitchProps>(), {\n id: \"toggle\",\n label: \"\",\n type: \"base\",\n modelValue: false,\n disabled: false,\n readonly: false,\n checked: false,\n});\n\nconst emit = defineEmits([\"update:modelValue\"]);\n\nconst updateValue = (event: Event) => {\n emit(\"update:modelValue\", (event.target as HTMLInputElement).checked);\n};\n\nconst style = computed(() => {\n return `${ColorVariants[props.type]}`;\n});\n\nconst { id, label, type, modelValue, disabled, readonly, checked } =\n toRefs(props);\n</script>\n\n<template>\n <div>\n <label class=\"relative inline-flex items-center cursor-pointer\">\n <input\n :id=\"id\"\n type=\"checkbox\"\n :checked=\"modelValue\"\n :value=\"modelValue\"\n @input=\"updateValue\"\n class=\"sr-only peer\"\n role=\"switch\"\n :disabled=\"disabled\"\n @change=\"updateValue\"\n />\n <div\n :class=\"`w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-4 \n ${style} dark:bg-gray-700 peer-checked:after:translate-x-full rtl:peer-checked:after:-translate-x-full \n peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:start-[2px] \n after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all `\"\n ></div>\n </label>\n\n <label class=\"inline-block pl-[0.15rem] hover:cursor-pointer\" :for=\"id\">{{\n label\n }}</label>\n </div>\n</template>\n"],"names":["_createElementBlock","_createElementVNode","_unref","_normalizeClass"],"mappings":";;;;;;;;;;;;;;;;;;AAKA,UAAM,QAAQ;AAUd,UAAM,OAAO;AAEb,UAAM,cAAc,CAAC,UAAiB;AACpC,WAAK,qBAAsB,MAAM,OAA4B,OAAO;AAAA,IACtE;AAEA,UAAM,QAAQ,SAAS,MAAM;AAC3B,aAAO,GAAG,cAAc,MAAM,IAAI,CAAC;AAAA,IACrC,CAAC;AAED,UAAM,EAAE,IAAI,OAAa,YAAY,SAA4B,IAC/D,OAAO,KAAK;;0BAIZA,mBAwBM,OAAA,MAAA;AAAA,QAvBJC,mBAkBQ,SAlBR,YAkBQ;AAAA,UAjBNA,mBAUE,SAAA;AAAA,YATC,IAAIC,MAAA,EAAA;AAAA,YACL,MAAK;AAAA,YACJ,SAASA,MAAA,UAAA;AAAA,YACT,OAAOA,MAAA,UAAA;AAAA,YACP,SAAO;AAAA,YACR,OAAM;AAAA,YACN,MAAK;AAAA,YACJ,UAAUA,MAAA,QAAA;AAAA,YACV,UAAQ;AAAA,UAAA;UAEXD,mBAKO,OAAA;AAAA,YAJJ,OAAKE,eAAA;AAAA,YAAuF,MAAA,KAAK;AAAA;AAAA;;;QAOtGF,mBAEU,SAAA;AAAA,UAFH,OAAM;AAAA,UAAkD,KAAKC,MAAA,EAAA;AAAA,QAAA,mBAClEA,MAAA,KAAA,CAAK,GAAA,GAAA,UAAA;AAAA,MAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"EpTextarea.vue2.js","sources":["../../../src/components/forms/EpTextarea.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { toRefs } from \"vue\";\nimport { EpTextareaProps } from \"~/types/forms/EpTextarea\";\n\nconst props = withDefaults(defineProps<EpTextareaProps>(), {\n id: \"0\",\n label: \"label\",\n modelValue: \"\",\n type: \"text\",\n placeholder: \"\",\n iconPath: \"\",\n iconSize: \"\",\n disabled: false,\n readonly: false,\n labels: () => {\n return {\n message: \"Message\",\n };\n },\n});\n\ndefineEmits<{\n (e: \"update:modelValue\", modelValue: string): void;\n}>();\n\nconst { disabled } = toRefs(props);\n</script>\n\n<template>\n <div class=\"w-96\">\n <div class=\"relative w-full min-w-[200px]\">\n <textarea\n :disabled=\"disabled\"\n class=\"peer h-full min-h-[100px] w-full resize-none rounded-[7px] border border-neutral-300 bg-transparent px-3 py-2.5 font-sans text-sm font-normal text-neutral-700 outline outline-0 transition-all placeholder-shown:border placeholder-shown:border-neutral-300 placeholder-shown:border-t-neutral-200 focus:border-2 focus:border-blue-500 focus:border-t-transparent focus:outline-0 disabled:resize-none disabled:border-0 disabled:cursor-not-allowed disabled:bg-neutral-200 focus:ring-0\"\n placeholder=\" \"\n ></textarea>\n <label\n class=\"before:content[' '] after:content[' '] pointer-events-none absolute left-0 -top-1.5 flex h-full w-full select-none text-[11px] font-normal leading-tight text-blue-400 transition-all before:pointer-events-none before:mt-[6.5px] before:mr-1 before:box-border before:block before:h-1.5 before:w-2.5 before:rounded-tl-md before:border-t before:border-l before:border-neutral-300 before:transition-all after:pointer-events-none after:mt-[6.5px] after:ml-1 after:box-border after:block after:h-1.5 after:w-2.5 after:flex-grow after:rounded-tr-md after:border-t after:border-r after:border-neutral-300 after:transition-all peer-placeholder-shown:text-sm peer-placeholder-shown:leading-[3.75] peer-placeholder-shown:text-blue-500 peer-placeholder-shown:before:border-transparent peer-placeholder-shown:after:border-transparent peer-focus:text-[11px] peer-focus:leading-tight peer-focus:text-blue-500 peer-focus:before:border-t-2 peer-focus:before:border-l-2 peer-focus:before:border-blue-500 peer-focus:after:border-t-2 peer-focus:after:border-r-2 peer-focus:after:border-blue-500 peer-disabled:text-transparent peer-disabled:before:border-transparent peer-disabled:after:border-transparent peer-disabled:peer-placeholder-shown:text-blue-500\"\n >\n {{ labels.message }}\n </label>\n </div>\n </div>\n</template>\n"],"names":["_openBlock","_createElementBlock","_createElementVNode","_unref","_toDisplayString","labels"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,UAAM,QAAQ;AAqBd,UAAM,EAAE,SAAA,IAAa,OAAO,KAAK;;AAI/B,aAAAA,UAAA,GAAAC,mBAaM,OAbN,YAaM;AAAA,QAZJC,mBAWM,OAXN,YAWM;AAAA,UAVJA,mBAIY,YAAA;AAAA,YAHT,UAAUC,MAAA,QAAA;AAAA,YACX,OAAM;AAAA,YACN,aAAY;AAAA,UAAA;UAEdD,mBAIQ,SAJR,YAIQE,gBADHC,KAAAA,OAAO,OAAO,GAAA,CAAA;AAAA,QAAA;;;;;"}
1
+ {"version":3,"file":"EpTextarea.vue2.js","sources":["../../../src/components/forms/EpTextarea.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { toRefs } from \"vue\";\nimport type { EpTextareaProps } from \"~/types/forms/EpTextarea\";\n\nconst props = withDefaults(defineProps<EpTextareaProps>(), {\n id: \"0\",\n label: \"label\",\n modelValue: \"\",\n type: \"text\",\n placeholder: \"\",\n iconPath: \"\",\n iconSize: \"\",\n disabled: false,\n readonly: false,\n labels: () => {\n return {\n message: \"Message\",\n };\n },\n});\n\ndefineEmits<{\n (e: \"update:modelValue\", modelValue: string): void;\n}>();\n\nconst { disabled } = toRefs(props);\n</script>\n\n<template>\n <div class=\"w-96\">\n <div class=\"relative w-full min-w-[200px]\">\n <textarea\n :disabled=\"disabled\"\n class=\"peer h-full min-h-[100px] w-full resize-none rounded-[7px] border border-neutral-300 bg-transparent px-3 py-2.5 font-sans text-sm font-normal text-neutral-700 outline outline-0 transition-all placeholder-shown:border placeholder-shown:border-neutral-300 placeholder-shown:border-t-neutral-200 focus:border-2 focus:border-blue-500 focus:border-t-transparent focus:outline-0 disabled:resize-none disabled:border-0 disabled:cursor-not-allowed disabled:bg-neutral-200 focus:ring-0\"\n placeholder=\" \"\n ></textarea>\n <label\n class=\"before:content[' '] after:content[' '] pointer-events-none absolute left-0 -top-1.5 flex h-full w-full select-none text-[11px] font-normal leading-tight text-blue-400 transition-all before:pointer-events-none before:mt-[6.5px] before:mr-1 before:box-border before:block before:h-1.5 before:w-2.5 before:rounded-tl-md before:border-t before:border-l before:border-neutral-300 before:transition-all after:pointer-events-none after:mt-[6.5px] after:ml-1 after:box-border after:block after:h-1.5 after:w-2.5 after:flex-grow after:rounded-tr-md after:border-t after:border-r after:border-neutral-300 after:transition-all peer-placeholder-shown:text-sm peer-placeholder-shown:leading-[3.75] peer-placeholder-shown:text-blue-500 peer-placeholder-shown:before:border-transparent peer-placeholder-shown:after:border-transparent peer-focus:text-[11px] peer-focus:leading-tight peer-focus:text-blue-500 peer-focus:before:border-t-2 peer-focus:before:border-l-2 peer-focus:before:border-blue-500 peer-focus:after:border-t-2 peer-focus:after:border-r-2 peer-focus:after:border-blue-500 peer-disabled:text-transparent peer-disabled:before:border-transparent peer-disabled:after:border-transparent peer-disabled:peer-placeholder-shown:text-blue-500\"\n >\n {{ labels.message }}\n </label>\n </div>\n </div>\n</template>\n"],"names":["_openBlock","_createElementBlock","_createElementVNode","_unref","_toDisplayString","labels"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,UAAM,QAAQ;AAqBd,UAAM,EAAE,SAAA,IAAa,OAAO,KAAK;;AAI/B,aAAAA,UAAA,GAAAC,mBAaM,OAbN,YAaM;AAAA,QAZJC,mBAWM,OAXN,YAWM;AAAA,UAVJA,mBAIY,YAAA;AAAA,YAHT,UAAUC,MAAA,QAAA;AAAA,YACX,OAAM;AAAA,YACN,aAAY;AAAA,UAAA;UAEdD,mBAIQ,SAJR,YAIQE,gBADHC,KAAAA,OAAO,OAAO,GAAA,CAAA;AAAA,QAAA;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"EpToggle.vue2.js","sources":["../../../src/components/forms/EpToggle.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { toRefs } from \"vue\";\nimport { EpToggleProps } from \"~/types/forms/EpToggle\";\n\nconst props = withDefaults(defineProps<EpToggleProps>(), {\n id: \"toggle\",\n label: \"label\",\n modelValue: \"\",\n type: \"checkbox\",\n placeholder: \"\",\n disabled: false,\n readonly: false,\n checked: false,\n labels: () => {\n return {\n defaultSwitch: \"Default switch checkbox input\",\n };\n },\n});\n\ndefineEmits<{\n (e: \"update:modelValue\", modelValue: string): void;\n}>();\n\nconst { id, type, disabled, checked } = toRefs(props);\n</script>\n\n<template>\n <div>\n <input\n :id=\"id\"\n :type=\"type\"\n :checked=\"checked\"\n class=\"form-checkbox mr-2 mt-[0rem] h-4 w-8 appearance-none rounded-full bg-neutral-200 border-neutral-300 before:pointer-events-none before:absolute before:h-3.5 before:w-3.5 before:rounded-full before:bg-transparent before:content-[''] after:absolute after:z-[2] after:-mt-[0rem] after:h-3.5 after:w-3.5 after:rounded-full after:border-none after:bg-neutral-50 after:shadow-[0_0px_3px_0_rgb(0_0_0_/_7%),_0_2px_2px_0_rgb(0_0_0_/_4%)] after:transition-[background-color_0.2s,transform_0.2s] after:content-[''] checked:bg-none checked:bg-blue-600 checked:after:absolute checked:after:z-[2] checked:after:-mt-[0px] checked:after:ml-[1.0625rem] checked:after:h-3.5 checked:after:w-3.5 checked:after:rounded-full checked:after:border-none checked:after:bg-neutral-100 checked:after:shadow-[0_3px_1px_-2px_rgba(0,0,0,0.2),_0_2px_2px_0_rgba(0,0,0,0.14),_0_1px_5px_0_rgba(0,0,0,0.12)] checked:after:transition-[background-color_0.2s,transform_0.2s] checked:after:content-[''] hover:cursor-pointer focus:outline-none focus:ring-0 focus:before:scale-75 focus:before:opacity-[0.12] focus:before:mt-[0.1rem] focus:before:shadow-[3px_-1px_0px_13px_rgba(0,0,0,0.6)] focus:before:transition-[box-shadow_0.2s,transform_0.2s] focus:after:absolute focus:after:z-[1] focus:after:block focus:after:h-3.5 focus:after:w-3.5 focus:after:-mt-[0rem] focus:after:rounded-full focus:after:content-[''] checked:focus:border-neutral-200 checked:focus:bg-blue-600 checked:focus:before:ml-[1rem] checked:focus:before:mt-[0.1rem] checked:focus:before:scale-75 checked:focus:before:shadow-[3px_-1px_0px_13px_#3b71ca] checked:focus:before:transition-[box-shadow_0.2s,transform_0.2s] dark:bg-neutral-600 dark:after:bg-neutral-400 dark:checked:bg-blue-600 dark:checked:after:bg-blue-600 dark:focus:before:shadow-[3px_-1px_0px_13px_rgba(255,255,255,0.4)] dark:checked:focus:before:shadow-[3px_-1px_0px_13px_#3b71ca] disabled:opacity-40 disabled:cursor-not-allowed\"\n role=\"switch\"\n :disabled=\"disabled\"\n />\n <label class=\"inline-block pl-[0.15rem] hover:cursor-pointer\" :for=\"id\">{{\n labels.defaultSwitch\n }}</label>\n </div>\n</template>\n"],"names":["_createElementBlock","_createElementVNode","_unref","labels"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAIA,UAAM,QAAQ;AAoBd,UAAM,EAAE,IAAI,MAAM,UAAU,QAAA,IAAY,OAAO,KAAK;;0BAIlDA,mBAYM,OAAA,MAAA;AAAA,QAXJC,mBAOE,SAAA;AAAA,UANC,IAAIC,MAAA,EAAA;AAAA,UACJ,MAAMA,MAAA,IAAA;AAAA,UACN,SAASA,MAAA,OAAA;AAAA,UACV,OAAM;AAAA,UACN,MAAK;AAAA,UACJ,UAAUA,MAAA,QAAA;AAAA,QAAA;QAEbD,mBAEU,SAAA;AAAA,UAFH,OAAM;AAAA,UAAkD,KAAKC,MAAA,EAAA;AAAA,QAAA,GAClEC,gBAAAA,KAAAA,OAAO,aAAa,GAAA,GAAA,UAAA;AAAA,MAAA;;;;"}
1
+ {"version":3,"file":"EpToggle.vue2.js","sources":["../../../src/components/forms/EpToggle.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { toRefs } from \"vue\";\nimport type { EpToggleProps } from \"~/types/forms/EpToggle\";\n\nconst props = withDefaults(defineProps<EpToggleProps>(), {\n id: \"toggle\",\n label: \"label\",\n modelValue: \"\",\n type: \"checkbox\",\n placeholder: \"\",\n disabled: false,\n readonly: false,\n checked: false,\n labels: () => {\n return {\n defaultSwitch: \"Default switch checkbox input\",\n };\n },\n});\n\ndefineEmits<{\n (e: \"update:modelValue\", modelValue: string): void;\n}>();\n\nconst { id, type, disabled, checked } = toRefs(props);\n</script>\n\n<template>\n <div>\n <input\n :id=\"id\"\n :type=\"type\"\n :checked=\"checked\"\n class=\"form-checkbox mr-2 mt-[0rem] h-4 w-8 appearance-none rounded-full bg-neutral-200 border-neutral-300 before:pointer-events-none before:absolute before:h-3.5 before:w-3.5 before:rounded-full before:bg-transparent before:content-[''] after:absolute after:z-[2] after:-mt-[0rem] after:h-3.5 after:w-3.5 after:rounded-full after:border-none after:bg-neutral-50 after:shadow-[0_0px_3px_0_rgb(0_0_0_/_7%),_0_2px_2px_0_rgb(0_0_0_/_4%)] after:transition-[background-color_0.2s,transform_0.2s] after:content-[''] checked:bg-none checked:bg-blue-600 checked:after:absolute checked:after:z-[2] checked:after:-mt-[0px] checked:after:ml-[1.0625rem] checked:after:h-3.5 checked:after:w-3.5 checked:after:rounded-full checked:after:border-none checked:after:bg-neutral-100 checked:after:shadow-[0_3px_1px_-2px_rgba(0,0,0,0.2),_0_2px_2px_0_rgba(0,0,0,0.14),_0_1px_5px_0_rgba(0,0,0,0.12)] checked:after:transition-[background-color_0.2s,transform_0.2s] checked:after:content-[''] hover:cursor-pointer focus:outline-none focus:ring-0 focus:before:scale-75 focus:before:opacity-[0.12] focus:before:mt-[0.1rem] focus:before:shadow-[3px_-1px_0px_13px_rgba(0,0,0,0.6)] focus:before:transition-[box-shadow_0.2s,transform_0.2s] focus:after:absolute focus:after:z-[1] focus:after:block focus:after:h-3.5 focus:after:w-3.5 focus:after:-mt-[0rem] focus:after:rounded-full focus:after:content-[''] checked:focus:border-neutral-200 checked:focus:bg-blue-600 checked:focus:before:ml-[1rem] checked:focus:before:mt-[0.1rem] checked:focus:before:scale-75 checked:focus:before:shadow-[3px_-1px_0px_13px_#3b71ca] checked:focus:before:transition-[box-shadow_0.2s,transform_0.2s] dark:bg-neutral-600 dark:after:bg-neutral-400 dark:checked:bg-blue-600 dark:checked:after:bg-blue-600 dark:focus:before:shadow-[3px_-1px_0px_13px_rgba(255,255,255,0.4)] dark:checked:focus:before:shadow-[3px_-1px_0px_13px_#3b71ca] disabled:opacity-40 disabled:cursor-not-allowed\"\n role=\"switch\"\n :disabled=\"disabled\"\n />\n <label class=\"inline-block pl-[0.15rem] hover:cursor-pointer\" :for=\"id\">{{\n labels.defaultSwitch\n }}</label>\n </div>\n</template>\n"],"names":["_createElementBlock","_createElementVNode","_unref","labels"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAIA,UAAM,QAAQ;AAoBd,UAAM,EAAE,IAAI,MAAM,UAAU,QAAA,IAAY,OAAO,KAAK;;0BAIlDA,mBAYM,OAAA,MAAA;AAAA,QAXJC,mBAOE,SAAA;AAAA,UANC,IAAIC,MAAA,EAAA;AAAA,UACJ,MAAMA,MAAA,IAAA;AAAA,UACN,SAASA,MAAA,OAAA;AAAA,UACV,OAAM;AAAA,UACN,MAAK;AAAA,UACJ,UAAUA,MAAA,QAAA;AAAA,QAAA;QAEbD,mBAEU,SAAA;AAAA,UAFH,OAAM;AAAA,UAAkD,KAAKC,MAAA,EAAA;AAAA,QAAA,GAClEC,gBAAAA,KAAAA,OAAO,aAAa,GAAA,GAAA,UAAA;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-f7c467a7"]]);
4
+ const Comp = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-cd590234"]]);
5
5
  export {
6
6
  Comp as default
7
7
  };
@@ -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 useColors from \"~/composables/useColors\";\nimport { typeAccordeon } from \"~/types/Accordeon\";\nimport { EpAccordeonProps } from \"~/types/interactions/EpAccordeon\";\n\nconst props = withDefaults(defineProps<EpAccordeonProps>(), {\n open: false,\n type: \"base\",\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 return `px-4 ${useColors(\n \"bg\",\n props.type + \"light\"\n )} dark:bg-dark dark:${useColors(\"border\", props.type + \"dark\")} ${\n showDiv.value ? \"\" : \"dark: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} content`\">\n <div class=\"py-3\">\n <slot />\n </div>\n </div>\n </div>\n</template>\n\n<style scoped>\n.content {\n max-height: 0;\n overflow: hidden;\n}\n</style>\n"],"names":["_createElementBlock","_createElementVNode","_unref","_createBlock","EpIcon","_normalizeClass","_renderSlot"],"mappings":";;;;;;;;;;;;;;;;AAOA,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,aAAO,QAAQ;AAAA,QACb;AAAA,QACA,MAAM,OAAO;AAAA,MAAA,CACd,sBAAsB,UAAU,UAAU,MAAM,OAAO,MAAM,CAAC,IAC7D,QAAQ,QAAQ,KAAK,eACvB;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,UAAA;AAAA,QAAA;UAC7CA,mBAEM,OAFN,YAEM;AAAA,YADJK,WAAQ,KAAA,QAAA,WAAA,CAAA,GAAA,QAAA,IAAA;AAAA,UAAA;;;;;;"}
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 useColors from \"~/composables/useColors\";\nimport { typeAccordeon } from \"~/types/Accordeon\";\nimport type { EpAccordeonProps } from \"~/types/interactions/EpAccordeon\";\n\nconst props = withDefaults(defineProps<EpAccordeonProps>(), {\n open: false,\n type: \"base\",\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 return `px-4 ${useColors(\n \"bg\",\n props.type + \"light\"\n )} dark:bg-dark dark:${useColors(\"border\", props.type + \"dark\")} ${\n showDiv.value ? \"\" : \"dark: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} content`\">\n <div class=\"py-3\">\n <slot />\n </div>\n </div>\n </div>\n</template>\n\n<style scoped>\n.content {\n max-height: 0;\n overflow: hidden;\n}\n</style>\n"],"names":["_createElementBlock","_createElementVNode","_unref","_createBlock","EpIcon","_normalizeClass","_renderSlot"],"mappings":";;;;;;;;;;;;;;;;AAOA,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,aAAO,QAAQ;AAAA,QACb;AAAA,QACA,MAAM,OAAO;AAAA,MAAA,CACd,sBAAsB,UAAU,UAAU,MAAM,OAAO,MAAM,CAAC,IAC7D,QAAQ,QAAQ,KAAK,eACvB;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,UAAA;AAAA,QAAA;UAC7CA,mBAEM,OAFN,YAEM;AAAA,YADJK,WAAQ,KAAA,QAAA,WAAA,CAAA,GAAA,QAAA,IAAA;AAAA,UAAA;;;;;;"}
@@ -76,7 +76,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
76
76
  if (currentSlide.value.component) {
77
77
  const componentToLoad = useComponent((_a = currentSlide.value.component) == null ? void 0 : _a.type);
78
78
  return defineAsyncComponent(
79
- () => __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.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.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)
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)
80
80
  );
81
81
  }
82
82
  return null;
@@ -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 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 { 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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"EpDraggable.vue.js","sources":["../../../src/components/interactions/EpDraggable.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref, onMounted, onUnmounted } from \"vue\";\nimport { VueDraggableNext as draggable } from \"vue-draggable-next\";\nimport type { Choice } from \"~/types/Draggable\";\nimport { mdiCheckBold, mdiCloseThick } from \"@mdi/js\";\nimport EpIcon from \"~/components/basics/EpIcon.vue\";\nimport { EpDraggableProps } from \"~/types/interactions/EpDraggable\";\n\nconst props = withDefaults(defineProps<EpDraggableProps>(), {});\n\n// Manage the image and its size\n\nconst originalWidth = ref(0);\nconst originalHeight = ref(0);\n\nconst actualRect = ref({ width: 0, height: 0 });\nconst myImage = ref<HTMLImageElement | null>(null);\n\nconst updateSize = () => {\n if (!myImage.value) return;\n\n const rect = myImage.value.getBoundingClientRect();\n actualRect.value = { width: rect.width, height: rect.height };\n\n //console.log('Image size updated. Width:', actualRect.value.width, 'Height:', actualRect.value.height);\n};\n\nonMounted(() => {\n window.addEventListener(\"resize\", updateSize);\n});\nonUnmounted(() => {\n window.removeEventListener(\"resize\", updateSize);\n});\n\nconst handleImageLoad = (event: any) => {\n originalWidth.value = event.target.naturalWidth;\n originalHeight.value = event.target.naturalHeight;\n\n // console.log('Image loaded. Width:', originalWidth.value, 'Height:', originalHeight.value);\n\n updateSize();\n};\n\nconst xRatio = computed(() => {\n if (actualRect.value.width == 0) return 1;\n return actualRect.value.width / originalWidth.value;\n});\n\nconst yRatio = computed(() => {\n if (actualRect.value.height == 0) return 1;\n return actualRect.value.height / originalHeight.value;\n});\n\n// Créer une copie réactive de props.answers\nconst availableAnswers = ref([...props.answers]);\n\nconst choices = ref<Choice[]>(\n props.sockets.map((s) => {\n return {\n choice: [],\n expected: s.correctAnswer,\n allowPut: true,\n };\n })\n);\n\n// Manage drag and drop\nconst onAdd = (event: any, index: number) => {\n // console.log(event.clone);\n\n // Retirer l'élément de la liste des réponses disponibles\n availableAnswers.value = availableAnswers.value.filter(\n (item) => item.name !== event.clone.name\n );\n choices.value[index].allowPut = false;\n};\n\nconst onRemove = (event: any, index: number) => {\n // console.log(event.clone);\n\n choices.value[index].choice = [];\n choices.value[index].allowPut = true;\n};\n\n// Manage verification buttons\nconst validating = ref(false);\n\nconst validate = () => {\n validating.value = true;\n choices.value.forEach((choice) => {\n choice.allowPut = false;\n });\n};\n\nconst retry = () => {\n validating.value = false;\n availableAnswers.value = [...props.answers];\n choices.value.forEach((choice) => {\n choice.choice = [];\n choice.allowPut = true;\n });\n};\n</script>\n\n<template>\n <div class=\"flex flex-col\">\n <div class=\"grid grid-cols-3 gap-3 w-full my-8\">\n <!-- Draggable answers block -->\n <div class=\"col-span-1 m-6\">\n <draggable\n class=\"dragArea bg-gray-700 rounded-md p-4 min-h-5 list-group w-full\"\n v-model=\"availableAnswers\"\n :group=\"{ name: 'answers', pull: !validating, put: !validating }\"\n >\n <div\n class=\"list-group-item bg-gray-300 dark:bg-gray-800 m-1 p-3 rounded-md text-center flex justify-center items-center\"\n v-for=\"element in availableAnswers\"\n :key=\"element.name\"\n >\n <img\n class=\"cursor-grab active:cursor-grabbing max-w-32 rounded\"\n v-if=\"element.isImg\"\n :src=\"element.src\"\n alt=\"img\"\n />\n <p class=\"cursor-grab active:cursor-grabbing\" v-else>\n {{ element.name }}\n </p>\n </div>\n </draggable>\n </div>\n\n <!-- Drop area block -->\n <div class=\"col-span-2 relative\">\n <img\n @load=\"handleImageLoad\"\n ref=\"myImage\"\n :src=\"props.src\"\n alt=\"img\"\n class=\"w-full h-full select-none\"\n />\n <draggable\n class=\"dropArea absolute bg-gray-300 dark:bg-gray-800 p-4 rounded-md min-w-14 max-w-32\"\n v-for=\"(socket, index) in props.sockets\"\n :key=\"index\"\n v-model=\"choices[index].choice\"\n :group=\"{ put: choices[index].allowPut }\"\n :style=\"{\n left: socket.xPos * xRatio + 'px',\n top: socket.yPos * yRatio + 'px',\n }\"\n @add=\"onAdd($event, index)\"\n @remove=\"onRemove($event, index)\"\n >\n <img\n class=\"cursor-grab active:cursor-grabbing rounded\"\n v-if=\"choices[index].choice[0] && choices[index].choice[0].isImg\"\n :src=\"choices[index].choice[0].src\"\n alt=\"img\"\n />\n <p\n class=\"cursor-grab active:cursor-grabbing\"\n v-else-if=\"choices[index].choice[0]\"\n >\n {{ choices[index].choice[0].name }}\n </p>\n <span\n v-if=\"\n validating &&\n choices[index].choice[0]?.name !== choices[index].expected\n \"\n class=\"absolute -top-5 -right-5 bg-red-500 text-white px-2 py-1 rounded-md\"\n >\n <EpIcon :iconPath=\"mdiCloseThick\" size=\"18\" />\n </span>\n <span\n v-if=\"\n validating &&\n choices[index].choice[0]?.name === choices[index].expected\n \"\n class=\"absolute -top-5 -right-5 bg-green-500 text-white px-2 py-1 rounded-md\"\n >\n <EpIcon :iconPath=\"mdiCheckBold\" size=\"18\" />\n </span>\n </draggable>\n </div>\n </div>\n\n <!-- Verification buttons -->\n <div class=\"flex justify-center gap-4 mt-8\">\n <button\n class=\"bg-blue-500 text-white px-3 py-2 rounded-md text-center\"\n @click=\"validate\"\n >\n Valider\n </button>\n <button\n class=\"bg-blue-500 text-white px-3 py-2 rounded-md text-center\"\n @click=\"retry\"\n >\n Recommencer\n </button>\n </div>\n </div>\n</template>\n"],"names":["_openBlock","_createElementBlock","_createElementVNode","_createVNode","_unref","draggable","_Fragment","_renderList","_toDisplayString","_createBlock","_normalizeStyle","EpIcon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,UAAM,QAAQ;AAId,UAAM,gBAAgB,IAAI,CAAC;AAC3B,UAAM,iBAAiB,IAAI,CAAC;AAE5B,UAAM,aAAa,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG;AAC9C,UAAM,UAAU,IAA6B,IAAI;AAEjD,UAAM,aAAa,MAAM;AACvB,UAAI,CAAC,QAAQ,MAAO;AAEpB,YAAM,OAAO,QAAQ,MAAM,sBAAA;AAC3B,iBAAW,QAAQ,EAAE,OAAO,KAAK,OAAO,QAAQ,KAAK,OAAA;AAAA,IAGvD;AAEA,cAAU,MAAM;AACd,aAAO,iBAAiB,UAAU,UAAU;AAAA,IAC9C,CAAC;AACD,gBAAY,MAAM;AAChB,aAAO,oBAAoB,UAAU,UAAU;AAAA,IACjD,CAAC;AAED,UAAM,kBAAkB,CAAC,UAAe;AACtC,oBAAc,QAAQ,MAAM,OAAO;AACnC,qBAAe,QAAQ,MAAM,OAAO;AAIpC,iBAAA;AAAA,IACF;AAEA,UAAM,SAAS,SAAS,MAAM;AAC5B,UAAI,WAAW,MAAM,SAAS,EAAG,QAAO;AACxC,aAAO,WAAW,MAAM,QAAQ,cAAc;AAAA,IAChD,CAAC;AAED,UAAM,SAAS,SAAS,MAAM;AAC5B,UAAI,WAAW,MAAM,UAAU,EAAG,QAAO;AACzC,aAAO,WAAW,MAAM,SAAS,eAAe;AAAA,IAClD,CAAC;AAGD,UAAM,mBAAmB,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC;AAE/C,UAAM,UAAU;AAAA,MACd,MAAM,QAAQ,IAAI,CAAC,MAAM;AACvB,eAAO;AAAA,UACL,QAAQ,CAAA;AAAA,UACR,UAAU,EAAE;AAAA,UACZ,UAAU;AAAA,QAAA;AAAA,MAEd,CAAC;AAAA,IAAA;AAIH,UAAM,QAAQ,CAAC,OAAY,UAAkB;AAI3C,uBAAiB,QAAQ,iBAAiB,MAAM;AAAA,QAC9C,CAAC,SAAS,KAAK,SAAS,MAAM,MAAM;AAAA,MAAA;AAEtC,cAAQ,MAAM,KAAK,EAAE,WAAW;AAAA,IAClC;AAEA,UAAM,WAAW,CAAC,OAAY,UAAkB;AAG9C,cAAQ,MAAM,KAAK,EAAE,SAAS,CAAA;AAC9B,cAAQ,MAAM,KAAK,EAAE,WAAW;AAAA,IAClC;AAGA,UAAM,aAAa,IAAI,KAAK;AAE5B,UAAM,WAAW,MAAM;AACrB,iBAAW,QAAQ;AACnB,cAAQ,MAAM,QAAQ,CAAC,WAAW;AAChC,eAAO,WAAW;AAAA,MACpB,CAAC;AAAA,IACH;AAEA,UAAM,QAAQ,MAAM;AAClB,iBAAW,QAAQ;AACnB,uBAAiB,QAAQ,CAAC,GAAG,MAAM,OAAO;AAC1C,cAAQ,MAAM,QAAQ,CAAC,WAAW;AAChC,eAAO,SAAS,CAAA;AAChB,eAAO,WAAW;AAAA,MACpB,CAAC;AAAA,IACH;;AAIE,aAAAA,UAAA,GAAAC,mBAkGM,OAlGN,YAkGM;AAAA,QAjGJC,mBAgFM,OAhFN,YAgFM;AAAA,UA9EJA,mBAsBM,OAtBN,YAsBM;AAAA,YArBJC,YAoBYC,MAAAC,gBAAA,GAAA;AAAA,cAnBV,OAAM;AAAA,0BACG,iBAAA;AAAA,2EAAA,iBAAgB,QAAA;AAAA,cACxB,OAAK,EAAA,MAAA,WAAA,MAAA,CAA4B,WAAA,OAAU,KAAA,CAAQ,WAAA,MAAA;AAAA,YAAU;+BAI5D,MAAmC;AAAA,kCAFrCJ,mBAcMK,UAAA,MAAAC,WAZc,iBAAA,OAAgB,CAA3B,YAAO;sCAFhBN,mBAcM,OAAA;AAAA,oBAbJ,OAAM;AAAA,oBAEL,KAAK,QAAQ;AAAA,kBAAA;oBAIN,QAAQ,sBAFhBA,mBAKE,OAAA;AAAA;sBAJA,OAAM;AAAA,sBAEL,KAAK,QAAQ;AAAA,sBACd,KAAI;AAAA,oBAAA,4BAEND,UAAA,GAAAC,mBAEI,KAFJ,YAEIO,gBADC,QAAQ,IAAI,GAAA,CAAA;AAAA,kBAAA;;;;;;UAOvBN,mBAoDM,OApDN,YAoDM;AAAA,YAnDJA,mBAME,OAAA;AAAA,cALC,QAAM;AAAA,uBACH;AAAA,cAAJ,KAAI;AAAA,cACH,KAAK,MAAM;AAAA,cACZ,KAAI;AAAA,cACJ,OAAM;AAAA,YAAA;aAERF,UAAA,IAAA,GAAAC,mBA2CYK,2BAzCgB,MAAM,SAAO,CAA/B,QAAQ,UAAK;kCAFvBG,YA2CYL,MAAAC,gBAAA,GAAA;AAAA,gBA1CV,OAAM;AAAA,gBAEL,KAAK;AAAA,4BACG,QAAA,MAAQ,KAAK,EAAE;AAAA,mDAAf,QAAA,MAAQ,KAAK,EAAE,SAAM;AAAA,gBAC7B,OAAK,EAAA,KAAS,QAAA,MAAQ,KAAK,EAAE,SAAA;AAAA,gBAC7B,OAAKK,eAAA;AAAA,wBAAsB,OAAO,OAAO,OAAA,QAAM;AAAA,uBAA0B,OAAO,OAAO,OAAA,QAAM;AAAA,gBAAA;gBAI7F,OAAG,CAAA,WAAE,MAAM,QAAQ,KAAK;AAAA,gBACxB,UAAM,CAAA,WAAE,SAAS,QAAQ,KAAK;AAAA,cAAA;iCAE/B,MAAA;;AAKE;AAAA,oBAHM,QAAA,MAAQ,KAAK,EAAE,OAAM,CAAA,KAAO,QAAA,MAAQ,KAAK,EAAE,OAAM,CAAA,EAAI,sBAF7DT,mBAKE,OAAA;AAAA;sBAJA,OAAM;AAAA,sBAEL,KAAK,QAAA,MAAQ,KAAK,EAAE,UAAU;AAAA,sBAC/B,KAAI;AAAA,oBAAA,2BAIO,QAAA,MAAQ,KAAK,EAAE,OAAM,CAAA,kBAFlCA,mBAKI,KALJ,YAKIO,gBADC,QAAA,MAAQ,KAAK,EAAE,OAAM,CAAA,EAAI,IAAI,GAAA,CAAA;oBAGX,WAAA,WAA4B,aAAA,MAAQ,KAAK,EAAE,OAAM,CAAA,MAArB,mBAA0B,UAAS,QAAA,MAAQ,KAAK,EAAE,YADrGR,aAAAC,mBAQO,QARP,aAQO;AAAA,sBADLE,YAA8CQ,aAAA;AAAA,wBAArC,UAAUP,MAAA,aAAA;AAAA,wBAAe,MAAK;AAAA,sBAAA;;oBAGlB,WAAA,WAA4B,aAAA,MAAQ,KAAK,EAAE,OAAM,CAAA,MAArB,mBAA0B,UAAS,QAAA,MAAQ,KAAK,EAAE,YADrGJ,aAAAC,mBAQO,QARP,aAQO;AAAA,sBADLE,YAA6CQ,aAAA;AAAA,wBAApC,UAAUP,MAAA,YAAA;AAAA,wBAAc,MAAK;AAAA,sBAAA;;;;;;;;;QAO9CF,mBAaM,OAAA,EAbD,OAAM,oCAAgC;AAAA,UACzCA,mBAKS,UAAA;AAAA,YAJP,OAAM;AAAA,YACL,SAAO;AAAA,UAAA,GACT,WAED;AAAA,UACAA,mBAKS,UAAA;AAAA,YAJP,OAAM;AAAA,YACL,SAAO;AAAA,UAAA,GACT,eAED;AAAA,QAAA;;;;;"}
1
+ {"version":3,"file":"EpDraggable.vue.js","sources":["../../../src/components/interactions/EpDraggable.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref, onMounted, onUnmounted } from \"vue\";\nimport { VueDraggableNext as draggable } from \"vue-draggable-next\";\nimport type { Choice } from \"~/types/Draggable\";\nimport { mdiCheckBold, mdiCloseThick } from \"@mdi/js\";\nimport EpIcon from \"~/components/basics/EpIcon.vue\";\nimport type { EpDraggableProps } from \"~/types/interactions/EpDraggable\";\n\nconst props = withDefaults(defineProps<EpDraggableProps>(), {});\n\n// Manage the image and its size\n\nconst originalWidth = ref(0);\nconst originalHeight = ref(0);\n\nconst actualRect = ref({ width: 0, height: 0 });\nconst myImage = ref<HTMLImageElement | null>(null);\n\nconst updateSize = () => {\n if (!myImage.value) return;\n\n const rect = myImage.value.getBoundingClientRect();\n actualRect.value = { width: rect.width, height: rect.height };\n\n //console.log('Image size updated. Width:', actualRect.value.width, 'Height:', actualRect.value.height);\n};\n\nonMounted(() => {\n window.addEventListener(\"resize\", updateSize);\n});\nonUnmounted(() => {\n window.removeEventListener(\"resize\", updateSize);\n});\n\nconst handleImageLoad = (event: any) => {\n originalWidth.value = event.target.naturalWidth;\n originalHeight.value = event.target.naturalHeight;\n\n // console.log('Image loaded. Width:', originalWidth.value, 'Height:', originalHeight.value);\n\n updateSize();\n};\n\nconst xRatio = computed(() => {\n if (actualRect.value.width == 0) return 1;\n return actualRect.value.width / originalWidth.value;\n});\n\nconst yRatio = computed(() => {\n if (actualRect.value.height == 0) return 1;\n return actualRect.value.height / originalHeight.value;\n});\n\n// Créer une copie réactive de props.answers\nconst availableAnswers = ref([...props.answers]);\n\nconst choices = ref<Choice[]>(\n props.sockets.map((s) => {\n return {\n choice: [],\n expected: s.correctAnswer,\n allowPut: true,\n };\n })\n);\n\n// Manage drag and drop\nconst onAdd = (event: any, index: number) => {\n // console.log(event.clone);\n\n // Retirer l'élément de la liste des réponses disponibles\n availableAnswers.value = availableAnswers.value.filter(\n (item) => item.name !== event.clone.name\n );\n choices.value[index].allowPut = false;\n};\n\nconst onRemove = (event: any, index: number) => {\n // console.log(event.clone);\n\n choices.value[index].choice = [];\n choices.value[index].allowPut = true;\n};\n\n// Manage verification buttons\nconst validating = ref(false);\n\nconst validate = () => {\n validating.value = true;\n choices.value.forEach((choice) => {\n choice.allowPut = false;\n });\n};\n\nconst retry = () => {\n validating.value = false;\n availableAnswers.value = [...props.answers];\n choices.value.forEach((choice) => {\n choice.choice = [];\n choice.allowPut = true;\n });\n};\n</script>\n\n<template>\n <div class=\"flex flex-col\">\n <div class=\"grid grid-cols-3 gap-3 w-full my-8\">\n <!-- Draggable answers block -->\n <div class=\"col-span-1 m-6\">\n <draggable\n class=\"dragArea bg-gray-700 rounded-md p-4 min-h-5 list-group w-full\"\n v-model=\"availableAnswers\"\n :group=\"{ name: 'answers', pull: !validating, put: !validating }\"\n >\n <div\n class=\"list-group-item bg-gray-300 dark:bg-gray-800 m-1 p-3 rounded-md text-center flex justify-center items-center\"\n v-for=\"element in availableAnswers\"\n :key=\"element.name\"\n >\n <img\n class=\"cursor-grab active:cursor-grabbing max-w-32 rounded\"\n v-if=\"element.isImg\"\n :src=\"element.src\"\n alt=\"img\"\n />\n <p class=\"cursor-grab active:cursor-grabbing\" v-else>\n {{ element.name }}\n </p>\n </div>\n </draggable>\n </div>\n\n <!-- Drop area block -->\n <div class=\"col-span-2 relative\">\n <img\n @load=\"handleImageLoad\"\n ref=\"myImage\"\n :src=\"props.src\"\n alt=\"img\"\n class=\"w-full h-full select-none\"\n />\n <draggable\n class=\"dropArea absolute bg-gray-300 dark:bg-gray-800 p-4 rounded-md min-w-14 max-w-32\"\n v-for=\"(socket, index) in props.sockets\"\n :key=\"index\"\n v-model=\"choices[index].choice\"\n :group=\"{ put: choices[index].allowPut }\"\n :style=\"{\n left: socket.xPos * xRatio + 'px',\n top: socket.yPos * yRatio + 'px',\n }\"\n @add=\"onAdd($event, index)\"\n @remove=\"onRemove($event, index)\"\n >\n <img\n class=\"cursor-grab active:cursor-grabbing rounded\"\n v-if=\"choices[index].choice[0] && choices[index].choice[0].isImg\"\n :src=\"choices[index].choice[0].src\"\n alt=\"img\"\n />\n <p\n class=\"cursor-grab active:cursor-grabbing\"\n v-else-if=\"choices[index].choice[0]\"\n >\n {{ choices[index].choice[0].name }}\n </p>\n <span\n v-if=\"\n validating &&\n choices[index].choice[0]?.name !== choices[index].expected\n \"\n class=\"absolute -top-5 -right-5 bg-red-500 text-white px-2 py-1 rounded-md\"\n >\n <EpIcon :iconPath=\"mdiCloseThick\" size=\"18\" />\n </span>\n <span\n v-if=\"\n validating &&\n choices[index].choice[0]?.name === choices[index].expected\n \"\n class=\"absolute -top-5 -right-5 bg-green-500 text-white px-2 py-1 rounded-md\"\n >\n <EpIcon :iconPath=\"mdiCheckBold\" size=\"18\" />\n </span>\n </draggable>\n </div>\n </div>\n\n <!-- Verification buttons -->\n <div class=\"flex justify-center gap-4 mt-8\">\n <button\n class=\"bg-blue-500 text-white px-3 py-2 rounded-md text-center\"\n @click=\"validate\"\n >\n Valider\n </button>\n <button\n class=\"bg-blue-500 text-white px-3 py-2 rounded-md text-center\"\n @click=\"retry\"\n >\n Recommencer\n </button>\n </div>\n </div>\n</template>\n"],"names":["_openBlock","_createElementBlock","_createElementVNode","_createVNode","_unref","draggable","_Fragment","_renderList","_toDisplayString","_createBlock","_normalizeStyle","EpIcon"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"EpHotSpot.vue.js","sources":["../../../src/components/interactions/EpHotSpot.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, computed, toRefs } from \"vue\";\nimport { type EpHotSpotProps } from \"~/types/interactions/EpHotSpot\";\n\nconst props = withDefaults(defineProps<EpHotSpotProps>(), {\n labels: () => {\n return {\n fermer: \"Fermer\",\n };\n },\n});\n\nconst { title, imageURL } = toRefs(props);\n\nconst hotsPots = computed(() => {\n if (props.infoButtons) {\n return props.infoButtons.map((button) => {\n let transform = `translateX(-50%)`;\n\n if (button.horizontalPosition === 0) transform = ``;\n else if (button.horizontalPosition === 100)\n transform = `translateX(-100%)`;\n if (button.verticalPosition === 100)\n transform = `translateY(-100%) ${transform}`;\n\n const position = `transform: ${transform}; top: ${button.verticalPosition}%; left: ${button.horizontalPosition}%;`;\n\n return { ...button, position };\n });\n }\n return [];\n});\n\nconst modalOpen = ref(false);\nconst displayContent = ref(\"\");\nconst titleDisplay = ref(\"\");\n\nconst openModal = (title: string, content: string) => {\n modalOpen.value = true;\n displayContent.value = content;\n titleDisplay.value = title;\n};\n\nconst closeModal = () => {\n modalOpen.value = false;\n displayContent.value = \"\";\n};\n</script>\n\n<template>\n <div>\n <h2 class=\"text-xl font-bold\">{{ title }}</h2>\n <div class=\"relative\">\n <img :src=\"imageURL\" :alt=\"`l'image de ${title}`\" />\n <template v-for=\"spot in hotsPots\" :key=\"spot.id\">\n <button\n @click=\"openModal(spot.title, spot.content)\"\n :class=\"`absolute text-white px-4 py-2 shadow-md bg-primary`\"\n :style=\"`${spot.position}`\"\n >\n +\n </button>\n </template>\n <div\n v-if=\"modalOpen\"\n class=\"absolute inset-0 flex items-center justify-center bg-black bg-opacity-5 px-2\"\n >\n <div class=\"mx-2 bg-white p-2 shadow-md\">\n <h4>{{ titleDisplay }}</h4>\n <div v-html=\"displayContent\" class=\"text-sm\" />\n <button\n @click=\"closeModal\"\n class=\"mt-4 bg-primary text-white px-2 py-1 text-sm\"\n >\n {{ labels.fermer }}\n </button>\n </div>\n </div>\n </div>\n </div>\n</template>\n"],"names":["title","_createElementBlock","_createElementVNode","_toDisplayString","_unref","_Fragment","_renderList","_normalizeStyle","_openBlock","labels"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,UAAM,QAAQ;AAQd,UAAM,EAAE,OAAO,aAAa,OAAO,KAAK;AAExC,UAAM,WAAW,SAAS,MAAM;AAC9B,UAAI,MAAM,aAAa;AACrB,eAAO,MAAM,YAAY,IAAI,CAAC,WAAW;AACvC,cAAI,YAAY;AAEhB,cAAI,OAAO,uBAAuB,EAAG,aAAY;AAAA,mBACxC,OAAO,uBAAuB;AACrC,wBAAY;AACd,cAAI,OAAO,qBAAqB;AAC9B,wBAAY,qBAAqB,SAAS;AAE5C,gBAAM,WAAW,cAAc,SAAS,UAAU,OAAO,gBAAgB,YAAY,OAAO,kBAAkB;AAE9G,iBAAO,EAAE,GAAG,QAAQ,SAAA;AAAA,QACtB,CAAC;AAAA,MACH;AACA,aAAO,CAAA;AAAA,IACT,CAAC;AAED,UAAM,YAAY,IAAI,KAAK;AAC3B,UAAM,iBAAiB,IAAI,EAAE;AAC7B,UAAM,eAAe,IAAI,EAAE;AAE3B,UAAM,YAAY,CAACA,QAAe,YAAoB;AACpD,gBAAU,QAAQ;AAClB,qBAAe,QAAQ;AACvB,mBAAa,QAAQA;AAAAA,IACvB;AAEA,UAAM,aAAa,MAAM;AACvB,gBAAU,QAAQ;AAClB,qBAAe,QAAQ;AAAA,IACzB;;0BAIEC,mBA6BM,OAAA,MAAA;AAAA,QA5BJC,mBAA8C,MAA9C,YAA8CC,gBAAbC,MAAA,KAAA,CAAK,GAAA,CAAA;AAAA,QACtCF,mBA0BM,OA1BN,YA0BM;AAAA,UAzBJA,mBAAoD,OAAA;AAAA,YAA9C,KAAKE,MAAA,QAAA;AAAA,YAAW,mBAAmBA,MAAA,KAAA,CAAK;AAAA,UAAA;4BAC9CH,mBAQWI,UAAA,MAAAC,WARc,SAAA,OAAQ,CAAhB,SAAI;gCACnBL,mBAMS,UAAA;AAAA,cAP8B,KAAA,KAAK;AAAA,cAEzC,SAAK,CAAA,WAAE,UAAU,KAAK,OAAO,KAAK,OAAO;AAAA,cACzC,sBAAO,oDAAoD;AAAA,cAC3D,OAAKM,eAAA,GAAK,KAAK,QAAQ,EAAA;AAAA,YAAA,GACzB,OAED,IAAA,UAAA;AAAA;UAGM,UAAA,SADRC,UAAA,GAAAP,mBAcM,OAdN,YAcM;AAAA,YAVJC,mBASM,OATN,YASM;AAAA,cARJA,mBAA2B,4BAApB,aAAA,KAAY,GAAA,CAAA;AAAA,cACnBA,mBAA+C,OAAA;AAAA,gBAA1C,WAAQ,eAAA;AAAA,gBAAgB,OAAM;AAAA,cAAA;cACnCA,mBAKS,UAAA;AAAA,gBAJN,SAAO;AAAA,gBACR,OAAM;AAAA,cAAA,GAEHO,gBAAAA,KAAAA,OAAO,MAAM,GAAA,CAAA;AAAA,YAAA;;;;;;;"}
1
+ {"version":3,"file":"EpHotSpot.vue.js","sources":["../../../src/components/interactions/EpHotSpot.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, computed, toRefs } from \"vue\";\nimport type { EpHotSpotProps } from \"~/types/interactions/EpHotSpot\";\n\nconst props = withDefaults(defineProps<EpHotSpotProps>(), {\n labels: () => {\n return {\n fermer: \"Fermer\",\n };\n },\n});\n\nconst { title, imageURL } = toRefs(props);\n\nconst hotsPots = computed(() => {\n if (props.infoButtons) {\n return props.infoButtons.map((button) => {\n let transform = `translateX(-50%)`;\n\n if (button.horizontalPosition === 0) transform = ``;\n else if (button.horizontalPosition === 100)\n transform = `translateX(-100%)`;\n if (button.verticalPosition === 100)\n transform = `translateY(-100%) ${transform}`;\n\n const position = `transform: ${transform}; top: ${button.verticalPosition}%; left: ${button.horizontalPosition}%;`;\n\n return { ...button, position };\n });\n }\n return [];\n});\n\nconst modalOpen = ref(false);\nconst displayContent = ref(\"\");\nconst titleDisplay = ref(\"\");\n\nconst openModal = (title: string, content: string) => {\n modalOpen.value = true;\n displayContent.value = content;\n titleDisplay.value = title;\n};\n\nconst closeModal = () => {\n modalOpen.value = false;\n displayContent.value = \"\";\n};\n</script>\n\n<template>\n <div>\n <h2 class=\"text-xl font-bold\">{{ title }}</h2>\n <div class=\"relative\">\n <img :src=\"imageURL\" :alt=\"`l'image de ${title}`\" />\n <template v-for=\"spot in hotsPots\" :key=\"spot.id\">\n <button\n @click=\"openModal(spot.title, spot.content)\"\n :class=\"`absolute text-white px-4 py-2 shadow-md bg-primary`\"\n :style=\"`${spot.position}`\"\n >\n +\n </button>\n </template>\n <div\n v-if=\"modalOpen\"\n class=\"absolute inset-0 flex items-center justify-center bg-black bg-opacity-5 px-2\"\n >\n <div class=\"mx-2 bg-white p-2 shadow-md\">\n <h4>{{ titleDisplay }}</h4>\n <div v-html=\"displayContent\" class=\"text-sm\" />\n <button\n @click=\"closeModal\"\n class=\"mt-4 bg-primary text-white px-2 py-1 text-sm\"\n >\n {{ labels.fermer }}\n </button>\n </div>\n </div>\n </div>\n </div>\n</template>\n"],"names":["title","_createElementBlock","_createElementVNode","_toDisplayString","_unref","_Fragment","_renderList","_normalizeStyle","_openBlock","labels"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,UAAM,QAAQ;AAQd,UAAM,EAAE,OAAO,aAAa,OAAO,KAAK;AAExC,UAAM,WAAW,SAAS,MAAM;AAC9B,UAAI,MAAM,aAAa;AACrB,eAAO,MAAM,YAAY,IAAI,CAAC,WAAW;AACvC,cAAI,YAAY;AAEhB,cAAI,OAAO,uBAAuB,EAAG,aAAY;AAAA,mBACxC,OAAO,uBAAuB;AACrC,wBAAY;AACd,cAAI,OAAO,qBAAqB;AAC9B,wBAAY,qBAAqB,SAAS;AAE5C,gBAAM,WAAW,cAAc,SAAS,UAAU,OAAO,gBAAgB,YAAY,OAAO,kBAAkB;AAE9G,iBAAO,EAAE,GAAG,QAAQ,SAAA;AAAA,QACtB,CAAC;AAAA,MACH;AACA,aAAO,CAAA;AAAA,IACT,CAAC;AAED,UAAM,YAAY,IAAI,KAAK;AAC3B,UAAM,iBAAiB,IAAI,EAAE;AAC7B,UAAM,eAAe,IAAI,EAAE;AAE3B,UAAM,YAAY,CAACA,QAAe,YAAoB;AACpD,gBAAU,QAAQ;AAClB,qBAAe,QAAQ;AACvB,mBAAa,QAAQA;AAAAA,IACvB;AAEA,UAAM,aAAa,MAAM;AACvB,gBAAU,QAAQ;AAClB,qBAAe,QAAQ;AAAA,IACzB;;0BAIEC,mBA6BM,OAAA,MAAA;AAAA,QA5BJC,mBAA8C,MAA9C,YAA8CC,gBAAbC,MAAA,KAAA,CAAK,GAAA,CAAA;AAAA,QACtCF,mBA0BM,OA1BN,YA0BM;AAAA,UAzBJA,mBAAoD,OAAA;AAAA,YAA9C,KAAKE,MAAA,QAAA;AAAA,YAAW,mBAAmBA,MAAA,KAAA,CAAK;AAAA,UAAA;4BAC9CH,mBAQWI,UAAA,MAAAC,WARc,SAAA,OAAQ,CAAhB,SAAI;gCACnBL,mBAMS,UAAA;AAAA,cAP8B,KAAA,KAAK;AAAA,cAEzC,SAAK,CAAA,WAAE,UAAU,KAAK,OAAO,KAAK,OAAO;AAAA,cACzC,sBAAO,oDAAoD;AAAA,cAC3D,OAAKM,eAAA,GAAK,KAAK,QAAQ,EAAA;AAAA,YAAA,GACzB,OAED,IAAA,UAAA;AAAA;UAGM,UAAA,SADRC,UAAA,GAAAP,mBAcM,OAdN,YAcM;AAAA,YAVJC,mBASM,OATN,YASM;AAAA,cARJA,mBAA2B,4BAApB,aAAA,KAAY,GAAA,CAAA;AAAA,cACnBA,mBAA+C,OAAA;AAAA,gBAA1C,WAAQ,eAAA;AAAA,gBAAgB,OAAM;AAAA,cAAA;cACnCA,mBAKS,UAAA;AAAA,gBAJN,SAAO;AAAA,gBACR,OAAM;AAAA,cAAA,GAEHO,gBAAAA,KAAAA,OAAO,MAAM,GAAA,CAAA;AAAA,YAAA;;;;;;;"}
@@ -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=\"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;;;;;;;;;;;;;"}
@@ -103,7 +103,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
103
103
  return defineAsyncComponent(() => import("../signages/EpNothing.vue.js"));
104
104
  }
105
105
  return defineAsyncComponent(
106
- () => __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "../basics/EpAvatar.vue": () => import("../basics/EpAvatar.vue.js"), "../basics/EpBadge.vue": () => import("../basics/EpBadge.vue.js"), "../basics/EpBtn.vue": () => import("../basics/EpBtn.vue2.js"), "../basics/EpCard.vue": () => import("../basics/EpCard.vue2.js"), "../basics/EpChip.vue": () => import("../basics/EpChip.vue2.js"), "../basics/EpDivider.vue": () => import("../basics/EpDivider.vue2.js"), "../basics/EpFlex.vue": () => import("../basics/EpFlex.vue2.js"), "../basics/EpHover.vue": () => import("../basics/EpHover.vue2.js"), "../basics/EpHoverCard.vue": () => import("../basics/EpHoverCard.vue2.js"), "../basics/EpIcon.vue": () => import("../basics/EpIcon.vue2.js"), "../basics/EpImg.vue": () => import("../basics/EpImg.vue2.js"), "../basics/EpImgCarousel.vue": () => import("../basics/EpImgCarousel.vue2.js"), "../basics/EpList.vue": () => import("../basics/EpList.vue.js"), "../basics/EpListItem.vue": () => import("../basics/EpListItem.vue2.js"), "../basics/EpSection.vue": () => import("../basics/EpSection.vue2.js"), "../basics/EpSectionCols.vue": () => import("../basics/EpSectionCols.vue2.js"), "../basics/EpSpinner.vue": () => import("../basics/EpSpinner.vue2.js"), "../basics/EpStackedList.vue": () => import("../basics/EpStackedList.vue2.js"), "../basics/EpTable.vue": () => import("../basics/EpTable.vue2.js"), "../basics/EpText.vue": () => import("../basics/EpText.vue2.js"), "../charts/EpBarChart.vue": () => import("../charts/EpBarChart.vue2.js"), "../charts/EpFunnelChart.vue": () => import("../charts/EpFunnelChart.vue2.js"), "../charts/EpLineChart.vue": () => import("../charts/EpLineChart.vue2.js"), "../charts/EpPieChart.vue": () => import("../charts/EpPieChart.vue2.js"), "../educationals/EpBranchingScenario.vue": () => import("../educationals/EpBranchingScenario.vue.js"), "../educationals/EpCodeblock.vue": () => import("../educationals/EpCodeblock.vue3.js"), "../educationals/EpConclusion.vue": () => import("../educationals/EpConclusion.vue2.js"), "../educationals/EpDescription.vue": () => import("../educationals/EpDescription.vue2.js"), "../educationals/EpDocument.vue": () => import("../educationals/EpDocument.vue2.js"), "../educationals/EpEdu.vue": () => import("../educationals/EpEdu.vue2.js"), "../educationals/EpInstructions.vue": () => import("../educationals/EpInstructions.vue2.js"), "../educationals/EpIntroduction.vue": () => import("../educationals/EpIntroduction.vue2.js"), "../educationals/EpObjective.vue": () => import("../educationals/EpObjective.vue2.js"), "../educationals/EpReading.vue": () => import("../educationals/EpReading.vue2.js"), "../educationals/EpResource.vue": () => import("../educationals/EpResource.vue2.js"), "../educationals/EpScope.vue": () => import("../educationals/EpScope.vue2.js"), "../educationals/EpSpecificObjective.vue": () => import("../educationals/EpSpecificObjective.vue2.js"), "../forms/EpCheckbox.vue": () => import("../forms/EpCheckbox.vue.js"), "../forms/EpInput.vue": () => import("../forms/EpInput.vue.js"), "../forms/EpRadio.vue": () => import("../forms/EpRadio.vue.js"), "../forms/EpRadioSummative.vue": () => import("../forms/EpRadioSummative.vue.js"), "../forms/EpSelect.vue": () => import("../forms/EpSelect.vue.js"), "../forms/EpSwitch.vue": () => import("../forms/EpSwitch.vue.js"), "../forms/EpTextarea.vue": () => import("../forms/EpTextarea.vue.js"), "../forms/EpToggle.vue": () => import("../forms/EpToggle.vue.js"), "./Ep360Image.vue": () => import("./Ep360Image.vue.js"), "./Ep360Video.vue": () => import("./Ep360Video.vue.js"), "./EpAccordeon.vue": () => import("./EpAccordeon.vue.js"), "./EpContentSlider.vue": () => import("./EpContentSlider.vue2.js"), "./EpDarkMode.vue": () => import("./EpDarkMode.vue2.js"), "./EpDraggable.vue": () => import("./EpDraggable.vue2.js"), "./EpHotSpot.vue": () => import("./EpHotSpot.vue2.js"), "./EpModal.vue": () => import("./EpModal.vue3.js"), "./EpQuestion.vue": () => import("./EpQuestion.vue2.js"), "./EpSummativeTable.vue": () => import("./EpSummativeTable.vue2.js"), "./EpSvgShow.vue": () => import("./EpSvgShow.vue2.js"), "./EpTabs.vue": () => import("./EpTabs.vue.js"), "./EpTooltip.vue": () => import("./EpTooltip.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.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)
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)
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 { 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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"}