design-comuni-plone-theme 11.11.1 → 11.12.0
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.
- package/.github/workflows/npm.yml +3 -1
- package/.yarn/cache/@formatjs-ecma402-abstract-npm-1.18.2-281c9afdd0-c664056cca.zip +0 -0
- package/.yarn/cache/@formatjs-fast-memoize-npm-2.2.0-4a46a61b8b-8697fe72a7.zip +0 -0
- package/.yarn/cache/@formatjs-icu-messageformat-parser-npm-2.7.6-59cd895220-d537253cbf.zip +0 -0
- package/.yarn/cache/@formatjs-icu-skeleton-parser-npm-1.8.0-0f1fd4bf3f-85ca45148a.zip +0 -0
- package/.yarn/cache/@formatjs-intl-localematcher-npm-0.5.4-e30cfcd8fd-a0af57874f.zip +0 -0
- package/.yarn/cache/@internationalized-date-npm-3.5.3-435a424ba4-e3b011b587.zip +0 -0
- package/.yarn/cache/@internationalized-message-npm-3.1.3-ed0b43d16d-76b7aadad0.zip +0 -0
- package/.yarn/cache/@internationalized-number-npm-3.5.2-0f0b803d0d-b622849a6c.zip +0 -0
- package/.yarn/cache/@internationalized-string-npm-3.2.2-dc233d6c2e-32d5944f0a.zip +0 -0
- package/.yarn/cache/@plone-components-npm-2.0.0-alpha.7-ae15679e71-6eb35f5ef6.zip +0 -0
- package/.yarn/cache/@react-aria-breadcrumbs-npm-3.5.12-4df37e0505-19c473c624.zip +0 -0
- package/.yarn/cache/@react-aria-button-npm-3.9.4-bcfdfa6d77-3644f5b504.zip +0 -0
- package/.yarn/cache/@react-aria-calendar-npm-3.5.7-4a24a3018a-08088c27ad.zip +0 -0
- package/.yarn/cache/@react-aria-checkbox-npm-3.14.2-ec0875b197-33c280dbaa.zip +0 -0
- package/.yarn/cache/@react-aria-color-npm-3.0.0-beta.32-b69a571afd-fcaa145f2d.zip +0 -0
- package/.yarn/cache/@react-aria-combobox-npm-3.9.0-9d01e3bcc8-ebc3aa2523.zip +0 -0
- package/.yarn/cache/@react-aria-datepicker-npm-3.10.0-b44d40522c-b5b3226e0e.zip +0 -0
- package/.yarn/cache/@react-aria-dialog-npm-3.5.13-fd75d2058e-b03586c90b.zip +0 -0
- package/.yarn/cache/@react-aria-dnd-npm-3.6.0-085417ff5c-da39c859dc.zip +0 -0
- package/.yarn/cache/@react-aria-focus-npm-3.17.0-a0d6fd01c9-bac778f7f9.zip +0 -0
- package/.yarn/cache/@react-aria-form-npm-3.0.4-1f761ca8f4-97a8f25e7b.zip +0 -0
- package/.yarn/cache/@react-aria-grid-npm-3.9.0-cdd984835d-c3841b238b.zip +0 -0
- package/.yarn/cache/@react-aria-gridlist-npm-3.8.0-40b98ff740-04ab1cccee.zip +0 -0
- package/.yarn/cache/@react-aria-i18n-npm-3.11.0-3bd97ed4c6-c4c7c7bd16.zip +0 -0
- package/.yarn/cache/@react-aria-interactions-npm-3.21.2-c6fe2e70fd-df7ca376b1.zip +0 -0
- package/.yarn/cache/@react-aria-label-npm-3.7.7-39b24fbd65-bfa2ec757c.zip +0 -0
- package/.yarn/cache/@react-aria-link-npm-3.7.0-cf388c071e-0af089b4b6.zip +0 -0
- package/.yarn/cache/@react-aria-listbox-npm-3.12.0-c9a3fcfdc1-2591d78997.zip +0 -0
- package/.yarn/cache/@react-aria-live-announcer-npm-3.3.3-46433149f6-501e772dba.zip +0 -0
- package/.yarn/cache/@react-aria-menu-npm-3.14.0-6fa31f531d-7f716c6ef9.zip +0 -0
- package/.yarn/cache/@react-aria-meter-npm-3.4.12-2821308fcd-a344cbb3df.zip +0 -0
- package/.yarn/cache/@react-aria-numberfield-npm-3.11.2-09acd47715-4e86800c8a.zip +0 -0
- package/.yarn/cache/@react-aria-overlays-npm-3.22.0-90340dac2d-bc2a4ed89d.zip +0 -0
- package/.yarn/cache/@react-aria-progress-npm-3.4.12-dfcbd6cd8f-3ca779f189.zip +0 -0
- package/.yarn/cache/@react-aria-radio-npm-3.10.3-94cedc9974-62cc213b68.zip +0 -0
- package/.yarn/cache/@react-aria-searchfield-npm-3.7.4-aaf2343364-ca4bc43633.zip +0 -0
- package/.yarn/cache/@react-aria-select-npm-3.14.4-36c0aabf5a-7b091a7a9c.zip +0 -0
- package/.yarn/cache/@react-aria-selection-npm-3.18.0-ac9a672791-58d96d02cd.zip +0 -0
- package/.yarn/cache/@react-aria-separator-npm-3.3.12-cba989b17a-972f038c36.zip +0 -0
- package/.yarn/cache/@react-aria-slider-npm-3.7.7-ed4b28f711-3d4b8c88cc.zip +0 -0
- package/.yarn/cache/@react-aria-spinbutton-npm-3.6.4-1361ae7900-d3df661c3b.zip +0 -0
- package/.yarn/cache/@react-aria-ssr-npm-3.9.3-83f9d6a628-9bbc8fea4a.zip +0 -0
- package/.yarn/cache/@react-aria-switch-npm-3.6.3-491c39fd33-754bdd8fe0.zip +0 -0
- package/.yarn/cache/@react-aria-table-npm-3.14.0-28948a50ad-8ce75e4b03.zip +0 -0
- package/.yarn/cache/@react-aria-tabs-npm-3.9.0-06e5f74497-1460c136f1.zip +0 -0
- package/.yarn/cache/@react-aria-tag-npm-3.4.0-1910b576b8-1fcd4068af.zip +0 -0
- package/.yarn/cache/@react-aria-textfield-npm-3.14.4-1c110be229-b9ba98a86e.zip +0 -0
- package/.yarn/cache/@react-aria-toggle-npm-3.10.3-93811531bc-a54c83da54.zip +0 -0
- package/.yarn/cache/@react-aria-toolbar-npm-3.0.0-beta.4-8a6d41e05d-ae6fc5f49a.zip +0 -0
- package/.yarn/cache/@react-aria-tooltip-npm-3.7.3-e2a6890301-57743f4bbd.zip +0 -0
- package/.yarn/cache/@react-aria-tree-npm-3.0.0-alpha.0-48c591e08d-2829e3a0ef.zip +0 -0
- package/.yarn/cache/@react-aria-utils-npm-3.24.0-b754bf323d-0f0b530f06.zip +0 -0
- package/.yarn/cache/@react-aria-visually-hidden-npm-3.8.11-437e8b0708-5b0e770a9c.zip +0 -0
- package/.yarn/cache/@react-spectrum-utils-npm-3.11.6-38e10974c6-6089e7b70b.zip +0 -0
- package/.yarn/cache/@react-stately-calendar-npm-3.5.0-269efd3343-8395aaf34d.zip +0 -0
- package/.yarn/cache/@react-stately-checkbox-npm-3.6.4-a5dc7cc18a-89c38c8698.zip +0 -0
- package/.yarn/cache/@react-stately-collections-npm-3.10.6-669dc2c16b-bc81d37b45.zip +0 -0
- package/.yarn/cache/@react-stately-color-npm-3.6.0-aee6f5f342-2cf47e66f0.zip +0 -0
- package/.yarn/cache/@react-stately-combobox-npm-3.8.3-15ca98aa5c-dad97a15fb.zip +0 -0
- package/.yarn/cache/@react-stately-data-npm-3.11.3-cce895778d-dfc8d1ac9a.zip +0 -0
- package/.yarn/cache/@react-stately-datepicker-npm-3.9.3-fe9d43086a-c2fee2a75e.zip +0 -0
- package/.yarn/cache/@react-stately-dnd-npm-3.3.0-12dd68769d-afc0565ac1.zip +0 -0
- package/.yarn/cache/@react-stately-flags-npm-3.0.2-1ec044f94e-c2c19b6043.zip +0 -0
- package/.yarn/cache/@react-stately-form-npm-3.0.2-4bc729a2ea-9dfae19354.zip +0 -0
- package/.yarn/cache/@react-stately-grid-npm-3.8.6-907965ec36-313e63ff3b.zip +0 -0
- package/.yarn/cache/@react-stately-list-npm-3.10.4-77dd54c792-19325e9ab4.zip +0 -0
- package/.yarn/cache/@react-stately-menu-npm-3.7.0-90a0db1055-a108e379e4.zip +0 -0
- package/.yarn/cache/@react-stately-numberfield-npm-3.9.2-3a89f1bc42-96956b46c5.zip +0 -0
- package/.yarn/cache/@react-stately-overlays-npm-3.6.6-f8aa64654d-bc910b54b2.zip +0 -0
- package/.yarn/cache/@react-stately-radio-npm-3.10.3-071befd78c-f8d356f86a.zip +0 -0
- package/.yarn/cache/@react-stately-searchfield-npm-3.5.2-2f3fb6c209-43558cfff5.zip +0 -0
- package/.yarn/cache/@react-stately-select-npm-3.6.3-be5e642bfa-34fbe8501b.zip +0 -0
- package/.yarn/cache/@react-stately-selection-npm-3.15.0-8b7bc0694b-9edcb36fed.zip +0 -0
- package/.yarn/cache/@react-stately-slider-npm-3.5.3-562ef6c5cb-06d0a53b7c.zip +0 -0
- package/.yarn/cache/@react-stately-table-npm-3.11.7-5c9e0fd96a-58d51f98d6.zip +0 -0
- package/.yarn/cache/@react-stately-tabs-npm-3.6.5-146716fcbd-d1968d1417.zip +0 -0
- package/.yarn/cache/@react-stately-toggle-npm-3.7.3-37e71d088a-5c5e7b52fa.zip +0 -0
- package/.yarn/cache/@react-stately-tooltip-npm-3.4.8-fd6ef872a2-25cc3e3c24.zip +0 -0
- package/.yarn/cache/@react-stately-tree-npm-3.8.0-500b430bb7-19c17a7406.zip +0 -0
- package/.yarn/cache/@react-stately-utils-npm-3.10.0-066f48a98e-780dab3581.zip +0 -0
- package/.yarn/cache/@react-stately-virtualizer-npm-3.7.0-2e4e9a8821-c04424dfff.zip +0 -0
- package/.yarn/cache/@react-types-breadcrumbs-npm-3.7.4-0e067c6509-132d9d1b0a.zip +0 -0
- package/.yarn/cache/@react-types-button-npm-3.9.3-491d887431-a9da87eb7e.zip +0 -0
- package/.yarn/cache/@react-types-calendar-npm-3.4.5-9491b2662c-6e3b6e44df.zip +0 -0
- package/.yarn/cache/@react-types-checkbox-npm-3.8.0-fa41e40b34-9786fd8224.zip +0 -0
- package/.yarn/cache/@react-types-color-npm-3.0.0-beta.24-a1c15bc97a-894371276c.zip +0 -0
- package/.yarn/cache/@react-types-combobox-npm-3.11.0-e0a5e09d36-3bf3ad11d0.zip +0 -0
- package/.yarn/cache/@react-types-datepicker-npm-3.7.3-1c968964c9-1053453aee.zip +0 -0
- package/.yarn/cache/@react-types-dialog-npm-3.5.9-037d2817d8-efeb8dc70e.zip +0 -0
- package/.yarn/cache/@react-types-form-npm-3.7.3-faea9d8969-e88a1a4097.zip +0 -0
- package/.yarn/cache/@react-types-grid-npm-3.2.5-47670b811f-e3588328cf.zip +0 -0
- package/.yarn/cache/@react-types-link-npm-3.5.4-44b62607b6-5d7555e036.zip +0 -0
- package/.yarn/cache/@react-types-listbox-npm-3.4.8-2e0a7f4dea-31e7b4c8b1.zip +0 -0
- package/.yarn/cache/@react-types-menu-npm-3.9.8-a4a0f57423-d5fb6d99bc.zip +0 -0
- package/.yarn/cache/@react-types-meter-npm-3.4.0-768a873170-cc30fd4745.zip +0 -0
- package/.yarn/cache/@react-types-numberfield-npm-3.8.2-a842f6619d-e8ed43b08f.zip +0 -0
- package/.yarn/cache/@react-types-overlays-npm-3.8.6-78e91b1a37-8efb3c2569.zip +0 -0
- package/.yarn/cache/@react-types-progress-npm-3.5.3-27066d6e69-d13f2db5c3.zip +0 -0
- package/.yarn/cache/@react-types-radio-npm-3.8.0-5d03b4b24f-f868f13ff2.zip +0 -0
- package/.yarn/cache/@react-types-searchfield-npm-3.5.4-9a6cb6c41b-806f97f5d6.zip +0 -0
- package/.yarn/cache/@react-types-select-npm-3.9.3-436aaa190f-b3db4acb66.zip +0 -0
- package/.yarn/cache/@react-types-shared-npm-3.23.0-1952004986-aa3507ef30.zip +0 -0
- package/.yarn/cache/@react-types-slider-npm-3.7.2-369a50984c-fcdafa3511.zip +0 -0
- package/.yarn/cache/@react-types-switch-npm-3.5.2-19ff24a621-e8caae2da6.zip +0 -0
- package/.yarn/cache/@react-types-table-npm-3.9.4-0afc8754dd-80dae2adfe.zip +0 -0
- package/.yarn/cache/@react-types-tabs-npm-3.3.6-047a1fd9c3-69d89f3c5c.zip +0 -0
- package/.yarn/cache/@react-types-textfield-npm-3.9.2-2bd9f93005-9102b983c5.zip +0 -0
- package/.yarn/cache/@react-types-tooltip-npm-3.4.8-8d81ea0e23-a3122729eb.zip +0 -0
- package/.yarn/cache/@swc-helpers-npm-0.4.14-f806c3fb16-273fd3f3fc.zip +0 -0
- package/.yarn/cache/@swc-helpers-npm-0.4.36-507abd5d2a-20b9f021a9.zip +0 -0
- package/.yarn/cache/@swc-helpers-npm-0.5.11-94bd1e1b3e-5d85e641d9.zip +0 -0
- package/.yarn/cache/client-only-npm-0.0.1-07d3e9505c-0c16bf660d.zip +0 -0
- package/.yarn/cache/clsx-npm-2.1.1-96125b98be-acd3e1ab9d.zip +0 -0
- package/.yarn/cache/intl-messageformat-npm-10.5.11-1feb0e2115-b5574447a0.zip +0 -0
- package/.yarn/cache/react-aria-components-npm-1.2.0-30040153be-43319158c8.zip +0 -0
- package/.yarn/cache/react-aria-npm-3.33.0-688afc3857-980f9da630.zip +0 -0
- package/.yarn/cache/react-stately-npm-3.31.0-9465d26d77-d59440e0a7.zip +0 -0
- package/.yarn/cache/use-sync-external-store-npm-1.2.2-7923c915e1-fe07c071c4.zip +0 -0
- package/.yarn/cache/{volto-form-block-npm-3.7.2-f24953a510-7387a1b85a.zip → volto-form-block-npm-3.8.3-dd17b59f52-44b043f3ea.zip} +0 -0
- package/.yarn/cache/{volto-gdpr-privacy-npm-2.2.1-bc93b3e168-bce76108c3.zip → volto-gdpr-privacy-npm-2.2.5-1673f4cc81-0cfc4e9ba7.zip} +0 -0
- package/.yarn/cache/volto-multilingual-widget-npm-3.2.1-6fcb25c017-c24fd5379c.zip +0 -0
- package/.yarn/install-state.gz +0 -0
- package/CHANGELOG.md +53 -0
- package/RELEASE.md +17 -0
- package/locales/de/LC_MESSAGES/volto.po +15 -0
- package/locales/en/LC_MESSAGES/volto.po +15 -0
- package/locales/es/LC_MESSAGES/volto.po +15 -0
- package/locales/fr/LC_MESSAGES/volto.po +15 -0
- package/locales/it/LC_MESSAGES/volto.po +16 -1
- package/locales/volto.pot +16 -1
- package/package.json +4 -4
- package/publiccode.yml +2 -2
- package/src/components/ItaliaTheme/Blocks/IconBlocks/Block/ViewBlock.jsx +1 -2
- package/src/components/ItaliaTheme/Blocks/Listing/Commons/ListingImage.jsx +8 -4
- package/src/components/ItaliaTheme/Blocks/Listing/SmallBlockLinksTemplate.jsx +1 -0
- package/src/components/ItaliaTheme/Breadcrumbs/Breadcrumbs.jsx +13 -7
- package/src/components/ItaliaTheme/Header/HeaderSlim/TertiaryMenu.jsx +1 -1
- package/src/components/ItaliaTheme/Icons/FontAwesomeIcon.jsx +4 -4
- package/src/components/ItaliaTheme/Pagination/Pagination.jsx +5 -0
- package/src/components/ItaliaTheme/Pagination/PaginationItem.jsx +15 -1
- package/src/components/ItaliaTheme/Slider/SingleSlideWrapper.jsx +2 -0
- package/src/components/ItaliaTheme/View/Commons/ContactsCard.jsx +2 -31
- package/src/components/ItaliaTheme/View/Commons/PageHeader/PageHeaderBando.jsx +3 -0
- package/src/components/ItaliaTheme/View/DocumentoView/DocumentoAccedereServizio.jsx +5 -8
- package/src/components/ItaliaTheme/View/FAQ/FaqFolder/SearchBar.jsx +5 -0
- package/src/components/ItaliaTheme/View/PersonaView/PersonaDocumenti.jsx +0 -1
- package/src/components/ItaliaTheme/View/ServizioView/ServizioCondizioni.jsx +5 -1
- package/src/components/ItaliaTheme/View/UOView/UOServices.jsx +38 -2
- package/src/components/ItaliaTheme/manage/Widgets/SearchSectionsConfigurationWidget/SearchSectionsConfigurationForm.jsx +2 -2
- package/src/config/italiaConfig.js +2 -2
- package/src/customizations/volto/components/manage/Blocks/Search/components/DateRangeFacet.jsx +16 -2
- package/src/customizations/volto/components/manage/UniversalLink/UniversalLink.jsx +3 -1
- package/src/customizations/volto-form-block/components/FormResult.jsx +78 -0
- package/src/customizations/volto-form-block/components/FormView.jsx +79 -66
- package/src/customizations/volto-form-block/components/Widget/Button.jsx +50 -0
- package/src/overrideTranslations.jsx +8 -0
- package/src/theme/ItaliaTheme/Blocks/_gridBlock.scss +5 -0
- package/src/theme/ItaliaTheme/Components/_pager.scss +10 -0
- package/src/theme/ItaliaTheme/Views/_slider.scss +1 -0
- package/src/theme/_site-variables.scss +1 -1
- package/src/theme/extras/_search.scss +5 -0
- package/.yarn/cache/volto-multilingual-widget-npm-3.0.0-58c1ce4fb7-3fa0611e79.zip +0 -0
- /package/src/theme/ItaliaTheme/Blocks/{_inEvidenceTemplate.scss → _inevidencetemplate.scss} +0 -0
package/locales/volto.pot
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
msgid ""
|
|
2
2
|
msgstr ""
|
|
3
3
|
"Project-Id-Version: Plone\n"
|
|
4
|
-
"POT-Creation-Date: 2024-05-
|
|
4
|
+
"POT-Creation-Date: 2024-05-15T15:55:46.048Z\n"
|
|
5
5
|
"Last-Translator: Plone i18n <plone-i18n@lists.sourceforge.net>\n"
|
|
6
6
|
"Language-Team: Plone i18n <plone-i18n@lists.sourceforge.net>\n"
|
|
7
7
|
"MIME-Version: 1.0\n"
|
|
@@ -106,6 +106,11 @@ msgstr ""
|
|
|
106
106
|
msgid "Cerca per parola chiave"
|
|
107
107
|
msgstr ""
|
|
108
108
|
|
|
109
|
+
#: overrideTranslations
|
|
110
|
+
# defaultMessage: Pulisci i campi
|
|
111
|
+
msgid "Clear dates"
|
|
112
|
+
msgstr ""
|
|
113
|
+
|
|
109
114
|
#: helpers/Translations/searchBlockExtendedTranslations
|
|
110
115
|
# defaultMessage: Clear filters
|
|
111
116
|
msgid "Clear filters"
|
|
@@ -2994,6 +2999,11 @@ msgstr ""
|
|
|
2994
2999
|
msgid "rrule_nd"
|
|
2995
3000
|
msgstr ""
|
|
2996
3001
|
|
|
3002
|
+
#: overrideTranslations
|
|
3003
|
+
# defaultMessage: di
|
|
3004
|
+
msgid "rrule_on"
|
|
3005
|
+
msgstr ""
|
|
3006
|
+
|
|
2997
3007
|
#: overrideTranslations
|
|
2998
3008
|
# defaultMessage: di
|
|
2999
3009
|
msgid "rrule_on the"
|
|
@@ -3284,6 +3294,11 @@ msgstr ""
|
|
|
3284
3294
|
msgid "search_endDate"
|
|
3285
3295
|
msgstr ""
|
|
3286
3296
|
|
|
3297
|
+
#: components/ItaliaTheme/View/FAQ/FaqFolder/SearchBar
|
|
3298
|
+
# defaultMessage: Search icon
|
|
3299
|
+
msgid "search_icon"
|
|
3300
|
+
msgstr ""
|
|
3301
|
+
|
|
3287
3302
|
#: components/ItaliaTheme/Blocks/SearchSections/SideBar
|
|
3288
3303
|
# defaultMessage: Dove cercare
|
|
3289
3304
|
msgid "search_sections"
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "design-comuni-plone-theme",
|
|
3
3
|
"description": "Volto Theme for Italia design guidelines",
|
|
4
4
|
"license": "GPL-v3",
|
|
5
|
-
"version": "11.
|
|
5
|
+
"version": "11.12.0",
|
|
6
6
|
"main": "src/index.js",
|
|
7
7
|
"keywords": [
|
|
8
8
|
"volto-addon",
|
|
@@ -147,10 +147,10 @@
|
|
|
147
147
|
"volto-dropdownmenu": "4.1.1",
|
|
148
148
|
"volto-editablefooter": "5.1.1",
|
|
149
149
|
"volto-feedback": "0.3.0",
|
|
150
|
-
"volto-form-block": "3.
|
|
151
|
-
"volto-gdpr-privacy": "2.2.
|
|
150
|
+
"volto-form-block": "3.8.3",
|
|
151
|
+
"volto-gdpr-privacy": "2.2.5",
|
|
152
152
|
"volto-google-analytics": "2.0.0",
|
|
153
|
-
"volto-multilingual-widget": "3.
|
|
153
|
+
"volto-multilingual-widget": "3.2.1",
|
|
154
154
|
"volto-querywidget-with-browser": "0.4.2",
|
|
155
155
|
"volto-rss-block": "3.0.0",
|
|
156
156
|
"volto-secondarymenu": "4.0.0",
|
package/publiccode.yml
CHANGED
|
@@ -227,9 +227,9 @@ maintenance:
|
|
|
227
227
|
name: io-Comune - Il sito AgID per Comuni ed Enti Pubblici
|
|
228
228
|
platforms:
|
|
229
229
|
- web
|
|
230
|
-
releaseDate: '2024-05-
|
|
230
|
+
releaseDate: '2024-05-21'
|
|
231
231
|
softwareType: standalone/web
|
|
232
|
-
softwareVersion: 11.
|
|
232
|
+
softwareVersion: 11.12.0
|
|
233
233
|
url: 'https://github.com/italia/design-comuni-plone-theme'
|
|
234
234
|
usedBy:
|
|
235
235
|
- ASP Comuni Modenesi Area Nord
|
|
@@ -10,7 +10,6 @@ import { useIntl, defineMessages } from 'react-intl';
|
|
|
10
10
|
import { UniversalLink } from '@plone/volto/components';
|
|
11
11
|
|
|
12
12
|
import { Icon } from 'design-comuni-plone-theme/components/ItaliaTheme';
|
|
13
|
-
import { RichTextRender } from 'design-comuni-plone-theme/components/ItaliaTheme/View';
|
|
14
13
|
import { Card, CardBody, CardReadMore } from 'design-react-kit';
|
|
15
14
|
import config from '@plone/volto/registry';
|
|
16
15
|
|
|
@@ -51,7 +50,7 @@ const ViewBlock = ({ data, isOpen, toggle, id, index }) => {
|
|
|
51
50
|
<CardBody tag="div">
|
|
52
51
|
{data.icon?.length > 0 && (
|
|
53
52
|
<div className="iconblock-icon">
|
|
54
|
-
<Icon icon={data.icon} aria-hidden={true} />
|
|
53
|
+
<Icon icon={data.icon} aria-hidden={true} title={cardTitle} />
|
|
55
54
|
</div>
|
|
56
55
|
)}
|
|
57
56
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { UniversalLink } from '@plone/volto/components';
|
|
1
2
|
import DefaultImageSVG from '@plone/volto/components/manage/Blocks/Listing/default-image.svg';
|
|
2
3
|
import { flattenToAppURL } from '@plone/volto/helpers';
|
|
3
4
|
import config from '@plone/volto/registry';
|
|
@@ -15,9 +16,9 @@ const ListingImage = ({
|
|
|
15
16
|
const Image = config.getComponent({ name: 'Image' }).component;
|
|
16
17
|
let commonImageProps = {
|
|
17
18
|
item,
|
|
18
|
-
'aria-hidden': true,
|
|
19
|
-
alt: imageProps.alt ?? '',
|
|
20
|
-
role: 'presentation',
|
|
19
|
+
'aria-hidden': imageProps.alt || item.title ? false : true,
|
|
20
|
+
alt: imageProps.alt ?? item.title ?? '',
|
|
21
|
+
role: imageProps.alt || item.title ? '' : 'presentation',
|
|
21
22
|
className,
|
|
22
23
|
loading,
|
|
23
24
|
responsive,
|
|
@@ -28,7 +29,10 @@ const ListingImage = ({
|
|
|
28
29
|
commonImageProps = { ...commonImageProps, title: item.title };
|
|
29
30
|
// photogallery needs to check for null image
|
|
30
31
|
// https://stackoverflow.com/questions/33136399/is-there-a-way-to-tell-if-reactelement-renders-null
|
|
31
|
-
|
|
32
|
+
|
|
33
|
+
const image = (
|
|
34
|
+
<UniversalLink item={item}>{Image(commonImageProps)}</UniversalLink>
|
|
35
|
+
);
|
|
32
36
|
if (image === null)
|
|
33
37
|
return showDefault ? <img src={DefaultImageSVG} alt="" /> : null;
|
|
34
38
|
|
|
@@ -12,7 +12,11 @@ import { matchPath } from 'react-router';
|
|
|
12
12
|
import { useLocation } from 'react-router-dom';
|
|
13
13
|
import { isEqual, isEmpty } from 'lodash';
|
|
14
14
|
import { getBreadcrumbs } from '@plone/volto/actions';
|
|
15
|
-
import {
|
|
15
|
+
import {
|
|
16
|
+
getBaseUrl,
|
|
17
|
+
flattenToAppURL,
|
|
18
|
+
hasApiExpander,
|
|
19
|
+
} from '@plone/volto/helpers';
|
|
16
20
|
|
|
17
21
|
import { UniversalLink } from '@plone/volto/components';
|
|
18
22
|
import { Row, Col, BreadcrumbItem } from 'design-react-kit';
|
|
@@ -73,13 +77,15 @@ const Breadcrumbs = ({ pathname }) => {
|
|
|
73
77
|
/** fine della gestione delle rotte statiche */
|
|
74
78
|
|
|
75
79
|
useEffect(() => {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
80
|
+
if (!hasApiExpander('breadcrumbs', getBaseUrl(pathname))) {
|
|
81
|
+
let actualPathForBreadcrumbs = pathname;
|
|
82
|
+
const { path, buildFullNavTree } = getCurrentPathFromAddonRoutes();
|
|
83
|
+
if (buildFullNavTree) {
|
|
84
|
+
const replacedPath = path.replace('**/', '');
|
|
85
|
+
actualPathForBreadcrumbs = pathname.replace(replacedPath, '');
|
|
86
|
+
}
|
|
87
|
+
dispatch(getBreadcrumbs(getBaseUrl(actualPathForBreadcrumbs)));
|
|
81
88
|
}
|
|
82
|
-
dispatch(getBreadcrumbs(getBaseUrl(actualPathForBreadcrumbs)));
|
|
83
89
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
84
90
|
}, [pathname]);
|
|
85
91
|
|
|
@@ -36,10 +36,10 @@ const FontAwesomeIcon = (props) => {
|
|
|
36
36
|
prefixKey === 'fab'
|
|
37
37
|
? 'brands'
|
|
38
38
|
: prefixKey === 'far'
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
? 'regular'
|
|
40
|
+
: prefixKey != null
|
|
41
|
+
? prefixKey
|
|
42
|
+
: 'solid',
|
|
43
43
|
iconName,
|
|
44
44
|
];
|
|
45
45
|
};
|
|
@@ -81,6 +81,9 @@ class Pagination extends Component {
|
|
|
81
81
|
totalPages,
|
|
82
82
|
});
|
|
83
83
|
|
|
84
|
+
const inactivePrevButton = activePage === 1;
|
|
85
|
+
const inactiveForwButton = activePage === this.props.totalPages;
|
|
86
|
+
|
|
84
87
|
return (
|
|
85
88
|
<Pager
|
|
86
89
|
className="justify-content-center mt-5"
|
|
@@ -96,6 +99,8 @@ class Pagination extends Component {
|
|
|
96
99
|
onClick={this.handleItemClick}
|
|
97
100
|
type={type}
|
|
98
101
|
ellipsisItem={ellipsisItem}
|
|
102
|
+
isPrevButtonInactive={inactivePrevButton}
|
|
103
|
+
isForwButtonInactive={inactiveForwButton}
|
|
99
104
|
>
|
|
100
105
|
{value}
|
|
101
106
|
</PaginationItem>
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import cx from 'classnames';
|
|
2
3
|
import _ from 'lodash';
|
|
3
4
|
import keyboardKey from 'keyboard-key';
|
|
4
5
|
import PropTypes from 'prop-types';
|
|
@@ -50,6 +51,9 @@ class PaginationItem extends Component {
|
|
|
50
51
|
'nextItem',
|
|
51
52
|
'lastItem',
|
|
52
53
|
]),
|
|
54
|
+
|
|
55
|
+
isPrevButtonInactive: PropTypes.bool,
|
|
56
|
+
isForwButtonInactive: PropTypes.bool,
|
|
53
57
|
};
|
|
54
58
|
|
|
55
59
|
handleClick = (e) => {
|
|
@@ -63,7 +67,15 @@ class PaginationItem extends Component {
|
|
|
63
67
|
};
|
|
64
68
|
|
|
65
69
|
render() {
|
|
66
|
-
const {
|
|
70
|
+
const {
|
|
71
|
+
active,
|
|
72
|
+
type,
|
|
73
|
+
children,
|
|
74
|
+
intl,
|
|
75
|
+
ellipsisItem,
|
|
76
|
+
isPrevButtonInactive,
|
|
77
|
+
isForwButtonInactive,
|
|
78
|
+
} = this.props;
|
|
67
79
|
const disabled = this.props.disabled || type === 'ellipsisItem';
|
|
68
80
|
return (
|
|
69
81
|
<PagerItem disabled={disabled}>
|
|
@@ -79,6 +91,7 @@ class PaginationItem extends Component {
|
|
|
79
91
|
icon="it-chevron-left"
|
|
80
92
|
style={{ ariaHidden: true }}
|
|
81
93
|
color="primary"
|
|
94
|
+
className={cx({ disabled: isPrevButtonInactive })}
|
|
82
95
|
title={intl.formatMessage(messages.prevPage)}
|
|
83
96
|
/>
|
|
84
97
|
|
|
@@ -93,6 +106,7 @@ class PaginationItem extends Component {
|
|
|
93
106
|
icon="it-chevron-right"
|
|
94
107
|
style={{ ariaHidden: true }}
|
|
95
108
|
color="primary"
|
|
109
|
+
className={cx({ disabled: isForwButtonInactive })}
|
|
96
110
|
title={intl.formatMessage(messages.nextPage)}
|
|
97
111
|
/>
|
|
98
112
|
<span className="visually-hidden">
|
|
@@ -12,6 +12,7 @@ const SingleSlideWrapper = (props) => {
|
|
|
12
12
|
const wrapperKey = key ?? 'slide-wrapper-' + index;
|
|
13
13
|
|
|
14
14
|
return (
|
|
15
|
+
// eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
|
|
15
16
|
<div
|
|
16
17
|
className={`it-single-slide-wrapper ${className ?? ''}`}
|
|
17
18
|
key={wrapperKey}
|
|
@@ -30,6 +31,7 @@ const SingleSlideWrapper = (props) => {
|
|
|
30
31
|
//e.preventDefault();
|
|
31
32
|
//e.stopPropagation();
|
|
32
33
|
}}
|
|
34
|
+
// eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
|
|
33
35
|
tabIndex={0}
|
|
34
36
|
>
|
|
35
37
|
{children}
|
|
@@ -1,42 +1,13 @@
|
|
|
1
|
-
import { useEffect } from 'react';
|
|
2
|
-
import { useDispatch, useSelector } from 'react-redux';
|
|
3
1
|
import { Card, CardBody, CardText, CardTitle, Icon } from 'design-react-kit';
|
|
4
|
-
import { getContent, resetContent } from '@plone/volto/actions';
|
|
5
2
|
import { UniversalLink } from '@plone/volto/components';
|
|
6
|
-
|
|
3
|
+
|
|
7
4
|
import { renderPDCItemValue } from 'design-comuni-plone-theme/helpers';
|
|
8
5
|
import { useIntl } from 'react-intl';
|
|
9
6
|
|
|
10
7
|
const ContactsCard = ({ contact = {}, show_title = false, ...rest }) => {
|
|
11
|
-
const dispatch = useDispatch();
|
|
12
8
|
const intl = useIntl();
|
|
13
9
|
const contactUrl = contact['@id'];
|
|
14
10
|
|
|
15
|
-
const { loading, loaded, error, data } = useSelector(
|
|
16
|
-
(state) => state.content.subrequests[flattenToAppURL(contactUrl)] ?? {},
|
|
17
|
-
);
|
|
18
|
-
|
|
19
|
-
useEffect(() => {
|
|
20
|
-
if (!loading && !loaded) {
|
|
21
|
-
dispatch(
|
|
22
|
-
getContent(
|
|
23
|
-
flattenToAppURL(contactUrl),
|
|
24
|
-
null,
|
|
25
|
-
flattenToAppURL(contactUrl),
|
|
26
|
-
),
|
|
27
|
-
);
|
|
28
|
-
}
|
|
29
|
-
}, [dispatch, contactUrl, loading, loaded]);
|
|
30
|
-
|
|
31
|
-
useEffect(
|
|
32
|
-
() => () => dispatch(resetContent(flattenToAppURL(contactUrl))),
|
|
33
|
-
[dispatch, contactUrl],
|
|
34
|
-
);
|
|
35
|
-
|
|
36
|
-
if (error) {
|
|
37
|
-
return null;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
11
|
return (
|
|
41
12
|
<Card
|
|
42
13
|
teaser
|
|
@@ -54,7 +25,7 @@ const ContactsCard = ({ contact = {}, show_title = false, ...rest }) => {
|
|
|
54
25
|
)}
|
|
55
26
|
</CardTitle>
|
|
56
27
|
<CardText>
|
|
57
|
-
{
|
|
28
|
+
{contact?.value_punto_contatto?.map((pdc, index) => (
|
|
58
29
|
<span key={index}>
|
|
59
30
|
<strong>
|
|
60
31
|
<span className="pdc-type">{pdc.pdc_type}</span>
|
|
@@ -2,7 +2,6 @@ import React from 'react';
|
|
|
2
2
|
import { defineMessages, useIntl } from 'react-intl';
|
|
3
3
|
|
|
4
4
|
import {
|
|
5
|
-
RichText,
|
|
6
5
|
RichTextSection,
|
|
7
6
|
GenericCard,
|
|
8
7
|
} from 'design-comuni-plone-theme/components/ItaliaTheme/View';
|
|
@@ -24,13 +23,11 @@ const DocumentoAccedereServizio = ({ content }) => {
|
|
|
24
23
|
>
|
|
25
24
|
<div className="card-wrapper card-teaser-wrapper card-teaser-wrapper-equal">
|
|
26
25
|
{content.servizi_collegati?.map((servizio, i) => (
|
|
27
|
-
<GenericCard
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
/>
|
|
33
|
-
</GenericCard>
|
|
26
|
+
<GenericCard
|
|
27
|
+
key={servizio['@id']}
|
|
28
|
+
item={servizio}
|
|
29
|
+
showimage={false}
|
|
30
|
+
></GenericCard>
|
|
34
31
|
))}
|
|
35
32
|
</div>
|
|
36
33
|
</RichTextSection>
|
|
@@ -14,6 +14,10 @@ const messages = defineMessages({
|
|
|
14
14
|
id: 'faq_search',
|
|
15
15
|
defaultMessage: 'Type in a keyword to find answers',
|
|
16
16
|
},
|
|
17
|
+
search_icon: {
|
|
18
|
+
id: 'search_icon',
|
|
19
|
+
defaultMessage: 'Search icon',
|
|
20
|
+
},
|
|
17
21
|
});
|
|
18
22
|
|
|
19
23
|
/**
|
|
@@ -41,6 +45,7 @@ const SearchBar = ({ searchableText, setSearchableText }) => {
|
|
|
41
45
|
style={{
|
|
42
46
|
ariaHidden: true,
|
|
43
47
|
}}
|
|
48
|
+
title={intl.formatMessage(messages.search_icon)}
|
|
44
49
|
/>
|
|
45
50
|
</div>
|
|
46
51
|
</div>
|
|
@@ -30,7 +30,11 @@ const ServizioCondizioni = ({ content }) => {
|
|
|
30
30
|
data-element="service-file"
|
|
31
31
|
>
|
|
32
32
|
<span className="list-item-title-icon-wrapper">
|
|
33
|
-
<Icon
|
|
33
|
+
<Icon
|
|
34
|
+
icon="it-clip"
|
|
35
|
+
className="icon-primary me-1"
|
|
36
|
+
title={intl.formatMessage(messages.condizioni_link)}
|
|
37
|
+
/>
|
|
34
38
|
{intl.formatMessage(messages.condizioni_link)} (
|
|
35
39
|
{label ? <span className="text-uppercase">{label} </span> : ''}
|
|
36
40
|
<span className="list-item">
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
2
|
import { defineMessages, useIntl } from 'react-intl';
|
|
3
3
|
import {
|
|
4
4
|
Row,
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
CardTitle,
|
|
10
10
|
CardText,
|
|
11
11
|
} from 'design-react-kit';
|
|
12
|
+
import { Pagination } from 'design-comuni-plone-theme/components/ItaliaTheme';
|
|
12
13
|
import { UniversalLink } from '@plone/volto/components';
|
|
13
14
|
|
|
14
15
|
const messages = defineMessages({
|
|
@@ -18,9 +19,35 @@ const messages = defineMessages({
|
|
|
18
19
|
},
|
|
19
20
|
});
|
|
20
21
|
|
|
22
|
+
//* Pagination **/
|
|
23
|
+
const divideServicesIntoBatches = (arr, batchSize) => {
|
|
24
|
+
const batches = [];
|
|
25
|
+
for (let i = 0; i < arr.length; i += batchSize) {
|
|
26
|
+
batches.push(arr.slice(i, i + batchSize));
|
|
27
|
+
}
|
|
28
|
+
return batches;
|
|
29
|
+
};
|
|
30
|
+
|
|
21
31
|
const UOServices = ({ content }) => {
|
|
22
32
|
const intl = useIntl();
|
|
23
33
|
|
|
34
|
+
const [currentPage, setCurrentPage] = useState(1);
|
|
35
|
+
const bSize = 4;
|
|
36
|
+
|
|
37
|
+
//* Calcolo numero pagine
|
|
38
|
+
|
|
39
|
+
const servizi_offerti =
|
|
40
|
+
content.servizi_offerti === undefined || content.servizi_offerti === null
|
|
41
|
+
? []
|
|
42
|
+
: content.servizi_offerti;
|
|
43
|
+
|
|
44
|
+
const pageNumbers = Math.ceil(servizi_offerti.length / bSize);
|
|
45
|
+
|
|
46
|
+
const onPaginationChange = (activePage) => {
|
|
47
|
+
const current = activePage?.children ?? 1;
|
|
48
|
+
setCurrentPage(current);
|
|
49
|
+
};
|
|
50
|
+
|
|
24
51
|
return content?.servizi_offerti?.length > 0 ? (
|
|
25
52
|
<section
|
|
26
53
|
id={'servizi_offerti'}
|
|
@@ -30,7 +57,9 @@ const UOServices = ({ content }) => {
|
|
|
30
57
|
{intl.formatMessage(messages.servizi_offerti)}
|
|
31
58
|
</h2>
|
|
32
59
|
<Row className="card-wrapper card-teaser-wrapper align-items-stretch">
|
|
33
|
-
{content?.servizi_offerti
|
|
60
|
+
{divideServicesIntoBatches(content?.servizi_offerti, bSize)[
|
|
61
|
+
currentPage - 1
|
|
62
|
+
]?.map((servizio, i) => (
|
|
34
63
|
<Col xs="12" lg="6">
|
|
35
64
|
<Card className="shadow rounded card-big-io-comune p-3 my-3">
|
|
36
65
|
<CardBody>
|
|
@@ -46,6 +75,13 @@ const UOServices = ({ content }) => {
|
|
|
46
75
|
</Col>
|
|
47
76
|
))}
|
|
48
77
|
</Row>
|
|
78
|
+
<div className="pagination-wrapper">
|
|
79
|
+
<Pagination
|
|
80
|
+
activePage={currentPage}
|
|
81
|
+
totalPages={pageNumbers}
|
|
82
|
+
onPageChange={(e, { activePage }) => onPaginationChange(activePage)}
|
|
83
|
+
/>
|
|
84
|
+
</div>
|
|
49
85
|
</section>
|
|
50
86
|
) : null;
|
|
51
87
|
};
|
|
@@ -50,7 +50,7 @@ const SearchSectionsConfigurationForm = ({
|
|
|
50
50
|
useEffect(() => {
|
|
51
51
|
document
|
|
52
52
|
.querySelector('form.ui.form')
|
|
53
|
-
|
|
53
|
+
?.addEventListener('click', preventClick);
|
|
54
54
|
|
|
55
55
|
document.querySelectorAll('form.ui.form input').forEach((item) => {
|
|
56
56
|
item.addEventListener('keypress', preventEnter);
|
|
@@ -59,7 +59,7 @@ const SearchSectionsConfigurationForm = ({
|
|
|
59
59
|
return () => {
|
|
60
60
|
document
|
|
61
61
|
.querySelector('form.ui.form')
|
|
62
|
-
|
|
62
|
+
?.removeEventListener('click', preventClick);
|
|
63
63
|
document.querySelectorAll('form.ui.form input').forEach((item) => {
|
|
64
64
|
item.removeEventListener('keypress', preventEnter);
|
|
65
65
|
});
|
|
@@ -66,8 +66,8 @@ import { schemaListing } from 'design-comuni-plone-theme/components/ItaliaTheme/
|
|
|
66
66
|
|
|
67
67
|
import reducers from 'design-comuni-plone-theme/reducers';
|
|
68
68
|
|
|
69
|
-
const ReleaseLog = loadable(
|
|
70
|
-
import('design-comuni-plone-theme/components/ReleaseLog/ReleaseLog'),
|
|
69
|
+
const ReleaseLog = loadable(
|
|
70
|
+
() => import('design-comuni-plone-theme/components/ReleaseLog/ReleaseLog'),
|
|
71
71
|
);
|
|
72
72
|
|
|
73
73
|
const messages = defineMessages({
|
package/src/customizations/volto/components/manage/Blocks/Search/components/DateRangeFacet.jsx
CHANGED
|
@@ -22,6 +22,10 @@ const messages = defineMessages({
|
|
|
22
22
|
id: 'End Date',
|
|
23
23
|
defaultMessage: 'End Date',
|
|
24
24
|
},
|
|
25
|
+
clearDates: {
|
|
26
|
+
id: 'Clear dates',
|
|
27
|
+
defaultMessage: 'Pulisci i campi',
|
|
28
|
+
},
|
|
25
29
|
});
|
|
26
30
|
|
|
27
31
|
const PrevIcon = () => (
|
|
@@ -64,7 +68,17 @@ const customArrowIcon = (props) => {
|
|
|
64
68
|
);
|
|
65
69
|
};
|
|
66
70
|
|
|
67
|
-
const CloseIcon = () =>
|
|
71
|
+
const CloseIcon = (props) => {
|
|
72
|
+
const { intl } = props;
|
|
73
|
+
return (
|
|
74
|
+
<Icon
|
|
75
|
+
icon="it-close"
|
|
76
|
+
size="24px"
|
|
77
|
+
className="close"
|
|
78
|
+
title={intl.formatMessage(messages.clearDates)}
|
|
79
|
+
/>
|
|
80
|
+
);
|
|
81
|
+
};
|
|
68
82
|
|
|
69
83
|
const DateRangeFacet = (props) => {
|
|
70
84
|
const { facet, isEditMode, onChange, value, reactDates, intl, lang } = props;
|
|
@@ -89,7 +103,7 @@ const DateRangeFacet = (props) => {
|
|
|
89
103
|
disabled={isEditMode}
|
|
90
104
|
noBorder
|
|
91
105
|
showClearDates
|
|
92
|
-
customCloseIcon={<CloseIcon />}
|
|
106
|
+
customCloseIcon={<CloseIcon {...props} />}
|
|
93
107
|
displayFormat={moment.localeData(lang).longDateFormat('L')}
|
|
94
108
|
focusedInput={focused}
|
|
95
109
|
onFocusChange={(focusedInput) => setFocused(focusedInput)}
|
|
@@ -126,7 +126,9 @@ const UniversalLink = ({
|
|
|
126
126
|
config.settings.siteProperties.markSpecialLinks && (
|
|
127
127
|
<Icon
|
|
128
128
|
icon="it-external-link"
|
|
129
|
-
title={title}
|
|
129
|
+
title={`${title ? title + ' - ' : ''}${intl.formatMessage({
|
|
130
|
+
id: 'opensInNewTab',
|
|
131
|
+
})}`}
|
|
130
132
|
size="xs"
|
|
131
133
|
className="ms-1 align-sub external-link"
|
|
132
134
|
/>
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/*
|
|
2
|
+
CUSTOMIZATIONS:
|
|
3
|
+
- used design-react-kit components to render form result
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import { useIntl, defineMessages } from 'react-intl';
|
|
7
|
+
import { Button, Alert } from 'design-react-kit';
|
|
8
|
+
import { getFieldName } from 'volto-form-block/components/utils';
|
|
9
|
+
|
|
10
|
+
const messages = defineMessages({
|
|
11
|
+
success: {
|
|
12
|
+
id: 'form_submit_success',
|
|
13
|
+
defaultMessage: 'Sent!',
|
|
14
|
+
},
|
|
15
|
+
reset: {
|
|
16
|
+
id: 'form_reset',
|
|
17
|
+
defaultMessage: 'Clear',
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
const alertTransition = {
|
|
22
|
+
appear: true,
|
|
23
|
+
baseClass: 'fade',
|
|
24
|
+
baseClassActive: 'show',
|
|
25
|
+
enter: true,
|
|
26
|
+
exit: true,
|
|
27
|
+
in: true,
|
|
28
|
+
mountOnEnter: false,
|
|
29
|
+
tag: 'div',
|
|
30
|
+
timeout: 150,
|
|
31
|
+
unmountOnExit: true,
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/* Function that replaces variables from the user customized message */
|
|
35
|
+
const replaceMessage = (text, sent_data) => {
|
|
36
|
+
let i = 0;
|
|
37
|
+
while (i < sent_data.length) {
|
|
38
|
+
let idField = getFieldName(sent_data[i].label, sent_data[i].field_id);
|
|
39
|
+
text = text.replaceAll('${' + idField + '}', sent_data[i].value ?? '');
|
|
40
|
+
i++;
|
|
41
|
+
}
|
|
42
|
+
text = text.replaceAll(/\$\{[^}]*\}/gm, ''); //replace empty fields with nothing
|
|
43
|
+
text = text.replaceAll('\n', '<br/>');
|
|
44
|
+
return text;
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
const FormResult = ({ formState, data, resetFormState }) => {
|
|
48
|
+
const intl = useIntl();
|
|
49
|
+
return (
|
|
50
|
+
<Alert color="success" fade isOpen tag="div" transition={alertTransition}>
|
|
51
|
+
<h4>{intl.formatMessage(messages.success)}</h4>
|
|
52
|
+
<br />
|
|
53
|
+
{/* Custom message */}
|
|
54
|
+
{data.send_message && (
|
|
55
|
+
<>
|
|
56
|
+
<p
|
|
57
|
+
dangerouslySetInnerHTML={{
|
|
58
|
+
__html: replaceMessage(data.send_message, formState.result.data),
|
|
59
|
+
}}
|
|
60
|
+
/>
|
|
61
|
+
<br />
|
|
62
|
+
</>
|
|
63
|
+
)}
|
|
64
|
+
<Button
|
|
65
|
+
color="primary"
|
|
66
|
+
outline
|
|
67
|
+
onClick={(e) => {
|
|
68
|
+
e.preventDefault();
|
|
69
|
+
e.stopPropagation();
|
|
70
|
+
resetFormState();
|
|
71
|
+
}}
|
|
72
|
+
>
|
|
73
|
+
{intl.formatMessage(messages.reset)}
|
|
74
|
+
</Button>
|
|
75
|
+
</Alert>
|
|
76
|
+
);
|
|
77
|
+
};
|
|
78
|
+
export default FormResult;
|