design-comuni-plone-theme 11.10.2 → 12.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/.github/workflows/slate.yml +47 -0
  2. package/.yarn/cache/@babel-helper-module-imports-npm-7.24.3-edb733448b-c23492189b.zip +0 -0
  3. package/.yarn/cache/@babel-types-npm-7.24.0-a0508cb308-4b574a37d4.zip +0 -0
  4. package/.yarn/cache/babel-plugin-lodash-npm-3.3.4-c7161075b6-044a4261e6.zip +0 -0
  5. package/.yarn/cache/require-package-name-npm-2.0.1-ac9a206b63-00f4e9e467.zip +0 -0
  6. package/.yarn/cache/{volto-form-block-npm-3.7.2-f24953a510-7387a1b85a.zip → volto-form-block-npm-3.8.2-e49cbe07d5-5b72a06a5e.zip} +0 -0
  7. package/.yarn/cache/{volto-gdpr-privacy-npm-2.2.1-bc93b3e168-bce76108c3.zip → volto-gdpr-privacy-npm-2.2.0-6be0f74d53-8a93254251.zip} +0 -0
  8. package/.yarn/install-state.gz +0 -0
  9. package/CHANGELOG.md +878 -916
  10. package/RELEASE.md +8 -0
  11. package/locales/de/LC_MESSAGES/volto.po +86 -18
  12. package/locales/en/LC_MESSAGES/volto.po +86 -18
  13. package/locales/es/LC_MESSAGES/volto.po +86 -18
  14. package/locales/fr/LC_MESSAGES/volto.po +86 -18
  15. package/locales/it/LC_MESSAGES/volto.po +86 -18
  16. package/locales/volto.pot +87 -19
  17. package/package.json +5 -3
  18. package/publiccode.yml +2 -2
  19. package/src/components/Collapse.jsx +1 -0
  20. package/src/components/ItaliaTheme/Blocks/Accordion/Block/EditBlock.jsx +29 -24
  21. package/src/components/ItaliaTheme/Blocks/Accordion/Block/ViewBlock.jsx +4 -12
  22. package/src/components/ItaliaTheme/Blocks/Accordion/Edit.jsx +67 -6
  23. package/src/components/ItaliaTheme/Blocks/Alert/Edit.jsx +60 -113
  24. package/src/components/ItaliaTheme/Blocks/Alert/Sidebar.jsx +1 -0
  25. package/src/components/ItaliaTheme/Blocks/Alert/View.jsx +5 -14
  26. package/src/components/ItaliaTheme/Blocks/ArgumentsInEvidence/Block.jsx +16 -11
  27. package/src/components/ItaliaTheme/Blocks/ArgumentsInEvidence/Body.jsx +2 -1
  28. package/src/components/ItaliaTheme/Blocks/ArgumentsInEvidence/Edit.jsx +39 -1
  29. package/src/components/ItaliaTheme/Blocks/CTABlock/Block.jsx +35 -95
  30. package/src/components/ItaliaTheme/Blocks/Callout/Edit.jsx +108 -0
  31. package/src/components/ItaliaTheme/Blocks/Callout/Sidebar.jsx +173 -0
  32. package/src/components/ItaliaTheme/Blocks/Callout/View.jsx +45 -0
  33. package/src/components/ItaliaTheme/Blocks/ContactsBlock/Block/EditBlock.jsx +84 -63
  34. package/src/components/ItaliaTheme/Blocks/ContactsBlock/Block/ViewBlock.jsx +19 -39
  35. package/src/components/ItaliaTheme/Blocks/ContactsBlock/Edit.jsx +92 -19
  36. package/src/components/ItaliaTheme/Blocks/ContactsBlock/View.jsx +13 -21
  37. package/src/components/ItaliaTheme/Blocks/CountDown/Edit.jsx +21 -25
  38. package/src/components/ItaliaTheme/Blocks/CountDown/View.jsx +6 -15
  39. package/src/components/ItaliaTheme/Blocks/IconBlocks/Block/EditBlock.jsx +40 -15
  40. package/src/components/ItaliaTheme/Blocks/IconBlocks/Block/ViewBlock.jsx +6 -21
  41. package/src/components/ItaliaTheme/Blocks/IconBlocks/Edit.jsx +93 -20
  42. package/src/components/ItaliaTheme/Blocks/IconBlocks/Sidebar.jsx +1 -9
  43. package/src/components/ItaliaTheme/Blocks/IconBlocks/View.jsx +4 -17
  44. package/src/components/ItaliaTheme/Blocks/NumbersBlock/Block/EditBlock.jsx +46 -15
  45. package/src/components/ItaliaTheme/Blocks/NumbersBlock/Block/ViewBlock.jsx +2 -18
  46. package/src/components/ItaliaTheme/Blocks/NumbersBlock/Edit.jsx +84 -11
  47. package/src/components/ItaliaTheme/Blocks/NumbersBlock/View.jsx +2 -11
  48. package/src/components/ItaliaTheme/Blocks/TextCard/CardWithImage/Block.jsx +33 -67
  49. package/src/components/ItaliaTheme/Blocks/TextCard/CardWithImage/Edit.jsx +2 -8
  50. package/src/components/ItaliaTheme/Blocks/TextCard/SimpleCard/BodyWrapper.jsx +2 -1
  51. package/src/components/ItaliaTheme/Blocks/TextCard/SimpleCard/Edit.jsx +98 -84
  52. package/src/components/ItaliaTheme/Blocks/TextCard/SimpleCard/View.jsx +20 -3
  53. package/src/components/ItaliaTheme/Blocks/__tests__/Accordion.test.jsx +11 -28
  54. package/src/components/ItaliaTheme/Blocks/__tests__/Alert.test.jsx +10 -14
  55. package/src/components/ItaliaTheme/Blocks/__tests__/ArgumentsInEvidence.test.jsx +20 -28
  56. package/src/components/ItaliaTheme/Blocks/__tests__/CTABlock.test.jsx +14 -29
  57. package/src/components/ItaliaTheme/Blocks/__tests__/CardWithImage.test.jsx +11 -28
  58. package/src/components/ItaliaTheme/Blocks/__tests__/ContactsBlock.test.jsx +75 -140
  59. package/src/components/ItaliaTheme/Blocks/__tests__/Countdown.test.jsx +20 -28
  60. package/src/components/ItaliaTheme/Blocks/__tests__/IconBlocks.test.jsx +22 -56
  61. package/src/components/ItaliaTheme/Blocks/__tests__/NumbersBlock.test.jsx +14 -43
  62. package/src/components/ItaliaTheme/Blocks/__tests__/SimpleCard.test.jsx +14 -30
  63. package/src/components/ItaliaTheme/Footer/FooterInfos.jsx +22 -8
  64. package/src/components/ItaliaTheme/Footer/FooterNavigation.jsx +3 -3
  65. package/src/components/ItaliaTheme/MegaMenu/MegaMenu.jsx +5 -1
  66. package/src/components/ItaliaTheme/Slider/SingleSlideWrapper.jsx +2 -3
  67. package/src/components/ItaliaTheme/View/BandoView/BandoApprofondimenti.jsx +1 -2
  68. package/src/components/ItaliaTheme/View/CartellaModulisticaView/DocRow.jsx +14 -5
  69. package/src/components/ItaliaTheme/View/Commons/Attachment.jsx +19 -3
  70. package/src/components/ItaliaTheme/View/Commons/Attachments.jsx +0 -1
  71. package/src/components/ItaliaTheme/View/Commons/DownloadFileFormat.jsx +11 -7
  72. package/src/components/ItaliaTheme/View/Commons/Module.jsx +7 -6
  73. package/src/components/ItaliaTheme/View/Commons/PageHeader/PageHeaderLinkServizio.jsx +6 -2
  74. package/src/components/ItaliaTheme/View/Commons/RichTextRender.jsx +8 -6
  75. package/src/components/ItaliaTheme/View/Commons/__tests__/RichText.test.jsx +14 -17
  76. package/src/components/ItaliaTheme/View/ServizioView/ServizioAccedi.jsx +5 -6
  77. package/src/components/ItaliaTheme/View/ServizioView/ServizioMetatag.jsx +4 -0
  78. package/src/components/ItaliaTheme/View/__tests__/CartellaModulisticaView.test.jsx +12 -1
  79. package/src/components/ItaliaTheme/View/__tests__/IncaricoView.test.jsx +24 -30
  80. package/src/components/ItaliaTheme/View/__tests__/PageView.test.jsx +24 -2
  81. package/src/components/ItaliaTheme/View/__tests__/PersonaView.test.jsx +96 -92
  82. package/src/components/ItaliaTheme/View/__tests__/ServizioAChiSiRivolge.test.jsx +240 -286
  83. package/src/components/ItaliaTheme/View/__tests__/ServizioAccedi.test.jsx +240 -286
  84. package/src/components/ItaliaTheme/View/__tests__/ServizioCasiParticolari.test.jsx +240 -286
  85. package/src/components/ItaliaTheme/View/__tests__/ServizioComeFare.test.jsx +240 -286
  86. package/src/components/ItaliaTheme/View/__tests__/ServizioCondizioni.test.jsx +240 -286
  87. package/src/components/ItaliaTheme/View/__tests__/ServizioContatti.test.jsx +240 -286
  88. package/src/components/ItaliaTheme/View/__tests__/ServizioCosE.test.jsx +240 -286
  89. package/src/components/ItaliaTheme/View/__tests__/ServizioCosaServe.test.jsx +240 -286
  90. package/src/components/ItaliaTheme/View/__tests__/ServizioCosaSiOttiene.test.jsx +240 -286
  91. package/src/components/ItaliaTheme/View/__tests__/ServizioCostiVincoli.test.jsx +240 -286
  92. package/src/components/ItaliaTheme/View/__tests__/ServizioMetadati.test.jsx +240 -286
  93. package/src/components/ItaliaTheme/View/__tests__/ServizioModulistica.test.jsx +240 -286
  94. package/src/components/ItaliaTheme/View/__tests__/ServizioProcedure.test.jsx +240 -286
  95. package/src/components/ItaliaTheme/View/__tests__/ServizioSitiEsterni.test.jsx +240 -286
  96. package/src/components/ItaliaTheme/View/__tests__/ServizioTempiScadenze.test.jsx +240 -286
  97. package/src/components/ItaliaTheme/View/__tests__/ServizioUlterioriInformazioni.test.jsx +240 -286
  98. package/src/components/ItaliaTheme/View/__tests__/ServizioView.test.jsx +470 -560
  99. package/src/components/ItaliaTheme/View/__tests__/TrasparenzaView.test.jsx +12 -1
  100. package/src/components/ItaliaTheme/manage/Widgets/ColorListWidget.jsx +11 -2
  101. package/src/components/ItaliaTheme/manage/Widgets/HtmlSlateWidget.jsx +154 -0
  102. package/src/components/ItaliaTheme/manage/Widgets/RichTextWidget.jsx +88 -0
  103. package/src/components/ItaliaTheme/manage/Widgets/SimpleTextEditorWidget.jsx +158 -0
  104. package/src/components/ItaliaTheme/manage/Widgets/TextEditorWidget.jsx +167 -270
  105. package/src/config/Blocks/ListingOptions/index.js +0 -1
  106. package/src/config/Blocks/ListingOptions/utils.js +0 -7
  107. package/src/config/Blocks/blocks.js +29 -8
  108. package/src/config/Blocks/listingVariations.js +1 -1
  109. package/src/config/Slate/Alignment/AlignMenu.jsx +169 -0
  110. package/src/config/Slate/Alignment/index.js +42 -0
  111. package/src/config/Slate/Blockquote/BlockquoteMenu.jsx +151 -0
  112. package/src/config/Slate/Blockquote/index.js +12 -0
  113. package/src/config/Slate/Headings/HeadingsMenu.jsx +139 -0
  114. package/src/config/Slate/Headings/headingsMenu.scss +44 -0
  115. package/src/config/Slate/Headings/index.js +62 -0
  116. package/src/config/Slate/Link/deserializer.js +25 -0
  117. package/src/config/Slate/Link/index.js +126 -0
  118. package/src/config/Slate/Link/renderer.jsx +99 -0
  119. package/src/config/Slate/LinkButton/index.js +47 -0
  120. package/src/config/Slate/TextLarger/index.js +51 -0
  121. package/src/config/Slate/Underline/index.js +10 -0
  122. package/src/config/Slate/config.js +43 -0
  123. package/src/config/Slate/deserializers.js +66 -0
  124. package/src/config/Slate/dropdownStyle.scss +14 -0
  125. package/src/config/Slate/dropdownUtils.js +422 -0
  126. package/src/config/Slate/extensions/breakList.js +91 -0
  127. package/src/config/Slate/handlers.js +243 -0
  128. package/src/config/Slate/utils.js +73 -0
  129. package/src/config/Widgets/widgets.js +1 -2
  130. package/src/config/italiaConfig.js +7 -54
  131. package/src/customizations/volto/components/manage/AnchorPlugin/components/LinkButton/AddLinkForm.jsx +360 -0
  132. package/src/customizations/volto/components/manage/Blocks/HeroImageLeft/Edit.jsx +75 -200
  133. package/src/customizations/volto/components/manage/Blocks/Video/Edit.jsx +1 -1
  134. package/src/customizations/volto/components/manage/Form/BlocksToolbar.jsx +1 -1
  135. package/src/customizations/volto/components/manage/UniversalLink/UniversalLink.jsx +59 -6
  136. package/src/customizations/volto-form-block/components/Field.jsx +45 -22
  137. package/src/customizations/volto-form-block/components/FormResult.jsx +74 -0
  138. package/src/customizations/volto-form-block/components/FormView.jsx +79 -66
  139. package/src/customizations/volto-form-block/components/Widget/Button.jsx +50 -0
  140. package/src/helpers/EnhanceLink.js +44 -0
  141. package/src/helpers/FormValidation/FormValidationHelpers.js +3 -0
  142. package/src/helpers/blocks.js +86 -0
  143. package/src/helpers/files.js +14 -14
  144. package/src/helpers/index.js +4 -3
  145. package/src/helpers/richTextHelper.js +10 -0
  146. package/src/icons/Group.svg +1 -0
  147. package/src/icons/blocco-icone.svg +0 -3
  148. package/src/icons/blockquote-card-dark.svg +1 -0
  149. package/src/icons/blockquote-card.svg +1 -0
  150. package/src/icons/blockquote-simple.svg +1 -0
  151. package/src/icons/text-larger.svg +1 -0
  152. package/src/theme/ItaliaTheme/Blocks/_accordion.scss +1 -10
  153. package/src/theme/ItaliaTheme/Blocks/_alert.scss +53 -1
  154. package/src/theme/ItaliaTheme/Blocks/_bandiInEvidenceTemplate.scss +1 -0
  155. package/src/theme/ItaliaTheme/Blocks/_callout.scss +32 -0
  156. package/src/theme/ItaliaTheme/Blocks/_contacts.scss +15 -32
  157. package/src/theme/ItaliaTheme/Blocks/_ctaBlock.scss +0 -14
  158. package/src/theme/ItaliaTheme/Blocks/_gridBlock.scss +1 -1
  159. package/src/theme/ItaliaTheme/Blocks/_hero.scss +1 -8
  160. package/src/theme/ItaliaTheme/Blocks/_iconBlocks.scss +0 -30
  161. package/src/theme/ItaliaTheme/Blocks/_imageCardTextBlock.scss +3 -2
  162. package/src/theme/ItaliaTheme/Blocks/_numbers.scss +1 -5
  163. package/src/theme/ItaliaTheme/Blocks/_simpleCardTextBlock.scss +8 -2
  164. package/src/theme/ItaliaTheme/Blocks/_tableOfContents.scss +1 -0
  165. package/src/theme/ItaliaTheme/Components/_megamenu.scss +0 -4
  166. package/src/theme/ItaliaTheme/Subsites/ItaliaTheme/Blocks/_cta.scss +1 -0
  167. package/src/theme/ItaliaTheme/Subsites/ItaliaTheme/Blocks/_searchSections.scss +1 -0
  168. package/src/theme/ItaliaTheme/Subsites/bootstrap-italia/custom/_headercenter.scss +1 -0
  169. package/src/theme/ItaliaTheme/Views/_cartellaModulistica.scss +11 -2
  170. package/src/theme/ItaliaTheme/Views/_slider.scss +3 -3
  171. package/src/theme/ItaliaTheme/Widgets/_iconWidget.scss +4 -0
  172. package/src/theme/ItaliaTheme/_main.scss +42 -54
  173. package/src/theme/_cms-ui.scss +59 -161
  174. package/src/theme/extras/_forms.scss +2 -14
  175. package/src/theme/site.scss +1 -0
  176. package/test-setup-config.js +58 -0
  177. package/src/components/ItaliaTheme/Blocks/TextCard/SimpleCard/Block.jsx +0 -151
  178. package/src/config/RichTextEditor/LinkEntity.jsx +0 -27
  179. package/src/config/RichTextEditor/Plugins/AnchorPlugin/components/Link/index.jsx +0 -44
  180. package/src/config/RichTextEditor/Plugins/AnchorPlugin/components/LinkButton/AddLinkForm.jsx +0 -349
  181. package/src/config/RichTextEditor/Plugins/AnchorPlugin/components/LinkButton/index.js +0 -150
  182. package/src/config/RichTextEditor/Plugins/AnchorPlugin/index.js +0 -88
  183. package/src/config/RichTextEditor/ToolbarButtons/AlignButton.jsx +0 -61
  184. package/src/config/RichTextEditor/ToolbarButtons/ButtonsButton.jsx +0 -14
  185. package/src/config/RichTextEditor/ToolbarButtons/CalloutsButton.jsx +0 -38
  186. package/src/config/RichTextEditor/ToolbarButtons/DraftJsDropdownButton.jsx +0 -106
  187. package/src/config/RichTextEditor/ToolbarButtons/HeadingsButton.jsx +0 -57
  188. package/src/config/RichTextEditor/ToolbarButtons/TextSizeButton.jsx +0 -65
  189. package/src/config/RichTextEditor/ToolbarButtons/UnderlineButton.jsx +0 -14
  190. package/src/config/RichTextEditor/config.js +0 -253
  191. package/src/config/volto-gdpr-privacy-defaultPanelConfig.js +0 -292
  192. package/src/customizations/volto/components/manage/Blocks/ToC/View.jsx +0 -134
  193. package/src/customizations/volto/components/manage/Blocks/ToC/variations/DefaultTocRenderer.jsx +0 -99
  194. package/src/customizations/volto/config/RichTextEditor/Plugins.jsx +0 -63
  195. package/src/helpers/redraftHelper.js +0 -9
@@ -1,292 +0,0 @@
1
- const defaultPanelConfig = {
2
- last_updated: '2022-03-03T11:25:00+00:00', //it is used to know whether to resubmit the banner to the user if the choices have changed.
3
- focusTrapEnabled: true,
4
-
5
- text: {
6
- //Text that is shown when the banner appears
7
- it: {
8
- title: 'Usiamo i cookie',
9
- description:
10
- "Questo sito utilizza i cookie tecnici di navigazione e di sessione per garantire un miglior servizio di navigazione del sito, e cookie analitici per raccogliere informazioni sull'uso del sito da parte degli utenti. Utilizza anche cookie di profilazione dell'utente per fini statistici. Per i cookie di profilazione puoi decidere se abilitarli o meno cliccando sul pulsante 'Impostazioni'. Per saperne di più, su come disabilitare i cookie oppure abilitarne solo alcuni, consulta la nostra <a href='/privacy-policy'>Cookie Policy</a>.",
11
- },
12
- en: {
13
- title: 'We use cookies',
14
- description:
15
- "This site uses technical navigation and session cookies to ensure a better site navigation service, and analytical cookies to collect information on the use of the site by users. It also uses user profiling cookies for statistical. For profiling cookies you can decide whether to enable them or not by clicking on the 'Settings' button. To find out more, on how to disable cookies or enable only some of them, consult our <a href='/en/privacy-policy'>Cookie Policy</a>.",
16
- },
17
- es: {
18
- title: 'Nosotros usamos cookies',
19
- description:
20
- 'Este sitio utiliza cookies técnicas de navegación y sesión para garantizar un mejor servicio de navegación en el sitio, y cookies analíticas para recopilar información sobre el uso del sitio por parte de los usuarios. También utiliza cookies de perfil de usuario con fines estadísticos. Para las cookies de creación de perfiles, puede decidir habilitarlas o no haciendo clic en el botón "Configuración". Para obtener más información sobre cómo deshabilitar las cookies o habilitar solo ciertas cookies, consulte nuestra <a href=\'/es/privacy-policy\'>Política de Cookies</a>.',
21
- },
22
- fr: {
23
- title: 'We use cookies',
24
- description:
25
- "Ce site utilise des cookies techniques de navigation et de session pour assurer un meilleur service de navigation sur le site, et des cookies analytiques pour collecter des informations sur l'utilisation du site par les utilisateurs. Il utilise également des cookies de profilage des utilisateurs à des fins statistiques. Pour les cookies de profilage, vous pouvez décider de les activer ou non en cliquant sur le bouton « Paramètres ». Pour en savoir plus, sur la façon de désactiver les cookies ou d'en activer seulement certains, consultez notre <a href='/fr/privacy-policy'>Politique relative aux cookies</a>.",
26
- },
27
- },
28
-
29
- //technical cookies configurations
30
- technical: {
31
- //main title and text for the technical cookies column in banner-cookies-settings
32
- text: {
33
- it: {
34
- title: 'Cookie tecnici',
35
- description:
36
- 'Il sito utilizza cookie tecnici per analizzare il traffico da e verso il sito. I cookie tecnici consento anche di fornire un migliore servizio di navigazione sul sito, e raccolgono informazioni di navigazione a questo scopo.',
37
- },
38
- en: {
39
- title: 'Technical cookies',
40
- description:
41
- 'The site uses technical cookies to analyze traffic to and from the site. Technical cookies also allow us to provide a better navigation service on the site, and collect navigation information for this purpose.',
42
- },
43
- es: {
44
- title: 'Cookies técnicas',
45
- description:
46
- 'El sitio utiliza cookies técnicas para analizar el tráfico hacia y desde el sitio. Las cookies técnicas también nos permiten brindar un mejor servicio de navegación en el sitio y recopilar información de navegación para este propósito.',
47
- },
48
- fr: {
49
- title: 'Cookies techniques',
50
- description:
51
- 'Le site utilise des cookies techniques pour analyser le trafic vers et depuis le site. Les cookies techniques nous permettent également de fournir un meilleur service de navigation sur le site, et de collecter des informations de navigation à cette fin.',
52
- },
53
- },
54
-
55
- //technical cookies
56
- choices: [
57
- {
58
- config_key: 'GANALYTICS', //reference to config.gdprPrivacyConfig keys
59
- text: {
60
- it: {
61
- title: 'Google Analytics',
62
- description:
63
- "I cookie di Google Analytics sono usati per analizzare la navigazione sul sito al fine di migliorarla e fornire all'utente un'esperienza di navigazione migliore possibile.",
64
- },
65
- en: {
66
- title: 'Google Analytics',
67
- description:
68
- 'Google Analytics cookies are used to analyze navigation on the site in order to improve it and provide the user with the best possible browsing experience.',
69
- },
70
- es: {
71
- title: 'Google Analytics',
72
- description:
73
- 'Las cookies de Google Analytics se utilizan para analizar la navegación en el sitio con el fin de mejorarlo y proporcionar al usuario la mejor experiencia de navegación posible.',
74
- },
75
- fr: {
76
- title: 'Google Analytics',
77
- description:
78
- "Les cookies de Google Analytics sont utilisés pour analyser la navigation sur le site afin de l'améliorer et offrir à l'utilisateur la meilleure expérience de navigation possible.",
79
- },
80
- },
81
- },
82
- {
83
- config_key: 'GRECAPTCHA',
84
- text: {
85
- it: {
86
- title: 'Google Re-Captcha',
87
- description:
88
- "I cookie di Google Re-Captcha sono usati per analizzare la navigazione sul sito al fine di migliorarla e fornire all'utente un'esperienza di navigazione migliore possibile.",
89
- },
90
- en: {
91
- title: 'Google Re-Captcha',
92
- description:
93
- 'Google Re-Captcha cookies are used to analyze navigation on the site in order to improve it and provide the user with the best possible browsing experience.',
94
- },
95
- es: {
96
- title: 'Google Re-Captcha',
97
- description:
98
- 'Las cookies de Google Recaptcha se utilizan para analizar la navegación en el sitio con el fin de mejorarlo y proporcionar al usuario la mejor experiencia de navegación posible.',
99
- },
100
- fr: {
101
- title: 'Google Re-Captcha',
102
- description:
103
- "Les cookies de Google Re-Captcha sont utilisés pour analyser la navigation sur le site afin de l'améliorer et offrir à l'utilisateur la meilleure expérience de navigation possible.",
104
- },
105
- },
106
- },
107
- ],
108
- },
109
-
110
- //profiling cookies configuration
111
- profiling: {
112
- text: {
113
- it: {
114
- title: 'Cookie di profilazione',
115
- description:
116
- "Il sito utilizza cookie di profilazione per analizzare il comportamento e le scelte degli utenti al fine di proporre contenuti mirati corrispondenti al profilo dell'utente",
117
- },
118
- en: {
119
- title: 'Profiling cookies',
120
- description:
121
- "The site uses profiling cookies to analyze user behavior and choices in order to propose targeted content corresponding to the user's profile",
122
- },
123
- es: {
124
- title: 'Cookies de perfil',
125
- description:
126
- 'El sitio utiliza cookies de perfil para analizar el comportamiento y las elecciones del usuario con el fin de proponer contenido específico que se corresponda con el perfil del usuario.',
127
- },
128
- fr: {
129
- title: 'Cookies de profilage',
130
- description:
131
- "Le site utilise des cookies de profilage pour analyser le comportement et les choix de l'utilisateur afin de proposer un contenu ciblé correspondant au profil de l'utilisateur",
132
- },
133
- },
134
-
135
- choices: [
136
- {
137
- config_key: 'YOUTUBE',
138
- referenceUrls: ['youtube.com', 'youtube-nocookie.com', 'youtu.be'],
139
- text: {
140
- it: {
141
- title: 'Youtube',
142
- description:
143
- "I cookie di profilazione di Youtube permettono di mostrarti le pubblicità che potrebbero interessarti di più, fare analisi di accesso alla pagina e sul comportamento dell'utente, facilitare l'accesso ai servizi di Google.",
144
- //text to show in conditional embed if that cookies are not enabled
145
- conditional_embed_text:
146
- 'Per vedere il video, accetta i cookies di Youtube.',
147
- },
148
- en: {
149
- title: 'Youtube',
150
- description:
151
- 'Youtube profiling cookies allow you to show advertisements that may interest you the most, analyze page access and user behavior, facilitate access to Google services. ',
152
- //text to show in conditional embed if that cookies are not enabled
153
- conditional_embed_text:
154
- 'To view the video, please accept Youtube cookies.',
155
- },
156
- es: {
157
- title: 'Youtube',
158
- description:
159
- 'Las cookies de perfil de Youtube le permiten mostrar los anuncios que más le pueden interesar, analizar el acceso a la página y el comportamiento del usuario, facilitar el acceso a los servicios de Google.',
160
- //text to show in conditional embed if that cookies are not enabled
161
- conditional_embed_text:
162
- 'Para ver el video, acepte las cookies de Youtube.',
163
- },
164
- fr: {
165
- title: 'Youtube',
166
- description:
167
- "Les cookies de profilage Youtube vous permettent d'afficher les publicités susceptibles de vous intéresser le plus, d'analyser l'accès aux pages et le comportement des utilisateurs, de faciliter l'accès aux services Google.",
168
- //text to show in conditional embed if that cookies are not enabled
169
- conditional_embed_text:
170
- 'Pour voir la vidéo, veuillez accepter les cookies Youtube.',
171
- },
172
- },
173
- },
174
- {
175
- config_key: 'VIMEO',
176
- referenceUrls: ['vimeo.com'],
177
- text: {
178
- it: {
179
- title: 'Vimeo',
180
- description:
181
- "I cookie di profilazione di Vimeo permettono di fare analisi di accesso alla pagina e sul comportamento dell'utente, e di mostrarti le pubblicità che potrebbero interessarti di più.",
182
- //text to show in conditional embed if that cookies are not enabled
183
- conditional_embed_text:
184
- 'Per vedere il video, accetta i cookies di Vimeo.',
185
- },
186
- en: {
187
- title: 'Vimeo',
188
- description:
189
- 'Vimeo profiling cookies allow you to analyze page access and user behavior, and to show you the advertisements that may interest you the most.',
190
- //text to show in conditional embed if that cookies are not enabled
191
- conditional_embed_text:
192
- 'To view the video, please accept Vimeo cookies.',
193
- },
194
- es: {
195
- title: 'Vimeo',
196
- description:
197
- 'Las cookies de creación de perfiles de Vimeo le permiten analizar el acceso a la página y el comportamiento del usuario, y mostrarle los anuncios que más le pueden interesar.',
198
- //text to show in conditional embed if that cookies are not enabled
199
- conditional_embed_text:
200
- 'Para ver el video, acepte las cookies de Vimeo.',
201
- },
202
- fr: {
203
- title: 'Vimeo',
204
- description:
205
- "Les cookies de profilage Vimeo vous permettent d'analyser l'accès aux pages et le comportement des utilisateurs, et de vous montrer les publicités qui pourraient vous intéresser le plus.",
206
- //text to show in conditional embed if that cookies are not enabled
207
- conditional_embed_text:
208
- 'Pour voir la vidéo, veuillez accepter les cookies Vimeo.',
209
- },
210
- },
211
- },
212
- /*{
213
- config_key: 'GOOGLEMAPS',
214
- referenceUrls: ['google.com/maps'],
215
- text: {
216
- it: {
217
- title: 'Google Maps',
218
- description:
219
- "I cookie di profilazione di Google permettono di fare analisi di accesso alla pagina e sul comportamento dell'utente, e di mostrarti le pubblicità che potrebbero interessarti di più.",
220
- //text to show in conditional embed if that cookies are not enabled
221
- conditional_embed_text:
222
- 'Per vedere la mappa, accetta i cookies di Google Maps.',
223
- },
224
- en: {
225
- title: 'Google Maps',
226
- description:
227
- 'Google profiling cookies allow you to analyze page access and user behavior, and to show you the advertisements that may interest you the most.',
228
- //text to show in conditional embed if that cookies are not enabled
229
- conditional_embed_text:
230
- 'To view map, please accept Google Maps cookies.',
231
- },
232
- es: {
233
- title: 'Google Maps',
234
- description:
235
- 'Las cookies de creación de perfiles de Google le permiten analizar el acceso a la página y el comportamiento del usuario, y mostrarle los anuncios que más le pueden interesar.',
236
- //text to show in conditional embed if that cookies are not enabled
237
- conditional_embed_text:
238
- 'Para ver el mapa, acepte las cookies de Google Maps.',
239
- },
240
- fr: {
241
- title: 'Google Maps',
242
- description:
243
- "Les cookies de profilage Google vous permettent d'analyser l'accès aux pages et le comportement des utilisateurs, et de vous montrer les publicités qui pourraient vous intéresser le plus.",
244
- //text to show in conditional embed if that cookies are not enabled
245
- conditional_embed_text:
246
- 'Pour afficher la carte, veuillez accepter les cookies de Google Maps.',
247
- },
248
- },
249
- },*/
250
- {
251
- config_key: 'META',
252
- referenceUrls: ['facebook.com', 'instagram.com'],
253
- text: {
254
- it: {
255
- title: 'Facebook e Instagram (prodotti Meta)',
256
- description:
257
- "I cookie di profilazione di Meta permettono di fare analisi di accesso alla pagina e sul comportamento dell'utente, e di mostrarti le pubblicità che potrebbero interessarti di più, solo se sei iscritto a Facebook o Instagram o ad uno dei prodotti di Meta.",
258
- //text to show in conditional embed if that cookies are not enabled
259
- conditional_embed_text:
260
- 'Per vedere i contenuti di Meta (Facebook, Instagram), accetta i cookies di Meta.',
261
- },
262
- en: {
263
- title: 'Facebook and Instagram (Meta products)',
264
- description:
265
- 'Meta profiling cookies allow you to analyze page access and user behavior, and to show you the advertisements that may interest you the most, only if you are subscribed into Facebook or Instagram or in one of Meta products.',
266
- //text to show in conditional embed if that cookies are not enabled
267
- conditional_embed_text:
268
- 'To view Meta contents, please accept Meta cookies.',
269
- },
270
- es: {
271
- title: 'Facebook e Instagram (productos Meta)',
272
- description:
273
- 'Las cookies de metaperfilado le permiten analizar el acceso a la página y el comportamiento del usuario, y mostrarle los anuncios que más le pueden interesar, solo si está suscrito a Facebook o Instagram o en uno de los productos de Meta.',
274
- //text to show in conditional embed if that cookies are not enabled
275
- conditional_embed_text:
276
- 'Para ver el contenido de Meta, acepte las cookies de Meta.',
277
- },
278
- fr: {
279
- title: 'Facebook et Instagram (produits Meta)',
280
- description:
281
- "Les cookies de méta profilage vous permettent d'analyser l'accès aux pages et le comportement des utilisateurs, et de vous montrer les publicités susceptibles de vous intéresser le plus, uniquement si vous êtes abonné à Facebook ou Instagram ou à l'un des produits Meta.",
282
- //text to show in conditional embed if that cookies are not enabled
283
- conditional_embed_text:
284
- 'Pour afficher le contenu Meta, veuillez accepter les cookies Meta.',
285
- },
286
- },
287
- },
288
- ],
289
- },
290
- };
291
-
292
- export default defaultPanelConfig;
@@ -1,134 +0,0 @@
1
- /**
2
- * View toc block.
3
- * CUSTOMIZATIONS:
4
- * - TOC component cannot work with DraftJS, block ids
5
- * are different than block id in layout
6
- * @module components/manage/Blocks/ToC/View
7
- */
8
-
9
- import React from 'react';
10
- import PropTypes from 'prop-types';
11
- import { injectIntl } from 'react-intl';
12
- import cx from 'classnames';
13
- import { Message } from 'semantic-ui-react';
14
- import config from '@plone/volto/registry';
15
- import { withBlockExtensions } from '@plone/volto/helpers';
16
-
17
- import {
18
- getBlocksFieldname,
19
- getBlocksLayoutFieldname,
20
- } from '@plone/volto/helpers';
21
-
22
- /**
23
- * View toc block class.
24
- * @class View
25
- * @extends Component
26
- */
27
- const View = (props) => {
28
- const { properties, data } = props;
29
- const { variation } = props;
30
- const blocksFieldname = getBlocksFieldname(properties);
31
- const blocksLayoutFieldname = getBlocksLayoutFieldname(properties);
32
- const levels = React.useMemo(
33
- () =>
34
- data.levels?.length > 0
35
- ? data.levels.map((l) => parseInt(l.slice(1)))
36
- : [1, 2, 3, 4, 5, 6],
37
- [data],
38
- );
39
- const tocEntries = React.useMemo(() => {
40
- let rootLevel = Infinity;
41
- let entries = [];
42
- let prevEntry = {};
43
- let tocEntries = {};
44
- let tocEntriesLayout = [];
45
-
46
- properties[blocksLayoutFieldname].items.forEach((id) => {
47
- const block = properties[blocksFieldname][id];
48
- if (typeof block === 'undefined') {
49
- return null;
50
- }
51
- if (!config.blocks.blocksConfig[block['@type']]?.tocEntry) return null;
52
- const entry = config.blocks.blocksConfig[block['@type']]?.tocEntry(
53
- block,
54
- data,
55
- );
56
- if (entry) {
57
- const level = entry[0];
58
- const title = entry[1];
59
- const draftJSKey = entry[2];
60
- const items = [];
61
-
62
- if (!level || !levels.includes(level)) return;
63
- tocEntriesLayout.push(draftJSKey);
64
- tocEntries[draftJSKey] = {
65
- level,
66
- title: title || block.plaintext,
67
- items,
68
- id: draftJSKey,
69
- override_toc: block.override_toc,
70
- plaintext: block.plaintext,
71
- };
72
- if (level < rootLevel) {
73
- rootLevel = level;
74
- }
75
- }
76
- });
77
-
78
- tocEntriesLayout.forEach((id) => {
79
- const entry = tocEntries[id];
80
- if (entry.level === rootLevel) {
81
- entries.push(entry);
82
- prevEntry = entry;
83
- return;
84
- }
85
- if (!prevEntry.id) return;
86
- if (entry.level > prevEntry.level) {
87
- entry.parentId = prevEntry.id;
88
- prevEntry.items.push(entry);
89
- prevEntry = entry;
90
- } else if (entry.level < prevEntry.level) {
91
- let parent = tocEntries[prevEntry.parentId];
92
- while (entry.level <= parent.level) {
93
- parent = tocEntries[parent.parentId];
94
- }
95
- entry.parentId = parent.id;
96
- parent.items.push(entry);
97
- prevEntry = entry;
98
- } else {
99
- entry.parentId = prevEntry.parentId;
100
- tocEntries[prevEntry.parentId].items.push(entry);
101
- prevEntry = entry;
102
- }
103
- });
104
-
105
- return entries;
106
- }, [data, levels, properties, blocksFieldname, blocksLayoutFieldname]);
107
-
108
- const Renderer = variation?.view;
109
-
110
- return (
111
- <div className={cx('table-of-contents', variation?.id)}>
112
- {props.mode === 'edit' && !data.title && !tocEntries.length && (
113
- <Message>Table of content</Message>
114
- )}
115
-
116
- {Renderer ? (
117
- <Renderer {...props} tocEntries={tocEntries} properties={properties} />
118
- ) : (
119
- <div>View extension not found</div>
120
- )}
121
- </div>
122
- );
123
- };
124
-
125
- /**
126
- * Property types.
127
- * @property {Object} propTypes Property types.
128
- * @static
129
- */
130
- View.propTypes = {
131
- properties: PropTypes.objectOf(PropTypes.any).isRequired,
132
- };
133
-
134
- export default injectIntl(withBlockExtensions(View));
@@ -1,99 +0,0 @@
1
- /**
2
- * CUSTOMIZATIONS: Fix slug variable to work with 'id' if overrride_toc is not set
3
- * View toc block.
4
- * @module components/manage/Blocks/ToC/View
5
- */
6
-
7
- import React from 'react';
8
- import PropTypes from 'prop-types';
9
- import { map } from 'lodash';
10
- import { List } from 'semantic-ui-react';
11
- import { FormattedMessage, injectIntl } from 'react-intl';
12
- import { useHistory } from 'react-router-dom';
13
- import AnchorLink from 'react-anchor-link-smooth-scroll';
14
- import Slugger from 'github-slugger';
15
-
16
- const RenderListItems = ({ items, data, history }) => {
17
- return map(items, (item) => {
18
- const { id, level, title, override_toc, plaintext } = item;
19
- /*
20
- //volto version:
21
- const slug = override_toc
22
- ? Slugger.slug(plaintext)
23
- : Slugger.slug(title) || id;
24
- */
25
- const slug = override_toc
26
- ? Slugger.slug(plaintext)
27
- : id || Slugger.slug(title);
28
- return (
29
- item && (
30
- <List.Item key={id} className={`item headline-${level}`} as="li">
31
- <AnchorLink
32
- href={`#${slug}`}
33
- onClick={(e) => {
34
- history.push({ hash: slug });
35
- }}
36
- >
37
- {title}
38
- </AnchorLink>
39
- {item.items?.length > 0 && (
40
- <List
41
- ordered={data.ordered}
42
- bulleted={!data.ordered}
43
- as={data.ordered ? 'ol' : 'ul'}
44
- >
45
- <RenderListItems
46
- items={item.items}
47
- data={data}
48
- history={history}
49
- />
50
- </List>
51
- )}
52
- </List.Item>
53
- )
54
- );
55
- });
56
- };
57
-
58
- /**
59
- * View toc block class.
60
- * @class View
61
- * @extends Component
62
- */
63
- const View = ({ data, tocEntries }) => {
64
- const history = useHistory();
65
- return (
66
- <>
67
- {data.title && !data.hide_title ? (
68
- <h2>
69
- {data.title || (
70
- <FormattedMessage
71
- id="Table of Contents"
72
- defaultMessage="Table of Contents"
73
- />
74
- )}
75
- </h2>
76
- ) : (
77
- ''
78
- )}
79
- <List
80
- ordered={data.ordered}
81
- bulleted={!data.ordered}
82
- as={data.ordered ? 'ol' : 'ul'}
83
- >
84
- <RenderListItems items={tocEntries} data={data} history={history} />
85
- </List>
86
- </>
87
- );
88
- };
89
-
90
- /**
91
- * Property types.
92
- * @property {Object} propTypes Property types.
93
- * @static
94
- */
95
- View.propTypes = {
96
- properties: PropTypes.objectOf(PropTypes.any).isRequired,
97
- };
98
-
99
- export default injectIntl(View);
@@ -1,63 +0,0 @@
1
- /**
2
- * Customizzato:
3
- * - cambiato l'import di AnchorPlugin per poterlo customizzare
4
- */
5
- import createLinkPlugin from 'design-comuni-plone-theme/config/RichTextEditor/Plugins/AnchorPlugin';
6
-
7
- import Styles from '@plone/volto/config/RichTextEditor/Styles';
8
-
9
- const breakOutOptions = {
10
- doubleBreakoutBlocks: [
11
- 'unordered-list-item',
12
- 'ordered-list-item',
13
- 'code-block',
14
- ],
15
- breakoutBlocks: [
16
- 'header-one',
17
- 'header-two',
18
- 'header-three',
19
- 'highlight',
20
- 'blockquote',
21
- 'callout',
22
- ],
23
- };
24
-
25
- //const linkDetectionPlugin = createLinkDetectionPlugin();
26
-
27
- const plugins = (props) => {
28
- const { draftJsInlineToolbarPlugin, draftJsBlockBreakoutPlugin } = props;
29
- const { Separator } = draftJsInlineToolbarPlugin;
30
- const blockBreakoutPlugin =
31
- draftJsBlockBreakoutPlugin.default(breakOutOptions);
32
-
33
- const linkPlugin = createLinkPlugin({ libraries: props });
34
-
35
- const buttons = Styles(props);
36
- const {
37
- BoldButton,
38
- ItalicButton,
39
- HeadlineTwoButton,
40
- HeadlineThreeButton,
41
- UnorderedListButton,
42
- OrderedListButton,
43
- BlockquoteButton,
44
- CalloutButton,
45
- } = buttons;
46
-
47
- const inlineToolbarButtons = [
48
- BoldButton,
49
- ItalicButton,
50
- linkPlugin.LinkButton,
51
- Separator,
52
- HeadlineTwoButton,
53
- HeadlineThreeButton,
54
- UnorderedListButton,
55
- OrderedListButton,
56
- BlockquoteButton,
57
- CalloutButton,
58
- ];
59
-
60
- return { inlineToolbarButtons, plugins: [linkPlugin, blockBreakoutPlugin] }; //linkDetectionPlugin
61
- };
62
-
63
- export default plugins;
@@ -1,9 +0,0 @@
1
- /*
2
- Used to verify that redraft text blocks are empty
3
- */
4
- export const checkRedraftHasContent = (text) => {
5
- if (text) {
6
- let blocks = text.blocks.filter((block) => block?.text !== '');
7
- return blocks.length > 0 ? true : false;
8
- }
9
- };