@plone/volto 17.0.0-alpha.8 → 17.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.
Files changed (365) hide show
  1. package/.eslintrc +26 -3
  2. package/CHANGELOG.md +488 -5
  3. package/CONTRIBUTING.md +5 -1
  4. package/README.md +12 -9
  5. package/addon-registry.js +10 -1
  6. package/create-addons-loader.js +1 -1
  7. package/cypress/support/commands.js +70 -14
  8. package/cypress/support/e2e.js +1 -2
  9. package/cypress/support/volto-slate.js +4 -5
  10. package/cypress.config.js +1 -0
  11. package/docker-compose.yml +1 -1
  12. package/locales/ca/LC_MESSAGES/volto.po +276 -53
  13. package/locales/ca.json +1 -1
  14. package/locales/de/LC_MESSAGES/volto.po +284 -61
  15. package/locales/de.json +1 -1
  16. package/locales/en/LC_MESSAGES/volto.po +274 -51
  17. package/locales/en.json +1 -1
  18. package/locales/es/LC_MESSAGES/volto.po +313 -90
  19. package/locales/es.json +1 -1
  20. package/locales/eu/LC_MESSAGES/volto.po +275 -52
  21. package/locales/eu.json +1 -1
  22. package/locales/fi/LC_MESSAGES/volto.po +275 -52
  23. package/locales/fi.json +1 -1
  24. package/locales/fr/LC_MESSAGES/volto.po +276 -53
  25. package/locales/fr.json +1 -1
  26. package/locales/it/LC_MESSAGES/volto.po +469 -246
  27. package/locales/it.json +1 -1
  28. package/locales/ja/LC_MESSAGES/volto.po +275 -52
  29. package/locales/ja.json +1 -1
  30. package/locales/nl/LC_MESSAGES/volto.po +276 -53
  31. package/locales/nl.json +1 -1
  32. package/locales/pt/LC_MESSAGES/volto.po +276 -53
  33. package/locales/pt.json +1 -1
  34. package/locales/pt_BR/LC_MESSAGES/volto.po +309 -86
  35. package/locales/pt_BR.json +1 -1
  36. package/locales/ro/LC_MESSAGES/volto.po +276 -53
  37. package/locales/ro.json +1 -1
  38. package/locales/volto.pot +279 -52
  39. package/locales/zh_CN/LC_MESSAGES/volto.po +276 -53
  40. package/locales/zh_CN.json +1 -1
  41. package/package.json +44 -34
  42. package/packages/volto-slate/package.json +1 -1
  43. package/packages/volto-slate/src/actions/index.js +1 -1
  44. package/packages/volto-slate/src/blocks/Table/TableBlockEdit.jsx +21 -212
  45. package/packages/volto-slate/src/blocks/Table/schema.js +122 -0
  46. package/packages/volto-slate/src/blocks/Text/DefaultTextBlockEditor.jsx +8 -3
  47. package/packages/volto-slate/src/blocks/Text/TextBlockView.jsx +21 -16
  48. package/packages/volto-slate/src/blocks/Text/extensions/withDeserializers.js +3 -1
  49. package/packages/volto-slate/src/blocks/Text/index.js +10 -7
  50. package/packages/volto-slate/src/editor/config.jsx +5 -4
  51. package/packages/volto-slate/src/editor/index.js +4 -4
  52. package/packages/volto-slate/src/editor/less/slate.less +28 -0
  53. package/packages/volto-slate/src/editor/plugins/Link/render.jsx +5 -6
  54. package/packages/volto-slate/src/editor/plugins/StyleMenu/StyleMenu.jsx +14 -4
  55. package/packages/volto-slate/src/editor/plugins/StyleMenu/utils.js +14 -5
  56. package/packages/volto-slate/src/editor/render.jsx +77 -8
  57. package/packages/volto-slate/src/editor/ui/SlateContextToolbar.jsx +2 -2
  58. package/packages/volto-slate/src/editor/ui/index.js +15 -15
  59. package/packages/volto-slate/src/index.js +2 -2
  60. package/packages/volto-slate/src/utils/blocks.js +7 -0
  61. package/packages/volto-slate/src/widgets/RichTextWidget.jsx +15 -8
  62. package/razzle.config.js +4 -6
  63. package/src/actions/index.js +4 -0
  64. package/src/actions/navroot/navroot.js +16 -0
  65. package/src/actions/navroot/navroot.test.js +15 -0
  66. package/src/actions/relations/rebuild.js +7 -7
  67. package/src/actions/relations/relations.js +17 -0
  68. package/src/actions/site/site.js +16 -0
  69. package/src/actions/site/site.test.js +15 -0
  70. package/src/actions/userSession/userSession.js +17 -1
  71. package/src/components/index.js +194 -192
  72. package/src/components/manage/Actions/Actions.jsx +133 -243
  73. package/src/components/manage/Add/Add.jsx +7 -8
  74. package/src/components/manage/AnchorPlugin/index.jsx +2 -2
  75. package/src/components/manage/AnchorPlugin/utils/EditorUtils.js +3 -1
  76. package/src/components/manage/Blocks/Block/BlocksForm.jsx +19 -2
  77. package/src/components/manage/Blocks/Block/Edit.jsx +1 -1
  78. package/src/components/manage/Blocks/Block/Settings.jsx +2 -0
  79. package/src/components/manage/Blocks/Block/Settings.test.jsx +92 -0
  80. package/src/components/manage/Blocks/Block/Style.jsx +2 -2
  81. package/src/components/manage/Blocks/Container/Data.jsx +32 -0
  82. package/src/components/manage/Blocks/Container/Edit.jsx +177 -0
  83. package/src/components/manage/Blocks/Container/EditBlockWrapper.jsx +121 -0
  84. package/src/components/manage/Blocks/Container/NewBlockAddButton.jsx +84 -0
  85. package/src/components/manage/Blocks/Container/SimpleContainerToolbar.jsx +54 -0
  86. package/src/components/manage/Blocks/Grid/Edit.jsx +47 -0
  87. package/src/components/manage/Blocks/Grid/View.jsx +43 -0
  88. package/src/components/manage/Blocks/Grid/adapter.js +14 -0
  89. package/src/components/manage/Blocks/Grid/grid-1.svg +6 -0
  90. package/src/components/manage/Blocks/Grid/grid-2.svg +9 -0
  91. package/src/components/manage/Blocks/Grid/grid-3.svg +10 -0
  92. package/src/components/manage/Blocks/Grid/grid-4.svg +11 -0
  93. package/src/components/manage/Blocks/Grid/schema.js +35 -0
  94. package/src/components/manage/Blocks/Grid/templates.js +47 -0
  95. package/src/components/manage/Blocks/HTML/Edit.jsx +8 -8
  96. package/src/components/manage/Blocks/HeroImageLeft/Edit.jsx +36 -26
  97. package/src/components/manage/Blocks/Image/Edit.jsx +51 -12
  98. package/src/components/manage/Blocks/Image/Edit.test.jsx +2 -0
  99. package/src/components/manage/Blocks/Image/ImageSidebar.jsx +66 -16
  100. package/src/components/manage/Blocks/Image/View.jsx +26 -5
  101. package/src/components/manage/Blocks/Image/View.test.jsx +20 -0
  102. package/src/components/manage/Blocks/Image/schema.js +17 -10
  103. package/src/components/manage/Blocks/Image/utils.js +14 -0
  104. package/src/components/manage/Blocks/LeadImage/Edit.jsx +32 -10
  105. package/src/components/manage/Blocks/LeadImage/Edit.test.jsx +11 -1
  106. package/src/components/manage/Blocks/LeadImage/LeadImageSidebar.jsx +28 -9
  107. package/src/components/manage/Blocks/LeadImage/LeadImageSidebar.test.jsx +8 -2
  108. package/src/components/manage/Blocks/LeadImage/View.jsx +50 -38
  109. package/src/components/manage/Blocks/LeadImage/View.test.jsx +11 -1
  110. package/src/components/manage/Blocks/Listing/DefaultTemplate.jsx +18 -3
  111. package/src/components/manage/Blocks/Listing/ListingBody.jsx +32 -8
  112. package/src/components/manage/Blocks/Listing/ListingBody.test.jsx +20 -0
  113. package/src/components/manage/Blocks/Listing/SummaryTemplate.jsx +1 -1
  114. package/src/components/manage/Blocks/Listing/getAsyncData.js +3 -5
  115. package/src/components/manage/Blocks/Listing/withQuerystringResults.jsx +27 -17
  116. package/src/components/manage/Blocks/Maps/Edit.jsx +135 -209
  117. package/src/components/manage/Blocks/Maps/Edit.test.jsx +1 -2
  118. package/src/components/manage/Blocks/Maps/View.test.jsx +1 -2
  119. package/src/components/manage/Blocks/Search/SearchBlockView.jsx +3 -2
  120. package/src/components/manage/Blocks/Search/components/Facets.jsx +66 -7
  121. package/src/components/manage/Blocks/Search/components/FilterList.jsx +4 -6
  122. package/src/components/manage/Blocks/Search/components/SearchInput.jsx +9 -2
  123. package/src/components/manage/Blocks/Search/components/SelectFacet.jsx +2 -9
  124. package/src/components/manage/Blocks/Search/components/index.js +13 -13
  125. package/src/components/manage/Blocks/Search/hocs/index.js +2 -2
  126. package/src/components/manage/Blocks/Search/hocs/withQueryString.jsx +5 -2
  127. package/src/components/manage/Blocks/Search/hocs/withSearch.jsx +70 -36
  128. package/src/components/manage/Blocks/Search/layout/LeftColumnFacets.jsx +17 -5
  129. package/src/components/manage/Blocks/Search/layout/RightColumnFacets.jsx +17 -5
  130. package/src/components/manage/Blocks/Search/layout/TopSideFacets.jsx +21 -5
  131. package/src/components/manage/Blocks/Search/schema.js +29 -14
  132. package/src/components/manage/Blocks/Table/Cell.jsx +2 -3
  133. package/src/components/manage/Blocks/Teaser/Body.jsx +0 -1
  134. package/src/components/manage/Blocks/Teaser/DefaultBody.jsx +5 -10
  135. package/src/components/manage/Blocks/Teaser/schema.js +5 -0
  136. package/src/components/manage/Blocks/Text/Edit.jsx +2 -3
  137. package/src/components/manage/Blocks/Title/View.jsx +0 -23
  138. package/src/components/manage/Blocks/Title/View.test.jsx +16 -1
  139. package/src/components/manage/Blocks/ToC/Schema.jsx +40 -7
  140. package/src/components/manage/Blocks/ToC/View.jsx +84 -14
  141. package/src/components/manage/Blocks/ToC/variations/DefaultTocRenderer.jsx +8 -3
  142. package/src/components/manage/Blocks/ToC/variations/DefaultTocRenderer.test.jsx +44 -0
  143. package/src/components/manage/Blocks/ToC/variations/HorizontalMenu.jsx +149 -10
  144. package/src/components/manage/Blocks/ToC/variations/index.js +3 -1
  145. package/src/components/manage/Contents/Contents.jsx +285 -114
  146. package/src/components/manage/Contents/ContentsPropertiesModal.jsx +90 -166
  147. package/src/components/manage/Contents/ContentsRenameModal.jsx +88 -139
  148. package/src/components/manage/Contents/ContentsRenameModal.stories.jsx +61 -0
  149. package/src/components/manage/Contents/ContentsTagsModal.jsx +83 -130
  150. package/src/components/manage/Contents/ContentsTagsModal.stories.jsx +68 -0
  151. package/src/components/manage/Contents/ContentsUploadModal.jsx +11 -7
  152. package/src/components/manage/Contents/ContentsWorkflowModal.jsx +87 -154
  153. package/src/components/manage/Controlpanels/Aliases.jsx +4 -12
  154. package/src/components/manage/Controlpanels/Groups/GroupsControlpanel.jsx +65 -38
  155. package/src/components/manage/Controlpanels/Groups/RenderGroups.jsx +2 -2
  156. package/src/components/manage/Controlpanels/Relations/BrokenRelations.jsx +38 -13
  157. package/src/components/manage/Controlpanels/Relations/Relations.jsx +5 -5
  158. package/src/components/manage/Controlpanels/Relations/RelationsListing.jsx +8 -7
  159. package/src/components/manage/Controlpanels/Relations/RelationsMatrix.jsx +68 -68
  160. package/src/components/manage/Controlpanels/Rules/AddRule.jsx +3 -10
  161. package/src/components/manage/Controlpanels/Rules/EditRule.jsx +1 -1
  162. package/src/components/manage/Controlpanels/UndoControlpanel.jsx +6 -9
  163. package/src/components/manage/Controlpanels/Users/RenderUsers.jsx +97 -7
  164. package/src/components/manage/Controlpanels/Users/UsersControlpanel.jsx +127 -99
  165. package/src/components/manage/Delete/Delete.jsx +96 -171
  166. package/src/components/manage/Diff/DiffField.jsx +25 -1
  167. package/src/components/manage/DragDropList/DragDropList.jsx +18 -13
  168. package/src/components/manage/Form/BlockDataForm.jsx +3 -2
  169. package/src/components/manage/Form/BlockDataForm.test.jsx +51 -17
  170. package/src/components/manage/Form/Form.jsx +7 -6
  171. package/src/components/manage/Form/InlineForm.test.jsx +16 -14
  172. package/src/components/manage/History/History.jsx +11 -1
  173. package/src/components/manage/LinksToItem/LinksToItem.jsx +209 -0
  174. package/src/components/manage/LinksToItem/LinksToItem.test.jsx +100 -0
  175. package/src/components/manage/LockingToastsFactory/LockingToastsFactory.jsx +1 -2
  176. package/src/components/manage/Messages/Messages.jsx +32 -99
  177. package/src/components/manage/Messages/Messages.test.jsx +0 -1
  178. package/src/components/manage/Preferences/ChangePassword.jsx +2 -2
  179. package/src/components/manage/Sharing/Sharing.jsx +62 -22
  180. package/src/components/manage/Sidebar/AlignBlock.jsx +1 -1
  181. package/src/components/manage/Sidebar/Sidebar.jsx +139 -220
  182. package/src/components/manage/TemplateChooser/TemplateChooser.jsx +38 -0
  183. package/src/components/manage/TemplateChooser/TemplateChooser.test.jsx +34 -0
  184. package/src/components/manage/TemplateChooser/template.svg +10 -0
  185. package/src/components/manage/Toast/Toast.jsx +1 -1
  186. package/src/components/manage/Toolbar/More.jsx +17 -2
  187. package/src/components/manage/Toolbar/PersonalTools.jsx +97 -155
  188. package/src/components/manage/Toolbar/Toolbar.jsx +2 -2
  189. package/src/components/manage/UniversalLink/UniversalLink.jsx +6 -12
  190. package/src/components/manage/UniversalLink/UniversalLink.test.jsx +37 -0
  191. package/src/components/manage/Widgets/AlignWidget.jsx +2 -4
  192. package/src/components/manage/Widgets/ArrayWidget.jsx +3 -1
  193. package/src/components/manage/Widgets/ArrayWidget.test.jsx +45 -1
  194. package/src/components/manage/Widgets/ColorPickerWidget.jsx +6 -1
  195. package/src/components/manage/Widgets/ColorPickerWidget.test.jsx +9 -7
  196. package/src/components/manage/Widgets/DatetimeWidget.jsx +2 -8
  197. package/src/components/manage/Widgets/FileWidget.jsx +2 -1
  198. package/src/components/manage/Widgets/FormFieldWrapper.jsx +1 -1
  199. package/src/components/manage/Widgets/IdWidget.jsx +1 -2
  200. package/src/components/manage/Widgets/ObjectBrowserWidget.jsx +2 -9
  201. package/src/components/manage/Widgets/RecurrenceWidget/RecurrenceWidget.jsx +3 -10
  202. package/src/components/manage/Widgets/RecurrenceWidget/WeekdayOfTheMonthIndexField.jsx +4 -4
  203. package/src/components/manage/Widgets/RegistryImageWidget.jsx +210 -0
  204. package/src/components/manage/Widgets/RegistryImageWidget.test.jsx +91 -0
  205. package/src/components/manage/Widgets/SchemaWidget.jsx +6 -9
  206. package/src/components/manage/Widgets/SelectUtils.js +1 -1
  207. package/src/components/manage/Widgets/SelectWidget.jsx +15 -1
  208. package/src/components/manage/Widgets/SelectWidget.test.jsx +45 -1
  209. package/src/components/manage/Widgets/WysiwygWidget.jsx +2 -9
  210. package/src/components/manage/Workflow/Workflow.jsx +75 -184
  211. package/src/components/theme/Anontools/Anontools.jsx +44 -72
  212. package/src/components/theme/Anontools/Anontools.stories.jsx +16 -6
  213. package/src/components/theme/Anontools/Anontools.test.jsx +16 -2
  214. package/src/components/theme/Breadcrumbs/Breadcrumbs.jsx +52 -99
  215. package/src/components/theme/Breadcrumbs/Breadcrumbs.stories.jsx +14 -13
  216. package/src/components/theme/Comments/Comment.stories.jsx +84 -0
  217. package/src/components/theme/Comments/CommentEditModal.jsx +63 -115
  218. package/src/components/theme/Comments/Comments.jsx +268 -380
  219. package/src/components/theme/Component/Component.jsx +1 -1
  220. package/src/components/theme/ContactForm/ContactForm.jsx +108 -192
  221. package/src/components/theme/ContactForm/ContactForm.stories.jsx +1 -1
  222. package/src/components/theme/ContactForm/ContactForm.test.jsx +2 -3
  223. package/src/components/theme/ContentMetadataTags/ContentMetadataTags.jsx +41 -3
  224. package/src/components/theme/Error/ServerError.jsx +29 -0
  225. package/src/components/theme/Header/Header.jsx +37 -63
  226. package/src/components/theme/Header/Header.test.jsx +18 -0
  227. package/src/components/theme/Image/Image.jsx +96 -0
  228. package/src/components/theme/Image/Image.test.jsx +125 -0
  229. package/src/components/theme/Login/Login.jsx +160 -243
  230. package/src/components/theme/Logo/Logo.Multilingual.test.jsx +131 -1
  231. package/src/components/theme/Logo/Logo.jsx +35 -27
  232. package/src/components/theme/Logo/Logo.test.jsx +135 -1
  233. package/src/components/theme/Logout/Logout.jsx +36 -83
  234. package/src/components/theme/Navigation/Navigation.jsx +86 -171
  235. package/src/components/theme/NotFound/NotFound.jsx +55 -41
  236. package/src/components/theme/PasswordReset/PasswordReset.jsx +7 -5
  237. package/src/components/theme/PasswordReset/RequestPasswordReset.jsx +95 -170
  238. package/src/components/theme/PreviewImage/PreviewImage.jsx +31 -15
  239. package/src/components/theme/PreviewImage/PreviewImage.test.js +53 -13
  240. package/src/components/theme/Register/Register.jsx +2 -4
  241. package/src/components/theme/Search/SearchTags.jsx +30 -60
  242. package/src/components/theme/SearchWidget/SearchWidget.jsx +49 -97
  243. package/src/components/theme/SearchWidget/SearchWidget.test.jsx +8 -0
  244. package/src/components/theme/Sitemap/Sitemap.jsx +24 -13
  245. package/src/components/theme/Sitemap/Sitemap.test.jsx +23 -2
  246. package/src/components/theme/TsTest/TsTest.test.tsx +11 -0
  247. package/src/components/theme/TsTest/TsTest.tsx +15 -0
  248. package/src/components/theme/View/AlbumView.jsx +21 -16
  249. package/src/components/theme/View/EventView.jsx +36 -25
  250. package/src/components/theme/View/FileView.jsx +23 -18
  251. package/src/components/theme/View/ImageView.jsx +40 -32
  252. package/src/components/theme/View/ImageView.test.jsx +4 -0
  253. package/src/components/theme/View/LinkView.jsx +53 -78
  254. package/src/components/theme/View/ListingView.jsx +36 -28
  255. package/src/components/theme/View/NewsItemView.jsx +16 -17
  256. package/src/components/theme/View/RenderBlocks.jsx +56 -21
  257. package/src/components/theme/View/RenderEmptyBlock.jsx +5 -0
  258. package/src/components/theme/View/SummaryView.jsx +49 -39
  259. package/src/components/theme/View/TabularView.jsx +59 -53
  260. package/src/components/theme/View/View.jsx +2 -0
  261. package/src/components/theme/Widgets/ImageWidget.stories.jsx +1 -2
  262. package/src/config/Blocks.jsx +46 -0
  263. package/src/config/Components.jsx +3 -1
  264. package/src/config/ControlPanels.js +0 -1
  265. package/src/config/Loadables.jsx +1 -1
  266. package/src/config/NonContentRoutes.jsx +1 -0
  267. package/src/config/RichTextEditor/Blocks.jsx +4 -5
  268. package/src/config/RichTextEditor/FromHTML.jsx +2 -2
  269. package/src/config/RichTextEditor/Plugins.jsx +2 -3
  270. package/src/config/RichTextEditor/Styles.jsx +1 -1
  271. package/src/config/RichTextEditor/ToHTML.jsx +12 -10
  272. package/src/config/RichTextEditor/index.js +2 -3
  273. package/src/config/Views.jsx +6 -4
  274. package/src/config/Widgets.jsx +3 -0
  275. package/src/config/index.js +36 -2
  276. package/src/config/server.js +2 -0
  277. package/src/constants/ActionTypes.js +4 -0
  278. package/src/constants/Indexes.js +3 -1
  279. package/src/express-middleware/devproxy.js +1 -1
  280. package/src/express-middleware/files.js +11 -9
  281. package/src/express-middleware/images.js +12 -5
  282. package/src/express-middleware/ok.js +16 -0
  283. package/src/express-middleware/robotstxt.js +1 -1
  284. package/src/express-middleware/sitemap.js +1 -1
  285. package/src/express-middleware/static.js +3 -3
  286. package/src/helpers/Api/Api.js +1 -1
  287. package/src/helpers/Blocks/Blocks.js +52 -6
  288. package/src/helpers/Blocks/Blocks.test.js +92 -13
  289. package/src/helpers/Extensions/index.js +2 -1
  290. package/src/helpers/Extensions/withBlockSchemaEnhancer.js +63 -61
  291. package/src/helpers/Extensions/withBlockSchemaEnhancer.test.js +145 -0
  292. package/src/helpers/FormValidation/FormValidation.js +37 -7
  293. package/src/helpers/FormValidation/FormValidation.test.js +32 -0
  294. package/src/helpers/Html/Html.jsx +2 -8
  295. package/src/helpers/Loadable/__mocks__/Loadable.js +18 -18
  296. package/src/helpers/MessageLabels/MessageLabels.js +39 -4
  297. package/src/helpers/ScrollToTop/ScrollToTop.jsx +5 -3
  298. package/src/helpers/Site/index.js +21 -0
  299. package/src/helpers/Url/Url.js +22 -1
  300. package/src/helpers/Url/Url.test.js +41 -0
  301. package/src/helpers/Utils/UseDetectClickOutside.stories.jsx +190 -0
  302. package/src/helpers/Utils/Utils.js +35 -0
  303. package/src/helpers/Utils/Utils.test.js +13 -0
  304. package/src/helpers/Utils/usePagination.js +67 -14
  305. package/src/helpers/Utils/usePagination.test.js +115 -0
  306. package/src/helpers/index.js +15 -8
  307. package/src/hooks/client/useClient.js +11 -0
  308. package/src/hooks/clipboard/useClipboard.js +26 -0
  309. package/src/hooks/index.js +2 -0
  310. package/src/icons/grid-block.svg +11 -0
  311. package/src/middleware/api.js +203 -173
  312. package/src/middleware/blacklistRoutes.js +25 -22
  313. package/src/middleware/index.js +2 -2
  314. package/src/middleware/storeProtectLoadUtils.js +61 -62
  315. package/src/middleware/storeProtectLoadUtils.test.js +47 -43
  316. package/src/reducers/actions/actions.js +7 -5
  317. package/src/reducers/actions/actions.test.js +70 -0
  318. package/src/reducers/content/content.test.js +4 -4
  319. package/src/reducers/index.js +4 -0
  320. package/src/reducers/navigation/navigation.js +5 -5
  321. package/src/reducers/navigation/navigation.test.js +30 -0
  322. package/src/reducers/navroot/navroot.js +79 -0
  323. package/src/reducers/navroot/navroot.test.js +110 -0
  324. package/src/reducers/relations/relations.js +74 -46
  325. package/src/reducers/site/site.js +51 -0
  326. package/src/reducers/site/site.test.js +67 -0
  327. package/src/reducers/userSession/userSession.js +15 -1
  328. package/src/registry.js +2 -2
  329. package/src/routes.js +9 -0
  330. package/src/server.jsx +9 -0
  331. package/src/start-server.js +2 -2
  332. package/src/storybook.jsx +24 -38
  333. package/test-setup-config.js +11 -1
  334. package/theme/themes/pastanaga/collections/form.overrides +46 -0
  335. package/theme/themes/pastanaga/collections/menu.overrides +3 -2
  336. package/theme/themes/pastanaga/elements/container.overrides +5 -2
  337. package/theme/themes/pastanaga/elements/input.overrides +11 -1
  338. package/theme/themes/pastanaga/elements/label.overrides +10 -0
  339. package/theme/themes/pastanaga/elements/step.overrides +2 -1
  340. package/theme/themes/pastanaga/extras/blocks.less +25 -15
  341. package/theme/themes/pastanaga/extras/color-picker-widget.less +1 -1
  342. package/theme/themes/pastanaga/extras/contents.less +6 -1
  343. package/theme/themes/pastanaga/extras/draftjs.less +4 -4
  344. package/theme/themes/pastanaga/extras/grid.less +427 -0
  345. package/theme/themes/pastanaga/extras/login.less +3 -0
  346. package/theme/themes/pastanaga/extras/main.less +14 -7
  347. package/theme/themes/pastanaga/extras/react-dates-overrides.less +4 -2
  348. package/theme/themes/pastanaga/extras/search.less +7 -1
  349. package/theme/themes/pastanaga/extras/sidebar.less +5 -4
  350. package/theme/themes/pastanaga/extras/time-picker-overrides.less +5 -3
  351. package/theme/themes/pastanaga/extras/toc.less +29 -0
  352. package/theme/themes/pastanaga/extras/toolbar.less +6 -2
  353. package/theme/themes/pastanaga/extras/userscontrolpanel.less +17 -9
  354. package/theme/themes/pastanaga/extras/widgets.less +1 -1
  355. package/theme/themes/pastanaga/modules/rating.overrides +2 -1
  356. package/theme/themes/pastanaga-cms-ui/elements/container.overrides +2 -1
  357. package/theme/themes/pastanaga-cms-ui/extras/cms-ui.elements.container.less +6 -2
  358. package/theme/themes/pastanaga-cms-ui/extras/cms-ui.site.less +2 -2
  359. package/tsconfig.json +33 -0
  360. package/webpack-plugins/webpack-less-plugin.js +19 -0
  361. package/.yarn/install-state.gz +0 -0
  362. package/.yarn/releases/yarn-3.2.3.cjs +0 -783
  363. package/src/components/manage/Blocks/Teaser/utils.js +0 -44
  364. package/src/components/manage/Blocks/Teaser/utils.test.jsx +0 -229
  365. package/src/components/theme/Header/Header.md +0 -27
@@ -1,53 +1,67 @@
1
- /**
2
- * Home container.
3
- * @module components/theme/NotFound/NotFound
4
- */
5
-
6
- import React from 'react';
1
+ import { useEffect } from 'react';
2
+ import { BodyClass, toBackendLang } from '@plone/volto/helpers';
7
3
  import { FormattedMessage } from 'react-intl';
8
4
  import { Link } from 'react-router-dom';
9
5
  import { Container } from 'semantic-ui-react';
10
6
  import { withServerErrorCode } from '@plone/volto/helpers/Utils/Utils';
7
+ import { useDispatch, useSelector } from 'react-redux';
8
+ import { getNavigation } from '@plone/volto/actions';
9
+ import config from '@plone/volto/registry';
11
10
 
12
11
  /**
13
12
  * Not found function.
14
13
  * @function NotFound
15
14
  * @returns {string} Markup of the not found page.
16
15
  */
17
- const NotFound = () => (
18
- <Container className="view-wrapper">
19
- <h1>
20
- <FormattedMessage
21
- id="This page does not seem to exist…"
22
- defaultMessage="This page does not seem to exist…"
23
- />
24
- </h1>
25
- <p className="description">
26
- <FormattedMessage
27
- id="We apologize for the inconvenience, but the page you were trying to access is not at this address. You can use the links below to help you find what you are looking for."
28
- defaultMessage="We apologize for the inconvenience, but the page you were trying to access is not at this address. You can use the links below to help you find what you are looking for."
29
- />
30
- </p>
31
- <p>
32
- <FormattedMessage
33
- id="If you are certain you have the correct web address but are encountering an error, please contact the {site_admin}."
34
- defaultMessage="If you are certain you have the correct web address but are encountering an error, please contact the {site_admin}."
35
- values={{
36
- site_admin: (
37
- <Link to="/contact-form">
38
- <FormattedMessage
39
- id="Site Administration"
40
- defaultMessage="Site Administration"
41
- />
42
- </Link>
43
- ),
44
- }}
45
- />
46
- </p>
47
- <p>
48
- <FormattedMessage id="Thank you." defaultMessage="Thank you." />
49
- </p>
50
- </Container>
51
- );
16
+ const NotFound = () => {
17
+ const dispatch = useDispatch();
18
+ const lang = useSelector((state) => state.intl.locale);
19
+
20
+ useEffect(() => {
21
+ dispatch(
22
+ getNavigation(
23
+ config.settings.isMultilingual ? `/${toBackendLang(lang)}` : '/',
24
+ config.settings.navDepth,
25
+ ),
26
+ );
27
+ }, [dispatch, lang]);
28
+
29
+ return (
30
+ <Container className="view-wrapper">
31
+ <BodyClass className="page-not-found" />
32
+ <h1>
33
+ <FormattedMessage
34
+ id="This page does not seem to exist…"
35
+ defaultMessage="This page does not seem to exist…"
36
+ />
37
+ </h1>
38
+ <p className="description">
39
+ <FormattedMessage
40
+ id="We apologize for the inconvenience, but the page you were trying to access is not at this address. You can use the links below to help you find what you are looking for."
41
+ defaultMessage="We apologize for the inconvenience, but the page you were trying to access is not at this address. You can use the links below to help you find what you are looking for."
42
+ />
43
+ </p>
44
+ <p>
45
+ <FormattedMessage
46
+ id="If you are certain you have the correct web address but are encountering an error, please contact the {site_admin}."
47
+ defaultMessage="If you are certain you have the correct web address but are encountering an error, please contact the {site_admin}."
48
+ values={{
49
+ site_admin: (
50
+ <Link to="/contact-form">
51
+ <FormattedMessage
52
+ id="Site Administration"
53
+ defaultMessage="Site Administration"
54
+ />
55
+ </Link>
56
+ ),
57
+ }}
58
+ />
59
+ </p>
60
+ <p>
61
+ <FormattedMessage id="Thank you." defaultMessage="Thank you." />
62
+ </p>
63
+ </Container>
64
+ );
65
+ };
52
66
 
53
67
  export default withServerErrorCode(404)(NotFound);
@@ -50,8 +50,8 @@ const messages = defineMessages({
50
50
  defaultMessage: 'New password',
51
51
  },
52
52
  passwordDescription: {
53
- id: 'Enter your new password. Minimum 5 characters.',
54
- defaultMessage: 'Enter your new password. Minimum 5 characters.',
53
+ id: 'Enter your new password. Minimum 8 characters.',
54
+ defaultMessage: 'Enter your new password. Minimum 8 characters.',
55
55
  },
56
56
  passwordRepeatTitle: {
57
57
  id: 'Confirm password',
@@ -79,8 +79,7 @@ const messages = defineMessages({
79
79
  defaultMessage: 'Account activation completed',
80
80
  },
81
81
  successRedirectToLoginBody: {
82
- id:
83
- 'Your password has been set successfully. You may now {link} with your new password.',
82
+ id: 'Your password has been set successfully. You may now {link} with your new password.',
84
83
  defaultMessage:
85
84
  'Your password has been set successfully. You may now {link} with your new password.',
86
85
  },
@@ -227,6 +226,9 @@ class PasswordReset extends Component {
227
226
  );
228
227
  }
229
228
  if (this.props.token) {
229
+ const errmsg = this.props.error
230
+ ? this.props.error.response.body.error
231
+ : null;
230
232
  return (
231
233
  <div id="page-password-reset">
232
234
  <Helmet
@@ -238,7 +240,7 @@ class PasswordReset extends Component {
238
240
  description={this.props.intl.formatMessage(messages.description)}
239
241
  onSubmit={this.onSubmit}
240
242
  onCancel={this.onCancel}
241
- error={this.state.error || this.props.error}
243
+ error={this.state.error || errmsg}
242
244
  schema={{
243
245
  fieldsets: [
244
246
  {
@@ -1,17 +1,10 @@
1
- /**
2
- * RequestPasswordReset component.
3
- * @module components/theme/RequestPasswordReset/RequestPasswordReset
4
- */
5
-
6
- import React, { Component } from 'react';
7
- import PropTypes from 'prop-types';
8
- import { connect } from 'react-redux';
9
- import { compose } from 'redux';
10
- import { withRouter } from 'react-router-dom';
11
- import { Helmet } from '@plone/volto/helpers';
1
+ import { useState, useEffect, useRef } from 'react';
2
+ import { useDispatch, useSelector } from 'react-redux';
3
+ import { useHistory } from 'react-router-dom';
12
4
  import { Container } from 'semantic-ui-react';
13
- import { FormattedMessage, defineMessages, injectIntl } from 'react-intl';
5
+ import { FormattedMessage, defineMessages, useIntl } from 'react-intl';
14
6
 
7
+ import { Helmet, usePrevious } from '@plone/volto/helpers';
15
8
  import { Form } from '@plone/volto/components';
16
9
  import { resetPassword } from '@plone/volto/actions';
17
10
  import config from '@plone/volto/registry';
@@ -56,178 +49,110 @@ const messages = defineMessages({
56
49
  },
57
50
  });
58
51
 
59
- /**
60
- * RequestPasswordReset class.
61
- * @class RequestPasswordReset
62
- * @extends Component
63
- */
64
- class RequestPasswordReset extends Component {
65
- /**
66
- * Property types.
67
- * @property {Object} propTypes Property types.
68
- * @static
69
- */
70
- static propTypes = {
71
- loading: PropTypes.bool.isRequired,
72
- loaded: PropTypes.bool.isRequired,
73
- error: PropTypes.string,
74
- resetPassword: PropTypes.func.isRequired,
75
- };
52
+ const useUsers = () => {
53
+ const loading = useSelector((state) => state.users.reset.loading);
54
+ const loaded = useSelector((state) => state.users.reset.loaded);
55
+ const error = useSelector((state) => state.users.reset.error);
76
56
 
77
- /**
78
- * Default properties.
79
- * @property {Object} defaultProps Default properties.
80
- * @static
81
- */
82
- static defaultProps = {
83
- error: null,
84
- };
57
+ return { loading, loaded, error };
58
+ };
85
59
 
86
- /**
87
- * Constructor
88
- * @method constructor
89
- * @param {Object} props Component properties
90
- * @constructs Controlpanel
91
- */
92
- constructor(props) {
93
- super(props);
94
- this.onCancel = this.onCancel.bind(this);
95
- this.onSubmit = this.onSubmit.bind(this);
96
- this.identifierField = config.settings.useEmailAsLogin
97
- ? 'email'
98
- : 'username';
60
+ const RequestPasswordReset = () => {
61
+ const intl = useIntl();
62
+ const dispatch = useDispatch();
63
+ const [error, setError] = useState(null);
64
+ const [isSuccessful, setisSuccessful] = useState(false);
65
+ const history = useHistory();
66
+ const identifierTitle = useRef();
67
+ const identifierRequiredMessage = useRef();
68
+ const { loaded, loading, error: props_error } = useUsers();
69
+ const prevloading = usePrevious(loading);
99
70
 
100
- if (this.identifierField === 'email') {
101
- this.identifierTitle = this.props.intl.formatMessage(messages.emailTitle);
102
- this.identifierRequiredMessage = this.props.intl.formatMessage(
103
- messages.emailRequired,
104
- );
105
- } else {
106
- this.identifierTitle = this.props.intl.formatMessage(
107
- messages.usernameTitle,
108
- );
109
- this.identifierRequiredMessage = this.props.intl.formatMessage(
110
- messages.usernameRequired,
111
- );
112
- }
71
+ const identifierField = config.settings.useEmailAsLogin
72
+ ? 'email'
73
+ : 'username';
113
74
 
114
- this.state = {
115
- error: null,
116
- isSuccessful: false,
117
- };
75
+ if (identifierField === 'email') {
76
+ identifierTitle.current = intl.formatMessage(messages.emailTitle);
77
+ identifierRequiredMessage.current = intl.formatMessage(
78
+ messages.emailRequired,
79
+ );
80
+ } else {
81
+ identifierTitle.current = intl.formatMessage(messages.usernameTitle);
82
+ identifierRequiredMessage.current = intl.formatMessage(
83
+ messages.usernameRequired,
84
+ );
118
85
  }
119
86
 
120
- /**
121
- * Component will receive props
122
- * @method componentWillReceiveProps
123
- * @param {Object} nextProps Next properties
124
- * @returns {undefined}
125
- */
126
- UNSAFE_componentWillReceiveProps(nextProps) {
127
- if (this.props.loading && nextProps.loaded) {
128
- this.setState({ isSuccessful: true });
129
- }
130
- }
87
+ useEffect(() => {
88
+ if (prevloading && loaded) setisSuccessful(true);
89
+ }, [prevloading, loaded]);
131
90
 
132
- /**
133
- * Submit handler
134
- * @method onSubmit
135
- * @param {object} data Form data.
136
- * @param {object} event Form data.
137
- * @returns {undefined}
138
- */
139
- onSubmit(data) {
140
- if (data[this.identifierField]) {
141
- this.props.resetPassword(data[this.identifierField]);
142
- this.setState({
143
- error: null,
144
- });
91
+ const onSubmit = (data) => {
92
+ if (data[identifierField]) {
93
+ dispatch(resetPassword(data[identifierField]));
94
+ setError(null);
145
95
  } else {
146
- this.setState({
147
- error: {
148
- message: this.identifierRequiredMessage,
149
- },
96
+ setError({
97
+ message: identifierRequiredMessage.current,
150
98
  });
151
99
  }
152
- }
153
-
154
- /**
155
- * Cancel handler
156
- * @method onCancel
157
- * @returns {undefined}
158
- */
159
- onCancel() {
160
- this.props.history.goBack();
161
- }
100
+ };
162
101
 
163
- /**
164
- * Render method.
165
- * @method render
166
- * @returns {string} Markup for the component.
167
- */
168
- render() {
169
- if (this.state.isSuccessful) {
170
- return (
171
- <Container>
172
- <h1 className="documentFirstHeading">
173
- <FormattedMessage
174
- id="heading_sent_password"
175
- defaultMessage="Password reset confirmation sent"
176
- />
177
- </h1>
178
- <p className="description">
179
- <FormattedMessage
180
- id="description_sent_password"
181
- defaultMessage="Your password reset request has been mailed. It should arrive in your mailbox shortly. When you receive the message, visit the address it contains to reset your password."
182
- />
183
- </p>
184
- </Container>
185
- );
186
- }
102
+ const onCancel = () => {
103
+ history.goBack();
104
+ };
187
105
 
106
+ if (isSuccessful) {
188
107
  return (
189
- <div id="page-password-reset">
190
- <Helmet title={this.props.intl.formatMessage(messages.passwordReset)} />
191
- <Container>
192
- <Form
193
- title={this.props.intl.formatMessage(messages.title)}
194
- description={this.props.intl.formatMessage(messages.description)}
195
- onSubmit={this.onSubmit}
196
- onCancel={this.onCancel}
197
- error={this.state.error || this.props.error}
198
- schema={{
199
- fieldsets: [
200
- {
201
- id: 'default',
202
- title: this.props.intl.formatMessage(messages.default),
203
- fields: [this.identifierField],
204
- },
205
- ],
206
- properties: {
207
- [this.identifierField]: {
208
- type: 'string',
209
- title: this.identifierTitle,
210
- },
211
- },
212
- submitLabel: this.props.intl.formatMessage(messages.sendEmail),
213
- required: [this.identifierField],
214
- }}
108
+ <Container>
109
+ <h1 className="documentFirstHeading">
110
+ <FormattedMessage
111
+ id="heading_sent_password"
112
+ defaultMessage="Password reset confirmation sent"
113
+ />
114
+ </h1>
115
+ <p className="description">
116
+ <FormattedMessage
117
+ id="description_sent_password"
118
+ defaultMessage="Your password reset request has been mailed. It should arrive in your mailbox shortly. When you receive the message, visit the address it contains to reset your password."
215
119
  />
216
- </Container>
217
- </div>
120
+ </p>
121
+ </Container>
218
122
  );
219
123
  }
220
- }
221
124
 
222
- export default compose(
223
- withRouter,
224
- injectIntl,
225
- connect(
226
- (state) => ({
227
- loading: state.users.reset.loading,
228
- loaded: state.users.reset.loaded,
229
- error: state.users.reset.error,
230
- }),
231
- { resetPassword },
232
- ),
233
- )(RequestPasswordReset);
125
+ return (
126
+ <div id="page-password-reset">
127
+ <Helmet title={intl.formatMessage(messages.passwordReset)} />
128
+ <Container>
129
+ <Form
130
+ title={intl.formatMessage(messages.title)}
131
+ description={intl.formatMessage(messages.description)}
132
+ onSubmit={onSubmit}
133
+ onCancel={onCancel}
134
+ error={error || props_error}
135
+ schema={{
136
+ fieldsets: [
137
+ {
138
+ id: 'default',
139
+ title: intl.formatMessage(messages.default),
140
+ fields: [identifierField],
141
+ },
142
+ ],
143
+ properties: {
144
+ [identifierField]: {
145
+ type: 'string',
146
+ title: identifierTitle.current,
147
+ },
148
+ },
149
+ submitLabel: intl.formatMessage(messages.sendEmail),
150
+ required: [identifierField],
151
+ }}
152
+ />
153
+ </Container>
154
+ </div>
155
+ );
156
+ };
157
+
158
+ export default RequestPasswordReset;
@@ -1,34 +1,50 @@
1
- import React from 'react';
2
1
  import PropTypes from 'prop-types';
3
2
 
4
- import { flattenToAppURL } from '@plone/volto/helpers';
5
3
  import config from '@plone/volto/registry';
6
4
 
7
5
  import DefaultImageSVG from '@plone/volto/components/manage/Blocks/Listing/default-image.svg';
8
6
 
9
7
  /**
10
8
  * Renders a preview image for a catalog brain result item.
11
- *
12
9
  */
13
- function PreviewImage(props) {
14
- const { item, size = 'preview', alt, ...rest } = props;
15
- const src = item.image_field
16
- ? flattenToAppURL(`${item['@id']}/@@images/${item.image_field}/${size}`)
17
- : config.getComponent({
18
- name: 'DefaultImage',
19
- dependencies: ['listing', 'summary'],
20
- }).component || DefaultImageSVG;
21
-
22
- return <img src={src} alt={alt ?? item.title} {...rest} />;
10
+ function PreviewImage({ item, alt, image_field, showDefault = true, ...rest }) {
11
+ const Image = config.getComponent({ name: 'Image' }).component;
12
+
13
+ const image = (
14
+ <Image item={item} image_field={image_field} alt={alt} {...rest} />
15
+ );
16
+
17
+ if (!image && !showDefault) return null;
18
+
19
+ if (image) {
20
+ return image;
21
+ } else {
22
+ return (
23
+ <img
24
+ src={
25
+ config.getComponent({
26
+ name: 'DefaultImage',
27
+ dependencies: ['listing', 'summary'],
28
+ }).component || DefaultImageSVG
29
+ }
30
+ alt={alt}
31
+ {...rest}
32
+ width="400"
33
+ height="300"
34
+ />
35
+ );
36
+ }
23
37
  }
24
38
 
25
39
  PreviewImage.propTypes = {
26
- size: PropTypes.string,
27
40
  item: PropTypes.shape({
28
41
  '@id': PropTypes.string.isRequired,
29
- image_field: PropTypes.string,
30
42
  title: PropTypes.string.isRequired,
43
+ image_field: PropTypes.string,
44
+ image_scales: PropTypes.object,
45
+ showDefault: PropTypes.bool,
31
46
  }),
47
+ alt: PropTypes.string.isRequired,
32
48
  };
33
49
 
34
50
  export default PreviewImage;
@@ -7,10 +7,28 @@ describe('PreviewImage', () => {
7
7
  it('renders a preview image', () => {
8
8
  const item = {
9
9
  image_field: 'image',
10
+ image_scales: {
11
+ image: [
12
+ {
13
+ download: '@@images/image',
14
+ width: 400,
15
+ height: 400,
16
+ scales: {
17
+ preview: {
18
+ download: '@@images/image-400.png',
19
+ width: 400,
20
+ height: 400,
21
+ },
22
+ },
23
+ },
24
+ ],
25
+ },
10
26
  title: 'Item title',
11
27
  '@id': 'http://localhost:3000/something',
12
28
  };
13
- const component = renderer.create(<PreviewImage item={item} />);
29
+ const component = renderer.create(
30
+ <PreviewImage item={item} alt={item.title} />,
31
+ );
14
32
  const json = component.toJSON();
15
33
  expect(json).toMatchSnapshot();
16
34
  });
@@ -18,70 +36,92 @@ describe('PreviewImage', () => {
18
36
  it('renders a preview image with extra props', () => {
19
37
  const item = {
20
38
  image_field: 'image',
39
+ image_scales: {
40
+ image: [
41
+ {
42
+ download: '@@images/image',
43
+ width: 400,
44
+ height: 400,
45
+ scales: {
46
+ preview: {
47
+ download: '@@images/image-400.png',
48
+ width: 400,
49
+ height: 400,
50
+ },
51
+ },
52
+ },
53
+ ],
54
+ },
21
55
  title: 'Item title',
22
56
  '@id': 'http://localhost:3000/something',
23
57
  };
24
58
  const component = renderer.create(
25
- <PreviewImage item={item} className="extra" />,
59
+ <PreviewImage item={item} alt={item.title} className="extra" />,
26
60
  );
27
61
  const json = component.toJSON();
28
62
  expect(json).toMatchSnapshot();
29
63
  });
30
64
 
31
- it('renders a preview image with custom size', () => {
65
+ it('renders a fallback image', () => {
32
66
  const item = {
33
- image_field: 'image',
34
67
  title: 'Item title',
35
68
  '@id': 'http://localhost:3000/something',
36
69
  };
37
70
  const component = renderer.create(
38
- <PreviewImage item={item} size="large" />,
71
+ <PreviewImage item={item} alt={item.title} />,
39
72
  );
40
73
  const json = component.toJSON();
41
74
  expect(json).toMatchSnapshot();
42
75
  });
43
76
 
44
- it('renders a fallback image', () => {
77
+ it('renders a fallback image with extra props', () => {
45
78
  const item = {
46
79
  title: 'Item title',
47
80
  '@id': 'http://localhost:3000/something',
48
81
  };
49
- const component = renderer.create(<PreviewImage item={item} />);
82
+ const component = renderer.create(
83
+ <PreviewImage item={item} alt={item.title} className="extra" />,
84
+ );
50
85
  const json = component.toJSON();
51
86
  expect(json).toMatchSnapshot();
52
87
  });
53
88
 
54
- it('renders a fallback image with extra props', () => {
89
+ it('renders a fallback image with alt prop empty', () => {
55
90
  const item = {
56
91
  title: 'Item title',
57
92
  '@id': 'http://localhost:3000/something',
58
93
  };
59
94
  const component = renderer.create(
60
- <PreviewImage item={item} className="extra" />,
95
+ <PreviewImage item={item} className="extra" alt="" />,
61
96
  );
62
97
  const json = component.toJSON();
63
98
  expect(json).toMatchSnapshot();
64
99
  });
65
100
 
66
- it('renders a fallback image with alt prop empty', () => {
101
+ it('renders a fallback image with alt prop', () => {
67
102
  const item = {
68
103
  title: 'Item title',
69
104
  '@id': 'http://localhost:3000/something',
70
105
  };
71
106
  const component = renderer.create(
72
- <PreviewImage item={item} className="extra" alt="" />,
107
+ <PreviewImage item={item} className="extra" alt="Alt prop" />,
73
108
  );
74
109
  const json = component.toJSON();
75
110
  expect(json).toMatchSnapshot();
76
111
  });
77
112
 
78
- it('renders a fallback image with alt prop', () => {
113
+ it('not renders a fallback image if showDefault prop is false', () => {
79
114
  const item = {
80
115
  title: 'Item title',
81
116
  '@id': 'http://localhost:3000/something',
82
117
  };
83
118
  const component = renderer.create(
84
- <PreviewImage item={item} className="extra" alt="Alt prop" />,
119
+ <PreviewImage
120
+ item={item}
121
+ className="extra"
122
+ showDefault={false}
123
+ alt={item.title}
124
+ />,
85
125
  );
86
126
  const json = component.toJSON();
87
127
  expect(json).toMatchSnapshot();
@@ -37,8 +37,7 @@ const messages = defineMessages({
37
37
  defaultMessage: 'E-mail',
38
38
  },
39
39
  emailDescription: {
40
- id:
41
- 'Enter an email address. This will be your login name. We respect your privacy, and will not give the address away to any third parties or expose it anywhere.',
40
+ id: 'Enter an email address. This will be your login name. We respect your privacy, and will not give the address away to any third parties or expose it anywhere.',
42
41
  defaultMessage:
43
42
  'Enter an email address. This will be your login name. We respect your privacy, and will not give the address away to any third parties or expose it anywhere.',
44
43
  },
@@ -47,8 +46,7 @@ const messages = defineMessages({
47
46
  defaultMessage: 'Account Registration Completed',
48
47
  },
49
48
  successRegisterCompletedBody: {
50
- id:
51
- 'The registration process has been successful. Please check your e-mail inbox for information on how activate your account.',
49
+ id: 'The registration process has been successful. Please check your e-mail inbox for information on how activate your account.',
52
50
  defaultMessage:
53
51
  'The registration process has been successful. Please check your e-mail inbox for information on how activate your account.',
54
52
  },