design-comuni-plone-theme 12.0.0-alpha.1 → 12.0.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 +1592 -485
- package/Makefile +1 -1
- package/RELEASE.md +400 -9
- package/locales/de/LC_MESSAGES/volto.po +244 -16
- package/locales/en/LC_MESSAGES/volto.po +306 -78
- package/locales/es/LC_MESSAGES/volto.po +244 -16
- package/locales/fr/LC_MESSAGES/volto.po +244 -16
- package/locales/it/LC_MESSAGES/volto.po +247 -19
- package/locales/volto.pot +245 -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 +1 -0
- 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/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 +7 -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 +31 -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/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 +132 -0
- package/src/config/Blocks/ListingOptions/attachmentCardTemplate.js +1 -1
- package/src/config/Slate/Blockquote/index.js +7 -0
- package/src/config/Views/views.js +1 -0
- package/src/config/italiaConfig.js +77 -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/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/RecurrenceWidget/EndField.jsx +18 -11
- package/src/customizations/volto/components/manage/Widgets/RecurrenceWidget/RecurrenceWidget.jsx +237 -116
- 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 +10 -7
- 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/ListingHelper.js +1 -1
- package/src/helpers/blocks.js +0 -6
- package/src/helpers/dates.js +30 -2
- package/src/helpers/files.js +9 -2
- 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 +68 -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,39 @@ 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
631
|
: null;
|
|
554
|
-
|
|
555
|
-
|
|
632
|
+
const currWeekday = this.getWeekday(moment().day() - 1);
|
|
633
|
+
const currMonth = moment().month() + 1;
|
|
556
634
|
|
|
557
|
-
|
|
635
|
+
const startMonth = this.props.formData?.start
|
|
558
636
|
? moment(this.props.formData.start).month() + 1
|
|
559
637
|
: currMonth;
|
|
560
638
|
|
|
561
|
-
|
|
639
|
+
const startWeekday = this.props.formData?.start
|
|
562
640
|
? this.getWeekday(moment(this.props.formData.start).day() - 1)
|
|
563
641
|
: currWeekday;
|
|
564
642
|
formValues[field] = value;
|
|
@@ -583,7 +661,11 @@ class RecurrenceWidget extends Component {
|
|
|
583
661
|
formValues = this.changeField(formValues, 'byweekday', null);
|
|
584
662
|
formValues = this.changeField(formValues, 'monthOfTheYear', null);
|
|
585
663
|
|
|
586
|
-
if (
|
|
664
|
+
if (
|
|
665
|
+
!formValues.count &&
|
|
666
|
+
!formValues.until &&
|
|
667
|
+
!this.props.formData.open_end
|
|
668
|
+
) {
|
|
587
669
|
formValues.until = this.getDefaultUntil(value);
|
|
588
670
|
}
|
|
589
671
|
|
|
@@ -656,7 +738,8 @@ class RecurrenceWidget extends Component {
|
|
|
656
738
|
break;
|
|
657
739
|
|
|
658
740
|
case 'monthOfTheYear':
|
|
659
|
-
|
|
741
|
+
// Fix check, null and undefined are falsish
|
|
742
|
+
if (!value) {
|
|
660
743
|
delete formValues.bymonth;
|
|
661
744
|
} else {
|
|
662
745
|
formValues.bymonth = [value];
|
|
@@ -706,6 +789,10 @@ class RecurrenceWidget extends Component {
|
|
|
706
789
|
default:
|
|
707
790
|
break;
|
|
708
791
|
}
|
|
792
|
+
// Somehow it goes missing sometimes, no clue where anymore, force add it
|
|
793
|
+
if (formValues?.weekdayOfTheMonth && !formValues.monthly) {
|
|
794
|
+
formValues = { ...formValues, monthly: 'byweekday' };
|
|
795
|
+
}
|
|
709
796
|
return formValues;
|
|
710
797
|
};
|
|
711
798
|
|
|
@@ -714,24 +801,41 @@ class RecurrenceWidget extends Component {
|
|
|
714
801
|
formValues = this.changeField(formValues, field, value);
|
|
715
802
|
|
|
716
803
|
this.setState((prevState) => {
|
|
717
|
-
var
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
...prevState,
|
|
721
|
-
rruleSet,
|
|
804
|
+
var editRruleSet = prevState.editRruleSet;
|
|
805
|
+
editRruleSet = this.updateRruleSet(
|
|
806
|
+
editRruleSet,
|
|
722
807
|
formValues,
|
|
723
|
-
|
|
808
|
+
field,
|
|
809
|
+
value,
|
|
810
|
+
);
|
|
811
|
+
return editRruleSet
|
|
812
|
+
? {
|
|
813
|
+
...prevState,
|
|
814
|
+
editRruleSet,
|
|
815
|
+
formValues,
|
|
816
|
+
}
|
|
817
|
+
: { ...prevState, formValues };
|
|
724
818
|
});
|
|
725
819
|
};
|
|
726
820
|
|
|
821
|
+
// Handle rdates too, they were left behind :(
|
|
727
822
|
exclude = (date) => {
|
|
728
|
-
let
|
|
729
|
-
|
|
730
|
-
|
|
823
|
+
let additionalDates = this.state.editRruleSet.rdates();
|
|
824
|
+
let exDates = this.state.editRruleSet.exdates();
|
|
825
|
+
|
|
826
|
+
if (additionalDates.some((ad) => ad.getTime() === date.getTime())) {
|
|
827
|
+
remove(additionalDates, (ad) => {
|
|
828
|
+
return ad.getTime() === date.getTime();
|
|
829
|
+
});
|
|
830
|
+
this.onChangeRule('rdates', additionalDates);
|
|
831
|
+
} else {
|
|
832
|
+
exDates.push(date);
|
|
833
|
+
this.onChangeRule('exdates', exDates);
|
|
834
|
+
}
|
|
731
835
|
};
|
|
732
836
|
|
|
733
837
|
undoExclude = (date) => {
|
|
734
|
-
let list = this.state.
|
|
838
|
+
let list = this.state.editRruleSet.exdates().slice(0);
|
|
735
839
|
remove(list, (e) => {
|
|
736
840
|
return e.getTime() === date.getTime();
|
|
737
841
|
});
|
|
@@ -739,7 +843,11 @@ class RecurrenceWidget extends Component {
|
|
|
739
843
|
};
|
|
740
844
|
|
|
741
845
|
addDate = (date) => {
|
|
742
|
-
|
|
846
|
+
const moment = this.moment;
|
|
847
|
+
let all = concat(
|
|
848
|
+
this.state.editRruleSet.all(),
|
|
849
|
+
this.state.editRruleSet.exdates(),
|
|
850
|
+
);
|
|
743
851
|
|
|
744
852
|
var simpleDate = moment(new Date(date)).startOf('day').toDate().getTime();
|
|
745
853
|
var exists = find(all, (e) => {
|
|
@@ -747,14 +855,18 @@ class RecurrenceWidget extends Component {
|
|
|
747
855
|
return d === simpleDate;
|
|
748
856
|
});
|
|
749
857
|
if (!exists) {
|
|
750
|
-
let list = this.state.
|
|
858
|
+
let list = this.state.editRruleSet.rdates().slice(0);
|
|
751
859
|
list.push(new Date(date));
|
|
752
860
|
this.onChangeRule('rdates', list);
|
|
753
861
|
}
|
|
754
862
|
};
|
|
755
863
|
|
|
756
864
|
saveRrule = () => {
|
|
757
|
-
var value = this.state.
|
|
865
|
+
var value = this.state.editRruleSet.toString();
|
|
866
|
+
this.setState((prev) => ({
|
|
867
|
+
...prev,
|
|
868
|
+
rruleSet: prev.editRruleSet,
|
|
869
|
+
}));
|
|
758
870
|
this.props.onChange(this.props.id, value);
|
|
759
871
|
};
|
|
760
872
|
|
|
@@ -764,17 +876,19 @@ class RecurrenceWidget extends Component {
|
|
|
764
876
|
};
|
|
765
877
|
|
|
766
878
|
remove = () => {
|
|
879
|
+
const { RRuleSet } = this.props.rrule;
|
|
767
880
|
this.props.onChange(this.props.id, null);
|
|
768
881
|
let rruleSet = new RRuleSet();
|
|
769
882
|
this.setState({
|
|
883
|
+
editRruleSet: rruleSet,
|
|
770
884
|
rruleSet: rruleSet,
|
|
771
885
|
formValues: this.getFormValues(rruleSet),
|
|
772
886
|
});
|
|
773
887
|
};
|
|
774
888
|
|
|
775
889
|
render() {
|
|
776
|
-
const { open, dimmer, rruleSet, formValues, RRULE_LANGUAGE } =
|
|
777
|
-
|
|
890
|
+
const { open, dimmer, rruleSet, editRruleSet, formValues, RRULE_LANGUAGE } =
|
|
891
|
+
this.state;
|
|
778
892
|
const { id, title, required, description, error, fieldSet, intl } =
|
|
779
893
|
this.props;
|
|
780
894
|
|
|
@@ -787,7 +901,7 @@ class RecurrenceWidget extends Component {
|
|
|
787
901
|
id={`${fieldSet || 'field'}-${id}`}
|
|
788
902
|
>
|
|
789
903
|
<Grid>
|
|
790
|
-
<Grid.Row stretched>
|
|
904
|
+
<Grid.Row stretched verticalAlign="middle">
|
|
791
905
|
<Grid.Column width="4">
|
|
792
906
|
<div className="wrapper">
|
|
793
907
|
<label htmlFor={`field-${id}`}>{title}</label>
|
|
@@ -797,7 +911,7 @@ class RecurrenceWidget extends Component {
|
|
|
797
911
|
{rruleSet.rrules()[0] && (
|
|
798
912
|
<>
|
|
799
913
|
<Label>
|
|
800
|
-
{rruleSet.rrules()[0]?.toText(
|
|
914
|
+
{rruleSet.rrules()?.[0]?.toText(
|
|
801
915
|
(t) => {
|
|
802
916
|
return RRULE_LANGUAGE.strings[t];
|
|
803
917
|
},
|
|
@@ -863,7 +977,7 @@ class RecurrenceWidget extends Component {
|
|
|
863
977
|
{intl.formatMessage(messages.editRecurrence)}{' '}
|
|
864
978
|
</Modal.Header>
|
|
865
979
|
<Modal.Content scrolling>
|
|
866
|
-
{
|
|
980
|
+
{editRruleSet?.rrules()?.length > 0 && (
|
|
867
981
|
<Modal.Description>
|
|
868
982
|
<Segment>
|
|
869
983
|
<Form>
|
|
@@ -879,6 +993,7 @@ class RecurrenceWidget extends Component {
|
|
|
879
993
|
)}
|
|
880
994
|
value={formValues.freq}
|
|
881
995
|
onChange={this.onChangeRule}
|
|
996
|
+
noValueOption={false}
|
|
882
997
|
/>
|
|
883
998
|
{OPTIONS.frequences[formValues.freq].interval && (
|
|
884
999
|
<IntervalField
|
|
@@ -943,7 +1058,7 @@ class RecurrenceWidget extends Component {
|
|
|
943
1058
|
</Segment>
|
|
944
1059
|
<Segment>
|
|
945
1060
|
<Occurences
|
|
946
|
-
rruleSet={
|
|
1061
|
+
rruleSet={editRruleSet}
|
|
947
1062
|
exclude={this.exclude}
|
|
948
1063
|
undoExclude={this.undoExclude}
|
|
949
1064
|
/>
|
|
@@ -1007,4 +1122,10 @@ class RecurrenceWidget extends Component {
|
|
|
1007
1122
|
}
|
|
1008
1123
|
}
|
|
1009
1124
|
|
|
1010
|
-
export default
|
|
1125
|
+
export default compose(
|
|
1126
|
+
injectLazyLibs(['moment', 'rrule']),
|
|
1127
|
+
connect((state) => ({
|
|
1128
|
+
lang: state.intl.locale,
|
|
1129
|
+
})),
|
|
1130
|
+
injectIntl,
|
|
1131
|
+
)(RecurrenceWidget);
|