@tekkare/romulus 0.1.251 → 0.1.253

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 (267) hide show
  1. package/dist/module.json +1 -1
  2. package/dist/runtime/utils/projects.d.ts +8 -0
  3. package/dist/runtime/utils/projects.js +8 -5
  4. package/layer/app/app.config.ts +6 -0
  5. package/layer/app/components/OipPubmedSummary.vue +223 -0
  6. package/layer/app/components/OipResourceDrawer.vue +331 -0
  7. package/layer/app/components/OipResourceDrawerLink.vue +40 -0
  8. package/layer/app/components/OipResourceField.vue +41 -0
  9. package/layer/app/components/OipResourceGenericCard.vue +54 -0
  10. package/layer/app/components/OipResourceSource.vue +50 -0
  11. package/layer/app/components/OipResourceTags.vue +65 -0
  12. package/layer/app/components/OipResourceView.vue +107 -0
  13. package/layer/app/components/oip-drugs/fiches/AssociationFiche.vue +775 -0
  14. package/layer/app/components/oip-drugs/fiches/BrandFiche.vue +1111 -0
  15. package/layer/app/components/oip-drugs/fiches/IndicationFiche.vue +182 -0
  16. package/layer/app/components/oip-drugs/fiches/JoFiche.vue +101 -0
  17. package/layer/app/components/oip-drugs/fiches/PndsFiche.vue +279 -0
  18. package/layer/app/components/oip-drugs/heart/JoCard.vue +314 -0
  19. package/layer/app/components/oip-drugs/heart/TextHighlight.vue +326 -0
  20. package/layer/app/components/oip-drugs/heart/ansm/BrandCard.vue +187 -0
  21. package/layer/app/components/oip-drugs/heart/ansm/CisDetail.vue +363 -0
  22. package/layer/app/components/oip-drugs/heart/ansm/CisTable.vue +167 -0
  23. package/layer/app/components/oip-drugs/heart/associations/NationalAssemblyCard.vue +373 -0
  24. package/layer/app/components/oip-drugs/heart/associations/NationalAssemblyFiche.vue +372 -0
  25. package/layer/app/components/oip-drugs/heart/associations/TranscriptionCard.vue +55 -0
  26. package/layer/app/components/oip-drugs/heart/elastic/SourceContainerElastic.vue +103 -0
  27. package/layer/app/components/oip-drugs/heart/france/BrandGroupCard.vue +450 -0
  28. package/layer/app/components/oip-drugs/heart/mitm/Card.vue +199 -0
  29. package/layer/app/components/oip-drugs/heart/mitm/Source.vue +23 -0
  30. package/layer/app/components/oip-drugs/heart/mitm/details/Overview.vue +381 -0
  31. package/layer/app/components/oip-drugs/heart/put/Card.vue +212 -0
  32. package/layer/app/components/oip-drugs/heart/results/AccesCard.vue +696 -0
  33. package/layer/app/components/oip-drugs/heart/results/AlertCard.vue +342 -0
  34. package/layer/app/components/oip-drugs/heart/results/AsmrCursor.vue +229 -0
  35. package/layer/app/components/oip-drugs/heart/results/EvalCard.vue +370 -0
  36. package/layer/app/components/oip-drugs/heart/results/IndicCard.vue +743 -0
  37. package/layer/app/components/oip-drugs/heart/results/MatchExplain.vue +243 -0
  38. package/layer/app/components/oip-drugs/heart/results/PrefRows.vue +105 -0
  39. package/layer/app/components/oip-drugs/heart/results/details/HasHistory.vue +487 -0
  40. package/layer/app/components/oip-drugs/heart/results/details/InternationalCountryCard.vue +461 -0
  41. package/layer/app/components/oip-drugs/heart/results/details/InternationalOverview.vue +200 -0
  42. package/layer/app/components/oip-drugs/heart/results/details/InternationalPriceDrawer.vue +647 -0
  43. package/layer/app/components/oip-drugs/heart/results/details/Monograph.vue +128 -0
  44. package/layer/app/components/oip-drugs/heart/results/details/OpinionDrawer.vue +535 -0
  45. package/layer/app/components/oip-drugs/heart/results/details/PresentationDrawer.vue +738 -0
  46. package/layer/app/components/oip-drugs/heart/results/details/Price.vue +227 -0
  47. package/layer/app/components/oip-drugs/heart/results/details/PriceOverview.vue +1261 -0
  48. package/layer/app/components/oip-drugs/heart/results/details/RecordDrawer.vue +494 -0
  49. package/layer/app/components/oip-drugs/heart/results/details/RecordList.vue +426 -0
  50. package/layer/app/components/oip-drugs/heart/results/les/Card.vue +340 -0
  51. package/layer/app/components/oip-drugs/heart/results/les/Drawer.vue +67 -0
  52. package/layer/app/components/oip-drugs/heart/results/les/IndicationDetail.vue +149 -0
  53. package/layer/app/components/oip-drugs/heart/results/les/Source.vue +20 -0
  54. package/layer/app/components/oip-drugs/heart/results/les/SourceTag.vue +39 -0
  55. package/layer/app/components/oip-drugs/heart/searchPage/DynamicSource.vue +29 -0
  56. package/layer/app/components/oip-drugs/medicam/market/Chart.vue +121 -0
  57. package/layer/app/components/oip-drugs/outpatient/ProductEvolution.vue +236 -0
  58. package/layer/app/components/oip-drugs/resources/Ansm.vue +75 -0
  59. package/layer/app/components/oip-drugs/resources/Association.vue +30 -0
  60. package/layer/app/components/oip-drugs/resources/Brand.vue +65 -0
  61. package/layer/app/components/oip-drugs/resources/Contribution.vue +216 -0
  62. package/layer/app/components/oip-drugs/resources/Hospital.vue +151 -0
  63. package/layer/app/components/oip-drugs/resources/Indication.vue +54 -0
  64. package/layer/app/components/oip-drugs/resources/Jo.vue +57 -0
  65. package/layer/app/components/oip-drugs/resources/Medicam.vue +140 -0
  66. package/layer/app/components/oip-drugs/resources/Mitm.vue +84 -0
  67. package/layer/app/components/oip-drugs/resources/NationalAssembly.vue +93 -0
  68. package/layer/app/components/oip-drugs/resources/Outpatient.vue +97 -0
  69. package/layer/app/components/oip-drugs/resources/Pnds.vue +24 -0
  70. package/layer/app/components/oip-drugs/resources/Price.vue +106 -0
  71. package/layer/app/components/oip-drugs/resources/Put.vue +143 -0
  72. package/layer/app/components/oip-science/appel-a-projet/Cards.vue +162 -0
  73. package/layer/app/components/oip-science/clinical-trials/Cards.vue +382 -0
  74. package/layer/app/components/oip-science/clinical-trials/CardsGlobal.vue +273 -0
  75. package/layer/app/components/oip-science/clinical-trials/LinkedList.vue +366 -0
  76. package/layer/app/components/oip-science/clinical-trials/PairBadge.vue +25 -0
  77. package/layer/app/components/oip-science/clinical-trials/PairBody.vue +182 -0
  78. package/layer/app/components/oip-science/clinical-trials/SitesDrawer.vue +95 -0
  79. package/layer/app/components/oip-science/common/Form.vue +73 -0
  80. package/layer/app/components/oip-science/common/MatchAvgTag.vue +283 -0
  81. package/layer/app/components/oip-science/common/NoData.vue +16 -0
  82. package/layer/app/components/oip-science/common/ScoreBadge.vue +35 -0
  83. package/layer/app/components/oip-science/common/Source.vue +31 -0
  84. package/layer/app/components/oip-science/common/TableTags.vue +279 -0
  85. package/layer/app/components/oip-science/common/Timeline.vue +104 -0
  86. package/layer/app/components/oip-science/common/ToolTips.vue +89 -0
  87. package/layer/app/components/oip-science/cross/publicationPubmed.vue +484 -0
  88. package/layer/app/components/oip-science/crossData/CrossDataLocations.vue +71 -0
  89. package/layer/app/components/oip-science/ctgov/Investigators.vue +148 -0
  90. package/layer/app/components/oip-science/ctgov/Locations.vue +102 -0
  91. package/layer/app/components/oip-science/ctgov/Publications.vue +52 -0
  92. package/layer/app/components/oip-science/ctgov/Sponsors.vue +66 -0
  93. package/layer/app/components/oip-science/ctgov/StudyDescription.vue +1136 -0
  94. package/layer/app/components/oip-science/ctgov-centers/ClinicalTrials.vue +40 -0
  95. package/layer/app/components/oip-science/ctgov-centers/Publications.vue +50 -0
  96. package/layer/app/components/oip-science/ctgov-investigators/ClinicalTrials.vue +43 -0
  97. package/layer/app/components/oip-science/ctgov-investigators/Informations.vue +171 -0
  98. package/layer/app/components/oip-science/ctgov-investigators/Publications.vue +44 -0
  99. package/layer/app/components/oip-science/elastic/DateRangeFilter.vue +209 -0
  100. package/layer/app/components/oip-science/elastic/Filter.vue +719 -0
  101. package/layer/app/components/oip-science/elastic/MatchExplain.vue +152 -0
  102. package/layer/app/components/oip-science/establishments/Cards.vue +183 -0
  103. package/layer/app/components/oip-science/establishments/ClinicalTrials.vue +62 -0
  104. package/layer/app/components/oip-science/establishments/Hcps.vue +227 -0
  105. package/layer/app/components/oip-science/establishments/Informations.vue +263 -0
  106. package/layer/app/components/oip-science/establishments/LinkedList.vue +153 -0
  107. package/layer/app/components/oip-science/establishments/MatchedLabels.vue +194 -0
  108. package/layer/app/components/oip-science/establishments/PublicFinance.vue +62 -0
  109. package/layer/app/components/oip-science/euct/Investigators.vue +125 -0
  110. package/layer/app/components/oip-science/euct/Locations.vue +102 -0
  111. package/layer/app/components/oip-science/euct/Products.vue +101 -0
  112. package/layer/app/components/oip-science/euct/Publications.vue +89 -0
  113. package/layer/app/components/oip-science/euct/Sponsors.vue +86 -0
  114. package/layer/app/components/oip-science/euct/StudyDescription.vue +1075 -0
  115. package/layer/app/components/oip-science/euct-centers/ClinicalTrials.vue +40 -0
  116. package/layer/app/components/oip-science/euct-centers/Publications.vue +55 -0
  117. package/layer/app/components/oip-science/euct-investigators/ClinicalTrials.vue +41 -0
  118. package/layer/app/components/oip-science/euct-investigators/Informations.vue +171 -0
  119. package/layer/app/components/oip-science/euct-investigators/Publications.vue +51 -0
  120. package/layer/app/components/oip-science/hcps/AppelsAProjet.vue +62 -0
  121. package/layer/app/components/oip-science/hcps/Cards.vue +237 -0
  122. package/layer/app/components/oip-science/hcps/ClinicalTrials.vue +78 -0
  123. package/layer/app/components/oip-science/hcps/Informations.vue +296 -0
  124. package/layer/app/components/oip-science/hcps/LinkedList.vue +153 -0
  125. package/layer/app/components/oip-science/hcps/MatchedLabels.vue +207 -0
  126. package/layer/app/components/oip-science/hcps/Pubmed.vue +128 -0
  127. package/layer/app/components/oip-science/local/SliderTabs.vue +99 -0
  128. package/layer/app/components/oip-science/local/SliderTabsFull.vue +135 -0
  129. package/layer/app/components/oip-science/pubmed/Authors.vue +128 -0
  130. package/layer/app/components/oip-science/pubmed/Cards.vue +417 -0
  131. package/layer/app/components/oip-science/pubmed/ClinicalTrials.vue +71 -0
  132. package/layer/app/components/oip-science/resources/Phrc.vue +39 -0
  133. package/layer/app/composables/useOipChapterScroll.ts +43 -0
  134. package/layer/app/composables/useOipResourceHooks.ts +27 -0
  135. package/layer/app/composables/useOipResourceNav.ts +66 -0
  136. package/layer/app/composables/useOipResourceViews.ts +117 -0
  137. package/layer/app/composables/useOipResources.ts +83 -0
  138. package/layer/app/oip-drugs/PORTING.md +120 -0
  139. package/layer/app/oip-drugs/composables/useAssociationDetail.ts +220 -0
  140. package/layer/app/oip-drugs/composables/useAssociationExport.ts +63 -0
  141. package/layer/app/oip-drugs/composables/useAssociationLookup.ts +105 -0
  142. package/layer/app/oip-drugs/composables/useCardPrefOptions.ts +201 -0
  143. package/layer/app/oip-drugs/composables/useCurrency.ts +121 -0
  144. package/layer/app/oip-drugs/composables/useDirectusSources.ts +224 -0
  145. package/layer/app/oip-drugs/composables/useHeartBrandMatches.ts +112 -0
  146. package/layer/app/oip-drugs/composables/useHeartDetailSearches.ts +479 -0
  147. package/layer/app/oip-drugs/composables/useHeartIntlApprovals.ts +661 -0
  148. package/layer/app/oip-drugs/composables/useHeartLesIndication.ts +168 -0
  149. package/layer/app/oip-drugs/composables/useHeartMatchExplain.ts +231 -0
  150. package/layer/app/oip-drugs/composables/useHeartReports.ts +239 -0
  151. package/layer/app/oip-drugs/composables/useHeartSearchFields.ts +233 -0
  152. package/layer/app/oip-drugs/composables/useMergeByKey.ts +23 -0
  153. package/layer/app/oip-drugs/composables/useOipDrugsElastic.ts +621 -0
  154. package/layer/app/oip-drugs/composables/usePageEmpty.ts +58 -0
  155. package/layer/app/oip-drugs/composables/v-useSalesSource.ts +64 -0
  156. package/layer/app/oip-drugs/drugs.css +500 -0
  157. package/layer/app/oip-drugs/esIndices.ts +322 -0
  158. package/layer/app/oip-drugs/kinds.ts +264 -0
  159. package/layer/app/oip-drugs/locales/en.json +1571 -0
  160. package/layer/app/oip-drugs/locales/fr.json +1571 -0
  161. package/layer/app/oip-drugs/monographs/blincyto-has.vue +289 -0
  162. package/layer/app/oip-drugs/monographs/darzalex-has.vue +276 -0
  163. package/layer/app/oip-drugs/monographs/dupixent-has.vue +216 -0
  164. package/layer/app/oip-drugs/monographs/enhertu-has.vue +280 -0
  165. package/layer/app/oip-drugs/monographs/has-sein-2023.vue +1649 -0
  166. package/layer/app/oip-drugs/monographs/ibrance-has.vue +277 -0
  167. package/layer/app/oip-drugs/monographs/imfinzi-has.vue +293 -0
  168. package/layer/app/oip-drugs/monographs/keytruda-has.vue +334 -0
  169. package/layer/app/oip-drugs/monographs/kisqali-has.vue +201 -0
  170. package/layer/app/oip-drugs/monographs/opdivo-has.vue +231 -0
  171. package/layer/app/oip-drugs/monographs/ozempic-has.vue +186 -0
  172. package/layer/app/oip-drugs/monographs/tecentriq-has.vue +312 -0
  173. package/layer/app/oip-drugs/monographs/yescarta-has.vue +272 -0
  174. package/layer/app/oip-drugs/types/elastic.ts +113 -0
  175. package/layer/app/oip-drugs/types/es/agencies.ts +152 -0
  176. package/layer/app/oip-drugs/types/es/directory.ts +54 -0
  177. package/layer/app/oip-drugs/types/es/docByIndex.ts +151 -0
  178. package/layer/app/oip-drugs/types/es/openmedic.ts +67 -0
  179. package/layer/app/oip-drugs/types/es/outpatient.ts +71 -0
  180. package/layer/app/oip-drugs/types/es/portal.ts +130 -0
  181. package/layer/app/oip-drugs/types/es/retail.ts +107 -0
  182. package/layer/app/oip-drugs/types/es/statistics.ts +29 -0
  183. package/layer/app/oip-drugs/types/heart/CurrencyRate.ts +16 -0
  184. package/layer/app/oip-drugs/types/heart/ansm.ts +106 -0
  185. package/layer/app/oip-drugs/types/heart/tag.ts +29 -0
  186. package/layer/app/oip-drugs/utils/associationFields.ts +118 -0
  187. package/layer/app/oip-drugs/utils/contributions.ts +36 -0
  188. package/layer/app/oip-drugs/utils/countryMapping.ts +387 -0
  189. package/layer/app/oip-drugs/utils/esHighlight.ts +21 -0
  190. package/layer/app/oip-drugs/utils/exportSheets.ts +57 -0
  191. package/layer/app/oip-drugs/utils/heartIntlPrice.ts +228 -0
  192. package/layer/app/oip-drugs/utils/heartStyleAndFormat.ts +262 -0
  193. package/layer/app/oip-drugs/utils/heartStyleAnsm.ts +71 -0
  194. package/layer/app/oip-drugs/utils/latestDate.ts +31 -0
  195. package/layer/app/oip-drugs/utils/p-heartCardTags.ts +53 -0
  196. package/layer/app/oip-drugs/utils/priceExport.ts +269 -0
  197. package/layer/app/oip-drugs/utils/q-hasRatings.ts +43 -0
  198. package/layer/app/oip-drugs/utils/s-openCard.ts +20 -0
  199. package/layer/app/oip-drugs/utils/sourceUuids.ts +155 -0
  200. package/layer/app/oip-drugs/utils/styleAndFormat.ts +40 -0
  201. package/layer/app/oip-drugs/utils/v-salesSeries.ts +156 -0
  202. package/layer/app/oip-drugs/utils/v-scopeTags.ts +23 -0
  203. package/layer/app/oip-science/PORTING.md +93 -0
  204. package/layer/app/oip-science/assets/smartSelection.json +428 -0
  205. package/layer/app/oip-science/composables/useAuthorMatching.ts +342 -0
  206. package/layer/app/oip-science/composables/useCTCenter.ts +107 -0
  207. package/layer/app/oip-science/composables/useCTInvestigators.ts +107 -0
  208. package/layer/app/oip-science/composables/useEstablishmentCrossData.ts +139 -0
  209. package/layer/app/oip-science/composables/useEstablishmentMatching.ts +176 -0
  210. package/layer/app/oip-science/composables/useEuct.ts +418 -0
  211. package/layer/app/oip-science/composables/useEuctCenter.ts +107 -0
  212. package/layer/app/oip-science/composables/useEuctInvestigators.ts +107 -0
  213. package/layer/app/oip-science/composables/useGlobalClinicalTrials.ts +624 -0
  214. package/layer/app/oip-science/composables/useLinkedTrials.ts +83 -0
  215. package/layer/app/oip-science/composables/useOipElastic.ts +658 -0
  216. package/layer/app/oip-science/composables/useOipSearchExplain.ts +166 -0
  217. package/layer/app/oip-science/composables/usePubmed.ts +487 -0
  218. package/layer/app/oip-science/composables/useSearchFields.ts +153 -0
  219. package/layer/app/oip-science/indexConfig.json +794 -0
  220. package/layer/app/oip-science/locales/en.json +483 -0
  221. package/layer/app/oip-science/locales/fr.json +483 -0
  222. package/layer/app/oip-science/science.css +1182 -0
  223. package/layer/app/oip-science/utils/a-openCard.ts +23 -0
  224. package/layer/app/oip-science/utils/b-openCard.ts +35 -0
  225. package/layer/app/oip-science/utils/c-filterContext.ts +81 -0
  226. package/layer/app/oip-science/utils/f-types.ts +241 -0
  227. package/layer/app/oip-science/utils/frDiseaseTerms.ts +269 -0
  228. package/layer/app/oip-science/utils/matchMethod.ts +53 -0
  229. package/layer/app/oip-science/utils/sliderTabs.ts +13 -0
  230. package/layer/app/oip-science/utils/sources.ts +15 -0
  231. package/layer/app/oip-science/utils/styleAndFormat.ts +608 -0
  232. package/layer/app/oip-science/utils/toPresets.ts +7 -0
  233. package/layer/app/oip-science/utils/valueTable.ts +126 -0
  234. package/layer/app/plugins/oip-science-i18n.ts +17 -0
  235. package/layer/app/utils/oipFicheRoutes.ts +118 -0
  236. package/layer/app/utils/oipResources.ts +440 -0
  237. package/layer/nuxt.config.ts +22 -2
  238. package/layer/public/reports/blincyto-has.html +292 -0
  239. package/layer/public/reports/blincyto-has.pdf +0 -0
  240. package/layer/public/reports/darzalex-has.html +279 -0
  241. package/layer/public/reports/darzalex-has.pdf +0 -0
  242. package/layer/public/reports/dupixent-has.html +217 -0
  243. package/layer/public/reports/dupixent-has.pdf +0 -0
  244. package/layer/public/reports/enhertu-has.html +283 -0
  245. package/layer/public/reports/enhertu-has.pdf +0 -0
  246. package/layer/public/reports/has-sein-2023.html +1639 -0
  247. package/layer/public/reports/ibrance-has.html +280 -0
  248. package/layer/public/reports/ibrance-has.pdf +0 -0
  249. package/layer/public/reports/imfinzi-has.html +297 -0
  250. package/layer/public/reports/imfinzi-has.pdf +0 -0
  251. package/layer/public/reports/keytruda-has.html +337 -0
  252. package/layer/public/reports/keytruda-has.pdf +0 -0
  253. package/layer/public/reports/kisqali-has.html +202 -0
  254. package/layer/public/reports/kisqali-has.pdf +0 -0
  255. package/layer/public/reports/opdivo-has.html +232 -0
  256. package/layer/public/reports/opdivo-has.pdf +0 -0
  257. package/layer/public/reports/ozempic-has.html +188 -0
  258. package/layer/public/reports/ozempic-has.pdf +0 -0
  259. package/layer/public/reports/tecentriq-has.html +315 -0
  260. package/layer/public/reports/tecentriq-has.pdf +0 -0
  261. package/layer/public/reports/yescarta-has.html +275 -0
  262. package/layer/public/reports/yescarta-has.pdf +0 -0
  263. package/layer/server/api/oip/es.post.ts +99 -0
  264. package/layer/server/api/oip/pdf.get.ts +70 -0
  265. package/layer/server/api/oip/reports.get.ts +98 -0
  266. package/layer/server/api/oip/resource-types.get.ts +22 -0
  267. package/package.json +1 -1
@@ -0,0 +1,31 @@
1
+ <!--
2
+ Les lignes « Source » d'une fiche (anciennement CommonSource de France
3
+ Augmented Science) : une par cle (« PubMed », « CT.gov »...), resolue par
4
+ sa fiche Directus.
5
+ -->
6
+ <template>
7
+ <div class="oip-sc-src">
8
+ <OipResourceSource v-for="uuid in uuids" :key="uuid" :uuid="uuid" :lang="lang" />
9
+ </div>
10
+ </template>
11
+
12
+ <script setup lang="ts">
13
+ import { OIP_SCIENCE_SOURCE_UUIDS } from "../../../oip-science/utils/sources";
14
+
15
+ const props = withDefaults(defineProps<{ sources?: string[]; lang?: "fr" | "en" }>(), {
16
+ sources: () => [],
17
+ lang: undefined,
18
+ });
19
+
20
+ const { locale } = useI18n();
21
+ const lang = computed<"fr" | "en">(() => props.lang ?? (locale.value === "en" ? "en" : "fr"));
22
+ const uuids = computed(() => props.sources.map((key) => OIP_SCIENCE_SOURCE_UUIDS[key]).filter((u): u is string => !!u));
23
+ </script>
24
+
25
+ <style scoped>
26
+ .oip-sc-src {
27
+ display: grid;
28
+ gap: var(--space-4);
29
+ justify-items: start;
30
+ }
31
+ </style>
@@ -0,0 +1,279 @@
1
+ <template>
2
+ <div class="oip-science">
3
+ <div ref="refContainer">
4
+ <div :class="!isVertical ? 'oip_row gap-16 v-start' : 'oip_grid gap-4'">
5
+ <div>
6
+ <div
7
+ class="oip_row gap-4 v-center"
8
+ :class="{
9
+ kk_block_limited_width: !isVertical && !isShortFirstColumn,
10
+ kk_block_limited_width_short: !isVertical && isShortFirstColumn,
11
+ }"
12
+ >
13
+ <RmIcon
14
+ :name="icon"
15
+ :size="12"
16
+ color="var(--cool-grey)"
17
+ v-if="icon"
18
+ />
19
+ <p class="kk_text cool_grey_light" v-if="showTitle">{{ title }}</p>
20
+ <RmIcon
21
+ v-if="infoIcon"
22
+ name="Info"
23
+ :size="12"
24
+ color="var(--cool-grey)"
25
+ class="hover-icon"
26
+ />
27
+ <RmTooltip
28
+ v-if="hoverText"
29
+ :text="hoverText"
30
+ class="hover-icon"
31
+
32
+ full
33
+ >
34
+ <RmIcon
35
+ name="Info"
36
+ :size="12"
37
+ color="var(--primary)"
38
+ class="hover-icon"
39
+ />
40
+ </RmTooltip>
41
+ </div>
42
+ </div>
43
+
44
+ <div ref="refTagContainer">
45
+ <!-- WITHOUT LEGEND -->
46
+ <div
47
+ class="oip_row gap-8 wrap v-center"
48
+ v-if="values && values.length > 0"
49
+ >
50
+ <div
51
+ v-for="(val, index) in values.slice(
52
+ 0,
53
+ isFullResults ? values.length : resultSizeLimit
54
+ )"
55
+ :key="index"
56
+ >
57
+ <component
58
+ :is="clickable ? 'button' : 'div'"
59
+ :type="clickable ? 'button' : undefined"
60
+ :class="{ tag_btn: clickable }"
61
+ @click="clickable && emit('tagClick', index)"
62
+ >
63
+ <RmTag variant="gray">
64
+ <RmTextHighlight
65
+ v-if="highlightQueries !== null"
66
+ :queries="highlightQueries"
67
+ :text="val || ifNoRes(null)"
68
+ />
69
+ <span v-else>{{ val }}</span>
70
+ </RmTag>
71
+ </component>
72
+ </div>
73
+
74
+ <OipScienceCommonToolTips
75
+ style="overflow: unset"
76
+ v-if="!isFullResults && values.length > resultSizeLimit"
77
+ :tooltip-text="tooltipData"
78
+ dir="right"
79
+ :sideLimit="false"
80
+ >
81
+ <p class="number_left">+{{ values.length - resultSizeLimit }}</p>
82
+ </OipScienceCommonToolTips>
83
+ </div>
84
+
85
+ <!-- WITH LEGEND -->
86
+
87
+ <div
88
+ class="oip_row gap-8 wrap v-center"
89
+ v-if="valuesWithLegend && valuesWithLegend.length > 0"
90
+ >
91
+ <div
92
+ v-for="(val, index) in valuesWithLegend.slice(
93
+ 0,
94
+ isFullResults ? valuesWithLegend.length : resultSizeLimit
95
+ )"
96
+ :key="index"
97
+ >
98
+ <div>
99
+ <RmTooltip
100
+ v-if="val?.legend"
101
+ :text="val?.legend"
102
+ class="hover-icon"
103
+ full
104
+ >
105
+ <RmTag variant="gray">
106
+ <RmTextHighlight
107
+ v-if="highlightQueries !== null"
108
+ :queries="highlightQueries"
109
+ :text="val?.value || ifNoRes(null)"
110
+ />
111
+ <span v-else>{{ val?.value }} </span>
112
+
113
+ <RmIcon name="Info" :size="12" />
114
+ </RmTag>
115
+ </RmTooltip>
116
+ <RmTag variant="gray" v-else>
117
+ <RmTextHighlight
118
+ v-if="highlightQueries !== null"
119
+ :queries="highlightQueries"
120
+ :text="val?.value || ifNoRes(null)"
121
+ />
122
+ <span v-else>{{ val?.value }} </span>
123
+ </RmTag>
124
+ </div>
125
+ </div>
126
+
127
+ <OipScienceCommonToolTips
128
+ v-if="!isFullResults && valuesWithLegend.length > resultSizeLimit"
129
+ :tooltip-text="tooltipData.map((val) => val?.value)"
130
+ dir="right"
131
+ :sideLimit="false"
132
+ >
133
+ <p class="number_left">
134
+ +{{ valuesWithLegend.length - resultSizeLimit }}
135
+ </p>
136
+ </OipScienceCommonToolTips>
137
+ </div>
138
+
139
+ <!-- NO TAGS -->
140
+ <p
141
+ v-if="
142
+ (values && values.length === 0) ||
143
+ (valuesWithLegend && valuesWithLegend.length === 0)
144
+ "
145
+ class="no-element"
146
+ :style="isVertical ? '' : 'padding:5px 0'"
147
+ >
148
+ {{ $t('oipScience.ui.tableTags.empty', { title: title?.toLowerCase() }) }}
149
+ </p>
150
+ </div>
151
+ </div>
152
+ </div>
153
+ </div>
154
+ </template>
155
+
156
+ <script setup lang="ts">
157
+ import { ifNoRes } from '../../../oip-science/utils/styleAndFormat';
158
+
159
+ const props = defineProps({
160
+ isVertical: {
161
+ type: Boolean,
162
+ required: false,
163
+ default: false,
164
+ },
165
+ isReadMore: {
166
+ type: Boolean,
167
+ required: false,
168
+ default: false,
169
+ },
170
+ isShortFirstColumn: {
171
+ type: Boolean,
172
+ required: false,
173
+ default: false,
174
+ },
175
+ icon: {
176
+ type: String,
177
+ required: false,
178
+ default: null,
179
+ },
180
+ title: {
181
+ type: String,
182
+ required: false,
183
+ },
184
+ values: {
185
+ type: Array,
186
+ required: false,
187
+ },
188
+ valuesWithLegend: {
189
+ type: Array,
190
+ required: false,
191
+ default: null,
192
+ },
193
+ isFullResults: {
194
+ type: Boolean,
195
+ required: false,
196
+ default: true,
197
+ },
198
+ resultSizeLimit: {
199
+ type: Number,
200
+ required: false,
201
+ default: 10,
202
+ },
203
+ highlightQueries: {
204
+ type: Array,
205
+ default: null,
206
+ },
207
+ infoIcon: {
208
+ type: Boolean,
209
+ default: false,
210
+ },
211
+ showTitle: {
212
+ type: Boolean,
213
+ default: true,
214
+ },
215
+ hoverText: {
216
+ type: String,
217
+ default: null,
218
+ },
219
+ /** Les etiquettes (sans legende) deviennent des boutons : `tagClick` donne l'index. */
220
+ clickable: {
221
+ type: Boolean,
222
+ default: false,
223
+ },
224
+ });
225
+
226
+ const emit = defineEmits<{ tagClick: [index: number] }>();
227
+
228
+ const tooltipData = computed(() => {
229
+ return props.values
230
+ ? props.values.slice(props.resultSizeLimit, props.values.length)
231
+ : props.valuesWithLegend?.slice(
232
+ props.resultSizeLimit,
233
+ props.valuesWithLegend.length
234
+ );
235
+ });
236
+ </script>
237
+
238
+ <style>
239
+ /* Global dans FAS : limite au conteneur `.oip-science` (specificite inchangee). */
240
+ :where(.oip-science) .number_left {
241
+ color: var(--Main-Darkest, var(--text-primary));
242
+
243
+ font-size: 12px;
244
+ font-style: bold;
245
+ font-weight: 700;
246
+ line-height: normal;
247
+ cursor: pointer;
248
+ }
249
+
250
+ :where(.oip-science) .no-element {
251
+ color: var(--Main-Dark, var(--text-secondary));
252
+
253
+ font-size: 12px;
254
+ font-style: italic;
255
+ font-weight: 400;
256
+ line-height: normal;
257
+ }
258
+
259
+ :where(.oip-science) .hover-icon {
260
+ cursor: pointer !important;
261
+ }
262
+
263
+ :where(.oip-science) .tag_btn {
264
+ background: none;
265
+ border: none;
266
+ border-radius: var(--radius-sm, 4px);
267
+ cursor: pointer;
268
+ font: inherit;
269
+ padding: 0;
270
+ }
271
+ :where(.oip-science) .tag_btn:hover .rm-tag,
272
+ :where(.oip-science) .tag_btn:focus-visible .rm-tag {
273
+ box-shadow: inset 0 0 0 1px var(--color-primary);
274
+ color: var(--color-primary);
275
+ }
276
+ :where(.oip-science) svg.hover-icon:hover {
277
+ color: var(--primary) !important;
278
+ }
279
+ </style>
@@ -0,0 +1,104 @@
1
+ <template>
2
+ <div class="oip-science common_timeline_block">
3
+ <div>
4
+ <svg
5
+ width="16"
6
+ height="16"
7
+ stroke-width="0"
8
+ viewBox="0 0 256 256"
9
+ stroke="currentColor"
10
+ stroke-linecap="round"
11
+ stroke-linejoin="round"
12
+ class="icon_filled_up"
13
+ >
14
+ <rect width="256" height="256" fill="none"></rect>
15
+ <rect
16
+ x="51.6"
17
+ y="51.6"
18
+ width="152.7"
19
+ height="152.74"
20
+ rx="8"
21
+ transform="translate(-53 128) rotate(-45)"
22
+ stroke="currentColor"
23
+ stroke-linecap="round"
24
+ stroke-linejoin="round"
25
+ ></rect>
26
+ </svg>
27
+ <div>
28
+ <h2 class="oip_underline">{{ title }}</h2>
29
+ <h1 class="oip_body">{{ content }}</h1>
30
+ </div>
31
+ </div>
32
+ <svg
33
+ width="16"
34
+ height="16"
35
+ stroke-width="0"
36
+ viewBox="0 0 256 256"
37
+ stroke="currentColor"
38
+ stroke-linecap="round"
39
+ stroke-linejoin="round"
40
+ class="prmt-phosphor-icon icon_filled_down"
41
+ >
42
+ <rect width="256" height="256" fill="none"></rect>
43
+ <rect
44
+ x="51.6"
45
+ y="51.6"
46
+ width="152.7"
47
+ height="152.74"
48
+ rx="8"
49
+ transform="translate(-53 128) rotate(-45)"
50
+ stroke="currentColor"
51
+ stroke-linecap="round"
52
+ stroke-linejoin="round"
53
+ ></rect>
54
+ </svg>
55
+ </div>
56
+ </template>
57
+
58
+ <script setup lang="ts">
59
+ const props = defineProps({
60
+ title: {
61
+ type: String,
62
+ required: true,
63
+ },
64
+ content: {
65
+ type: String,
66
+ required: true,
67
+ },
68
+ });
69
+ </script>
70
+
71
+ <style>
72
+ .common_timeline_block {
73
+ margin-bottom: -20px;
74
+ width: 100%;
75
+ }
76
+
77
+ .common_timeline_block div:first-child {
78
+ display: flex;
79
+ border-left: 2px solid var(--dividers);
80
+ border-bottom: 3px solid var(--Main-Darkest);
81
+ margin-left: 5px;
82
+ padding-bottom: 10px;
83
+ width: auto;
84
+ padding-right: 15px;
85
+ }
86
+
87
+ .icon_filled_up {
88
+ fill: var(--dividers);
89
+ vertical-align: middle;
90
+ color: var(--dividers);
91
+ position: relative !important;
92
+ left: -9px !important;
93
+ top: -4px;
94
+ }
95
+
96
+ .icon_filled_down {
97
+ fill: var(--Main-Darkest, var(--text-primary));
98
+ vertical-align: middle;
99
+ color: var(--Main-Darkest, var(--text-primary));
100
+ position: relative !important;
101
+ top: -15px !important;
102
+ left: -2px !important;
103
+ }
104
+ </style>
@@ -0,0 +1,89 @@
1
+ <template>
2
+ <div
3
+ class="oip-science prmt_tooltip"
4
+ :class="sideLimit ? 'last_tooltip' : 'prmt_tooltip'"
5
+ >
6
+ <slot> </slot>
7
+ <div
8
+ v-if="disable === false"
9
+ :class="`prmt_tooltip_text_replace prmt_tooltip_text-${dir}`"
10
+ >
11
+ <div v-for="(item, index) in tooltipText" :key="index">
12
+ <p>{{ item }}</p>
13
+ </div>
14
+ </div>
15
+ </div>
16
+ </template>
17
+ <script lang="ts">
18
+ export default defineComponent({
19
+ name: 'argTooltip',
20
+ props: {
21
+ tooltipText: { type: Array, required: true },
22
+ dir: { type: String, default: 'top' },
23
+ disable: { type: Boolean, default: false },
24
+ sideLimit: { type: Boolean, default: false },
25
+ },
26
+ });
27
+ </script>
28
+
29
+ <style scoped>
30
+ .prmt_tooltip {
31
+ position: relative;
32
+ display: flex;
33
+ width: fit-content;
34
+ }
35
+ .prmt_tooltip:hover .prmt_tooltip_text_replace {
36
+ visibility: visible;
37
+ }
38
+
39
+ .prmt_tooltip_text_replace {
40
+ visibility: hidden;
41
+ width: max-content;
42
+ /* max-width: 200px; */
43
+ background-color: var(--darkest);
44
+ color: var(--white);
45
+ border-radius: 4px;
46
+ position: absolute;
47
+ z-index: 2;
48
+ padding: 4px 12px;
49
+ margin-top: 4px;
50
+ font-weight: 400;
51
+ font-size: 14px;
52
+ line-height: 160%;
53
+ white-space: wrap;
54
+ /* display: -webkit-box;
55
+ -webkit-line-clamp: 4;
56
+ -webkit-box-orient: vertical;
57
+ overflow: hidden; */
58
+ text-align: left;
59
+ }
60
+
61
+ .prmt_tooltip .prmt_tooltip_text-top {
62
+ bottom: 120%;
63
+ left: 50%;
64
+ margin-left: -72px;
65
+ }
66
+
67
+ .prmt_tooltip .prmt_tooltip_text-right {
68
+ top: -9px;
69
+ left: 110%;
70
+ margin-left: 16px;
71
+ }
72
+ .prmt_tooltip .prmt_tooltip_text-left {
73
+ top: -9px;
74
+ right: 110%;
75
+ margin-right: 16px;
76
+ }
77
+
78
+ .prmt_tooltip .prmt_tooltip_text-bottom {
79
+ top: 110%;
80
+ left: 50%;
81
+ margin-left: -72px;
82
+ }
83
+
84
+ .prmt_tooltip.last_tooltip .prmt_tooltip_text-bottom {
85
+ top: 110%;
86
+ left: 50%;
87
+ margin-left: -130px;
88
+ }
89
+ </style>