@webiny/app-headless-cms 6.1.0-beta.3 → 6.2.0-beta.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 (172) hide show
  1. package/HeadlessCMS.js +5 -2
  2. package/HeadlessCMS.js.map +1 -1
  3. package/admin/components/ContentEntryForm/Header/Header.js +3 -6
  4. package/admin/components/ContentEntryForm/Header/Header.js.map +1 -1
  5. package/admin/components/ContentEntryForm/Header/RevisionSelector/RevisionSelector.js +1 -1
  6. package/admin/components/ContentEntryForm/Header/RevisionSelector/RevisionSelector.js.map +1 -1
  7. package/admin/contexts/Cms/index.js +32 -2
  8. package/admin/contexts/Cms/index.js.map +1 -1
  9. package/admin/hooks/usePermission.js +132 -125
  10. package/admin/hooks/usePermission.js.map +1 -1
  11. package/admin/plugins/apiInformation/index.js +3 -3
  12. package/admin/plugins/apiInformation/index.js.map +1 -1
  13. package/admin/plugins/apiInformation/placeholder.manage.graphql.d.ts +1 -0
  14. package/admin/plugins/apiInformation/placeholder.manage.graphql.js +22 -0
  15. package/admin/plugins/apiInformation/placeholder.manage.graphql.js.map +1 -0
  16. package/admin/plugins/apiInformation/placeholder.preview.graphql.d.ts +1 -0
  17. package/admin/plugins/apiInformation/placeholder.preview.graphql.js +19 -0
  18. package/admin/plugins/apiInformation/placeholder.preview.graphql.js.map +1 -0
  19. package/admin/plugins/apiInformation/placeholder.read.graphql.d.ts +1 -0
  20. package/admin/plugins/apiInformation/placeholder.read.graphql.js +20 -0
  21. package/admin/plugins/apiInformation/placeholder.read.graphql.js.map +1 -0
  22. package/admin/views/contentEntries/ContentEntriesContext.js +5 -15
  23. package/admin/views/contentEntries/ContentEntriesContext.js.map +1 -1
  24. package/admin/views/contentEntries/ContentEntriesModule.js +20 -14
  25. package/admin/views/contentEntries/ContentEntriesModule.js.map +1 -1
  26. package/admin/views/contentModels/ContentModelsDataList.js +103 -88
  27. package/admin/views/contentModels/ContentModelsDataList.js.map +1 -1
  28. package/domain/permissionsSchema.d.ts +31 -0
  29. package/domain/permissionsSchema.js +34 -0
  30. package/domain/permissionsSchema.js.map +1 -0
  31. package/exports/admin/cms.d.ts +3 -0
  32. package/exports/admin/cms.js +4 -0
  33. package/exports/admin/cms.js.map +1 -1
  34. package/features/ListCache.d.ts +29 -0
  35. package/features/ListCache.js +43 -0
  36. package/features/ListCache.js.map +1 -0
  37. package/features/contentEntry/events/EntryAfterCreateEvent.d.ts +10 -0
  38. package/features/contentEntry/events/EntryAfterCreateEvent.js +10 -0
  39. package/features/contentEntry/events/EntryAfterCreateEvent.js.map +1 -0
  40. package/features/contentEntry/events/EntryAfterDeleteEvent.d.ts +11 -0
  41. package/features/contentEntry/events/EntryAfterDeleteEvent.js +10 -0
  42. package/features/contentEntry/events/EntryAfterDeleteEvent.js.map +1 -0
  43. package/features/contentEntry/events/EntryAfterUpdateEvent.d.ts +10 -0
  44. package/features/contentEntry/events/EntryAfterUpdateEvent.js +10 -0
  45. package/features/contentEntry/events/EntryAfterUpdateEvent.js.map +1 -0
  46. package/features/contentEntry/events/abstractions.d.ts +19 -0
  47. package/features/contentEntry/events/abstractions.js +6 -0
  48. package/features/contentEntry/events/abstractions.js.map +1 -0
  49. package/features/contentEntry/events/index.d.ts +7 -0
  50. package/features/contentEntry/events/index.js +6 -0
  51. package/features/contentEntry/events/index.js.map +1 -0
  52. package/features/graphQLClient/CmsGraphQLClient.d.ts +13 -0
  53. package/features/graphQLClient/CmsGraphQLClient.js +21 -0
  54. package/features/graphQLClient/CmsGraphQLClient.js.map +1 -0
  55. package/features/graphQLClient/abstractions.d.ts +17 -0
  56. package/features/graphQLClient/abstractions.js +4 -0
  57. package/features/graphQLClient/abstractions.js.map +1 -0
  58. package/features/graphQLClient/feature.d.ts +3 -0
  59. package/features/graphQLClient/feature.js +16 -0
  60. package/features/graphQLClient/feature.js.map +1 -0
  61. package/features/graphQLClient/index.d.ts +1 -0
  62. package/features/graphQLClient/index.js +3 -0
  63. package/features/graphQLClient/index.js.map +1 -0
  64. package/features/modelGroup/abstractions.d.ts +6 -0
  65. package/features/modelGroup/abstractions.js +4 -0
  66. package/features/modelGroup/abstractions.js.map +1 -0
  67. package/features/modelGroup/createModelGroup/CreateModelGroupGateway.d.ts +23 -0
  68. package/features/modelGroup/createModelGroup/CreateModelGroupGateway.js +59 -0
  69. package/features/modelGroup/createModelGroup/CreateModelGroupGateway.js.map +1 -0
  70. package/features/modelGroup/createModelGroup/CreateModelGroupRepository.d.ts +13 -0
  71. package/features/modelGroup/createModelGroup/CreateModelGroupRepository.js +19 -0
  72. package/features/modelGroup/createModelGroup/CreateModelGroupRepository.js.map +1 -0
  73. package/features/modelGroup/createModelGroup/CreateModelGroupUseCase.d.ts +10 -0
  74. package/features/modelGroup/createModelGroup/CreateModelGroupUseCase.js +15 -0
  75. package/features/modelGroup/createModelGroup/CreateModelGroupUseCase.js.map +1 -0
  76. package/features/modelGroup/createModelGroup/abstractions.d.ts +29 -0
  77. package/features/modelGroup/createModelGroup/abstractions.js +15 -0
  78. package/features/modelGroup/createModelGroup/abstractions.js.map +1 -0
  79. package/features/modelGroup/createModelGroup/feature.d.ts +3 -0
  80. package/features/modelGroup/createModelGroup/feature.js +20 -0
  81. package/features/modelGroup/createModelGroup/feature.js.map +1 -0
  82. package/features/modelGroup/deleteModelGroup/DeleteModelGroupGateway.d.ts +21 -0
  83. package/features/modelGroup/deleteModelGroup/DeleteModelGroupGateway.js +41 -0
  84. package/features/modelGroup/deleteModelGroup/DeleteModelGroupGateway.js.map +1 -0
  85. package/features/modelGroup/deleteModelGroup/DeleteModelGroupRepository.d.ts +12 -0
  86. package/features/modelGroup/deleteModelGroup/DeleteModelGroupRepository.js +18 -0
  87. package/features/modelGroup/deleteModelGroup/DeleteModelGroupRepository.js.map +1 -0
  88. package/features/modelGroup/deleteModelGroup/DeleteModelGroupUseCase.d.ts +10 -0
  89. package/features/modelGroup/deleteModelGroup/DeleteModelGroupUseCase.js +15 -0
  90. package/features/modelGroup/deleteModelGroup/DeleteModelGroupUseCase.js.map +1 -0
  91. package/features/modelGroup/deleteModelGroup/abstractions.d.ts +21 -0
  92. package/features/modelGroup/deleteModelGroup/abstractions.js +15 -0
  93. package/features/modelGroup/deleteModelGroup/abstractions.js.map +1 -0
  94. package/features/modelGroup/deleteModelGroup/feature.d.ts +3 -0
  95. package/features/modelGroup/deleteModelGroup/feature.js +20 -0
  96. package/features/modelGroup/deleteModelGroup/feature.js.map +1 -0
  97. package/features/modelGroup/feature.d.ts +1 -0
  98. package/features/modelGroup/feature.js +21 -0
  99. package/features/modelGroup/feature.js.map +1 -0
  100. package/features/modelGroup/getModelGroup/GetModelGroupGateway.d.ts +22 -0
  101. package/features/modelGroup/getModelGroup/GetModelGroupGateway.js +55 -0
  102. package/features/modelGroup/getModelGroup/GetModelGroupGateway.js.map +1 -0
  103. package/features/modelGroup/getModelGroup/GetModelGroupRepository.d.ts +12 -0
  104. package/features/modelGroup/getModelGroup/GetModelGroupRepository.js +19 -0
  105. package/features/modelGroup/getModelGroup/GetModelGroupRepository.js.map +1 -0
  106. package/features/modelGroup/getModelGroup/GetModelGroupUseCase.d.ts +10 -0
  107. package/features/modelGroup/getModelGroup/GetModelGroupUseCase.js +15 -0
  108. package/features/modelGroup/getModelGroup/GetModelGroupUseCase.js.map +1 -0
  109. package/features/modelGroup/getModelGroup/abstractions.d.ts +22 -0
  110. package/features/modelGroup/getModelGroup/abstractions.js +15 -0
  111. package/features/modelGroup/getModelGroup/abstractions.js.map +1 -0
  112. package/features/modelGroup/getModelGroup/feature.d.ts +3 -0
  113. package/features/modelGroup/getModelGroup/feature.js +20 -0
  114. package/features/modelGroup/getModelGroup/feature.js.map +1 -0
  115. package/features/modelGroup/listModelGroups/ListModelGroupsGateway.d.ts +19 -0
  116. package/features/modelGroup/listModelGroups/ListModelGroupsGateway.js +56 -0
  117. package/features/modelGroup/listModelGroups/ListModelGroupsGateway.js.map +1 -0
  118. package/features/modelGroup/listModelGroups/ListModelGroupsRepository.d.ts +12 -0
  119. package/features/modelGroup/listModelGroups/ListModelGroupsRepository.js +23 -0
  120. package/features/modelGroup/listModelGroups/ListModelGroupsRepository.js.map +1 -0
  121. package/features/modelGroup/listModelGroups/ListModelGroupsUseCase.d.ts +10 -0
  122. package/features/modelGroup/listModelGroups/ListModelGroupsUseCase.js +15 -0
  123. package/features/modelGroup/listModelGroups/ListModelGroupsUseCase.js.map +1 -0
  124. package/features/modelGroup/listModelGroups/abstractions.d.ts +39 -0
  125. package/features/modelGroup/listModelGroups/abstractions.js +15 -0
  126. package/features/modelGroup/listModelGroups/abstractions.js.map +1 -0
  127. package/features/modelGroup/listModelGroups/feature.d.ts +3 -0
  128. package/features/modelGroup/listModelGroups/feature.js +20 -0
  129. package/features/modelGroup/listModelGroups/feature.js.map +1 -0
  130. package/features/modelGroup/updateModelGroup/UpdateModelGroupGateway.d.ts +24 -0
  131. package/features/modelGroup/updateModelGroup/UpdateModelGroupGateway.js +56 -0
  132. package/features/modelGroup/updateModelGroup/UpdateModelGroupGateway.js.map +1 -0
  133. package/features/modelGroup/updateModelGroup/UpdateModelGroupRepository.d.ts +13 -0
  134. package/features/modelGroup/updateModelGroup/UpdateModelGroupRepository.js +31 -0
  135. package/features/modelGroup/updateModelGroup/UpdateModelGroupRepository.js.map +1 -0
  136. package/features/modelGroup/updateModelGroup/UpdateModelGroupUseCase.d.ts +10 -0
  137. package/features/modelGroup/updateModelGroup/UpdateModelGroupUseCase.js +15 -0
  138. package/features/modelGroup/updateModelGroup/UpdateModelGroupUseCase.js.map +1 -0
  139. package/features/modelGroup/updateModelGroup/abstractions.d.ts +30 -0
  140. package/features/modelGroup/updateModelGroup/abstractions.js +15 -0
  141. package/features/modelGroup/updateModelGroup/abstractions.js.map +1 -0
  142. package/features/modelGroup/updateModelGroup/feature.d.ts +3 -0
  143. package/features/modelGroup/updateModelGroup/feature.js +20 -0
  144. package/features/modelGroup/updateModelGroup/feature.js.map +1 -0
  145. package/features/permissions/abstractions.d.ts +17 -0
  146. package/features/permissions/abstractions.js +5 -0
  147. package/features/permissions/abstractions.js.map +1 -0
  148. package/features/permissions/feature.d.ts +14 -0
  149. package/features/permissions/feature.js +6 -0
  150. package/features/permissions/feature.js.map +1 -0
  151. package/package.json +29 -30
  152. package/presentation/modelGroup/hooks/index.d.ts +5 -0
  153. package/presentation/modelGroup/hooks/index.js +7 -0
  154. package/presentation/modelGroup/hooks/index.js.map +1 -0
  155. package/presentation/modelGroup/hooks/useCreateModelGroup.d.ts +4 -0
  156. package/presentation/modelGroup/hooks/useCreateModelGroup.js +12 -0
  157. package/presentation/modelGroup/hooks/useCreateModelGroup.js.map +1 -0
  158. package/presentation/modelGroup/hooks/useDeleteModelGroup.d.ts +3 -0
  159. package/presentation/modelGroup/hooks/useDeleteModelGroup.js +12 -0
  160. package/presentation/modelGroup/hooks/useDeleteModelGroup.js.map +1 -0
  161. package/presentation/modelGroup/hooks/useGetModelGroup.d.ts +3 -0
  162. package/presentation/modelGroup/hooks/useGetModelGroup.js +12 -0
  163. package/presentation/modelGroup/hooks/useGetModelGroup.js.map +1 -0
  164. package/presentation/modelGroup/hooks/useListModelGroups.d.ts +3 -0
  165. package/presentation/modelGroup/hooks/useListModelGroups.js +16 -0
  166. package/presentation/modelGroup/hooks/useListModelGroups.js.map +1 -0
  167. package/presentation/modelGroup/hooks/useUpdateModelGroup.d.ts +4 -0
  168. package/presentation/modelGroup/hooks/useUpdateModelGroup.js +12 -0
  169. package/presentation/modelGroup/hooks/useUpdateModelGroup.js.map +1 -0
  170. package/admin/plugins/apiInformation/placeholder.manage.graphql +0 -18
  171. package/admin/plugins/apiInformation/placeholder.preview.graphql +0 -15
  172. package/admin/plugins/apiInformation/placeholder.read.graphql +0 -16
package/HeadlessCMS.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import React, { Fragment, memo } from "react";
2
2
  import { plugins } from "@webiny/plugins";
3
- import { Provider } from "@webiny/app-admin";
3
+ import { Provider, RegisterFeature } from "@webiny/app-admin";
4
4
  import { ApolloCacheObjectIdPlugin } from "@webiny/app";
5
5
  import { CmsProvider } from "./admin/contexts/Cms/index.js";
6
6
  import apiInformation from "./admin/plugins/apiInformation/index.js";
@@ -10,6 +10,7 @@ import { LexicalEditorCmsPlugin } from "./admin/components/LexicalCmsEditor/Lexi
10
10
  import { SingletonContentEntryModule } from "./admin/views/contentEntries/SingletonContentEntryModule.js";
11
11
  import { RoutesConfig } from "./admin/RoutesConfig.js";
12
12
  import { CmsSecurityPermission } from "./admin/plugins/permissionRenderer/index.js";
13
+ import { CmsPermissionsFeature } from "./features/permissions/feature.js";
13
14
  const createHeadlessCMSProvider = createApolloClient => Component => {
14
15
  return function HeadlessCMSProvider({
15
16
  children
@@ -38,7 +39,9 @@ const HeadlessCMSExtension = ({
38
39
  }
39
40
  return undefined;
40
41
  }));
41
- return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(RoutesConfig, null), /*#__PURE__*/React.createElement(ContentEntriesModule, null), /*#__PURE__*/React.createElement(SingletonContentEntryModule, null), /*#__PURE__*/React.createElement(Provider, {
42
+ return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(RegisterFeature, {
43
+ feature: CmsPermissionsFeature
44
+ }), /*#__PURE__*/React.createElement(RoutesConfig, null), /*#__PURE__*/React.createElement(ContentEntriesModule, null), /*#__PURE__*/React.createElement(SingletonContentEntryModule, null), /*#__PURE__*/React.createElement(Provider, {
42
45
  hoc: createHeadlessCMSProvider(createApolloClient)
43
46
  }), /*#__PURE__*/React.createElement(LexicalEditorCmsPlugin, null), /*#__PURE__*/React.createElement(CmsSecurityPermission, null));
44
47
  };
@@ -1 +1 @@
1
- {"version":3,"names":["React","Fragment","memo","plugins","Provider","ApolloCacheObjectIdPlugin","CmsProvider","apiInformation","ContentEntriesModule","allPlugins","LexicalEditorCmsPlugin","SingletonContentEntryModule","RoutesConfig","CmsSecurityPermission","createHeadlessCMSProvider","createApolloClient","Component","HeadlessCMSProvider","children","createElement","attachTypeName","HeadlessCMSExtension","register","obj","__typename","includes","id","undefined","hoc","HeadlessCMS"],"sources":["HeadlessCMS.tsx"],"sourcesContent":["import React, { Fragment, memo } from \"react\";\nimport type { ApolloClient } from \"apollo-client\";\nimport { plugins } from \"@webiny/plugins\";\nimport { Provider } from \"@webiny/app-admin\";\nimport { ApolloCacheObjectIdPlugin } from \"@webiny/app\";\nimport { CmsProvider } from \"~/admin/contexts/Cms/index.js\";\nimport apiInformation from \"~/admin/plugins/apiInformation/index.js\";\nimport { ContentEntriesModule } from \"~/admin/views/contentEntries/ContentEntriesModule.js\";\nimport allPlugins from \"~/allPlugins.js\";\nimport { LexicalEditorCmsPlugin } from \"~/admin/components/LexicalCmsEditor/LexicalEditorCmsPlugin.js\";\nimport { SingletonContentEntryModule } from \"~/admin/views/contentEntries/SingletonContentEntryModule.js\";\nimport { RoutesConfig } from \"./admin/RoutesConfig.js\";\nimport { CmsSecurityPermission } from \"~/admin/plugins/permissionRenderer/index.js\";\n\ninterface HeadlessCMSProvider {\n children: React.ReactNode;\n}\n\nconst createHeadlessCMSProvider =\n (createApolloClient: CreateApolloClient) =>\n (Component: React.ComponentType<React.PropsWithChildren>) => {\n return function HeadlessCMSProvider({ children }: HeadlessCMSProvider) {\n return (\n <CmsProvider createApolloClient={createApolloClient}>\n <Component>{children}</Component>\n </CmsProvider>\n );\n };\n };\n\ninterface CreateApolloClientParams {\n uri: string;\n}\n\ninterface CreateApolloClient {\n (params: CreateApolloClientParams): ApolloClient<any>;\n}\n\nexport interface HeadlessCMSProps {\n createApolloClient: CreateApolloClient;\n}\n\n/**\n * If there is a problem with some state being reset, it's probably because of this plugin.\n * Check that __typename from the API and the __typename in the state are the same.\n * If not, add it into the attachTypeName array.\n */\nconst attachTypeName = [\"CmsContentEntry\", \"RefField\"];\n\nconst HeadlessCMSExtension = ({ createApolloClient }: HeadlessCMSProps) => {\n plugins.register(apiInformation);\n plugins.register(allPlugins);\n\n plugins.register(\n new ApolloCacheObjectIdPlugin(obj => {\n if (obj.__typename === \"CmsContentModelField\") {\n return null;\n } else if (obj.__typename && attachTypeName.includes(obj.__typename)) {\n return `${obj.__typename}_${obj.id}`;\n }\n\n return undefined;\n })\n );\n\n return (\n <Fragment>\n <RoutesConfig />\n <ContentEntriesModule />\n <SingletonContentEntryModule />\n <Provider hoc={createHeadlessCMSProvider(createApolloClient)} />\n <LexicalEditorCmsPlugin />\n <CmsSecurityPermission />\n </Fragment>\n );\n};\n\nexport const HeadlessCMS = memo(HeadlessCMSExtension);\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,IAAI,QAAQ,OAAO;AAE7C,SAASC,OAAO,QAAQ,iBAAiB;AACzC,SAASC,QAAQ,QAAQ,mBAAmB;AAC5C,SAASC,yBAAyB,QAAQ,aAAa;AACvD,SAASC,WAAW;AACpB,OAAOC,cAAc;AACrB,SAASC,oBAAoB;AAC7B,OAAOC,UAAU;AACjB,SAASC,sBAAsB;AAC/B,SAASC,2BAA2B;AACpC,SAASC,YAAY;AACrB,SAASC,qBAAqB;AAM9B,MAAMC,yBAAyB,GAC1BC,kBAAsC,IACtCC,SAAuD,IAAK;EACzD,OAAO,SAASC,mBAAmBA,CAAC;IAAEC;EAA8B,CAAC,EAAE;IACnE,oBACIlB,KAAA,CAAAmB,aAAA,CAACb,WAAW;MAACS,kBAAkB,EAAEA;IAAmB,gBAChDf,KAAA,CAAAmB,aAAA,CAACH,SAAS,QAAEE,QAAoB,CACvB,CAAC;EAEtB,CAAC;AACL,CAAC;AAcL;AACA;AACA;AACA;AACA;AACA,MAAME,cAAc,GAAG,CAAC,iBAAiB,EAAE,UAAU,CAAC;AAEtD,MAAMC,oBAAoB,GAAGA,CAAC;EAAEN;AAAqC,CAAC,KAAK;EACvEZ,OAAO,CAACmB,QAAQ,CAACf,cAAc,CAAC;EAChCJ,OAAO,CAACmB,QAAQ,CAACb,UAAU,CAAC;EAE5BN,OAAO,CAACmB,QAAQ,CACZ,IAAIjB,yBAAyB,CAACkB,GAAG,IAAI;IACjC,IAAIA,GAAG,CAACC,UAAU,KAAK,sBAAsB,EAAE;MAC3C,OAAO,IAAI;IACf,CAAC,MAAM,IAAID,GAAG,CAACC,UAAU,IAAIJ,cAAc,CAACK,QAAQ,CAACF,GAAG,CAACC,UAAU,CAAC,EAAE;MAClE,OAAO,GAAGD,GAAG,CAACC,UAAU,IAAID,GAAG,CAACG,EAAE,EAAE;IACxC;IAEA,OAAOC,SAAS;EACpB,CAAC,CACL,CAAC;EAED,oBACI3B,KAAA,CAAAmB,aAAA,CAAClB,QAAQ,qBACLD,KAAA,CAAAmB,aAAA,CAACP,YAAY,MAAE,CAAC,eAChBZ,KAAA,CAAAmB,aAAA,CAACX,oBAAoB,MAAE,CAAC,eACxBR,KAAA,CAAAmB,aAAA,CAACR,2BAA2B,MAAE,CAAC,eAC/BX,KAAA,CAAAmB,aAAA,CAACf,QAAQ;IAACwB,GAAG,EAAEd,yBAAyB,CAACC,kBAAkB;EAAE,CAAE,CAAC,eAChEf,KAAA,CAAAmB,aAAA,CAACT,sBAAsB,MAAE,CAAC,eAC1BV,KAAA,CAAAmB,aAAA,CAACN,qBAAqB,MAAE,CAClB,CAAC;AAEnB,CAAC;AAED,OAAO,MAAMgB,WAAW,gBAAG3B,IAAI,CAACmB,oBAAoB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","Fragment","memo","plugins","Provider","RegisterFeature","ApolloCacheObjectIdPlugin","CmsProvider","apiInformation","ContentEntriesModule","allPlugins","LexicalEditorCmsPlugin","SingletonContentEntryModule","RoutesConfig","CmsSecurityPermission","CmsPermissionsFeature","createHeadlessCMSProvider","createApolloClient","Component","HeadlessCMSProvider","children","createElement","attachTypeName","HeadlessCMSExtension","register","obj","__typename","includes","id","undefined","feature","hoc","HeadlessCMS"],"sources":["HeadlessCMS.tsx"],"sourcesContent":["import React, { Fragment, memo } from \"react\";\nimport type { ApolloClient } from \"apollo-client\";\nimport { plugins } from \"@webiny/plugins\";\nimport { Provider, RegisterFeature } from \"@webiny/app-admin\";\nimport { ApolloCacheObjectIdPlugin } from \"@webiny/app\";\nimport { CmsProvider } from \"~/admin/contexts/Cms/index.js\";\nimport apiInformation from \"~/admin/plugins/apiInformation/index.js\";\nimport { ContentEntriesModule } from \"~/admin/views/contentEntries/ContentEntriesModule.js\";\nimport allPlugins from \"~/allPlugins.js\";\nimport { LexicalEditorCmsPlugin } from \"~/admin/components/LexicalCmsEditor/LexicalEditorCmsPlugin.js\";\nimport { SingletonContentEntryModule } from \"~/admin/views/contentEntries/SingletonContentEntryModule.js\";\nimport { RoutesConfig } from \"./admin/RoutesConfig.js\";\nimport { CmsSecurityPermission } from \"~/admin/plugins/permissionRenderer/index.js\";\nimport { CmsPermissionsFeature } from \"~/features/permissions/feature.js\";\n\ninterface HeadlessCMSProvider {\n children: React.ReactNode;\n}\n\nconst createHeadlessCMSProvider =\n (createApolloClient: CreateApolloClient) =>\n (Component: React.ComponentType<React.PropsWithChildren>) => {\n return function HeadlessCMSProvider({ children }: HeadlessCMSProvider) {\n return (\n <CmsProvider createApolloClient={createApolloClient}>\n <Component>{children}</Component>\n </CmsProvider>\n );\n };\n };\n\ninterface CreateApolloClientParams {\n uri: string;\n}\n\ninterface CreateApolloClient {\n (params: CreateApolloClientParams): ApolloClient<any>;\n}\n\nexport interface HeadlessCMSProps {\n createApolloClient: CreateApolloClient;\n}\n\n/**\n * If there is a problem with some state being reset, it's probably because of this plugin.\n * Check that __typename from the API and the __typename in the state are the same.\n * If not, add it into the attachTypeName array.\n */\nconst attachTypeName = [\"CmsContentEntry\", \"RefField\"];\n\nconst HeadlessCMSExtension = ({ createApolloClient }: HeadlessCMSProps) => {\n plugins.register(apiInformation);\n plugins.register(allPlugins);\n\n plugins.register(\n new ApolloCacheObjectIdPlugin(obj => {\n if (obj.__typename === \"CmsContentModelField\") {\n return null;\n } else if (obj.__typename && attachTypeName.includes(obj.__typename)) {\n return `${obj.__typename}_${obj.id}`;\n }\n\n return undefined;\n })\n );\n\n return (\n <Fragment>\n <RegisterFeature feature={CmsPermissionsFeature} />\n <RoutesConfig />\n <ContentEntriesModule />\n <SingletonContentEntryModule />\n <Provider hoc={createHeadlessCMSProvider(createApolloClient)} />\n <LexicalEditorCmsPlugin />\n <CmsSecurityPermission />\n </Fragment>\n );\n};\n\nexport const HeadlessCMS = memo(HeadlessCMSExtension);\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,IAAI,QAAQ,OAAO;AAE7C,SAASC,OAAO,QAAQ,iBAAiB;AACzC,SAASC,QAAQ,EAAEC,eAAe,QAAQ,mBAAmB;AAC7D,SAASC,yBAAyB,QAAQ,aAAa;AACvD,SAASC,WAAW;AACpB,OAAOC,cAAc;AACrB,SAASC,oBAAoB;AAC7B,OAAOC,UAAU;AACjB,SAASC,sBAAsB;AAC/B,SAASC,2BAA2B;AACpC,SAASC,YAAY;AACrB,SAASC,qBAAqB;AAC9B,SAASC,qBAAqB;AAM9B,MAAMC,yBAAyB,GAC1BC,kBAAsC,IACtCC,SAAuD,IAAK;EACzD,OAAO,SAASC,mBAAmBA,CAAC;IAAEC;EAA8B,CAAC,EAAE;IACnE,oBACIpB,KAAA,CAAAqB,aAAA,CAACd,WAAW;MAACU,kBAAkB,EAAEA;IAAmB,gBAChDjB,KAAA,CAAAqB,aAAA,CAACH,SAAS,QAAEE,QAAoB,CACvB,CAAC;EAEtB,CAAC;AACL,CAAC;AAcL;AACA;AACA;AACA;AACA;AACA,MAAME,cAAc,GAAG,CAAC,iBAAiB,EAAE,UAAU,CAAC;AAEtD,MAAMC,oBAAoB,GAAGA,CAAC;EAAEN;AAAqC,CAAC,KAAK;EACvEd,OAAO,CAACqB,QAAQ,CAAChB,cAAc,CAAC;EAChCL,OAAO,CAACqB,QAAQ,CAACd,UAAU,CAAC;EAE5BP,OAAO,CAACqB,QAAQ,CACZ,IAAIlB,yBAAyB,CAACmB,GAAG,IAAI;IACjC,IAAIA,GAAG,CAACC,UAAU,KAAK,sBAAsB,EAAE;MAC3C,OAAO,IAAI;IACf,CAAC,MAAM,IAAID,GAAG,CAACC,UAAU,IAAIJ,cAAc,CAACK,QAAQ,CAACF,GAAG,CAACC,UAAU,CAAC,EAAE;MAClE,OAAO,GAAGD,GAAG,CAACC,UAAU,IAAID,GAAG,CAACG,EAAE,EAAE;IACxC;IAEA,OAAOC,SAAS;EACpB,CAAC,CACL,CAAC;EAED,oBACI7B,KAAA,CAAAqB,aAAA,CAACpB,QAAQ,qBACLD,KAAA,CAAAqB,aAAA,CAAChB,eAAe;IAACyB,OAAO,EAAEf;EAAsB,CAAE,CAAC,eACnDf,KAAA,CAAAqB,aAAA,CAACR,YAAY,MAAE,CAAC,eAChBb,KAAA,CAAAqB,aAAA,CAACZ,oBAAoB,MAAE,CAAC,eACxBT,KAAA,CAAAqB,aAAA,CAACT,2BAA2B,MAAE,CAAC,eAC/BZ,KAAA,CAAAqB,aAAA,CAACjB,QAAQ;IAAC2B,GAAG,EAAEf,yBAAyB,CAACC,kBAAkB;EAAE,CAAE,CAAC,eAChEjB,KAAA,CAAAqB,aAAA,CAACV,sBAAsB,MAAE,CAAC,eAC1BX,KAAA,CAAAqB,aAAA,CAACP,qBAAqB,MAAE,CAClB,CAAC;AAEnB,CAAC;AAED,OAAO,MAAMkB,WAAW,gBAAG9B,IAAI,CAACqB,oBAAoB,CAAC","ignoreList":[]}
@@ -1,11 +1,8 @@
1
1
  import React from "react";
2
+ import { Helmet } from "react-helmet";
2
3
  import { Buttons, makeDecoratable } from "@webiny/app-admin";
3
4
  import { useContentEntryEditorConfig } from "../../../config/contentEntries/index.js";
4
- import { ContentFormOptionsMenu } from "./ContentFormOptionsMenu/index.js";
5
- import { RevisionSelector } from "./RevisionSelector/index.js";
6
- import { Helmet } from "react-helmet";
7
5
  import { useContentEntry } from "../../../views/contentEntries/hooks/index.js";
8
- import { IsModelPublishable } from "../../../../exports/admin/cms.js";
9
6
  export const Header = makeDecoratable("ContentEntryFormHeader", () => {
10
7
  const {
11
8
  buttonActions
@@ -18,11 +15,11 @@ export const Header = makeDecoratable("ContentEntryFormHeader", () => {
18
15
  id: "headerToolbarGrid"
19
16
  }, entry.meta?.title ? /*#__PURE__*/React.createElement(Helmet, {
20
17
  title: entry.meta.title
21
- }) : null, /*#__PURE__*/React.createElement(IsModelPublishable, null, /*#__PURE__*/React.createElement(RevisionSelector, null)), /*#__PURE__*/React.createElement("div", {
18
+ }) : null, /*#__PURE__*/React.createElement("div", {
22
19
  className: "flex items-center gap-sm"
23
20
  }, /*#__PURE__*/React.createElement(Buttons, {
24
21
  actions: buttonActions
25
- }), /*#__PURE__*/React.createElement(ContentFormOptionsMenu, null)));
22
+ })));
26
23
  });
27
24
 
28
25
  //# sourceMappingURL=Header.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","Buttons","makeDecoratable","useContentEntryEditorConfig","ContentFormOptionsMenu","RevisionSelector","Helmet","useContentEntry","IsModelPublishable","Header","buttonActions","entry","createElement","className","id","meta","title","actions"],"sources":["Header.tsx"],"sourcesContent":["import React from \"react\";\nimport { Buttons, makeDecoratable } from \"@webiny/app-admin\";\n\nimport { useContentEntryEditorConfig } from \"~/admin/config/contentEntries/index.js\";\n\nimport { ContentFormOptionsMenu } from \"./ContentFormOptionsMenu/index.js\";\nimport { RevisionSelector } from \"~/admin/components/ContentEntryForm/Header/RevisionSelector/index.js\";\nimport { Helmet } from \"react-helmet\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks/index.js\";\nimport { IsModelPublishable } from \"~/exports/admin/cms.js\";\n\nexport const Header = makeDecoratable(\"ContentEntryFormHeader\", () => {\n const { buttonActions } = useContentEntryEditorConfig();\n const { entry } = useContentEntry();\n\n return (\n <div\n className={\n \"flex items-center justify-between gap-sm border-b-sm border-neutral-dimmed pb-md mb-md\"\n }\n id=\"headerToolbarGrid\"\n >\n {entry.meta?.title ? <Helmet title={entry.meta.title} /> : null}\n <IsModelPublishable>\n <RevisionSelector />\n </IsModelPublishable>\n <div className={\"flex items-center gap-sm\"}>\n <Buttons actions={buttonActions} />\n <ContentFormOptionsMenu />\n </div>\n </div>\n );\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,OAAO,EAAEC,eAAe,QAAQ,mBAAmB;AAE5D,SAASC,2BAA2B;AAEpC,SAASC,sBAAsB;AAC/B,SAASC,gBAAgB;AACzB,SAASC,MAAM,QAAQ,cAAc;AACrC,SAASC,eAAe;AACxB,SAASC,kBAAkB;AAE3B,OAAO,MAAMC,MAAM,GAAGP,eAAe,CAAC,wBAAwB,EAAE,MAAM;EAClE,MAAM;IAAEQ;EAAc,CAAC,GAAGP,2BAA2B,CAAC,CAAC;EACvD,MAAM;IAAEQ;EAAM,CAAC,GAAGJ,eAAe,CAAC,CAAC;EAEnC,oBACIP,KAAA,CAAAY,aAAA;IACIC,SAAS,EACL,wFACH;IACDC,EAAE,EAAC;EAAmB,GAErBH,KAAK,CAACI,IAAI,EAAEC,KAAK,gBAAGhB,KAAA,CAAAY,aAAA,CAACN,MAAM;IAACU,KAAK,EAAEL,KAAK,CAACI,IAAI,CAACC;EAAM,CAAE,CAAC,GAAG,IAAI,eAC/DhB,KAAA,CAAAY,aAAA,CAACJ,kBAAkB,qBACfR,KAAA,CAAAY,aAAA,CAACP,gBAAgB,MAAE,CACH,CAAC,eACrBL,KAAA,CAAAY,aAAA;IAAKC,SAAS,EAAE;EAA2B,gBACvCb,KAAA,CAAAY,aAAA,CAACX,OAAO;IAACgB,OAAO,EAAEP;EAAc,CAAE,CAAC,eACnCV,KAAA,CAAAY,aAAA,CAACR,sBAAsB,MAAE,CACxB,CACJ,CAAC;AAEd,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","Helmet","Buttons","makeDecoratable","useContentEntryEditorConfig","useContentEntry","Header","buttonActions","entry","createElement","className","id","meta","title","actions"],"sources":["Header.tsx"],"sourcesContent":["import React from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport { Buttons, makeDecoratable } from \"@webiny/app-admin\";\nimport { useContentEntryEditorConfig } from \"~/admin/config/contentEntries/index.js\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks/index.js\";\n\nexport const Header = makeDecoratable(\"ContentEntryFormHeader\", () => {\n const { buttonActions } = useContentEntryEditorConfig();\n const { entry } = useContentEntry();\n\n return (\n <div\n className={\n \"flex items-center justify-between gap-sm border-b-sm border-neutral-dimmed pb-md mb-md\"\n }\n id=\"headerToolbarGrid\"\n >\n {entry.meta?.title ? <Helmet title={entry.meta.title} /> : null}\n <div className={\"flex items-center gap-sm\"}>\n <Buttons actions={buttonActions} />\n </div>\n </div>\n );\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,MAAM,QAAQ,cAAc;AACrC,SAASC,OAAO,EAAEC,eAAe,QAAQ,mBAAmB;AAC5D,SAASC,2BAA2B;AACpC,SAASC,eAAe;AAExB,OAAO,MAAMC,MAAM,GAAGH,eAAe,CAAC,wBAAwB,EAAE,MAAM;EAClE,MAAM;IAAEI;EAAc,CAAC,GAAGH,2BAA2B,CAAC,CAAC;EACvD,MAAM;IAAEI;EAAM,CAAC,GAAGH,eAAe,CAAC,CAAC;EAEnC,oBACIL,KAAA,CAAAS,aAAA;IACIC,SAAS,EACL,wFACH;IACDC,EAAE,EAAC;EAAmB,GAErBH,KAAK,CAACI,IAAI,EAAEC,KAAK,gBAAGb,KAAA,CAAAS,aAAA,CAACR,MAAM;IAACY,KAAK,EAAEL,KAAK,CAACI,IAAI,CAACC;EAAM,CAAE,CAAC,GAAG,IAAI,eAC/Db,KAAA,CAAAS,aAAA;IAAKC,SAAS,EAAE;EAA2B,gBACvCV,KAAA,CAAAS,aAAA,CAACP,OAAO;IAACY,OAAO,EAAEP;EAAc,CAAE,CACjC,CACJ,CAAC;AAEd,CAAC,CAAC","ignoreList":[]}
@@ -32,7 +32,7 @@ export const RevisionSelector = () => {
32
32
  const allRevisions = revisions.length ? revisions : defaultRevisions;
33
33
  return /*#__PURE__*/React.createElement(DropdownMenu, {
34
34
  trigger: /*#__PURE__*/React.createElement(Button, {
35
- variant: "secondary",
35
+ variant: "ghost",
36
36
  disabled: loading,
37
37
  icon: /*#__PURE__*/React.createElement(DownButton, null),
38
38
  iconPosition: "end",
@@ -1 +1 @@
1
- {"version":3,"names":["React","get","useRoute","useRouter","Button","DropdownMenu","Text","ReactComponent","DownButton","useContentEntry","statuses","statusLabels","Routes","defaultRevisions","id","meta","version","status","RevisionSelector","goToRoute","route","ContentEntries","List","entry","revisions","loading","currentRevision","allRevisions","length","createElement","trigger","variant","disabled","icon","iconPosition","text","Fragment","map","revision","Item","key","onClick","params","as","size"],"sources":["RevisionSelector.tsx"],"sourcesContent":["import React from \"react\";\nimport get from \"lodash/get.js\";\nimport { useRoute, useRouter } from \"@webiny/app-admin\";\nimport { Button, DropdownMenu, Text } from \"@webiny/admin-ui\";\nimport { ReactComponent as DownButton } from \"@webiny/icons/keyboard_arrow_down.svg\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks/useContentEntry.js\";\nimport { statuses as statusLabels } from \"~/admin/constants.js\";\nimport type { CmsContentEntryRevision } from \"~/types.js\";\nimport { Routes } from \"~/routes.js\";\n\ninterface CmsEntryRevision extends Pick<CmsContentEntryRevision, \"id\"> {\n meta: Pick<CmsContentEntryRevision[\"meta\"], \"version\" | \"status\">;\n}\n\nconst defaultRevisions: CmsEntryRevision[] = [\n {\n id: \"new\",\n meta: {\n version: 1,\n status: \"draft\"\n }\n }\n];\n\nexport const RevisionSelector = () => {\n const { goToRoute } = useRouter();\n const { route } = useRoute(Routes.ContentEntries.List);\n\n const { entry, revisions, loading } = useContentEntry();\n\n const currentRevision = {\n version: get(entry, \"meta.version\", 1) as number,\n status: get(entry, \"meta.status\", \"draft\") as CmsContentEntryRevision[\"meta\"][\"status\"]\n };\n\n const allRevisions = revisions.length ? revisions : defaultRevisions;\n\n return (\n <DropdownMenu\n trigger={\n <Button\n variant={\"secondary\"}\n disabled={loading}\n icon={<DownButton />}\n iconPosition={\"end\"}\n text={\n <>\n v{currentRevision.version} ({statusLabels[currentRevision.status]})\n </>\n }\n />\n }\n >\n {allRevisions.map(revision => (\n <DropdownMenu.Item\n key={revision.id}\n onClick={() => {\n goToRoute(Routes.ContentEntries.List, {\n ...route.params,\n id: revision.id\n });\n }}\n text={\n <>\n <Text as={\"div\"}>v{revision.meta.version}</Text>\n <Text size={\"sm\"}>({statusLabels[revision.meta.status]})</Text>\n </>\n }\n />\n ))}\n </DropdownMenu>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,GAAG,MAAM,eAAe;AAC/B,SAASC,QAAQ,EAAEC,SAAS,QAAQ,mBAAmB;AACvD,SAASC,MAAM,EAAEC,YAAY,EAAEC,IAAI,QAAQ,kBAAkB;AAC7D,SAASC,cAAc,IAAIC,UAAU,QAAQ,uCAAuC;AACpF,SAASC,eAAe;AACxB,SAASC,QAAQ,IAAIC,YAAY;AAEjC,SAASC,MAAM;AAMf,MAAMC,gBAAoC,GAAG,CACzC;EACIC,EAAE,EAAE,KAAK;EACTC,IAAI,EAAE;IACFC,OAAO,EAAE,CAAC;IACVC,MAAM,EAAE;EACZ;AACJ,CAAC,CACJ;AAED,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EAClC,MAAM;IAAEC;EAAU,CAAC,GAAGhB,SAAS,CAAC,CAAC;EACjC,MAAM;IAAEiB;EAAM,CAAC,GAAGlB,QAAQ,CAACU,MAAM,CAACS,cAAc,CAACC,IAAI,CAAC;EAEtD,MAAM;IAAEC,KAAK;IAAEC,SAAS;IAAEC;EAAQ,CAAC,GAAGhB,eAAe,CAAC,CAAC;EAEvD,MAAMiB,eAAe,GAAG;IACpBV,OAAO,EAAEf,GAAG,CAACsB,KAAK,EAAE,cAAc,EAAE,CAAC,CAAW;IAChDN,MAAM,EAAEhB,GAAG,CAACsB,KAAK,EAAE,aAAa,EAAE,OAAO;EAC7C,CAAC;EAED,MAAMI,YAAY,GAAGH,SAAS,CAACI,MAAM,GAAGJ,SAAS,GAAGX,gBAAgB;EAEpE,oBACIb,KAAA,CAAA6B,aAAA,CAACxB,YAAY;IACTyB,OAAO,eACH9B,KAAA,CAAA6B,aAAA,CAACzB,MAAM;MACH2B,OAAO,EAAE,WAAY;MACrBC,QAAQ,EAAEP,OAAQ;MAClBQ,IAAI,eAAEjC,KAAA,CAAA6B,aAAA,CAACrB,UAAU,MAAE,CAAE;MACrB0B,YAAY,EAAE,KAAM;MACpBC,IAAI,eACAnC,KAAA,CAAA6B,aAAA,CAAA7B,KAAA,CAAAoC,QAAA,QAAE,GACG,EAACV,eAAe,CAACV,OAAO,EAAC,IAAE,EAACL,YAAY,CAACe,eAAe,CAACT,MAAM,CAAC,EAAC,GACpE;IACL,CACJ;EACJ,GAEAU,YAAY,CAACU,GAAG,CAACC,QAAQ,iBACtBtC,KAAA,CAAA6B,aAAA,CAACxB,YAAY,CAACkC,IAAI;IACdC,GAAG,EAAEF,QAAQ,CAACxB,EAAG;IACjB2B,OAAO,EAAEA,CAAA,KAAM;MACXtB,SAAS,CAACP,MAAM,CAACS,cAAc,CAACC,IAAI,EAAE;QAClC,GAAGF,KAAK,CAACsB,MAAM;QACf5B,EAAE,EAAEwB,QAAQ,CAACxB;MACjB,CAAC,CAAC;IACN,CAAE;IACFqB,IAAI,eACAnC,KAAA,CAAA6B,aAAA,CAAA7B,KAAA,CAAAoC,QAAA,qBACIpC,KAAA,CAAA6B,aAAA,CAACvB,IAAI;MAACqC,EAAE,EAAE;IAAM,GAAC,GAAC,EAACL,QAAQ,CAACvB,IAAI,CAACC,OAAc,CAAC,eAChDhB,KAAA,CAAA6B,aAAA,CAACvB,IAAI;MAACsC,IAAI,EAAE;IAAK,GAAC,GAAC,EAACjC,YAAY,CAAC2B,QAAQ,CAACvB,IAAI,CAACE,MAAM,CAAC,EAAC,GAAO,CAChE;EACL,CACJ,CACJ,CACS,CAAC;AAEvB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","get","useRoute","useRouter","Button","DropdownMenu","Text","ReactComponent","DownButton","useContentEntry","statuses","statusLabels","Routes","defaultRevisions","id","meta","version","status","RevisionSelector","goToRoute","route","ContentEntries","List","entry","revisions","loading","currentRevision","allRevisions","length","createElement","trigger","variant","disabled","icon","iconPosition","text","Fragment","map","revision","Item","key","onClick","params","as","size"],"sources":["RevisionSelector.tsx"],"sourcesContent":["import React from \"react\";\nimport get from \"lodash/get.js\";\nimport { useRoute, useRouter } from \"@webiny/app-admin\";\nimport { Button, DropdownMenu, Text } from \"@webiny/admin-ui\";\nimport { ReactComponent as DownButton } from \"@webiny/icons/keyboard_arrow_down.svg\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks/useContentEntry.js\";\nimport { statuses as statusLabels } from \"~/admin/constants.js\";\nimport type { CmsContentEntryRevision } from \"~/types.js\";\nimport { Routes } from \"~/routes.js\";\n\ninterface CmsEntryRevision extends Pick<CmsContentEntryRevision, \"id\"> {\n meta: Pick<CmsContentEntryRevision[\"meta\"], \"version\" | \"status\">;\n}\n\nconst defaultRevisions: CmsEntryRevision[] = [\n {\n id: \"new\",\n meta: {\n version: 1,\n status: \"draft\"\n }\n }\n];\n\nexport const RevisionSelector = () => {\n const { goToRoute } = useRouter();\n const { route } = useRoute(Routes.ContentEntries.List);\n\n const { entry, revisions, loading } = useContentEntry();\n\n const currentRevision = {\n version: get(entry, \"meta.version\", 1) as number,\n status: get(entry, \"meta.status\", \"draft\") as CmsContentEntryRevision[\"meta\"][\"status\"]\n };\n\n const allRevisions = revisions.length ? revisions : defaultRevisions;\n\n return (\n <DropdownMenu\n trigger={\n <Button\n variant={\"ghost\"}\n disabled={loading}\n icon={<DownButton />}\n iconPosition={\"end\"}\n text={\n <>\n v{currentRevision.version} ({statusLabels[currentRevision.status]})\n </>\n }\n />\n }\n >\n {allRevisions.map(revision => (\n <DropdownMenu.Item\n key={revision.id}\n onClick={() => {\n goToRoute(Routes.ContentEntries.List, {\n ...route.params,\n id: revision.id\n });\n }}\n text={\n <>\n <Text as={\"div\"}>v{revision.meta.version}</Text>\n <Text size={\"sm\"}>({statusLabels[revision.meta.status]})</Text>\n </>\n }\n />\n ))}\n </DropdownMenu>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,GAAG,MAAM,eAAe;AAC/B,SAASC,QAAQ,EAAEC,SAAS,QAAQ,mBAAmB;AACvD,SAASC,MAAM,EAAEC,YAAY,EAAEC,IAAI,QAAQ,kBAAkB;AAC7D,SAASC,cAAc,IAAIC,UAAU,QAAQ,uCAAuC;AACpF,SAASC,eAAe;AACxB,SAASC,QAAQ,IAAIC,YAAY;AAEjC,SAASC,MAAM;AAMf,MAAMC,gBAAoC,GAAG,CACzC;EACIC,EAAE,EAAE,KAAK;EACTC,IAAI,EAAE;IACFC,OAAO,EAAE,CAAC;IACVC,MAAM,EAAE;EACZ;AACJ,CAAC,CACJ;AAED,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EAClC,MAAM;IAAEC;EAAU,CAAC,GAAGhB,SAAS,CAAC,CAAC;EACjC,MAAM;IAAEiB;EAAM,CAAC,GAAGlB,QAAQ,CAACU,MAAM,CAACS,cAAc,CAACC,IAAI,CAAC;EAEtD,MAAM;IAAEC,KAAK;IAAEC,SAAS;IAAEC;EAAQ,CAAC,GAAGhB,eAAe,CAAC,CAAC;EAEvD,MAAMiB,eAAe,GAAG;IACpBV,OAAO,EAAEf,GAAG,CAACsB,KAAK,EAAE,cAAc,EAAE,CAAC,CAAW;IAChDN,MAAM,EAAEhB,GAAG,CAACsB,KAAK,EAAE,aAAa,EAAE,OAAO;EAC7C,CAAC;EAED,MAAMI,YAAY,GAAGH,SAAS,CAACI,MAAM,GAAGJ,SAAS,GAAGX,gBAAgB;EAEpE,oBACIb,KAAA,CAAA6B,aAAA,CAACxB,YAAY;IACTyB,OAAO,eACH9B,KAAA,CAAA6B,aAAA,CAACzB,MAAM;MACH2B,OAAO,EAAE,OAAQ;MACjBC,QAAQ,EAAEP,OAAQ;MAClBQ,IAAI,eAAEjC,KAAA,CAAA6B,aAAA,CAACrB,UAAU,MAAE,CAAE;MACrB0B,YAAY,EAAE,KAAM;MACpBC,IAAI,eACAnC,KAAA,CAAA6B,aAAA,CAAA7B,KAAA,CAAAoC,QAAA,QAAE,GACG,EAACV,eAAe,CAACV,OAAO,EAAC,IAAE,EAACL,YAAY,CAACe,eAAe,CAACT,MAAM,CAAC,EAAC,GACpE;IACL,CACJ;EACJ,GAEAU,YAAY,CAACU,GAAG,CAACC,QAAQ,iBACtBtC,KAAA,CAAA6B,aAAA,CAACxB,YAAY,CAACkC,IAAI;IACdC,GAAG,EAAEF,QAAQ,CAACxB,EAAG;IACjB2B,OAAO,EAAEA,CAAA,KAAM;MACXtB,SAAS,CAACP,MAAM,CAACS,cAAc,CAACC,IAAI,EAAE;QAClC,GAAGF,KAAK,CAACsB,MAAM;QACf5B,EAAE,EAAEwB,QAAQ,CAACxB;MACjB,CAAC,CAAC;IACN,CAAE;IACFqB,IAAI,eACAnC,KAAA,CAAA6B,aAAA,CAAA7B,KAAA,CAAAoC,QAAA,qBACIpC,KAAA,CAAA6B,aAAA,CAACvB,IAAI;MAACqC,EAAE,EAAE;IAAM,GAAC,GAAC,EAACL,QAAQ,CAACvB,IAAI,CAACC,OAAc,CAAC,eAChDhB,KAAA,CAAA6B,aAAA,CAACvB,IAAI;MAACsC,IAAI,EAAE;IAAK,GAAC,GAAC,EAACjC,YAAY,CAAC2B,QAAQ,CAACvB,IAAI,CAACE,MAAM,CAAC,EAAC,GAAO,CAChE;EACL,CACJ,CACJ,CACS,CAAC;AAEvB,CAAC","ignoreList":[]}
@@ -1,5 +1,10 @@
1
1
  import React, { useMemo } from "react";
2
2
  import { config as appConfig } from "@webiny/app/config.js";
3
+ import { useFeature } from "@webiny/app";
4
+ import { EventPublisherFeature } from "@webiny/app/features/eventPublisher/index.js";
5
+ import { EntryAfterCreateEvent } from "../../../features/contentEntry/events/EntryAfterCreateEvent.js";
6
+ import { EntryAfterUpdateEvent } from "../../../features/contentEntry/events/EntryAfterUpdateEvent.js";
7
+ import { EntryAfterDeleteEvent } from "../../../features/contentEntry/events/EntryAfterDeleteEvent.js";
3
8
  import { createBulkActionMutation, createCreateFromMutation, createCreateMutation, createDeleteMutation, createPublishMutation, createReadQuery, createReadSingletonQuery, createRevisionsQuery, createUnpublishMutation, createUpdateMutation, createUpdateSingletonMutation } from "@webiny/app-headless-cms-common";
4
9
  import { getFetchPolicy } from "../../../utils/getFetchPolicy.js";
5
10
  const defaultErrorMessage = "The system wasn't able to save the current entry. Please contact your support team to help you resolve this issue.";
@@ -32,6 +37,9 @@ export const CmsProvider = props => {
32
37
  uri: `${apiUrl}/cms/manage`
33
38
  });
34
39
  }, []);
40
+ const {
41
+ eventPublisher
42
+ } = useFeature(EventPublisherFeature);
35
43
  const value = {
36
44
  createApolloClient: props.createApolloClient,
37
45
  apolloClient,
@@ -172,8 +180,15 @@ export const CmsProvider = props => {
172
180
  error
173
181
  };
174
182
  }
183
+ const createdEntry = data;
184
+ await eventPublisher.publish(new EntryAfterCreateEvent({
185
+ entry: createdEntry,
186
+ model
187
+ })).catch(e => {
188
+ console.error("[CmsProvider] Failed to publish EntryAfterCreateEvent", e);
189
+ });
175
190
  return {
176
- entry: data
191
+ entry: createdEntry
177
192
  };
178
193
  },
179
194
  createEntryRevisionFrom: async ({
@@ -257,8 +272,15 @@ export const CmsProvider = props => {
257
272
  error
258
273
  };
259
274
  }
275
+ const updatedEntry = data;
276
+ await eventPublisher.publish(new EntryAfterUpdateEvent({
277
+ entry: updatedEntry,
278
+ model
279
+ })).catch(e => {
280
+ console.error("[CmsProvider] Failed to publish EntryAfterUpdateEvent", e);
281
+ });
260
282
  return {
261
- entry: data
283
+ entry: updatedEntry
262
284
  };
263
285
  },
264
286
  updateSingletonEntry: async ({
@@ -413,6 +435,14 @@ export const CmsProvider = props => {
413
435
  error
414
436
  };
415
437
  }
438
+ const entryId = id.split("#")[0];
439
+ await eventPublisher.publish(new EntryAfterDeleteEvent({
440
+ model,
441
+ id,
442
+ entryId
443
+ })).catch(e => {
444
+ console.error("[CmsProvider] Failed to publish EntryAfterDeleteEvent", e);
445
+ });
416
446
  return true;
417
447
  },
418
448
  bulkAction: async ({
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","config","appConfig","createBulkActionMutation","createCreateFromMutation","createCreateMutation","createDeleteMutation","createPublishMutation","createReadQuery","createReadSingletonQuery","createRevisionsQuery","createUnpublishMutation","createUpdateMutation","createUpdateSingletonMutation","getFetchPolicy","defaultErrorMessage","catchErrorOnExecute","cb","options","ex","data","content","error","message","code","stack","CmsContext","createContext","undefined","CmsProvider","props","apiUrl","getKey","process","env","REACT_APP_API_URL","apolloClient","createApolloClient","uri","value","getEntry","model","id","query","isRevisionId","includes","response","variables","revision","entryId","fetchPolicy","entry","listEntryRevisions","revisions","getSingletonEntry","createEntry","mutation","mutate","createEntryRevisionFrom","input","updateEntryRevision","updateSingletonEntry","publishEntryRevision","unpublishEntryRevision","deleteEntry","permanently","bulkAction","action","where","search","responseData","createElement","Provider","Object","assign"],"sources":["index.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport type ApolloClient from \"apollo-client\";\nimport { config as appConfig } from \"@webiny/app/config.js\";\nimport type {\n CmsContentEntry,\n CmsContentEntryRevision,\n CmsErrorResponse,\n CmsModel\n} from \"~/types.js\";\nimport type {\n CmsEntriesListRevisionsQueryResponse,\n CmsEntriesListRevisionsQueryVariables,\n CmsEntryBulkActionMutationResponse,\n CmsEntryBulkActionMutationVariables,\n CmsEntryCreateFromMutationResponse,\n CmsEntryCreateFromMutationVariables,\n CmsEntryCreateMutationResponse,\n CmsEntryCreateMutationVariables,\n CmsEntryDeleteMutationResponse,\n CmsEntryDeleteMutationVariables,\n CmsEntryGetQueryResponse,\n CmsEntryGetQueryVariables,\n CmsEntryGetSingletonQueryResponse,\n CmsEntryPublishMutationResponse,\n CmsEntryPublishMutationVariables,\n CmsEntryUnpublishMutationResponse,\n CmsEntryUnpublishMutationVariables,\n CmsEntryUpdateMutationResponse,\n CmsEntryUpdateMutationVariables,\n CmsEntryUpdateSingletonMutationResponse,\n CmsEntryUpdateSingletonMutationVariables\n} from \"@webiny/app-headless-cms-common\";\nimport {\n createBulkActionMutation,\n createCreateFromMutation,\n createCreateMutation,\n createDeleteMutation,\n createPublishMutation,\n createReadQuery,\n createReadSingletonQuery,\n createRevisionsQuery,\n createUnpublishMutation,\n createUpdateMutation,\n createUpdateSingletonMutation\n} from \"@webiny/app-headless-cms-common\";\nimport { getFetchPolicy } from \"~/utils/getFetchPolicy.js\";\n\nexport interface EntryError {\n message: string;\n code?: string;\n data?: any;\n}\n\nexport interface OperationSuccess {\n entry: CmsContentEntry;\n error?: never;\n}\n\nexport interface OperationError {\n entry?: never;\n error: EntryError;\n}\n\nexport interface BulkActionOperationSuccess {\n id: string;\n error?: never;\n}\n\ninterface ListEntryRevisionsOperationSuccess {\n revisions: CmsContentEntryRevision[];\n error?: never;\n}\n\nexport type PartialCmsContentEntryWithId = Partial<CmsContentEntry> & { id: string };\nexport type GetEntryResponse = OperationSuccess | OperationError;\nexport type ListEntryRevisionsResponse = ListEntryRevisionsOperationSuccess | OperationError;\nexport type CreateEntryResponse = OperationSuccess | OperationError;\nexport type CreateEntryRevisionFromResponse = OperationSuccess | OperationError;\nexport type UpdateEntryRevisionResponse = OperationSuccess | OperationError;\nexport type DeleteEntryResponse = boolean | OperationError;\nexport type PublishEntryRevisionResponse = OperationSuccess | OperationError;\nexport type UnpublishEntryRevisionResponse = OperationSuccess | OperationError;\nexport type BulkActionResponse = BulkActionOperationSuccess | OperationError;\n\nexport interface CreateEntryParams {\n model: CmsModel;\n entry: Partial<CmsContentEntry>;\n options?: {\n skipValidators?: string[];\n };\n}\n\nexport interface CreateEntryRevisionFromParams {\n model: CmsModel;\n id: string;\n input?: Record<string, any>;\n options?: {\n skipValidators?: string[];\n };\n}\n\nexport interface UpdateEntryRevisionParams {\n model: CmsModel;\n entry: PartialCmsContentEntryWithId;\n options?: {\n skipValidators?: string[];\n };\n}\n\nexport interface UpdateSingletonEntryParams {\n model: CmsModel;\n entry: PartialCmsContentEntryWithId;\n options?: {\n skipValidators?: string[];\n };\n}\n\nexport interface PublishEntryRevisionParams {\n model: CmsModel;\n id: string;\n}\n\nexport interface DeleteEntryParams {\n model: CmsModel;\n id: string;\n}\n\nexport interface UnpublishEntryRevisionParams {\n model: CmsModel;\n id: string;\n}\n\nexport interface GetEntryParams {\n model: CmsModel;\n id: string;\n}\n\nexport interface ListEntryRevisionParams {\n model: CmsModel;\n id: string;\n}\n\nexport interface GetSingletonEntryParams {\n model: CmsModel;\n}\n\nexport interface BulkActionParams {\n model: CmsModel;\n action: string;\n where?: Record<string, any>;\n search?: string;\n data?: Record<string, any>;\n}\n\ninterface ICatchErrorOnExecuteOptions {\n message?: string;\n}\n\nconst defaultErrorMessage =\n \"The system wasn't able to save the current entry. Please contact your support team to help you resolve this issue.\";\n\nconst catchErrorOnExecute = async <T = any,>(\n cb: () => Promise<T>,\n options?: ICatchErrorOnExecuteOptions\n) => {\n try {\n return await cb();\n } catch (ex) {\n return {\n data: {\n content: {\n data: null,\n error: {\n message: options?.message || defaultErrorMessage,\n code: ex.code,\n stack: ex.stack,\n data: {\n ...ex.data\n }\n }\n }\n }\n };\n }\n};\n\nexport interface CmsContext {\n createApolloClient: CmsProviderProps[\"createApolloClient\"];\n apolloClient: ApolloClient<any>;\n getEntry: (params: GetEntryParams) => Promise<GetEntryResponse>;\n listEntryRevisions: (params: ListEntryRevisionParams) => Promise<ListEntryRevisionsResponse>;\n getSingletonEntry: (params: GetSingletonEntryParams) => Promise<GetEntryResponse>;\n createEntry: (params: CreateEntryParams) => Promise<CreateEntryResponse>;\n createEntryRevisionFrom: (\n params: CreateEntryRevisionFromParams\n ) => Promise<CreateEntryRevisionFromResponse>;\n updateSingletonEntry: (\n params: UpdateSingletonEntryParams\n ) => Promise<UpdateEntryRevisionResponse>;\n updateEntryRevision: (\n params: UpdateEntryRevisionParams\n ) => Promise<UpdateEntryRevisionResponse>;\n publishEntryRevision: (\n params: PublishEntryRevisionParams\n ) => Promise<PublishEntryRevisionResponse>;\n unpublishEntryRevision: (\n params: UnpublishEntryRevisionParams\n ) => Promise<UnpublishEntryRevisionResponse>;\n deleteEntry: (params: DeleteEntryParams) => Promise<DeleteEntryResponse>;\n bulkAction: (params: BulkActionParams) => Promise<BulkActionResponse>;\n}\n\nexport const CmsContext = React.createContext<CmsContext | undefined>(undefined);\n\nexport interface CmsProviderProps {\n createApolloClient: (params: { uri: string }) => ApolloClient<any>;\n children: React.ReactNode;\n}\n\nexport const CmsProvider = (props: CmsProviderProps) => {\n const apiUrl = appConfig.getKey(\"API_URL\", process.env.REACT_APP_API_URL);\n const apolloClient = useMemo(() => {\n return props.createApolloClient({ uri: `${apiUrl}/cms/manage` });\n }, []);\n\n const value: CmsContext = {\n createApolloClient: props.createApolloClient,\n apolloClient,\n getEntry: async ({ model, id }) => {\n const query = createReadQuery(model);\n const isRevisionId = id.includes(\"#\");\n\n const response = await value.apolloClient.query<\n CmsEntryGetQueryResponse,\n CmsEntryGetQueryVariables\n >({\n query,\n variables: isRevisionId ? { revision: id } : { entryId: id },\n fetchPolicy: getFetchPolicy(model)\n });\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on getEntry query.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n const { data, error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n return {\n entry: data as CmsContentEntry\n };\n },\n listEntryRevisions: async ({ model, id }) => {\n const query = createRevisionsQuery(model);\n\n const response = await value.apolloClient.query<\n CmsEntriesListRevisionsQueryResponse,\n CmsEntriesListRevisionsQueryVariables\n >({\n query,\n variables: { id },\n fetchPolicy: \"network-only\"\n });\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on getRevisions query.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n const { data, error } = response.data.revisions;\n\n if (error) {\n return { error };\n }\n\n return {\n revisions: data as CmsContentEntryRevision[]\n };\n },\n getSingletonEntry: async ({ model }) => {\n const query = createReadSingletonQuery(model);\n\n const response = await value.apolloClient.query<CmsEntryGetSingletonQueryResponse>({\n query,\n fetchPolicy: getFetchPolicy(model)\n });\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on getSingletonEntry query.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n const { data, error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n return {\n entry: data as CmsContentEntry\n };\n },\n createEntry: async ({ model, entry, options }) => {\n const mutation = createCreateMutation(model);\n const response = await catchErrorOnExecute(\n () => {\n return value.apolloClient.mutate<\n CmsEntryCreateMutationResponse,\n CmsEntryCreateMutationVariables\n >({\n mutation,\n variables: {\n data: entry,\n options\n },\n fetchPolicy: getFetchPolicy(model)\n });\n },\n {\n message:\n \"The system wasn't able to create a new entry. Please contact your support team to help you resolve this issue.\"\n }\n );\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on Create Entry mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n const { data, error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n return {\n entry: data as CmsContentEntry\n };\n },\n createEntryRevisionFrom: async ({ model, id, input, options }) => {\n const mutation = createCreateFromMutation(model);\n const response = await catchErrorOnExecute(\n async () => {\n return value.apolloClient.mutate<\n CmsEntryCreateFromMutationResponse,\n CmsEntryCreateFromMutationVariables\n >({\n mutation,\n variables: {\n revision: id,\n data: input,\n options\n },\n fetchPolicy: getFetchPolicy(model)\n });\n },\n {\n message:\n \"The system wasn't able to create a new revision of the entry. Please contact your support team to help you resolve this issue.\"\n }\n );\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on Create Entry mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n const { data, error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n return {\n entry: data as CmsContentEntry\n };\n },\n updateEntryRevision: async ({ model, entry, options }) => {\n const mutation = createUpdateMutation(model);\n const { id, ...input } = entry;\n const response = await catchErrorOnExecute(() => {\n return value.apolloClient.mutate<\n CmsEntryUpdateMutationResponse,\n CmsEntryUpdateMutationVariables\n >({\n mutation,\n variables: {\n revision: id,\n data: input,\n options\n },\n fetchPolicy: getFetchPolicy(model)\n });\n });\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on Update Entry mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n const { data, error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n return {\n entry: data as CmsContentEntry\n };\n },\n updateSingletonEntry: async ({ model, entry, options }) => {\n const mutation = createUpdateSingletonMutation(model);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { id, ...input } = entry;\n const response = await catchErrorOnExecute(() => {\n return value.apolloClient.mutate<\n CmsEntryUpdateSingletonMutationResponse,\n CmsEntryUpdateSingletonMutationVariables\n >({\n mutation,\n variables: {\n data: input,\n options\n },\n fetchPolicy: getFetchPolicy(model)\n });\n });\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on updateSingletonEntry mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n const { data, error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n return {\n entry: data as CmsContentEntry\n };\n },\n publishEntryRevision: async ({ model, id }) => {\n const mutation = createPublishMutation(model);\n const response = await catchErrorOnExecute(\n () => {\n return value.apolloClient.mutate<\n CmsEntryPublishMutationResponse,\n CmsEntryPublishMutationVariables\n >({\n mutation,\n variables: {\n revision: id\n }\n });\n },\n {\n message:\n \"The system wasn't able to publish the current entry. Please contact your support team to help you resolve this issue.\"\n }\n );\n\n if (!response.data) {\n const error: CmsErrorResponse = {\n message: \"Missing response data on Publish Entry mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n };\n return { error };\n }\n\n const { data, error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n return {\n entry: data as CmsContentEntry\n };\n },\n unpublishEntryRevision: async ({ model, id }) => {\n const mutation = createUnpublishMutation(model);\n\n const response = await catchErrorOnExecute(\n () => {\n return value.apolloClient.mutate<\n CmsEntryUnpublishMutationResponse,\n CmsEntryUnpublishMutationVariables\n >({\n mutation,\n variables: {\n revision: id\n }\n });\n },\n {\n message:\n \"The system wasn't able to unpublish the current entry. Please contact your support team to help you resolve this issue.\"\n }\n );\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on Unpublish Entry mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n const { data, error } = response.data.content;\n if (error) {\n return {\n error\n };\n }\n\n return {\n entry: data as CmsContentEntry\n };\n },\n deleteEntry: async ({ model, id }) => {\n const mutation = createDeleteMutation(model);\n const response = await catchErrorOnExecute(\n () => {\n return value.apolloClient.mutate<\n CmsEntryDeleteMutationResponse,\n CmsEntryDeleteMutationVariables\n >({\n mutation,\n variables: {\n revision: id,\n permanently: false\n }\n });\n },\n {\n message:\n \"The system wasn't able to delete the current entry. Please contact your support team to help you resolve this issue.\"\n }\n );\n\n if (!response.data) {\n const error: CmsErrorResponse = {\n message: \"Missing response data on Delete Entry mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n };\n return { error };\n }\n\n const { error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n return true;\n },\n bulkAction: async ({ model, action, where, search, data }) => {\n const mutation = createBulkActionMutation(model);\n const response = await catchErrorOnExecute(\n () => {\n return value.apolloClient.mutate<\n CmsEntryBulkActionMutationResponse,\n CmsEntryBulkActionMutationVariables\n >({\n mutation,\n variables: {\n action,\n where,\n search,\n data\n }\n });\n },\n {\n message:\n \"The system wasn't able to perform the bulk action. Please contact your support team to help you resolve this issue.\"\n }\n );\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on Bulk Action mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n const { data: responseData, error } = response.data.content;\n\n if (error) {\n return {\n error\n };\n }\n\n if (!responseData) {\n return {\n error: {\n message: \"Missing response data on Bulk Action mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n return responseData;\n }\n };\n\n return <CmsContext.Provider value={value} {...props} />;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useMemo","config","appConfig","useFeature","EventPublisherFeature","EntryAfterCreateEvent","EntryAfterUpdateEvent","EntryAfterDeleteEvent","createBulkActionMutation","createCreateFromMutation","createCreateMutation","createDeleteMutation","createPublishMutation","createReadQuery","createReadSingletonQuery","createRevisionsQuery","createUnpublishMutation","createUpdateMutation","createUpdateSingletonMutation","getFetchPolicy","defaultErrorMessage","catchErrorOnExecute","cb","options","ex","data","content","error","message","code","stack","CmsContext","createContext","undefined","CmsProvider","props","apiUrl","getKey","process","env","REACT_APP_API_URL","apolloClient","createApolloClient","uri","eventPublisher","value","getEntry","model","id","query","isRevisionId","includes","response","variables","revision","entryId","fetchPolicy","entry","listEntryRevisions","revisions","getSingletonEntry","createEntry","mutation","mutate","createdEntry","publish","catch","e","console","createEntryRevisionFrom","input","updateEntryRevision","updatedEntry","updateSingletonEntry","publishEntryRevision","unpublishEntryRevision","deleteEntry","permanently","split","bulkAction","action","where","search","responseData","createElement","Provider","Object","assign"],"sources":["index.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport type ApolloClient from \"apollo-client\";\nimport { config as appConfig } from \"@webiny/app/config.js\";\nimport { useFeature } from \"@webiny/app\";\nimport { EventPublisherFeature } from \"@webiny/app/features/eventPublisher/index.js\";\nimport { EntryAfterCreateEvent } from \"~/features/contentEntry/events/EntryAfterCreateEvent.js\";\nimport { EntryAfterUpdateEvent } from \"~/features/contentEntry/events/EntryAfterUpdateEvent.js\";\nimport { EntryAfterDeleteEvent } from \"~/features/contentEntry/events/EntryAfterDeleteEvent.js\";\nimport type {\n CmsContentEntry,\n CmsContentEntryRevision,\n CmsErrorResponse,\n CmsModel\n} from \"~/types.js\";\nimport type {\n CmsEntriesListRevisionsQueryResponse,\n CmsEntriesListRevisionsQueryVariables,\n CmsEntryBulkActionMutationResponse,\n CmsEntryBulkActionMutationVariables,\n CmsEntryCreateFromMutationResponse,\n CmsEntryCreateFromMutationVariables,\n CmsEntryCreateMutationResponse,\n CmsEntryCreateMutationVariables,\n CmsEntryDeleteMutationResponse,\n CmsEntryDeleteMutationVariables,\n CmsEntryGetQueryResponse,\n CmsEntryGetQueryVariables,\n CmsEntryGetSingletonQueryResponse,\n CmsEntryPublishMutationResponse,\n CmsEntryPublishMutationVariables,\n CmsEntryUnpublishMutationResponse,\n CmsEntryUnpublishMutationVariables,\n CmsEntryUpdateMutationResponse,\n CmsEntryUpdateMutationVariables,\n CmsEntryUpdateSingletonMutationResponse,\n CmsEntryUpdateSingletonMutationVariables\n} from \"@webiny/app-headless-cms-common\";\nimport {\n createBulkActionMutation,\n createCreateFromMutation,\n createCreateMutation,\n createDeleteMutation,\n createPublishMutation,\n createReadQuery,\n createReadSingletonQuery,\n createRevisionsQuery,\n createUnpublishMutation,\n createUpdateMutation,\n createUpdateSingletonMutation\n} from \"@webiny/app-headless-cms-common\";\nimport { getFetchPolicy } from \"~/utils/getFetchPolicy.js\";\n\nexport interface EntryError {\n message: string;\n code?: string;\n data?: any;\n}\n\nexport interface OperationSuccess {\n entry: CmsContentEntry;\n error?: never;\n}\n\nexport interface OperationError {\n entry?: never;\n error: EntryError;\n}\n\nexport interface BulkActionOperationSuccess {\n id: string;\n error?: never;\n}\n\ninterface ListEntryRevisionsOperationSuccess {\n revisions: CmsContentEntryRevision[];\n error?: never;\n}\n\nexport type PartialCmsContentEntryWithId = Partial<CmsContentEntry> & { id: string };\nexport type GetEntryResponse = OperationSuccess | OperationError;\nexport type ListEntryRevisionsResponse = ListEntryRevisionsOperationSuccess | OperationError;\nexport type CreateEntryResponse = OperationSuccess | OperationError;\nexport type CreateEntryRevisionFromResponse = OperationSuccess | OperationError;\nexport type UpdateEntryRevisionResponse = OperationSuccess | OperationError;\nexport type DeleteEntryResponse = boolean | OperationError;\nexport type PublishEntryRevisionResponse = OperationSuccess | OperationError;\nexport type UnpublishEntryRevisionResponse = OperationSuccess | OperationError;\nexport type BulkActionResponse = BulkActionOperationSuccess | OperationError;\n\nexport interface CreateEntryParams {\n model: CmsModel;\n entry: Partial<CmsContentEntry>;\n options?: {\n skipValidators?: string[];\n };\n}\n\nexport interface CreateEntryRevisionFromParams {\n model: CmsModel;\n id: string;\n input?: Record<string, any>;\n options?: {\n skipValidators?: string[];\n };\n}\n\nexport interface UpdateEntryRevisionParams {\n model: CmsModel;\n entry: PartialCmsContentEntryWithId;\n options?: {\n skipValidators?: string[];\n };\n}\n\nexport interface UpdateSingletonEntryParams {\n model: CmsModel;\n entry: PartialCmsContentEntryWithId;\n options?: {\n skipValidators?: string[];\n };\n}\n\nexport interface PublishEntryRevisionParams {\n model: CmsModel;\n id: string;\n}\n\nexport interface DeleteEntryParams {\n model: CmsModel;\n id: string;\n}\n\nexport interface UnpublishEntryRevisionParams {\n model: CmsModel;\n id: string;\n}\n\nexport interface GetEntryParams {\n model: CmsModel;\n id: string;\n}\n\nexport interface ListEntryRevisionParams {\n model: CmsModel;\n id: string;\n}\n\nexport interface GetSingletonEntryParams {\n model: CmsModel;\n}\n\nexport interface BulkActionParams {\n model: CmsModel;\n action: string;\n where?: Record<string, any>;\n search?: string;\n data?: Record<string, any>;\n}\n\ninterface ICatchErrorOnExecuteOptions {\n message?: string;\n}\n\nconst defaultErrorMessage =\n \"The system wasn't able to save the current entry. Please contact your support team to help you resolve this issue.\";\n\nconst catchErrorOnExecute = async <T = any,>(\n cb: () => Promise<T>,\n options?: ICatchErrorOnExecuteOptions\n) => {\n try {\n return await cb();\n } catch (ex) {\n return {\n data: {\n content: {\n data: null,\n error: {\n message: options?.message || defaultErrorMessage,\n code: ex.code,\n stack: ex.stack,\n data: {\n ...ex.data\n }\n }\n }\n }\n };\n }\n};\n\nexport interface CmsContext {\n createApolloClient: CmsProviderProps[\"createApolloClient\"];\n apolloClient: ApolloClient<any>;\n getEntry: (params: GetEntryParams) => Promise<GetEntryResponse>;\n listEntryRevisions: (params: ListEntryRevisionParams) => Promise<ListEntryRevisionsResponse>;\n getSingletonEntry: (params: GetSingletonEntryParams) => Promise<GetEntryResponse>;\n createEntry: (params: CreateEntryParams) => Promise<CreateEntryResponse>;\n createEntryRevisionFrom: (\n params: CreateEntryRevisionFromParams\n ) => Promise<CreateEntryRevisionFromResponse>;\n updateSingletonEntry: (\n params: UpdateSingletonEntryParams\n ) => Promise<UpdateEntryRevisionResponse>;\n updateEntryRevision: (\n params: UpdateEntryRevisionParams\n ) => Promise<UpdateEntryRevisionResponse>;\n publishEntryRevision: (\n params: PublishEntryRevisionParams\n ) => Promise<PublishEntryRevisionResponse>;\n unpublishEntryRevision: (\n params: UnpublishEntryRevisionParams\n ) => Promise<UnpublishEntryRevisionResponse>;\n deleteEntry: (params: DeleteEntryParams) => Promise<DeleteEntryResponse>;\n bulkAction: (params: BulkActionParams) => Promise<BulkActionResponse>;\n}\n\nexport const CmsContext = React.createContext<CmsContext | undefined>(undefined);\n\nexport interface CmsProviderProps {\n createApolloClient: (params: { uri: string }) => ApolloClient<any>;\n children: React.ReactNode;\n}\n\nexport const CmsProvider = (props: CmsProviderProps) => {\n const apiUrl = appConfig.getKey(\"API_URL\", process.env.REACT_APP_API_URL);\n const apolloClient = useMemo(() => {\n return props.createApolloClient({ uri: `${apiUrl}/cms/manage` });\n }, []);\n const { eventPublisher } = useFeature(EventPublisherFeature);\n\n const value: CmsContext = {\n createApolloClient: props.createApolloClient,\n apolloClient,\n getEntry: async ({ model, id }) => {\n const query = createReadQuery(model);\n const isRevisionId = id.includes(\"#\");\n\n const response = await value.apolloClient.query<\n CmsEntryGetQueryResponse,\n CmsEntryGetQueryVariables\n >({\n query,\n variables: isRevisionId ? { revision: id } : { entryId: id },\n fetchPolicy: getFetchPolicy(model)\n });\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on getEntry query.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n const { data, error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n return {\n entry: data as CmsContentEntry\n };\n },\n listEntryRevisions: async ({ model, id }) => {\n const query = createRevisionsQuery(model);\n\n const response = await value.apolloClient.query<\n CmsEntriesListRevisionsQueryResponse,\n CmsEntriesListRevisionsQueryVariables\n >({\n query,\n variables: { id },\n fetchPolicy: \"network-only\"\n });\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on getRevisions query.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n const { data, error } = response.data.revisions;\n\n if (error) {\n return { error };\n }\n\n return {\n revisions: data as CmsContentEntryRevision[]\n };\n },\n getSingletonEntry: async ({ model }) => {\n const query = createReadSingletonQuery(model);\n\n const response = await value.apolloClient.query<CmsEntryGetSingletonQueryResponse>({\n query,\n fetchPolicy: getFetchPolicy(model)\n });\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on getSingletonEntry query.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n const { data, error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n return {\n entry: data as CmsContentEntry\n };\n },\n createEntry: async ({ model, entry, options }) => {\n const mutation = createCreateMutation(model);\n const response = await catchErrorOnExecute(\n () => {\n return value.apolloClient.mutate<\n CmsEntryCreateMutationResponse,\n CmsEntryCreateMutationVariables\n >({\n mutation,\n variables: {\n data: entry,\n options\n },\n fetchPolicy: getFetchPolicy(model)\n });\n },\n {\n message:\n \"The system wasn't able to create a new entry. Please contact your support team to help you resolve this issue.\"\n }\n );\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on Create Entry mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n const { data, error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n const createdEntry = data as CmsContentEntry;\n\n await eventPublisher\n .publish(new EntryAfterCreateEvent({ entry: createdEntry, model }))\n .catch(e => {\n console.error(\"[CmsProvider] Failed to publish EntryAfterCreateEvent\", e);\n });\n\n return {\n entry: createdEntry\n };\n },\n createEntryRevisionFrom: async ({ model, id, input, options }) => {\n const mutation = createCreateFromMutation(model);\n const response = await catchErrorOnExecute(\n async () => {\n return value.apolloClient.mutate<\n CmsEntryCreateFromMutationResponse,\n CmsEntryCreateFromMutationVariables\n >({\n mutation,\n variables: {\n revision: id,\n data: input,\n options\n },\n fetchPolicy: getFetchPolicy(model)\n });\n },\n {\n message:\n \"The system wasn't able to create a new revision of the entry. Please contact your support team to help you resolve this issue.\"\n }\n );\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on Create Entry mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n const { data, error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n return {\n entry: data as CmsContentEntry\n };\n },\n updateEntryRevision: async ({ model, entry, options }) => {\n const mutation = createUpdateMutation(model);\n const { id, ...input } = entry;\n const response = await catchErrorOnExecute(() => {\n return value.apolloClient.mutate<\n CmsEntryUpdateMutationResponse,\n CmsEntryUpdateMutationVariables\n >({\n mutation,\n variables: {\n revision: id,\n data: input,\n options\n },\n fetchPolicy: getFetchPolicy(model)\n });\n });\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on Update Entry mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n const { data, error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n const updatedEntry = data as CmsContentEntry;\n\n await eventPublisher\n .publish(new EntryAfterUpdateEvent({ entry: updatedEntry, model }))\n .catch(e => {\n console.error(\"[CmsProvider] Failed to publish EntryAfterUpdateEvent\", e);\n });\n\n return {\n entry: updatedEntry\n };\n },\n updateSingletonEntry: async ({ model, entry, options }) => {\n const mutation = createUpdateSingletonMutation(model);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { id, ...input } = entry;\n const response = await catchErrorOnExecute(() => {\n return value.apolloClient.mutate<\n CmsEntryUpdateSingletonMutationResponse,\n CmsEntryUpdateSingletonMutationVariables\n >({\n mutation,\n variables: {\n data: input,\n options\n },\n fetchPolicy: getFetchPolicy(model)\n });\n });\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on updateSingletonEntry mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n const { data, error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n return {\n entry: data as CmsContentEntry\n };\n },\n publishEntryRevision: async ({ model, id }) => {\n const mutation = createPublishMutation(model);\n const response = await catchErrorOnExecute(\n () => {\n return value.apolloClient.mutate<\n CmsEntryPublishMutationResponse,\n CmsEntryPublishMutationVariables\n >({\n mutation,\n variables: {\n revision: id\n }\n });\n },\n {\n message:\n \"The system wasn't able to publish the current entry. Please contact your support team to help you resolve this issue.\"\n }\n );\n\n if (!response.data) {\n const error: CmsErrorResponse = {\n message: \"Missing response data on Publish Entry mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n };\n return { error };\n }\n\n const { data, error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n return {\n entry: data as CmsContentEntry\n };\n },\n unpublishEntryRevision: async ({ model, id }) => {\n const mutation = createUnpublishMutation(model);\n\n const response = await catchErrorOnExecute(\n () => {\n return value.apolloClient.mutate<\n CmsEntryUnpublishMutationResponse,\n CmsEntryUnpublishMutationVariables\n >({\n mutation,\n variables: {\n revision: id\n }\n });\n },\n {\n message:\n \"The system wasn't able to unpublish the current entry. Please contact your support team to help you resolve this issue.\"\n }\n );\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on Unpublish Entry mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n const { data, error } = response.data.content;\n if (error) {\n return {\n error\n };\n }\n\n return {\n entry: data as CmsContentEntry\n };\n },\n deleteEntry: async ({ model, id }) => {\n const mutation = createDeleteMutation(model);\n const response = await catchErrorOnExecute(\n () => {\n return value.apolloClient.mutate<\n CmsEntryDeleteMutationResponse,\n CmsEntryDeleteMutationVariables\n >({\n mutation,\n variables: {\n revision: id,\n permanently: false\n }\n });\n },\n {\n message:\n \"The system wasn't able to delete the current entry. Please contact your support team to help you resolve this issue.\"\n }\n );\n\n if (!response.data) {\n const error: CmsErrorResponse = {\n message: \"Missing response data on Delete Entry mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n };\n return { error };\n }\n\n const { error } = response.data.content;\n\n if (error) {\n return { error };\n }\n\n const entryId = id.split(\"#\")[0];\n await eventPublisher\n .publish(new EntryAfterDeleteEvent({ model, id, entryId }))\n .catch(e => {\n console.error(\"[CmsProvider] Failed to publish EntryAfterDeleteEvent\", e);\n });\n\n return true;\n },\n bulkAction: async ({ model, action, where, search, data }) => {\n const mutation = createBulkActionMutation(model);\n const response = await catchErrorOnExecute(\n () => {\n return value.apolloClient.mutate<\n CmsEntryBulkActionMutationResponse,\n CmsEntryBulkActionMutationVariables\n >({\n mutation,\n variables: {\n action,\n where,\n search,\n data\n }\n });\n },\n {\n message:\n \"The system wasn't able to perform the bulk action. Please contact your support team to help you resolve this issue.\"\n }\n );\n\n if (!response.data) {\n return {\n error: {\n message: \"Missing response data on Bulk Action mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n const { data: responseData, error } = response.data.content;\n\n if (error) {\n return {\n error\n };\n }\n\n if (!responseData) {\n return {\n error: {\n message: \"Missing response data on Bulk Action mutation.\",\n code: \"MISSING_RESPONSE_DATA\",\n data: {}\n }\n };\n }\n\n return responseData;\n }\n };\n\n return <CmsContext.Provider value={value} {...props} />;\n};\n"],"mappings":"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","ignoreList":[]}