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.
- imio/smartweb/core/behaviors/categorization.py +24 -0
- imio/smartweb/core/behaviors/configure.zcml +7 -0
- imio/smartweb/core/browser/configure.zcml +41 -1
- imio/smartweb/core/browser/controlpanel.py +41 -0
- imio/smartweb/core/browser/dashboards/configure.zcml +0 -2
- imio/smartweb/core/browser/dashboards/plausible.py +4 -4
- imio/smartweb/core/browser/faceted/block_view.pt +4 -4
- imio/smartweb/core/browser/faceted/summary_view.pt +4 -4
- imio/smartweb/core/browser/forms.py +3 -3
- imio/smartweb/core/browser/redirect_to_main_react_view.py +52 -0
- imio/smartweb/core/browser/search/search.pt +2 -1
- imio/smartweb/core/browser/search/search.py +4 -0
- imio/smartweb/core/browser/sitemap.py +148 -0
- imio/smartweb/core/browser/static/icons/action-delete.svg +3 -0
- imio/smartweb/core/browser/static/icons/action-e-guichet.svg +1 -1
- imio/smartweb/core/browser/static/icons/action-email.svg +1 -1
- imio/smartweb/core/browser/static/icons/action-engagement-2.svg +4 -0
- imio/smartweb/core/browser/static/icons/action-engagement.svg +1 -1
- imio/smartweb/core/browser/static/icons/action-nous-contacter.svg +1 -1
- imio/smartweb/core/browser/static/icons/action-nous-rejoindre.svg +2 -1
- imio/smartweb/core/browser/static/icons/action-organiser-un-evenement.svg +1 -1
- imio/smartweb/core/browser/static/icons/action-panneaux.svg +3 -0
- imio/smartweb/core/browser/static/icons/action-signaler-un-probleme.svg +1 -1
- imio/smartweb/core/browser/static/icons/action-voir-plan.svg +1 -1
- imio/smartweb/core/browser/static/icons/action-vote.svg +3 -0
- imio/smartweb/core/browser/static/icons/categorie-associations.svg +1 -1
- imio/smartweb/core/browser/static/icons/categorie-attention.svg +3 -0
- imio/smartweb/core/browser/static/icons/categorie-avis-et-enquetes.svg +1 -1
- imio/smartweb/core/browser/static/icons/categorie-cinema.svg +1 -1
- imio/smartweb/core/browser/static/icons/categorie-commerce.svg +1 -1
- imio/smartweb/core/browser/static/icons/categorie-concert.svg +1 -1
- imio/smartweb/core/browser/static/icons/categorie-culture.svg +1 -1
- imio/smartweb/core/browser/static/icons/categorie-demarches.svg +1 -1
- imio/smartweb/core/browser/static/icons/categorie-enfance.svg +1 -1
- imio/smartweb/core/browser/static/icons/categorie-enseignement.svg +1 -1
- imio/smartweb/core/browser/static/icons/categorie-environnement-gestion-des-dechets.svg +1 -1
- imio/smartweb/core/browser/static/icons/categorie-exposition.svg +1 -1
- imio/smartweb/core/browser/static/icons/categorie-horaires.svg +1 -1
- imio/smartweb/core/browser/static/icons/categorie-infos-travaux-2.svg +4 -0
- imio/smartweb/core/browser/static/icons/categorie-infos-travaux.svg +1 -1
- imio/smartweb/core/browser/static/icons/categorie-mandataires.svg +1 -1
- imio/smartweb/core/browser/static/icons/categorie-mobilite.svg +1 -1
- imio/smartweb/core/browser/static/icons/categorie-mon-dossier.svg +1 -1
- imio/smartweb/core/browser/static/icons/categorie-nature.svg +3 -0
- imio/smartweb/core/browser/static/icons/categorie-parc-de-stationnement.svg +1 -1
- imio/smartweb/core/browser/static/icons/categorie-parcs-a-conteneurs.svg +4 -0
- imio/smartweb/core/browser/static/icons/categorie-parcs-et-jardins.svg +1 -1
- imio/smartweb/core/browser/static/icons/categorie-plus.svg +3 -0
- imio/smartweb/core/browser/static/icons/categorie-primes-2.svg +5 -0
- imio/smartweb/core/browser/static/icons/categorie-primes.svg +1 -1
- imio/smartweb/core/browser/static/icons/categorie-sport-courir.svg +1 -1
- imio/smartweb/core/browser/static/icons/categorie-sport-natation.svg +4 -0
- imio/smartweb/core/browser/static/icons/categorie-sport-velo.svg +1 -1
- imio/smartweb/core/browser/static/icons/categorie-tourisme.svg +1 -1
- imio/smartweb/core/browser/static/icons/organisation-academie-musique.svg +1 -1
- imio/smartweb/core/browser/static/icons/organisation-centre-sportif.svg +1 -1
- imio/smartweb/core/browser/static/icons/organisation-cpas.svg +1 -1
- imio/smartweb/core/browser/static/icons/organisation-ecole-des-arts.svg +1 -1
- imio/smartweb/core/browser/static/icons/organisation-ecole-sac.svg +4 -0
- imio/smartweb/core/browser/static/icons/organisation-ecole.svg +1 -1
- imio/smartweb/core/browser/static/icons/organisation-mobilite.svg +1 -1
- imio/smartweb/core/browser/static/icons/organisation-scout.svg +3 -0
- imio/smartweb/core/browser/static/icons/reseausocial-behance.svg +3 -0
- imio/smartweb/core/browser/static/icons/reseausocial-facebook.svg +1 -1
- imio/smartweb/core/browser/static/icons/reseausocial-linkedin.svg +3 -0
- imio/smartweb/core/browser/static/icons/reseausocial-twitter.svg +3 -13
- imio/smartweb/core/browser/static/icons/reseausocial-vimeo.svg +1 -1
- imio/smartweb/core/browser/static/icons/reseausocial-youtube.svg +1 -1
- imio/smartweb/core/browser/static/icons/vue-actualites.svg +1 -1
- imio/smartweb/core/browser/static/icons/vue-agenda.svg +1 -1
- imio/smartweb/core/browser/static/icons/vue-annuaire.svg +1 -1
- imio/smartweb/core/browser/static/smartweb-edit-compiled.css +1 -1
- imio/smartweb/core/browser/static/smartweb-edit-compiled.js +1 -1
- imio/smartweb/core/browser/static/smartweb-view-compiled.css +1 -1
- imio/smartweb/core/browser/static/smartweb-view-compiled.js +1 -1
- imio/smartweb/core/browser/static/src/edit.js +5 -0
- imio/smartweb/core/browser/static/src/edit.less +42 -0
- imio/smartweb/core/browser/static/src/view.js +11 -0
- imio/smartweb/core/browser/static/src/view.less +4 -0
- imio/smartweb/core/browser/utils.py +5 -32
- imio/smartweb/core/browser/vocabulary.py +40 -0
- imio/smartweb/core/contents/__init__.py +4 -0
- imio/smartweb/core/contents/configure.zcml +1 -0
- imio/smartweb/core/contents/cropping.py +1 -1
- imio/smartweb/core/contents/folder/block_view.pt +8 -8
- imio/smartweb/core/contents/folder/summary_view.pt +4 -4
- imio/smartweb/core/contents/pages/cirkwi/content.py +5 -0
- imio/smartweb/core/contents/pages/cirkwi/view.py +2 -1
- imio/smartweb/core/contents/pages/portal_page/view.py +3 -0
- imio/smartweb/core/contents/pages/views.py +3 -1
- imio/smartweb/core/contents/publication/configure.zcml +5 -0
- imio/smartweb/core/contents/publication/content.py +23 -0
- imio/smartweb/core/contents/rest/base.py +24 -10
- imio/smartweb/core/contents/rest/configure.zcml +7 -0
- imio/smartweb/core/contents/rest/directory/content.py +2 -2
- imio/smartweb/core/contents/rest/directory/endpoint.py +2 -2
- imio/smartweb/core/contents/rest/directory/view.pt +3 -1
- imio/smartweb/core/contents/rest/directory/view.py +3 -0
- imio/smartweb/core/contents/rest/events/content.py +15 -2
- imio/smartweb/core/contents/rest/events/endpoint.py +5 -7
- imio/smartweb/core/contents/rest/events/view.pt +6 -1
- imio/smartweb/core/contents/rest/events/view.py +15 -0
- imio/smartweb/core/contents/rest/news/content.py +8 -2
- imio/smartweb/core/contents/rest/news/endpoint.py +4 -2
- imio/smartweb/core/contents/rest/news/view.pt +5 -1
- imio/smartweb/core/contents/rest/news/view.py +11 -0
- imio/smartweb/core/contents/rest/search/endpoint.py +4 -4
- imio/smartweb/core/contents/rest/traversal.py +18 -0
- imio/smartweb/core/contents/rest/utils.py +98 -0
- imio/smartweb/core/contents/rest/view.py +11 -0
- imio/smartweb/core/contents/sections/common_templates/carousel.pt +6 -2
- imio/smartweb/core/contents/sections/common_templates/table.pt +22 -8
- imio/smartweb/core/contents/sections/configure.zcml +18 -0
- imio/smartweb/core/contents/sections/contact/content.py +2 -2
- imio/smartweb/core/contents/sections/contact/utils.py +2 -154
- imio/smartweb/core/contents/sections/events/content.py +12 -4
- imio/smartweb/core/contents/sections/events/view.py +20 -2
- imio/smartweb/core/contents/sections/external_content/configure.zcml +29 -0
- imio/smartweb/core/contents/sections/external_content/view.pt +25 -7
- imio/smartweb/core/contents/sections/external_content/view_idelux_waste.pt +50 -0
- imio/smartweb/core/contents/sections/external_content/view_inbw_containers_affluence.pt +91 -0
- imio/smartweb/core/contents/sections/external_content/view_odwb_widget.pt +20 -0
- imio/smartweb/core/contents/sections/external_content/views.py +306 -125
- imio/smartweb/core/contents/sections/files/content.py +7 -1
- imio/smartweb/core/contents/sections/files/view.py +40 -12
- imio/smartweb/core/contents/sections/links/view.py +5 -0
- imio/smartweb/core/contents/sections/macros.pt +39 -9
- imio/smartweb/core/contents/sections/news/content.py +11 -3
- imio/smartweb/core/contents/sections/news/view.py +20 -2
- imio/smartweb/core/contents/sections/text/view.pt +5 -4
- imio/smartweb/core/contents/sections/text/views.py +2 -0
- imio/smartweb/core/contents/sections/views.py +81 -4
- imio/smartweb/core/interfaces.py +15 -0
- imio/smartweb/core/profiles/default/actions.xml +15 -0
- imio/smartweb/core/profiles/default/diff_tool.xml +8 -0
- imio/smartweb/core/profiles/default/metadata.xml +1 -1
- imio/smartweb/core/profiles/default/registry/plone.xml +21 -4
- imio/smartweb/core/profiles/default/repositorytool.xml +1 -0
- imio/smartweb/core/profiles/default/taxonomies/page_category.xml +16 -0
- imio/smartweb/core/profiles/default/taxonomies/procedure_category.xml +26 -0
- imio/smartweb/core/profiles/default/types/Collection.xml +13 -0
- imio/smartweb/core/profiles/default/types/File.xml +13 -0
- imio/smartweb/core/profiles/default/types/Image.xml +13 -0
- imio/smartweb/core/profiles/default/types/imio.smartweb.BlockLink.xml +5 -0
- imio/smartweb/core/profiles/default/types/imio.smartweb.CirkwiView.xml +1 -0
- imio/smartweb/core/profiles/default/types/imio.smartweb.DirectoryView.xml +1 -0
- imio/smartweb/core/profiles/default/types/imio.smartweb.EventsView.xml +2 -0
- imio/smartweb/core/profiles/default/types/imio.smartweb.Folder.xml +1 -0
- imio/smartweb/core/profiles/default/types/imio.smartweb.NewsView.xml +2 -0
- imio/smartweb/core/profiles/default/types/imio.smartweb.Page.xml +1 -0
- imio/smartweb/core/profiles/default/types/imio.smartweb.PortalPage.xml +1 -0
- imio/smartweb/core/profiles/default/types/imio.smartweb.Procedure.xml +1 -0
- imio/smartweb/core/profiles/default/types/imio.smartweb.Publication.xml +38 -0
- imio/smartweb/core/profiles/default/types/imio.smartweb.SectionEvents.xml +1 -0
- imio/smartweb/core/profiles/default/types/imio.smartweb.SectionFiles.xml +2 -0
- imio/smartweb/core/profiles/default/types/imio.smartweb.SectionHTML.xml +0 -1
- imio/smartweb/core/profiles/default/types/imio.smartweb.SectionNews.xml +1 -0
- imio/smartweb/core/profiles/default/types.xml +1 -0
- imio/smartweb/core/profiles/icons/basic/registry.xml +120 -0
- imio/smartweb/core/profiles/testing/types/imio.smartweb.DirectoryView.xml +11 -0
- imio/smartweb/core/profiles/testing/types/imio.smartweb.EventsView.xml +11 -0
- imio/smartweb/core/profiles/testing/types/imio.smartweb.NewsView.xml +11 -0
- imio/smartweb/core/profiles/validation/contentrules.xml +102 -0
- imio/smartweb/core/profiles.zcml +8 -0
- imio/smartweb/core/rest/authentic_sources.py +23 -11
- imio/smartweb/core/subscribers.py +24 -0
- imio/smartweb/core/subscribers.zcml +4 -0
- imio/smartweb/core/tests/resources/json_iadeliberations_institutions.json +60 -0
- imio/smartweb/core/tests/resources/json_iadeliberations_publication.json +105 -0
- imio/smartweb/core/tests/resources/json_iadeliberations_publications.json +270 -0
- imio/smartweb/core/tests/resources/json_rest_events.json +6 -2
- imio/smartweb/core/tests/resources/json_rest_news.json +2 -2
- imio/smartweb/core/tests/resources/json_rest_specific_events.json +1 -1
- imio/smartweb/core/tests/test_cropping.py +4 -4
- imio/smartweb/core/tests/test_htmx_in_sections.py +131 -0
- imio/smartweb/core/tests/test_iadeliberations.py +136 -0
- imio/smartweb/core/tests/test_icons.py +1 -1
- imio/smartweb/core/tests/test_redirect_to_main_react_view.py +79 -0
- imio/smartweb/core/tests/test_rest.py +283 -22
- imio/smartweb/core/tests/test_section_contact.py +2 -2
- imio/smartweb/core/tests/test_section_events.py +28 -5
- imio/smartweb/core/tests/test_section_external_content.py +26 -25
- imio/smartweb/core/tests/test_section_news.py +30 -8
- imio/smartweb/core/tests/test_sections.py +38 -15
- imio/smartweb/core/tests/test_sitemap.py +174 -0
- imio/smartweb/core/tests/test_vocabularies.py +61 -4
- imio/smartweb/core/tests/test_vocabulary.py +43 -0
- imio/smartweb/core/tests/utils.py +15 -0
- imio/smartweb/core/upgrades/configure.zcml +180 -0
- imio/smartweb/core/upgrades/profiles/1051_to_1052/actions.xml +20 -0
- imio/smartweb/core/upgrades/profiles/1052_to_1053/diff_tool.xml +8 -0
- imio/smartweb/core/upgrades/profiles/1052_to_1053/repositorytool.xml +9 -0
- imio/smartweb/core/upgrades/profiles/1052_to_1053/types/imio.smartweb.SectionHTML.xml +14 -0
- imio/smartweb/core/upgrades/profiles/1053_to_1054/registry.xml +39 -0
- imio/smartweb/core/upgrades/profiles/1054_to_1055/types/Collection.xml +13 -0
- imio/smartweb/core/upgrades/profiles/1054_to_1055/types/File.xml +13 -0
- imio/smartweb/core/upgrades/profiles/1054_to_1055/types/Image.xml +13 -0
- imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.BlockLink.xml +12 -0
- imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.CirkwiView.xml +12 -0
- imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.DirectoryView.xml +12 -0
- imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.EventsView.xml +12 -0
- imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.Folder.xml +12 -0
- imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.NewsView.xml +12 -0
- imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.Page.xml +12 -0
- imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.PortalPage.xml +12 -0
- imio/smartweb/core/upgrades/profiles/1054_to_1055/types/imio.smartweb.Procedure.xml +12 -0
- imio/smartweb/core/upgrades/profiles/1055_to_1056/types/imio.smartweb.SectionFiles.xml +12 -0
- imio/smartweb/core/upgrades/profiles/1056_to_1057/types/imio.smartweb.EventsView.xml +11 -0
- imio/smartweb/core/upgrades/profiles/1056_to_1057/types/imio.smartweb.NewsView.xml +11 -0
- imio/smartweb/core/upgrades/profiles/1056_to_1057/types/imio.smartweb.SectionEvents.xml +11 -0
- imio/smartweb/core/upgrades/profiles/1056_to_1057/types/imio.smartweb.SectionNews.xml +11 -0
- imio/smartweb/core/upgrades/profiles/1057_to_1058/taxonomies/page_category.cfg +9 -0
- imio/smartweb/core/upgrades/profiles/1057_to_1058/taxonomies/page_category.xml +73 -0
- imio/smartweb/core/upgrades/profiles/1057_to_1058/taxonomies/procedure_category.cfg +9 -0
- imio/smartweb/core/upgrades/profiles/1057_to_1058/taxonomies/procedure_category.xml +118 -0
- imio/smartweb/core/upgrades/profiles/1058_to_1059/registry/linkedin-icon.xml +126 -0
- imio/smartweb/core/upgrades/profiles/1059_to_1060/registry/iadeliberation.xml +9 -0
- imio/smartweb/core/upgrades/profiles/1060_to_1061/types/imio.smartweb.Publication.xml +38 -0
- imio/smartweb/core/upgrades/profiles/1060_to_1061/types/imio.smartweb.SectionFiles.xml +11 -0
- imio/smartweb/core/upgrades/profiles/1060_to_1061/types.xml +4 -0
- imio/smartweb/core/upgrades/profiles/1060_to_1061/workflows.xml +6 -0
- imio/smartweb/core/utils.py +65 -3
- imio/smartweb/core/viewlets/configure.zcml +43 -0
- imio/smartweb/core/viewlets/external_content.py +13 -5
- imio/smartweb/core/viewlets/footer.pt +5 -0
- imio/smartweb/core/viewlets/footer.py +5 -0
- imio/smartweb/core/viewlets/htmx.py +15 -0
- imio/smartweb/core/viewlets/htmx_js_header.pt +59 -0
- imio/smartweb/core/viewlets/httpheaders.py +13 -0
- imio/smartweb/core/viewlets/odwb_widget_header.pt +19 -0
- imio/smartweb/core/viewlets/offcanvas.pt +2 -1
- imio/smartweb/core/viewlets/ogp_tag_header.pt +19 -0
- imio/smartweb/core/viewlets/ogptags.py +144 -0
- imio/smartweb/core/viewlets/social.py +23 -0
- imio/smartweb/core/vocabularies.py +66 -2
- imio/smartweb/core/vocabularies.zcml +18 -0
- imio/smartweb/core/webcomponents/build/1c1605a5fe9a2b10a88f.png +1 -0
- imio/smartweb/core/webcomponents/build/524db40e119aa11f4478.png +1 -0
- imio/smartweb/core/webcomponents/build/57d3b7cb1ab874660b39.svg +1 -0
- imio/smartweb/core/webcomponents/build/6cf03871df23ed2ee8b3.png +1 -0
- imio/smartweb/core/webcomponents/build/css/373.smartweb-webcomponents-compiled.css +1 -0
- imio/smartweb/core/webcomponents/build/css/486.smartweb-webcomponents-compiled.css +1 -0
- imio/smartweb/core/webcomponents/build/css/884.smartweb-webcomponents-compiled.css +1 -0
- imio/smartweb/core/webcomponents/build/css/919.smartweb-webcomponents-compiled.css +1 -0
- imio/smartweb/core/webcomponents/build/css/smartweb-webcomponents-compiled.css +1 -1
- imio/smartweb/core/webcomponents/build/js/218.smartweb-webcomponents-compiled.js +2 -0
- imio/smartweb/core/webcomponents/build/js/218.smartweb-webcomponents-compiled.js.LICENSE.txt +16 -0
- imio/smartweb/core/webcomponents/build/js/373.smartweb-webcomponents-compiled.js +2 -0
- imio/smartweb/core/webcomponents/build/js/373.smartweb-webcomponents-compiled.js.LICENSE.txt +10 -0
- imio/smartweb/core/webcomponents/build/js/486.smartweb-webcomponents-compiled.js +1 -0
- imio/smartweb/core/webcomponents/build/js/499.smartweb-webcomponents-compiled.js +2 -0
- imio/smartweb/core/webcomponents/build/js/{212.smartweb-webcomponents-compiled.js.LICENSE.txt → 499.smartweb-webcomponents-compiled.js.LICENSE.txt} +1 -8
- imio/smartweb/core/webcomponents/build/js/799.smartweb-webcomponents-compiled.js +2 -0
- imio/smartweb/core/webcomponents/build/js/824.smartweb-webcomponents-compiled.js +2 -0
- imio/smartweb/core/webcomponents/build/js/828.smartweb-webcomponents-compiled.js +2 -0
- imio/smartweb/core/webcomponents/build/js/828.smartweb-webcomponents-compiled.js.LICENSE.txt +32 -0
- imio/smartweb/core/webcomponents/build/js/884.smartweb-webcomponents-compiled.js +1 -0
- imio/smartweb/core/webcomponents/build/js/919.smartweb-webcomponents-compiled.js +1 -0
- imio/smartweb/core/webcomponents/build/js/963.smartweb-webcomponents-compiled.js +2 -0
- imio/smartweb/core/webcomponents/build/js/963.smartweb-webcomponents-compiled.js.LICENSE.txt +3 -0
- imio/smartweb/core/webcomponents/build/js/smartweb-webcomponents-compiled.js +1 -1
- imio/smartweb/core/webcomponents/build/js/smartweb-webcomponents-compiled.js.LICENSE.txt +11 -14
- imio/smartweb/core/webcomponents/package.json +46 -44
- imio/smartweb/core/webcomponents/src/assets/contentIcon/download.svg +1 -0
- imio/smartweb/core/webcomponents/src/components/Annuaire/Annuaire.jsx +160 -92
- imio/smartweb/core/webcomponents/src/components/Annuaire/Annuaire.scss +250 -157
- imio/smartweb/core/webcomponents/src/components/Annuaire/ContactCard/ContactCard.jsx +113 -81
- imio/smartweb/core/webcomponents/src/components/Annuaire/ContactContent/ContactContent.jsx +394 -188
- imio/smartweb/core/webcomponents/src/components/Annuaire/ContactList/ContactList.jsx +26 -9
- imio/smartweb/core/webcomponents/src/components/Annuaire/Filters/Filter.jsx +213 -100
- imio/smartweb/core/webcomponents/src/components/Annuaire/index.js +1 -1
- imio/smartweb/core/webcomponents/src/components/Events/EventCard/EventCard.jsx +86 -0
- imio/smartweb/core/webcomponents/src/components/Events/EventContent/EventContent.jsx +615 -0
- imio/smartweb/core/webcomponents/src/components/Events/EventList/EventList.jsx +67 -0
- imio/smartweb/core/webcomponents/src/components/Events/Events.jsx +181 -103
- imio/smartweb/core/webcomponents/src/components/Events/Events.scss +316 -182
- imio/smartweb/core/webcomponents/src/components/Events/Filters/Filter.jsx +275 -80
- imio/smartweb/core/webcomponents/src/components/Filters/DateFilter.jsx +136 -0
- imio/smartweb/core/webcomponents/src/components/Filters/DateFilter.scss +104 -0
- imio/smartweb/core/webcomponents/src/components/Filters/IamData.jsx +42 -0
- imio/smartweb/core/webcomponents/src/components/Filters/MainFilter.scss +227 -0
- imio/smartweb/core/webcomponents/src/components/Filters/PublicTargetData.jsx +94 -0
- imio/smartweb/core/webcomponents/src/components/Filters/SelectStyles.js +58 -0
- imio/smartweb/core/webcomponents/src/components/Filters/TaxonomyFilter.jsx +149 -0
- imio/smartweb/core/webcomponents/src/components/Filters/TaxonomyFilter.scss +70 -0
- imio/smartweb/core/webcomponents/src/components/News/Filters/Filter.jsx +139 -83
- imio/smartweb/core/webcomponents/src/components/News/News.jsx +141 -74
- imio/smartweb/core/webcomponents/src/components/News/News.scss +41 -15
- imio/smartweb/core/webcomponents/src/components/News/NewsCard/NewsCard.jsx +96 -0
- imio/smartweb/core/webcomponents/src/components/News/NewsContent/NewsContent.jsx +309 -0
- imio/smartweb/core/webcomponents/src/components/News/NewsList/NewsList.jsx +76 -0
- imio/smartweb/core/webcomponents/src/components/Search/ContactResult/ContactResult.jsx +28 -14
- imio/smartweb/core/webcomponents/src/components/Search/EventsResult/EventsResult.jsx +28 -14
- imio/smartweb/core/webcomponents/src/components/Search/Filters/Filter.jsx +51 -32
- imio/smartweb/core/webcomponents/src/components/Search/NewsResult/NewsResult.jsx +29 -15
- imio/smartweb/core/webcomponents/src/components/Search/Search.jsx +18 -13
- imio/smartweb/core/webcomponents/src/components/Search/Search.scss +125 -105
- imio/smartweb/core/webcomponents/src/components/Search/WebResult/WebResult.jsx +19 -6
- imio/smartweb/core/webcomponents/src/components/Search/index.js +1 -1
- imio/smartweb/core/webcomponents/src/hooks/ScrollContext.jsx +3 -0
- imio/smartweb/core/webcomponents/src/hooks/useAxios.js +3 -6
- imio/smartweb/core/webcomponents/src/hooks/useFilterQuery.js +1 -2
- imio/smartweb/core/webcomponents/src/index.scss +246 -211
- imio/smartweb/core/webcomponents/src/utils/Map.jsx +159 -0
- imio/smartweb/core/webcomponents/src/{components/Annuaire/ContactMap/ContactMap.scss → utils/Map.scss} +2 -2
- imio/smartweb/core/webcomponents/src/utils/translation.js +283 -14
- imio.smartweb.core-1.2.68-py3.11-nspkg.pth +2 -0
- {imio.smartweb.core-1.2.12.dist-info → imio.smartweb.core-1.2.68.dist-info}/METADATA +548 -3
- {imio.smartweb.core-1.2.12.dist-info → imio.smartweb.core-1.2.68.dist-info}/RECORD +317 -240
- {imio.smartweb.core-1.2.12.dist-info → imio.smartweb.core-1.2.68.dist-info}/WHEEL +1 -1
- imio/smartweb/core/webcomponents/build/assets/location-bla.1423bcce16ddcb21141430cac1428dc1.svg +0 -1
- imio/smartweb/core/webcomponents/build/assets/next-react-white.819cb069ac8eec300a9db6a7707712d6.svg +0 -1
- imio/smartweb/core/webcomponents/build/assets/next-react.17bc43ff4a6a86f4520f5782f6a89a72.svg +0 -1
- imio/smartweb/core/webcomponents/build/assets/search.57bdbf5b191499cd77514097d1c4972c.svg +0 -1
- imio/smartweb/core/webcomponents/build/css/267.smartweb-webcomponents-compiled.css +0 -1
- imio/smartweb/core/webcomponents/build/css/323.smartweb-webcomponents-compiled.css +0 -1
- imio/smartweb/core/webcomponents/build/css/552.smartweb-webcomponents-compiled.css +0 -1
- imio/smartweb/core/webcomponents/build/css/779.smartweb-webcomponents-compiled.css +0 -1
- imio/smartweb/core/webcomponents/build/js/144.smartweb-webcomponents-compiled.js +0 -2
- imio/smartweb/core/webcomponents/build/js/212.smartweb-webcomponents-compiled.js +0 -2
- imio/smartweb/core/webcomponents/build/js/267.smartweb-webcomponents-compiled.js +0 -1
- imio/smartweb/core/webcomponents/build/js/323.smartweb-webcomponents-compiled.js +0 -2
- imio/smartweb/core/webcomponents/build/js/323.smartweb-webcomponents-compiled.js.LICENSE.txt +0 -1
- imio/smartweb/core/webcomponents/build/js/552.smartweb-webcomponents-compiled.js +0 -2
- imio/smartweb/core/webcomponents/build/js/552.smartweb-webcomponents-compiled.js.LICENSE.txt +0 -1
- imio/smartweb/core/webcomponents/build/js/565.smartweb-webcomponents-compiled.js +0 -1
- imio/smartweb/core/webcomponents/build/js/612.smartweb-webcomponents-compiled.js +0 -2
- imio/smartweb/core/webcomponents/build/js/612.smartweb-webcomponents-compiled.js.LICENSE.txt +0 -1
- imio/smartweb/core/webcomponents/build/js/779.smartweb-webcomponents-compiled.js +0 -1
- imio/smartweb/core/webcomponents/build/js/9.smartweb-webcomponents-compiled.js +0 -2
- imio/smartweb/core/webcomponents/build/js/969.smartweb-webcomponents-compiled.js +0 -2
- imio/smartweb/core/webcomponents/build/js/969.smartweb-webcomponents-compiled.js.LICENSE.txt +0 -642
- imio/smartweb/core/webcomponents/pnpm-lock.yaml +0 -7066
- imio/smartweb/core/webcomponents/src/assets/facebook-news.svg +0 -1
- imio/smartweb/core/webcomponents/src/assets/location-bla.svg +0 -1
- imio/smartweb/core/webcomponents/src/assets/next-react.svg +0 -1
- imio/smartweb/core/webcomponents/src/assets/search.svg +0 -1
- imio/smartweb/core/webcomponents/src/assets/skeleton.svg +0 -1
- imio/smartweb/core/webcomponents/src/components/Annuaire/ContactMap/ContactMap.jsx +0 -156
- imio/smartweb/core/webcomponents/src/components/Annuaire/Skeleton/LoaderCss.jsx +0 -7
- imio/smartweb/core/webcomponents/src/components/Annuaire/Skeleton/Skeleton.jsx +0 -20
- imio/smartweb/core/webcomponents/src/components/Events/ContactCard/ContactCard.jsx +0 -49
- imio/smartweb/core/webcomponents/src/components/Events/ContactContent/ContactContent.jsx +0 -400
- imio/smartweb/core/webcomponents/src/components/Events/ContactList/ContactList.jsx +0 -42
- imio/smartweb/core/webcomponents/src/components/Events/ContactMap/ContactMap.jsx +0 -156
- imio/smartweb/core/webcomponents/src/components/Events/Skeleton/Skeleton.jsx +0 -20
- imio/smartweb/core/webcomponents/src/components/News/ContactCard/ContactCard.jsx +0 -78
- imio/smartweb/core/webcomponents/src/components/News/ContactContent/ContactContent.jsx +0 -261
- imio/smartweb/core/webcomponents/src/components/News/ContactList/ContactList.jsx +0 -37
- imio/smartweb/core/webcomponents/src/components/News/ContactMap/ContactMap.jsx +0 -127
- imio/smartweb/core/webcomponents/src/components/News/ContactMap/ContactMap.scss +0 -4
- imio/smartweb/core/webcomponents/src/components/News/Skeleton/Skeleton.jsx +0 -20
- imio/smartweb/core/webcomponents/src/components/Search/Skeleton/Skeleton.jsx +0 -20
- imio.smartweb.core-1.2.12-py3.10-nspkg.pth +0 -3
- /imio/smartweb/core/{webcomponents/src/components/Events/ContactMap/ContactMap.scss → contents/publication/__init__.py} +0 -0
- /imio/smartweb/core/webcomponents/build/js/{144.smartweb-webcomponents-compiled.js.LICENSE.txt → 799.smartweb-webcomponents-compiled.js.LICENSE.txt} +0 -0
- /imio/smartweb/core/webcomponents/build/js/{9.smartweb-webcomponents-compiled.js.LICENSE.txt → 824.smartweb-webcomponents-compiled.js.LICENSE.txt} +0 -0
- {imio.smartweb.core-1.2.12.dist-info → imio.smartweb.core-1.2.68.dist-info}/LICENSE.GPL +0 -0
- {imio.smartweb.core-1.2.12.dist-info → imio.smartweb.core-1.2.68.dist-info}/LICENSE.rst +0 -0
- {imio.smartweb.core-1.2.12.dist-info → imio.smartweb.core-1.2.68.dist-info}/namespace_packages.txt +0 -0
- {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
|
+
}
|