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
@@ -0,0 +1,42 @@
1
+ export const iam = [
2
+ {
3
+ label: "Commerçant",
4
+ value: "merchant",
5
+ },
6
+ {
7
+ label: "Demandeur d'emploi",
8
+ value: "job_seeker",
9
+ },
10
+ {
11
+ label: "En situation de handicap",
12
+ value: "disabled_person",
13
+ },
14
+ {
15
+ label: "Jeune",
16
+ value: "young",
17
+ },
18
+ {
19
+ label: "Journaliste",
20
+ value: "journalist",
21
+ },
22
+ {
23
+ label: "Nouvel arrivant",
24
+ value: "newcomer",
25
+ },
26
+ {
27
+ label: "Organisateur d'événement",
28
+ value: "event_planner",
29
+ },
30
+ {
31
+ label: "Parent",
32
+ value: "parent",
33
+ },
34
+ {
35
+ label: "Senior",
36
+ value: "elder",
37
+ },
38
+ {
39
+ label: "Touriste",
40
+ value: "tourist",
41
+ },
42
+ ];
@@ -0,0 +1,227 @@
1
+ .r-result-filter-container {
2
+ @media screen and (min-width:1200px) {
3
+ position: sticky;
4
+ }
5
+ z-index: 1;
6
+ background: #fff;
7
+ &:after {
8
+ content: "";
9
+ background: #fff;
10
+ position: absolute;
11
+ left: 0;
12
+ right: 0;
13
+ height: 312px;
14
+ top: 0;
15
+ transform: translateY(-100%);
16
+ }
17
+ .r-result-filter {
18
+ padding-top: 1rem;
19
+ padding-bottom: 1rem;
20
+ border-bottom: solid 1px #cccc;
21
+ position: relative;
22
+ }
23
+ }
24
+
25
+ .r-results-numbers {
26
+ width: 100%;
27
+ margin-bottom: 0rem;
28
+ padding-top: 1rem;
29
+
30
+ span {
31
+ font-weight: bold;
32
+ }
33
+ }
34
+
35
+ .r-result-filter {
36
+ position: relative;
37
+ }
38
+ // react filter menu
39
+
40
+ .react-filters-menu {
41
+ display: flex;
42
+ width: 100%;
43
+ margin-bottom: 1rem;
44
+
45
+ .react-filters-container {
46
+ display: flex;
47
+ align-items: flex-start;
48
+ position: relative;
49
+ flex-direction: column;
50
+ width: auto;
51
+ border-radius: 30px;
52
+ gap: 10px;
53
+ background: #fff;
54
+ width: 100%;
55
+
56
+ @media screen and (min-width:630px) {
57
+ align-items: center;
58
+ flex-direction: row;
59
+ width: auto;
60
+ padding: 4px 15px;
61
+ border: solid 1px #CFCFCF;
62
+ box-shadow: 0 3px 12px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, .05);
63
+
64
+ }
65
+ }
66
+
67
+ .react-sep-menu {
68
+ display: none;
69
+ background: #CFCFCF;
70
+ width: 1px;
71
+ height: 20px;
72
+
73
+ @media screen and (min-width:630px) {
74
+ display: block;
75
+ }
76
+ }
77
+
78
+ span[class$="-indicatorSeparator"] {
79
+ display: none;
80
+ }
81
+
82
+ div[class$="-indicatorContainer"] {
83
+ padding: 0;
84
+ }
85
+
86
+ .accordion-collapse {
87
+ padding-top: 1rem;
88
+ }
89
+
90
+ .top-filter {
91
+ width: 100%;
92
+
93
+ @media screen and (min-width:630px) {
94
+ width: auto;
95
+ }
96
+
97
+ .select-custom-no-border {
98
+ width: 100%;
99
+
100
+ @media screen and (min-width:630px) {
101
+ width: auto;
102
+ }
103
+
104
+ div[class$="-control"] {
105
+ width: 100%;
106
+
107
+ @media screen and (max-width:629px) {
108
+ border-color: hsl(0, 0%, 70%);
109
+ color: hsl(0, 0%, 20%);
110
+ border: solid 1px #CFCFCF;
111
+ }
112
+
113
+ @media screen and (min-width:630px) {
114
+ width: auto;
115
+ }
116
+ }
117
+ }
118
+ }
119
+ }
120
+
121
+ // react search bar
122
+
123
+ .r-filter-search {
124
+ position: relative;
125
+ padding: 12px 6px;
126
+ border-radius: 50px;
127
+ display: block;
128
+ width: 100%;
129
+
130
+ @media screen and (max-width:629px) {
131
+ width: calc(100% - 40px);
132
+ border: solid 1px #CFCFCF;
133
+ box-shadow: 0 3px 12px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, .05);
134
+ }
135
+
136
+ @media screen and (min-width:630px) {
137
+ width: 175px;
138
+ }
139
+
140
+ input {
141
+ border: none;
142
+ width: 100%;
143
+
144
+ &:focus {
145
+ outline: none;
146
+ }
147
+ }
148
+
149
+ svg {
150
+ position: absolute;
151
+ transform: translateX(-100%);
152
+ right: 0;
153
+ }
154
+
155
+ .relative {
156
+ display: flex;
157
+ justify-content: center;
158
+ align-items: center;
159
+ }
160
+ }
161
+
162
+
163
+ // // More filters
164
+
165
+ .more-filter-btn {
166
+ background-color: transparent;
167
+ border: none;
168
+ position: absolute;
169
+ right: 0;
170
+ top: 18px;
171
+
172
+ @media screen and (min-width:630px) {
173
+ width: auto;
174
+ translate: 40px;
175
+ top: inherit;
176
+ }
177
+
178
+ &.collapsed {
179
+ transform: rotate(180deg);
180
+
181
+ svg {
182
+ stroke: #9f9f9f;
183
+ }
184
+ }
185
+ }
186
+
187
+ .more-filter-container {
188
+ &.collapse:not(.show) {
189
+ display: none;
190
+ }
191
+
192
+ .accordion-body {
193
+ display: flex;
194
+ gap: 20px;
195
+ align-items: center;
196
+ padding: 1rem;
197
+ background-color: #f8F8F8;
198
+ justify-content: center;
199
+ border: solid 1px #e4e4e4;
200
+ border-left: none;
201
+ border-right: none;
202
+
203
+ @media screen and (max-width:630px) {
204
+ display: flex;
205
+ flex-direction: column;
206
+ }
207
+ }
208
+
209
+ .free-Filter {
210
+ label {
211
+ font-size: 12px;
212
+ font-weight: bold;
213
+ letter-spacing: 1.4px;
214
+ }
215
+
216
+ .form-check {
217
+ display: flex;
218
+ align-items: center;
219
+ gap: 5px;
220
+ padding: 0;
221
+
222
+ input {
223
+ margin: 0;
224
+ }
225
+ }
226
+ }
227
+ }
@@ -0,0 +1,94 @@
1
+ export const taxonomy_event_public = [
2
+ {
3
+ label: "Petit enfant",
4
+ value: "i8gf49541q",
5
+ },
6
+ {
7
+ label: "Petit enfant » 1 an",
8
+ value: "tdtpdh546x",
9
+ },
10
+ {
11
+ label: "Petit enfant » 2 ans",
12
+ value: "19hb3u884v",
13
+ },
14
+ {
15
+ label: "Petit enfant » 3 ans",
16
+ value: "cl7oi9xaig",
17
+ },
18
+ {
19
+ label: "Enfant",
20
+ value: "omg40jn2yl",
21
+ },
22
+ {
23
+ label: "Enfant » 4 ans",
24
+ value: "a04ryxt74a",
25
+ },
26
+ {
27
+ label: "Enfant » 5 ans",
28
+ value: "2u0ugvi72u",
29
+ },
30
+ {
31
+ label: "Enfant » 6 ans",
32
+ value: "8btkbsp9ei",
33
+ },
34
+ {
35
+ label: "Enfant » 7 ans",
36
+ value: "gp881gyhmy",
37
+ },
38
+ {
39
+ label: "Enfant » 8 ans",
40
+ value: "me9vnw7vnk",
41
+ },
42
+ {
43
+ label: "Enfant » 9 ans",
44
+ value: "11ps76le1h",
45
+ },
46
+ {
47
+ label: "Enfant » 10 ans",
48
+ value: "rf2m1fbrot",
49
+ },
50
+ {
51
+ label: "Enfant » 11 ans",
52
+ value: "79qhii8mnf",
53
+ },
54
+ {
55
+ label: "Adolescent",
56
+ value: "ah0rbc2qr4",
57
+ },
58
+ {
59
+ label: "Adolescent » 12 ans",
60
+ value: "x6rmmxao6i",
61
+ },
62
+ {
63
+ label: "Adolescent » 13 ans",
64
+ value: "1pn83a9xkw",
65
+ },
66
+ {
67
+ label: "Adolescent » 14 ans",
68
+ value: "b8skpvhfka",
69
+ },
70
+ {
71
+ label: "Adolescent » 15 ans",
72
+ value: "snvxin8j4j",
73
+ },
74
+ {
75
+ label: "Adolescent » 16 ans",
76
+ value: "v4ty7v0hab",
77
+ },
78
+ {
79
+ label: "Adolescent » 17 ans",
80
+ value: "1x1ii6jxhu",
81
+ },
82
+ {
83
+ label: "Adulte",
84
+ value: "5lfbjyeea0",
85
+ },
86
+ {
87
+ label: "Plus de 60 ans",
88
+ value: "58cuuquwed",
89
+ },
90
+ {
91
+ label: "Tout public",
92
+ value: "ry275hefdy",
93
+ },
94
+ ];
@@ -0,0 +1,58 @@
1
+ export const menuStyles = {
2
+ control: (styles) => ({
3
+ ...styles,
4
+ backgroundColor: "white",
5
+ borderColor: "transparent",
6
+ borderRadius: "10px",
7
+ minWidth:"150px",
8
+ height: "40px",
9
+ }),
10
+ menu: (styles) => ({
11
+ ...styles,
12
+ width: "max-content",
13
+ maxWidth: "250px",
14
+ }),
15
+ placeholder: (styles) => ({
16
+ ...styles,
17
+ color: "000",
18
+ fontWeight: "bold",
19
+ fontSize: "14px",
20
+ letterSpacing: "1.4px",
21
+ }),
22
+ indicators: (styles) => ({
23
+ ...styles,
24
+ color: "blue",
25
+ }),
26
+ option: (styles) => {
27
+ return {
28
+ ...styles,
29
+ };
30
+ },
31
+ };
32
+
33
+ export const moreFilterStyles = {
34
+ control: (styles) => ({
35
+ ...styles,
36
+ backgroundColor: "white",
37
+ borderRadius: "10px",
38
+ height: "30px",
39
+ minWidth:"150px",
40
+ }),
41
+ placeholder: (styles) => ({
42
+ ...styles,
43
+ color: "000",
44
+ fontWeight: "bold",
45
+ fontSize: "12px",
46
+ letterSpacing: "1.4px",
47
+ }),
48
+ menu: (styles) => ({
49
+ ...styles,
50
+ width: "max-content",
51
+ maxWidth: "250px",
52
+ }),
53
+ option: (styles, { data, isDisabled, isFocused, isSelected }) => {
54
+ return {
55
+ ...styles,
56
+ };
57
+ },
58
+ };
@@ -0,0 +1,149 @@
1
+ import React, { useState, useEffect } from "react";
2
+ import Select from "react-select";
3
+ import "./TaxonomyFilter.scss";
4
+
5
+ function TaxonomyFilter({ onChange, sub, title, token, isActive, setCat, onClick }) {
6
+ const [select1Value, setSelect1Value] = useState(null);
7
+ const [select2Value, setSelect2Value] = useState(null);
8
+ const [select3Value, setSelect3Value] = useState(null);
9
+ const [firstLevelOptions, setFirstLevelOptions] = useState(null);
10
+ const [secondLevelOptions, setSecondLevelOptions] = useState(null);
11
+ // État pour suivre l'affichage de la div associée
12
+ const [secondLevelVisible, setsecondLevelVisible] = useState(false);
13
+ const [thirdLevelVisible, setThirdLevelVisible] = useState(false);
14
+ // const avev la valeur des filtres
15
+ const [filterValue, setFilterValue] = useState({
16
+ taxonomy_contact_category_for_filtering: null,
17
+ });
18
+
19
+ // Object { b_start: "0", fullobjects: "1", taxonomy_contact_category_for_filtering: "ol8av3v8bn" }
20
+
21
+ // Dans le composant TaxonomyFilter
22
+ useEffect(() => {
23
+ if (!isActive) {
24
+ setsecondLevelVisible(false);
25
+ setThirdLevelVisible(false);
26
+ setSelect2Value(null);
27
+ }
28
+ }, [isActive]);
29
+
30
+ useEffect(() => {
31
+ if (sub) {
32
+ const optionsSub1 = sub.map((d) => ({
33
+ value: d.token,
34
+ label: d.title,
35
+ ...(d.sub && { sub: d.sub }),
36
+ }));
37
+ setFirstLevelOptions(optionsSub1);
38
+ }
39
+ }, [sub]);
40
+ // Gestionnaire d'événements pour le clic sur le lien
41
+ const handleLinkClick = () => {
42
+ // Inverser la valeur de l'état pour afficher ou masquer la div
43
+ setsecondLevelVisible(!secondLevelVisible);
44
+ setSelect2Value(null);
45
+ setThirdLevelVisible(false);
46
+ };
47
+
48
+ // Gestionnaire d'événements pour le changement de valeur dans le premier select
49
+ const onChangeSub1 = (value, action) => {
50
+ if (value && value.sub) {
51
+ const optionsSub2 = value.sub.map((d) => ({
52
+ value: d.token,
53
+ label: d.title,
54
+ }));
55
+ setSelect2Value(value.label);
56
+ setSelect3Value(null);
57
+ setSecondLevelOptions(optionsSub2);
58
+ setThirdLevelVisible(true);
59
+ onChange(value, action);
60
+ } else {
61
+ setSecondLevelOptions(null);
62
+ }
63
+ };
64
+
65
+ // Gestionnaire d'événements pour le changement de valeur dans le deuxième select
66
+ const onChangeSub2 = (value, action) => {
67
+ setSelect3Value(value.label);
68
+ onChange(value, action);
69
+ };
70
+
71
+ // send the value to the first level (a link)
72
+ const handleApply = (value, title) => {
73
+ setCat((prevCat) => !prevCat);
74
+ if (!secondLevelVisible) {
75
+ onChange(
76
+ { value: value, label: title },
77
+ { name: "taxonomy_contact_category_for_filtering" }
78
+ );
79
+ } else {
80
+ onChange(null, { name: "taxonomy_contact_category_for_filtering" });
81
+ }
82
+ };
83
+
84
+ return (
85
+ <div onClick={onClick}>
86
+ <div
87
+ className={
88
+ secondLevelVisible ? "dropDownFilter dropDownFilter-active" : "dropDownFilter"
89
+ }
90
+ >
91
+ {/* Lien avec gestionnaire d'événements */}
92
+ <a
93
+ className="sub0"
94
+ href="#"
95
+ value={title}
96
+ onClick={(e) => {
97
+ e.preventDefault();
98
+ handleLinkClick();
99
+ handleApply(token, title); // Pass the correct value to handleApply
100
+ }}
101
+ >
102
+ {title}
103
+ </a>
104
+
105
+ {/* Div conditionnellement rendue en fonction de l'état */}
106
+ {firstLevelOptions && (
107
+ <div
108
+ className={
109
+ secondLevelVisible
110
+ ? "sub1 dropDownFilter-visible"
111
+ : "sub1 dropDownFilter-invisble"
112
+ }
113
+ >
114
+ <Select
115
+ name={"taxonomy_contact_category_for_filtering"}
116
+ className="select-custom-class library-facilities"
117
+ onChange={onChangeSub1}
118
+ options={firstLevelOptions}
119
+ value={select2Value}
120
+ placeholder={select2Value ? select2Value : "Catégories"}
121
+ />
122
+ </div>
123
+ )}
124
+
125
+ {/* Div 3 conditionnellement rendue en fonction de l'état */}
126
+ {secondLevelOptions && (
127
+ <div
128
+ className={
129
+ thirdLevelVisible
130
+ ? "sub2 dropDownFilter-visible"
131
+ : "sub2 dropDownFilter-invisble"
132
+ }
133
+ >
134
+ <Select
135
+ name={"taxonomy_contact_category_for_filtering"}
136
+ className="select-custom-class library-facilities"
137
+ onChange={onChangeSub2}
138
+ options={secondLevelOptions}
139
+ value={select3Value}
140
+ placeholder={select3Value ? select3Value : "Catégories"}
141
+ />
142
+ </div>
143
+ )}
144
+ </div>
145
+ </div>
146
+ );
147
+ }
148
+
149
+ export default TaxonomyFilter;
@@ -0,0 +1,70 @@
1
+ .taxonomy-Filter {
2
+ width: 100%;
3
+ display: flex;
4
+ gap: 20px;
5
+ flex-wrap: wrap;
6
+ transition: all .3s ease-in-out;
7
+ }
8
+
9
+
10
+ .dropDownFilter {
11
+ display: flex;
12
+ justify-content: center;
13
+ align-items: center;
14
+ gap: 0 5px;
15
+ transition: max-width .3s ease-in-out;
16
+ transition: opacity 3s ease-in-out;
17
+
18
+ border: solid 1px #CFCFCF;
19
+ border-radius: 20px;
20
+ outline: 1px solid transparent;
21
+
22
+ &-active {
23
+ border-color: #2684FF;
24
+ outline: 1px solid #2684FF;
25
+
26
+ // border-width: 2px;
27
+ .sub0 {}
28
+ }
29
+
30
+ .sub0 {
31
+ text-decoration: none;
32
+ padding: 10px 10px;
33
+ }
34
+
35
+ .sub1 {
36
+ // transition: max-width .3s ease-in-out;
37
+ padding-right: 5px;
38
+ transition: all .4s cubic-bezier(0, .74, .58, 1.04);
39
+
40
+ div[class*="control"] {
41
+ flex-wrap: nowrap;
42
+ border-radius: 15px;
43
+ }
44
+ }
45
+
46
+ .sub2 {
47
+ // transition: max-width .3s ease-in-out;
48
+ padding-right: 5px;
49
+ transition: all .4s cubic-bezier(0, .74, .58, 1.04);
50
+
51
+ div[class*="control"] {
52
+ flex-wrap: nowrap;
53
+ border-radius: 15px;
54
+ }
55
+ }
56
+
57
+ .dropDownFilter-invisble {
58
+ opacity: 0;
59
+ max-width: 0px;
60
+ height: 0px;
61
+ overflow: hidden;
62
+ padding: 0;
63
+ }
64
+
65
+ .dropDownFilter-visible {
66
+ max-width: 150px;
67
+ height: auto;
68
+ opacity: 1;
69
+ }
70
+ }