@webbio/strapi-plugin-page-builder 0.2.2 → 0.2.4

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 (93) hide show
  1. package/README.md +98 -98
  2. package/admin/src/api/collection-type.ts +110 -110
  3. package/admin/src/api/has-page-relation.ts +34 -34
  4. package/admin/src/api/page-type.ts +31 -31
  5. package/admin/src/api/template.ts +27 -27
  6. package/admin/src/components/Combobox/index.tsx +77 -77
  7. package/admin/src/components/Combobox/react-select-custom-styles.tsx +120 -111
  8. package/admin/src/components/Combobox/styles.ts +22 -22
  9. package/admin/src/components/ConfirmModal/index.tsx +90 -90
  10. package/admin/src/components/EditView/CollectionTypeSearch/index.tsx +124 -124
  11. package/admin/src/components/EditView/CollectionTypeSettings/CreatePageButton/index.tsx +104 -101
  12. package/admin/src/components/EditView/CollectionTypeSettings/CreatePageButton/styles.ts +19 -19
  13. package/admin/src/components/EditView/CollectionTypeSettings/index.tsx +74 -74
  14. package/admin/src/components/EditView/Details/index.tsx +47 -47
  15. package/admin/src/components/EditView/Details/styles.ts +51 -51
  16. package/admin/src/components/EditView/PageSettings/index.tsx +104 -104
  17. package/admin/src/components/EditView/Template/TemplateConfirmModal/index.tsx +36 -36
  18. package/admin/src/components/EditView/Template/TemplateSelect/index.tsx +69 -69
  19. package/admin/src/components/EditView/Template/TemplateSelect/use-template-modules.ts +38 -38
  20. package/admin/src/components/EditView/index.tsx +29 -29
  21. package/admin/src/components/EditView/page-type-select.tsx +32 -32
  22. package/admin/src/components/EditView/wrapper.tsx +35 -35
  23. package/admin/src/components/Initializer/index.tsx +24 -24
  24. package/admin/src/components/PageTypeFilter/index.tsx +17 -17
  25. package/admin/src/components/PageTypeFilter/page-type-filter.tsx +130 -130
  26. package/admin/src/components/PluginIcon/index.tsx +12 -12
  27. package/admin/src/constants.ts +3 -3
  28. package/admin/src/index.tsx +59 -59
  29. package/admin/src/middlewares/index.tsx +37 -37
  30. package/admin/src/pluginId.ts +5 -5
  31. package/admin/src/translations/en.json +6 -6
  32. package/admin/src/translations/nl.json +6 -6
  33. package/admin/src/utils/getRequestUrl.ts +11 -11
  34. package/admin/src/utils/getTrad.ts +5 -5
  35. package/admin/src/utils/hooks/useDebounce.ts +17 -17
  36. package/admin/src/utils/hooks/useGetLocaleFromUrl.ts +9 -9
  37. package/admin/src/utils/hooks/usePrevious.ts +12 -12
  38. package/admin/src/utils/sanitizeModules.ts +43 -10
  39. package/custom.d.ts +5 -5
  40. package/dist/package.json +9 -9
  41. package/dist/server/graphql/page-by-slug.js +9 -9
  42. package/dist/server/graphql/pages-by-uid.js +14 -14
  43. package/dist/server/services/builder.js +7 -4
  44. package/dist/server/services/template.js +1 -2
  45. package/dist/server/utils/graphql.js +18 -18
  46. package/dist/server/utils/strapi.js +1 -4
  47. package/dist/tsconfig.server.tsbuildinfo +1 -1
  48. package/package.json +71 -71
  49. package/server/bootstrap/collection-type-lifecycles.ts +47 -47
  50. package/server/bootstrap/permissions.ts +42 -42
  51. package/server/bootstrap.ts +198 -198
  52. package/server/config/index.ts +4 -4
  53. package/server/content-types/index.ts +1 -1
  54. package/server/controllers/collection-types.ts +27 -27
  55. package/server/controllers/index.ts +11 -11
  56. package/server/controllers/page-type.ts +13 -13
  57. package/server/controllers/page.ts +9 -9
  58. package/server/controllers/template.ts +16 -16
  59. package/server/destroy.ts +5 -5
  60. package/server/graphql/index.ts +9 -9
  61. package/server/graphql/page-by-slug.ts +98 -98
  62. package/server/graphql/page-type.ts +67 -67
  63. package/server/graphql/pages-by-uid.ts +127 -127
  64. package/server/index.ts +23 -23
  65. package/server/middlewares/index.ts +1 -1
  66. package/server/policies/index.ts +1 -1
  67. package/server/register.ts +15 -15
  68. package/server/routes/index.ts +58 -58
  69. package/server/schema/page-end.json +91 -91
  70. package/server/schema/page-start.json +87 -87
  71. package/server/schema/page-type-end.json +43 -43
  72. package/server/schema/page-type-start.json +38 -38
  73. package/server/schema/template-start.json +35 -35
  74. package/server/services/builder.ts +137 -134
  75. package/server/services/collection-types.ts +88 -88
  76. package/server/services/index.ts +13 -13
  77. package/server/services/page-type.ts +26 -26
  78. package/server/services/page.ts +24 -24
  79. package/server/services/template.ts +13 -14
  80. package/server/utils/filter-underscore-arguments.ts +12 -12
  81. package/server/utils/graphql.ts +113 -113
  82. package/server/utils/paginationValidation.ts +39 -39
  83. package/server/utils/reload-strapi-on-load.ts +13 -13
  84. package/server/utils/strapi.ts +45 -49
  85. package/shared/utils/constants.ts +4 -4
  86. package/shared/utils/sleep.ts +1 -1
  87. package/strapi-admin.js +3 -3
  88. package/strapi-server.js +3 -3
  89. package/tsconfig.json +20 -20
  90. package/tsconfig.server.json +25 -25
  91. package/dist/server/controllers/platform.js +0 -20
  92. package/dist/server/schema/platform-start.json +0 -31
  93. package/dist/server/services/platform.js +0 -36
package/package.json CHANGED
@@ -1,71 +1,71 @@
1
- {
2
- "name": "@webbio/strapi-plugin-page-builder",
3
- "version": "0.2.2",
4
- "description": "This is the description of the plugin.",
5
- "scripts": {
6
- "develop": "tsc -p tsconfig.server.json -w",
7
- "build": "tsc -p tsconfig.server.json",
8
- "prepublish": "tsc -p tsconfig.server.json",
9
- "format": "prettier --write .",
10
- "spu": "yarn upgrade-interactive --latest"
11
- },
12
- "strapi": {
13
- "name": "page-builder",
14
- "description": "Description of page-builder plugin",
15
- "displayName": "Page Builder",
16
- "kind": "plugin"
17
- },
18
- "repository": {
19
- "type": "git",
20
- "url": "https://github.com/webbio/strapi-plugin-page-builder.git"
21
- },
22
- "dependencies": {
23
- "@strapi/design-system": "^1.11.0",
24
- "@strapi/helper-plugin": "^4.13.6",
25
- "@strapi/icons": "^1.11.0",
26
- "@strapi/typescript-utils": "^4.13.6",
27
- "@strapi/utils": "^4.13.6",
28
- "react-select": "^5.7.4"
29
- },
30
- "devDependencies": {
31
- "@strapi/typescript-utils": "^4.13.6",
32
- "@types/react": "^18.2.21",
33
- "@types/react-dom": "^18.2.7",
34
- "@types/react-router-dom": "^5.3.3",
35
- "@types/styled-components": "^5.1.26",
36
- "react": "^18.2.0",
37
- "react-dom": "^18.2.0",
38
- "react-router-dom": "^5.3.4",
39
- "styled-components": "^5.3.6",
40
- "typescript": "5.1.6"
41
- },
42
- "peerDependencies": {
43
- "@strapi/strapi": "^4.13.6",
44
- "@webbio/strapi-plugin-slug": "^2.0.2",
45
- "react": "^17.0.0 || ^18.0.0",
46
- "react-dom": "^17.0.0 || ^18.0.0",
47
- "react-router-dom": "^5.3.4",
48
- "styled-components": "^5.3.6"
49
- },
50
- "author": {
51
- "name": "Webbio B.V.",
52
- "email": "info@webbio.nl",
53
- "url": "https://webbio.nl"
54
- },
55
- "maintainers": [
56
- {
57
- "name": "Webbio B.V.",
58
- "email": "info@webbio.nl",
59
- "url": "https://webbio.nl"
60
- }
61
- ],
62
- "engines": {
63
- "node": ">=14.19.1 <=18.x.x",
64
- "npm": ">=6.0.0"
65
- },
66
- "license": "MIT",
67
- "publishConfig": {
68
- "access": "public",
69
- "registry": "https://registry.npmjs.org"
70
- }
71
- }
1
+ {
2
+ "name": "@webbio/strapi-plugin-page-builder",
3
+ "version": "0.2.4",
4
+ "description": "This is the description of the plugin.",
5
+ "scripts": {
6
+ "develop": "tsc -p tsconfig.server.json -w",
7
+ "build": "tsc -p tsconfig.server.json",
8
+ "prepublish": "tsc -p tsconfig.server.json",
9
+ "format": "prettier --write .",
10
+ "spu": "yarn upgrade-interactive --latest"
11
+ },
12
+ "strapi": {
13
+ "name": "page-builder",
14
+ "description": "Description of page-builder plugin",
15
+ "displayName": "Page Builder",
16
+ "kind": "plugin"
17
+ },
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "https://github.com/webbio/strapi-plugin-page-builder.git"
21
+ },
22
+ "dependencies": {
23
+ "@strapi/design-system": "^1.13.1",
24
+ "@strapi/helper-plugin": "<4.15.0",
25
+ "@strapi/icons": "^1.11.0",
26
+ "@strapi/typescript-utils": "<4.15.0",
27
+ "@strapi/utils": "<4.15.0",
28
+ "react-select": "^5.7.4"
29
+ },
30
+ "devDependencies": {
31
+ "@strapi/typescript-utils": "<4.15.0",
32
+ "@types/react": "^18.2.21",
33
+ "@types/react-dom": "^18.2.7",
34
+ "@types/react-router-dom": "^5.3.3",
35
+ "@types/styled-components": "^5.1.26",
36
+ "react": "^18.2.0",
37
+ "react-dom": "^18.2.0",
38
+ "react-router-dom": "^5.3.4",
39
+ "styled-components": "^5.3.6",
40
+ "typescript": "5.1.6"
41
+ },
42
+ "peerDependencies": {
43
+ "@strapi/strapi": "<4.15.0",
44
+ "@webbio/strapi-plugin-slug": "^2.0.5",
45
+ "react": "^17.0.0 || ^18.0.0",
46
+ "react-dom": "^17.0.0 || ^18.0.0",
47
+ "react-router-dom": "^5.3.4",
48
+ "styled-components": "^5.3.6"
49
+ },
50
+ "author": {
51
+ "name": "Webbio B.V.",
52
+ "email": "info@webbio.nl",
53
+ "url": "https://webbio.nl"
54
+ },
55
+ "maintainers": [
56
+ {
57
+ "name": "Webbio B.V.",
58
+ "email": "info@webbio.nl",
59
+ "url": "https://webbio.nl"
60
+ }
61
+ ],
62
+ "engines": {
63
+ "node": ">=14.19.1 <=20.x.x",
64
+ "npm": ">=6.0.0"
65
+ },
66
+ "license": "MIT",
67
+ "publishConfig": {
68
+ "access": "public",
69
+ "registry": "https://registry.npmjs.org"
70
+ }
71
+ }
@@ -1,47 +1,47 @@
1
- import { Common, Strapi } from '@strapi/strapi';
2
-
3
- import { ICollectionTypeGL } from '../services/collection-types';
4
- import { PAGE_UID } from '../../shared/utils/constants';
5
-
6
- export default async ({ strapi }: { strapi: Strapi }) => {
7
- const collectionTypesWithPageMorph: ICollectionTypeGL[] = strapi
8
- .service('plugin::page-builder.collection-types')
9
- .withPageMorph();
10
-
11
- const models = collectionTypesWithPageMorph.map((ct) => ct.uid);
12
-
13
- strapi.db?.lifecycles.subscribe({
14
- models,
15
- async beforeUpdate(event) {
16
- try {
17
- let { data, where } = event?.params;
18
-
19
- if (data?.lifecycleState?.exit) {
20
- return;
21
- }
22
-
23
- let connectedPageId: number = data.page?.[0];
24
-
25
- if (!connectedPageId) {
26
- const originalEntity = await strapi.entityService?.findOne(
27
- event.model.uid as Common.UID.ContentType,
28
- data.id || where.id,
29
- { populate: { page: true } } as Record<string, any>
30
- );
31
-
32
- connectedPageId = originalEntity?.page?.[0]?.id;
33
- }
34
-
35
- if (connectedPageId && data.updatedAt) {
36
- await strapi.entityService?.update(PAGE_UID, connectedPageId, {
37
- data: {
38
- updatedAt: data.updatedAt
39
- }
40
- } as any);
41
- }
42
- } catch (error) {
43
- console.log('[PAGEBUILDER PLUGIN] collection type lifecycle error: ', error);
44
- }
45
- }
46
- });
47
- };
1
+ import { Common, Strapi } from '@strapi/strapi';
2
+
3
+ import { ICollectionTypeGL } from '../services/collection-types';
4
+ import { PAGE_UID } from '../../shared/utils/constants';
5
+
6
+ export default async ({ strapi }: { strapi: Strapi }) => {
7
+ const collectionTypesWithPageMorph: ICollectionTypeGL[] = strapi
8
+ .service('plugin::page-builder.collection-types')
9
+ .withPageMorph();
10
+
11
+ const models = collectionTypesWithPageMorph.map((ct) => ct.uid);
12
+
13
+ strapi.db?.lifecycles.subscribe({
14
+ models,
15
+ async beforeUpdate(event) {
16
+ try {
17
+ let { data, where } = event?.params;
18
+
19
+ if (data?.lifecycleState?.exit) {
20
+ return;
21
+ }
22
+
23
+ let connectedPageId: number = data.page?.[0];
24
+
25
+ if (!connectedPageId) {
26
+ const originalEntity = await strapi.entityService?.findOne(
27
+ event.model.uid as Common.UID.ContentType,
28
+ data.id || where.id,
29
+ { populate: { page: true } } as Record<string, any>
30
+ );
31
+
32
+ connectedPageId = originalEntity?.page?.[0]?.id;
33
+ }
34
+
35
+ if (connectedPageId && data.updatedAt) {
36
+ await strapi.entityService?.update(PAGE_UID, connectedPageId, {
37
+ data: {
38
+ updatedAt: data.updatedAt
39
+ }
40
+ } as any);
41
+ }
42
+ } catch (error) {
43
+ console.log('[PAGEBUILDER PLUGIN] collection type lifecycle error: ', error);
44
+ }
45
+ }
46
+ });
47
+ };
@@ -1,42 +1,42 @@
1
- import { Strapi } from '@strapi/strapi';
2
- import { PAGE_TYPE_UID } from '../../shared/utils/constants';
3
-
4
- export default async ({ strapi }: { strapi: Strapi }) => {
5
- try {
6
- const pageTypes = (await strapi.entityService?.findMany(PAGE_TYPE_UID, {
7
- limit: -1
8
- })) as Record<string, any>[];
9
-
10
- const pagePermissions = pageTypes.map((pageType) => {
11
- const name = `page-type-is-${pageType.uid}`;
12
- const displayName = pageType.title;
13
-
14
- return {
15
- plugin: 'page-builder',
16
- name,
17
- displayName,
18
- category: 'Page type',
19
- handler: async () => {
20
- return {
21
- $or: [
22
- {
23
- 'pageType.uid': {
24
- $eq: pageType.uid
25
- }
26
- },
27
- {
28
- uid: {
29
- $eq: pageType.uid
30
- }
31
- }
32
- ]
33
- };
34
- }
35
- };
36
- });
37
- // @ts-ignore shitty types
38
- await strapi.admin.services.permission.conditionProvider.registerMany(pagePermissions);
39
- } catch {
40
- console.log('Cannot set page permissions');
41
- }
42
- };
1
+ import { Strapi } from '@strapi/strapi';
2
+ import { PAGE_TYPE_UID } from '../../shared/utils/constants';
3
+
4
+ export default async ({ strapi }: { strapi: Strapi }) => {
5
+ try {
6
+ const pageTypes = (await strapi.entityService?.findMany(PAGE_TYPE_UID, {
7
+ limit: -1
8
+ })) as Record<string, any>[];
9
+
10
+ const pagePermissions = pageTypes.map((pageType) => {
11
+ const name = `page-type-is-${pageType.uid}`;
12
+ const displayName = pageType.title;
13
+
14
+ return {
15
+ plugin: 'page-builder',
16
+ name,
17
+ displayName,
18
+ category: 'Page type',
19
+ handler: async () => {
20
+ return {
21
+ $or: [
22
+ {
23
+ 'pageType.uid': {
24
+ $eq: pageType.uid
25
+ }
26
+ },
27
+ {
28
+ uid: {
29
+ $eq: pageType.uid
30
+ }
31
+ }
32
+ ]
33
+ };
34
+ }
35
+ };
36
+ });
37
+ // @ts-ignore shitty types
38
+ await strapi.admin.services.permission.conditionProvider.registerMany(pagePermissions);
39
+ } catch {
40
+ console.log('Cannot set page permissions');
41
+ }
42
+ };