@webiny/app-headless-cms 5.31.0 → 5.32.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.
- package/HeadlessCMS.js +10 -0
- package/HeadlessCMS.js.map +1 -1
- package/admin/plugins/getObjectId.d.ts +3 -3
- package/admin/plugins/getObjectId.js +11 -11
- package/admin/plugins/getObjectId.js.map +1 -1
- package/admin/plugins/index.d.ts +1 -1
- package/admin/views/contentModels/ContentModelsDataList.js +1 -0
- package/admin/views/contentModels/ContentModelsDataList.js.map +1 -1
- package/admin/views/contentModels/cache.d.ts +8 -1
- package/admin/views/contentModels/cache.js +22 -1
- package/admin/views/contentModels/cache.js.map +1 -1
- package/package.json +18 -18
package/HeadlessCMS.js
CHANGED
|
@@ -15,6 +15,8 @@ var _plugins = require("@webiny/plugins");
|
|
|
15
15
|
|
|
16
16
|
var _appAdmin = require("@webiny/app-admin");
|
|
17
17
|
|
|
18
|
+
var _app = require("@webiny/app");
|
|
19
|
+
|
|
18
20
|
var _Cms = require("./admin/contexts/Cms");
|
|
19
21
|
|
|
20
22
|
var _CmsMenuLoader = require("./admin/menus/CmsMenuLoader");
|
|
@@ -43,6 +45,14 @@ var HeadlessCMSExtension = function HeadlessCMSExtension(_ref2) {
|
|
|
43
45
|
|
|
44
46
|
_plugins.plugins.register(_apiInformation.default);
|
|
45
47
|
|
|
48
|
+
_plugins.plugins.register(new _app.ApolloCacheObjectIdPlugin(function (obj) {
|
|
49
|
+
if (obj.__typename === "CmsContentModelField") {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return undefined;
|
|
54
|
+
}));
|
|
55
|
+
|
|
46
56
|
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_ContentEntriesModule.ContentEntriesModule, null), /*#__PURE__*/_react.default.createElement(_appAdmin.Provider, {
|
|
47
57
|
hoc: createHeadlessCMSProvider(createApolloClient)
|
|
48
58
|
}), /*#__PURE__*/_react.default.createElement(_appAdmin.Plugins, null, /*#__PURE__*/_react.default.createElement(_CmsMenuLoader.CmsMenuLoader, null), /*#__PURE__*/_react.default.createElement(_DefaultOnEntryDelete.DefaultOnEntryDelete, null), /*#__PURE__*/_react.default.createElement(_DefaultOnEntryPublish.DefaultOnEntryPublish, null)));
|
package/HeadlessCMS.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createHeadlessCMSProvider","createApolloClient","Component","HeadlessCMSProvider","children","HeadlessCMSExtension","plugins","register","apiInformation","HeadlessCMS","memo"],"sources":["HeadlessCMS.tsx"],"sourcesContent":["import React, { Fragment, memo } from \"react\";\nimport { plugins } from \"@webiny/plugins\";\nimport { Plugins, Provider } from \"@webiny/app-admin\";\nimport { ApolloClient } from \"apollo-client\";\nimport { CmsProvider } from \"./admin/contexts/Cms\";\nimport { CmsMenuLoader } from \"~/admin/menus/CmsMenuLoader\";\nimport apiInformation from \"./admin/plugins/apiInformation\";\nimport { ContentEntriesModule } from \"./admin/views/contentEntries/experiment/ContentEntriesModule\";\nimport { DefaultOnEntryDelete } from \"./admin/plugins/entry/DefaultOnEntryDelete\";\nimport { DefaultOnEntryPublish } from \"~/admin/plugins/entry/DefaultOnEntryPublish\";\n\nconst createHeadlessCMSProvider =\n (createApolloClient: CreateApolloClient) =>\n (Component: React.FC): React.FC => {\n return function HeadlessCMSProvider({ children }) {\n return (\n <CmsProvider createApolloClient={createApolloClient}>\n <Component>{children}</Component>\n </CmsProvider>\n );\n };\n };\n\ninterface CreateApolloClientParams {\n uri: string;\n}\ninterface CreateApolloClient {\n (params: CreateApolloClientParams): ApolloClient<any>;\n}\n\nexport interface HeadlessCMSProps {\n createApolloClient: CreateApolloClient;\n}\n\nconst HeadlessCMSExtension = ({ createApolloClient }: HeadlessCMSProps) => {\n plugins.register(apiInformation);\n\n return (\n <Fragment>\n <ContentEntriesModule />\n <Provider hoc={createHeadlessCMSProvider(createApolloClient)} />\n <Plugins>\n <CmsMenuLoader />\n <DefaultOnEntryDelete />\n <DefaultOnEntryPublish />\n </Plugins>\n </Fragment>\n );\n};\n\nexport const HeadlessCMS = memo(HeadlessCMSExtension);\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,yBAAyB,GAC3B,SADEA,yBACF,CAACC,kBAAD;EAAA,OACA,UAACC,SAAD,EAAmC;IAC/B,OAAO,SAASC,mBAAT,OAA2C;MAAA,IAAZC,QAAY,QAAZA,QAAY;MAC9C,oBACI,6BAAC,gBAAD;QAAa,kBAAkB,EAAEH;MAAjC,gBACI,6BAAC,SAAD,QAAYG,QAAZ,CADJ,CADJ;IAKH,CAND;EAOH,CATD;AAAA,CADJ;;AAuBA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,QAA8C;EAAA,IAA3CJ,kBAA2C,SAA3CA,kBAA2C;;EACvEK,gBAAA,CAAQC,QAAR,CAAiBC,uBAAjB;;
|
|
1
|
+
{"version":3,"names":["createHeadlessCMSProvider","createApolloClient","Component","HeadlessCMSProvider","children","HeadlessCMSExtension","plugins","register","apiInformation","ApolloCacheObjectIdPlugin","obj","__typename","undefined","HeadlessCMS","memo"],"sources":["HeadlessCMS.tsx"],"sourcesContent":["import React, { Fragment, memo } from \"react\";\nimport { plugins } from \"@webiny/plugins\";\nimport { Plugins, Provider } from \"@webiny/app-admin\";\nimport { ApolloCacheObjectIdPlugin } from \"@webiny/app\";\nimport { ApolloClient } from \"apollo-client\";\nimport { CmsProvider } from \"./admin/contexts/Cms\";\nimport { CmsMenuLoader } from \"~/admin/menus/CmsMenuLoader\";\nimport apiInformation from \"./admin/plugins/apiInformation\";\nimport { ContentEntriesModule } from \"./admin/views/contentEntries/experiment/ContentEntriesModule\";\nimport { DefaultOnEntryDelete } from \"./admin/plugins/entry/DefaultOnEntryDelete\";\nimport { DefaultOnEntryPublish } from \"~/admin/plugins/entry/DefaultOnEntryPublish\";\n\nconst createHeadlessCMSProvider =\n (createApolloClient: CreateApolloClient) =>\n (Component: React.FC): React.FC => {\n return function HeadlessCMSProvider({ children }) {\n return (\n <CmsProvider createApolloClient={createApolloClient}>\n <Component>{children}</Component>\n </CmsProvider>\n );\n };\n };\n\ninterface CreateApolloClientParams {\n uri: string;\n}\ninterface CreateApolloClient {\n (params: CreateApolloClientParams): ApolloClient<any>;\n}\n\nexport interface HeadlessCMSProps {\n createApolloClient: CreateApolloClient;\n}\n\nconst HeadlessCMSExtension = ({ createApolloClient }: HeadlessCMSProps) => {\n plugins.register(apiInformation);\n\n plugins.register(\n new ApolloCacheObjectIdPlugin(obj => {\n if (obj.__typename === \"CmsContentModelField\") {\n return null;\n }\n\n return undefined;\n })\n );\n\n return (\n <Fragment>\n <ContentEntriesModule />\n <Provider hoc={createHeadlessCMSProvider(createApolloClient)} />\n <Plugins>\n <CmsMenuLoader />\n <DefaultOnEntryDelete />\n <DefaultOnEntryPublish />\n </Plugins>\n </Fragment>\n );\n};\n\nexport const HeadlessCMS = memo(HeadlessCMSExtension);\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,yBAAyB,GAC3B,SADEA,yBACF,CAACC,kBAAD;EAAA,OACA,UAACC,SAAD,EAAmC;IAC/B,OAAO,SAASC,mBAAT,OAA2C;MAAA,IAAZC,QAAY,QAAZA,QAAY;MAC9C,oBACI,6BAAC,gBAAD;QAAa,kBAAkB,EAAEH;MAAjC,gBACI,6BAAC,SAAD,QAAYG,QAAZ,CADJ,CADJ;IAKH,CAND;EAOH,CATD;AAAA,CADJ;;AAuBA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,QAA8C;EAAA,IAA3CJ,kBAA2C,SAA3CA,kBAA2C;;EACvEK,gBAAA,CAAQC,QAAR,CAAiBC,uBAAjB;;EAEAF,gBAAA,CAAQC,QAAR,CACI,IAAIE,8BAAJ,CAA8B,UAAAC,GAAG,EAAI;IACjC,IAAIA,GAAG,CAACC,UAAJ,KAAmB,sBAAvB,EAA+C;MAC3C,OAAO,IAAP;IACH;;IAED,OAAOC,SAAP;EACH,CAND,CADJ;;EAUA,oBACI,6BAAC,eAAD,qBACI,6BAAC,0CAAD,OADJ,eAEI,6BAAC,kBAAD;IAAU,GAAG,EAAEZ,yBAAyB,CAACC,kBAAD;EAAxC,EAFJ,eAGI,6BAAC,iBAAD,qBACI,6BAAC,4BAAD,OADJ,eAEI,6BAAC,0CAAD,OAFJ,eAGI,6BAAC,4CAAD,OAHJ,CAHJ,CADJ;AAWH,CAxBD;;AA0BO,IAAMY,WAAW,gBAAG,IAAAC,WAAA,EAAKT,oBAAL,CAApB"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare const
|
|
3
|
-
export default
|
|
1
|
+
import { ApolloCacheObjectIdPlugin } from "@webiny/app";
|
|
2
|
+
declare const _default: ApolloCacheObjectIdPlugin<import("@webiny/app/plugins/ApolloCacheObjectIdPlugin").ApolloCacheObject>;
|
|
3
|
+
export default _default;
|
|
@@ -4,17 +4,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var plugin = {
|
|
8
|
-
type: "cache-get-object-id",
|
|
9
|
-
getObjectId: function getObjectId(obj) {
|
|
10
|
-
switch (obj.__typename) {
|
|
11
|
-
case "CmsContentModel":
|
|
12
|
-
return obj.modelId;
|
|
13
7
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
8
|
+
var _app = require("@webiny/app");
|
|
9
|
+
|
|
10
|
+
var _default = new _app.ApolloCacheObjectIdPlugin(function (obj) {
|
|
11
|
+
switch (obj.__typename) {
|
|
12
|
+
case "CmsContentModel":
|
|
13
|
+
return "".concat(obj.__typename, ":").concat(obj.modelId);
|
|
14
|
+
|
|
15
|
+
default:
|
|
16
|
+
return undefined;
|
|
17
17
|
}
|
|
18
|
-
};
|
|
19
|
-
|
|
18
|
+
});
|
|
19
|
+
|
|
20
20
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["ApolloCacheObjectIdPlugin","obj","__typename","modelId","undefined"],"sources":["getObjectId.ts"],"sourcesContent":["import { ApolloCacheObjectIdPlugin } from \"@webiny/app\";\n\nexport default new ApolloCacheObjectIdPlugin(obj => {\n switch (obj.__typename) {\n case \"CmsContentModel\":\n return `${obj.__typename}:${obj.modelId}`;\n default:\n return undefined;\n }\n});\n"],"mappings":";;;;;;;AAAA;;eAEe,IAAIA,8BAAJ,CAA8B,UAAAC,GAAG,EAAI;EAChD,QAAQA,GAAG,CAACC,UAAZ;IACI,KAAK,iBAAL;MACI,iBAAUD,GAAG,CAACC,UAAd,cAA4BD,GAAG,CAACE,OAAhC;;IACJ;MACI,OAAOC,SAAP;EAJR;AAMH,CAPc,C"}
|
package/admin/plugins/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
declare const _default: () => (import("
|
|
2
|
+
declare const _default: () => (import("../../types").CmsEditorFormSettingsPlugin | import("../../types").CmsIconsPlugin | import("../../types").CmsFieldValueTransformer[] | import("@webiny/app").ApolloCacheObjectIdPlugin<import("@webiny/app/plugins/ApolloCacheObjectIdPlugin").ApolloCacheObject> | import("@webiny/app/types").RoutePlugin[] | import("@webiny/app-admin/types").AdminInstallationPlugin | import("@webiny/app-admin/types").AdminAppPermissionRendererPlugin | import("../../types").CmsContentDetailsPlugin[] | {
|
|
3
3
|
name: string;
|
|
4
4
|
type: string;
|
|
5
5
|
render(): JSX.Element;
|
|
@@ -182,6 +182,7 @@ var ContentModelsDataList = function ContentModelsDataList(_ref) {
|
|
|
182
182
|
|
|
183
183
|
(0, _cache.removeModelFromListCache)(cache, item);
|
|
184
184
|
(0, _cache.removeModelFromGroupCache)(cache, item);
|
|
185
|
+
(0, _cache.removeModelFromCache)(client, item);
|
|
185
186
|
showSnackbar(t(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["Content model {name} deleted successfully!."])))({
|
|
186
187
|
name: item.name
|
|
187
188
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["t","i18n","namespace","SORTERS","label","sorters","rightAlign","css","alignItems","justifyContent","listItemMinHeight","minHeight","ContentModelsDataList","canCreate","onCreate","onClone","useState","filter","setFilter","sort","setSort","useRouter","history","client","useApolloClient","useSnackbar","showSnackbar","useConfirmationDialog","dataTestId","showConfirmation","useQuery","GQL","LIST_CONTENT_MODELS","data","loading","usePermission","canDelete","canEdit","filterData","useCallback","name","toLowerCase","includes","sortData","list","deserializeSorters","sortField","sortOrderBy","orderBy","models","get","deleteRecord","item","mutate","mutation","DELETE_CONTENT_MODEL","variables","modelId","update","cache","error","deleteContentModel","message","title","removeModelFromListCache","removeModelFromGroupCache","editRecord","contentModel","push","viewContentEntries","contentModelsDataListModalOverlay","useMemo","map","filteredData","contentModels","disableViewContent","fields","length","time","savedOn","plugin"],"sources":["ContentModelsDataList.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useState } from \"react\";\n/**\n * Package timeago-react does not have types.\n */\n// @ts-ignore\nimport TimeAgo from \"timeago-react\";\nimport { css } from \"emotion\";\nimport get from \"lodash/get\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { DeleteIcon, EditIcon } from \"@webiny/ui/List/DataList/icons\";\nimport { ReactComponent as ViewListIcon } from \"../../icons/view_list.svg\";\nimport { ReactComponent as CloneIcon } from \"../../icons/clone.svg\";\nimport { useApolloClient, useQuery } from \"../../hooks\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport * as UIL from \"@webiny/ui/List\";\nimport { ButtonIcon, ButtonSecondary, IconButton } from \"@webiny/ui/Button\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useConfirmationDialog } from \"@webiny/app-admin/hooks/useConfirmationDialog\";\nimport { removeModelFromGroupCache, removeModelFromListCache } from \"./cache\";\nimport * as GQL from \"../../viewsGraphql\";\nimport { ReactComponent as AddIcon } from \"@webiny/app-admin/assets/icons/add-18px.svg\";\nimport SearchUI from \"@webiny/app-admin/components/SearchUI\";\nimport { deserializeSorters } from \"../utils\";\nimport orderBy from \"lodash/orderBy\";\nimport { Cell, Grid } from \"@webiny/ui/Grid\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { ReactComponent as FilterIcon } from \"@webiny/app-admin/assets/icons/filter-24px.svg\";\nimport { CmsEditorContentModel, CmsModel } from \"~/types\";\nimport {\n DeleteCmsModelMutationResponse,\n DeleteCmsModelMutationVariables,\n ListCmsModelsQueryResponse\n} from \"../../viewsGraphql\";\nimport usePermission from \"~/admin/hooks/usePermission\";\n\nconst t = i18n.namespace(\"FormsApp.ContentModelsDataList\");\n\ninterface Sorter {\n label: string;\n sorters: string;\n}\nconst SORTERS: Sorter[] = [\n {\n label: t`Newest to oldest`,\n sorters: \"savedOn_DESC\"\n },\n {\n label: t`Oldest to newest`,\n sorters: \"savedOn_ASC\"\n },\n {\n label: t`Name A-Z`,\n sorters: \"name_ASC\"\n },\n {\n label: t`Name Z-A`,\n sorters: \"name_DESC\"\n }\n];\n\nconst rightAlign = css({\n alignItems: \"flex-end !important\",\n justifyContent: \"center !important\"\n});\n\nconst listItemMinHeight = css({\n minHeight: \"66px !important\"\n});\n\ninterface ContentModelsDataListProps {\n canCreate: boolean;\n onCreate: () => void;\n onClone: (contentModel: CmsEditorContentModel) => void;\n}\nconst ContentModelsDataList: React.FC<ContentModelsDataListProps> = ({\n canCreate,\n onCreate,\n onClone\n}) => {\n const [filter, setFilter] = useState<string>(\"\");\n const [sort, setSort] = useState<string>(SORTERS[0].sorters);\n const { history } = useRouter();\n const client = useApolloClient();\n const { showSnackbar } = useSnackbar();\n const { showConfirmation } = useConfirmationDialog({\n dataTestId: \"cms-delete-content-model-dialog\"\n });\n const { data, loading } = useQuery<ListCmsModelsQueryResponse>(GQL.LIST_CONTENT_MODELS);\n const { canDelete, canEdit } = usePermission();\n\n const filterData = useCallback(\n ({ name }: Pick<CmsModel, \"name\">): boolean => {\n return name.toLowerCase().includes(filter);\n },\n [filter]\n );\n\n const sortData = useCallback(\n (list: CmsModel[]): CmsModel[] => {\n if (!sort) {\n return list;\n }\n const [sortField, sortOrderBy] = deserializeSorters(sort);\n return orderBy(list, [sortField], [sortOrderBy]);\n },\n [sort]\n );\n\n const models: CmsModel[] = loading ? [] : get(data, \"listContentModels.data\", []);\n\n const deleteRecord = async (item: CmsModel): Promise<void> => {\n showConfirmation(async () => {\n await client.mutate<DeleteCmsModelMutationResponse, DeleteCmsModelMutationVariables>({\n mutation: GQL.DELETE_CONTENT_MODEL,\n variables: { modelId: item.modelId },\n update(cache, { data }) {\n if (!data) {\n showSnackbar(\"Missing data on Delete Content Model Mutation Response.\");\n return;\n }\n const { error } = data.deleteContentModel;\n\n if (error) {\n showSnackbar(error.message, {\n title: t`Something unexpected happened.`\n });\n return;\n }\n\n removeModelFromListCache(cache, item);\n removeModelFromGroupCache(cache, item);\n\n showSnackbar(\n t`Content model {name} deleted successfully!.`({ name: item.name })\n );\n }\n });\n });\n };\n\n const editRecord = (contentModel: CmsModel): void => {\n history.push(\"/cms/content-models/\" + contentModel.modelId);\n };\n\n const viewContentEntries = useCallback(contentModel => {\n return () => history.push(\"/cms/content-entries/\" + contentModel.modelId);\n }, []);\n\n const contentModelsDataListModalOverlay = useMemo(\n () => (\n <UIL.DataListModalOverlay>\n <Grid>\n <Cell span={12}>\n <Select\n value={sort}\n onChange={setSort}\n label={t`Sort by`}\n description={\"Sort content models by\"}\n >\n {SORTERS.map(({ label, sorters }) => {\n return (\n <option key={label} value={sorters}>\n {label}\n </option>\n );\n })}\n </Select>\n </Cell>\n </Grid>\n </UIL.DataListModalOverlay>\n ),\n [sort]\n );\n\n const filteredData = filter === \"\" ? models : models.filter(filterData);\n const contentModels = sortData(filteredData);\n\n return (\n <UIL.DataList\n loading={loading}\n data={contentModels}\n title={t`Content Models`}\n actions={\n canCreate ? (\n <ButtonSecondary data-testid=\"new-record-button\" onClick={onCreate}>\n <ButtonIcon icon={<AddIcon />} /> {t`New Model`}\n </ButtonSecondary>\n ) : null\n }\n search={\n <SearchUI\n value={filter}\n onChange={setFilter}\n inputPlaceholder={t`Search content models`}\n />\n }\n modalOverlay={contentModelsDataListModalOverlay}\n modalOverlayAction={\n <UIL.DataListModalOverlayAction\n icon={<FilterIcon />}\n data-testid={\"default-data-list.filter\"}\n />\n }\n >\n {({ data = [] }: { data: CmsModel[] }) => (\n <UIL.List data-testid=\"default-data-list\">\n {data.map(contentModel => {\n const disableViewContent = contentModel.fields.length === 0;\n const message = disableViewContent\n ? \"To view the content, you first need to add a field and save the model\"\n : \"View content\";\n return (\n <UIL.ListItem key={contentModel.modelId} className={listItemMinHeight}>\n <UIL.ListItemText>\n {contentModel.name}\n <UIL.ListItemTextSecondary>\n {t`Last modified: {time}.`({\n time: <TimeAgo datetime={contentModel.savedOn} />\n })}\n </UIL.ListItemTextSecondary>\n </UIL.ListItemText>\n <UIL.ListItemMeta className={rightAlign}>\n <UIL.ListActions>\n {canEdit(contentModel, \"cms.contentModel\") && (\n <>\n <Tooltip\n content={t`{message}`({ message })}\n placement={\"top\"}\n >\n <IconButton\n data-testid={\n \"cms-view-content-model-button\"\n }\n icon={<ViewListIcon />}\n label={t`View entries`}\n onClick={viewContentEntries(contentModel)}\n disabled={disableViewContent}\n />\n </Tooltip>\n {contentModel.plugin ? (\n <Tooltip\n content={t`Content model is registered via a plugin.`}\n placement={\"top\"}\n >\n <EditIcon\n disabled\n data-testid={\n \"cms-edit-content-model-button\"\n }\n />\n </Tooltip>\n ) : (\n <Tooltip\n content={t`Edit content model`}\n placement={\"top\"}\n >\n <EditIcon\n onClick={() => editRecord(contentModel)}\n data-testid={\n \"cms-edit-content-model-button\"\n }\n />\n </Tooltip>\n )}\n </>\n )}\n\n <Tooltip content={\"Clone content model\"} placement={\"top\"}>\n <IconButton\n data-testid={\"cms-clone-content-model-button\"}\n icon={<CloneIcon />}\n label={t`View entries`}\n onClick={() => onClone(contentModel)}\n />\n </Tooltip>\n\n {canDelete(contentModel, \"cms.contentModel\") &&\n contentModel.plugin ? (\n <Tooltip\n content={t`Content model is registered via a plugin.`}\n placement={\"top\"}\n >\n <DeleteIcon\n disabled\n data-testid={\"cms-delete-content-model-button\"}\n />\n </Tooltip>\n ) : (\n <Tooltip\n content={t`Delete content model`}\n placement={\"top\"}\n >\n <DeleteIcon\n onClick={() => deleteRecord(contentModel)}\n data-testid={\"cms-delete-content-model-button\"}\n />\n </Tooltip>\n )}\n </UIL.ListActions>\n </UIL.ListItemMeta>\n </UIL.ListItem>\n );\n })}\n </UIL.List>\n )}\n </UIL.DataList>\n );\n};\n\nexport default ContentModelsDataList;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["t","i18n","namespace","SORTERS","label","sorters","rightAlign","css","alignItems","justifyContent","listItemMinHeight","minHeight","ContentModelsDataList","canCreate","onCreate","onClone","useState","filter","setFilter","sort","setSort","useRouter","history","client","useApolloClient","useSnackbar","showSnackbar","useConfirmationDialog","dataTestId","showConfirmation","useQuery","GQL","LIST_CONTENT_MODELS","data","loading","usePermission","canDelete","canEdit","filterData","useCallback","name","toLowerCase","includes","sortData","list","deserializeSorters","sortField","sortOrderBy","orderBy","models","get","deleteRecord","item","mutate","mutation","DELETE_CONTENT_MODEL","variables","modelId","update","cache","error","deleteContentModel","message","title","removeModelFromListCache","removeModelFromGroupCache","removeModelFromCache","editRecord","contentModel","push","viewContentEntries","contentModelsDataListModalOverlay","useMemo","map","filteredData","contentModels","disableViewContent","fields","length","time","savedOn","plugin"],"sources":["ContentModelsDataList.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useState } from \"react\";\n/**\n * Package timeago-react does not have types.\n */\n// @ts-ignore\nimport TimeAgo from \"timeago-react\";\nimport { css } from \"emotion\";\nimport get from \"lodash/get\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { DeleteIcon, EditIcon } from \"@webiny/ui/List/DataList/icons\";\nimport { ReactComponent as ViewListIcon } from \"../../icons/view_list.svg\";\nimport { ReactComponent as CloneIcon } from \"../../icons/clone.svg\";\nimport { useApolloClient, useQuery } from \"../../hooks\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport * as UIL from \"@webiny/ui/List\";\nimport { ButtonIcon, ButtonSecondary, IconButton } from \"@webiny/ui/Button\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useConfirmationDialog } from \"@webiny/app-admin/hooks/useConfirmationDialog\";\nimport { removeModelFromGroupCache, removeModelFromListCache, removeModelFromCache } from \"./cache\";\nimport * as GQL from \"../../viewsGraphql\";\nimport { ReactComponent as AddIcon } from \"@webiny/app-admin/assets/icons/add-18px.svg\";\nimport SearchUI from \"@webiny/app-admin/components/SearchUI\";\nimport { deserializeSorters } from \"../utils\";\nimport orderBy from \"lodash/orderBy\";\nimport { Cell, Grid } from \"@webiny/ui/Grid\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { ReactComponent as FilterIcon } from \"@webiny/app-admin/assets/icons/filter-24px.svg\";\nimport { CmsEditorContentModel, CmsModel } from \"~/types\";\nimport {\n DeleteCmsModelMutationResponse,\n DeleteCmsModelMutationVariables,\n ListCmsModelsQueryResponse\n} from \"../../viewsGraphql\";\nimport usePermission from \"~/admin/hooks/usePermission\";\n\nconst t = i18n.namespace(\"FormsApp.ContentModelsDataList\");\n\ninterface Sorter {\n label: string;\n sorters: string;\n}\nconst SORTERS: Sorter[] = [\n {\n label: t`Newest to oldest`,\n sorters: \"savedOn_DESC\"\n },\n {\n label: t`Oldest to newest`,\n sorters: \"savedOn_ASC\"\n },\n {\n label: t`Name A-Z`,\n sorters: \"name_ASC\"\n },\n {\n label: t`Name Z-A`,\n sorters: \"name_DESC\"\n }\n];\n\nconst rightAlign = css({\n alignItems: \"flex-end !important\",\n justifyContent: \"center !important\"\n});\n\nconst listItemMinHeight = css({\n minHeight: \"66px !important\"\n});\n\ninterface ContentModelsDataListProps {\n canCreate: boolean;\n onCreate: () => void;\n onClone: (contentModel: CmsEditorContentModel) => void;\n}\nconst ContentModelsDataList: React.FC<ContentModelsDataListProps> = ({\n canCreate,\n onCreate,\n onClone\n}) => {\n const [filter, setFilter] = useState<string>(\"\");\n const [sort, setSort] = useState<string>(SORTERS[0].sorters);\n const { history } = useRouter();\n const client = useApolloClient();\n const { showSnackbar } = useSnackbar();\n const { showConfirmation } = useConfirmationDialog({\n dataTestId: \"cms-delete-content-model-dialog\"\n });\n const { data, loading } = useQuery<ListCmsModelsQueryResponse>(GQL.LIST_CONTENT_MODELS);\n const { canDelete, canEdit } = usePermission();\n\n const filterData = useCallback(\n ({ name }: Pick<CmsModel, \"name\">): boolean => {\n return name.toLowerCase().includes(filter);\n },\n [filter]\n );\n\n const sortData = useCallback(\n (list: CmsModel[]): CmsModel[] => {\n if (!sort) {\n return list;\n }\n const [sortField, sortOrderBy] = deserializeSorters(sort);\n return orderBy(list, [sortField], [sortOrderBy]);\n },\n [sort]\n );\n\n const models: CmsModel[] = loading ? [] : get(data, \"listContentModels.data\", []);\n\n const deleteRecord = async (item: CmsModel): Promise<void> => {\n showConfirmation(async () => {\n await client.mutate<DeleteCmsModelMutationResponse, DeleteCmsModelMutationVariables>({\n mutation: GQL.DELETE_CONTENT_MODEL,\n variables: { modelId: item.modelId },\n update(cache, { data }) {\n if (!data) {\n showSnackbar(\"Missing data on Delete Content Model Mutation Response.\");\n return;\n }\n const { error } = data.deleteContentModel;\n\n if (error) {\n showSnackbar(error.message, {\n title: t`Something unexpected happened.`\n });\n return;\n }\n\n removeModelFromListCache(cache, item);\n removeModelFromGroupCache(cache, item);\n removeModelFromCache(client, item);\n\n showSnackbar(\n t`Content model {name} deleted successfully!.`({ name: item.name })\n );\n }\n });\n });\n };\n\n const editRecord = (contentModel: CmsModel): void => {\n history.push(\"/cms/content-models/\" + contentModel.modelId);\n };\n\n const viewContentEntries = useCallback(contentModel => {\n return () => history.push(\"/cms/content-entries/\" + contentModel.modelId);\n }, []);\n\n const contentModelsDataListModalOverlay = useMemo(\n () => (\n <UIL.DataListModalOverlay>\n <Grid>\n <Cell span={12}>\n <Select\n value={sort}\n onChange={setSort}\n label={t`Sort by`}\n description={\"Sort content models by\"}\n >\n {SORTERS.map(({ label, sorters }) => {\n return (\n <option key={label} value={sorters}>\n {label}\n </option>\n );\n })}\n </Select>\n </Cell>\n </Grid>\n </UIL.DataListModalOverlay>\n ),\n [sort]\n );\n\n const filteredData = filter === \"\" ? models : models.filter(filterData);\n const contentModels = sortData(filteredData);\n\n return (\n <UIL.DataList\n loading={loading}\n data={contentModels}\n title={t`Content Models`}\n actions={\n canCreate ? (\n <ButtonSecondary data-testid=\"new-record-button\" onClick={onCreate}>\n <ButtonIcon icon={<AddIcon />} /> {t`New Model`}\n </ButtonSecondary>\n ) : null\n }\n search={\n <SearchUI\n value={filter}\n onChange={setFilter}\n inputPlaceholder={t`Search content models`}\n />\n }\n modalOverlay={contentModelsDataListModalOverlay}\n modalOverlayAction={\n <UIL.DataListModalOverlayAction\n icon={<FilterIcon />}\n data-testid={\"default-data-list.filter\"}\n />\n }\n >\n {({ data = [] }: { data: CmsModel[] }) => (\n <UIL.List data-testid=\"default-data-list\">\n {data.map(contentModel => {\n const disableViewContent = contentModel.fields.length === 0;\n const message = disableViewContent\n ? \"To view the content, you first need to add a field and save the model\"\n : \"View content\";\n return (\n <UIL.ListItem key={contentModel.modelId} className={listItemMinHeight}>\n <UIL.ListItemText>\n {contentModel.name}\n <UIL.ListItemTextSecondary>\n {t`Last modified: {time}.`({\n time: <TimeAgo datetime={contentModel.savedOn} />\n })}\n </UIL.ListItemTextSecondary>\n </UIL.ListItemText>\n <UIL.ListItemMeta className={rightAlign}>\n <UIL.ListActions>\n {canEdit(contentModel, \"cms.contentModel\") && (\n <>\n <Tooltip\n content={t`{message}`({ message })}\n placement={\"top\"}\n >\n <IconButton\n data-testid={\n \"cms-view-content-model-button\"\n }\n icon={<ViewListIcon />}\n label={t`View entries`}\n onClick={viewContentEntries(contentModel)}\n disabled={disableViewContent}\n />\n </Tooltip>\n {contentModel.plugin ? (\n <Tooltip\n content={t`Content model is registered via a plugin.`}\n placement={\"top\"}\n >\n <EditIcon\n disabled\n data-testid={\n \"cms-edit-content-model-button\"\n }\n />\n </Tooltip>\n ) : (\n <Tooltip\n content={t`Edit content model`}\n placement={\"top\"}\n >\n <EditIcon\n onClick={() => editRecord(contentModel)}\n data-testid={\n \"cms-edit-content-model-button\"\n }\n />\n </Tooltip>\n )}\n </>\n )}\n\n <Tooltip content={\"Clone content model\"} placement={\"top\"}>\n <IconButton\n data-testid={\"cms-clone-content-model-button\"}\n icon={<CloneIcon />}\n label={t`View entries`}\n onClick={() => onClone(contentModel)}\n />\n </Tooltip>\n\n {canDelete(contentModel, \"cms.contentModel\") &&\n contentModel.plugin ? (\n <Tooltip\n content={t`Content model is registered via a plugin.`}\n placement={\"top\"}\n >\n <DeleteIcon\n disabled\n data-testid={\"cms-delete-content-model-button\"}\n />\n </Tooltip>\n ) : (\n <Tooltip\n content={t`Delete content model`}\n placement={\"top\"}\n >\n <DeleteIcon\n onClick={() => deleteRecord(contentModel)}\n data-testid={\"cms-delete-content-model-button\"}\n />\n </Tooltip>\n )}\n </UIL.ListActions>\n </UIL.ListItemMeta>\n </UIL.ListItem>\n );\n })}\n </UIL.List>\n )}\n </UIL.DataList>\n );\n};\n\nexport default ContentModelsDataList;\n"],"mappings":"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"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
import { CmsEditorContentModel } from "../../../types";
|
|
2
1
|
import { DataProxy } from "apollo-cache";
|
|
2
|
+
import ApolloClient from "apollo-client";
|
|
3
|
+
import { CmsEditorContentModel } from "../../../types";
|
|
3
4
|
export declare const addModelToListCache: (cache: DataProxy, model: CmsEditorContentModel) => void;
|
|
4
5
|
export declare const addModelToGroupCache: (cache: DataProxy, model: CmsEditorContentModel) => void;
|
|
6
|
+
/**
|
|
7
|
+
* This function is an ugly hack, but I don't know a better way to remove items from cache in Apollo Client v2.
|
|
8
|
+
* When a Content Model is deleted, we need to remove it from cache, because a model can be recreated with the same
|
|
9
|
+
* modelId, and it will cause problems, because Apollo will think that the data in cache belongs to this new model.
|
|
10
|
+
*/
|
|
11
|
+
export declare const removeModelFromCache: (client: ApolloClient<any>, model: CmsEditorContentModel) => void;
|
|
5
12
|
export declare const removeModelFromListCache: (cache: DataProxy, model: CmsEditorContentModel) => void;
|
|
6
13
|
export declare const removeModelFromGroupCache: (cache: DataProxy, model: CmsEditorContentModel) => void;
|
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.removeModelFromListCache = exports.removeModelFromGroupCache = exports.addModelToListCache = exports.addModelToGroupCache = void 0;
|
|
8
|
+
exports.removeModelFromListCache = exports.removeModelFromGroupCache = exports.removeModelFromCache = exports.addModelToListCache = exports.addModelToGroupCache = void 0;
|
|
9
9
|
|
|
10
10
|
var _dotPropImmutable = _interopRequireDefault(require("dot-prop-immutable"));
|
|
11
11
|
|
|
@@ -53,9 +53,30 @@ var addModelToGroupCache = function addModelToGroupCache(cache, model) {
|
|
|
53
53
|
}
|
|
54
54
|
});
|
|
55
55
|
};
|
|
56
|
+
/**
|
|
57
|
+
* This function is an ugly hack, but I don't know a better way to remove items from cache in Apollo Client v2.
|
|
58
|
+
* When a Content Model is deleted, we need to remove it from cache, because a model can be recreated with the same
|
|
59
|
+
* modelId, and it will cause problems, because Apollo will think that the data in cache belongs to this new model.
|
|
60
|
+
*/
|
|
61
|
+
|
|
56
62
|
|
|
57
63
|
exports.addModelToGroupCache = addModelToGroupCache;
|
|
58
64
|
|
|
65
|
+
var removeModelFromCache = function removeModelFromCache(client, model) {
|
|
66
|
+
var id = "CmsContentModel:".concat(model.modelId); // @ts-ignore
|
|
67
|
+
|
|
68
|
+
client.cache.data.delete(id); // @ts-ignore
|
|
69
|
+
|
|
70
|
+
Object.keys(client.cache.data.data).forEach(function (key) {
|
|
71
|
+
if (key.startsWith("".concat(id, ".")) || key.startsWith("$".concat(id, "."))) {
|
|
72
|
+
// @ts-ignore
|
|
73
|
+
client.cache.data.delete(key);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
exports.removeModelFromCache = removeModelFromCache;
|
|
79
|
+
|
|
59
80
|
var removeModelFromListCache = function removeModelFromListCache(cache, model) {
|
|
60
81
|
var response = cache.readQuery({
|
|
61
82
|
query: _viewsGraphql.LIST_CONTENT_MODELS
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["addModelToListCache","cache","model","response","readQuery","query","LIST_CONTENT_MODELS","listContentModels","newModelIndex","data","length","writeQuery","dotProp","set","addModelToGroupCache","LIST_MENU_CONTENT_GROUPS_MODELS","listContentModelGroups","groupsList","groupIndex","findIndex","g","id","group","newGroupModelIndex","contentModels","
|
|
1
|
+
{"version":3,"names":["addModelToListCache","cache","model","response","readQuery","query","LIST_CONTENT_MODELS","listContentModels","newModelIndex","data","length","writeQuery","dotProp","set","addModelToGroupCache","LIST_MENU_CONTENT_GROUPS_MODELS","listContentModelGroups","groupsList","groupIndex","findIndex","g","id","group","newGroupModelIndex","contentModels","removeModelFromCache","client","modelId","delete","Object","keys","forEach","key","startsWith","removeModelFromListCache","modelIndex","m","removeModelFromGroupCache"],"sources":["cache.ts"],"sourcesContent":["import dotProp from \"dot-prop-immutable\";\nimport { DataProxy } from \"apollo-cache\";\nimport ApolloClient from \"apollo-client\";\nimport { LIST_CONTENT_MODELS, LIST_MENU_CONTENT_GROUPS_MODELS } from \"../../viewsGraphql\";\nimport { CmsEditorContentModel } from \"~/types\";\nimport { ListCmsModelsQueryResponse, ListMenuCmsGroupsQueryResponse } from \"../../viewsGraphql\";\n\nexport const addModelToListCache = (cache: DataProxy, model: CmsEditorContentModel): void => {\n const response = cache.readQuery<ListCmsModelsQueryResponse>({\n query: LIST_CONTENT_MODELS\n });\n if (!response || !response.listContentModels) {\n return;\n }\n const { listContentModels } = response;\n const newModelIndex = listContentModels.data.length;\n\n cache.writeQuery({\n query: LIST_CONTENT_MODELS,\n data: {\n listContentModels: dotProp.set(listContentModels, `data.${newModelIndex}`, model)\n }\n });\n};\n\nexport const addModelToGroupCache = (cache: DataProxy, model: CmsEditorContentModel): void => {\n const response = cache.readQuery<ListMenuCmsGroupsQueryResponse>({\n query: LIST_MENU_CONTENT_GROUPS_MODELS\n });\n if (!response || !response.listContentModelGroups) {\n return;\n }\n\n const { listContentModelGroups: groupsList } = response;\n\n const groupIndex = groupsList.data.findIndex(g => g.id === model.group.id);\n const newGroupModelIndex = groupsList.data[groupIndex].contentModels.length;\n\n cache.writeQuery({\n query: LIST_MENU_CONTENT_GROUPS_MODELS,\n data: {\n listContentModelGroups: dotProp.set(\n groupsList,\n `data.${groupIndex}.contentModels.${newGroupModelIndex}`,\n model\n )\n }\n });\n};\n\n/**\n * This function is an ugly hack, but I don't know a better way to remove items from cache in Apollo Client v2.\n * When a Content Model is deleted, we need to remove it from cache, because a model can be recreated with the same\n * modelId, and it will cause problems, because Apollo will think that the data in cache belongs to this new model.\n */\nexport const removeModelFromCache = (\n client: ApolloClient<any>,\n model: CmsEditorContentModel\n): void => {\n const id = `CmsContentModel:${model.modelId}`;\n\n // @ts-ignore\n client.cache.data.delete(id);\n\n // @ts-ignore\n Object.keys(client.cache.data.data).forEach(key => {\n if (key.startsWith(`${id}.`) || key.startsWith(`$${id}.`)) {\n // @ts-ignore\n client.cache.data.delete(key);\n }\n });\n};\n\nexport const removeModelFromListCache = (cache: DataProxy, model: CmsEditorContentModel): void => {\n const response = cache.readQuery<ListCmsModelsQueryResponse>({\n query: LIST_CONTENT_MODELS\n });\n if (!response || !response.listContentModels) {\n return;\n }\n const { listContentModels } = response;\n const modelIndex = listContentModels.data.findIndex(m => m.modelId === model.modelId);\n\n cache.writeQuery({\n query: LIST_CONTENT_MODELS,\n data: {\n listContentModels: dotProp.delete(listContentModels, `data.${modelIndex}`)\n }\n });\n};\n\nexport const removeModelFromGroupCache = (cache: DataProxy, model: CmsEditorContentModel): void => {\n const response = cache.readQuery<ListMenuCmsGroupsQueryResponse>({\n query: LIST_MENU_CONTENT_GROUPS_MODELS\n });\n if (!response || !response.listContentModelGroups) {\n return;\n }\n const { listContentModelGroups: groupsList } = response;\n\n const groupIndex = groupsList.data.findIndex(g => g.id === model.group.id);\n if (groupIndex < 0) {\n return;\n }\n const modelIndex = groupsList.data[groupIndex].contentModels.findIndex(\n m => m.modelId === model.modelId\n );\n\n if (modelIndex < 0) {\n return;\n }\n\n cache.writeQuery({\n query: LIST_MENU_CONTENT_GROUPS_MODELS,\n data: {\n listContentModelGroups: dotProp.delete(\n groupsList,\n `data.${groupIndex}.contentModels.${modelIndex}`\n )\n }\n });\n};\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/app-headless-cms",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.32.0-beta.0",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -26,20 +26,20 @@
|
|
|
26
26
|
"@fortawesome/react-fontawesome": "0.1.19",
|
|
27
27
|
"@svgr/webpack": "6.3.1",
|
|
28
28
|
"@types/react": "17.0.39",
|
|
29
|
-
"@webiny/app": "5.
|
|
30
|
-
"@webiny/app-admin": "5.
|
|
31
|
-
"@webiny/app-graphql-playground": "5.
|
|
32
|
-
"@webiny/app-i18n": "5.
|
|
33
|
-
"@webiny/app-plugin-admin-welcome-screen": "5.
|
|
34
|
-
"@webiny/app-security": "5.
|
|
35
|
-
"@webiny/error": "5.
|
|
36
|
-
"@webiny/form": "5.
|
|
37
|
-
"@webiny/plugins": "5.
|
|
38
|
-
"@webiny/react-composition": "5.
|
|
39
|
-
"@webiny/react-router": "5.
|
|
40
|
-
"@webiny/ui": "5.
|
|
41
|
-
"@webiny/utils": "5.
|
|
42
|
-
"@webiny/validation": "5.
|
|
29
|
+
"@webiny/app": "5.32.0-beta.0",
|
|
30
|
+
"@webiny/app-admin": "5.32.0-beta.0",
|
|
31
|
+
"@webiny/app-graphql-playground": "5.32.0-beta.0",
|
|
32
|
+
"@webiny/app-i18n": "5.32.0-beta.0",
|
|
33
|
+
"@webiny/app-plugin-admin-welcome-screen": "5.32.0-beta.0",
|
|
34
|
+
"@webiny/app-security": "5.32.0-beta.0",
|
|
35
|
+
"@webiny/error": "5.32.0-beta.0",
|
|
36
|
+
"@webiny/form": "5.32.0-beta.0",
|
|
37
|
+
"@webiny/plugins": "5.32.0-beta.0",
|
|
38
|
+
"@webiny/react-composition": "5.32.0-beta.0",
|
|
39
|
+
"@webiny/react-router": "5.32.0-beta.0",
|
|
40
|
+
"@webiny/ui": "5.32.0-beta.0",
|
|
41
|
+
"@webiny/utils": "5.32.0-beta.0",
|
|
42
|
+
"@webiny/validation": "5.32.0-beta.0",
|
|
43
43
|
"apollo-cache": "1.3.5",
|
|
44
44
|
"apollo-client": "2.6.10",
|
|
45
45
|
"apollo-link": "1.2.14",
|
|
@@ -74,8 +74,8 @@
|
|
|
74
74
|
"@babel/preset-env": "^7.16.4",
|
|
75
75
|
"@babel/preset-react": "^7.16.0",
|
|
76
76
|
"@babel/preset-typescript": "^7.16.0",
|
|
77
|
-
"@webiny/cli": "^5.
|
|
78
|
-
"@webiny/project-utils": "^5.
|
|
77
|
+
"@webiny/cli": "^5.32.0-beta.0",
|
|
78
|
+
"@webiny/project-utils": "^5.32.0-beta.0",
|
|
79
79
|
"babel-plugin-emotion": "^9.2.8",
|
|
80
80
|
"babel-plugin-lodash": "^3.3.4",
|
|
81
81
|
"babel-plugin-module-resolver": "^4.1.0",
|
|
@@ -107,5 +107,5 @@
|
|
|
107
107
|
]
|
|
108
108
|
}
|
|
109
109
|
},
|
|
110
|
-
"gitHead": "
|
|
110
|
+
"gitHead": "01b97900303977e0b418d60aa1c789fad71f5cef"
|
|
111
111
|
}
|