@webiny/app-headless-cms 5.39.12-beta.0 → 5.39.12-beta.2

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.
@@ -41,7 +41,13 @@ var OnEntryDelete = function OnEntryDelete() {
41
41
  mutation: mutation,
42
42
  variables: {
43
43
  revision: id
44
- }
44
+ },
45
+ refetchQueries: [{
46
+ query: (0, _appHeadlessCmsCommon.createRevisionsQuery)(model),
47
+ variables: {
48
+ id: entry.id
49
+ }
50
+ }]
45
51
  });
46
52
  if (!response.data) {
47
53
  var _error = {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_hooks","_appHeadlessCmsCommon","_utils","createMutationKey","params","model","locale","concat","modelId","savedOn","OnEntryDelete","_useCms","useCms","onEntryDelete","mutations","useRef","getMutation","key","current","createDeleteMutation","handleOnDelete","entry","id","client","mutation","response","mutate","variables","revision","data","error","message","code","content","_parseIdentifier","parseIdentifier","version","useEffect","next","result","_objectSpread2","default","DefaultOnEntryDelete","React","memo","exports"],"sources":["DefaultOnEntryDelete.tsx"],"sourcesContent":["import React, { useEffect, useRef } from \"react\";\nimport { useCms } from \"~/admin/hooks\";\nimport { CmsErrorResponse, CmsModel } from \"~/types\";\nimport {\n CmsEntryDeleteMutationResponse,\n CmsEntryDeleteMutationVariables,\n createDeleteMutation\n} from \"@webiny/app-headless-cms-common\";\nimport { DocumentNode } from \"graphql\";\nimport { OnEntryDeleteRequest } from \"~/admin/contexts/Cms\";\nimport { parseIdentifier } from \"@webiny/utils\";\n\ninterface Mutations {\n [key: string]: DocumentNode;\n}\n\ninterface CreateMutationKeyParams {\n model: CmsModel;\n locale: string;\n}\n\nconst createMutationKey = (params: CreateMutationKeyParams): string => {\n const { model, locale } = params;\n return `${model.modelId}_${locale}_${model.savedOn}`;\n};\n\nconst OnEntryDelete = () => {\n const { onEntryDelete } = useCms();\n\n const mutations = useRef<Mutations>({});\n\n const getMutation = (model: CmsModel, locale: string) => {\n const key = createMutationKey({ model, locale });\n if (!mutations.current[key]) {\n mutations.current[key] = createDeleteMutation(model);\n }\n return mutations.current[key];\n };\n\n const handleOnDelete = async (params: OnEntryDeleteRequest) => {\n const { entry, model, id, client, locale } = params;\n const mutation = getMutation(model, locale);\n\n const response = await client.mutate<\n CmsEntryDeleteMutationResponse,\n CmsEntryDeleteMutationVariables\n >({\n mutation,\n variables: {\n revision: id\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 {\n error\n };\n }\n const { error } = response.data.content;\n if (error) {\n return {\n error\n };\n }\n /**\n * TODO figure out how to do this in a smart way.\n * If there is no version in the ID, we are deleting whole entry.\n */\n const { version } = parseIdentifier(id);\n if (version === null) {\n return {\n data: true,\n error: null\n };\n }\n\n if (entry.id !== id) {\n return {\n data: true,\n error: null\n };\n }\n return {\n entry,\n data: true,\n error: null\n };\n };\n\n useEffect(() => {\n return onEntryDelete(next => async params => {\n const result = await next(params);\n\n if (result.error) {\n return result;\n }\n\n const response = await handleOnDelete({\n ...params\n });\n return {\n ...result,\n ...response\n };\n });\n }, []);\n\n return null;\n};\n\nexport const DefaultOnEntryDelete = React.memo(OnEntryDelete);\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_hooks","_appHeadlessCmsCommon","_utils","createMutationKey","params","model","locale","concat","modelId","savedOn","OnEntryDelete","_useCms","useCms","onEntryDelete","mutations","useRef","getMutation","key","current","createDeleteMutation","handleOnDelete","entry","id","client","mutation","response","mutate","variables","revision","refetchQueries","query","createRevisionsQuery","data","error","message","code","content","_parseIdentifier","parseIdentifier","version","useEffect","next","result","_objectSpread2","default","DefaultOnEntryDelete","React","memo","exports"],"sources":["DefaultOnEntryDelete.tsx"],"sourcesContent":["import React, { useEffect, useRef } from \"react\";\nimport { useCms } from \"~/admin/hooks\";\nimport { CmsErrorResponse, CmsModel } from \"~/types\";\nimport {\n CmsEntryDeleteMutationResponse,\n CmsEntryDeleteMutationVariables,\n createDeleteMutation,\n createRevisionsQuery\n} from \"@webiny/app-headless-cms-common\";\nimport { DocumentNode } from \"graphql\";\nimport { OnEntryDeleteRequest } from \"~/admin/contexts/Cms\";\nimport { parseIdentifier } from \"@webiny/utils\";\n\ninterface Mutations {\n [key: string]: DocumentNode;\n}\n\ninterface CreateMutationKeyParams {\n model: CmsModel;\n locale: string;\n}\n\nconst createMutationKey = (params: CreateMutationKeyParams): string => {\n const { model, locale } = params;\n return `${model.modelId}_${locale}_${model.savedOn}`;\n};\n\nconst OnEntryDelete = () => {\n const { onEntryDelete } = useCms();\n\n const mutations = useRef<Mutations>({});\n\n const getMutation = (model: CmsModel, locale: string) => {\n const key = createMutationKey({ model, locale });\n if (!mutations.current[key]) {\n mutations.current[key] = createDeleteMutation(model);\n }\n return mutations.current[key];\n };\n\n const handleOnDelete = async (params: OnEntryDeleteRequest) => {\n const { entry, model, id, client, locale } = params;\n const mutation = getMutation(model, locale);\n\n const response = await client.mutate<\n CmsEntryDeleteMutationResponse,\n CmsEntryDeleteMutationVariables\n >({\n mutation,\n variables: {\n revision: id\n },\n refetchQueries: [\n {\n query: createRevisionsQuery(model),\n variables: {\n id: entry.id\n }\n }\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 {\n error\n };\n }\n const { error } = response.data.content;\n if (error) {\n return {\n error\n };\n }\n /**\n * TODO figure out how to do this in a smart way.\n * If there is no version in the ID, we are deleting whole entry.\n */\n const { version } = parseIdentifier(id);\n if (version === null) {\n return {\n data: true,\n error: null\n };\n }\n\n if (entry.id !== id) {\n return {\n data: true,\n error: null\n };\n }\n return {\n entry,\n data: true,\n error: null\n };\n };\n\n useEffect(() => {\n return onEntryDelete(next => async params => {\n const result = await next(params);\n\n if (result.error) {\n return result;\n }\n\n const response = await handleOnDelete({\n ...params\n });\n return {\n ...result,\n ...response\n };\n });\n }, []);\n\n return null;\n};\n\nexport const DefaultOnEntryDelete = React.memo(OnEntryDelete);\n"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import { CmsContentEntry, CmsContentEntryRevision } from "@webiny/app-headless-cms-common/types";
3
+ interface RevisionDeletedSnackbarMessageProps {
4
+ deletedRevision: CmsContentEntry;
5
+ newLatestRevision?: CmsContentEntryRevision;
6
+ }
7
+ export declare const RevisionDeletedSnackbarMessage: ({ deletedRevision, newLatestRevision }: RevisionDeletedSnackbarMessageProps) => JSX.Element;
8
+ export {};
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.RevisionDeletedSnackbarMessage = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var RevisionDeletedSnackbarMessage = function RevisionDeletedSnackbarMessage(_ref) {
10
+ var deletedRevision = _ref.deletedRevision,
11
+ newLatestRevision = _ref.newLatestRevision;
12
+ if (newLatestRevision) {
13
+ return /*#__PURE__*/_react.default.createElement("span", null, "Successfully deleted revision ", /*#__PURE__*/_react.default.createElement("strong", null, "#", deletedRevision.meta.version), ". Redirecting to revision ", /*#__PURE__*/_react.default.createElement("strong", null, "#", newLatestRevision.meta.version), "...");
14
+ }
15
+ return /*#__PURE__*/_react.default.createElement("span", null, "Successfully deleted last revision ", /*#__PURE__*/_react.default.createElement("strong", null, "#", deletedRevision.meta.version), ". Redirecting to list of entries...");
16
+ };
17
+ exports.RevisionDeletedSnackbarMessage = RevisionDeletedSnackbarMessage;
18
+
19
+ //# sourceMappingURL=RevisionDeletedSnackbarMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","RevisionDeletedSnackbarMessage","_ref","deletedRevision","newLatestRevision","default","createElement","meta","version","exports"],"sources":["RevisionDeletedSnackbarMessage.tsx"],"sourcesContent":["import React from \"react\";\nimport { CmsContentEntry, CmsContentEntryRevision } from \"@webiny/app-headless-cms-common/types\";\n\ninterface RevisionDeletedSnackbarMessageProps {\n deletedRevision: CmsContentEntry;\n newLatestRevision?: CmsContentEntryRevision;\n}\n\nexport const RevisionDeletedSnackbarMessage = ({\n deletedRevision,\n newLatestRevision\n}: RevisionDeletedSnackbarMessageProps) => {\n if (newLatestRevision) {\n return (\n <span>\n Successfully deleted revision <strong>#{deletedRevision.meta.version}</strong>.\n Redirecting to revision <strong>#{newLatestRevision.meta.version}</strong>...\n </span>\n );\n }\n\n return (\n <span>\n Successfully deleted last revision <strong>#{deletedRevision.meta.version}</strong>.\n Redirecting to list of entries...\n </span>\n );\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAQO,IAAMC,8BAA8B,GAAG,SAAjCA,8BAA8BA,CAAAC,IAAA,EAGA;EAAA,IAFvCC,eAAe,GAAAD,IAAA,CAAfC,eAAe;IACfC,iBAAiB,GAAAF,IAAA,CAAjBE,iBAAiB;EAEjB,IAAIA,iBAAiB,EAAE;IACnB,oBACIN,MAAA,CAAAO,OAAA,CAAAC,aAAA,eAAM,gCAC4B,eAAAR,MAAA,CAAAO,OAAA,CAAAC,aAAA,iBAAQ,GAAC,EAACH,eAAe,CAACI,IAAI,CAACC,OAAgB,CAAC,8BACtD,eAAAV,MAAA,CAAAO,OAAA,CAAAC,aAAA,iBAAQ,GAAC,EAACF,iBAAiB,CAACG,IAAI,CAACC,OAAgB,CAAC,OACxE,CAAC;EAEf;EAEA,oBACIV,MAAA,CAAAO,OAAA,CAAAC,aAAA,eAAM,qCACiC,eAAAR,MAAA,CAAAO,OAAA,CAAAC,aAAA,iBAAQ,GAAC,EAACH,eAAe,CAACI,IAAI,CAACC,OAAgB,CAAC,uCAEjF,CAAC;AAEf,CAAC;AAACC,OAAA,CAAAR,8BAAA,GAAAA,8BAAA"}
@@ -102,7 +102,7 @@ var RevisionListItem = function RevisionListItem(_ref) {
102
102
  // Added this because revisionCreatedBy can be returned as null from GraphQL.
103
103
  author: revision.revisionCreatedBy?.displayName,
104
104
  time: /*#__PURE__*/_react.default.createElement(_DateTime.Date, {
105
- date: revision.revisionCreatedOn
105
+ date: revision.revisionSavedOn
106
106
  }),
107
107
  version: revision.meta.version
108
108
  }))), /*#__PURE__*/_react.default.createElement(_List.ListItemMeta, null, /*#__PURE__*/_react.default.createElement(_Menu.Menu, {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_emotion","_DateTime","_List","_Button","_Icon","_Menu","_Tooltip","_more_vert","_lock","_beenhere","_gesture","_add","_edit","_unpublish","_delete","_i18n","_useRevision2","_usePermission2","_useContentEntry2","_PublishEntryRevisionListItem","_appAdmin","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","t","i18n","ns","primaryColor","css","color","revisionsMenu","width","right","left","getIcon","rev","meta","locked","status","icon","default","createElement","Icon","ReactComponent","text","className","RevisionListItem","_ref","revision","_useRevision","useRevision","createRevision","deleteRevision","publishRevision","unpublishRevision","editRevision","_useConfirmationDialo","useConfirmationDialog","title","_taggedTemplateLiteral2","message","version","showConfirmation","_useContentEntry","useContentEntry","entry","setActiveTab","_usePermission","usePermission","canEdit","canDelete","canPublish","canUnpublish","_getIcon","tooltipText","ListItem","ListItemGraphic","Tooltip","content","placement","ListItemText","ListItemTextPrimary","ListItemTextSecondary","author","revisionCreatedBy","displayName","time","Date","date","revisionCreatedOn","ListItemMeta","Menu","handle","IconButton","MenuItem","onClick","id","PublishEntryRevisionListItem","MenuDivider","_default","exports"],"sources":["RevisionListItem.tsx"],"sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport { Date } from \"@webiny/ui/DateTime\";\nimport {\n ListItem,\n ListItemText,\n ListItemTextPrimary,\n ListItemTextSecondary,\n ListItemGraphic,\n ListItemMeta\n} from \"@webiny/ui/List\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { MenuItem, Menu, MenuDivider } from \"@webiny/ui/Menu\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { ReactComponent as MoreVerticalIcon } from \"~/admin/icons/more_vert.svg\";\nimport { ReactComponent as LockIcon } from \"~/admin/icons/lock.svg\";\nimport { ReactComponent as BeenHereIcon } from \"~/admin/icons/beenhere.svg\";\nimport { ReactComponent as GestureIcon } from \"~/admin/icons/gesture.svg\";\nimport { ReactComponent as AddIcon } from \"~/admin/icons/add.svg\";\nimport { ReactComponent as EditIcon } from \"~/admin/icons/edit.svg\";\nimport { ReactComponent as UnpublishIcon } from \"~/admin/icons/unpublish.svg\";\nimport { ReactComponent as DeleteIcon } from \"~/admin/icons/delete.svg\";\nimport { CmsContentEntryRevision } from \"~/types\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useRevision } from \"./useRevision\";\nimport usePermission from \"~/admin/hooks/usePermission\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks/useContentEntry\";\nimport { PublishEntryRevisionListItem } from \"./PublishEntryRevisionListItem\";\nimport { useConfirmationDialog } from \"@webiny/app-admin\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/plugins/content-details/content-revisions\");\n\nconst primaryColor = css({ color: \"var(--mdc-theme-primary)\" });\n\nconst revisionsMenu = css({\n width: 250,\n right: -105,\n left: \"auto !important\"\n});\n\nconst getIcon = (rev: CmsContentEntryRevision) => {\n switch (true) {\n case rev.meta.locked && rev.meta.status !== \"published\":\n return {\n icon: <Icon icon={<LockIcon />} data-testid={\"cms.revision.status.locked\"} />,\n text: \"This revision is locked (it has already been published)\"\n };\n case rev.meta.status === \"published\":\n return {\n icon: (\n <Icon\n icon={<BeenHereIcon />}\n className={primaryColor}\n data-testid={\"cms.revision.status.published\"}\n />\n ),\n text: \"This revision is currently published!\"\n };\n default:\n return {\n icon: <Icon icon={<GestureIcon />} data-testid={\"cms.revision.status.draft\"} />,\n text: \"This is a draft\"\n };\n }\n};\n\ninterface RevisionListItemProps {\n revision: CmsContentEntryRevision;\n}\n\nconst RevisionListItem = ({ revision }: RevisionListItemProps) => {\n const { createRevision, deleteRevision, publishRevision, unpublishRevision, editRevision } =\n useRevision({\n revision\n });\n\n const { showConfirmation } = useConfirmationDialog({\n title: t`Delete content entry revision`,\n message: (\n <span>\n {t`You are about to delete revision {revision}. Are you sure you want to continue?`(\n {\n revision: <strong>#{revision.meta.version}</strong>\n }\n )}\n </span>\n )\n });\n const { entry, setActiveTab } = useContentEntry();\n const { canEdit, canDelete, canPublish, canUnpublish } = usePermission();\n const { icon, text: tooltipText } = getIcon(revision);\n\n return (\n <ListItem>\n <ListItemGraphic>\n <Tooltip content={tooltipText} placement={\"bottom\"}>\n {icon}\n </Tooltip>\n </ListItemGraphic>\n <ListItemText>\n <ListItemTextPrimary>{revision.meta.title || t`N/A`}</ListItemTextPrimary>\n <ListItemTextSecondary>\n {t`Last modified by {author} on {time} (#{version})`({\n // Added this because revisionCreatedBy can be returned as null from GraphQL.\n author: revision.revisionCreatedBy?.displayName,\n time: <Date date={revision.revisionCreatedOn} />,\n version: revision.meta.version\n })}\n </ListItemTextSecondary>\n </ListItemText>\n <ListItemMeta>\n <Menu\n handle={<IconButton icon={<MoreVerticalIcon />} />}\n className={revisionsMenu}\n data-testid={\"cms.content-form.revisions.more-options\"}\n >\n {canEdit(entry, \"cms.contentEntry\") && (\n <MenuItem\n onClick={() => createRevision(revision.id)}\n data-testid={\"cms.revision.create-revision\"}\n >\n <ListItemGraphic>\n <Icon icon={<AddIcon />} />\n </ListItemGraphic>\n {t`New from current`}\n </MenuItem>\n )}\n\n {!revision.meta.locked && canEdit(entry, \"cms.contentEntry\") && (\n <MenuItem\n onClick={() => {\n editRevision();\n setActiveTab(0);\n }}\n >\n <ListItemGraphic>\n <Icon icon={<EditIcon />} />\n </ListItemGraphic>\n {t`Edit`}\n </MenuItem>\n )}\n\n {revision.meta.status !== \"published\" && canPublish(\"cms.contentEntry\") && (\n <MenuItem onClick={() => publishRevision(revision.id)}>\n <PublishEntryRevisionListItem />\n </MenuItem>\n )}\n\n {revision.meta.status === \"published\" && canUnpublish(\"cms.contentEntry\") && (\n <MenuItem\n onClick={() => unpublishRevision(revision.id)}\n data-testid={\"cms.revision.unpublish\"}\n >\n <ListItemGraphic>\n <Icon icon={<UnpublishIcon />} />\n </ListItemGraphic>\n {t`Unpublish`}\n </MenuItem>\n )}\n\n {!revision.meta.locked && canDelete(entry, \"cms.contentEntry\") && (\n <div>\n <MenuDivider />\n <MenuItem onClick={() => showConfirmation(deleteRevision)}>\n <ListItemGraphic>\n <Icon icon={<DeleteIcon />} />\n </ListItemGraphic>\n {t` Delete`}\n </MenuItem>\n </div>\n )}\n </Menu>\n </ListItemMeta>\n </ListItem>\n );\n};\n\nexport default RevisionListItem;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_emotion","_DateTime","_List","_Button","_Icon","_Menu","_Tooltip","_more_vert","_lock","_beenhere","_gesture","_add","_edit","_unpublish","_delete","_i18n","_useRevision2","_usePermission2","_useContentEntry2","_PublishEntryRevisionListItem","_appAdmin","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","t","i18n","ns","primaryColor","css","color","revisionsMenu","width","right","left","getIcon","rev","meta","locked","status","icon","default","createElement","Icon","ReactComponent","text","className","RevisionListItem","_ref","revision","_useRevision","useRevision","createRevision","deleteRevision","publishRevision","unpublishRevision","editRevision","_useConfirmationDialo","useConfirmationDialog","title","_taggedTemplateLiteral2","message","version","showConfirmation","_useContentEntry","useContentEntry","entry","setActiveTab","_usePermission","usePermission","canEdit","canDelete","canPublish","canUnpublish","_getIcon","tooltipText","ListItem","ListItemGraphic","Tooltip","content","placement","ListItemText","ListItemTextPrimary","ListItemTextSecondary","author","revisionCreatedBy","displayName","time","Date","date","revisionSavedOn","ListItemMeta","Menu","handle","IconButton","MenuItem","onClick","id","PublishEntryRevisionListItem","MenuDivider","_default","exports"],"sources":["RevisionListItem.tsx"],"sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport { Date } from \"@webiny/ui/DateTime\";\nimport {\n ListItem,\n ListItemText,\n ListItemTextPrimary,\n ListItemTextSecondary,\n ListItemGraphic,\n ListItemMeta\n} from \"@webiny/ui/List\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { MenuItem, Menu, MenuDivider } from \"@webiny/ui/Menu\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { ReactComponent as MoreVerticalIcon } from \"~/admin/icons/more_vert.svg\";\nimport { ReactComponent as LockIcon } from \"~/admin/icons/lock.svg\";\nimport { ReactComponent as BeenHereIcon } from \"~/admin/icons/beenhere.svg\";\nimport { ReactComponent as GestureIcon } from \"~/admin/icons/gesture.svg\";\nimport { ReactComponent as AddIcon } from \"~/admin/icons/add.svg\";\nimport { ReactComponent as EditIcon } from \"~/admin/icons/edit.svg\";\nimport { ReactComponent as UnpublishIcon } from \"~/admin/icons/unpublish.svg\";\nimport { ReactComponent as DeleteIcon } from \"~/admin/icons/delete.svg\";\nimport { CmsContentEntryRevision } from \"~/types\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useRevision } from \"./useRevision\";\nimport usePermission from \"~/admin/hooks/usePermission\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks/useContentEntry\";\nimport { PublishEntryRevisionListItem } from \"./PublishEntryRevisionListItem\";\nimport { useConfirmationDialog } from \"@webiny/app-admin\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/plugins/content-details/content-revisions\");\n\nconst primaryColor = css({ color: \"var(--mdc-theme-primary)\" });\n\nconst revisionsMenu = css({\n width: 250,\n right: -105,\n left: \"auto !important\"\n});\n\nconst getIcon = (rev: CmsContentEntryRevision) => {\n switch (true) {\n case rev.meta.locked && rev.meta.status !== \"published\":\n return {\n icon: <Icon icon={<LockIcon />} data-testid={\"cms.revision.status.locked\"} />,\n text: \"This revision is locked (it has already been published)\"\n };\n case rev.meta.status === \"published\":\n return {\n icon: (\n <Icon\n icon={<BeenHereIcon />}\n className={primaryColor}\n data-testid={\"cms.revision.status.published\"}\n />\n ),\n text: \"This revision is currently published!\"\n };\n default:\n return {\n icon: <Icon icon={<GestureIcon />} data-testid={\"cms.revision.status.draft\"} />,\n text: \"This is a draft\"\n };\n }\n};\n\ninterface RevisionListItemProps {\n revision: CmsContentEntryRevision;\n}\n\nconst RevisionListItem = ({ revision }: RevisionListItemProps) => {\n const { createRevision, deleteRevision, publishRevision, unpublishRevision, editRevision } =\n useRevision({\n revision\n });\n\n const { showConfirmation } = useConfirmationDialog({\n title: t`Delete content entry revision`,\n message: (\n <span>\n {t`You are about to delete revision {revision}. Are you sure you want to continue?`(\n {\n revision: <strong>#{revision.meta.version}</strong>\n }\n )}\n </span>\n )\n });\n const { entry, setActiveTab } = useContentEntry();\n const { canEdit, canDelete, canPublish, canUnpublish } = usePermission();\n const { icon, text: tooltipText } = getIcon(revision);\n\n return (\n <ListItem>\n <ListItemGraphic>\n <Tooltip content={tooltipText} placement={\"bottom\"}>\n {icon}\n </Tooltip>\n </ListItemGraphic>\n <ListItemText>\n <ListItemTextPrimary>{revision.meta.title || t`N/A`}</ListItemTextPrimary>\n <ListItemTextSecondary>\n {t`Last modified by {author} on {time} (#{version})`({\n // Added this because revisionCreatedBy can be returned as null from GraphQL.\n author: revision.revisionCreatedBy?.displayName,\n time: <Date date={revision.revisionSavedOn} />,\n version: revision.meta.version\n })}\n </ListItemTextSecondary>\n </ListItemText>\n <ListItemMeta>\n <Menu\n handle={<IconButton icon={<MoreVerticalIcon />} />}\n className={revisionsMenu}\n data-testid={\"cms.content-form.revisions.more-options\"}\n >\n {canEdit(entry, \"cms.contentEntry\") && (\n <MenuItem\n onClick={() => createRevision(revision.id)}\n data-testid={\"cms.revision.create-revision\"}\n >\n <ListItemGraphic>\n <Icon icon={<AddIcon />} />\n </ListItemGraphic>\n {t`New from current`}\n </MenuItem>\n )}\n\n {!revision.meta.locked && canEdit(entry, \"cms.contentEntry\") && (\n <MenuItem\n onClick={() => {\n editRevision();\n setActiveTab(0);\n }}\n >\n <ListItemGraphic>\n <Icon icon={<EditIcon />} />\n </ListItemGraphic>\n {t`Edit`}\n </MenuItem>\n )}\n\n {revision.meta.status !== \"published\" && canPublish(\"cms.contentEntry\") && (\n <MenuItem onClick={() => publishRevision(revision.id)}>\n <PublishEntryRevisionListItem />\n </MenuItem>\n )}\n\n {revision.meta.status === \"published\" && canUnpublish(\"cms.contentEntry\") && (\n <MenuItem\n onClick={() => unpublishRevision(revision.id)}\n data-testid={\"cms.revision.unpublish\"}\n >\n <ListItemGraphic>\n <Icon icon={<UnpublishIcon />} />\n </ListItemGraphic>\n {t`Unpublish`}\n </MenuItem>\n )}\n\n {!revision.meta.locked && canDelete(entry, \"cms.contentEntry\") && (\n <div>\n <MenuDivider />\n <MenuItem onClick={() => showConfirmation(deleteRevision)}>\n <ListItemGraphic>\n <Icon icon={<DeleteIcon />} />\n </ListItemGraphic>\n {t` Delete`}\n </MenuItem>\n </div>\n )}\n </Menu>\n </ListItemMeta>\n </ListItem>\n );\n};\n\nexport default RevisionListItem;\n"],"mappings":"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"}
@@ -14,6 +14,7 @@ var _hooks = require("../../../hooks");
14
14
  var _useContentEntry2 = require("../hooks/useContentEntry");
15
15
  var _getFetchPolicy = require("../../../../utils/getFetchPolicy");
16
16
  var _appAco = require("@webiny/app-aco");
17
+ var _RevisionDeletedSnackbarMessage = require("./RevisionDeletedSnackbarMessage");
17
18
  var useRevision = function useRevision(_ref) {
18
19
  var revision = _ref.revision;
19
20
  var _useCms = (0, _hooks.useCms)(),
@@ -31,7 +32,8 @@ var useRevision = function useRevision(_ref) {
31
32
  var client = (0, _hooks.useApolloClient)();
32
33
  var modelId = contentModel.modelId;
33
34
  var _useRecords = (0, _appAco.useRecords)(),
34
- updateRecordInCache = _useRecords.updateRecordInCache;
35
+ updateRecordInCache = _useRecords.updateRecordInCache,
36
+ removeRecordFromCache = _useRecords.removeRecordFromCache;
35
37
  var _useMemo = (0, _react.useMemo)(function () {
36
38
  return {
37
39
  CREATE_REVISION: (0, _appHeadlessCmsCommon.createCreateFromMutation)(contentModel)
@@ -49,7 +51,13 @@ var useRevision = function useRevision(_ref) {
49
51
  variables: {
50
52
  revision: id || revision.id
51
53
  },
52
- fetchPolicy: (0, _getFetchPolicy.getFetchPolicy)(contentModel)
54
+ fetchPolicy: (0, _getFetchPolicy.getFetchPolicy)(contentModel),
55
+ refetchQueries: [{
56
+ query: (0, _appHeadlessCmsCommon.createRevisionsQuery)(contentModel),
57
+ variables: {
58
+ id: entry.id
59
+ }
60
+ }]
53
61
  });
54
62
  setLoading(false);
55
63
  if (!createResponse || !createResponse.data) {
@@ -84,16 +92,52 @@ var useRevision = function useRevision(_ref) {
84
92
  entry: entry,
85
93
  id: id || entry.id
86
94
  }),
87
- error = _await$deleteEntry.error,
88
- targetRevision = _await$deleteEntry.entry;
95
+ error = _await$deleteEntry.error;
89
96
  setLoading(false);
90
97
  if (error) {
91
98
  showSnackbar(error.message);
92
99
  return;
93
100
  }
94
101
 
95
- // Redirect to the first revision in the list of all entry revisions.
96
- history.push("/cms/content-entries/".concat(modelId, "?id=") + encodeURIComponent(targetRevision.id));
102
+ // We need the list of all revisions of the entry to find the new latest revision.
103
+ var cachedEntryRevisions = client.cache.readQuery({
104
+ query: (0, _appHeadlessCmsCommon.createRevisionsQuery)(contentModel),
105
+ variables: {
106
+ id: entry.entryId
107
+ }
108
+ });
109
+
110
+ // The `revisions.data` array contains all revisions of the entry, ordered from
111
+ // the latest to the oldest. The first element in the array is the latest revision.
112
+ // What we're doing here is finding the latest revision that is not the current one.
113
+ var newLatestRevision = cachedEntryRevisions?.revisions.data.find(function (revision) {
114
+ return revision.meta.version !== entry.meta.version;
115
+ });
116
+
117
+ // 1. Update ACO cache.
118
+ if (newLatestRevision) {
119
+ // Make sure the new latest revision is in the cache. This is important because
120
+ // this way we get to see the change in the ACO entry list.
121
+ updateRecordInCache(newLatestRevision);
122
+ } else {
123
+ // Like in the above case, we need to remove the entry from the cache. And again,
124
+ // this is important because this way we get to see the change in the ACO entry list.
125
+ removeRecordFromCache(entry.id);
126
+ }
127
+
128
+ // 2. Show a snackbar message.
129
+ showSnackbar( /*#__PURE__*/_react.default.createElement(_RevisionDeletedSnackbarMessage.RevisionDeletedSnackbarMessage, {
130
+ deletedRevision: entry,
131
+ newLatestRevision: newLatestRevision
132
+ }));
133
+
134
+ // 3. Redirect to the new latest revision or the list of all revisions.
135
+ var redirectTarget = "/cms/content-entries/".concat(modelId);
136
+ if (newLatestRevision) {
137
+ // Redirect to the first revision in the list of all entry revisions.
138
+ redirectTarget += "?id=".concat(encodeURIComponent(newLatestRevision.id));
139
+ }
140
+ history.push(redirectTarget);
97
141
  };
98
142
  },
99
143
  publishRevision: function publishRevision(_ref3) {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactRouter","_useHandlers2","_useSnackbar2","_appHeadlessCmsCommon","_hooks","_useContentEntry2","_getFetchPolicy","_appAco","useRevision","_ref","revision","_useCms","useCms","publishEntryRevision","unpublishEntryRevision","deleteEntry","_useContentEntry","useContentEntry","contentModel","entry","setLoading","_useRouter","useRouter","history","_useSnackbar","useSnackbar","showSnackbar","client","useApolloClient","modelId","_useRecords","useRecords","updateRecordInCache","_useMemo","useMemo","CREATE_REVISION","createCreateFromMutation","_useHandlers","useHandlers","createRevision","id","createResponse","mutate","mutation","variables","fetchPolicy","getFetchPolicy","data","_createResponse$data$","content","error","message","push","concat","encodeURIComponent","editRevision","deleteRevision","_ref2","_await$deleteEntry","model","targetRevision","publishRevision","_ref3","response","entryResult","default","createElement","meta","version","unpublishRevision","_ref4","exports"],"sources":["useRevision.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { useHandlers } from \"@webiny/app/hooks/useHandlers\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { CmsContentEntry } from \"~/types\";\nimport {\n CmsEntryCreateFromMutationResponse,\n CmsEntryCreateFromMutationVariables,\n createCreateFromMutation\n} from \"@webiny/app-headless-cms-common\";\nimport { useApolloClient, useCms } from \"~/admin/hooks\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks/useContentEntry\";\nimport { getFetchPolicy } from \"~/utils/getFetchPolicy\";\nimport { useRecords } from \"@webiny/app-aco\";\n\ninterface CreateRevisionHandler {\n (id?: string): Promise<void>;\n}\n\ninterface EditRevisionHandler {\n (id?: string): void;\n}\n\ninterface DeleteRevisionHandler {\n (id?: string): Promise<void>;\n}\ninterface PublishRevisionHandler {\n (id?: string): Promise<void>;\n}\ninterface UnpublishRevisionHandler {\n (id?: string): Promise<void>;\n}\ninterface UseRevisionHandlers {\n createRevision: CreateRevisionHandler;\n editRevision: EditRevisionHandler;\n deleteRevision: DeleteRevisionHandler;\n publishRevision: PublishRevisionHandler;\n unpublishRevision: UnpublishRevisionHandler;\n}\n\nexport interface UseRevisionProps {\n revision: Pick<CmsContentEntry, \"id\"> & {\n meta: Pick<CmsContentEntry[\"meta\"], \"version\">;\n };\n}\n\nexport const useRevision = ({ revision }: UseRevisionProps) => {\n const { publishEntryRevision, unpublishEntryRevision, deleteEntry } = useCms();\n const { contentModel, entry, setLoading } = useContentEntry();\n\n const { history } = useRouter();\n const { showSnackbar } = useSnackbar();\n const client = useApolloClient();\n const { modelId } = contentModel;\n\n const { updateRecordInCache } = useRecords();\n\n const { CREATE_REVISION } = useMemo(() => {\n return {\n CREATE_REVISION: createCreateFromMutation(contentModel)\n };\n }, [modelId]);\n\n const { createRevision, editRevision, deleteRevision, publishRevision, unpublishRevision } =\n useHandlers<UseRevisionHandlers>(\n { entry },\n {\n createRevision:\n (): CreateRevisionHandler =>\n async (id): Promise<void> => {\n setLoading(true);\n const createResponse = await client.mutate<\n CmsEntryCreateFromMutationResponse,\n CmsEntryCreateFromMutationVariables\n >({\n mutation: CREATE_REVISION,\n variables: {\n revision: id || revision.id\n },\n fetchPolicy: getFetchPolicy(contentModel)\n });\n\n setLoading(false);\n\n if (!createResponse || !createResponse.data) {\n showSnackbar(`Missing response data in Create Revision Callable.`);\n return;\n }\n\n const { data, error } = createResponse.data.content;\n\n if (error) {\n showSnackbar(error.message);\n return;\n } else if (!data) {\n showSnackbar(`Missing data in Create Revision callable.`);\n return;\n }\n\n updateRecordInCache(data);\n\n history.push(\n `/cms/content-entries/${modelId}?id=${encodeURIComponent(data.id)}`\n );\n },\n editRevision:\n (): EditRevisionHandler =>\n (id): void => {\n history.push(\n `/cms/content-entries/${modelId}/?id=${encodeURIComponent(\n id || revision.id\n )}`\n );\n },\n deleteRevision:\n ({ entry }): DeleteRevisionHandler =>\n async (id): Promise<void> => {\n setLoading(true);\n\n const { error, entry: targetRevision } = await deleteEntry({\n model: contentModel,\n entry,\n id: id || entry.id\n });\n\n setLoading(false);\n\n if (error) {\n showSnackbar(error.message);\n return;\n }\n\n // Redirect to the first revision in the list of all entry revisions.\n history.push(\n `/cms/content-entries/${modelId}?id=` +\n encodeURIComponent(targetRevision!.id)\n );\n },\n publishRevision:\n ({ entry }): PublishRevisionHandler =>\n async id => {\n setLoading(true);\n\n const response = await publishEntryRevision({\n model: contentModel,\n entry,\n id: id || entry.id\n });\n\n setLoading(false);\n\n const { error, entry: entryResult } = response;\n if (error) {\n showSnackbar(error.message);\n return;\n }\n\n updateRecordInCache(entryResult);\n\n showSnackbar(\n <span>\n Successfully published revision{\" \"}\n <strong>#{response.entry!.meta.version}</strong>!\n </span>\n );\n },\n unpublishRevision:\n ({ entry }): UnpublishRevisionHandler =>\n async id => {\n setLoading(true);\n\n const response = await unpublishEntryRevision({\n model: contentModel,\n entry,\n id: id || entry.id\n });\n\n setLoading(false);\n\n const { error, entry: entryResult } = response;\n\n if (error) {\n showSnackbar(error.message);\n return;\n }\n\n updateRecordInCache(entryResult);\n\n showSnackbar(\n <span>\n Successfully unpublished revision{\" \"}\n <strong>#{revision.meta.version}</strong>!\n </span>\n );\n }\n }\n );\n\n return {\n createRevision,\n editRevision,\n deleteRevision,\n publishRevision,\n unpublishRevision\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactRouter","_useHandlers2","_useSnackbar2","_appHeadlessCmsCommon","_hooks","_useContentEntry2","_getFetchPolicy","_appAco","_RevisionDeletedSnackbarMessage","useRevision","_ref","revision","_useCms","useCms","publishEntryRevision","unpublishEntryRevision","deleteEntry","_useContentEntry","useContentEntry","contentModel","entry","setLoading","_useRouter","useRouter","history","_useSnackbar","useSnackbar","showSnackbar","client","useApolloClient","modelId","_useRecords","useRecords","updateRecordInCache","removeRecordFromCache","_useMemo","useMemo","CREATE_REVISION","createCreateFromMutation","_useHandlers","useHandlers","createRevision","id","createResponse","mutate","mutation","variables","fetchPolicy","getFetchPolicy","refetchQueries","query","createRevisionsQuery","data","_createResponse$data$","content","error","message","push","concat","encodeURIComponent","editRevision","deleteRevision","_ref2","_await$deleteEntry","model","cachedEntryRevisions","cache","readQuery","entryId","newLatestRevision","revisions","find","meta","version","default","createElement","RevisionDeletedSnackbarMessage","deletedRevision","redirectTarget","publishRevision","_ref3","response","entryResult","unpublishRevision","_ref4","exports"],"sources":["useRevision.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { useHandlers } from \"@webiny/app/hooks/useHandlers\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { CmsContentEntry } from \"~/types\";\nimport {\n CmsEntriesListRevisionsQueryResponse,\n CmsEntryCreateFromMutationResponse,\n CmsEntryCreateFromMutationVariables,\n createCreateFromMutation,\n createRevisionsQuery\n} from \"@webiny/app-headless-cms-common\";\nimport { useApolloClient, useCms } from \"~/admin/hooks\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks/useContentEntry\";\nimport { getFetchPolicy } from \"~/utils/getFetchPolicy\";\nimport { useRecords } from \"@webiny/app-aco\";\nimport { RevisionDeletedSnackbarMessage } from \"./RevisionDeletedSnackbarMessage\";\n\ninterface CreateRevisionHandler {\n (id?: string): Promise<void>;\n}\n\ninterface EditRevisionHandler {\n (id?: string): void;\n}\n\ninterface DeleteRevisionHandler {\n (id?: string): Promise<void>;\n}\n\ninterface PublishRevisionHandler {\n (id?: string): Promise<void>;\n}\n\ninterface UnpublishRevisionHandler {\n (id?: string): Promise<void>;\n}\n\ninterface UseRevisionHandlers {\n createRevision: CreateRevisionHandler;\n editRevision: EditRevisionHandler;\n deleteRevision: DeleteRevisionHandler;\n publishRevision: PublishRevisionHandler;\n unpublishRevision: UnpublishRevisionHandler;\n}\n\nexport interface UseRevisionProps {\n revision: Pick<CmsContentEntry, \"id\"> & {\n meta: Pick<CmsContentEntry[\"meta\"], \"version\">;\n };\n}\n\nexport const useRevision = ({ revision }: UseRevisionProps) => {\n const { publishEntryRevision, unpublishEntryRevision, deleteEntry } = useCms();\n const { contentModel, entry, setLoading } = useContentEntry();\n\n const { history } = useRouter();\n const { showSnackbar } = useSnackbar();\n const client = useApolloClient();\n const { modelId } = contentModel;\n\n const { updateRecordInCache, removeRecordFromCache } = useRecords();\n\n const { CREATE_REVISION } = useMemo(() => {\n return {\n CREATE_REVISION: createCreateFromMutation(contentModel)\n };\n }, [modelId]);\n\n const { createRevision, editRevision, deleteRevision, publishRevision, unpublishRevision } =\n useHandlers<UseRevisionHandlers>(\n { entry },\n {\n createRevision:\n (): CreateRevisionHandler =>\n async (id): Promise<void> => {\n setLoading(true);\n const createResponse = await client.mutate<\n CmsEntryCreateFromMutationResponse,\n CmsEntryCreateFromMutationVariables\n >({\n mutation: CREATE_REVISION,\n variables: {\n revision: id || revision.id\n },\n fetchPolicy: getFetchPolicy(contentModel),\n refetchQueries: [\n {\n query: createRevisionsQuery(contentModel),\n variables: {\n id: entry.id\n }\n }\n ]\n });\n\n setLoading(false);\n\n if (!createResponse || !createResponse.data) {\n showSnackbar(`Missing response data in Create Revision Callable.`);\n return;\n }\n\n const { data, error } = createResponse.data.content;\n\n if (error) {\n showSnackbar(error.message);\n return;\n } else if (!data) {\n showSnackbar(`Missing data in Create Revision callable.`);\n return;\n }\n\n updateRecordInCache(data);\n\n history.push(\n `/cms/content-entries/${modelId}?id=${encodeURIComponent(data.id)}`\n );\n },\n editRevision:\n (): EditRevisionHandler =>\n (id): void => {\n history.push(\n `/cms/content-entries/${modelId}/?id=${encodeURIComponent(\n id || revision.id\n )}`\n );\n },\n deleteRevision:\n ({ entry }): DeleteRevisionHandler =>\n async (id): Promise<void> => {\n setLoading(true);\n\n const { error } = await deleteEntry({\n model: contentModel,\n entry,\n id: id || entry.id\n });\n\n setLoading(false);\n\n if (error) {\n showSnackbar(error.message);\n return;\n }\n\n // We need the list of all revisions of the entry to find the new latest revision.\n const cachedEntryRevisions =\n client.cache.readQuery<CmsEntriesListRevisionsQueryResponse>({\n query: createRevisionsQuery(contentModel),\n variables: {\n id: entry.entryId\n }\n });\n\n // The `revisions.data` array contains all revisions of the entry, ordered from\n // the latest to the oldest. The first element in the array is the latest revision.\n // What we're doing here is finding the latest revision that is not the current one.\n const newLatestRevision = cachedEntryRevisions?.revisions.data.find(\n revision => revision.meta.version !== entry.meta.version\n );\n\n // 1. Update ACO cache.\n if (newLatestRevision) {\n // Make sure the new latest revision is in the cache. This is important because\n // this way we get to see the change in the ACO entry list.\n updateRecordInCache(newLatestRevision);\n } else {\n // Like in the above case, we need to remove the entry from the cache. And again,\n // this is important because this way we get to see the change in the ACO entry list.\n removeRecordFromCache(entry.id);\n }\n\n // 2. Show a snackbar message.\n showSnackbar(\n <RevisionDeletedSnackbarMessage\n deletedRevision={entry}\n newLatestRevision={newLatestRevision}\n />\n );\n\n // 3. Redirect to the new latest revision or the list of all revisions.\n let redirectTarget = `/cms/content-entries/${modelId}`;\n if (newLatestRevision) {\n // Redirect to the first revision in the list of all entry revisions.\n redirectTarget += `?id=${encodeURIComponent(newLatestRevision.id)}`;\n }\n\n history.push(redirectTarget);\n },\n publishRevision:\n ({ entry }): PublishRevisionHandler =>\n async id => {\n setLoading(true);\n\n const response = await publishEntryRevision({\n model: contentModel,\n entry,\n id: id || entry.id\n });\n\n setLoading(false);\n\n const { error, entry: entryResult } = response;\n if (error) {\n showSnackbar(error.message);\n return;\n }\n\n updateRecordInCache(entryResult);\n\n showSnackbar(\n <span>\n Successfully published revision{\" \"}\n <strong>#{response.entry!.meta.version}</strong>!\n </span>\n );\n },\n unpublishRevision:\n ({ entry }): UnpublishRevisionHandler =>\n async id => {\n setLoading(true);\n\n const response = await unpublishEntryRevision({\n model: contentModel,\n entry,\n id: id || entry.id\n });\n\n setLoading(false);\n\n const { error, entry: entryResult } = response;\n\n if (error) {\n showSnackbar(error.message);\n return;\n }\n\n updateRecordInCache(entryResult);\n\n showSnackbar(\n <span>\n Successfully unpublished revision{\" \"}\n <strong>#{revision.meta.version}</strong>!\n </span>\n );\n }\n }\n );\n\n return {\n createRevision,\n editRevision,\n deleteRevision,\n publishRevision,\n unpublishRevision\n };\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AAEA,IAAAI,qBAAA,GAAAJ,OAAA;AAOA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,iBAAA,GAAAN,OAAA;AACA,IAAAO,eAAA,GAAAP,OAAA;AACA,IAAAQ,OAAA,GAAAR,OAAA;AACA,IAAAS,+BAAA,GAAAT,OAAA;AAoCO,IAAMU,WAAW,GAAG,SAAdA,WAAWA,CAAAC,IAAA,EAAuC;EAAA,IAAjCC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;EAClC,IAAAC,OAAA,GAAsE,IAAAC,aAAM,EAAC,CAAC;IAAtEC,oBAAoB,GAAAF,OAAA,CAApBE,oBAAoB;IAAEC,sBAAsB,GAAAH,OAAA,CAAtBG,sBAAsB;IAAEC,WAAW,GAAAJ,OAAA,CAAXI,WAAW;EACjE,IAAAC,gBAAA,GAA4C,IAAAC,iCAAe,EAAC,CAAC;IAArDC,YAAY,GAAAF,gBAAA,CAAZE,YAAY;IAAEC,KAAK,GAAAH,gBAAA,CAALG,KAAK;IAAEC,UAAU,GAAAJ,gBAAA,CAAVI,UAAU;EAEvC,IAAAC,UAAA,GAAoB,IAAAC,sBAAS,EAAC,CAAC;IAAvBC,OAAO,GAAAF,UAAA,CAAPE,OAAO;EACf,IAAAC,YAAA,GAAyB,IAAAC,yBAAW,EAAC,CAAC;IAA9BC,YAAY,GAAAF,YAAA,CAAZE,YAAY;EACpB,IAAMC,MAAM,GAAG,IAAAC,sBAAe,EAAC,CAAC;EAChC,IAAQC,OAAO,GAAKX,YAAY,CAAxBW,OAAO;EAEf,IAAAC,WAAA,GAAuD,IAAAC,kBAAU,EAAC,CAAC;IAA3DC,mBAAmB,GAAAF,WAAA,CAAnBE,mBAAmB;IAAEC,qBAAqB,GAAAH,WAAA,CAArBG,qBAAqB;EAElD,IAAAC,QAAA,GAA4B,IAAAC,cAAO,EAAC,YAAM;MACtC,OAAO;QACHC,eAAe,EAAE,IAAAC,8CAAwB,EAACnB,YAAY;MAC1D,CAAC;IACL,CAAC,EAAE,CAACW,OAAO,CAAC,CAAC;IAJLO,eAAe,GAAAF,QAAA,CAAfE,eAAe;EAMvB,IAAAE,YAAA,GACI,IAAAC,yBAAW,EACP;MAAEpB,KAAK,EAALA;IAAM,CAAC,EACT;MACIqB,cAAc,EACV,SAAAA,eAAA;QAAA,OACA,gBAAOC,EAAE,EAAoB;UACzBrB,UAAU,CAAC,IAAI,CAAC;UAChB,IAAMsB,cAAc,GAAG,MAAMf,MAAM,CAACgB,MAAM,CAGxC;YACEC,QAAQ,EAAER,eAAe;YACzBS,SAAS,EAAE;cACPnC,QAAQ,EAAE+B,EAAE,IAAI/B,QAAQ,CAAC+B;YAC7B,CAAC;YACDK,WAAW,EAAE,IAAAC,8BAAc,EAAC7B,YAAY,CAAC;YACzC8B,cAAc,EAAE,CACZ;cACIC,KAAK,EAAE,IAAAC,0CAAoB,EAAChC,YAAY,CAAC;cACzC2B,SAAS,EAAE;gBACPJ,EAAE,EAAEtB,KAAK,CAACsB;cACd;YACJ,CAAC;UAET,CAAC,CAAC;UAEFrB,UAAU,CAAC,KAAK,CAAC;UAEjB,IAAI,CAACsB,cAAc,IAAI,CAACA,cAAc,CAACS,IAAI,EAAE;YACzCzB,YAAY,qDAAqD,CAAC;YAClE;UACJ;UAEA,IAAA0B,qBAAA,GAAwBV,cAAc,CAACS,IAAI,CAACE,OAAO;YAA3CF,IAAI,GAAAC,qBAAA,CAAJD,IAAI;YAAEG,KAAK,GAAAF,qBAAA,CAALE,KAAK;UAEnB,IAAIA,KAAK,EAAE;YACP5B,YAAY,CAAC4B,KAAK,CAACC,OAAO,CAAC;YAC3B;UACJ,CAAC,MAAM,IAAI,CAACJ,IAAI,EAAE;YACdzB,YAAY,4CAA4C,CAAC;YACzD;UACJ;UAEAM,mBAAmB,CAACmB,IAAI,CAAC;UAEzB5B,OAAO,CAACiC,IAAI,yBAAAC,MAAA,CACgB5B,OAAO,UAAA4B,MAAA,CAAOC,kBAAkB,CAACP,IAAI,CAACV,EAAE,CAAC,CACrE,CAAC;QACL,CAAC;MAAA;MACLkB,YAAY,EACR,SAAAA,aAAA;QAAA,OACA,UAAClB,EAAE,EAAW;UACVlB,OAAO,CAACiC,IAAI,yBAAAC,MAAA,CACgB5B,OAAO,WAAA4B,MAAA,CAAQC,kBAAkB,CACrDjB,EAAE,IAAI/B,QAAQ,CAAC+B,EACnB,CAAC,CACL,CAAC;QACL,CAAC;MAAA;MACLmB,cAAc,EACV,SAAAA,eAAAC,KAAA;QAAA,IAAG1C,KAAK,GAAA0C,KAAA,CAAL1C,KAAK;QAAA,OACR,gBAAOsB,EAAE,EAAoB;UACzBrB,UAAU,CAAC,IAAI,CAAC;UAEhB,IAAA0C,kBAAA,GAAkB,MAAM/C,WAAW,CAAC;cAChCgD,KAAK,EAAE7C,YAAY;cACnBC,KAAK,EAALA,KAAK;cACLsB,EAAE,EAAEA,EAAE,IAAItB,KAAK,CAACsB;YACpB,CAAC,CAAC;YAJMa,KAAK,GAAAQ,kBAAA,CAALR,KAAK;UAMblC,UAAU,CAAC,KAAK,CAAC;UAEjB,IAAIkC,KAAK,EAAE;YACP5B,YAAY,CAAC4B,KAAK,CAACC,OAAO,CAAC;YAC3B;UACJ;;UAEA;UACA,IAAMS,oBAAoB,GACtBrC,MAAM,CAACsC,KAAK,CAACC,SAAS,CAAuC;YACzDjB,KAAK,EAAE,IAAAC,0CAAoB,EAAChC,YAAY,CAAC;YACzC2B,SAAS,EAAE;cACPJ,EAAE,EAAEtB,KAAK,CAACgD;YACd;UACJ,CAAC,CAAC;;UAEN;UACA;UACA;UACA,IAAMC,iBAAiB,GAAGJ,oBAAoB,EAAEK,SAAS,CAAClB,IAAI,CAACmB,IAAI,CAC/D,UAAA5D,QAAQ;YAAA,OAAIA,QAAQ,CAAC6D,IAAI,CAACC,OAAO,KAAKrD,KAAK,CAACoD,IAAI,CAACC,OAAO;UAAA,CAC5D,CAAC;;UAED;UACA,IAAIJ,iBAAiB,EAAE;YACnB;YACA;YACApC,mBAAmB,CAACoC,iBAAiB,CAAC;UAC1C,CAAC,MAAM;YACH;YACA;YACAnC,qBAAqB,CAACd,KAAK,CAACsB,EAAE,CAAC;UACnC;;UAEA;UACAf,YAAY,eACR9B,MAAA,CAAA6E,OAAA,CAAAC,aAAA,CAACnE,+BAAA,CAAAoE,8BAA8B;YAC3BC,eAAe,EAAEzD,KAAM;YACvBiD,iBAAiB,EAAEA;UAAkB,CACxC,CACL,CAAC;;UAED;UACA,IAAIS,cAAc,2BAAApB,MAAA,CAA2B5B,OAAO,CAAE;UACtD,IAAIuC,iBAAiB,EAAE;YACnB;YACAS,cAAc,WAAApB,MAAA,CAAWC,kBAAkB,CAACU,iBAAiB,CAAC3B,EAAE,CAAC,CAAE;UACvE;UAEAlB,OAAO,CAACiC,IAAI,CAACqB,cAAc,CAAC;QAChC,CAAC;MAAA;MACLC,eAAe,EACX,SAAAA,gBAAAC,KAAA;QAAA,IAAG5D,KAAK,GAAA4D,KAAA,CAAL5D,KAAK;QAAA,OACR,gBAAMsB,EAAE,EAAI;UACRrB,UAAU,CAAC,IAAI,CAAC;UAEhB,IAAM4D,QAAQ,GAAG,MAAMnE,oBAAoB,CAAC;YACxCkD,KAAK,EAAE7C,YAAY;YACnBC,KAAK,EAALA,KAAK;YACLsB,EAAE,EAAEA,EAAE,IAAItB,KAAK,CAACsB;UACpB,CAAC,CAAC;UAEFrB,UAAU,CAAC,KAAK,CAAC;UAEjB,IAAQkC,KAAK,GAAyB0B,QAAQ,CAAtC1B,KAAK;YAAS2B,WAAW,GAAKD,QAAQ,CAA/B7D,KAAK;UACpB,IAAImC,KAAK,EAAE;YACP5B,YAAY,CAAC4B,KAAK,CAACC,OAAO,CAAC;YAC3B;UACJ;UAEAvB,mBAAmB,CAACiD,WAAW,CAAC;UAEhCvD,YAAY,eACR9B,MAAA,CAAA6E,OAAA,CAAAC,aAAA,eAAM,iCAC6B,EAAC,GAAG,eACnC9E,MAAA,CAAA6E,OAAA,CAAAC,aAAA,iBAAQ,GAAC,EAACM,QAAQ,CAAC7D,KAAK,CAAEoD,IAAI,CAACC,OAAgB,CAAC,KAC9C,CACV,CAAC;QACL,CAAC;MAAA;MACLU,iBAAiB,EACb,SAAAA,kBAAAC,KAAA;QAAA,IAAGhE,KAAK,GAAAgE,KAAA,CAALhE,KAAK;QAAA,OACR,gBAAMsB,EAAE,EAAI;UACRrB,UAAU,CAAC,IAAI,CAAC;UAEhB,IAAM4D,QAAQ,GAAG,MAAMlE,sBAAsB,CAAC;YAC1CiD,KAAK,EAAE7C,YAAY;YACnBC,KAAK,EAALA,KAAK;YACLsB,EAAE,EAAEA,EAAE,IAAItB,KAAK,CAACsB;UACpB,CAAC,CAAC;UAEFrB,UAAU,CAAC,KAAK,CAAC;UAEjB,IAAQkC,KAAK,GAAyB0B,QAAQ,CAAtC1B,KAAK;YAAS2B,WAAW,GAAKD,QAAQ,CAA/B7D,KAAK;UAEpB,IAAImC,KAAK,EAAE;YACP5B,YAAY,CAAC4B,KAAK,CAACC,OAAO,CAAC;YAC3B;UACJ;UAEAvB,mBAAmB,CAACiD,WAAW,CAAC;UAEhCvD,YAAY,eACR9B,MAAA,CAAA6E,OAAA,CAAAC,aAAA,eAAM,mCAC+B,EAAC,GAAG,eACrC9E,MAAA,CAAA6E,OAAA,CAAAC,aAAA,iBAAQ,GAAC,EAAChE,QAAQ,CAAC6D,IAAI,CAACC,OAAgB,CAAC,KACvC,CACV,CAAC;QACL,CAAC;MAAA;IACT,CACJ,CAAC;IAnLGhC,cAAc,GAAAF,YAAA,CAAdE,cAAc;IAAEmB,YAAY,GAAArB,YAAA,CAAZqB,YAAY;IAAEC,cAAc,GAAAtB,YAAA,CAAdsB,cAAc;IAAEkB,eAAe,GAAAxC,YAAA,CAAfwC,eAAe;IAAEI,iBAAiB,GAAA5C,YAAA,CAAjB4C,iBAAiB;EAqLxF,OAAO;IACH1C,cAAc,EAAdA,cAAc;IACdmB,YAAY,EAAZA,YAAY;IACZC,cAAc,EAAdA,cAAc;IACdkB,eAAe,EAAfA,eAAe;IACfI,iBAAiB,EAAjBA;EACJ,CAAC;AACL,CAAC;AAACE,OAAA,CAAA5E,WAAA,GAAAA,WAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/app-headless-cms",
3
- "version": "5.39.12-beta.0",
3
+ "version": "5.39.12-beta.2",
4
4
  "main": "index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -28,28 +28,28 @@
28
28
  "@material-design-icons/svg": "0.14.2",
29
29
  "@svgr/webpack": "6.5.1",
30
30
  "@types/react": "17.0.39",
31
- "@webiny/app": "5.39.12-beta.0",
32
- "@webiny/app-aco": "5.39.12-beta.0",
33
- "@webiny/app-admin": "5.39.12-beta.0",
34
- "@webiny/app-graphql-playground": "5.39.12-beta.0",
35
- "@webiny/app-headless-cms-common": "5.39.12-beta.0",
36
- "@webiny/app-i18n": "5.39.12-beta.0",
37
- "@webiny/app-plugin-admin-welcome-screen": "5.39.12-beta.0",
38
- "@webiny/app-security": "5.39.12-beta.0",
39
- "@webiny/error": "5.39.12-beta.0",
40
- "@webiny/feature-flags": "5.39.12-beta.0",
41
- "@webiny/form": "5.39.12-beta.0",
42
- "@webiny/lexical-editor": "5.39.12-beta.0",
43
- "@webiny/lexical-nodes": "5.39.12-beta.0",
44
- "@webiny/lexical-theme": "5.39.12-beta.0",
45
- "@webiny/plugins": "5.39.12-beta.0",
46
- "@webiny/react-composition": "5.39.12-beta.0",
47
- "@webiny/react-properties": "5.39.12-beta.0",
48
- "@webiny/react-router": "5.39.12-beta.0",
49
- "@webiny/theme": "5.39.12-beta.0",
50
- "@webiny/ui": "5.39.12-beta.0",
51
- "@webiny/utils": "5.39.12-beta.0",
52
- "@webiny/validation": "5.39.12-beta.0",
31
+ "@webiny/app": "5.39.12-beta.2",
32
+ "@webiny/app-aco": "5.39.12-beta.2",
33
+ "@webiny/app-admin": "5.39.12-beta.2",
34
+ "@webiny/app-graphql-playground": "5.39.12-beta.2",
35
+ "@webiny/app-headless-cms-common": "5.39.12-beta.2",
36
+ "@webiny/app-i18n": "5.39.12-beta.2",
37
+ "@webiny/app-plugin-admin-welcome-screen": "5.39.12-beta.2",
38
+ "@webiny/app-security": "5.39.12-beta.2",
39
+ "@webiny/error": "5.39.12-beta.2",
40
+ "@webiny/feature-flags": "5.39.12-beta.2",
41
+ "@webiny/form": "5.39.12-beta.2",
42
+ "@webiny/lexical-editor": "5.39.12-beta.2",
43
+ "@webiny/lexical-nodes": "5.39.12-beta.2",
44
+ "@webiny/lexical-theme": "5.39.12-beta.2",
45
+ "@webiny/plugins": "5.39.12-beta.2",
46
+ "@webiny/react-composition": "5.39.12-beta.2",
47
+ "@webiny/react-properties": "5.39.12-beta.2",
48
+ "@webiny/react-router": "5.39.12-beta.2",
49
+ "@webiny/theme": "5.39.12-beta.2",
50
+ "@webiny/ui": "5.39.12-beta.2",
51
+ "@webiny/utils": "5.39.12-beta.2",
52
+ "@webiny/validation": "5.39.12-beta.2",
53
53
  "apollo-cache": "1.3.5",
54
54
  "apollo-client": "2.6.10",
55
55
  "apollo-link": "1.2.14",
@@ -80,8 +80,8 @@
80
80
  "@babel/preset-env": "7.22.7",
81
81
  "@babel/preset-react": "7.22.5",
82
82
  "@babel/preset-typescript": "7.22.5",
83
- "@webiny/cli": "5.39.12-beta.0",
84
- "@webiny/project-utils": "5.39.12-beta.0",
83
+ "@webiny/cli": "5.39.12-beta.2",
84
+ "@webiny/project-utils": "5.39.12-beta.2",
85
85
  "babel-plugin-emotion": "9.2.11",
86
86
  "babel-plugin-module-resolver": "4.1.0",
87
87
  "rimraf": "3.0.2",
@@ -111,5 +111,5 @@
111
111
  ]
112
112
  }
113
113
  },
114
- "gitHead": "a6f22210d2b2f9bd51c150db5dff96e5719b010f"
114
+ "gitHead": "78121c6f8869f99577e2ab5b2cf1d9e9fd87dd2a"
115
115
  }