design-comuni-plone-theme 12.0.0-alpha.1 → 12.1.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/main.yml +17 -17
- package/.github/workflows/{themes.yml → npm.yml} +22 -3
- package/.github/workflows/prs.yml +1 -1
- package/.github/workflows/release.yml +1 -1
- package/.github/workflows/{performance.yml → withnewsletter.yml} +12 -12
- package/.release-it.json +2 -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-collective-volto-sentry-npm-0.3.0-238a1b397a-99e5493e46.zip → @plone-collective-volto-sentry-npm-0.3.1-ffea0b0844-cf3a192860.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/braces-npm-3.0.3-582c14023c-b95aa0b3bd.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/cross-spawn-npm-7.0.6-264bddf921-8d306efaca.zip +0 -0
- package/.yarn/cache/fill-range-npm-7.1.1-bf491486db-b4abfbca38.zip +0 -0
- package/.yarn/cache/intl-messageformat-npm-10.5.11-1feb0e2115-b5574447a0.zip +0 -0
- package/.yarn/cache/micromatch-npm-4.0.8-c9570e4aca-79920eb634.zip +0 -0
- package/.yarn/cache/nanoid-npm-3.3.8-d22226208b-dfe0adbc0c.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-blocks-widget-npm-3.4.1-c4d451e2c2-4f5c183698.zip +0 -0
- package/.yarn/cache/{volto-dropdownmenu-npm-4.1.1-8db37e6495-81edb60075.zip → volto-dropdownmenu-npm-4.1.3-b44ee1c98b-5dc76c2ee7.zip} +0 -0
- package/.yarn/cache/volto-editablefooter-npm-5.1.7-483b4be25b-ad5642959b.zip +0 -0
- package/.yarn/cache/{volto-feedback-npm-0.3.0-6f555b6437-5d4fe03279.zip → volto-feedback-npm-0.6.1-0de05761ad-127b69de40.zip} +0 -0
- package/.yarn/cache/{volto-form-block-npm-3.8.2-e49cbe07d5-5b72a06a5e.zip → volto-form-block-npm-3.10.0-8cd1c7a976-8ddce2c624.zip} +0 -0
- package/.yarn/cache/volto-gdpr-privacy-npm-2.2.12-fbc24c3b6f-ba1b9c0127.zip +0 -0
- package/.yarn/cache/volto-multilingual-widget-npm-3.2.1-6fcb25c017-c24fd5379c.zip +0 -0
- package/.yarn/cache/{volto-secondarymenu-npm-4.0.0-9684028dd3-cec2705740.zip → volto-secondarymenu-npm-4.1.1-f516c1891c-94eeac0bc4.zip} +0 -0
- package/.yarn/cache/volto-site-settings-npm-0.4.4-11da224a90-ef0c504b64.zip +0 -0
- package/.yarn/cache/{volto-slimheader-npm-0.1.1-6c4a32fae4-94bafa197c.zip → volto-slimheader-npm-0.1.2-8495cb2187-fb657c3274.zip} +0 -0
- package/.yarn/cache/{volto-subblocks-npm-2.0.0-5a53bcc26a-7e4774cd63.zip → volto-subblocks-npm-2.1.0-2f162a4b19-a1cc02ca26.zip} +0 -0
- package/.yarn/cache/{volto-subfooter-npm-3.0.0-bc1ad5b16c-c7619ac55e.zip → volto-subfooter-npm-3.1.1-57dfb2cf48-d03848013d.zip} +0 -0
- package/.yarn/cache/volto-subsites-npm-4.0.2-715672140c-77408b4ea1.zip +0 -0
- package/.yarn/cache/{volto-venue-npm-4.0.2-0c5b2ce94f-d6ebdb2e3d.zip → volto-venue-npm-4.1.1-d5be247928-f796d519ad.zip} +0 -0
- package/.yarn/install-state.gz +0 -0
- package/CHANGELOG.md +1619 -488
- package/Makefile +1 -1
- package/RELEASE.md +418 -9
- package/locales/de/LC_MESSAGES/volto.po +265 -16
- package/locales/en/LC_MESSAGES/volto.po +327 -78
- package/locales/es/LC_MESSAGES/volto.po +265 -16
- package/locales/fr/LC_MESSAGES/volto.po +265 -16
- package/locales/it/LC_MESSAGES/volto.po +268 -19
- package/locales/volto.pot +266 -17
- package/package.json +23 -17
- package/publiccode.yml +3 -3
- package/src/components/ImageWithErrors/ImageWithErrors.jsx +30 -0
- package/src/components/ItaliaTheme/AppExtras/GenericAppExtras.jsx +2 -8
- package/src/components/ItaliaTheme/AppExtras/SiteSettingsExtras.jsx +35 -0
- package/src/components/ItaliaTheme/Blocks/Accordion/Block/ViewBlock.jsx +2 -1
- package/src/components/ItaliaTheme/Blocks/Accordion/Edit.jsx +59 -0
- package/src/components/ItaliaTheme/Blocks/Accordion/View.jsx +9 -0
- package/src/components/ItaliaTheme/Blocks/Alert/Edit.jsx +1 -1
- package/src/components/ItaliaTheme/Blocks/ArgumentsInEvidence/BottomBody.jsx +2 -2
- package/src/components/ItaliaTheme/Blocks/BandiSearch/Body.jsx +4 -0
- package/src/components/ItaliaTheme/Blocks/CTABlock/Block.jsx +2 -2
- package/src/components/ItaliaTheme/Blocks/Calendar/Body.jsx +1 -0
- package/src/components/ItaliaTheme/Blocks/Callout/Edit.jsx +2 -2
- package/src/components/ItaliaTheme/Blocks/Common/SearchFilters/DateFilter.jsx +3 -2
- package/src/components/ItaliaTheme/Blocks/Common/SearchFilters/SelectFilter.jsx +11 -3
- package/src/components/ItaliaTheme/Blocks/Common/SearchFilters/TextFilter.jsx +7 -1
- package/src/components/ItaliaTheme/Blocks/ContactsBlock/Block/EditBlock.jsx +17 -15
- package/src/components/ItaliaTheme/Blocks/ContactsBlock/Edit.jsx +12 -6
- package/src/components/ItaliaTheme/Blocks/CountDown/Edit.jsx +2 -2
- package/src/components/ItaliaTheme/Blocks/EventSearch/Body.jsx +17 -2
- package/src/components/ItaliaTheme/Blocks/EventSearch/DefaultFilters.js +8 -15
- package/src/components/ItaliaTheme/Blocks/EventSearch/Sidebar.jsx +16 -5
- package/src/components/ItaliaTheme/Blocks/IconBlocks/Block/EditBlock.jsx +12 -7
- package/src/components/ItaliaTheme/Blocks/IconBlocks/Block/ViewBlock.jsx +8 -14
- package/src/components/ItaliaTheme/Blocks/IconBlocks/Edit.jsx +17 -3
- package/src/components/ItaliaTheme/Blocks/IconBlocks/View.jsx +6 -1
- package/src/components/ItaliaTheme/Blocks/Listing/AttachmentCardTemplate.jsx +9 -5
- package/src/components/ItaliaTheme/Blocks/Listing/CardWithImage/CardWithImageDefault.jsx +17 -7
- package/src/components/ItaliaTheme/Blocks/Listing/CardWithSlideUpTextTemplate.jsx +24 -13
- package/src/components/ItaliaTheme/Blocks/Listing/Commons/CardCalendar.jsx +1 -1
- package/src/components/ItaliaTheme/Blocks/Listing/Commons/ListingImage.jsx +58 -13
- package/src/components/ItaliaTheme/Blocks/Listing/Commons/RassegnaInfo.jsx +28 -0
- package/src/components/ItaliaTheme/Blocks/Listing/CompleteBlockLinksTemplate.jsx +15 -10
- package/src/components/ItaliaTheme/Blocks/Listing/ContentInEvidenceTemplate.jsx +24 -10
- package/src/components/ItaliaTheme/Blocks/Listing/GridGalleryTemplate.jsx +4 -3
- package/src/components/ItaliaTheme/Blocks/Listing/InEvidenceTemplate.jsx +22 -9
- package/src/components/ItaliaTheme/Blocks/Listing/PhotogalleryTemplate.jsx +10 -8
- package/src/components/ItaliaTheme/Blocks/Listing/RibbonCardTemplate.jsx +15 -1
- package/src/components/ItaliaTheme/Blocks/Listing/SimpleCard/Card/SimpleCardDefault.jsx +16 -2
- package/src/components/ItaliaTheme/Blocks/Listing/SliderTemplate.jsx +12 -8
- package/src/components/ItaliaTheme/Blocks/Listing/SmallBlockLinksTemplate.jsx +19 -21
- package/src/components/ItaliaTheme/Blocks/NumbersBlock/Block/EditBlock.jsx +5 -6
- package/src/components/ItaliaTheme/Blocks/NumbersBlock/Edit.jsx +17 -3
- package/src/components/ItaliaTheme/Blocks/NumbersBlock/View.jsx +5 -1
- package/src/components/ItaliaTheme/Blocks/SearchSections/Body.jsx +1 -0
- package/src/components/ItaliaTheme/Blocks/Teaser/ItaliaTeaserBody.jsx +190 -0
- package/src/components/ItaliaTheme/Blocks/Teaser/schema.js +179 -0
- package/src/components/ItaliaTheme/Blocks/TextCard/CardWithImage/Block.jsx +4 -2
- package/src/components/ItaliaTheme/Blocks/TextCard/SimpleCard/Edit.jsx +2 -2
- package/src/components/ItaliaTheme/Blocks/UOSearch/Body.jsx +10 -2
- package/src/components/ItaliaTheme/Blocks/UOSearch/Sidebar.jsx +16 -0
- package/src/components/ItaliaTheme/Blocks/__tests__/Accordion.test.jsx +0 -3
- package/src/components/ItaliaTheme/BrandText/BrandText.jsx +39 -7
- package/src/components/ItaliaTheme/BrandTextFooter/BrandTextFooter.jsx +31 -2
- package/src/components/ItaliaTheme/Breadcrumbs/Breadcrumbs.jsx +16 -8
- package/src/components/ItaliaTheme/Cards/CardCategory.jsx +2 -3
- package/src/components/ItaliaTheme/Cards/CardPersona.jsx +5 -8
- package/src/components/ItaliaTheme/CustomerSatisfaction/FeedbackForm.jsx +27 -23
- package/src/components/ItaliaTheme/CustomerSatisfaction/Steps/AnswersStep.jsx +1 -0
- package/src/components/ItaliaTheme/CustomerSatisfaction/Steps/CommentsStep.jsx +1 -0
- package/src/components/ItaliaTheme/Footer/FooterInfos.jsx +5 -4
- package/src/components/ItaliaTheme/Footer/FooterMain.jsx +4 -4
- package/src/components/ItaliaTheme/Footer/FooterSmall.jsx +10 -5
- package/src/components/ItaliaTheme/Header/HeaderCenter.jsx +5 -6
- package/src/components/ItaliaTheme/Header/HeaderSearch/HeaderSearch.jsx +9 -1
- package/src/components/ItaliaTheme/Header/HeaderSearch/SearchModal.jsx +21 -4
- package/src/components/ItaliaTheme/Header/HeaderSlim/HeaderSlim.jsx +32 -9
- package/src/components/ItaliaTheme/Header/HeaderSlim/LoginButton.jsx +1 -1
- package/src/components/ItaliaTheme/Header/HeaderSlim/TertiaryMenu.jsx +2 -2
- package/src/components/ItaliaTheme/Header/ParentSiteMenu.jsx +17 -2
- package/src/components/ItaliaTheme/Icons/DesignIcon.jsx +80 -29
- package/src/components/ItaliaTheme/Icons/FontAwesomeIcon.jsx +2 -0
- package/src/components/ItaliaTheme/Icons/common/common.js +9 -8
- package/src/components/ItaliaTheme/LoginAgid/LoginAgid.jsx +2 -5
- package/src/components/ItaliaTheme/Logo/Logo.jsx +15 -7
- package/src/components/ItaliaTheme/LogoFooter/LogoFooter.jsx +11 -3
- package/src/components/ItaliaTheme/MegaMenu/MegaMenu.jsx +5 -1
- package/src/components/ItaliaTheme/Pagination/Pagination.jsx +5 -1
- package/src/components/ItaliaTheme/Pagination/PaginationItem.jsx +15 -1
- package/src/components/ItaliaTheme/ScrollToTop/ScrollToTop.jsx +0 -1
- package/src/components/ItaliaTheme/Search/Search.jsx +2 -3
- package/src/components/ItaliaTheme/SkipLinks/SkipLinks.jsx +21 -11
- package/src/components/ItaliaTheme/Slider/NextArrow.jsx +1 -1
- package/src/components/ItaliaTheme/Slider/PrevArrow.jsx +1 -1
- package/src/components/ItaliaTheme/Slider/SingleSlideWrapper.jsx +5 -2
- package/src/components/ItaliaTheme/Unauthorized/Unauthorized.jsx +2 -5
- package/src/components/ItaliaTheme/View/BandoView/BandoApprofondimenti.jsx +1 -1
- package/src/components/ItaliaTheme/View/BandoView/BandoView.jsx +19 -1
- package/src/components/ItaliaTheme/View/Commons/Actions.jsx +2 -2
- package/src/components/ItaliaTheme/View/Commons/Argument/ArgumentIcon.jsx +1 -1
- package/src/components/ItaliaTheme/View/Commons/Attachment.jsx +1 -1
- package/src/components/ItaliaTheme/View/Commons/BandoDates.jsx +27 -47
- package/src/components/ItaliaTheme/View/Commons/ContactsCard.jsx +2 -31
- package/src/components/ItaliaTheme/View/Commons/Dates.jsx +62 -28
- package/src/components/ItaliaTheme/View/Commons/Events.jsx +28 -27
- package/src/components/ItaliaTheme/View/Commons/Gallery.jsx +36 -28
- package/src/components/ItaliaTheme/View/Commons/GenericCard.jsx +14 -13
- package/src/components/ItaliaTheme/View/Commons/HelpBox.jsx +1 -1
- package/src/components/ItaliaTheme/View/Commons/LocationItem.jsx +15 -9
- package/src/components/ItaliaTheme/View/Commons/LocationsMap.jsx +4 -18
- package/src/components/ItaliaTheme/View/Commons/Module.jsx +22 -31
- package/src/components/ItaliaTheme/View/Commons/Modules.jsx +3 -1
- package/src/components/ItaliaTheme/View/Commons/OfficeCard.jsx +7 -3
- package/src/components/ItaliaTheme/View/Commons/PageHeader/PageHeader.jsx +3 -4
- package/src/components/ItaliaTheme/View/Commons/PageHeader/PageHeaderBando.jsx +3 -0
- package/src/components/ItaliaTheme/View/Commons/PageHeader/PageHeaderDates.jsx +0 -10
- package/src/components/ItaliaTheme/View/Commons/PageHeader/PageHeaderEventDates.jsx +62 -14
- package/src/components/ItaliaTheme/View/Commons/PageHeader/PageHeaderTassonomiaArgomenti.jsx +4 -5
- package/src/components/ItaliaTheme/View/Commons/RelatedArticles.jsx +12 -1
- package/src/components/ItaliaTheme/View/Commons/RelatedItemInEvidence/RelatedItemInEvidence.jsx +14 -1
- package/src/components/ItaliaTheme/View/Commons/RelatedItems.jsx +11 -3
- package/src/components/ItaliaTheme/View/Commons/RenderBlocks.jsx +5 -2
- package/src/components/ItaliaTheme/View/Commons/Sharing.jsx +1 -1
- package/src/components/ItaliaTheme/View/Commons/SideMenu.jsx +11 -7
- package/src/components/ItaliaTheme/View/Commons/Sponsors.jsx +14 -10
- package/src/components/ItaliaTheme/View/Commons/VenuesSmall.jsx +13 -6
- package/src/components/ItaliaTheme/View/Commons/__tests__/Dates.test.jsx +1 -1
- package/src/components/ItaliaTheme/View/DocumentoView/DocumentoAccedereServizio.jsx +5 -8
- package/src/components/ItaliaTheme/View/DocumentoView/DocumentoView.jsx +20 -1
- package/src/components/ItaliaTheme/View/EventoView/EventoContatti.jsx +8 -7
- package/src/components/ItaliaTheme/View/EventoView/EventoContattiOrganizzatoreEsterno.jsx +1 -12
- package/src/components/ItaliaTheme/View/EventoView/EventoContattiOrganizzatoreInterno.jsx +1 -12
- package/src/components/ItaliaTheme/View/EventoView/EventoCosE.jsx +17 -2
- package/src/components/ItaliaTheme/View/EventoView/EventoOrganizzatoDa.jsx +38 -0
- package/src/components/ItaliaTheme/View/EventoView/EventoPatrocinatoDa.jsx +38 -0
- package/src/components/ItaliaTheme/View/EventoView/EventoUlterioriInformazioni.jsx +0 -22
- package/src/components/ItaliaTheme/View/EventoView/EventoView.jsx +20 -1
- package/src/components/ItaliaTheme/View/FAQ/FaqFolder/SearchBar.jsx +7 -0
- package/src/components/ItaliaTheme/View/IncaricoView/IncaricoView.jsx +47 -8
- package/src/components/ItaliaTheme/View/NewsItemView/NewsItemText.jsx +33 -10
- package/src/components/ItaliaTheme/View/NewsItemView/NewsItemView.jsx +19 -1
- package/src/components/ItaliaTheme/View/PageView/PageView.jsx +3 -0
- package/src/components/ItaliaTheme/View/PageView/Placeholder/HeaderEnd.jsx +6 -0
- package/src/components/ItaliaTheme/View/PaginaArgomentoView/PaginaArgomentoView.jsx +15 -36
- package/src/components/ItaliaTheme/View/PaginaArgomentoView/PaginaArgomentoViewNoBlocks.jsx +14 -1
- package/src/components/ItaliaTheme/View/PersonaView/PersonaDocumenti.jsx +106 -0
- package/src/components/ItaliaTheme/View/PersonaView/PersonaRuolo.jsx +85 -60
- package/src/components/ItaliaTheme/View/PersonaView/PersonaView.jsx +20 -1
- package/src/components/ItaliaTheme/View/PuntoDiContattoView/PuntoDiContattoView.jsx +2 -2
- package/src/components/ItaliaTheme/View/ServizioView/ServizioAccedi.jsx +5 -1
- package/src/components/ItaliaTheme/View/ServizioView/ServizioCondizioni.jsx +5 -1
- package/src/components/ItaliaTheme/View/ServizioView/ServizioMetatag.jsx +9 -1
- package/src/components/ItaliaTheme/View/ServizioView/ServizioView.jsx +19 -2
- package/src/components/ItaliaTheme/View/UOView/UOMetadati.jsx +12 -0
- package/src/components/ItaliaTheme/View/UOView/UOServices.jsx +20 -2
- package/src/components/ItaliaTheme/View/UOView/UOView.jsx +23 -1
- package/src/components/ItaliaTheme/View/VenueView/VenueView.jsx +24 -11
- package/src/components/ItaliaTheme/View/VenueView/VenueWhere.jsx +1 -1
- package/src/components/ItaliaTheme/View/ViewUtils.jsx +1 -2
- package/src/components/ItaliaTheme/View/__tests__/ServizioTempiScadenze.test.jsx +0 -1
- package/src/components/ItaliaTheme/View/index.js +2 -0
- package/src/components/ItaliaTheme/index.js +1 -1
- package/src/components/ItaliaTheme/manage/Widgets/HtmlSlateWidget.jsx +4 -2
- package/src/components/ItaliaTheme/manage/Widgets/SearchSectionsConfigurationWidget/SearchSectionsConfigurationForm.jsx +2 -2
- package/src/components/SelectInput/SelectInput.jsx +10 -4
- package/src/components/TextInput.jsx +1 -0
- package/src/components/__tests__/FormValidation.test.js +142 -0
- package/src/config/Blocks/ListingOptions/attachmentCardTemplate.js +1 -1
- package/src/config/Blocks/blocks.js +4 -3
- package/src/config/Slate/Blockquote/index.js +7 -0
- package/src/config/Views/views.js +1 -0
- package/src/config/italiaConfig.js +81 -20
- package/src/customizations/volto/actions/vocabularies/vocabularies.js +102 -0
- package/src/customizations/volto/components/manage/AnchorPlugin/components/LinkButton/AddLinkForm.jsx +1 -0
- package/src/customizations/volto/components/manage/Blocks/Listing/ListingBody.jsx +5 -0
- package/src/customizations/volto/components/manage/Blocks/Search/SearchBlockView.jsx +50 -11
- package/src/customizations/volto/components/manage/Blocks/Search/components/DateRangeFacet.jsx +16 -2
- package/src/customizations/volto/components/manage/Blocks/Search/components/SearchDetails.jsx +2 -3
- package/src/customizations/volto/components/manage/Blocks/Search/hocs/withSearch.jsx +6 -4
- package/src/customizations/volto/components/manage/Blocks/Search/layout/LeftColumnFacets.jsx +21 -17
- package/src/customizations/volto/components/manage/Blocks/Search/layout/RightColumnFacets.jsx +21 -17
- package/src/customizations/volto/components/manage/Blocks/Search/schema.js +16 -0
- package/src/customizations/volto/components/manage/Blocks/Teaser/Body.jsx +30 -0
- package/src/customizations/volto/components/manage/Blocks/Video/Body.jsx +6 -5
- package/src/customizations/volto/components/manage/Contents/ContentsUploadModal.jsx +375 -0
- package/src/customizations/volto/components/manage/Controlpanels/Groups/GroupsControlpanel.jsx +709 -0
- package/src/customizations/volto/components/manage/Controlpanels/Groups/RenderGroups.jsx +122 -0
- package/src/customizations/volto/components/manage/Diff/DiffField.jsx +2 -3
- package/src/customizations/volto/components/manage/UniversalLink/UniversalLink.jsx +34 -23
- package/src/customizations/volto/components/manage/Widgets/ObjectBrowserWidget.jsx +1 -1
- package/src/customizations/volto/components/manage/Widgets/RecurrenceWidget/EndField.jsx +18 -11
- package/src/customizations/volto/components/manage/Widgets/RecurrenceWidget/RecurrenceWidget.jsx +240 -117
- package/src/customizations/volto/components/theme/Error/Error.jsx +86 -0
- package/src/customizations/volto/components/theme/Footer/Footer.jsx +17 -16
- package/src/customizations/volto/components/theme/Navigation/Navigation.jsx +22 -7
- package/src/customizations/volto/components/theme/View/LinkView.jsx +81 -0
- package/src/customizations/volto/components/theme/View/ListingView.jsx +3 -3
- package/src/{components/ItaliaTheme/RemoveBodyClass/RemoveBodyClass.jsx → customizations/volto/helpers/BodyClass/BodyClass.jsx} +19 -25
- package/src/customizations/volto/helpers/FormValidation/FormValidation.js +11 -8
- package/src/customizations/volto/helpers/Html/Html.jsx +2 -2
- package/src/customizations/volto-form-block/components/Field.jsx +7 -0
- package/src/customizations/volto-form-block/components/FormResult.jsx +43 -9
- package/src/customizations/volto-form-block/components/FormView.jsx +45 -41
- package/src/customizations/volto-form-block/components/Sidebar.jsx +328 -0
- package/src/customizations/volto-form-block/components/View.jsx +398 -0
- package/src/customizations/volto-form-block/fieldSchema.js +519 -0
- package/src/customizations/volto-form-block/formSchema.js +255 -0
- package/src/helpers/EnhanceLink.js +7 -2
- package/src/helpers/ListingHelper.js +1 -1
- package/src/helpers/blocks.js +0 -6
- package/src/helpers/dates.js +30 -2
- package/src/helpers/files.js +11 -4
- package/src/helpers/files.test.js +90 -0
- package/src/helpers/getItemsByPath.js +23 -1
- package/src/helpers/images.js +77 -0
- package/src/helpers/index.js +11 -0
- package/src/helpers/url.js +22 -0
- package/src/helpers/usePaginatedItemsSection.hook.ts +63 -0
- package/src/overrideTranslations.jsx +73 -0
- package/src/theme/ItaliaTheme/Addons/volto-gdpr-privacy.scss +0 -18
- package/src/theme/ItaliaTheme/Blocks/_accordion.scss +5 -4
- package/src/theme/ItaliaTheme/Blocks/_alert.scss +6 -11
- package/src/theme/ItaliaTheme/Blocks/_cardWithImage.scss +7 -2
- package/src/theme/ItaliaTheme/Blocks/_cardWithSlideUpTextTemplate.scss +19 -1
- package/src/theme/ItaliaTheme/Blocks/_contacts.scss +10 -34
- package/src/theme/ItaliaTheme/Blocks/_countdown.scss +10 -1
- package/src/theme/ItaliaTheme/Blocks/_ctaBlock.scss +8 -10
- package/src/theme/ItaliaTheme/Blocks/_form.scss +38 -32
- package/src/theme/ItaliaTheme/Blocks/_gridBlock.scss +39 -23
- package/src/theme/ItaliaTheme/Blocks/_iconBlocks.scss +10 -51
- package/src/theme/ItaliaTheme/Blocks/_inEvidenceTemplate.scss +1 -1
- package/src/theme/ItaliaTheme/Blocks/_listing.scss +0 -3
- package/src/theme/ItaliaTheme/Blocks/_numbers.scss +5 -15
- package/src/theme/ItaliaTheme/Blocks/_photogallerytemplate.scss +2 -2
- package/src/theme/ItaliaTheme/Blocks/_search.scss +20 -2
- package/src/theme/ItaliaTheme/Blocks/_sliderTemplate.scss +4 -4
- package/src/theme/ItaliaTheme/Blocks/_subblocks-edit.scss +3 -1
- package/src/theme/ItaliaTheme/Blocks/common/_searchBlockFilters.scss +10 -2
- package/src/theme/ItaliaTheme/Components/_card.scss +27 -7
- package/src/theme/ItaliaTheme/Components/_cardLocationItem.scss +12 -0
- package/src/theme/ItaliaTheme/Components/_cardPersona.scss +21 -1
- package/src/theme/ItaliaTheme/Components/_metadata.scss +1 -0
- package/src/theme/ItaliaTheme/Components/_mobileMenu.scss +12 -16
- package/src/theme/ItaliaTheme/Components/_pager.scss +10 -0
- package/src/theme/ItaliaTheme/Print/_all_pages.scss +98 -15
- package/src/theme/ItaliaTheme/Print/_blocks.scss +915 -8
- package/src/theme/ItaliaTheme/Print/_page.scss +1 -7
- package/src/theme/ItaliaTheme/Subsites/ItaliaTheme/Blocks/_contacts.scss +3 -0
- package/src/theme/ItaliaTheme/Views/_common.scss +27 -0
- package/src/theme/ItaliaTheme/Views/_servizio.scss +6 -0
- package/src/theme/ItaliaTheme/Views/_slider.scss +4 -0
- package/src/theme/ItaliaTheme/Widgets/_blocksWidget.scss +37 -0
- package/src/theme/ItaliaTheme/Widgets/_reactSelect.scss +5 -1
- package/src/theme/ItaliaTheme/_ar.scss +3 -2
- package/src/theme/ItaliaTheme/_common.scss +11 -6
- package/src/theme/ItaliaTheme/_home.scss +4 -6
- package/src/theme/ItaliaTheme/_main.scss +51 -1
- package/src/theme/ItaliaTheme/_white-header.scss +1 -1
- package/src/theme/_cms-ui.scss +150 -31
- package/src/theme/_mixins.scss +13 -0
- package/src/theme/_site-variables.scss +5 -6
- package/src/theme/bootstrap-override/_bootstrap-italia-site.scss +3 -0
- package/src/theme/bootstrap-override/bootstrap/_print.scss +1 -0
- package/src/theme/bootstrap-override/bootstrap-italia/_avatar.scss +28 -0
- package/src/theme/bootstrap-override/bootstrap-italia/_buttons.scss +18 -0
- package/src/theme/bootstrap-override/bootstrap-italia/_card.scss +12 -2
- package/src/theme/bootstrap-override/bootstrap-italia/_focus.scss +23 -0
- package/src/theme/bootstrap-override/bootstrap-italia/_footer.scss +1 -1
- package/src/theme/bootstrap-override/bootstrap-italia/_form-select.scss +17 -0
- package/src/theme/bootstrap-override/bootstrap-italia/_forms.scss +7 -0
- package/src/theme/bootstrap-override/bootstrap-italia/_headercenter.scss +19 -5
- package/src/theme/extras/_modals.scss +13 -0
- package/src/theme/extras/_search.scss +5 -0
- package/src/theme/extras/_tables.scss +12 -13
- package/src/theme/site.scss +0 -3
- package/.github/workflows/slate.yml +0 -47
- package/.yarn/cache/braces-npm-3.0.2-782240b28a-e2a8e769a8.zip +0 -0
- package/.yarn/cache/cross-spawn-npm-7.0.3-e4ff3e65b3-671cc7c728.zip +0 -0
- package/.yarn/cache/fill-range-npm-7.0.1-b8b1817caa-cc283f4e65.zip +0 -0
- package/.yarn/cache/fsevents-patch-3340e2eb10-8.zip +0 -0
- package/.yarn/cache/micromatch-npm-4.0.5-cfab5d7669-02a17b671c.zip +0 -0
- package/.yarn/cache/nanoid-npm-3.3.6-e6d6ae7e71-7d0eda6570.zip +0 -0
- package/.yarn/cache/volto-blocks-widget-npm-3.4.0-a61b810f4f-355675359c.zip +0 -0
- package/.yarn/cache/volto-editablefooter-npm-5.1.1-a6579f67d9-c9a2e1f96f.zip +0 -0
- package/.yarn/cache/volto-gdpr-privacy-npm-2.2.0-6be0f74d53-8a93254251.zip +0 -0
- package/.yarn/cache/volto-multilingual-widget-npm-3.0.0-58c1ce4fb7-3fa0611e79.zip +0 -0
- package/.yarn/cache/volto-subsites-npm-4.0.0-17412b8f3b-9f943abc00.zip +0 -0
- package/src/customizations/volto/components/manage/BlockChooser/BlockChooserButton.jsx +0 -157
- package/src/customizations/volto/components/theme/View/disabled_View.jsx +0 -308
- package/src/customizations/volto/helpers/Api/disabled_Api.js +0 -131
- package/src/theme/ItaliaTheme/Components/_logo.scss +0 -10
- package/src/theme/ItaliaTheme/Print/_bandi.scss +0 -9
- package/src/theme/ItaliaTheme/Print/_news_items.scss +0 -19
- /package/src/components/ItaliaTheme/View/{__tests__/IncaricoView.test.jsx → __disabled_tests__/IncaricoView.test__disabled.jsx} +0 -0
package/src/customizations/volto/components/manage/Widgets/RecurrenceWidget/RecurrenceWidget.jsx
CHANGED
|
@@ -1,19 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* RecurrenceWidget component.
|
|
3
3
|
* @module components/manage/Widgets/RecurrenceWidget
|
|
4
|
-
*
|
|
5
|
-
* - add date field open calendar on top
|
|
6
|
-
* - fix all imports and rrulei18n use
|
|
7
|
-
* - added customization to have this changes https://github.com/plone/volto/pull/5555/files
|
|
4
|
+
* See https://github.com/RedTurtle/design-comuni-plone-theme/pull/741 for notable changes and reasons
|
|
8
5
|
*/
|
|
9
6
|
|
|
10
7
|
import React, { Component } from 'react';
|
|
8
|
+
import { compose } from 'redux';
|
|
9
|
+
import { connect } from 'react-redux';
|
|
11
10
|
import PropTypes from 'prop-types';
|
|
12
|
-
import moment from 'moment';
|
|
13
|
-
import { RRule, RRuleSet, rrulestr } from 'rrule';
|
|
14
11
|
|
|
15
12
|
import cx from 'classnames';
|
|
16
|
-
import {
|
|
13
|
+
import {
|
|
14
|
+
isEqual,
|
|
15
|
+
map,
|
|
16
|
+
find,
|
|
17
|
+
concat,
|
|
18
|
+
remove,
|
|
19
|
+
isNil,
|
|
20
|
+
isBoolean,
|
|
21
|
+
isArray,
|
|
22
|
+
isString,
|
|
23
|
+
isObject,
|
|
24
|
+
isEmpty,
|
|
25
|
+
isNumber,
|
|
26
|
+
omitBy,
|
|
27
|
+
} from 'lodash';
|
|
17
28
|
import { defineMessages, injectIntl } from 'react-intl';
|
|
18
29
|
import {
|
|
19
30
|
Form,
|
|
@@ -24,8 +35,9 @@ import {
|
|
|
24
35
|
Modal,
|
|
25
36
|
Header,
|
|
26
37
|
} from 'semantic-ui-react';
|
|
27
|
-
|
|
28
38
|
import { SelectWidget, Icon, DatetimeWidget } from '@plone/volto/components';
|
|
39
|
+
import { toBackendLang } from '@plone/volto/helpers';
|
|
40
|
+
import { injectLazyLibs } from '@plone/volto/helpers/Loadable/Loadable';
|
|
29
41
|
|
|
30
42
|
import saveSVG from '@plone/volto/icons/save.svg';
|
|
31
43
|
import editingSVG from '@plone/volto/icons/editing.svg';
|
|
@@ -181,8 +193,10 @@ class RecurrenceWidget extends Component {
|
|
|
181
193
|
*/
|
|
182
194
|
constructor(props, intl) {
|
|
183
195
|
super(props);
|
|
196
|
+
const { RRuleSet, rrulestr } = props.rrule;
|
|
184
197
|
|
|
185
|
-
moment
|
|
198
|
+
this.moment = this.props.moment.default;
|
|
199
|
+
this.moment.locale(toBackendLang(this.props.lang));
|
|
186
200
|
|
|
187
201
|
let rruleSet = this.props.value
|
|
188
202
|
? rrulestr(props.value, {
|
|
@@ -199,11 +213,12 @@ class RecurrenceWidget extends Component {
|
|
|
199
213
|
this.state = {
|
|
200
214
|
open: false,
|
|
201
215
|
rruleSet: rruleSet,
|
|
216
|
+
editRruleSet: rruleSet,
|
|
202
217
|
formValues: this.getFormValues(rruleSet),
|
|
203
218
|
RRULE_LANGUAGE: rrulei18n(
|
|
204
219
|
this.props.intl,
|
|
205
|
-
moment,
|
|
206
|
-
this.props.
|
|
220
|
+
this.moment,
|
|
221
|
+
toBackendLang(this.props.lang),
|
|
207
222
|
),
|
|
208
223
|
};
|
|
209
224
|
}
|
|
@@ -222,7 +237,6 @@ class RecurrenceWidget extends Component {
|
|
|
222
237
|
|
|
223
238
|
if (changedStart || changedEnd) {
|
|
224
239
|
let start = this.getUTCDate(this.props.formData?.start).toDate();
|
|
225
|
-
// let end = this.getUTCDate(this.props.formData?.end).toDate();
|
|
226
240
|
|
|
227
241
|
let changeFormValues = {};
|
|
228
242
|
if (changedEnd) {
|
|
@@ -240,7 +254,6 @@ class RecurrenceWidget extends Component {
|
|
|
240
254
|
'dtstart',
|
|
241
255
|
start,
|
|
242
256
|
);
|
|
243
|
-
|
|
244
257
|
return {
|
|
245
258
|
...prevState,
|
|
246
259
|
rruleSet,
|
|
@@ -255,6 +268,29 @@ class RecurrenceWidget extends Component {
|
|
|
255
268
|
}
|
|
256
269
|
}
|
|
257
270
|
|
|
271
|
+
cleanRRuleObject(rruleObj) {
|
|
272
|
+
// Recursive function for rrule options object cleanup
|
|
273
|
+
function cleanObject(obj) {
|
|
274
|
+
// Use _.omitBy to remove all objectlike falsish and falsish values, preserve dates/string dates/strings/booleans
|
|
275
|
+
return omitBy(obj, (value) => {
|
|
276
|
+
if (
|
|
277
|
+
(isString(value) && !isNaN(Date.parse(value))) ||
|
|
278
|
+
(value instanceof Date && !isNaN(value.getTime()))
|
|
279
|
+
)
|
|
280
|
+
return false;
|
|
281
|
+
if (isString(value) || isBoolean(value) || isNumber(value))
|
|
282
|
+
return false;
|
|
283
|
+
// Everything else goes
|
|
284
|
+
return (
|
|
285
|
+
isNil(value) ||
|
|
286
|
+
(isArray(value) && isEmpty(value)) ||
|
|
287
|
+
(isObject(value) && isEmpty(value))
|
|
288
|
+
);
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
return cleanObject(rruleObj);
|
|
292
|
+
}
|
|
293
|
+
|
|
258
294
|
editRecurrence = () => {
|
|
259
295
|
this.setRecurrenceStartEnd();
|
|
260
296
|
};
|
|
@@ -262,25 +298,31 @@ class RecurrenceWidget extends Component {
|
|
|
262
298
|
setRecurrenceStartEnd = () => {
|
|
263
299
|
const start = this.props.formData?.start;
|
|
264
300
|
|
|
265
|
-
|
|
301
|
+
// The `start` date from Plone is in UTC
|
|
302
|
+
const _start = new Date(start);
|
|
266
303
|
|
|
267
304
|
this.setState((prevState) => {
|
|
268
|
-
let
|
|
269
|
-
const formValues = this.getFormValues(
|
|
305
|
+
let editRruleSet = prevState.rruleSet;
|
|
306
|
+
const formValues = this.getFormValues(editRruleSet); //to set default values, included end
|
|
270
307
|
|
|
271
|
-
|
|
308
|
+
editRruleSet = this.updateRruleSet(
|
|
309
|
+
editRruleSet,
|
|
310
|
+
formValues,
|
|
311
|
+
'dtstart',
|
|
312
|
+
_start,
|
|
313
|
+
);
|
|
272
314
|
return {
|
|
273
315
|
...prevState,
|
|
274
|
-
|
|
316
|
+
editRruleSet,
|
|
275
317
|
formValues,
|
|
276
318
|
};
|
|
277
319
|
});
|
|
278
320
|
};
|
|
279
321
|
|
|
280
322
|
getUTCDate = (date) => {
|
|
281
|
-
return date
|
|
282
|
-
? moment(date).utc()
|
|
283
|
-
: moment(`${date}Z`).utc();
|
|
323
|
+
return date?.match(/T(.)*(-|\+|Z)/g)
|
|
324
|
+
? this.moment(date).utc()
|
|
325
|
+
: this.moment(`${date}Z`).utc();
|
|
284
326
|
};
|
|
285
327
|
|
|
286
328
|
show = (dimmer) => () => {
|
|
@@ -320,24 +362,23 @@ class RecurrenceWidget extends Component {
|
|
|
320
362
|
* */
|
|
321
363
|
getFormValues = (rruleSet) => {
|
|
322
364
|
//default
|
|
323
|
-
let formValues = {
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
);
|
|
365
|
+
let formValues = {};
|
|
366
|
+
if (!formValues.recurrenceEnds)
|
|
367
|
+
formValues = this.changeField(
|
|
368
|
+
formValues,
|
|
369
|
+
'recurrenceEnds',
|
|
370
|
+
this.props.formData?.end && !this.props?.formData?.open_end
|
|
371
|
+
? 'until'
|
|
372
|
+
: 'count',
|
|
373
|
+
);
|
|
333
374
|
|
|
334
375
|
const rrule = rruleSet.rrules()[0];
|
|
335
376
|
|
|
336
|
-
if (rrule) {
|
|
337
|
-
|
|
338
|
-
|
|
377
|
+
if (rrule?.options) {
|
|
378
|
+
const rruleOptions = this.cleanRRuleObject(rrule.options);
|
|
379
|
+
var freq = this.getFreq(rruleOptions?.freq, rruleOptions?.byweekday);
|
|
339
380
|
//init with rruleOptions
|
|
340
|
-
Object.entries(
|
|
381
|
+
Object.entries(rruleOptions).forEach(([option, value]) => {
|
|
341
382
|
switch (option) {
|
|
342
383
|
case 'freq':
|
|
343
384
|
formValues[option] = freq;
|
|
@@ -346,28 +387,31 @@ class RecurrenceWidget extends Component {
|
|
|
346
387
|
if (value != null) {
|
|
347
388
|
formValues['recurrenceEnds'] = option;
|
|
348
389
|
formValues[option] = value;
|
|
390
|
+
formValues['until'] = null;
|
|
349
391
|
}
|
|
350
392
|
break;
|
|
351
393
|
case 'until':
|
|
352
|
-
|
|
353
|
-
|
|
394
|
+
// Handle open ended events
|
|
395
|
+
if (
|
|
396
|
+
(value !== null && this.props.formData.end) ||
|
|
397
|
+
this.props.formData.open_end
|
|
398
|
+
) {
|
|
399
|
+
if (value !== null) formValues['recurrenceEnds'] = option;
|
|
354
400
|
formValues[option] = value;
|
|
355
401
|
}
|
|
356
402
|
break;
|
|
357
403
|
case 'byweekday':
|
|
404
|
+
// Correct handling of freq
|
|
358
405
|
if (value && value.length > 0) {
|
|
359
406
|
if (isEqual(value, WEEKLY_DAYS)) {
|
|
360
407
|
formValues['freq'] = FREQUENCES.WEEKDAYS;
|
|
361
|
-
}
|
|
362
|
-
if (isEqual(value, MONDAYFRIDAY_DAYS)) {
|
|
408
|
+
} else if (isEqual(value, MONDAYFRIDAY_DAYS)) {
|
|
363
409
|
formValues['freq'] = FREQUENCES.MONDAYFRIDAY;
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
formValues[option] = value
|
|
367
|
-
? value.map((d) => {
|
|
410
|
+
} else
|
|
411
|
+
formValues[option] = value.map((d) => {
|
|
368
412
|
return this.getWeekday(d);
|
|
369
|
-
})
|
|
370
|
-
|
|
413
|
+
});
|
|
414
|
+
}
|
|
371
415
|
break;
|
|
372
416
|
case 'bymonthday':
|
|
373
417
|
if (value && value.length > 0) {
|
|
@@ -391,14 +435,17 @@ class RecurrenceWidget extends Component {
|
|
|
391
435
|
if (value && value.length > 0) {
|
|
392
436
|
//[weekDayNumber,orinal_number] -> translated is for example: [sunday, third] -> the third sunday of the month
|
|
393
437
|
|
|
394
|
-
if (freq === FREQUENCES.
|
|
438
|
+
if (freq === FREQUENCES.MONTHLY) {
|
|
395
439
|
formValues['monthly'] = 'byweekday';
|
|
396
440
|
}
|
|
397
441
|
if (freq === FREQUENCES.YEARLY) {
|
|
398
442
|
formValues['yearly'] = 'byday';
|
|
399
443
|
}
|
|
444
|
+
const weekday = this.getWeekday(value[0][0]);
|
|
445
|
+
weekday.n = value[0][1];
|
|
400
446
|
formValues['weekdayOfTheMonth'] = value[0][0];
|
|
401
447
|
formValues['weekdayOfTheMonthIndex'] = value[0][1];
|
|
448
|
+
formValues['byweekday'] = weekday;
|
|
402
449
|
}
|
|
403
450
|
break;
|
|
404
451
|
case 'bymonth':
|
|
@@ -406,13 +453,19 @@ class RecurrenceWidget extends Component {
|
|
|
406
453
|
formValues['yearly'] = 'byday';
|
|
407
454
|
}
|
|
408
455
|
formValues['monthOfTheYear'] = value ? value[0] : null;
|
|
456
|
+
// Fix bymonth handling
|
|
457
|
+
formValues[option] = value ? value : null;
|
|
409
458
|
break;
|
|
410
|
-
|
|
411
459
|
default:
|
|
412
460
|
formValues[option] = value;
|
|
413
461
|
}
|
|
414
462
|
});
|
|
415
|
-
}
|
|
463
|
+
} else
|
|
464
|
+
formValues = {
|
|
465
|
+
...formValues,
|
|
466
|
+
freq: FREQUENCES.DAILY,
|
|
467
|
+
interval: 1,
|
|
468
|
+
};
|
|
416
469
|
return formValues;
|
|
417
470
|
};
|
|
418
471
|
|
|
@@ -423,7 +476,6 @@ class RecurrenceWidget extends Component {
|
|
|
423
476
|
NoRRuleOptions.forEach((opt) => {
|
|
424
477
|
delete values[opt];
|
|
425
478
|
});
|
|
426
|
-
|
|
427
479
|
//transform values for rrule
|
|
428
480
|
Object.keys(values).forEach((field) => {
|
|
429
481
|
var value = values[field];
|
|
@@ -436,17 +488,17 @@ class RecurrenceWidget extends Component {
|
|
|
436
488
|
case 'until':
|
|
437
489
|
let mDate = null;
|
|
438
490
|
if (value) {
|
|
439
|
-
mDate = moment(new Date(value));
|
|
491
|
+
mDate = this.moment(new Date(value));
|
|
440
492
|
if (typeof value === 'string') {
|
|
441
|
-
mDate = moment(new Date(value));
|
|
493
|
+
mDate = this.moment(new Date(value));
|
|
442
494
|
} else {
|
|
443
495
|
//object-->Date()
|
|
444
|
-
mDate = moment(value);
|
|
496
|
+
mDate = this.moment(value);
|
|
445
497
|
}
|
|
446
498
|
|
|
447
499
|
if (this.props.formData.end) {
|
|
448
500
|
//set time from formData.end
|
|
449
|
-
const mEnd = moment(new Date(this.props.formData.end));
|
|
501
|
+
const mEnd = this.moment(new Date(this.props.formData.end));
|
|
450
502
|
mDate.set('hour', mEnd.get('hour'));
|
|
451
503
|
mDate.set('minute', mEnd.get('minute'));
|
|
452
504
|
}
|
|
@@ -456,8 +508,7 @@ class RecurrenceWidget extends Component {
|
|
|
456
508
|
default:
|
|
457
509
|
break;
|
|
458
510
|
}
|
|
459
|
-
|
|
460
|
-
if (value) {
|
|
511
|
+
if (value === 0 || value) {
|
|
461
512
|
//set value
|
|
462
513
|
values[field] = value;
|
|
463
514
|
} else {
|
|
@@ -470,41 +521,67 @@ class RecurrenceWidget extends Component {
|
|
|
470
521
|
};
|
|
471
522
|
|
|
472
523
|
updateRruleSet = (rruleSet, formValues, field, value) => {
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
524
|
+
let rruleOptions = this.formValuesToRRuleOptions(formValues);
|
|
525
|
+
let dstart = undefined;
|
|
526
|
+
if (rruleSet.dtstart()) {
|
|
527
|
+
// Se hai una ricorrenza usala
|
|
528
|
+
dstart = rruleSet.dtstart();
|
|
529
|
+
} else {
|
|
530
|
+
if (this.props.formData.start) {
|
|
531
|
+
// Verifica chi tra start e end vuoi usare in base al contronto tra le date e al flag fine aperta
|
|
532
|
+
const mstart = this.moment(new Date(this.props.formData.start));
|
|
533
|
+
const mend = this.moment(new Date(this.props.formData.end));
|
|
534
|
+
if (mstart.isSame(mend, 'day')) {
|
|
535
|
+
dstart = mstart.toDate();
|
|
536
|
+
} else {
|
|
537
|
+
if (this.props.formData.open_end) dstart = mstart.toDate();
|
|
538
|
+
else dstart = mend.toDate();
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
let exdates = Object.assign([], rruleSet.exdates());
|
|
543
|
+
let rdates = Object.assign([], rruleSet.rdates());
|
|
544
|
+
if (field === 'dtstart') dstart = value;
|
|
545
|
+
else if (field === 'exdates') exdates = value;
|
|
546
|
+
else if (field === 'rdates') rdates = value;
|
|
547
|
+
else if (field === 'freq') {
|
|
548
|
+
// reset ex and rdates
|
|
549
|
+
exdates = [];
|
|
550
|
+
rdates = [];
|
|
551
|
+
}
|
|
485
552
|
|
|
486
553
|
rruleOptions.dtstart = dstart;
|
|
554
|
+
let sanitizedRruleOptions = this.cleanRRuleObject(rruleOptions);
|
|
555
|
+
|
|
556
|
+
const { RRule, RRuleSet } = this.props.rrule;
|
|
487
557
|
|
|
488
558
|
let set = new RRuleSet();
|
|
489
559
|
//set.dtstart(dstart);
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
560
|
+
if (!sanitizedRruleOptions.count && !sanitizedRruleOptions.until) {
|
|
561
|
+
// Limit to 100, otherwise you can get up tp 500k recurrences, blocking browser
|
|
562
|
+
// 100 is an arbitrary value
|
|
563
|
+
sanitizedRruleOptions = { ...sanitizedRruleOptions, count: 100 };
|
|
564
|
+
}
|
|
565
|
+
set.rrule(new RRule(sanitizedRruleOptions));
|
|
566
|
+
for (const ex of exdates) set.exdate(ex);
|
|
567
|
+
for (const r of rdates) set.rdate(r);
|
|
495
568
|
return set;
|
|
496
569
|
};
|
|
497
570
|
|
|
498
571
|
getDefaultUntil = (freq) => {
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
572
|
+
// No clue why this opinionated set of rules
|
|
573
|
+
// Let's handle open end events
|
|
574
|
+
const moment = this.moment;
|
|
575
|
+
let end =
|
|
576
|
+
this.props.formData?.end && !this.props.formData?.open_end
|
|
577
|
+
? moment(new Date(this.props.formData.end))
|
|
578
|
+
: null;
|
|
502
579
|
var tomorrow = moment().add(1, 'days');
|
|
503
580
|
var nextWeek = moment().add(7, 'days');
|
|
504
581
|
var nextMonth = moment().add(1, 'months');
|
|
505
582
|
var nextYear = moment().add(1, 'years');
|
|
506
583
|
|
|
507
|
-
|
|
584
|
+
let until = end;
|
|
508
585
|
switch (freq) {
|
|
509
586
|
case FREQUENCES.DAILY:
|
|
510
587
|
until = end ? end : tomorrow;
|
|
@@ -527,38 +604,41 @@ class RecurrenceWidget extends Component {
|
|
|
527
604
|
default:
|
|
528
605
|
break;
|
|
529
606
|
}
|
|
530
|
-
if (this.props.formData.end) {
|
|
531
|
-
//set default end time
|
|
532
|
-
until.set('hour', end.get('hour'));
|
|
533
|
-
until.set('minute', end.get('minute'));
|
|
534
|
-
}
|
|
535
607
|
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
608
|
+
// if (this.props.formData.end) {
|
|
609
|
+
// //set default end time
|
|
610
|
+
// until.set('hour', end.get('hour'));
|
|
611
|
+
// until.set('minute', end.get('minute'));
|
|
612
|
+
// }
|
|
613
|
+
if (until)
|
|
614
|
+
until = new Date(
|
|
615
|
+
until.get('year'),
|
|
616
|
+
until.get('month'),
|
|
617
|
+
until.get('date'),
|
|
618
|
+
until.get('hour'),
|
|
619
|
+
until.get('minute'),
|
|
620
|
+
);
|
|
543
621
|
|
|
544
622
|
return until;
|
|
545
623
|
};
|
|
546
624
|
|
|
547
625
|
changeField = (formValues, field, value) => {
|
|
548
|
-
// git p.log('field', field, 'value', value);
|
|
549
626
|
//get weekday from state.
|
|
550
|
-
|
|
627
|
+
const moment = this.moment;
|
|
628
|
+
const byweekday =
|
|
551
629
|
this.state?.rruleSet?.rrules().length > 0
|
|
552
630
|
? this.state.rruleSet.rrules()[0].origOptions.byweekday
|
|
553
|
-
:
|
|
554
|
-
|
|
555
|
-
|
|
631
|
+
: formValues.byweekday
|
|
632
|
+
? formValues.byweekday
|
|
633
|
+
: null;
|
|
634
|
+
const currWeekday = this.getWeekday(moment().day() - 1);
|
|
635
|
+
const currMonth = moment().month() + 1;
|
|
556
636
|
|
|
557
|
-
|
|
637
|
+
const startMonth = this.props.formData?.start
|
|
558
638
|
? moment(this.props.formData.start).month() + 1
|
|
559
639
|
: currMonth;
|
|
560
640
|
|
|
561
|
-
|
|
641
|
+
const startWeekday = this.props.formData?.start
|
|
562
642
|
? this.getWeekday(moment(this.props.formData.start).day() - 1)
|
|
563
643
|
: currWeekday;
|
|
564
644
|
formValues[field] = value;
|
|
@@ -583,7 +663,11 @@ class RecurrenceWidget extends Component {
|
|
|
583
663
|
formValues = this.changeField(formValues, 'byweekday', null);
|
|
584
664
|
formValues = this.changeField(formValues, 'monthOfTheYear', null);
|
|
585
665
|
|
|
586
|
-
if (
|
|
666
|
+
if (
|
|
667
|
+
!formValues.count &&
|
|
668
|
+
!formValues.until &&
|
|
669
|
+
!this.props.formData.open_end
|
|
670
|
+
) {
|
|
587
671
|
formValues.until = this.getDefaultUntil(value);
|
|
588
672
|
}
|
|
589
673
|
|
|
@@ -656,7 +740,8 @@ class RecurrenceWidget extends Component {
|
|
|
656
740
|
break;
|
|
657
741
|
|
|
658
742
|
case 'monthOfTheYear':
|
|
659
|
-
|
|
743
|
+
// Fix check, null and undefined are falsish
|
|
744
|
+
if (!value) {
|
|
660
745
|
delete formValues.bymonth;
|
|
661
746
|
} else {
|
|
662
747
|
formValues.bymonth = [value];
|
|
@@ -706,6 +791,10 @@ class RecurrenceWidget extends Component {
|
|
|
706
791
|
default:
|
|
707
792
|
break;
|
|
708
793
|
}
|
|
794
|
+
// Somehow it goes missing sometimes, no clue where anymore, force add it
|
|
795
|
+
if (formValues?.weekdayOfTheMonth && !formValues.monthly) {
|
|
796
|
+
formValues = { ...formValues, monthly: 'byweekday' };
|
|
797
|
+
}
|
|
709
798
|
return formValues;
|
|
710
799
|
};
|
|
711
800
|
|
|
@@ -714,24 +803,41 @@ class RecurrenceWidget extends Component {
|
|
|
714
803
|
formValues = this.changeField(formValues, field, value);
|
|
715
804
|
|
|
716
805
|
this.setState((prevState) => {
|
|
717
|
-
var
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
...prevState,
|
|
721
|
-
rruleSet,
|
|
806
|
+
var editRruleSet = prevState.editRruleSet;
|
|
807
|
+
editRruleSet = this.updateRruleSet(
|
|
808
|
+
editRruleSet,
|
|
722
809
|
formValues,
|
|
723
|
-
|
|
810
|
+
field,
|
|
811
|
+
value,
|
|
812
|
+
);
|
|
813
|
+
return editRruleSet
|
|
814
|
+
? {
|
|
815
|
+
...prevState,
|
|
816
|
+
editRruleSet,
|
|
817
|
+
formValues,
|
|
818
|
+
}
|
|
819
|
+
: { ...prevState, formValues };
|
|
724
820
|
});
|
|
725
821
|
};
|
|
726
822
|
|
|
823
|
+
// Handle rdates too, they were left behind :(
|
|
727
824
|
exclude = (date) => {
|
|
728
|
-
let
|
|
729
|
-
|
|
730
|
-
|
|
825
|
+
let additionalDates = this.state.editRruleSet.rdates();
|
|
826
|
+
let exDates = this.state.editRruleSet.exdates();
|
|
827
|
+
|
|
828
|
+
if (additionalDates.some((ad) => ad.getTime() === date.getTime())) {
|
|
829
|
+
remove(additionalDates, (ad) => {
|
|
830
|
+
return ad.getTime() === date.getTime();
|
|
831
|
+
});
|
|
832
|
+
this.onChangeRule('rdates', additionalDates);
|
|
833
|
+
} else {
|
|
834
|
+
exDates.push(date);
|
|
835
|
+
this.onChangeRule('exdates', exDates);
|
|
836
|
+
}
|
|
731
837
|
};
|
|
732
838
|
|
|
733
839
|
undoExclude = (date) => {
|
|
734
|
-
let list = this.state.
|
|
840
|
+
let list = this.state.editRruleSet.exdates().slice(0);
|
|
735
841
|
remove(list, (e) => {
|
|
736
842
|
return e.getTime() === date.getTime();
|
|
737
843
|
});
|
|
@@ -739,7 +845,11 @@ class RecurrenceWidget extends Component {
|
|
|
739
845
|
};
|
|
740
846
|
|
|
741
847
|
addDate = (date) => {
|
|
742
|
-
|
|
848
|
+
const moment = this.moment;
|
|
849
|
+
let all = concat(
|
|
850
|
+
this.state.editRruleSet.all(),
|
|
851
|
+
this.state.editRruleSet.exdates(),
|
|
852
|
+
);
|
|
743
853
|
|
|
744
854
|
var simpleDate = moment(new Date(date)).startOf('day').toDate().getTime();
|
|
745
855
|
var exists = find(all, (e) => {
|
|
@@ -747,14 +857,18 @@ class RecurrenceWidget extends Component {
|
|
|
747
857
|
return d === simpleDate;
|
|
748
858
|
});
|
|
749
859
|
if (!exists) {
|
|
750
|
-
let list = this.state.
|
|
860
|
+
let list = this.state.editRruleSet.rdates().slice(0);
|
|
751
861
|
list.push(new Date(date));
|
|
752
862
|
this.onChangeRule('rdates', list);
|
|
753
863
|
}
|
|
754
864
|
};
|
|
755
865
|
|
|
756
866
|
saveRrule = () => {
|
|
757
|
-
var value = this.state.
|
|
867
|
+
var value = this.state.editRruleSet.toString();
|
|
868
|
+
this.setState((prev) => ({
|
|
869
|
+
...prev,
|
|
870
|
+
rruleSet: prev.editRruleSet,
|
|
871
|
+
}));
|
|
758
872
|
this.props.onChange(this.props.id, value);
|
|
759
873
|
};
|
|
760
874
|
|
|
@@ -764,17 +878,19 @@ class RecurrenceWidget extends Component {
|
|
|
764
878
|
};
|
|
765
879
|
|
|
766
880
|
remove = () => {
|
|
881
|
+
const { RRuleSet } = this.props.rrule;
|
|
767
882
|
this.props.onChange(this.props.id, null);
|
|
768
883
|
let rruleSet = new RRuleSet();
|
|
769
884
|
this.setState({
|
|
885
|
+
editRruleSet: rruleSet,
|
|
770
886
|
rruleSet: rruleSet,
|
|
771
887
|
formValues: this.getFormValues(rruleSet),
|
|
772
888
|
});
|
|
773
889
|
};
|
|
774
890
|
|
|
775
891
|
render() {
|
|
776
|
-
const { open, dimmer, rruleSet, formValues, RRULE_LANGUAGE } =
|
|
777
|
-
|
|
892
|
+
const { open, dimmer, rruleSet, editRruleSet, formValues, RRULE_LANGUAGE } =
|
|
893
|
+
this.state;
|
|
778
894
|
const { id, title, required, description, error, fieldSet, intl } =
|
|
779
895
|
this.props;
|
|
780
896
|
|
|
@@ -787,7 +903,7 @@ class RecurrenceWidget extends Component {
|
|
|
787
903
|
id={`${fieldSet || 'field'}-${id}`}
|
|
788
904
|
>
|
|
789
905
|
<Grid>
|
|
790
|
-
<Grid.Row stretched>
|
|
906
|
+
<Grid.Row stretched verticalAlign="middle">
|
|
791
907
|
<Grid.Column width="4">
|
|
792
908
|
<div className="wrapper">
|
|
793
909
|
<label htmlFor={`field-${id}`}>{title}</label>
|
|
@@ -797,7 +913,7 @@ class RecurrenceWidget extends Component {
|
|
|
797
913
|
{rruleSet.rrules()[0] && (
|
|
798
914
|
<>
|
|
799
915
|
<Label>
|
|
800
|
-
{rruleSet.rrules()[0]?.toText(
|
|
916
|
+
{rruleSet.rrules()?.[0]?.toText(
|
|
801
917
|
(t) => {
|
|
802
918
|
return RRULE_LANGUAGE.strings[t];
|
|
803
919
|
},
|
|
@@ -863,7 +979,7 @@ class RecurrenceWidget extends Component {
|
|
|
863
979
|
{intl.formatMessage(messages.editRecurrence)}{' '}
|
|
864
980
|
</Modal.Header>
|
|
865
981
|
<Modal.Content scrolling>
|
|
866
|
-
{
|
|
982
|
+
{editRruleSet?.rrules()?.length > 0 && (
|
|
867
983
|
<Modal.Description>
|
|
868
984
|
<Segment>
|
|
869
985
|
<Form>
|
|
@@ -879,6 +995,7 @@ class RecurrenceWidget extends Component {
|
|
|
879
995
|
)}
|
|
880
996
|
value={formValues.freq}
|
|
881
997
|
onChange={this.onChangeRule}
|
|
998
|
+
noValueOption={false}
|
|
882
999
|
/>
|
|
883
1000
|
{OPTIONS.frequences[formValues.freq].interval && (
|
|
884
1001
|
<IntervalField
|
|
@@ -943,7 +1060,7 @@ class RecurrenceWidget extends Component {
|
|
|
943
1060
|
</Segment>
|
|
944
1061
|
<Segment>
|
|
945
1062
|
<Occurences
|
|
946
|
-
rruleSet={
|
|
1063
|
+
rruleSet={editRruleSet}
|
|
947
1064
|
exclude={this.exclude}
|
|
948
1065
|
undoExclude={this.undoExclude}
|
|
949
1066
|
/>
|
|
@@ -1007,4 +1124,10 @@ class RecurrenceWidget extends Component {
|
|
|
1007
1124
|
}
|
|
1008
1125
|
}
|
|
1009
1126
|
|
|
1010
|
-
export default
|
|
1127
|
+
export default compose(
|
|
1128
|
+
injectLazyLibs(['moment', 'rrule']),
|
|
1129
|
+
connect((state) => ({
|
|
1130
|
+
lang: state.intl.locale,
|
|
1131
|
+
})),
|
|
1132
|
+
injectIntl,
|
|
1133
|
+
)(RecurrenceWidget);
|