imio.smartweb.core 1.2.38__py3-none-any.whl → 1.2.79__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 (222) 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/controlpanel.py +43 -0
  4. imio/smartweb/core/browser/faceted/block_view.pt +4 -4
  5. imio/smartweb/core/browser/faceted/summary_view.pt +4 -4
  6. imio/smartweb/core/browser/sitemap.py +10 -3
  7. imio/smartweb/core/browser/static/icons/action-delete.svg +3 -0
  8. imio/smartweb/core/browser/static/icons/action-engagement-2.svg +4 -0
  9. imio/smartweb/core/browser/static/icons/action-panneaux.svg +3 -0
  10. imio/smartweb/core/browser/static/icons/action-vote.svg +3 -0
  11. imio/smartweb/core/browser/static/icons/categorie-attention.svg +3 -0
  12. imio/smartweb/core/browser/static/icons/categorie-infos-travaux-2.svg +4 -0
  13. imio/smartweb/core/browser/static/icons/categorie-nature.svg +3 -0
  14. imio/smartweb/core/browser/static/icons/categorie-parcs-a-conteneurs.svg +4 -0
  15. imio/smartweb/core/browser/static/icons/categorie-plus.svg +3 -0
  16. imio/smartweb/core/browser/static/icons/categorie-primes-2.svg +5 -0
  17. imio/smartweb/core/browser/static/icons/categorie-sport-natation.svg +4 -0
  18. imio/smartweb/core/browser/static/icons/organisation-ecole-sac.svg +4 -0
  19. imio/smartweb/core/browser/static/icons/organisation-scout.svg +3 -0
  20. imio/smartweb/core/browser/static/icons/reseausocial-behance.svg +3 -0
  21. imio/smartweb/core/browser/static/icons/reseausocial-linkedin.svg +3 -0
  22. imio/smartweb/core/browser/static/smartweb-edit-compiled.css +1 -1
  23. imio/smartweb/core/browser/static/smartweb-view-compiled.css +1 -1
  24. imio/smartweb/core/browser/static/src/edit.less +42 -0
  25. imio/smartweb/core/browser/static/src/view.less +109 -56
  26. imio/smartweb/core/browser/vocabulary.py +8 -3
  27. imio/smartweb/core/contents/__init__.py +2 -0
  28. imio/smartweb/core/contents/configure.zcml +1 -0
  29. imio/smartweb/core/contents/folder/block_view.pt +8 -8
  30. imio/smartweb/core/contents/folder/summary_view.pt +4 -4
  31. imio/smartweb/core/contents/pages/cirkwi/content.py +5 -0
  32. imio/smartweb/core/contents/pages/cirkwi/view.py +2 -1
  33. imio/smartweb/core/contents/pages/configure.zcml +1 -0
  34. imio/smartweb/core/contents/pages/portal_page/view.py +3 -0
  35. imio/smartweb/core/contents/pages/views.py +47 -1
  36. imio/smartweb/core/contents/publication/__init__.py +0 -0
  37. imio/smartweb/core/contents/publication/configure.zcml +5 -0
  38. imio/smartweb/core/contents/publication/content.py +23 -0
  39. imio/smartweb/core/contents/rest/base.py +9 -7
  40. imio/smartweb/core/contents/rest/directory/endpoint.py +2 -2
  41. imio/smartweb/core/contents/rest/directory/view.pt +2 -1
  42. imio/smartweb/core/contents/rest/events/content.py +13 -0
  43. imio/smartweb/core/contents/rest/events/endpoint.py +5 -3
  44. imio/smartweb/core/contents/rest/events/view.pt +5 -1
  45. imio/smartweb/core/contents/rest/events/view.py +12 -0
  46. imio/smartweb/core/contents/rest/news/content.py +6 -0
  47. imio/smartweb/core/contents/rest/news/endpoint.py +4 -2
  48. imio/smartweb/core/contents/rest/news/view.pt +4 -1
  49. imio/smartweb/core/contents/rest/news/view.py +8 -0
  50. imio/smartweb/core/contents/rest/utils.py +0 -1
  51. imio/smartweb/core/contents/rest/view.py +4 -0
  52. imio/smartweb/core/contents/sections/common_templates/carousel.pt +5 -1
  53. imio/smartweb/core/contents/sections/common_templates/table.pt +18 -4
  54. imio/smartweb/core/contents/sections/configure.zcml +18 -0
  55. imio/smartweb/core/contents/sections/contact/content.py +2 -2
  56. imio/smartweb/core/contents/sections/contact/macros.pt +28 -3
  57. imio/smartweb/core/contents/sections/contact/utils.py +2 -0
  58. imio/smartweb/core/contents/sections/contact/view.py +28 -12
  59. imio/smartweb/core/contents/sections/events/content.py +12 -4
  60. imio/smartweb/core/contents/sections/events/view.py +20 -2
  61. imio/smartweb/core/contents/sections/external_content/view.pt +4 -4
  62. imio/smartweb/core/contents/sections/external_content/views.py +6 -4
  63. imio/smartweb/core/contents/sections/files/content.py +7 -1
  64. imio/smartweb/core/contents/sections/files/view.py +43 -12
  65. imio/smartweb/core/contents/sections/links/view.py +5 -0
  66. imio/smartweb/core/contents/sections/macros.pt +26 -0
  67. imio/smartweb/core/contents/sections/news/content.py +11 -3
  68. imio/smartweb/core/contents/sections/news/view.py +20 -2
  69. imio/smartweb/core/contents/sections/text/views.py +2 -0
  70. imio/smartweb/core/contents/sections/views.py +73 -10
  71. imio/smartweb/core/interfaces.py +4 -0
  72. imio/smartweb/core/profiles/default/metadata.xml +1 -1
  73. imio/smartweb/core/profiles/default/taxonomies/page_category.xml +16 -0
  74. imio/smartweb/core/profiles/default/taxonomies/procedure_category.xml +26 -0
  75. imio/smartweb/core/profiles/default/types/imio.smartweb.EventsView.xml +1 -0
  76. imio/smartweb/core/profiles/default/types/imio.smartweb.NewsView.xml +1 -0
  77. imio/smartweb/core/profiles/default/types/imio.smartweb.Publication.xml +38 -0
  78. imio/smartweb/core/profiles/default/types/imio.smartweb.SectionEvents.xml +1 -0
  79. imio/smartweb/core/profiles/default/types/imio.smartweb.SectionFiles.xml +2 -0
  80. imio/smartweb/core/profiles/default/types/imio.smartweb.SectionNews.xml +1 -0
  81. imio/smartweb/core/profiles/default/types.xml +1 -0
  82. imio/smartweb/core/profiles/icons/basic/registry.xml +120 -0
  83. imio/smartweb/core/rest/authentic_sources.py +17 -2
  84. imio/smartweb/core/subscribers.py +48 -0
  85. imio/smartweb/core/subscribers.zcml +12 -0
  86. imio/smartweb/core/tests/resources/json_iadeliberations_institutions.json +60 -0
  87. imio/smartweb/core/tests/resources/json_iadeliberations_publication.json +105 -0
  88. imio/smartweb/core/tests/resources/json_iadeliberations_publications.json +270 -0
  89. imio/smartweb/core/tests/resources/json_rest_events.json +6 -2
  90. imio/smartweb/core/tests/resources/json_rest_news.json +2 -2
  91. imio/smartweb/core/tests/resources/json_rest_specific_events.json +1 -1
  92. imio/smartweb/core/tests/test_htmx_in_sections.py +131 -0
  93. imio/smartweb/core/tests/test_iadeliberations.py +136 -0
  94. imio/smartweb/core/tests/test_icons.py +1 -1
  95. imio/smartweb/core/tests/test_rest.py +58 -17
  96. imio/smartweb/core/tests/test_section_contact.py +42 -10
  97. imio/smartweb/core/tests/test_section_events.py +28 -5
  98. imio/smartweb/core/tests/test_section_external_content.py +28 -2
  99. imio/smartweb/core/tests/test_section_news.py +30 -8
  100. imio/smartweb/core/tests/test_sections.py +17 -0
  101. imio/smartweb/core/tests/test_vocabularies.py +60 -3
  102. imio/smartweb/core/tests/test_vocabulary.py +43 -0
  103. imio/smartweb/core/upgrades/configure.zcml +108 -0
  104. imio/smartweb/core/upgrades/profiles/1055_to_1056/types/imio.smartweb.SectionFiles.xml +12 -0
  105. imio/smartweb/core/upgrades/profiles/1056_to_1057/types/imio.smartweb.EventsView.xml +11 -0
  106. imio/smartweb/core/upgrades/profiles/1056_to_1057/types/imio.smartweb.NewsView.xml +11 -0
  107. imio/smartweb/core/upgrades/profiles/1056_to_1057/types/imio.smartweb.SectionEvents.xml +11 -0
  108. imio/smartweb/core/upgrades/profiles/1056_to_1057/types/imio.smartweb.SectionNews.xml +11 -0
  109. imio/smartweb/core/upgrades/profiles/1057_to_1058/taxonomies/page_category.cfg +9 -0
  110. imio/smartweb/core/upgrades/profiles/1057_to_1058/taxonomies/page_category.xml +73 -0
  111. imio/smartweb/core/upgrades/profiles/1057_to_1058/taxonomies/procedure_category.cfg +9 -0
  112. imio/smartweb/core/upgrades/profiles/1057_to_1058/taxonomies/procedure_category.xml +118 -0
  113. imio/smartweb/core/upgrades/profiles/1058_to_1059/registry/linkedin-icon.xml +126 -0
  114. imio/smartweb/core/upgrades/profiles/1059_to_1060/registry/iadeliberation.xml +9 -0
  115. imio/smartweb/core/upgrades/profiles/1060_to_1061/types/imio.smartweb.Publication.xml +38 -0
  116. imio/smartweb/core/upgrades/profiles/1060_to_1061/types/imio.smartweb.SectionFiles.xml +11 -0
  117. imio/smartweb/core/upgrades/profiles/1060_to_1061/types.xml +4 -0
  118. imio/smartweb/core/upgrades/profiles/1060_to_1061/workflows.xml +6 -0
  119. imio/smartweb/core/utils.py +33 -2
  120. imio/smartweb/core/viewlets/configure.zcml +23 -1
  121. imio/smartweb/core/viewlets/footer.pt +5 -0
  122. imio/smartweb/core/viewlets/footer.py +5 -0
  123. imio/smartweb/core/viewlets/htmx.py +15 -0
  124. imio/smartweb/core/viewlets/htmx_js_header.pt +64 -0
  125. imio/smartweb/core/viewlets/ogptags.py +4 -3
  126. imio/smartweb/core/viewlets/social.py +23 -0
  127. imio/smartweb/core/vocabularies.py +65 -3
  128. imio/smartweb/core/vocabularies.zcml +18 -0
  129. imio/smartweb/core/webcomponents/build/1c1605a5fe9a2b10a88f.png +1 -0
  130. imio/smartweb/core/webcomponents/build/524db40e119aa11f4478.png +1 -0
  131. imio/smartweb/core/webcomponents/build/57d3b7cb1ab874660b39.svg +1 -0
  132. imio/smartweb/core/webcomponents/build/6cf03871df23ed2ee8b3.png +1 -0
  133. imio/smartweb/core/webcomponents/build/css/373.smartweb-webcomponents-compiled.css +1 -1
  134. imio/smartweb/core/webcomponents/build/css/486.smartweb-webcomponents-compiled.css +1 -1
  135. imio/smartweb/core/webcomponents/build/css/884.smartweb-webcomponents-compiled.css +1 -0
  136. imio/smartweb/core/webcomponents/build/css/919.smartweb-webcomponents-compiled.css +1 -1
  137. imio/smartweb/core/webcomponents/build/css/smartweb-webcomponents-compiled.css +1 -1
  138. imio/smartweb/core/webcomponents/build/js/218.smartweb-webcomponents-compiled.js +1 -1
  139. imio/smartweb/core/webcomponents/build/js/218.smartweb-webcomponents-compiled.js.LICENSE.txt +10 -8
  140. imio/smartweb/core/webcomponents/build/js/373.smartweb-webcomponents-compiled.js +2 -1
  141. imio/smartweb/core/webcomponents/build/js/{568.smartweb-webcomponents-compiled.js.LICENSE.txt → 373.smartweb-webcomponents-compiled.js.LICENSE.txt} +0 -4
  142. imio/smartweb/core/webcomponents/build/js/486.smartweb-webcomponents-compiled.js +1 -1
  143. imio/smartweb/core/webcomponents/build/js/499.smartweb-webcomponents-compiled.js +2 -0
  144. imio/smartweb/core/webcomponents/build/js/{674.smartweb-webcomponents-compiled.js.LICENSE.txt → 499.smartweb-webcomponents-compiled.js.LICENSE.txt} +1 -8
  145. imio/smartweb/core/webcomponents/build/js/799.smartweb-webcomponents-compiled.js +1 -1
  146. imio/smartweb/core/webcomponents/build/js/824.smartweb-webcomponents-compiled.js +2 -0
  147. imio/smartweb/core/webcomponents/build/js/828.smartweb-webcomponents-compiled.js +2 -0
  148. imio/smartweb/core/webcomponents/build/js/828.smartweb-webcomponents-compiled.js.LICENSE.txt +32 -0
  149. imio/smartweb/core/webcomponents/build/js/884.smartweb-webcomponents-compiled.js +1 -0
  150. imio/smartweb/core/webcomponents/build/js/919.smartweb-webcomponents-compiled.js +1 -1
  151. imio/smartweb/core/webcomponents/build/js/{568.smartweb-webcomponents-compiled.js → 963.smartweb-webcomponents-compiled.js} +2 -2
  152. imio/smartweb/core/webcomponents/build/js/963.smartweb-webcomponents-compiled.js.LICENSE.txt +3 -0
  153. imio/smartweb/core/webcomponents/build/js/smartweb-webcomponents-compiled.js +1 -1
  154. imio/smartweb/core/webcomponents/build/js/smartweb-webcomponents-compiled.js.LICENSE.txt +11 -14
  155. imio/smartweb/core/webcomponents/package.json +42 -40
  156. imio/smartweb/core/webcomponents/src/components/Annuaire/Annuaire.jsx +146 -79
  157. imio/smartweb/core/webcomponents/src/components/Annuaire/Annuaire.scss +415 -351
  158. imio/smartweb/core/webcomponents/src/components/Annuaire/ContactCard/ContactCard.jsx +95 -62
  159. imio/smartweb/core/webcomponents/src/components/Annuaire/ContactContent/ContactContent.jsx +328 -168
  160. imio/smartweb/core/webcomponents/src/components/Annuaire/ContactList/ContactList.jsx +21 -4
  161. imio/smartweb/core/webcomponents/src/components/Annuaire/Filters/Filter.jsx +213 -100
  162. imio/smartweb/core/webcomponents/src/components/Annuaire/index.js +1 -1
  163. imio/smartweb/core/webcomponents/src/components/Events/EventCard/EventCard.jsx +76 -33
  164. imio/smartweb/core/webcomponents/src/components/Events/EventContent/EventContent.jsx +604 -377
  165. imio/smartweb/core/webcomponents/src/components/Events/EventList/EventList.jsx +29 -4
  166. imio/smartweb/core/webcomponents/src/components/Events/Events.jsx +162 -88
  167. imio/smartweb/core/webcomponents/src/components/Events/Events.scss +496 -378
  168. imio/smartweb/core/webcomponents/src/components/Events/Filters/Filter.jsx +259 -91
  169. imio/smartweb/core/webcomponents/src/components/Filters/DateFilter.jsx +62 -55
  170. imio/smartweb/core/webcomponents/src/components/Filters/DateFilter.scss +68 -17
  171. imio/smartweb/core/webcomponents/src/components/Filters/IamData.jsx +42 -0
  172. imio/smartweb/core/webcomponents/src/components/Filters/MainFilter.scss +229 -0
  173. imio/smartweb/core/webcomponents/src/components/Filters/PublicTargetData.jsx +94 -0
  174. imio/smartweb/core/webcomponents/src/components/Filters/SelectStyles.js +58 -0
  175. imio/smartweb/core/webcomponents/src/components/Filters/TaxonomyFilter.jsx +149 -0
  176. imio/smartweb/core/webcomponents/src/components/Filters/TaxonomyFilter.scss +70 -0
  177. imio/smartweb/core/webcomponents/src/components/News/Filters/Filter.jsx +139 -83
  178. imio/smartweb/core/webcomponents/src/components/News/News.jsx +133 -67
  179. imio/smartweb/core/webcomponents/src/components/News/News.scss +170 -127
  180. imio/smartweb/core/webcomponents/src/components/News/NewsCard/NewsCard.jsx +76 -44
  181. imio/smartweb/core/webcomponents/src/components/News/NewsContent/NewsContent.jsx +261 -188
  182. imio/smartweb/core/webcomponents/src/components/News/NewsList/NewsList.jsx +48 -9
  183. imio/smartweb/core/webcomponents/src/components/Search/ContactResult/ContactResult.jsx +21 -10
  184. imio/smartweb/core/webcomponents/src/components/Search/EventsResult/EventsResult.jsx +21 -10
  185. imio/smartweb/core/webcomponents/src/components/Search/Filters/Filter.jsx +8 -9
  186. imio/smartweb/core/webcomponents/src/components/Search/NewsResult/NewsResult.jsx +23 -12
  187. imio/smartweb/core/webcomponents/src/components/Search/Search.jsx +7 -6
  188. imio/smartweb/core/webcomponents/src/components/Search/Search.scss +115 -96
  189. imio/smartweb/core/webcomponents/src/components/Search/WebResult/WebResult.jsx +12 -3
  190. imio/smartweb/core/webcomponents/src/components/Search/index.js +1 -1
  191. imio/smartweb/core/webcomponents/src/hooks/ScrollContext.jsx +3 -0
  192. imio/smartweb/core/webcomponents/src/hooks/useAxios.js +3 -3
  193. imio/smartweb/core/webcomponents/src/hooks/useFilterQuery.js +1 -2
  194. imio/smartweb/core/webcomponents/src/index.scss +255 -211
  195. imio/smartweb/core/webcomponents/src/utils/Map.jsx +26 -19
  196. imio/smartweb/core/webcomponents/src/utils/Map.scss +2 -2
  197. imio/smartweb/core/webcomponents/src/utils/translation.js +129 -9
  198. imio.smartweb.core-1.2.79-py3.8-nspkg.pth +2 -0
  199. {imio.smartweb.core-1.2.38.dist-info → imio.smartweb.core-1.2.79.dist-info}/METADATA +403 -10
  200. {imio.smartweb.core-1.2.38.dist-info → imio.smartweb.core-1.2.79.dist-info}/RECORD +206 -160
  201. {imio.smartweb.core-1.2.38.dist-info → imio.smartweb.core-1.2.79.dist-info}/WHEEL +1 -1
  202. imio/smartweb/core/webcomponents/build/assets/location-bla.1423bcce16ddcb21141430cac1428dc1.svg +0 -1
  203. imio/smartweb/core/webcomponents/build/assets/next-react-white.819cb069ac8eec300a9db6a7707712d6.svg +0 -1
  204. imio/smartweb/core/webcomponents/build/assets/next-react.17bc43ff4a6a86f4520f5782f6a89a72.svg +0 -1
  205. imio/smartweb/core/webcomponents/build/assets/search.57bdbf5b191499cd77514097d1c4972c.svg +0 -1
  206. imio/smartweb/core/webcomponents/build/css/686.smartweb-webcomponents-compiled.css +0 -1
  207. imio/smartweb/core/webcomponents/build/js/209.smartweb-webcomponents-compiled.js +0 -2
  208. imio/smartweb/core/webcomponents/build/js/40.smartweb-webcomponents-compiled.js +0 -1
  209. imio/smartweb/core/webcomponents/build/js/674.smartweb-webcomponents-compiled.js +0 -2
  210. imio/smartweb/core/webcomponents/build/js/686.smartweb-webcomponents-compiled.js +0 -1
  211. imio/smartweb/core/webcomponents/src/assets/facebook-news.svg +0 -1
  212. imio/smartweb/core/webcomponents/src/assets/location-bla.svg +0 -1
  213. imio/smartweb/core/webcomponents/src/assets/next-react.svg +0 -1
  214. imio/smartweb/core/webcomponents/src/assets/search.svg +0 -1
  215. imio/smartweb/core/webcomponents/src/assets/skeleton.svg +0 -1
  216. imio/smartweb/core/webcomponents/src/components/Annuaire/ContactContent/download.svg +0 -1
  217. imio.smartweb.core-1.2.38-py3.8-nspkg.pth +0 -3
  218. /imio/smartweb/core/webcomponents/build/js/{209.smartweb-webcomponents-compiled.js.LICENSE.txt → 824.smartweb-webcomponents-compiled.js.LICENSE.txt} +0 -0
  219. {imio.smartweb.core-1.2.38.dist-info → imio.smartweb.core-1.2.79.dist-info}/LICENSE.GPL +0 -0
  220. {imio.smartweb.core-1.2.38.dist-info → imio.smartweb.core-1.2.79.dist-info}/LICENSE.rst +0 -0
  221. {imio.smartweb.core-1.2.38.dist-info → imio.smartweb.core-1.2.79.dist-info}/namespace_packages.txt +0 -0
  222. {imio.smartweb.core-1.2.38.dist-info → imio.smartweb.core-1.2.79.dist-info}/top_level.txt +0 -0
@@ -1,40 +1,90 @@
1
+ .schedul-Filter {
2
+ width: 100%;
3
+
4
+ @media screen and (min-width:630px) {
5
+ width: auto;
6
+ }
7
+ }
8
+
1
9
  .period-filter {
10
+ width: 100%;
11
+
12
+ @media screen and (min-width:630px) {
13
+ width: auto;
14
+ }
15
+
2
16
  .period-filter-toggler {
3
- & > button {
17
+ width: 100%;
18
+
19
+ @media screen and (min-width:630px) {
20
+ width: auto;
21
+ }
22
+
23
+ &>button {
24
+ display: flex;
25
+ justify-content: center;
26
+ align-items: center;
27
+ min-width: 150px;
4
28
  background: transparent;
5
29
  color: hsl(0, 0%, 20%);
6
30
  box-sizing: border-box;
7
31
  font-weight: bold;
8
- font-size: 12px;
9
- text-transform: uppercase;
10
- letter-spacing: 1.2px;
11
-
12
- -webkit-box-pack: justify;
13
- -webkit-justify-content: space-between;
14
- justify-content: space-between;
15
- min-height: 38px;
32
+ font-size: 14px;
33
+ letter-spacing: 1.4px;
34
+ text-align: left;
35
+ min-height: 30px;
16
36
  outline: 0 !important;
17
37
  position: relative;
18
38
  -webkit-transition: all 100ms;
19
39
  transition: all 100ms;
20
40
  background-color: white;
21
- border-color: hsl(0, 0%, 80%);
41
+ border-color: none;
22
42
  border-radius: 0;
23
- border-style: solid;
24
43
  border-width: 1px;
44
+ border: solid 1px #fff;
25
45
  box-sizing: border-box;
26
- height: 50px;
46
+ height: 40px;
47
+ border-radius: 10px;
48
+ width: 100%;
49
+
50
+ @media screen and (min-width:630px) {
51
+ width: auto;
52
+ }
53
+
54
+ @media screen and (max-width:629px) {
55
+ background-color: transparent;
56
+ border-color: hsl(0, 0%, 70%);
57
+ color: hsl(0, 0%, 20%);
58
+ border: solid 1px #CFCFCF;
59
+ }
60
+
27
61
  &:hover {
28
62
  background-color: transparent;
29
63
  border-color: hsl(0, 0%, 70%);
30
64
  color: hsl(0, 0%, 20%);
65
+ border: solid 1px #CFCFCF;
31
66
  }
67
+
32
68
  &:focus,
33
69
  &:active {
34
- border-color: #2684FF!important;
35
- background: transparent!important;
36
- color: hsl(0, 0%, 20%)!important;
37
- box-shadow: 0 0 0 1px #2684FF!important;
70
+ border-color: #2684FF !important;
71
+ background: transparent !important;
72
+ color: hsl(0, 0%, 20%) !important;
73
+ box-shadow: 0 0 0 2px #2684FF !important;
74
+ }
75
+
76
+ &:after {
77
+ content: "";
78
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='20' width='20' viewBox='0 0 20 20' aria-hidden='true' focusable='false' fill='%23CFCFCF' class='css-tj5bde-Svg'%3E%3Cpath d='M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z'%3E%3C/path%3E%3C/svg%3E");
79
+ display: inline-block;
80
+ width: 20px;
81
+ height: 20px;
82
+ background-repeat: no-repeat;
83
+ border: inherit;
84
+ border-color: transparent;
85
+ background-position: center;
86
+ vertical-align: bottom;
87
+ margin-left: auto;
38
88
  }
39
89
  }
40
90
  }
@@ -43,11 +93,12 @@
43
93
 
44
94
  .perdiod-filter-range {
45
95
  padding: 5px 16px;
96
+
46
97
  input {
47
98
  border: solid 1px hsl(0, 0%, 42%) !important;
48
99
  border-radius: 5px;
49
100
  padding: 5px 9px;
50
101
  color: hsl(0, 0%, 20%);
51
- border: solid 1px hsl(0, 0%, 70%)!important;
102
+ border: solid 1px hsl(0, 0%, 70%) !important;
52
103
  }
53
104
  }
@@ -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,229 @@
1
+ .r-result-filter-container {
2
+ z-index: 1;
3
+ background: #fff;
4
+ @media screen and (min-width: 1200px) {
5
+ position: sticky;
6
+ }
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:
63
+ 0 3px 12px 0 rgba(0, 0, 0, 0.1),
64
+ 0 1px 2px 0 rgba(0, 0, 0, 0.05);
65
+ }
66
+ }
67
+
68
+ .react-sep-menu {
69
+ display: none;
70
+ background: #cfcfcf;
71
+ width: 1px;
72
+ height: 20px;
73
+
74
+ @media screen and (min-width: 630px) {
75
+ display: block;
76
+ }
77
+ }
78
+
79
+ span[class$="-indicatorSeparator"] {
80
+ display: none;
81
+ }
82
+
83
+ div[class$="-indicatorContainer"] {
84
+ padding: 0;
85
+ }
86
+
87
+ .accordion-collapse {
88
+ padding-top: 1rem;
89
+ }
90
+
91
+ .top-filter {
92
+ width: 100%;
93
+
94
+ @media screen and (min-width: 630px) {
95
+ width: auto;
96
+ }
97
+
98
+ .select-custom-no-border {
99
+ width: 100%;
100
+
101
+ @media screen and (min-width: 630px) {
102
+ width: auto;
103
+ }
104
+
105
+ div[class$="-control"] {
106
+ width: 100%;
107
+
108
+ @media screen and (max-width: 629px) {
109
+ border-color: hsl(0, 0%, 70%);
110
+ color: hsl(0, 0%, 20%);
111
+ border: solid 1px #cfcfcf;
112
+ }
113
+
114
+ @media screen and (min-width: 630px) {
115
+ width: auto;
116
+ }
117
+ }
118
+ }
119
+ }
120
+ }
121
+
122
+ // react search bar
123
+
124
+ .r-filter-search {
125
+ position: relative;
126
+ padding: 12px 6px;
127
+ border-radius: 50px;
128
+ display: block;
129
+ width: 100%;
130
+
131
+ @media screen and (max-width: 629px) {
132
+ width: calc(100% - 40px);
133
+ border: solid 1px #cfcfcf;
134
+ box-shadow:
135
+ 0 3px 12px 0 rgba(0, 0, 0, 0.1),
136
+ 0 1px 2px 0 rgba(0, 0, 0, 0.05);
137
+ }
138
+
139
+ @media screen and (min-width: 630px) {
140
+ width: 175px;
141
+ }
142
+
143
+ input {
144
+ border: none;
145
+ width: 100%;
146
+
147
+ &:focus {
148
+ outline: none;
149
+ }
150
+ }
151
+
152
+ svg {
153
+ position: absolute;
154
+ transform: translateX(-100%);
155
+ right: 0;
156
+ }
157
+
158
+ .relative {
159
+ display: flex;
160
+ justify-content: center;
161
+ align-items: center;
162
+ }
163
+ }
164
+
165
+ // // More filters
166
+
167
+ .more-filter-btn {
168
+ background-color: transparent;
169
+ border: none;
170
+ position: absolute;
171
+ right: 0;
172
+ top: 18px;
173
+
174
+ @media screen and (min-width: 630px) {
175
+ width: auto;
176
+ translate: 40px;
177
+ top: inherit;
178
+ }
179
+
180
+ &.collapsed {
181
+ transform: rotate(180deg);
182
+
183
+ svg {
184
+ stroke: #9f9f9f;
185
+ }
186
+ }
187
+ }
188
+
189
+ .more-filter-container {
190
+ &.collapse:not(.show) {
191
+ display: none;
192
+ }
193
+
194
+ .accordion-body {
195
+ display: flex;
196
+ gap: 20px;
197
+ align-items: center;
198
+ padding: 1rem;
199
+ background-color: #f8f8f8;
200
+ justify-content: center;
201
+ border: solid 1px #e4e4e4;
202
+ border-left: none;
203
+ border-right: none;
204
+
205
+ @media screen and (max-width: 630px) {
206
+ display: flex;
207
+ flex-direction: column;
208
+ }
209
+ }
210
+
211
+ .free-Filter {
212
+ label {
213
+ font-size: 12px;
214
+ font-weight: bold;
215
+ letter-spacing: 1.4px;
216
+ }
217
+
218
+ .form-check {
219
+ display: flex;
220
+ align-items: center;
221
+ gap: 5px;
222
+ padding: 0;
223
+
224
+ input {
225
+ margin: 0;
226
+ }
227
+ }
228
+ }
229
+ }
@@ -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;