@webbio/strapi-plugin-page-builder 0.2.5 → 0.2.7

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 (92) hide show
  1. package/README.md +101 -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 -120
  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 -104
  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 +93 -90
  39. package/custom.d.ts +5 -5
  40. package/dist/package.json +1 -1
  41. package/dist/server/bootstrap.js +7 -21
  42. package/dist/server/controllers/platform.js +20 -0
  43. package/dist/server/graphql/page-by-path.js +90 -0
  44. package/dist/server/graphql/page-by-slug.js +9 -9
  45. package/dist/server/graphql/pages-by-uid.js +12 -15
  46. package/dist/server/schema/platform-start.json +31 -0
  47. package/dist/server/services/platform.js +36 -0
  48. package/dist/server/utils/graphql.js +18 -18
  49. package/dist/tsconfig.server.tsbuildinfo +1 -1
  50. package/package.json +71 -71
  51. package/server/bootstrap/collection-type-lifecycles.ts +47 -47
  52. package/server/bootstrap/permissions.ts +42 -42
  53. package/server/bootstrap.ts +186 -198
  54. package/server/config/index.ts +4 -4
  55. package/server/content-types/index.ts +1 -1
  56. package/server/controllers/collection-types.ts +27 -27
  57. package/server/controllers/index.ts +11 -11
  58. package/server/controllers/page-type.ts +13 -13
  59. package/server/controllers/page.ts +9 -9
  60. package/server/controllers/template.ts +16 -16
  61. package/server/destroy.ts +5 -5
  62. package/server/graphql/index.ts +9 -9
  63. package/server/graphql/page-by-slug.ts +98 -98
  64. package/server/graphql/page-type.ts +67 -67
  65. package/server/graphql/pages-by-uid.ts +124 -127
  66. package/server/index.ts +23 -23
  67. package/server/middlewares/index.ts +1 -1
  68. package/server/policies/index.ts +1 -1
  69. package/server/register.ts +15 -15
  70. package/server/routes/index.ts +58 -58
  71. package/server/schema/page-end.json +91 -91
  72. package/server/schema/page-start.json +87 -87
  73. package/server/schema/page-type-end.json +43 -43
  74. package/server/schema/page-type-start.json +38 -38
  75. package/server/schema/template-start.json +35 -35
  76. package/server/services/builder.ts +137 -137
  77. package/server/services/collection-types.ts +88 -88
  78. package/server/services/index.ts +13 -13
  79. package/server/services/page-type.ts +26 -26
  80. package/server/services/page.ts +24 -24
  81. package/server/services/template.ts +13 -13
  82. package/server/utils/filter-underscore-arguments.ts +12 -12
  83. package/server/utils/graphql.ts +113 -113
  84. package/server/utils/paginationValidation.ts +39 -39
  85. package/server/utils/reload-strapi-on-load.ts +13 -13
  86. package/server/utils/strapi.ts +45 -45
  87. package/shared/utils/constants.ts +4 -4
  88. package/shared/utils/sleep.ts +1 -1
  89. package/strapi-admin.js +3 -3
  90. package/strapi-server.js +3 -3
  91. package/tsconfig.json +20 -20
  92. package/tsconfig.server.json +25 -25
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const constants_1 = require("../../shared/utils/constants");
4
+ const getPageByPath = (strapi) => {
5
+ const typeDefs = () => {
6
+ return `
7
+ extend type Page {
8
+ collectionType: GenericMorph
9
+ }
10
+
11
+ type Query {
12
+ getPageByPath(path: String, domain: String, publicationState: PublicationState): PageEntity
13
+ }
14
+
15
+ `;
16
+ };
17
+ const resolvers = (strapi) => {
18
+ const { transformArgs } = strapi.plugin('graphql').service('builders').utils;
19
+ return {
20
+ Query: {
21
+ getPageByPath: {
22
+ resolve: async (_parent, args, ctx) => {
23
+ var _a;
24
+ try {
25
+ const filteredArgs = {
26
+ filters: {
27
+ path: args.path,
28
+ platform: args.domain ? { domain: args.domain } : null
29
+ },
30
+ publicationState: args.publicationState,
31
+ locale: args.locale
32
+ };
33
+ const { toEntityResponse } = strapi.plugin('graphql').service('format').returnTypes;
34
+ const getPage = async () => {
35
+ var _a, _b, _c;
36
+ const transformedArgs = transformArgs(filteredArgs, {
37
+ contentType: strapi.contentTypes[constants_1.PAGE_UID],
38
+ usePagination: false
39
+ });
40
+ const results = await ((_a = strapi.entityService) === null || _a === void 0 ? void 0 : _a.findMany(constants_1.PAGE_UID, {
41
+ ...filteredArgs,
42
+ populate: '*'
43
+ }));
44
+ const entityResponse = toEntityResponse((results === null || results === void 0 ? void 0 : results[0]) || {}, {
45
+ args: transformedArgs,
46
+ resourceUID: constants_1.PAGE_UID
47
+ });
48
+ if (!(entityResponse === null || entityResponse === void 0 ? void 0 : entityResponse.value) || Object.keys(entityResponse.value).length === 0) {
49
+ throw new Error(ctx.koaContext.response.message);
50
+ }
51
+ const collectionTypeDataFilter = (_c = (_b = entityResponse === null || entityResponse === void 0 ? void 0 : entityResponse.value) === null || _b === void 0 ? void 0 : _b.collectionTypeData) === null || _c === void 0 ? void 0 : _c.filter(Boolean);
52
+ const collectionType = collectionTypeDataFilter.length === 1 ? collectionTypeDataFilter === null || collectionTypeDataFilter === void 0 ? void 0 : collectionTypeDataFilter[0] : null;
53
+ const addedAttributes = {
54
+ collectionType: collectionType
55
+ };
56
+ const result = {
57
+ ...entityResponse.value,
58
+ ...addedAttributes
59
+ };
60
+ return result;
61
+ };
62
+ const results = await getPage();
63
+ if (((_a = Object.values(results)) === null || _a === void 0 ? void 0 : _a.filter(Boolean).length) > 0) {
64
+ return results;
65
+ }
66
+ else {
67
+ throw new Error(ctx.koaContext.response.message);
68
+ }
69
+ }
70
+ catch (error) {
71
+ console.log('Error in [getPageByPath], args:', args, 'ERROR:', error);
72
+ throw new Error(ctx.koaContext.response.message);
73
+ }
74
+ }
75
+ }
76
+ }
77
+ };
78
+ };
79
+ const resolversConfig = {
80
+ 'Query.getPageByPath': {
81
+ auth: false
82
+ }
83
+ };
84
+ return {
85
+ typeDefs: typeDefs(),
86
+ resolvers: resolvers(strapi),
87
+ resolversConfig
88
+ };
89
+ };
90
+ exports.default = getPageByPath;
@@ -4,15 +4,15 @@ const filter_underscore_arguments_1 = require("../utils/filter-underscore-argume
4
4
  const constants_1 = require("../../shared/utils/constants");
5
5
  const getPageBySlug = (strapi) => {
6
6
  const typeDefs = () => {
7
- return `
8
- extend type Page {
9
- collectionType: GenericMorph
10
- }
11
-
12
- type Query {
13
- getPageBySlug(path: String, _locale: String, _publicationState: PublicationState): PageEntity
14
- }
15
-
7
+ return `
8
+ extend type Page {
9
+ collectionType: GenericMorph
10
+ }
11
+
12
+ type Query {
13
+ getPageBySlug(path: String, _locale: String, _publicationState: PublicationState): PageEntity
14
+ }
15
+
16
16
  `;
17
17
  };
18
18
  const resolvers = (strapi) => {
@@ -7,23 +7,20 @@ const getPageInfoFromUID = (strapi) => {
7
7
  // @ts-ignore service does exist
8
8
  const collectionTypes = strapi.service('plugin::page-builder.collection-types').withPageMorph();
9
9
  const typeDefs = () => {
10
- const metaInfo = `type MetaInfo {
11
- total: Int
12
- page: Int
13
- pageCount: Int
14
- pageSize: Int
10
+ const metaInfo = `type MetaInfo {
11
+ total: Int
12
+ page: Int
13
+ pageCount: Int
14
+ pageSize: Int
15
15
  }`;
16
16
  const entityInfo = collectionTypes.map((collectionType) => {
17
- return `
18
- extend type ${collectionType.type}EntityResponseCollection {
19
- metaInfo: MetaInfo
20
- }
21
-
22
- type Query {
23
- get${collectionType.type}Pages(filters: ${collectionType.type}FiltersInput,pagination: PaginationArg, sort:[String], pageFilters: PageFiltersInput): ${collectionType.type}EntityResponseCollection
24
- }
25
-
26
- `;
17
+ return `extend type ${collectionType.type}EntityResponseCollection {
18
+ metaInfo: MetaInfo
19
+ }
20
+
21
+ type Query {
22
+ get${collectionType.type}Pages(filters: ${collectionType.type}FiltersInput, pagination: PaginationArg, sort:[String], pageFilters: PageFiltersInput): ${collectionType.type}EntityResponseCollection
23
+ }`;
27
24
  });
28
25
  return `${metaInfo} ${entityInfo}`;
29
26
  };
@@ -0,0 +1,31 @@
1
+ {
2
+ "draftAndPublish": false,
3
+ "displayName": "Platforms",
4
+ "singularName": "platform",
5
+ "pluralName": "platforms",
6
+ "description": "",
7
+ "plugin": "page-builder",
8
+ "pluginOptions": {},
9
+ "kind": "collectionType",
10
+ "collectionName": "platforms",
11
+ "attributes": {
12
+ "title": {
13
+ "type": "string",
14
+ "required": true,
15
+ "unique": true
16
+ },
17
+ "domain": {
18
+ "type": "string"
19
+ },
20
+ "template": {
21
+ "type": "relation",
22
+ "relation": "oneToMany",
23
+ "target": "api::template.template"
24
+ },
25
+ "pageTypes": {
26
+ "type": "relation",
27
+ "relation": "oneToMany",
28
+ "target": "api::page-type.page-type"
29
+ }
30
+ }
31
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const constants_1 = require("../../shared/utils/constants");
4
+ exports.default = {
5
+ async findAll() {
6
+ return await strapi.entityService.findMany(constants_1.PLATFORM_UID, { populate: '*' });
7
+ },
8
+ async findOneByUid(uid) {
9
+ return await strapi.entityService.findMany(constants_1.PLATFORM_UID, {
10
+ populate: '*',
11
+ filters: {
12
+ pagetype: {
13
+ uid
14
+ }
15
+ }
16
+ });
17
+ },
18
+ async findPageTypesByPlatform(platform) {
19
+ const results = await strapi.entityService.findMany(constants_1.PLATFORM_UID, {
20
+ populate: {
21
+ pagetype: true
22
+ },
23
+ filters: {
24
+ title: {
25
+ $eq: platform
26
+ }
27
+ }
28
+ });
29
+ if (results.length > 0) {
30
+ return results;
31
+ }
32
+ else {
33
+ return null;
34
+ }
35
+ }
36
+ };
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.registerGraphQLResolvers = void 0;
4
4
  const constants_1 = require("../../shared/utils/constants");
5
5
  const findPageByPath = (strapi) => {
6
- const typeDefs = `
7
- type Query {
8
- findPageByPath(path: String, locale: I18NLocaleCode): PageEntityResponse
9
- }
6
+ const typeDefs = `
7
+ type Query {
8
+ findPageByPath(path: String, locale: I18NLocaleCode): PageEntityResponse
9
+ }
10
10
  `;
11
11
  const resolvers = (strapi) => {
12
12
  const { transformArgs } = strapi.plugin('graphql').service('builders').utils;
@@ -47,20 +47,20 @@ const findPageByPath = (strapi) => {
47
47
  };
48
48
  };
49
49
  const findPagePaths = (strapi) => {
50
- const typeDefs = `
51
- type PageByPath {
52
- id: Int!
53
- path: String!
54
- title: String!
55
- locale: String!
56
- pageType: ENUM_PAGE_PAGETYPE
57
- updatedAt: DateTime!
58
- publishedAt: DateTime!
59
- }
60
-
61
- type Query {
62
- findPagePaths(locale: String, pageType: String = "all"): [PageByPath]
63
- }
50
+ const typeDefs = `
51
+ type PageByPath {
52
+ id: Int!
53
+ path: String!
54
+ title: String!
55
+ locale: String!
56
+ pageType: ENUM_PAGE_PAGETYPE
57
+ updatedAt: DateTime!
58
+ publishedAt: DateTime!
59
+ }
60
+
61
+ type Query {
62
+ findPagePaths(locale: String, pageType: String = "all"): [PageByPath]
63
+ }
64
64
  `;
65
65
  const resolvers = (strapi) => {
66
66
  const { transformArgs } = strapi.plugin('graphql').service('builders').utils;