imio.smartweb.core 1.2.12__py3-none-any.whl → 1.2.68__py3-none-any.whl

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 (361) hide show
  1. imio/smartweb/core/behaviors/categorization.py +24 -0
  2. imio/smartweb/core/behaviors/configure.zcml +7 -0
  3. imio/smartweb/core/browser/configure.zcml +41 -1
  4. imio/smartweb/core/browser/controlpanel.py +41 -0
  5. imio/smartweb/core/browser/dashboards/configure.zcml +0 -2
  6. imio/smartweb/core/browser/dashboards/plausible.py +4 -4
  7. imio/smartweb/core/browser/faceted/block_view.pt +4 -4
  8. imio/smartweb/core/browser/faceted/summary_view.pt +4 -4
  9. imio/smartweb/core/browser/forms.py +3 -3
  10. imio/smartweb/core/browser/redirect_to_main_react_view.py +52 -0
  11. imio/smartweb/core/browser/search/search.pt +2 -1
  12. imio/smartweb/core/browser/search/search.py +4 -0
  13. imio/smartweb/core/browser/sitemap.py +148 -0
  14. imio/smartweb/core/browser/static/icons/action-delete.svg +3 -0
  15. imio/smartweb/core/browser/static/icons/action-e-guichet.svg +1 -1
  16. imio/smartweb/core/browser/static/icons/action-email.svg +1 -1
  17. imio/smartweb/core/browser/static/icons/action-engagement-2.svg +4 -0
  18. imio/smartweb/core/browser/static/icons/action-engagement.svg +1 -1
  19. imio/smartweb/core/browser/static/icons/action-nous-contacter.svg +1 -1
  20. imio/smartweb/core/browser/static/icons/action-nous-rejoindre.svg +2 -1
  21. imio/smartweb/core/browser/static/icons/action-organiser-un-evenement.svg +1 -1
  22. imio/smartweb/core/browser/static/icons/action-panneaux.svg +3 -0
  23. imio/smartweb/core/browser/static/icons/action-signaler-un-probleme.svg +1 -1
  24. imio/smartweb/core/browser/static/icons/action-voir-plan.svg +1 -1
  25. imio/smartweb/core/browser/static/icons/action-vote.svg +3 -0
  26. imio/smartweb/core/browser/static/icons/categorie-associations.svg +1 -1
  27. imio/smartweb/core/browser/static/icons/categorie-attention.svg +3 -0
  28. imio/smartweb/core/browser/static/icons/categorie-avis-et-enquetes.svg +1 -1
  29. imio/smartweb/core/browser/static/icons/categorie-cinema.svg +1 -1
  30. imio/smartweb/core/browser/static/icons/categorie-commerce.svg +1 -1
  31. imio/smartweb/core/browser/static/icons/categorie-concert.svg +1 -1
  32. imio/smartweb/core/browser/static/icons/categorie-culture.svg +1 -1
  33. imio/smartweb/core/browser/static/icons/categorie-demarches.svg +1 -1
  34. imio/smartweb/core/browser/static/icons/categorie-enfance.svg +1 -1
  35. imio/smartweb/core/browser/static/icons/categorie-enseignement.svg +1 -1
  36. imio/smartweb/core/browser/static/icons/categorie-environnement-gestion-des-dechets.svg +1 -1
  37. imio/smartweb/core/browser/static/icons/categorie-exposition.svg +1 -1
  38. imio/smartweb/core/browser/static/icons/categorie-horaires.svg +1 -1
  39. imio/smartweb/core/browser/static/icons/categorie-infos-travaux-2.svg +4 -0
  40. imio/smartweb/core/browser/static/icons/categorie-infos-travaux.svg +1 -1
  41. imio/smartweb/core/browser/static/icons/categorie-mandataires.svg +1 -1
  42. imio/smartweb/core/browser/static/icons/categorie-mobilite.svg +1 -1
  43. imio/smartweb/core/browser/static/icons/categorie-mon-dossier.svg +1 -1
  44. imio/smartweb/core/browser/static/icons/categorie-nature.svg +3 -0
  45. imio/smartweb/core/browser/static/icons/categorie-parc-de-stationnement.svg +1 -1
  46. imio/smartweb/core/browser/static/icons/categorie-parcs-a-conteneurs.svg +4 -0
  47. imio/smartweb/core/browser/static/icons/categorie-parcs-et-jardins.svg +1 -1
  48. imio/smartweb/core/browser/static/icons/categorie-plus.svg +3 -0
  49. imio/smartweb/core/browser/static/icons/categorie-primes-2.svg +5 -0
  50. imio/smartweb/core/browser/static/icons/categorie-primes.svg +1 -1
  51. imio/smartweb/core/browser/static/icons/categorie-sport-courir.svg +1 -1
  52. imio/smartweb/core/browser/static/icons/categorie-sport-natation.svg +4 -0
  53. imio/smartweb/core/browser/static/icons/categorie-sport-velo.svg +1 -1
  54. imio/smartweb/core/browser/static/icons/categorie-tourisme.svg +1 -1
  55. imio/smartweb/core/browser/static/icons/organisation-academie-musique.svg +1 -1
  56. imio/smartweb/core/browser/static/icons/organisation-centre-sportif.svg +1 -1
  57. imio/smartweb/core/browser/static/icons/organisation-cpas.svg +1 -1
  58. imio/smartweb/core/browser/static/icons/organisation-ecole-des-arts.svg +1 -1
  59. imio/smartweb/core/browser/static/icons/organisation-ecole-sac.svg +4 -0
  60. imio/smartweb/core/browser/static/icons/organisation-ecole.svg +1 -1
  61. imio/smartweb/core/browser/static/icons/organisation-mobilite.svg +1 -1
  62. imio/smartweb/core/browser/static/icons/organisation-scout.svg +3 -0
  63. imio/smartweb/core/browser/static/icons/reseausocial-behance.svg +3 -0
  64. imio/smartweb/core/browser/static/icons/reseausocial-facebook.svg +1 -1
  65. imio/smartweb/core/browser/static/icons/reseausocial-linkedin.svg +3 -0
  66. imio/smartweb/core/browser/static/icons/reseausocial-twitter.svg +3 -13
  67. imio/smartweb/core/browser/static/icons/reseausocial-vimeo.svg +1 -1
  68. imio/smartweb/core/browser/static/icons/reseausocial-youtube.svg +1 -1
  69. imio/smartweb/core/browser/static/icons/vue-actualites.svg +1 -1
  70. imio/smartweb/core/browser/static/icons/vue-agenda.svg +1 -1
  71. imio/smartweb/core/browser/static/icons/vue-annuaire.svg +1 -1
  72. imio/smartweb/core/browser/static/smartweb-edit-compiled.css +1 -1
  73. imio/smartweb/core/browser/static/smartweb-edit-compiled.js +1 -1
  74. imio/smartweb/core/browser/static/smartweb-view-compiled.css +1 -1
  75. imio/smartweb/core/browser/static/smartweb-view-compiled.js +1 -1
  76. imio/smartweb/core/browser/static/src/edit.js +5 -0
  77. imio/smartweb/core/browser/static/src/edit.less +42 -0
  78. imio/smartweb/core/browser/static/src/view.js +11 -0
  79. imio/smartweb/core/browser/static/src/view.less +4 -0
  80. imio/smartweb/core/browser/utils.py +5 -32
  81. imio/smartweb/core/browser/vocabulary.py +40 -0
  82. imio/smartweb/core/contents/__init__.py +4 -0
  83. imio/smartweb/core/contents/configure.zcml +1 -0
  84. imio/smartweb/core/contents/cropping.py +1 -1
  85. imio/smartweb/core/contents/folder/block_view.pt +8 -8
  86. imio/smartweb/core/contents/folder/summary_view.pt +4 -4
  87. imio/smartweb/core/contents/pages/cirkwi/content.py +5 -0
  88. imio/smartweb/core/contents/pages/cirkwi/view.py +2 -1
  89. imio/smartweb/core/contents/pages/portal_page/view.py +3 -0
  90. imio/smartweb/core/contents/pages/views.py +3 -1
  91. imio/smartweb/core/contents/publication/configure.zcml +5 -0
  92. imio/smartweb/core/contents/publication/content.py +23 -0
  93. imio/smartweb/core/contents/rest/base.py +24 -10
  94. imio/smartweb/core/contents/rest/configure.zcml +7 -0
  95. imio/smartweb/core/contents/rest/directory/content.py +2 -2
  96. imio/smartweb/core/contents/rest/directory/endpoint.py +2 -2
  97. imio/smartweb/core/contents/rest/directory/view.pt +3 -1
  98. imio/smartweb/core/contents/rest/directory/view.py +3 -0
  99. imio/smartweb/core/contents/rest/events/content.py +15 -2
  100. imio/smartweb/core/contents/rest/events/endpoint.py +5 -7
  101. imio/smartweb/core/contents/rest/events/view.pt +6 -1
  102. imio/smartweb/core/contents/rest/events/view.py +15 -0
  103. imio/smartweb/core/contents/rest/news/content.py +8 -2
  104. imio/smartweb/core/contents/rest/news/endpoint.py +4 -2
  105. imio/smartweb/core/contents/rest/news/view.pt +5 -1
  106. imio/smartweb/core/contents/rest/news/view.py +11 -0
  107. imio/smartweb/core/contents/rest/search/endpoint.py +4 -4
  108. imio/smartweb/core/contents/rest/traversal.py +18 -0
  109. imio/smartweb/core/contents/rest/utils.py +98 -0
  110. imio/smartweb/core/contents/rest/view.py +11 -0
  111. imio/smartweb/core/contents/sections/common_templates/carousel.pt +6 -2
  112. imio/smartweb/core/contents/sections/common_templates/table.pt +22 -8
  113. imio/smartweb/core/contents/sections/configure.zcml +18 -0
  114. imio/smartweb/core/contents/sections/contact/content.py +2 -2
  115. imio/smartweb/core/contents/sections/contact/utils.py +2 -154
  116. imio/smartweb/core/contents/sections/events/content.py +12 -4
  117. imio/smartweb/core/contents/sections/events/view.py +20 -2
  118. imio/smartweb/core/contents/sections/external_content/configure.zcml +29 -0
  119. imio/smartweb/core/contents/sections/external_content/view.pt +25 -7
  120. imio/smartweb/core/contents/sections/external_content/view_idelux_waste.pt +50 -0
  121. imio/smartweb/core/contents/sections/external_content/view_inbw_containers_affluence.pt +91 -0
  122. imio/smartweb/core/contents/sections/external_content/view_odwb_widget.pt +20 -0
  123. imio/smartweb/core/contents/sections/external_content/views.py +306 -125
  124. imio/smartweb/core/contents/sections/files/content.py +7 -1
  125. imio/smartweb/core/contents/sections/files/view.py +40 -12
  126. imio/smartweb/core/contents/sections/links/view.py +5 -0
  127. imio/smartweb/core/contents/sections/macros.pt +39 -9
  128. imio/smartweb/core/contents/sections/news/content.py +11 -3
  129. imio/smartweb/core/contents/sections/news/view.py +20 -2
  130. imio/smartweb/core/contents/sections/text/view.pt +5 -4
  131. imio/smartweb/core/contents/sections/text/views.py +2 -0
  132. imio/smartweb/core/contents/sections/views.py +81 -4
  133. imio/smartweb/core/interfaces.py +15 -0
  134. imio/smartweb/core/profiles/default/actions.xml +15 -0
  135. imio/smartweb/core/profiles/default/diff_tool.xml +8 -0
  136. imio/smartweb/core/profiles/default/metadata.xml +1 -1
  137. imio/smartweb/core/profiles/default/registry/plone.xml +21 -4
  138. imio/smartweb/core/profiles/default/repositorytool.xml +1 -0
  139. imio/smartweb/core/profiles/default/taxonomies/page_category.xml +16 -0
  140. imio/smartweb/core/profiles/default/taxonomies/procedure_category.xml +26 -0
  141. imio/smartweb/core/profiles/default/types/Collection.xml +13 -0
  142. imio/smartweb/core/profiles/default/types/File.xml +13 -0
  143. imio/smartweb/core/profiles/default/types/Image.xml +13 -0
  144. imio/smartweb/core/profiles/default/types/imio.smartweb.BlockLink.xml +5 -0
  145. imio/smartweb/core/profiles/default/types/imio.smartweb.CirkwiView.xml +1 -0
  146. imio/smartweb/core/profiles/default/types/imio.smartweb.DirectoryView.xml +1 -0
  147. imio/smartweb/core/profiles/default/types/imio.smartweb.EventsView.xml +2 -0
  148. imio/smartweb/core/profiles/default/types/imio.smartweb.Folder.xml +1 -0
  149. imio/smartweb/core/profiles/default/types/imio.smartweb.NewsView.xml +2 -0
  150. imio/smartweb/core/profiles/default/types/imio.smartweb.Page.xml +1 -0
  151. imio/smartweb/core/profiles/default/types/imio.smartweb.PortalPage.xml +1 -0
  152. imio/smartweb/core/profiles/default/types/imio.smartweb.Procedure.xml +1 -0
  153. imio/smartweb/core/profiles/default/types/imio.smartweb.Publication.xml +38 -0
  154. imio/smartweb/core/profiles/default/types/imio.smartweb.SectionEvents.xml +1 -0
  155. imio/smartweb/core/profiles/default/types/imio.smartweb.SectionFiles.xml +2 -0
  156. imio/smartweb/core/profiles/default/types/imio.smartweb.SectionHTML.xml +0 -1
  157. imio/smartweb/core/profiles/default/types/imio.smartweb.SectionNews.xml +1 -0
  158. imio/smartweb/core/profiles/default/types.xml +1 -0
  159. imio/smartweb/core/profiles/icons/basic/registry.xml +120 -0
  160. imio/smartweb/core/profiles/testing/types/imio.smartweb.DirectoryView.xml +11 -0
  161. imio/smartweb/core/profiles/testing/types/imio.smartweb.EventsView.xml +11 -0
  162. imio/smartweb/core/profiles/testing/types/imio.smartweb.NewsView.xml +11 -0
  163. imio/smartweb/core/profiles/validation/contentrules.xml +102 -0
  164. imio/smartweb/core/profiles.zcml +8 -0
  165. imio/smartweb/core/rest/authentic_sources.py +23 -11
  166. imio/smartweb/core/subscribers.py +24 -0
  167. imio/smartweb/core/subscribers.zcml +4 -0
  168. imio/smartweb/core/tests/resources/json_iadeliberations_institutions.json +60 -0
  169. imio/smartweb/core/tests/resources/json_iadeliberations_publication.json +105 -0
  170. imio/smartweb/core/tests/resources/json_iadeliberations_publications.json +270 -0
  171. imio/smartweb/core/tests/resources/json_rest_events.json +6 -2
  172. imio/smartweb/core/tests/resources/json_rest_news.json +2 -2
  173. imio/smartweb/core/tests/resources/json_rest_specific_events.json +1 -1
  174. imio/smartweb/core/tests/test_cropping.py +4 -4
  175. imio/smartweb/core/tests/test_htmx_in_sections.py +131 -0
  176. imio/smartweb/core/tests/test_iadeliberations.py +136 -0
  177. imio/smartweb/core/tests/test_icons.py +1 -1
  178. imio/smartweb/core/tests/test_redirect_to_main_react_view.py +79 -0
  179. imio/smartweb/core/tests/test_rest.py +283 -22
  180. imio/smartweb/core/tests/test_section_contact.py +2 -2
  181. imio/smartweb/core/tests/test_section_events.py +28 -5
  182. imio/smartweb/core/tests/test_section_external_content.py +26 -25
  183. imio/smartweb/core/tests/test_section_news.py +30 -8
  184. imio/smartweb/core/tests/test_sections.py +38 -15
  185. imio/smartweb/core/tests/test_sitemap.py +174 -0
  186. imio/smartweb/core/tests/test_vocabularies.py +61 -4
  187. imio/smartweb/core/tests/test_vocabulary.py +43 -0
  188. imio/smartweb/core/tests/utils.py +15 -0
  189. imio/smartweb/core/upgrades/configure.zcml +180 -0
  190. imio/smartweb/core/upgrades/profiles/1051_to_1052/actions.xml +20 -0
  191. imio/smartweb/core/upgrades/profiles/1052_to_1053/diff_tool.xml +8 -0
  192. imio/smartweb/core/upgrades/profiles/1052_to_1053/repositorytool.xml +9 -0
  193. imio/smartweb/core/upgrades/profiles/1052_to_1053/types/imio.smartweb.SectionHTML.xml +14 -0
  194. imio/smartweb/core/upgrades/profiles/1053_to_1054/registry.xml +39 -0
  195. imio/smartweb/core/upgrades/profiles/1054_to_1055/types/Collection.xml +13 -0
  196. imio/smartweb/core/upgrades/profiles/1054_to_1055/types/File.xml +13 -0
  197. imio/smartweb/core/upgrades/profiles/1054_to_1055/types/Image.xml +13 -0
  198. imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.BlockLink.xml +12 -0
  199. imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.CirkwiView.xml +12 -0
  200. imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.DirectoryView.xml +12 -0
  201. imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.EventsView.xml +12 -0
  202. imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.Folder.xml +12 -0
  203. imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.NewsView.xml +12 -0
  204. imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.Page.xml +12 -0
  205. imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.PortalPage.xml +12 -0
  206. imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.Procedure.xml +12 -0
  207. imio/smartweb/core/upgrades/profiles/1055_to_1056/types/imio.smartweb.SectionFiles.xml +12 -0
  208. imio/smartweb/core/upgrades/profiles/1056_to_1057/types/imio.smartweb.EventsView.xml +11 -0
  209. imio/smartweb/core/upgrades/profiles/1056_to_1057/types/imio.smartweb.NewsView.xml +11 -0
  210. imio/smartweb/core/upgrades/profiles/1056_to_1057/types/imio.smartweb.SectionEvents.xml +11 -0
  211. imio/smartweb/core/upgrades/profiles/1056_to_1057/types/imio.smartweb.SectionNews.xml +11 -0
  212. imio/smartweb/core/upgrades/profiles/1057_to_1058/taxonomies/page_category.cfg +9 -0
  213. imio/smartweb/core/upgrades/profiles/1057_to_1058/taxonomies/page_category.xml +73 -0
  214. imio/smartweb/core/upgrades/profiles/1057_to_1058/taxonomies/procedure_category.cfg +9 -0
  215. imio/smartweb/core/upgrades/profiles/1057_to_1058/taxonomies/procedure_category.xml +118 -0
  216. imio/smartweb/core/upgrades/profiles/1058_to_1059/registry/linkedin-icon.xml +126 -0
  217. imio/smartweb/core/upgrades/profiles/1059_to_1060/registry/iadeliberation.xml +9 -0
  218. imio/smartweb/core/upgrades/profiles/1060_to_1061/types/imio.smartweb.Publication.xml +38 -0
  219. imio/smartweb/core/upgrades/profiles/1060_to_1061/types/imio.smartweb.SectionFiles.xml +11 -0
  220. imio/smartweb/core/upgrades/profiles/1060_to_1061/types.xml +4 -0
  221. imio/smartweb/core/upgrades/profiles/1060_to_1061/workflows.xml +6 -0
  222. imio/smartweb/core/utils.py +65 -3
  223. imio/smartweb/core/viewlets/configure.zcml +43 -0
  224. imio/smartweb/core/viewlets/external_content.py +13 -5
  225. imio/smartweb/core/viewlets/footer.pt +5 -0
  226. imio/smartweb/core/viewlets/footer.py +5 -0
  227. imio/smartweb/core/viewlets/htmx.py +15 -0
  228. imio/smartweb/core/viewlets/htmx_js_header.pt +59 -0
  229. imio/smartweb/core/viewlets/httpheaders.py +13 -0
  230. imio/smartweb/core/viewlets/odwb_widget_header.pt +19 -0
  231. imio/smartweb/core/viewlets/offcanvas.pt +2 -1
  232. imio/smartweb/core/viewlets/ogp_tag_header.pt +19 -0
  233. imio/smartweb/core/viewlets/ogptags.py +144 -0
  234. imio/smartweb/core/viewlets/social.py +23 -0
  235. imio/smartweb/core/vocabularies.py +66 -2
  236. imio/smartweb/core/vocabularies.zcml +18 -0
  237. imio/smartweb/core/webcomponents/build/1c1605a5fe9a2b10a88f.png +1 -0
  238. imio/smartweb/core/webcomponents/build/524db40e119aa11f4478.png +1 -0
  239. imio/smartweb/core/webcomponents/build/57d3b7cb1ab874660b39.svg +1 -0
  240. imio/smartweb/core/webcomponents/build/6cf03871df23ed2ee8b3.png +1 -0
  241. imio/smartweb/core/webcomponents/build/css/373.smartweb-webcomponents-compiled.css +1 -0
  242. imio/smartweb/core/webcomponents/build/css/486.smartweb-webcomponents-compiled.css +1 -0
  243. imio/smartweb/core/webcomponents/build/css/884.smartweb-webcomponents-compiled.css +1 -0
  244. imio/smartweb/core/webcomponents/build/css/919.smartweb-webcomponents-compiled.css +1 -0
  245. imio/smartweb/core/webcomponents/build/css/smartweb-webcomponents-compiled.css +1 -1
  246. imio/smartweb/core/webcomponents/build/js/218.smartweb-webcomponents-compiled.js +2 -0
  247. imio/smartweb/core/webcomponents/build/js/218.smartweb-webcomponents-compiled.js.LICENSE.txt +16 -0
  248. imio/smartweb/core/webcomponents/build/js/373.smartweb-webcomponents-compiled.js +2 -0
  249. imio/smartweb/core/webcomponents/build/js/373.smartweb-webcomponents-compiled.js.LICENSE.txt +10 -0
  250. imio/smartweb/core/webcomponents/build/js/486.smartweb-webcomponents-compiled.js +1 -0
  251. imio/smartweb/core/webcomponents/build/js/499.smartweb-webcomponents-compiled.js +2 -0
  252. imio/smartweb/core/webcomponents/build/js/{212.smartweb-webcomponents-compiled.js.LICENSE.txt → 499.smartweb-webcomponents-compiled.js.LICENSE.txt} +1 -8
  253. imio/smartweb/core/webcomponents/build/js/799.smartweb-webcomponents-compiled.js +2 -0
  254. imio/smartweb/core/webcomponents/build/js/824.smartweb-webcomponents-compiled.js +2 -0
  255. imio/smartweb/core/webcomponents/build/js/828.smartweb-webcomponents-compiled.js +2 -0
  256. imio/smartweb/core/webcomponents/build/js/828.smartweb-webcomponents-compiled.js.LICENSE.txt +32 -0
  257. imio/smartweb/core/webcomponents/build/js/884.smartweb-webcomponents-compiled.js +1 -0
  258. imio/smartweb/core/webcomponents/build/js/919.smartweb-webcomponents-compiled.js +1 -0
  259. imio/smartweb/core/webcomponents/build/js/963.smartweb-webcomponents-compiled.js +2 -0
  260. imio/smartweb/core/webcomponents/build/js/963.smartweb-webcomponents-compiled.js.LICENSE.txt +3 -0
  261. imio/smartweb/core/webcomponents/build/js/smartweb-webcomponents-compiled.js +1 -1
  262. imio/smartweb/core/webcomponents/build/js/smartweb-webcomponents-compiled.js.LICENSE.txt +11 -14
  263. imio/smartweb/core/webcomponents/package.json +46 -44
  264. imio/smartweb/core/webcomponents/src/assets/contentIcon/download.svg +1 -0
  265. imio/smartweb/core/webcomponents/src/components/Annuaire/Annuaire.jsx +160 -92
  266. imio/smartweb/core/webcomponents/src/components/Annuaire/Annuaire.scss +250 -157
  267. imio/smartweb/core/webcomponents/src/components/Annuaire/ContactCard/ContactCard.jsx +113 -81
  268. imio/smartweb/core/webcomponents/src/components/Annuaire/ContactContent/ContactContent.jsx +394 -188
  269. imio/smartweb/core/webcomponents/src/components/Annuaire/ContactList/ContactList.jsx +26 -9
  270. imio/smartweb/core/webcomponents/src/components/Annuaire/Filters/Filter.jsx +213 -100
  271. imio/smartweb/core/webcomponents/src/components/Annuaire/index.js +1 -1
  272. imio/smartweb/core/webcomponents/src/components/Events/EventCard/EventCard.jsx +86 -0
  273. imio/smartweb/core/webcomponents/src/components/Events/EventContent/EventContent.jsx +615 -0
  274. imio/smartweb/core/webcomponents/src/components/Events/EventList/EventList.jsx +67 -0
  275. imio/smartweb/core/webcomponents/src/components/Events/Events.jsx +181 -103
  276. imio/smartweb/core/webcomponents/src/components/Events/Events.scss +316 -182
  277. imio/smartweb/core/webcomponents/src/components/Events/Filters/Filter.jsx +275 -80
  278. imio/smartweb/core/webcomponents/src/components/Filters/DateFilter.jsx +136 -0
  279. imio/smartweb/core/webcomponents/src/components/Filters/DateFilter.scss +104 -0
  280. imio/smartweb/core/webcomponents/src/components/Filters/IamData.jsx +42 -0
  281. imio/smartweb/core/webcomponents/src/components/Filters/MainFilter.scss +227 -0
  282. imio/smartweb/core/webcomponents/src/components/Filters/PublicTargetData.jsx +94 -0
  283. imio/smartweb/core/webcomponents/src/components/Filters/SelectStyles.js +58 -0
  284. imio/smartweb/core/webcomponents/src/components/Filters/TaxonomyFilter.jsx +149 -0
  285. imio/smartweb/core/webcomponents/src/components/Filters/TaxonomyFilter.scss +70 -0
  286. imio/smartweb/core/webcomponents/src/components/News/Filters/Filter.jsx +139 -83
  287. imio/smartweb/core/webcomponents/src/components/News/News.jsx +141 -74
  288. imio/smartweb/core/webcomponents/src/components/News/News.scss +41 -15
  289. imio/smartweb/core/webcomponents/src/components/News/NewsCard/NewsCard.jsx +96 -0
  290. imio/smartweb/core/webcomponents/src/components/News/NewsContent/NewsContent.jsx +309 -0
  291. imio/smartweb/core/webcomponents/src/components/News/NewsList/NewsList.jsx +76 -0
  292. imio/smartweb/core/webcomponents/src/components/Search/ContactResult/ContactResult.jsx +28 -14
  293. imio/smartweb/core/webcomponents/src/components/Search/EventsResult/EventsResult.jsx +28 -14
  294. imio/smartweb/core/webcomponents/src/components/Search/Filters/Filter.jsx +51 -32
  295. imio/smartweb/core/webcomponents/src/components/Search/NewsResult/NewsResult.jsx +29 -15
  296. imio/smartweb/core/webcomponents/src/components/Search/Search.jsx +18 -13
  297. imio/smartweb/core/webcomponents/src/components/Search/Search.scss +125 -105
  298. imio/smartweb/core/webcomponents/src/components/Search/WebResult/WebResult.jsx +19 -6
  299. imio/smartweb/core/webcomponents/src/components/Search/index.js +1 -1
  300. imio/smartweb/core/webcomponents/src/hooks/ScrollContext.jsx +3 -0
  301. imio/smartweb/core/webcomponents/src/hooks/useAxios.js +3 -6
  302. imio/smartweb/core/webcomponents/src/hooks/useFilterQuery.js +1 -2
  303. imio/smartweb/core/webcomponents/src/index.scss +246 -211
  304. imio/smartweb/core/webcomponents/src/utils/Map.jsx +159 -0
  305. imio/smartweb/core/webcomponents/src/{components/Annuaire/ContactMap/ContactMap.scss → utils/Map.scss} +2 -2
  306. imio/smartweb/core/webcomponents/src/utils/translation.js +283 -14
  307. imio.smartweb.core-1.2.68-py3.11-nspkg.pth +2 -0
  308. {imio.smartweb.core-1.2.12.dist-info → imio.smartweb.core-1.2.68.dist-info}/METADATA +548 -3
  309. {imio.smartweb.core-1.2.12.dist-info → imio.smartweb.core-1.2.68.dist-info}/RECORD +317 -240
  310. {imio.smartweb.core-1.2.12.dist-info → imio.smartweb.core-1.2.68.dist-info}/WHEEL +1 -1
  311. imio/smartweb/core/webcomponents/build/assets/location-bla.1423bcce16ddcb21141430cac1428dc1.svg +0 -1
  312. imio/smartweb/core/webcomponents/build/assets/next-react-white.819cb069ac8eec300a9db6a7707712d6.svg +0 -1
  313. imio/smartweb/core/webcomponents/build/assets/next-react.17bc43ff4a6a86f4520f5782f6a89a72.svg +0 -1
  314. imio/smartweb/core/webcomponents/build/assets/search.57bdbf5b191499cd77514097d1c4972c.svg +0 -1
  315. imio/smartweb/core/webcomponents/build/css/267.smartweb-webcomponents-compiled.css +0 -1
  316. imio/smartweb/core/webcomponents/build/css/323.smartweb-webcomponents-compiled.css +0 -1
  317. imio/smartweb/core/webcomponents/build/css/552.smartweb-webcomponents-compiled.css +0 -1
  318. imio/smartweb/core/webcomponents/build/css/779.smartweb-webcomponents-compiled.css +0 -1
  319. imio/smartweb/core/webcomponents/build/js/144.smartweb-webcomponents-compiled.js +0 -2
  320. imio/smartweb/core/webcomponents/build/js/212.smartweb-webcomponents-compiled.js +0 -2
  321. imio/smartweb/core/webcomponents/build/js/267.smartweb-webcomponents-compiled.js +0 -1
  322. imio/smartweb/core/webcomponents/build/js/323.smartweb-webcomponents-compiled.js +0 -2
  323. imio/smartweb/core/webcomponents/build/js/323.smartweb-webcomponents-compiled.js.LICENSE.txt +0 -1
  324. imio/smartweb/core/webcomponents/build/js/552.smartweb-webcomponents-compiled.js +0 -2
  325. imio/smartweb/core/webcomponents/build/js/552.smartweb-webcomponents-compiled.js.LICENSE.txt +0 -1
  326. imio/smartweb/core/webcomponents/build/js/565.smartweb-webcomponents-compiled.js +0 -1
  327. imio/smartweb/core/webcomponents/build/js/612.smartweb-webcomponents-compiled.js +0 -2
  328. imio/smartweb/core/webcomponents/build/js/612.smartweb-webcomponents-compiled.js.LICENSE.txt +0 -1
  329. imio/smartweb/core/webcomponents/build/js/779.smartweb-webcomponents-compiled.js +0 -1
  330. imio/smartweb/core/webcomponents/build/js/9.smartweb-webcomponents-compiled.js +0 -2
  331. imio/smartweb/core/webcomponents/build/js/969.smartweb-webcomponents-compiled.js +0 -2
  332. imio/smartweb/core/webcomponents/build/js/969.smartweb-webcomponents-compiled.js.LICENSE.txt +0 -642
  333. imio/smartweb/core/webcomponents/pnpm-lock.yaml +0 -7066
  334. imio/smartweb/core/webcomponents/src/assets/facebook-news.svg +0 -1
  335. imio/smartweb/core/webcomponents/src/assets/location-bla.svg +0 -1
  336. imio/smartweb/core/webcomponents/src/assets/next-react.svg +0 -1
  337. imio/smartweb/core/webcomponents/src/assets/search.svg +0 -1
  338. imio/smartweb/core/webcomponents/src/assets/skeleton.svg +0 -1
  339. imio/smartweb/core/webcomponents/src/components/Annuaire/ContactMap/ContactMap.jsx +0 -156
  340. imio/smartweb/core/webcomponents/src/components/Annuaire/Skeleton/LoaderCss.jsx +0 -7
  341. imio/smartweb/core/webcomponents/src/components/Annuaire/Skeleton/Skeleton.jsx +0 -20
  342. imio/smartweb/core/webcomponents/src/components/Events/ContactCard/ContactCard.jsx +0 -49
  343. imio/smartweb/core/webcomponents/src/components/Events/ContactContent/ContactContent.jsx +0 -400
  344. imio/smartweb/core/webcomponents/src/components/Events/ContactList/ContactList.jsx +0 -42
  345. imio/smartweb/core/webcomponents/src/components/Events/ContactMap/ContactMap.jsx +0 -156
  346. imio/smartweb/core/webcomponents/src/components/Events/Skeleton/Skeleton.jsx +0 -20
  347. imio/smartweb/core/webcomponents/src/components/News/ContactCard/ContactCard.jsx +0 -78
  348. imio/smartweb/core/webcomponents/src/components/News/ContactContent/ContactContent.jsx +0 -261
  349. imio/smartweb/core/webcomponents/src/components/News/ContactList/ContactList.jsx +0 -37
  350. imio/smartweb/core/webcomponents/src/components/News/ContactMap/ContactMap.jsx +0 -127
  351. imio/smartweb/core/webcomponents/src/components/News/ContactMap/ContactMap.scss +0 -4
  352. imio/smartweb/core/webcomponents/src/components/News/Skeleton/Skeleton.jsx +0 -20
  353. imio/smartweb/core/webcomponents/src/components/Search/Skeleton/Skeleton.jsx +0 -20
  354. imio.smartweb.core-1.2.12-py3.10-nspkg.pth +0 -3
  355. /imio/smartweb/core/{webcomponents/src/components/Events/ContactMap/ContactMap.scss → contents/publication/__init__.py} +0 -0
  356. /imio/smartweb/core/webcomponents/build/js/{144.smartweb-webcomponents-compiled.js.LICENSE.txt → 799.smartweb-webcomponents-compiled.js.LICENSE.txt} +0 -0
  357. /imio/smartweb/core/webcomponents/build/js/{9.smartweb-webcomponents-compiled.js.LICENSE.txt → 824.smartweb-webcomponents-compiled.js.LICENSE.txt} +0 -0
  358. {imio.smartweb.core-1.2.12.dist-info → imio.smartweb.core-1.2.68.dist-info}/LICENSE.GPL +0 -0
  359. {imio.smartweb.core-1.2.12.dist-info → imio.smartweb.core-1.2.68.dist-info}/LICENSE.rst +0 -0
  360. {imio.smartweb.core-1.2.12.dist-info → imio.smartweb.core-1.2.68.dist-info}/namespace_packages.txt +0 -0
  361. {imio.smartweb.core-1.2.12.dist-info → imio.smartweb.core-1.2.68.dist-info}/top_level.txt +0 -0
@@ -1,42 +0,0 @@
1
- import ContactCard from "../ContactCard/ContactCard";
2
- import { Link } from "react-router-dom";
3
- import React from "react";
4
- import removeAccents from "remove-accents";
5
- const ContactList = ({ contactArray, onChange, onHover, parentCallback }) => {
6
- function handleClick(event) {
7
- onChange(event);
8
- }
9
-
10
- function handleHover(event) {
11
- onHover(event);
12
- }
13
- return (
14
- <React.Fragment>
15
- <ul className="r-result-list event-result-list">
16
- {contactArray.map((contactItem, i) => (
17
- <li
18
- key={i}
19
- className="r-list-item-group"
20
- onMouseEnter={() => handleHover(contactItem.UID)}
21
- onMouseLeave={() => handleHover(null)}
22
- onClick={() => handleClick(contactItem.UID)}
23
- >
24
- <Link
25
- className="r-list-item-link"
26
- style={{ textDecoration: "none" }}
27
- to={{
28
- pathname: removeAccents(contactItem.title).replace(/[^a-zA-Z ]/g, "").replace(/\s/g, "-").toLowerCase(),
29
- search: `?u=${contactItem.UID}`,
30
- state: {
31
- idItem: contactItem.UID,
32
- },
33
- }}
34
- ></Link>
35
- <ContactCard contactItem={contactItem} key={contactItem.created} />
36
- </li>
37
- ))}
38
- </ul>
39
- </React.Fragment>
40
- );
41
- };
42
- export default ContactList;
@@ -1,156 +0,0 @@
1
- import React, { useState, useEffect } from "react";
2
- import { MapContainer, TileLayer, Marker, Popup, useMap } from "react-leaflet";
3
- import L from "leaflet";
4
- import iconSvg from "../../../assets/pin-react.svg";
5
- import iconSvgActivated from "../../../assets/pin-react-active.svg";
6
- import { Link } from "react-router-dom";
7
- import "./ContactMap.scss";
8
- import "leaflet/dist/leaflet.css";
9
- import removeAccents from "remove-accents";
10
-
11
- function ChangeMapView({ activeItem, arrayOfLatLngs }) {
12
- const map = useMap();
13
- if (activeItem) {
14
- const activeCoord = [];
15
- activeCoord.push(activeItem.geolocation.latitude);
16
- activeCoord.push(activeItem.geolocation.longitude);
17
- map.setView(activeCoord, 15);
18
- } else {
19
- let bounds = new L.LatLngBounds(arrayOfLatLngs);
20
- map.fitBounds(bounds);
21
- }
22
- return null;
23
- }
24
-
25
- function ContentMap(props) {
26
- const [activeItem, setActiveItem] = useState(null);
27
- const [hoverItem, setHoverItem] = useState(null);
28
- const [filterGeoArray, setFilterGeoArray] = useState([]);
29
- const [allPosition, setAllPosition] = useState(null);
30
-
31
- useEffect(() => {
32
- const filterArray = props.items.filter((isgeo) => isgeo.geolocation.latitude && isgeo.geolocation.latitude !== 50.4989185 && isgeo.geolocation.longitude !== 4.7184485);
33
- setFilterGeoArray(filterArray);
34
- }, [props]);
35
-
36
- function mapIcon(url) {
37
- return new L.Icon({
38
- iconUrl: url,
39
- iconSize: [29, 37],
40
- });
41
- }
42
-
43
- const getMarkerIcon = (index) => {
44
- if (index === props.clickId) {
45
- return mapIcon(iconSvgActivated);
46
- }
47
- if (index === props.hoverId) {
48
- return mapIcon(iconSvgActivated);
49
- }
50
- return mapIcon(iconSvg);
51
- };
52
- const getMarkerZindex = (index) => {
53
- if (index === props.clickId) {
54
- return 999;
55
- }
56
- if (index === props.hoverId) {
57
- return 999;
58
- }
59
- return 1;
60
- };
61
-
62
- useEffect(() => {
63
- if (props.clickId !== null) {
64
- var result =
65
- filterGeoArray &&
66
- filterGeoArray.filter((obj) => {
67
- return obj.UID === props.clickId;
68
- });
69
- setActiveItem(result[0]);
70
- } else setActiveItem(null);
71
- }, [props.clickId]);
72
-
73
- useEffect(() => {
74
- if (props.hoverId) {
75
- var result =
76
- filterGeoArray &&
77
- filterGeoArray.filter((obj) => {
78
- return obj.UID === props.hoverId;
79
- });
80
- setHoverItem(result[0]);
81
- } else setHoverItem(null);
82
- }, [props.hoverId]);
83
-
84
- useEffect(() => {
85
- if (filterGeoArray.length > 0) {
86
- let posArray = [];
87
- filterGeoArray.map((pos, i) => {
88
- let lat = pos.geolocation.latitude;
89
- let long = pos.geolocation.longitude;
90
- posArray.push([lat, long]);
91
- });
92
- setAllPosition(posArray);
93
- }
94
- }, [filterGeoArray]);
95
- const position = [50.85034, 4.35171];
96
-
97
- return (
98
- <div>
99
- <MapContainer
100
- style={{ height: `calc(100vh - ${props.headerHeight}px)`, minHeight: "600px" }}
101
- center={position}
102
- zoom={15}
103
- >
104
- <TileLayer
105
- attribution='&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
106
- url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
107
- />
108
- {allPosition != null ? (
109
- <ChangeMapView
110
- activeItem={activeItem}
111
- arrayOfLatLngs={allPosition && allPosition}
112
- />
113
- ) : (
114
- ""
115
- )}
116
- {filterGeoArray &&
117
- filterGeoArray.map((mark) => (
118
- <Marker
119
- key={mark.UID}
120
- icon={getMarkerIcon(mark.UID)}
121
- zIndexOffset={getMarkerZindex(mark.UID)}
122
- position={[
123
- mark.geolocation ? mark.geolocation.latitude : "",
124
- mark.geolocation ? mark.geolocation.longitude : "",
125
- ]}
126
- eventHandlers={{
127
- mouseover: (e) => {
128
- },
129
- }}
130
- >
131
- <Popup closeButton={false}>
132
- <Link
133
- className="r-map-popup"
134
- style={{ textDecoration: "none" }}
135
- to={{
136
- pathname: removeAccents(
137
- mark.title.replace(/\s/g, "-").toLowerCase()
138
- ),
139
- search: `?u=${mark.UID}`,
140
- state: {
141
- idItem: mark.UID,
142
- },
143
- }}
144
- >
145
- <span className="r-map-popup-title">{mark.title}</span>
146
- <p className="r-map-popup-category">{mark.category && mark.category.title}</p>
147
- </Link>
148
- </Popup>
149
- </ Marker>
150
- ))}
151
- </MapContainer>
152
- </div>
153
- );
154
- }
155
-
156
- export default ContentMap;
@@ -1,20 +0,0 @@
1
- import React from "react";
2
- import ContentLoader from "react-content-loader";
3
-
4
- const Skeleton = (props) => (
5
- <ContentLoader
6
- speed={2}
7
- viewBox="0 0 710.04 150"
8
- backgroundColor="#f3f3f3"
9
- foregroundColor="#ecebeb"
10
- className="skeleton"
11
- {...props}
12
- >
13
- <rect className="cls-1" width="246" height="150" />
14
- <rect className="cls-1" x="275.74" width="225.04" height="18.87" />
15
- <rect className="cls-1" x="275.74" y="47.43" width="434.3" height="10.19" />
16
- <rect className="cls-1" x="275.74" y="78.06" width="434.3" height="10.19" />
17
- </ContentLoader>
18
- );
19
-
20
- export default Skeleton;
@@ -1,78 +0,0 @@
1
- import React, { useEffect, useState } from "react";
2
- import moment from "moment";
3
- import Moment from "react-moment";
4
- import { Link } from "react-router-dom";
5
- import removeAccents from "remove-accents";
6
- import ReactMarkdown from 'react-markdown';
7
-
8
- const ContactCard = ({ contactItem }) => {
9
- const [limitDescription, setLimitDescription] = useState();
10
- const numberLimit = 150;
11
- const title = contactItem.title && contactItem.title;
12
- const description = contactItem.description && contactItem.description;
13
- const category = contactItem.taxonomy_contact_category
14
- ? contactItem.taxonomy_contact_category[0].title
15
- : "";
16
- useEffect(() => {
17
- if (description.length >= numberLimit) {
18
- setLimitDescription(description.substring(0, numberLimit) + "...");
19
- } else {
20
- setLimitDescription(description);
21
- }
22
- }, [contactItem]);
23
- moment.locale('fr')
24
- const created = moment(contactItem.created).startOf('minute').fromNow();
25
- const lastModified = moment(contactItem.modified).startOf('minute').fromNow();
26
- return (
27
- <div className="r-list-item">
28
- <div
29
- className={contactItem.image_vignette_scale?"r-item-img":"r-item-img r-item-img-placeholder"}
30
- style={{
31
- backgroundImage: contactItem.image_vignette_scale
32
- ? "url(" + contactItem.image_vignette_scale + ")"
33
- : "",
34
- }}
35
- />
36
- <div className="r-item-text">
37
- {category ? <span className="r-item-categorie">{category}</span> : ""}
38
- <span className="r-item-title">{title}</span>
39
- {description ?
40
- <ReactMarkdown className="r-item-description">{limitDescription}</ReactMarkdown>
41
- : ""
42
- }
43
- <Link
44
- className="r-item-read-more"
45
- style={{ textDecoration: "none" }}
46
- to={{
47
- pathname: removeAccents(
48
- contactItem.title.replace(/\s/g, "-").toLowerCase()
49
- ),
50
- search: `?u=${contactItem.UID}`,
51
- state: {
52
- idItem: contactItem.UID,
53
- },
54
- }}
55
- >
56
- {
57
- created === lastModified ?
58
- (
59
- <div className="r-card-date-last">
60
- <span>Publié </span>
61
- <span>{created}</span>
62
- </div>
63
- ):
64
- (
65
- <div className="r-card-date-last">
66
- <span>Actualisé </span>
67
- <span>{lastModified}</span>
68
- </div>
69
- )
70
- }
71
- </Link>
72
- </div>
73
- <div className="r-item-arrow-more"></div>
74
- </div>
75
- );
76
- };
77
-
78
- export default ContactCard;
@@ -1,261 +0,0 @@
1
- import { useHistory } from "react-router-dom";
2
- import React, { useEffect, useState } from "react";
3
- import useAxios from "../../../hooks/useAxios";
4
- import useFilterQuery from "../../../hooks/useFilterQuery";
5
- import moment from "moment";
6
- import Moment from "react-moment";
7
- import ReactMarkdown from 'react-markdown'
8
- import Spotlight from "spotlight.js";
9
- import "../../../../node_modules/flexbin/flexbin.css";
10
- import { Translate } from "react-translated";
11
- const ContactContent = ({ queryUrl, onChange }) => {
12
- let history = useHistory();
13
- const queryString = require("query-string");
14
- const parsed = queryString.parse(useFilterQuery().toString());
15
- const parsed2 = { ...parsed, UID: parsed["u"], fullobjects: 1 };
16
- const [params, setParams] = useState(parsed2);
17
- const [contactItem, setcontactItem] = useState({});
18
- const [files, setFiles] = useState(0);
19
- const [gallery, setGallery] = useState(0);
20
- const { response, error, isLoading } = useAxios(
21
- {
22
- method: "get",
23
- url: "",
24
- baseURL: queryUrl,
25
- headers: {
26
- Accept: "application/json",
27
- },
28
- params: params,
29
- },
30
- []
31
- );
32
- useEffect(() => {
33
- if (response !== null) {
34
- setcontactItem(response.items[0]);
35
- }
36
- window.scrollTo(0, 0);
37
- }, [response]);
38
-
39
- /// use to set file and gallery items
40
- useEffect(() => {
41
- if (contactItem.items && contactItem.items.length > 0) {
42
- setFiles(contactItem.items.filter(files => files['@type'] === 'File'));
43
- setGallery(contactItem.items.filter(files => files['@type'] === 'Image'));
44
- }
45
- }, [contactItem]);
46
-
47
- function handleClick() {
48
- history.push("./");
49
- onChange(null);
50
- }
51
- moment.locale('fr')
52
- const created = moment(contactItem.created).startOf('minute').fromNow();
53
- const lastModified = moment(contactItem.modified).startOf('minute').fromNow();
54
-
55
- return (
56
- <div className="new-content r-content">
57
- <button type="button" onClick={handleClick}>
58
- <Translate text="Retour" />
59
- </button>
60
- <article>
61
- <header>
62
- <h2 className="r-content-title">{contactItem.title}</h2>
63
- <div className="r-content-description">
64
- <ReactMarkdown>{contactItem.description}</ReactMarkdown>
65
- </div>
66
- </header>
67
- <figure>
68
- <div
69
- className="r-content-img"
70
- style={{
71
- backgroundImage: contactItem.image_affiche_scale
72
- ? "url(" + contactItem.image_affiche_scale + ")"
73
- : "",
74
- }}
75
- />
76
- </figure>
77
- <div className="r-content-news-info">
78
- <div className="r-content-news-info-container">
79
- {/* date */}
80
- <div className="r-content-news-info-schedul">
81
- <div className="icon-baseline">
82
- <svg
83
- xmlns="http://www.w3.org/2000/svg"
84
- preserveAspectRatio="xMinYMin"
85
- viewBox="0 0 19.41 19.41"
86
- >
87
- <path d="M16.09,2.74H14.35V.85a.44.44,0,0,0-.43-.44H12.47A.44.44,0,0,0,12,.85V2.74H7.38V.85A.44.44,0,0,0,7,.41H5.5a.44.44,0,0,0-.44.44V2.74H3.32A1.74,1.74,0,0,0,1.58,4.48V17.26A1.74,1.74,0,0,0,3.32,19H16.09a1.74,1.74,0,0,0,1.75-1.74V4.48A1.74,1.74,0,0,0,16.09,2.74Zm-.21,14.52H3.54A.22.22,0,0,1,3.32,17h0V6.22H16.09V17a.21.21,0,0,1-.21.22Z" />
88
- </svg>
89
- </div>
90
- <div className="dpinlb">
91
- <div className="r-content-news-info--date">
92
- <div className="r-content-date">
93
- {
94
- created === lastModified ?
95
- (
96
- <div className="r-content-date-publish">
97
- <span>Publié {created}</span>
98
- </div>
99
- ):
100
- (
101
- <div>
102
- <div className="r-content-date-publish">
103
- <span>Publié {created}</span>
104
- </div>
105
- <div className="r-card-date-last">
106
- <span>Actualisé {lastModified} </span>
107
- </div>
108
- </div>
109
- )
110
- }
111
- </div>
112
- </div>
113
- </div>
114
- </div>
115
- {/* link */}
116
- {contactItem.site_url === null &&
117
- contactItem.video_url === null ? (
118
- ""
119
- ) : (
120
- <div className="r-content-news-info-link">
121
- <div className="icon-baseline">
122
- <svg
123
- xmlns="http://www.w3.org/2000/svg"
124
- viewBox="0 0 19.41 19.41"
125
- >
126
- <path d="M16.36,2.22H3.06a1.3,1.3,0,0,0-1.3,1.3h0v9a1.3,1.3,0,0,0,1.3,1.3H7.52v1.74h-.7a.8.8,0,0,0,0,1.6h5.79a.8.8,0,0,0,0-1.6h-.7V13.85h4.45a1.31,1.31,0,0,0,1.3-1.3v-9A1.3,1.3,0,0,0,16.36,2.22Zm-1.9,10.83a.37.37,0,1,1,.36-.37h0a.36.36,0,0,1-.36.36Zm1.6.08a.45.45,0,1,1,.44-.45h0a.44.44,0,0,1-.44.45h0Zm.53-1.35H2.82V3.52a.23.23,0,0,1,.23-.23H16.36a.23.23,0,0,1,.23.23h0v8.27Z" />
127
- </svg>
128
- </div>
129
- <div className="dpinlb">
130
- {contactItem.site_url === null ? (
131
- ""
132
- ) : (
133
- <div className="r-content-news-info-event_link">
134
- <a href={contactItem.site_url}>{contactItem.site_url}</a>
135
- </div>
136
- )}
137
- {contactItem.video_url === null ? (
138
- ""
139
- ) : (
140
- <div className="r-content-news-info--video">
141
- <a href={contactItem.video_url}>Lien vers la vidéo</a>
142
- </div>
143
- )}
144
- </div>
145
- </div>
146
- )}
147
- {/* Social */}
148
- {contactItem.facebook === null &&
149
- contactItem.instagram === null &&
150
- contactItem.twitter === null ? (
151
- ""
152
- ) : (
153
- <div className="r-content-news-info-social">
154
- <ul>
155
- {!contactItem.facebook ? (
156
- ""
157
- ) : (
158
- <li>
159
- <a href={contactItem.facebook} target="_blank">
160
- <svg
161
- xmlns="http://www.w3.org/2000/svg"
162
- height="800"
163
- width="1200"
164
- viewBox="-204.79995 -341.33325 1774.9329 2047.9995"
165
- >
166
- <path
167
- d="M1365.333 682.667C1365.333 305.64 1059.693 0 682.667 0 305.64 0 0 305.64 0 682.667c0 340.738 249.641 623.16 576 674.373V880H402.667V682.667H576v-150.4c0-171.094 101.917-265.6 257.853-265.6 74.69 0 152.814 13.333 152.814 13.333v168h-86.083c-84.804 0-111.25 52.623-111.25 106.61v128.057h189.333L948.4 880H789.333v477.04c326.359-51.213 576-333.635 576-674.373"
168
- fill="#100f0d"
169
- />
170
- <path
171
- d="M948.4 880l30.267-197.333H789.333V554.609C789.333 500.623 815.78 448 900.584 448h86.083V280s-78.124-13.333-152.814-13.333c-155.936 0-257.853 94.506-257.853 265.6v150.4H402.667V880H576v477.04a687.805 687.805 0 00106.667 8.293c36.288 0 71.91-2.84 106.666-8.293V880H948.4"
172
- fill="#fff"
173
- />
174
- </svg>
175
- </a>
176
- </li>
177
- )}
178
- {!contactItem.instagram ? (
179
- ""
180
- ) : (
181
- <li>
182
- <a href={contactItem.instagram} target="_blank">
183
- <svg
184
- xmlns="http://www.w3.org/2000/svg"
185
- height="800"
186
- width="1200"
187
- viewBox="-100.7682 -167.947 873.3244 1007.682"
188
- >
189
- <g fill="#100f0d">
190
- <path d="M335.895 0c-91.224 0-102.663.387-138.49 2.021-35.752 1.631-60.169 7.31-81.535 15.612-22.088 8.584-40.82 20.07-59.493 38.743-18.674 18.673-30.16 37.407-38.743 59.495C9.33 137.236 3.653 161.653 2.02 197.405.386 233.232 0 244.671 0 335.895c0 91.222.386 102.661 2.02 138.488 1.633 35.752 7.31 60.169 15.614 81.534 8.584 22.088 20.07 40.82 38.743 59.495 18.674 18.673 37.405 30.159 59.493 38.743 21.366 8.302 45.783 13.98 81.535 15.612 35.827 1.634 47.266 2.021 138.49 2.021 91.222 0 102.661-.387 138.488-2.021 35.752-1.631 60.169-7.31 81.534-15.612 22.088-8.584 40.82-20.07 59.495-38.743 18.673-18.675 30.159-37.407 38.743-59.495 8.302-21.365 13.981-45.782 15.612-81.534 1.634-35.827 2.021-47.266 2.021-138.488 0-91.224-.387-102.663-2.021-138.49-1.631-35.752-7.31-60.169-15.612-81.534-8.584-22.088-20.07-40.822-38.743-59.495-18.675-18.673-37.407-30.159-59.495-38.743-21.365-8.302-45.782-13.981-81.534-15.612C438.556.387 427.117 0 335.895 0zm0 60.521c89.686 0 100.31.343 135.729 1.959 32.75 1.493 50.535 6.965 62.37 11.565 15.68 6.094 26.869 13.372 38.622 25.126 11.755 11.754 19.033 22.944 25.127 38.622 4.6 11.836 10.072 29.622 11.565 62.371 1.616 35.419 1.959 46.043 1.959 135.73 0 89.687-.343 100.311-1.959 135.73-1.493 32.75-6.965 50.535-11.565 62.37-6.094 15.68-13.372 26.869-25.127 38.622-11.753 11.755-22.943 19.033-38.621 25.127-11.836 4.6-29.622 10.072-62.371 11.565-35.413 1.616-46.036 1.959-135.73 1.959-89.694 0-100.315-.343-135.73-1.96-32.75-1.492-50.535-6.964-62.37-11.564-15.68-6.094-26.869-13.372-38.622-25.127-11.754-11.753-19.033-22.943-25.127-38.621-4.6-11.836-10.071-29.622-11.565-62.371-1.616-35.419-1.959-46.043-1.959-135.73 0-89.687.343-100.311 1.959-135.73 1.494-32.75 6.965-50.535 11.565-62.37 6.094-15.68 13.373-26.869 25.126-38.622 11.754-11.755 22.944-19.033 38.622-25.127 11.836-4.6 29.622-10.072 62.371-11.565 35.419-1.616 46.043-1.959 135.73-1.959" />
191
- <path d="M335.895 447.859c-61.838 0-111.966-50.128-111.966-111.964 0-61.838 50.128-111.966 111.966-111.966 61.836 0 111.964 50.128 111.964 111.966 0 61.836-50.128 111.964-111.964 111.964zm0-284.451c-95.263 0-172.487 77.224-172.487 172.487 0 95.261 77.224 172.485 172.487 172.485 95.261 0 172.485-77.224 172.485-172.485 0-95.263-77.224-172.487-172.485-172.487m219.608-6.815c0 22.262-18.047 40.307-40.308 40.307-22.26 0-40.307-18.045-40.307-40.307 0-22.261 18.047-40.308 40.307-40.308 22.261 0 40.308 18.047 40.308 40.308" />
192
- </g>
193
- </svg>
194
- </a>
195
- </li>
196
- )}
197
- {!contactItem.twitter ? (
198
- ""
199
- ) : (
200
- <li>
201
- <a href={contactItem.twitter} target="_blank">
202
- <svg
203
- xmlns="http://www.w3.org/2000/svg"
204
- height="800"
205
- width="1200"
206
- viewBox="-44.7006 -60.54775 387.4052 363.2865"
207
- >
208
- <path
209
- fill="#000"
210
- d="M93.719 242.19c112.46 0 173.96-93.168 173.96-173.96 0-2.646-.054-5.28-.173-7.903a124.338 124.338 0 0030.498-31.66c-10.955 4.87-22.744 8.148-35.11 9.626 12.622-7.57 22.313-19.543 26.885-33.817a122.62 122.62 0 01-38.824 14.841C239.798 7.433 223.915 0 206.326 0c-33.764 0-61.144 27.381-61.144 61.132 0 4.798.537 9.465 1.586 13.941-50.815-2.557-95.874-26.886-126.03-63.88a60.977 60.977 0 00-8.279 30.73c0 21.212 10.794 39.938 27.208 50.893a60.685 60.685 0 01-27.69-7.647c-.009.257-.009.507-.009.781 0 29.61 21.075 54.332 49.051 59.934a61.218 61.218 0 01-16.122 2.152 60.84 60.84 0 01-11.491-1.103c7.784 24.293 30.355 41.971 57.115 42.465-20.926 16.402-47.287 26.171-75.937 26.171-4.929 0-9.798-.28-14.584-.846 27.059 17.344 59.189 27.464 93.722 27.464"
211
- />
212
- </svg>
213
- </a>
214
- </li>
215
- )}
216
- </ul>
217
- </div>
218
- )}
219
- </div>
220
- </div>
221
- <div
222
- className="r-content-text"
223
- dangerouslySetInnerHTML={{
224
- __html: contactItem.text && contactItem.text.data,
225
- }}
226
- ></div>
227
- {/* add files to download */}
228
- {
229
- files ? (
230
- <div className="r-content-files">
231
- {files.map((file) => (
232
- <div className="r-content-file">
233
- <a href={file.targetUrl} className="r-content-file-link" rel="nofollow">
234
- <span className="r-content-file-title">{file.title}</span>
235
- {/* <span className="r-content-file-size">{file.file.size}</span> */}
236
- <span className="r-content-file-icon"><svg width="21" height="21" viewBox="0 0 24 24" fill="none" stroke="#8899a4" stroke-width="2" stroke-linecap="square" stroke-linejoin="arcs"><path d="M3 15v4c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2v-4M17 9l-5 5-5-5M12 12.8V2.5"></path></svg> </span>
237
- </a>
238
- </div>
239
- ))}
240
- </div>
241
- ) : ("")
242
- }
243
- {/* add gallery */}
244
- {
245
- gallery ? (
246
- <div className="r-content-gallery">
247
- <div class="spotlight-group flexbin r-content-gallery">
248
- {gallery.map((image) => (
249
- <a class="spotlight" href={image.image_full_scale} >
250
- <img src={image.image_preview_scale} />
251
- </a>
252
- ))}
253
- </div>
254
- </div>
255
- ) : ("")
256
- }
257
- </article>
258
- </div>
259
- );
260
- };
261
- export default ContactContent;
@@ -1,37 +0,0 @@
1
- import ContactCard from "../ContactCard/ContactCard";
2
- import { Link } from "react-router-dom";
3
- import React from "react";
4
- import removeAccents from "remove-accents";
5
- const ContactList = ({ contactArray, onChange, parentCallback }) => {
6
- function handleClick(event) {
7
- onChange(event);
8
- }
9
- return (
10
- <React.Fragment>
11
- <ul className="r-result-list actu-result-list">
12
- {contactArray.map((contactItem, i) => (
13
- <li
14
- key={i}
15
- className="r-list-item-group"
16
- onClick={() => handleClick(contactItem.UID)}
17
- >
18
- <Link
19
- className="r-news-list-item-link"
20
- style={{ textDecoration: "none" }}
21
- to={{
22
- pathname: removeAccents(contactItem.title).replace(/[^a-zA-Z ]/g, "").replace(/\s/g, "-").toLowerCase(),
23
- search: `?u=${contactItem.UID}`,
24
- state: {
25
- idItem: contactItem.UID,
26
- },
27
- }}
28
- >
29
- <ContactCard contactItem={contactItem} key={contactItem.created} />
30
- </Link>
31
- </li>
32
- ))}
33
- </ul>
34
- </React.Fragment>
35
- );
36
- };
37
- export default ContactList;