@plone/volto 18.11.1 → 18.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/.eslintignore +1 -0
  2. package/.eslintrc +2 -0
  3. package/CHANGELOG.md +21 -0
  4. package/cypress/support/commands.js +19 -2
  5. package/locales/eu.json +1 -1
  6. package/package.json +11 -5
  7. package/src/actions/actions/actions.test.js +3 -3
  8. package/src/actions/addons/addons.test.js +15 -12
  9. package/src/actions/aliases/aliases.test.js +1 -1
  10. package/src/actions/types/types.test.js +1 -1
  11. package/src/components/manage/Actions/Actions.test.jsx +1 -1
  12. package/src/components/manage/Add/Add.test.jsx +6 -3
  13. package/src/components/manage/Aliases/Aliases.test.jsx +7 -7
  14. package/src/components/manage/Blocks/Block/BlocksForm.jsx +3 -3
  15. package/src/components/manage/Blocks/Block/BlocksForm.test.jsx +44 -16
  16. package/src/components/manage/Blocks/Block/Settings.test.jsx +1 -1
  17. package/src/components/manage/Blocks/Description/View.test.jsx +1 -1
  18. package/src/components/manage/Blocks/HTML/Edit.test.jsx +7 -5
  19. package/src/components/manage/Blocks/HTML/View.test.jsx +1 -1
  20. package/src/components/manage/Blocks/Image/ImageSidebar.test.jsx +2 -2
  21. package/src/components/manage/Blocks/LeadImage/LeadImageSidebar.test.jsx +3 -1
  22. package/src/components/manage/Blocks/Listing/View.test.jsx +3 -1
  23. package/src/components/manage/Blocks/Maps/MapsSidebar.test.jsx +1 -1
  24. package/src/components/manage/Blocks/Search/components/DateRangeFacet.test.jsx +8 -7
  25. package/src/components/manage/Blocks/Search/components/SelectFacet.test.jsx +7 -6
  26. package/src/components/manage/Blocks/ToC/variations/DefaultTocRenderer.test.jsx +11 -1
  27. package/src/components/manage/Blocks/Video/VideoSidebar.test.jsx +1 -1
  28. package/src/components/manage/Contents/Contents.test.jsx +24 -13
  29. package/src/components/manage/Contents/ContentsPropertiesModal.test.jsx +1 -1
  30. package/src/components/manage/Contents/ContentsRenameModal.test.jsx +1 -1
  31. package/src/components/manage/Contents/ContentsTagsModal.test.jsx +1 -1
  32. package/src/components/manage/Contents/ContentsWorkflowModal.test.jsx +1 -1
  33. package/src/components/manage/Contents/__mocks__/index.tsx +3 -2
  34. package/src/components/manage/Controlpanels/AddonsControlpanel.test.jsx +28 -3
  35. package/src/components/manage/Controlpanels/Aliases.test.jsx +30 -3
  36. package/src/components/manage/Controlpanels/ContentType.test.jsx +25 -3
  37. package/src/components/manage/Controlpanels/ContentTypeLayout.test.jsx +4 -2
  38. package/src/components/manage/Controlpanels/ContentTypes.test.jsx +25 -2
  39. package/src/components/manage/Controlpanels/Controlpanel.test.jsx +37 -6
  40. package/src/components/manage/Controlpanels/Controlpanels.test.jsx +47 -3
  41. package/src/components/manage/Controlpanels/Groups/GroupsControlpanel.test.jsx +15 -9
  42. package/src/components/manage/Controlpanels/ModerateComments.test.jsx +31 -5
  43. package/src/components/manage/Controlpanels/Rules/AddRule.test.jsx +8 -4
  44. package/src/components/manage/Controlpanels/Rules/ConfigureRule.test.jsx +9 -5
  45. package/src/components/manage/Controlpanels/Rules/EditRule.test.jsx +8 -4
  46. package/src/components/manage/Controlpanels/Rules/Rules.test.jsx +7 -3
  47. package/src/components/manage/Controlpanels/UndoControlpanel.test.jsx +29 -4
  48. package/src/components/manage/Controlpanels/Users/UserGroupMembershipControlPanel.test.jsx +3 -1
  49. package/src/components/manage/Controlpanels/Users/UsersControlpanel.test.jsx +15 -9
  50. package/src/components/manage/Delete/Delete.test.jsx +45 -4
  51. package/src/components/manage/Diff/Diff.test.jsx +12 -6
  52. package/src/components/manage/Diff/DiffField.test.jsx +7 -6
  53. package/src/components/manage/Display/Display.test.jsx +8 -6
  54. package/src/components/manage/Edit/Edit.test.jsx +7 -3
  55. package/src/components/manage/Form/BlockDataForm.test.jsx +1 -1
  56. package/src/components/manage/Form/Form.test.jsx +1 -1
  57. package/src/components/manage/Form/InlineForm.test.jsx +1 -1
  58. package/src/components/manage/Form/ModalForm.test.jsx +1 -1
  59. package/src/components/manage/Form/__mocks__/index.tsx +10 -10
  60. package/src/components/manage/History/History.test.jsx +3 -1
  61. package/src/components/manage/LinksToItem/LinksToItem.test.jsx +6 -4
  62. package/src/components/manage/Multilingual/ManageTranslations.test.jsx +3 -2
  63. package/src/components/manage/Preferences/ChangePassword.test.jsx +4 -2
  64. package/src/components/manage/Preferences/PersonalInformation.test.jsx +3 -1
  65. package/src/components/manage/Preferences/PersonalPreferences.test.jsx +11 -7
  66. package/src/components/manage/Rules/Rules.test.jsx +6 -3
  67. package/src/components/manage/Sharing/Sharing.test.jsx +3 -1
  68. package/src/components/manage/Sidebar/ObjectBrowserNav.test.jsx +3 -3
  69. package/src/components/manage/Toolbar/More.test.jsx +6 -7
  70. package/src/components/manage/UniversalLink/UniversalLink.test.jsx +1 -1
  71. package/src/components/manage/Widgets/ArrayWidget.test.jsx +18 -5
  72. package/src/components/manage/Widgets/CheckboxGroupWidget.test.jsx +7 -5
  73. package/src/components/manage/Widgets/DatetimeWidget.test.jsx +17 -6
  74. package/src/components/manage/Widgets/FileWidget.jsx +3 -3
  75. package/src/components/manage/Widgets/FileWidget.test.jsx +54 -22
  76. package/src/components/manage/Widgets/NumberWidget.test.jsx +8 -7
  77. package/src/components/manage/Widgets/ObjectBrowserWidget.jsx +3 -2
  78. package/src/components/manage/Widgets/ObjectListWidget.test.jsx +10 -8
  79. package/src/components/manage/Widgets/ObjectWidget.test.jsx +1 -1
  80. package/src/components/manage/Widgets/RadioGroupWidget.test.jsx +7 -5
  81. package/src/components/manage/Widgets/RecurrenceWidget/RecurrenceWidget.test.jsx +7 -6
  82. package/src/components/manage/Widgets/RegistryImageWidget.jsx +3 -3
  83. package/src/components/manage/Widgets/RegistryImageWidget.test.jsx +43 -41
  84. package/src/components/manage/Widgets/SchemaWidget.test.jsx +7 -5
  85. package/src/components/manage/Widgets/SchemaWidgetFieldset.test.jsx +7 -5
  86. package/src/components/manage/Widgets/SelectAutoComplete.test.jsx +7 -6
  87. package/src/components/manage/Widgets/SelectWidget.test.jsx +7 -6
  88. package/src/components/manage/Widgets/TimeWidget.test.jsx +8 -5
  89. package/src/components/manage/Widgets/TokenWidget.test.jsx +7 -6
  90. package/src/components/manage/Widgets/VocabularyTermsWidget.test.jsx +10 -9
  91. package/src/components/manage/Widgets/__mocks__/index.tsx +35 -35
  92. package/src/components/manage/Workflow/Workflow.test.jsx +8 -7
  93. package/src/components/theme/App/App.test.jsx +21 -17
  94. package/src/components/theme/AppExtras/AppExtras.test.jsx +8 -6
  95. package/src/components/theme/Comments/CommentEditModal.test.jsx +1 -1
  96. package/src/components/theme/Comments/Comments.test.jsx +21 -12
  97. package/src/components/theme/ContactForm/ContactForm.test.jsx +4 -4
  98. package/src/components/theme/Header/Header.test.jsx +19 -13
  99. package/src/components/theme/Logo/Logo.jsx +2 -1
  100. package/src/components/theme/Logout/Logout.test.jsx +1 -1
  101. package/src/components/theme/Navigation/ContextNavigation.jsx +7 -2
  102. package/src/components/theme/PasswordReset/PasswordReset.test.jsx +10 -1
  103. package/src/components/theme/PasswordReset/RequestPasswordReset.test.jsx +1 -1
  104. package/src/components/theme/Register/Register.test.jsx +1 -1
  105. package/src/components/theme/Search/Search.test.jsx +6 -4
  106. package/src/components/theme/TsTest/TsTest.test.tsx +0 -1
  107. package/src/components/theme/View/EventDatesInfo.test.jsx +7 -5
  108. package/src/components/theme/View/EventView.test.jsx +7 -5
  109. package/src/components/theme/View/ListingView.test.jsx +2 -0
  110. package/src/components/theme/View/SummaryView.test.jsx +10 -0
  111. package/src/components/theme/View/TabularView.test.jsx +1 -0
  112. package/src/components/theme/View/View.test.jsx +42 -23
  113. package/src/helpers/Api/Api.plone.rest.test.js +12 -9
  114. package/src/helpers/Api/Api.test.js +12 -9
  115. package/src/helpers/AsyncConnect/AsyncConnect.test.jsx +145 -189
  116. package/src/helpers/AuthToken/AuthToken.test.js +61 -22
  117. package/src/helpers/Blocks/Blocks.js +1 -1
  118. package/src/helpers/Blocks/Blocks.test.js +1 -1
  119. package/src/helpers/Html/Html.test.jsx +32 -28
  120. package/src/helpers/Loadable/__mocks__/Loadable.jsx +7 -6
  121. package/src/middleware/storeProtectLoadUtils.test.js +90 -78
  122. package/test-setup-globals.js +36 -2
  123. package/tsconfig.json +23 -6
  124. package/types/components/manage/Contents/__mocks__/index.d.ts +2 -2
  125. package/types/components/manage/Form/__mocks__/index.d.ts +8 -8
  126. package/types/components/manage/Widgets/__mocks__/index.d.ts +33 -33
  127. package/types/helpers/Loadable/__mocks__/Loadable.d.ts +2 -2
  128. package/types/server.d.ts +1 -1
  129. package/vite-plugins/svg.js +81 -0
  130. package/vitest.config.ts +61 -0
@@ -1,33 +1,33 @@
1
- export declare const AlignWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
2
- export declare const ButtonsWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
3
- export declare const ArrayWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
4
- export declare const CheckboxWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
5
- export declare const FileWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
6
- export declare const IdWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
7
- export declare const PasswordWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
8
- export declare const QueryWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
9
- export declare const QuerySortOnWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
10
- export declare const QuerystringWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
11
- export declare const SchemaWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
12
- export declare const SelectWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
13
- export declare const TextareaWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
14
- export declare const TextWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
15
- export declare const TokenWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
16
- export declare const WysiwygWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
17
- export declare const UrlWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
18
- export declare const InternalUrlWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
19
- export declare const EmailWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
20
- export declare const NumberWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
21
- export declare const ImageSizeWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
22
- export declare const RegistryImageWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
23
- export declare const ReferenceWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
24
- export declare const ObjectBrowserWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
25
- export declare const ObjectWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
26
- export declare const ObjectListWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
27
- export declare const VocabularyTermsWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
28
- export declare const SelectMetadataWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
29
- export declare const SelectAutoComplete: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
30
- export declare const ColorPickerWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
31
- export declare const DatetimeWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
32
- export declare const RecurrenceWidget: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
33
- export declare const FormFieldWrapper: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
1
+ export declare const AlignWidget: any;
2
+ export declare const ButtonsWidget: any;
3
+ export declare const ArrayWidget: any;
4
+ export declare const CheckboxWidget: any;
5
+ export declare const FileWidget: any;
6
+ export declare const IdWidget: any;
7
+ export declare const PasswordWidget: any;
8
+ export declare const QueryWidget: any;
9
+ export declare const QuerySortOnWidget: any;
10
+ export declare const QuerystringWidget: any;
11
+ export declare const SchemaWidget: any;
12
+ export declare const SelectWidget: any;
13
+ export declare const TextareaWidget: any;
14
+ export declare const TextWidget: any;
15
+ export declare const TokenWidget: any;
16
+ export declare const WysiwygWidget: any;
17
+ export declare const UrlWidget: any;
18
+ export declare const InternalUrlWidget: any;
19
+ export declare const EmailWidget: any;
20
+ export declare const NumberWidget: any;
21
+ export declare const ImageSizeWidget: any;
22
+ export declare const RegistryImageWidget: any;
23
+ export declare const ReferenceWidget: any;
24
+ export declare const ObjectBrowserWidget: any;
25
+ export declare const ObjectWidget: any;
26
+ export declare const ObjectListWidget: any;
27
+ export declare const VocabularyTermsWidget: any;
28
+ export declare const SelectMetadataWidget: any;
29
+ export declare const SelectAutoComplete: any;
30
+ export declare const ColorPickerWidget: any;
31
+ export declare const DatetimeWidget: any;
32
+ export declare const RecurrenceWidget: any;
33
+ export declare const FormFieldWrapper: any;
@@ -1,3 +1,3 @@
1
1
  export function __setLoadables(): Promise<void>;
2
- export const injectLazyLibs: jest.Mock<any, any, any>;
3
- export const preloadLazyLibs: jest.Mock<any, any, any>;
2
+ export const injectLazyLibs: any;
3
+ export const preloadLazyLibs: any;
package/types/server.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export function defaultReadCriticalCss(): any;
1
+ export function defaultReadCriticalCss(): string;
2
2
  export default server;
3
3
  declare const server: any;
@@ -0,0 +1,81 @@
1
+ import { promises as fs } from 'fs';
2
+ import { optimize as optimizeSvg } from 'svgo';
3
+ import _debug from 'debug';
4
+
5
+ const debug = _debug('volto-vite-svg-loader');
6
+
7
+ export function svgLoader(options = {}) {
8
+ const { svgoConfig, svgo, defaultImport } = options;
9
+
10
+ const svgRegex = /icons\/.*\.svg(\?(raw|skipsvgo))?$/;
11
+
12
+ return {
13
+ name: 'svg-loader',
14
+ enforce: 'pre',
15
+
16
+ async load(id) {
17
+ if (!id.match(svgRegex)) {
18
+ return;
19
+ }
20
+
21
+ debug('\n', `Processing: ${id}.`);
22
+
23
+ const [path, query] = id.split('?', 2);
24
+ const importType = query || defaultImport;
25
+
26
+ if (importType === 'url') {
27
+ return; // Use default svg loader
28
+ }
29
+
30
+ let content;
31
+ try {
32
+ content = await fs.readFile(path, 'utf-8');
33
+ } catch (ex) {
34
+ debug(
35
+ '\n',
36
+ `${id} couldn't be loaded by vite-svg-loader, fallback to default loader`,
37
+ );
38
+
39
+ return;
40
+ }
41
+
42
+ if (importType === 'raw') {
43
+ return `export default ${JSON.stringify(content)}`;
44
+ }
45
+
46
+ if (svgo !== false && query !== 'skipsvgo') {
47
+ content = optimizeSvg(content, {
48
+ ...svgoConfig,
49
+ path,
50
+ }).data;
51
+ }
52
+
53
+ const match = content.match(/<svg([^>]+)+>([\s\S]+)<\/svg>/i);
54
+ let attrs = {};
55
+ // console.log(content);
56
+ if (match) {
57
+ attrs = match[1];
58
+ if (attrs) {
59
+ attrs = attrs
60
+ .match(/([\w-:]+)(=)?("[^<>"]*"|'[^<>']*'|[\w-:]+)/g)
61
+ .reduce(function (obj, attr) {
62
+ var split = attr.split('=');
63
+ var name = split[0];
64
+ var value = true;
65
+ if (split && split[1]) {
66
+ value = split[1].replace(/['"]/g, '');
67
+ }
68
+ obj[name] = value;
69
+ return obj;
70
+ }, {});
71
+ }
72
+
73
+ content = match[2] || '';
74
+ }
75
+
76
+ content = content.replace(/\n/g, ' ').trim();
77
+
78
+ return `export default ${JSON.stringify({ attributes: attrs, content: content })}`;
79
+ },
80
+ };
81
+ }
@@ -0,0 +1,61 @@
1
+ import { defineConfig } from 'vitest/config';
2
+ import react from '@vitejs/plugin-react';
3
+ import path from 'path';
4
+ import { svgLoader } from './vite-plugins/svg.js';
5
+
6
+ export default defineConfig({
7
+ plugins: [
8
+ react(),
9
+ svgLoader({
10
+ svgoConfig: {
11
+ plugins: [
12
+ {
13
+ name: 'removeViewBox',
14
+ active: false,
15
+ },
16
+ ],
17
+ },
18
+ }) as any,
19
+ ],
20
+ resolve: {
21
+ alias: {
22
+ '@plone/volto': path.resolve(__dirname, 'src'),
23
+ '@plone/volto-slate': path.resolve(__dirname, '../volto-slate/src'),
24
+ '@root': path.resolve(__dirname, 'src'),
25
+ 'promise-file-reader': require.resolve('promise-file-reader'),
26
+ 'react-dropzone': require.resolve('react-dropzone'),
27
+ 'prop-types': require.resolve('prop-types'),
28
+ },
29
+ },
30
+ test: {
31
+ isolate: true,
32
+ deps: {
33
+ moduleDirectories: ['node_modules'],
34
+ },
35
+ snapshotFormat: { printBasicPrototype: false },
36
+ globals: true,
37
+ environment: 'jsdom',
38
+ setupFiles: [
39
+ './test-setup-globals.js',
40
+ './test-setup-config.jsx',
41
+ './jest-setup-afterenv.js',
42
+ './jest-addons-loader.js',
43
+ ],
44
+ globalSetup: './global-test-setup.js',
45
+ coverage: {
46
+ provider: 'v8',
47
+ reporter: ['text', 'json', 'html'],
48
+ include: [
49
+ 'src/**/*.{test,spec}.{js,ts,jsx,tsx}',
50
+ '__test__/**/*.{test,spec}.{js,ts,jsx,tsx}',
51
+ ],
52
+ exclude: [
53
+ 'node_modules/**',
54
+ '**/dist/**',
55
+ '**/*.config.{js,ts}',
56
+ '**/jest-*.js',
57
+ ],
58
+ },
59
+ css: true,
60
+ },
61
+ });