@webiny/app-headless-cms 0.0.0-unstable.5e7233243f → 0.0.0-unstable.615a930a68
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/admin/components/ContentEntryForm/Label.js +1 -1
- package/admin/components/ContentEntryForm/Label.js.map +1 -1
- package/admin/components/ContentModelEditor/Context.js +1 -1
- package/admin/components/ContentModelEditor/Context.js.map +1 -1
- package/admin/constants/statusLabels.js +2 -4
- package/admin/constants/statusLabels.js.map +1 -1
- package/admin/graphql/contentEntries.d.ts +2 -29
- package/admin/graphql/contentEntries.js +10 -30
- package/admin/graphql/contentEntries.js.map +1 -1
- package/admin/hooks/usePermission.d.ts +0 -2
- package/admin/hooks/usePermission.js +0 -36
- package/admin/hooks/usePermission.js.map +1 -1
- package/admin/menus/NothingToShowElement.js +4 -1
- package/admin/menus/NothingToShowElement.js.map +1 -1
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettings.js +1 -1
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettings.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/multipleObjectsAccordion.d.ts +3 -0
- package/admin/plugins/fieldRenderers/object/multipleObjectsAccordion.js +146 -0
- package/admin/plugins/fieldRenderers/object/multipleObjectsAccordion.js.map +1 -0
- package/admin/plugins/fieldRenderers/object/singleObjectAccordion.d.ts +3 -0
- package/admin/plugins/fieldRenderers/object/singleObjectAccordion.js +54 -0
- package/admin/plugins/fieldRenderers/object/singleObjectAccordion.js.map +1 -0
- package/admin/plugins/fieldRenderers/object/singleObjectInline.d.ts +3 -0
- package/admin/plugins/fieldRenderers/object/singleObjectInline.js +64 -0
- package/admin/plugins/fieldRenderers/object/singleObjectInline.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js +1 -1
- package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/ContentEntryPermission.js +11 -17
- package/admin/plugins/permissionRenderer/components/ContentEntryPermission.js.map +1 -1
- package/admin/views/contentEntries/ContentEntriesList.js +1 -1
- package/admin/views/contentEntries/ContentEntriesList.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js +16 -4
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/header/requestChanges/RequestChanges.d.ts +1 -1
- package/admin/views/contentEntries/ContentEntry/header/requestChanges/RequestChanges.js +3 -80
- package/admin/views/contentEntries/ContentEntry/header/requestChanges/RequestChanges.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/header/requestReview/RequestReview.d.ts +1 -1
- package/admin/views/contentEntries/ContentEntry/header/requestReview/RequestReview.js +3 -84
- package/admin/views/contentEntries/ContentEntry/header/requestReview/RequestReview.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/useRevision.d.ts +0 -8
- package/admin/views/contentEntries/ContentEntry/useRevision.js +4 -105
- package/admin/views/contentEntries/ContentEntry/useRevision.js.map +1 -1
- package/admin/views/contentEntries/experiment/ContentEntriesModule.d.ts +2 -2
- package/admin/views/contentEntries/experiment/ContentEntriesModule.js +13 -7
- package/admin/views/contentEntries/experiment/ContentEntriesModule.js.map +1 -1
- package/admin/views/contentEntries/hooks/useContentEntriesList.js.map +1 -1
- package/admin/views/contentModelGroups/ContentModelGroupsForm.js.map +1 -1
- package/package.json +28 -28
- package/types.d.ts +9 -1
- package/types.js.map +1 -1
|
@@ -26,7 +26,7 @@ var Label = function Label(_ref) {
|
|
|
26
26
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
27
27
|
className: (0, _classnames.default)("mdc-text-field-helper-text mdc-text-field-helper-text--persistent", style.label)
|
|
28
28
|
}, /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
|
|
29
|
-
use: "
|
|
29
|
+
use: "body2"
|
|
30
30
|
}, children));
|
|
31
31
|
};
|
|
32
32
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["style","label","css","marginBottom","Label","children","classNames"],"sources":["Label.tsx"],"sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport classNames from \"classnames\";\nimport { Typography } from \"@webiny/ui/Typography\";\n\nconst style = {\n label: css({\n marginBottom: \"5px !important\"\n })\n};\n\nconst Label: React.FC = ({ children }) => (\n <div\n className={classNames(\n \"mdc-text-field-helper-text mdc-text-field-helper-text--persistent\",\n style.label\n )}\n >\n <Typography use={\"
|
|
1
|
+
{"version":3,"names":["style","label","css","marginBottom","Label","children","classNames"],"sources":["Label.tsx"],"sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport classNames from \"classnames\";\nimport { Typography } from \"@webiny/ui/Typography\";\n\nconst style = {\n label: css({\n marginBottom: \"5px !important\"\n })\n};\n\nconst Label: React.FC = ({ children }) => (\n <div\n className={classNames(\n \"mdc-text-field-helper-text mdc-text-field-helper-text--persistent\",\n style.label\n )}\n >\n <Typography use={\"body2\"}>{children}</Typography>\n </div>\n);\n\nexport default Label;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA,IAAMA,KAAK,GAAG;EACVC,KAAK,eAAE,IAAAC,YAAA,EAAI;IACPC,YAAY,EAAE;EADP,CAAJ;AADG,CAAd;;AAMA,IAAMC,KAAe,GAAG,SAAlBA,KAAkB;EAAA,IAAGC,QAAH,QAAGA,QAAH;EAAA,oBACpB;IACI,SAAS,EAAE,IAAAC,mBAAA,EACP,mEADO,EAEPN,KAAK,CAACC,KAFC;EADf,gBAMI,6BAAC,sBAAD;IAAY,GAAG,EAAE;EAAjB,GAA2BI,QAA3B,CANJ,CADoB;AAAA,CAAxB;;eAWeD,K"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["contentModelEditorContext","React","createContext","apolloClient","data","isPristine","getContentModel","saveContentModel","error","setData","contentModelEditorReducer","prev","action","type","cleanupModelDataFields","fields","map","field","predefinedValues","enabled","values","label","value","selected","String","cleanupModelData","ContentModelEditorProvider","children","modelId","useReducer","state","dispatch","useRouter","history","useSnackbar","showSnackbar","setPristine","flag","modelData","pick","mutate","mutation","UPDATE_CONTENT_MODEL","variables","refetchQueries","query","LIST_MENU_CONTENT_GROUPS_MODELS","response","updateContentModel","setter","saveModel","GET_CONTENT_MODEL","get","Error","useEffect","catch","push","useMemo","Provider"],"sources":["Context.tsx"],"sourcesContent":["// TODO @ts-refactor verify that types are correct\nimport React, { useEffect, useMemo, useReducer } from \"react\";\nimport get from \"lodash/get\";\nimport pick from \"lodash/pick\";\nimport { ApolloClient } from \"apollo-client\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport {\n GET_CONTENT_MODEL,\n GetCmsModelQueryResponse,\n GetCmsModelQueryVariables,\n UPDATE_CONTENT_MODEL,\n UpdateCmsModelMutationResponse,\n UpdateCmsModelMutationVariables\n} from \"~/admin/graphql/contentModels\";\nimport { LIST_MENU_CONTENT_GROUPS_MODELS } from \"~/admin/viewsGraphql\";\nimport { CmsEditorContentModel, CmsEditorField, CmsModel } from \"~/types\";\nimport { FetchResult } from \"apollo-link\";\n\nexport interface ContentModelEditorProviderContext {\n apolloClient: ApolloClient<any>;\n data: CmsEditorContentModel;\n isPristine: boolean;\n getContentModel: (modelId: string) => Promise<FetchResult<GetCmsModelQueryResponse>>;\n saveContentModel: (\n data?: CmsModel\n ) => Promise<UpdateCmsModelMutationResponse[\"updateContentModel\"]>;\n setData: (setter: (model: CmsModel) => void, saveContentModel?: boolean) => Promise<any>;\n}\n\nexport const contentModelEditorContext = React.createContext<ContentModelEditorProviderContext>({\n apolloClient: null as unknown as ApolloClient<any>,\n data: null as unknown as CmsEditorContentModel,\n isPristine: false,\n getContentModel: async () => {\n return {\n data: null\n };\n },\n saveContentModel: async () => {\n return {\n data: null,\n error: null\n };\n },\n setData: async () => {\n return void 0;\n }\n});\n\ntype PickedCmsEditorContentModel = Pick<\n CmsEditorContentModel,\n \"layout\" | \"fields\" | \"name\" | \"settings\" | \"description\" | \"titleFieldId\" | \"group\"\n>;\ninterface State {\n modelId: string | null;\n isPristine: boolean;\n data: CmsModel;\n}\ninterface Action {\n data: Partial<State> | Partial<CmsModel>;\n type: \"state\" | \"data\";\n}\ninterface Reducer {\n (prev: State, action: Action): State;\n}\nexport const contentModelEditorReducer: Reducer = (prev: State, action: Action): State => {\n const { data, type } = action;\n switch (type) {\n case \"state\":\n return { ...prev, ...data };\n\n case \"data\":\n return { ...prev, data: data as CmsModel };\n default:\n return prev;\n }\n};\n\n/**\n * Cleanup is required because backend always expects string value in predefined values entries\n */\nconst cleanupModelDataFields = (fields: CmsEditorField[]): CmsEditorField[] => {\n return fields.map(field => {\n const { predefinedValues } = field;\n const { enabled = false, values = [] } = predefinedValues || {};\n return {\n ...field,\n predefinedValues: {\n enabled,\n values: values.map(({ label, value, selected }) => {\n return {\n label,\n selected: selected || false,\n value: String(value)\n };\n })\n }\n };\n });\n};\n\nconst cleanupModelData = (data: PickedCmsEditorContentModel): PickedCmsEditorContentModel => {\n return {\n ...data,\n fields: cleanupModelDataFields(data.fields)\n };\n};\n\ninterface ContentModelEditorProviderProps {\n apolloClient: ApolloClient<any>;\n modelId?: string;\n children: React.ReactElement;\n}\n\nexport const ContentModelEditorProvider: React.FC<ContentModelEditorProviderProps> = ({\n children,\n apolloClient,\n modelId\n}) => {\n const [state, dispatch] = useReducer<Reducer>(contentModelEditorReducer, {\n modelId: modelId || null,\n isPristine: true,\n data: null as unknown as CmsModel\n });\n const { history } = useRouter();\n const { showSnackbar } = useSnackbar();\n\n const setPristine = (flag: boolean): void => {\n dispatch({ type: \"state\", data: { isPristine: flag } });\n };\n\n const saveContentModel = async (\n data?: CmsModel\n ): Promise<UpdateCmsModelMutationResponse[\"updateContentModel\"]> => {\n if (!data) {\n data = state.data;\n }\n const modelData: PickedCmsEditorContentModel = pick(data, [\n \"group\",\n \"layout\",\n \"fields\",\n \"name\",\n \"settings\",\n \"description\",\n \"titleFieldId\"\n ]);\n const response = await apolloClient.mutate<\n UpdateCmsModelMutationResponse,\n UpdateCmsModelMutationVariables\n >({\n mutation: UPDATE_CONTENT_MODEL,\n variables: {\n modelId: data.modelId,\n data: cleanupModelData(modelData)\n },\n refetchQueries: [\n {\n query: LIST_MENU_CONTENT_GROUPS_MODELS\n }\n ]\n });\n\n setPristine(true);\n\n if (!response.data || !response.data.updateContentModel) {\n return {\n data: null,\n error: null\n };\n }\n\n return response.data.updateContentModel;\n };\n\n /**\n * Set form data by providing a callback, which receives a fresh copy of data on which you can work on.\n * Return new data once finished.\n */\n const setData = async (setter: (value: any) => any, saveModel = false): Promise<void> => {\n setPristine(false);\n const data = setter(state.data);\n dispatch({ type: \"data\", data });\n if (!saveModel) {\n return;\n }\n await saveContentModel(data);\n };\n\n const getContentModel = async (\n modelId: string\n ): Promise<FetchResult<GetCmsModelQueryResponse>> => {\n const response = await apolloClient.query<\n GetCmsModelQueryResponse,\n GetCmsModelQueryVariables\n >({\n query: GET_CONTENT_MODEL,\n variables: {\n modelId\n }\n });\n\n const { data, error } = get(response, \"data.getContentModel\");\n if (error) {\n throw new Error(error);\n }\n\n await setData(() => data, false);\n setPristine(true);\n return response;\n };\n\n useEffect(() => {\n if (!modelId) {\n return;\n }\n getContentModel(modelId).catch(() => {\n history.push(`/cms/content-models`);\n showSnackbar(`Could not load content model with given ID.`);\n });\n }, [modelId]);\n\n const value = useMemo(\n () => ({\n data: state.data,\n modelId,\n apolloClient,\n dispatch,\n isPristine: state.isPristine,\n getContentModel,\n saveContentModel,\n setData\n }),\n [state, apolloClient]\n );\n\n const { Provider } = contentModelEditorContext;\n\n return <Provider value={value}>{children}</Provider>;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["contentModelEditorContext","React","createContext","apolloClient","data","isPristine","getContentModel","saveContentModel","error","setData","contentModelEditorReducer","prev","action","type","cleanupModelDataFields","fields","map","field","predefinedValues","enabled","values","label","value","selected","String","cleanupModelData","ContentModelEditorProvider","children","modelId","useReducer","state","dispatch","useRouter","history","useSnackbar","showSnackbar","setPristine","flag","modelData","pick","mutate","mutation","UPDATE_CONTENT_MODEL","variables","refetchQueries","query","LIST_MENU_CONTENT_GROUPS_MODELS","response","updateContentModel","setter","saveModel","GET_CONTENT_MODEL","get","Error","message","useEffect","catch","push","useMemo","Provider"],"sources":["Context.tsx"],"sourcesContent":["// TODO @ts-refactor verify that types are correct\nimport React, { useEffect, useMemo, useReducer } from \"react\";\nimport get from \"lodash/get\";\nimport pick from \"lodash/pick\";\nimport { ApolloClient } from \"apollo-client\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport {\n GET_CONTENT_MODEL,\n GetCmsModelQueryResponse,\n GetCmsModelQueryVariables,\n UPDATE_CONTENT_MODEL,\n UpdateCmsModelMutationResponse,\n UpdateCmsModelMutationVariables\n} from \"~/admin/graphql/contentModels\";\nimport { LIST_MENU_CONTENT_GROUPS_MODELS } from \"~/admin/viewsGraphql\";\nimport { CmsEditorContentModel, CmsEditorField, CmsModel } from \"~/types\";\nimport { FetchResult } from \"apollo-link\";\n\nexport interface ContentModelEditorProviderContext {\n apolloClient: ApolloClient<any>;\n data: CmsEditorContentModel;\n isPristine: boolean;\n getContentModel: (modelId: string) => Promise<FetchResult<GetCmsModelQueryResponse>>;\n saveContentModel: (\n data?: CmsModel\n ) => Promise<UpdateCmsModelMutationResponse[\"updateContentModel\"]>;\n setData: (setter: (model: CmsModel) => void, saveContentModel?: boolean) => Promise<any>;\n}\n\nexport const contentModelEditorContext = React.createContext<ContentModelEditorProviderContext>({\n apolloClient: null as unknown as ApolloClient<any>,\n data: null as unknown as CmsEditorContentModel,\n isPristine: false,\n getContentModel: async () => {\n return {\n data: null\n };\n },\n saveContentModel: async () => {\n return {\n data: null,\n error: null\n };\n },\n setData: async () => {\n return void 0;\n }\n});\n\ntype PickedCmsEditorContentModel = Pick<\n CmsEditorContentModel,\n \"layout\" | \"fields\" | \"name\" | \"settings\" | \"description\" | \"titleFieldId\" | \"group\"\n>;\ninterface State {\n modelId: string | null;\n isPristine: boolean;\n data: CmsModel;\n}\ninterface Action {\n data: Partial<State> | Partial<CmsModel>;\n type: \"state\" | \"data\";\n}\ninterface Reducer {\n (prev: State, action: Action): State;\n}\nexport const contentModelEditorReducer: Reducer = (prev: State, action: Action): State => {\n const { data, type } = action;\n switch (type) {\n case \"state\":\n return { ...prev, ...data };\n\n case \"data\":\n return { ...prev, data: data as CmsModel };\n default:\n return prev;\n }\n};\n\n/**\n * Cleanup is required because backend always expects string value in predefined values entries\n */\nconst cleanupModelDataFields = (fields: CmsEditorField[]): CmsEditorField[] => {\n return fields.map(field => {\n const { predefinedValues } = field;\n const { enabled = false, values = [] } = predefinedValues || {};\n return {\n ...field,\n predefinedValues: {\n enabled,\n values: values.map(({ label, value, selected }) => {\n return {\n label,\n selected: selected || false,\n value: String(value)\n };\n })\n }\n };\n });\n};\n\nconst cleanupModelData = (data: PickedCmsEditorContentModel): PickedCmsEditorContentModel => {\n return {\n ...data,\n fields: cleanupModelDataFields(data.fields)\n };\n};\n\ninterface ContentModelEditorProviderProps {\n apolloClient: ApolloClient<any>;\n modelId?: string;\n children: React.ReactElement;\n}\n\nexport const ContentModelEditorProvider: React.FC<ContentModelEditorProviderProps> = ({\n children,\n apolloClient,\n modelId\n}) => {\n const [state, dispatch] = useReducer<Reducer>(contentModelEditorReducer, {\n modelId: modelId || null,\n isPristine: true,\n data: null as unknown as CmsModel\n });\n const { history } = useRouter();\n const { showSnackbar } = useSnackbar();\n\n const setPristine = (flag: boolean): void => {\n dispatch({ type: \"state\", data: { isPristine: flag } });\n };\n\n const saveContentModel = async (\n data?: CmsModel\n ): Promise<UpdateCmsModelMutationResponse[\"updateContentModel\"]> => {\n if (!data) {\n data = state.data;\n }\n const modelData: PickedCmsEditorContentModel = pick(data, [\n \"group\",\n \"layout\",\n \"fields\",\n \"name\",\n \"settings\",\n \"description\",\n \"titleFieldId\"\n ]);\n const response = await apolloClient.mutate<\n UpdateCmsModelMutationResponse,\n UpdateCmsModelMutationVariables\n >({\n mutation: UPDATE_CONTENT_MODEL,\n variables: {\n modelId: data.modelId,\n data: cleanupModelData(modelData)\n },\n refetchQueries: [\n {\n query: LIST_MENU_CONTENT_GROUPS_MODELS\n }\n ]\n });\n\n setPristine(true);\n\n if (!response.data || !response.data.updateContentModel) {\n return {\n data: null,\n error: null\n };\n }\n\n return response.data.updateContentModel;\n };\n\n /**\n * Set form data by providing a callback, which receives a fresh copy of data on which you can work on.\n * Return new data once finished.\n */\n const setData = async (setter: (value: any) => any, saveModel = false): Promise<void> => {\n setPristine(false);\n const data = setter(state.data);\n dispatch({ type: \"data\", data });\n if (!saveModel) {\n return;\n }\n await saveContentModel(data);\n };\n\n const getContentModel = async (\n modelId: string\n ): Promise<FetchResult<GetCmsModelQueryResponse>> => {\n const response = await apolloClient.query<\n GetCmsModelQueryResponse,\n GetCmsModelQueryVariables\n >({\n query: GET_CONTENT_MODEL,\n variables: {\n modelId\n }\n });\n\n const { data, error } = get(response, \"data.getContentModel\");\n if (error) {\n throw new Error(error.message);\n }\n\n await setData(() => data, false);\n setPristine(true);\n return response;\n };\n\n useEffect(() => {\n if (!modelId) {\n return;\n }\n getContentModel(modelId).catch(() => {\n history.push(`/cms/content-models`);\n showSnackbar(`Could not load content model with given ID.`);\n });\n }, [modelId]);\n\n const value = useMemo(\n () => ({\n data: state.data,\n modelId,\n apolloClient,\n dispatch,\n isPristine: state.isPristine,\n getContentModel,\n saveContentModel,\n setData\n }),\n [state, apolloClient]\n );\n\n const { Provider } = contentModelEditorContext;\n\n return <Provider value={value}>{children}</Provider>;\n};\n"],"mappings":"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"}
|
|
@@ -11,16 +11,14 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/hel
|
|
|
11
11
|
|
|
12
12
|
var _i18n = require("@webiny/app/i18n");
|
|
13
13
|
|
|
14
|
-
var _templateObject, _templateObject2, _templateObject3
|
|
14
|
+
var _templateObject, _templateObject2, _templateObject3;
|
|
15
15
|
|
|
16
16
|
var t = _i18n.i18n.ns("app-headless-cms/admin/content-entries/status");
|
|
17
17
|
|
|
18
18
|
var statuses = {
|
|
19
19
|
draft: t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["Draft"]))),
|
|
20
20
|
published: t(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["Published"]))),
|
|
21
|
-
unpublished: t(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["Unpublished"])))
|
|
22
|
-
changesRequested: t(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["Changes Requested"]))),
|
|
23
|
-
reviewRequested: t(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["Review Requested"])))
|
|
21
|
+
unpublished: t(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["Unpublished"])))
|
|
24
22
|
};
|
|
25
23
|
var _default = statuses;
|
|
26
24
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["t","i18n","ns","statuses","draft","published","unpublished"
|
|
1
|
+
{"version":3,"names":["t","i18n","ns","statuses","draft","published","unpublished"],"sources":["statusLabels.ts"],"sourcesContent":["import { i18n } from \"@webiny/app/i18n\";\nconst t = i18n.ns(\"app-headless-cms/admin/content-entries/status\");\n\nconst statuses: Record<string, string> = {\n draft: t`Draft`,\n published: t`Published`,\n unpublished: t`Unpublished`\n};\nexport default statuses;\n"],"mappings":";;;;;;;;;;;AAAA;;;;AACA,IAAMA,CAAC,GAAGC,UAAA,CAAKC,EAAL,CAAQ,+CAAR,CAAV;;AAEA,IAAMC,QAAgC,GAAG;EACrCC,KAAK,EAAEJ,CAAF,wFADgC;EAErCK,SAAS,EAAEL,CAAF,8FAF4B;EAGrCM,WAAW,EAAEN,CAAF;AAH0B,CAAzC;eAKeG,Q"}
|
|
@@ -10,7 +10,8 @@ export interface CmsEntryGetQueryResponse {
|
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
12
|
export interface CmsEntryGetQueryVariables {
|
|
13
|
-
revision
|
|
13
|
+
revision?: string;
|
|
14
|
+
entryId?: string;
|
|
14
15
|
}
|
|
15
16
|
export declare const createReadQuery: (model: CmsEditorContentModel) => import("graphql").DocumentNode;
|
|
16
17
|
/**
|
|
@@ -143,31 +144,3 @@ export interface CmsEntryUnpublishMutationVariables {
|
|
|
143
144
|
revision: string;
|
|
144
145
|
}
|
|
145
146
|
export declare const createUnpublishMutation: (model: CmsEditorContentModel) => import("graphql").DocumentNode;
|
|
146
|
-
/**
|
|
147
|
-
* ############################################
|
|
148
|
-
* Request Review Mutation
|
|
149
|
-
*/
|
|
150
|
-
export interface CmsEntryRequestReviewMutationResponse {
|
|
151
|
-
content: {
|
|
152
|
-
data?: CmsEditorContentEntry;
|
|
153
|
-
error?: CmsErrorResponse;
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
export interface CmsEntryRequestReviewMutationVariables {
|
|
157
|
-
revision: string;
|
|
158
|
-
}
|
|
159
|
-
export declare const createRequestReviewMutation: (model: CmsEditorContentModel) => import("graphql").DocumentNode;
|
|
160
|
-
/**
|
|
161
|
-
* ############################################
|
|
162
|
-
* Request Changes Mutation
|
|
163
|
-
*/
|
|
164
|
-
export interface CmsEntryRequestChangesMutationResponse {
|
|
165
|
-
content: {
|
|
166
|
-
data?: CmsEditorContentEntry;
|
|
167
|
-
error?: CmsErrorResponse;
|
|
168
|
-
};
|
|
169
|
-
}
|
|
170
|
-
export interface CmsEntryRequestChangesMutationVariables {
|
|
171
|
-
revision: string;
|
|
172
|
-
}
|
|
173
|
-
export declare const createRequestChangesMutation: (model: CmsEditorContentModel) => import("graphql").DocumentNode;
|
|
@@ -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.createUpdateMutation = exports.createUnpublishMutation = exports.createRevisionsQuery = exports.
|
|
8
|
+
exports.createUpdateMutation = exports.createUnpublishMutation = exports.createRevisionsQuery = exports.createReadQuery = exports.createPublishMutation = exports.createListQuery = exports.createDeleteMutation = exports.createCreateMutation = exports.createCreateFromMutation = void 0;
|
|
9
9
|
|
|
10
10
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
11
|
|
|
@@ -17,7 +17,7 @@ var _pluralize = _interopRequireDefault(require("pluralize"));
|
|
|
17
17
|
|
|
18
18
|
var _createFieldsList = require("./createFieldsList");
|
|
19
19
|
|
|
20
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9
|
|
20
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9;
|
|
21
21
|
|
|
22
22
|
var ERROR_FIELD =
|
|
23
23
|
/* GraphQL */
|
|
@@ -32,7 +32,11 @@ var CONTENT_META_FIELDS =
|
|
|
32
32
|
|
|
33
33
|
var createReadQuery = function createReadQuery(model) {
|
|
34
34
|
var ucFirstModelId = (0, _upperFirst.default)(model.modelId);
|
|
35
|
-
|
|
35
|
+
/**
|
|
36
|
+
* This query now accepts both revision or entryId as we can load exact revision or latest (if entryId was sent).
|
|
37
|
+
*/
|
|
38
|
+
|
|
39
|
+
return (0, _graphqlTag.default)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n query CmsEntriesGet", "($revision: ID, $entryId: ID) {\n content: get", "(revision: $revision, entryId: $entryId) {\n data {\n id\n createdBy {\n id\n }\n ", "\n savedOn\n meta {\n ", "\n }\n }\n error ", "\n }\n }\n "])), ucFirstModelId, ucFirstModelId, (0, _createFieldsList.createFieldsList)(model.fields), CONTENT_META_FIELDS, ERROR_FIELD);
|
|
36
40
|
};
|
|
37
41
|
/**
|
|
38
42
|
* ############################################
|
|
@@ -65,7 +69,7 @@ var getModelTitleFieldId = function getModelTitleFieldId(model) {
|
|
|
65
69
|
var createListQuery = function createListQuery(model) {
|
|
66
70
|
var ucFirstPluralizedModelId = (0, _upperFirst.default)((0, _pluralize.default)(model.modelId));
|
|
67
71
|
var ucFirstModelId = (0, _upperFirst.default)(model.modelId);
|
|
68
|
-
return (0, _graphqlTag.default)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n query CmsEntriesList", "($where: ", "ListWhereInput, $sort: [", "ListSorter], $limit: Int, $after: String) {\n content: list", "(\n where: $where\n sort: $sort\n limit: $limit\n after: $after\n ) {\n data {\n id\n savedOn\n meta {\n ", "\n }\n ", "\n }\n meta {\n cursor\n hasMoreItems\n totalCount\n }
|
|
72
|
+
return (0, _graphqlTag.default)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n query CmsEntriesList", "($where: ", "ListWhereInput, $sort: [", "ListSorter], $limit: Int, $after: String) {\n content: list", "(\n where: $where\n sort: $sort\n limit: $limit\n after: $after\n ) {\n data {\n id\n savedOn\n meta {\n ", "\n }\n ", "\n }\n meta {\n cursor\n hasMoreItems\n totalCount\n }\n error ", "\n }\n }\n "])), ucFirstPluralizedModelId, ucFirstModelId, ucFirstModelId, ucFirstPluralizedModelId, CONTENT_META_FIELDS, getModelTitleFieldId(model), ERROR_FIELD);
|
|
69
73
|
};
|
|
70
74
|
/**
|
|
71
75
|
* ############################################
|
|
@@ -113,7 +117,7 @@ exports.createCreateFromMutation = createCreateFromMutation;
|
|
|
113
117
|
|
|
114
118
|
var createUpdateMutation = function createUpdateMutation(model) {
|
|
115
119
|
var ucFirstModelId = (0, _upperFirst.default)(model.modelId);
|
|
116
|
-
return (0, _graphqlTag.default)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n mutation CmsUpdate", "($revision: ID!, $data: ", "Input!) {\n content: update", "(revision: $revision, data: $data) {\n data {\n id\n ", "\n savedOn\n meta {
|
|
120
|
+
return (0, _graphqlTag.default)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n mutation CmsUpdate", "($revision: ID!, $data: ", "Input!) {\n content: update", "(revision: $revision, data: $data) {\n data {\n id\n ", "\n savedOn\n meta {\n ", "\n }\n }\n error ", "\n }\n }\n "])), ucFirstModelId, ucFirstModelId, ucFirstModelId, (0, _createFieldsList.createFieldsList)(model.fields), CONTENT_META_FIELDS, ERROR_FIELD);
|
|
117
121
|
};
|
|
118
122
|
/**
|
|
119
123
|
* ############################################
|
|
@@ -139,29 +143,5 @@ var createUnpublishMutation = function createUnpublishMutation(model) {
|
|
|
139
143
|
var ucFirstModelId = (0, _upperFirst.default)(model.modelId);
|
|
140
144
|
return (0, _graphqlTag.default)(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2.default)(["\n mutation CmsUnpublish", "($revision: ID!) {\n content: unpublish", "(revision: $revision) {\n data {\n id\n meta {\n ", "\n }\n }\n error ", "\n }\n }"])), ucFirstModelId, ucFirstModelId, CONTENT_META_FIELDS, ERROR_FIELD);
|
|
141
145
|
};
|
|
142
|
-
/**
|
|
143
|
-
* ############################################
|
|
144
|
-
* Request Review Mutation
|
|
145
|
-
*/
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
exports.createUnpublishMutation = createUnpublishMutation;
|
|
149
|
-
|
|
150
|
-
var createRequestReviewMutation = function createRequestReviewMutation(model) {
|
|
151
|
-
var ucFirstModelId = (0, _upperFirst.default)(model.modelId);
|
|
152
|
-
return (0, _graphqlTag.default)(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2.default)(["\n mutation CmsRequest", "Review($revision: ID!) {\n content: request", "Review(revision: $revision) {\n data {\n id\n meta {\n ", "\n }\n }\n error ", "\n }\n }"])), ucFirstModelId, ucFirstModelId, CONTENT_META_FIELDS, ERROR_FIELD);
|
|
153
|
-
};
|
|
154
|
-
/**
|
|
155
|
-
* ############################################
|
|
156
|
-
* Request Changes Mutation
|
|
157
|
-
*/
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
exports.createRequestReviewMutation = createRequestReviewMutation;
|
|
161
|
-
|
|
162
|
-
var createRequestChangesMutation = function createRequestChangesMutation(model) {
|
|
163
|
-
var ucFirstModelId = (0, _upperFirst.default)(model.modelId);
|
|
164
|
-
return (0, _graphqlTag.default)(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2.default)(["\n mutation CmsRequest", "Changes($revision: ID!) {\n content: request", "Changes(revision: $revision) {\n data {\n id\n meta {\n ", "\n }\n }\n error ", "\n }\n }"])), ucFirstModelId, ucFirstModelId, CONTENT_META_FIELDS, ERROR_FIELD);
|
|
165
|
-
};
|
|
166
146
|
|
|
167
|
-
exports.
|
|
147
|
+
exports.createUnpublishMutation = createUnpublishMutation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ERROR_FIELD","CONTENT_META_FIELDS","createReadQuery","model","ucFirstModelId","upperFirst","modelId","gql","createFieldsList","fields","createRevisionsQuery","getModelTitleFieldId","titleFieldId","createListQuery","ucFirstPluralizedModelId","pluralize","createDeleteMutation","createCreateMutation","createCreateFromMutation","createUpdateMutation","createPublishMutation","createUnpublishMutation","createRequestReviewMutation","createRequestChangesMutation"],"sources":["contentEntries.ts"],"sourcesContent":["import upperFirst from \"lodash/upperFirst\";\nimport gql from \"graphql-tag\";\nimport pluralize from \"pluralize\";\nimport {\n CmsContentEntryRevision,\n CmsEditorContentEntry,\n CmsEditorContentModel,\n CmsErrorResponse,\n CmsMetaResponse\n} from \"~/types\";\nimport { createFieldsList } from \"./createFieldsList\";\n\nconst ERROR_FIELD = /* GraphQL */ `\n {\n message\n code\n data\n }\n`;\n\nconst CONTENT_META_FIELDS = /* GraphQL */ `\n title\n publishedOn\n version\n locked\n status\n`;\n/**\n * ############################################\n * Get CMS Entry Query\n */\nexport interface CmsEntryGetQueryResponse {\n content: {\n data: CmsEditorContentEntry;\n error: CmsErrorResponse | null;\n };\n}\n\nexport interface CmsEntryGetQueryVariables {\n revision: string;\n}\n\nexport const createReadQuery = (model: CmsEditorContentModel) => {\n const ucFirstModelId = upperFirst(model.modelId);\n\n return gql`\n query CmsEntriesGet${ucFirstModelId}($revision: ID!) {\n content: get${ucFirstModelId}(revision: $revision) {\n data {\n id\n createdBy {\n id\n }\n ${createFieldsList(model.fields)}\n savedOn\n meta {\n ${CONTENT_META_FIELDS}\n }\n }\n error ${ERROR_FIELD}\n }\n }\n `;\n};\n/**\n * ############################################\n * List CMS Entry Revisions Query\n */\nexport interface CmsEntriesListRevisionsQueryResponse {\n revisions: {\n data: CmsContentEntryRevision[];\n error: CmsErrorResponse | null;\n meta: CmsMetaResponse;\n };\n}\nexport interface CmsEntriesListRevisionsQueryVariables {\n id: string;\n}\nexport const createRevisionsQuery = (model: CmsEditorContentModel) => {\n const ucFirstModelId = upperFirst(model.modelId);\n\n return gql`\n query CmsEntriesGet${ucFirstModelId}Revisions($id: ID!) {\n revisions: get${ucFirstModelId}Revisions(id: $id) {\n data {\n id\n savedOn\n meta {\n ${CONTENT_META_FIELDS}\n }\n }\n error ${ERROR_FIELD}\n }\n }\n `;\n};\n\nconst getModelTitleFieldId = (model: CmsEditorContentModel): string => {\n if (!model.titleFieldId || model.titleFieldId === \"id\") {\n return \"\";\n }\n return model.titleFieldId;\n};\n\n/**\n * ############################################\n * List CMS Entries Query\n */\nexport interface CmsEntriesListQueryResponse {\n content: {\n data: CmsEditorContentEntry[];\n error: CmsErrorResponse | null;\n meta: CmsMetaResponse;\n };\n}\nexport interface CmsEntriesListQueryVariables {\n // TODO @ts-refactor better list types\n where?: {\n [key: string]: any;\n };\n sort?: string[];\n limit?: number;\n after?: string;\n}\nexport const createListQuery = (model: CmsEditorContentModel) => {\n const ucFirstPluralizedModelId = upperFirst(pluralize(model.modelId));\n const ucFirstModelId = upperFirst(model.modelId);\n\n return gql`\n query CmsEntriesList${ucFirstPluralizedModelId}($where: ${ucFirstModelId}ListWhereInput, $sort: [${ucFirstModelId}ListSorter], $limit: Int, $after: String) {\n content: list${ucFirstPluralizedModelId}(\n where: $where\n sort: $sort\n limit: $limit\n after: $after\n ) {\n data {\n id\n savedOn\n meta {\n ${CONTENT_META_FIELDS}\n }\n ${getModelTitleFieldId(model)}\n }\n meta {\n cursor\n hasMoreItems\n totalCount\n } \n error ${ERROR_FIELD}\n }\n }\n `;\n};\n/**\n * ############################################\n * Delete Mutation\n */\nexport interface CmsEntryDeleteMutationResponse {\n content: {\n data: CmsEditorContentEntry | null;\n error: CmsErrorResponse | null;\n };\n}\nexport interface CmsEntryDeleteMutationVariables {\n revision: string;\n}\nexport const createDeleteMutation = (model: CmsEditorContentModel) => {\n const ucFirstModelId = upperFirst(model.modelId);\n\n return gql`\n mutation CmsEntriesDelete${ucFirstModelId}($revision: ID!) {\n content: delete${ucFirstModelId}(revision: $revision) {\n data\n error ${ERROR_FIELD}\n }\n }\n `;\n};\n/**\n * ############################################\n * Create Mutation\n */\nexport interface CmsEntryCreateMutationResponse {\n content: {\n data: CmsEditorContentEntry | null;\n error: CmsErrorResponse | null;\n };\n}\nexport interface CmsEntryCreateMutationVariables {\n /**\n * We have any here because we do not know which fields does entry have\n */\n data: Record<string, any>;\n}\nexport const createCreateMutation = (model: CmsEditorContentModel) => {\n const ucFirstModelId = upperFirst(model.modelId);\n\n return gql`\n mutation CmsEntriesCreate${ucFirstModelId}($data: ${ucFirstModelId}Input!) {\n content: create${ucFirstModelId}(data: $data) {\n data {\n id\n savedOn\n ${createFieldsList(model.fields)}\n meta {\n ${CONTENT_META_FIELDS}\n }\n }\n error ${ERROR_FIELD}\n }\n }\n `;\n};\n/**\n * ############################################\n * Create From Mutation\n */\nexport interface CmsEntryCreateFromMutationResponse {\n content: {\n data?: CmsEditorContentEntry;\n error?: CmsErrorResponse;\n };\n}\nexport interface CmsEntryCreateFromMutationVariables {\n revision: string;\n /**\n * We have any here because we do not know which fields does entry have\n */\n data?: Record<string, any>;\n}\nexport const createCreateFromMutation = (model: CmsEditorContentModel) => {\n const ucFirstModelId = upperFirst(model.modelId);\n\n return gql`\n mutation CmsCreate${ucFirstModelId}From($revision: ID!, $data: ${ucFirstModelId}Input) {\n content: create${ucFirstModelId}From(revision: $revision, data: $data) {\n data {\n id\n savedOn\n ${createFieldsList(model.fields)}\n meta {\n ${CONTENT_META_FIELDS}\n }\n }\n error ${ERROR_FIELD}\n }\n }`;\n};\n/**\n * ############################################\n * Update Mutation\n */\nexport interface CmsEntryUpdateMutationResponse {\n content: {\n data?: CmsEditorContentEntry;\n error?: CmsErrorResponse;\n };\n}\nexport interface CmsEntryUpdateMutationVariables {\n revision: string;\n /**\n * We have any here because we do not know which fields does entry have\n */\n data: Record<string, any>;\n}\nexport const createUpdateMutation = (model: CmsEditorContentModel) => {\n const ucFirstModelId = upperFirst(model.modelId);\n\n return gql`\n mutation CmsUpdate${ucFirstModelId}($revision: ID!, $data: ${ucFirstModelId}Input!) {\n content: update${ucFirstModelId}(revision: $revision, data: $data) {\n data {\n id\n ${createFieldsList(model.fields)}\n savedOn\n meta { \n ${CONTENT_META_FIELDS} \n }\n }\n error ${ERROR_FIELD}\n }\n }\n `;\n};\n/**\n * ############################################\n * Publish Mutation\n */\nexport interface CmsEntryPublishMutationResponse {\n content: {\n data?: CmsEditorContentEntry;\n error?: CmsErrorResponse;\n };\n}\nexport interface CmsEntryPublishMutationVariables {\n revision: string;\n}\nexport const createPublishMutation = (model: CmsEditorContentModel) => {\n const ucFirstModelId = upperFirst(model.modelId);\n\n return gql`\n mutation CmsPublish${ucFirstModelId}($revision: ID!) {\n content: publish${ucFirstModelId}(revision: $revision) {\n data {\n id\n meta {\n ${CONTENT_META_FIELDS}\n }\n }\n error ${ERROR_FIELD}\n }\n }`;\n};\n/**\n * ############################################\n * Unpublish Mutation\n */\nexport interface CmsEntryUnpublishMutationResponse {\n content: {\n data?: CmsEditorContentEntry;\n error?: CmsErrorResponse;\n };\n}\nexport interface CmsEntryUnpublishMutationVariables {\n revision: string;\n}\nexport const createUnpublishMutation = (model: CmsEditorContentModel) => {\n const ucFirstModelId = upperFirst(model.modelId);\n\n return gql`\n mutation CmsUnpublish${ucFirstModelId}($revision: ID!) {\n content: unpublish${ucFirstModelId}(revision: $revision) {\n data {\n id\n meta {\n ${CONTENT_META_FIELDS}\n }\n }\n error ${ERROR_FIELD}\n }\n }`;\n};\n/**\n * ############################################\n * Request Review Mutation\n */\nexport interface CmsEntryRequestReviewMutationResponse {\n content: {\n data?: CmsEditorContentEntry;\n error?: CmsErrorResponse;\n };\n}\nexport interface CmsEntryRequestReviewMutationVariables {\n revision: string;\n}\nexport const createRequestReviewMutation = (model: CmsEditorContentModel) => {\n const ucFirstModelId = upperFirst(model.modelId);\n\n return gql`\n mutation CmsRequest${ucFirstModelId}Review($revision: ID!) {\n content: request${ucFirstModelId}Review(revision: $revision) {\n data {\n id\n meta {\n ${CONTENT_META_FIELDS}\n }\n }\n error ${ERROR_FIELD}\n }\n }`;\n};\n\n/**\n * ############################################\n * Request Changes Mutation\n */\nexport interface CmsEntryRequestChangesMutationResponse {\n content: {\n data?: CmsEditorContentEntry;\n error?: CmsErrorResponse;\n };\n}\nexport interface CmsEntryRequestChangesMutationVariables {\n revision: string;\n}\nexport const createRequestChangesMutation = (model: CmsEditorContentModel) => {\n const ucFirstModelId = upperFirst(model.modelId);\n\n return gql`\n mutation CmsRequest${ucFirstModelId}Changes($revision: ID!) {\n content: request${ucFirstModelId}Changes(revision: $revision) {\n data {\n id\n meta {\n ${CONTENT_META_FIELDS}\n }\n }\n error ${ERROR_FIELD}\n }\n }`;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["ERROR_FIELD","CONTENT_META_FIELDS","createReadQuery","model","ucFirstModelId","upperFirst","modelId","gql","createFieldsList","fields","createRevisionsQuery","getModelTitleFieldId","titleFieldId","createListQuery","ucFirstPluralizedModelId","pluralize","createDeleteMutation","createCreateMutation","createCreateFromMutation","createUpdateMutation","createPublishMutation","createUnpublishMutation"],"sources":["contentEntries.ts"],"sourcesContent":["import upperFirst from \"lodash/upperFirst\";\nimport gql from \"graphql-tag\";\nimport pluralize from \"pluralize\";\nimport {\n CmsContentEntryRevision,\n CmsEditorContentEntry,\n CmsEditorContentModel,\n CmsErrorResponse,\n CmsMetaResponse\n} from \"~/types\";\nimport { createFieldsList } from \"./createFieldsList\";\n\nconst ERROR_FIELD = /* GraphQL */ `\n {\n message\n code\n data\n }\n`;\n\nconst CONTENT_META_FIELDS = /* GraphQL */ `\n title\n publishedOn\n version\n locked\n status\n`;\n/**\n * ############################################\n * Get CMS Entry Query\n */\nexport interface CmsEntryGetQueryResponse {\n content: {\n data: CmsEditorContentEntry;\n error: CmsErrorResponse | null;\n };\n}\n\nexport interface CmsEntryGetQueryVariables {\n revision?: string;\n entryId?: string;\n}\n\nexport const createReadQuery = (model: CmsEditorContentModel) => {\n const ucFirstModelId = upperFirst(model.modelId);\n /**\n * This query now accepts both revision or entryId as we can load exact revision or latest (if entryId was sent).\n */\n return gql`\n query CmsEntriesGet${ucFirstModelId}($revision: ID, $entryId: ID) {\n content: get${ucFirstModelId}(revision: $revision, entryId: $entryId) {\n data {\n id\n createdBy {\n id\n }\n ${createFieldsList(model.fields)}\n savedOn\n meta {\n ${CONTENT_META_FIELDS}\n }\n }\n error ${ERROR_FIELD}\n }\n }\n `;\n};\n/**\n * ############################################\n * List CMS Entry Revisions Query\n */\nexport interface CmsEntriesListRevisionsQueryResponse {\n revisions: {\n data: CmsContentEntryRevision[];\n error: CmsErrorResponse | null;\n meta: CmsMetaResponse;\n };\n}\nexport interface CmsEntriesListRevisionsQueryVariables {\n id: string;\n}\nexport const createRevisionsQuery = (model: CmsEditorContentModel) => {\n const ucFirstModelId = upperFirst(model.modelId);\n\n return gql`\n query CmsEntriesGet${ucFirstModelId}Revisions($id: ID!) {\n revisions: get${ucFirstModelId}Revisions(id: $id) {\n data {\n id\n savedOn\n meta {\n ${CONTENT_META_FIELDS}\n }\n }\n error ${ERROR_FIELD}\n }\n }\n `;\n};\n\nconst getModelTitleFieldId = (model: CmsEditorContentModel): string => {\n if (!model.titleFieldId || model.titleFieldId === \"id\") {\n return \"\";\n }\n return model.titleFieldId;\n};\n\n/**\n * ############################################\n * List CMS Entries Query\n */\nexport interface CmsEntriesListQueryResponse {\n content: {\n data: CmsEditorContentEntry[];\n error: CmsErrorResponse | null;\n meta: CmsMetaResponse;\n };\n}\nexport interface CmsEntriesListQueryVariables {\n // TODO @ts-refactor better list types\n where?: {\n [key: string]: any;\n };\n sort?: string[];\n limit?: number;\n after?: string;\n}\nexport const createListQuery = (model: CmsEditorContentModel) => {\n const ucFirstPluralizedModelId = upperFirst(pluralize(model.modelId));\n const ucFirstModelId = upperFirst(model.modelId);\n\n return gql`\n query CmsEntriesList${ucFirstPluralizedModelId}($where: ${ucFirstModelId}ListWhereInput, $sort: [${ucFirstModelId}ListSorter], $limit: Int, $after: String) {\n content: list${ucFirstPluralizedModelId}(\n where: $where\n sort: $sort\n limit: $limit\n after: $after\n ) {\n data {\n id\n savedOn\n meta {\n ${CONTENT_META_FIELDS}\n }\n ${getModelTitleFieldId(model)}\n }\n meta {\n cursor\n hasMoreItems\n totalCount\n }\n error ${ERROR_FIELD}\n }\n }\n `;\n};\n/**\n * ############################################\n * Delete Mutation\n */\nexport interface CmsEntryDeleteMutationResponse {\n content: {\n data: CmsEditorContentEntry | null;\n error: CmsErrorResponse | null;\n };\n}\nexport interface CmsEntryDeleteMutationVariables {\n revision: string;\n}\nexport const createDeleteMutation = (model: CmsEditorContentModel) => {\n const ucFirstModelId = upperFirst(model.modelId);\n\n return gql`\n mutation CmsEntriesDelete${ucFirstModelId}($revision: ID!) {\n content: delete${ucFirstModelId}(revision: $revision) {\n data\n error ${ERROR_FIELD}\n }\n }\n `;\n};\n/**\n * ############################################\n * Create Mutation\n */\nexport interface CmsEntryCreateMutationResponse {\n content: {\n data: CmsEditorContentEntry | null;\n error: CmsErrorResponse | null;\n };\n}\nexport interface CmsEntryCreateMutationVariables {\n /**\n * We have any here because we do not know which fields does entry have\n */\n data: Record<string, any>;\n}\nexport const createCreateMutation = (model: CmsEditorContentModel) => {\n const ucFirstModelId = upperFirst(model.modelId);\n\n return gql`\n mutation CmsEntriesCreate${ucFirstModelId}($data: ${ucFirstModelId}Input!) {\n content: create${ucFirstModelId}(data: $data) {\n data {\n id\n savedOn\n ${createFieldsList(model.fields)}\n meta {\n ${CONTENT_META_FIELDS}\n }\n }\n error ${ERROR_FIELD}\n }\n }\n `;\n};\n/**\n * ############################################\n * Create From Mutation\n */\nexport interface CmsEntryCreateFromMutationResponse {\n content: {\n data?: CmsEditorContentEntry;\n error?: CmsErrorResponse;\n };\n}\nexport interface CmsEntryCreateFromMutationVariables {\n revision: string;\n /**\n * We have any here because we do not know which fields does entry have\n */\n data?: Record<string, any>;\n}\nexport const createCreateFromMutation = (model: CmsEditorContentModel) => {\n const ucFirstModelId = upperFirst(model.modelId);\n\n return gql`\n mutation CmsCreate${ucFirstModelId}From($revision: ID!, $data: ${ucFirstModelId}Input) {\n content: create${ucFirstModelId}From(revision: $revision, data: $data) {\n data {\n id\n savedOn\n ${createFieldsList(model.fields)}\n meta {\n ${CONTENT_META_FIELDS}\n }\n }\n error ${ERROR_FIELD}\n }\n }`;\n};\n/**\n * ############################################\n * Update Mutation\n */\nexport interface CmsEntryUpdateMutationResponse {\n content: {\n data?: CmsEditorContentEntry;\n error?: CmsErrorResponse;\n };\n}\nexport interface CmsEntryUpdateMutationVariables {\n revision: string;\n /**\n * We have any here because we do not know which fields does entry have\n */\n data: Record<string, any>;\n}\nexport const createUpdateMutation = (model: CmsEditorContentModel) => {\n const ucFirstModelId = upperFirst(model.modelId);\n\n return gql`\n mutation CmsUpdate${ucFirstModelId}($revision: ID!, $data: ${ucFirstModelId}Input!) {\n content: update${ucFirstModelId}(revision: $revision, data: $data) {\n data {\n id\n ${createFieldsList(model.fields)}\n savedOn\n meta {\n ${CONTENT_META_FIELDS}\n }\n }\n error ${ERROR_FIELD}\n }\n }\n `;\n};\n/**\n * ############################################\n * Publish Mutation\n */\nexport interface CmsEntryPublishMutationResponse {\n content: {\n data?: CmsEditorContentEntry;\n error?: CmsErrorResponse;\n };\n}\nexport interface CmsEntryPublishMutationVariables {\n revision: string;\n}\nexport const createPublishMutation = (model: CmsEditorContentModel) => {\n const ucFirstModelId = upperFirst(model.modelId);\n\n return gql`\n mutation CmsPublish${ucFirstModelId}($revision: ID!) {\n content: publish${ucFirstModelId}(revision: $revision) {\n data {\n id\n meta {\n ${CONTENT_META_FIELDS}\n }\n }\n error ${ERROR_FIELD}\n }\n }`;\n};\n/**\n * ############################################\n * Unpublish Mutation\n */\nexport interface CmsEntryUnpublishMutationResponse {\n content: {\n data?: CmsEditorContentEntry;\n error?: CmsErrorResponse;\n };\n}\nexport interface CmsEntryUnpublishMutationVariables {\n revision: string;\n}\nexport const createUnpublishMutation = (model: CmsEditorContentModel) => {\n const ucFirstModelId = upperFirst(model.modelId);\n\n return gql`\n mutation CmsUnpublish${ucFirstModelId}($revision: ID!) {\n content: unpublish${ucFirstModelId}(revision: $revision) {\n data {\n id\n meta {\n ${CONTENT_META_FIELDS}\n }\n }\n error ${ERROR_FIELD}\n }\n }`;\n};\n"],"mappings":"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"}
|
|
@@ -13,8 +13,6 @@ export declare const usePermission: () => {
|
|
|
13
13
|
canDelete: (item: CreatableItem, permissionName: string) => boolean;
|
|
14
14
|
canPublish: (permissionName: string) => boolean;
|
|
15
15
|
canUnpublish: (permissionName: string) => boolean;
|
|
16
|
-
canRequestReview: (permissionName: string) => boolean;
|
|
17
|
-
canRequestChange: (permissionName: string) => boolean;
|
|
18
16
|
canReadContentModels: boolean;
|
|
19
17
|
canReadContentModelGroups: boolean;
|
|
20
18
|
canCreateContentModels: boolean;
|
|
@@ -170,40 +170,6 @@ var usePermission = function usePermission() {
|
|
|
170
170
|
|
|
171
171
|
return false;
|
|
172
172
|
}, [identity, hasFullAccess]);
|
|
173
|
-
var canRequestReview = (0, _react.useCallback)(function (permissionName) {
|
|
174
|
-
if (hasFullAccess) {
|
|
175
|
-
return true;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
var permission = getPermission(permissionName);
|
|
179
|
-
|
|
180
|
-
if (!permission) {
|
|
181
|
-
return false;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
if (typeof permission.pw === "string") {
|
|
185
|
-
return permission.pw.includes("r");
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
return false;
|
|
189
|
-
}, [identity, hasFullAccess]);
|
|
190
|
-
var canRequestChange = (0, _react.useCallback)(function (permissionName) {
|
|
191
|
-
if (hasFullAccess) {
|
|
192
|
-
return true;
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
var permission = getPermission(permissionName);
|
|
196
|
-
|
|
197
|
-
if (!permission) {
|
|
198
|
-
return false;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
if (typeof permission.pw === "string") {
|
|
202
|
-
return permission.pw.includes("c");
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
return false;
|
|
206
|
-
}, [identity, hasFullAccess]);
|
|
207
173
|
var canReadContentModels = canRead("cms.contentModel");
|
|
208
174
|
var canReadContentModelGroups = canRead("cms.contentModelGroup");
|
|
209
175
|
var canCreateContentModels = canCreate("cms.contentModel");
|
|
@@ -218,8 +184,6 @@ var usePermission = function usePermission() {
|
|
|
218
184
|
canDelete: canDelete,
|
|
219
185
|
canPublish: canPublish,
|
|
220
186
|
canUnpublish: canUnpublish,
|
|
221
|
-
canRequestReview: canRequestReview,
|
|
222
|
-
canRequestChange: canRequestChange,
|
|
223
187
|
canReadContentModels: canReadContentModels,
|
|
224
188
|
canReadContentModelGroups: canReadContentModelGroups,
|
|
225
189
|
canCreateContentModels: canCreateContentModels,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["usePermission","useSecurity","identity","getPermission","useI18N","getCurrentLocale","currentLocale","hasFullAccess","useMemo","canRead","useCallback","permissionName","permission","rwd","includes","canReadEntries","contentModelGroup","contentModel","contentModelPermission","contentModelGroupPermission","models","get","Array","isArray","modelId","groups","id","canEdit","item","own","createdBy","login","canCreate","canDelete","canPublish","pw","canUnpublish","canRequestReview","canRequestChange","canReadContentModels","canReadContentModelGroups","canCreateContentModels","canCreateContentModelGroups","canAccessManageEndpoint","undefined"],"sources":["usePermission.ts"],"sourcesContent":["import { useCallback, useMemo } from \"react\";\nimport { useSecurity } from \"@webiny/app-security\";\nimport get from \"lodash/get\";\nimport { useI18N } from \"@webiny/app-i18n/hooks/useI18N\";\nimport { CmsCreatedBy, CmsGroup, CmsModel, CmsSecurityPermission } from \"~/types\";\n\ninterface CreatableItem {\n createdBy: Pick<CmsCreatedBy, \"id\">;\n}\n\ninterface CanReadEntriesCallableParams {\n contentModelGroup: CmsGroup;\n contentModel: CmsModel;\n}\n\nexport const usePermission = () => {\n const { identity, getPermission } = useSecurity();\n const { getCurrentLocale } = useI18N();\n\n const currentLocale = getCurrentLocale(\"content\");\n\n const hasFullAccess = useMemo((): CmsSecurityPermission | null => {\n return getPermission(\"cms.*\");\n }, [identity]);\n\n const canRead = useCallback(\n (permissionName: string): boolean => {\n const permission = getPermission<CmsSecurityPermission>(permissionName);\n if (!permission) {\n return false;\n }\n\n if (typeof permission.rwd !== \"string\") {\n return true;\n }\n\n return permission.rwd.includes(\"r\");\n },\n [identity]\n );\n\n const canReadEntries = useCallback(\n ({ contentModelGroup, contentModel }: CanReadEntriesCallableParams): boolean => {\n if (hasFullAccess) {\n return true;\n }\n\n const permission = getPermission<CmsSecurityPermission>(\"cms.contentEntry\");\n const contentModelPermission = getPermission(\"cms.contentModel\");\n const contentModelGroupPermission = getPermission(\"cms.contentModelGroup\");\n\n if (!permission) {\n return false;\n }\n\n // Check \"contentModel\" list.\n const models = get(contentModelPermission, `models.${currentLocale}`);\n if (Array.isArray(models)) {\n return models.includes(contentModel.modelId);\n }\n // Check \"contentModelGroup\" list.\n const groups = get(contentModelGroupPermission, `groups.${currentLocale}`);\n if (Array.isArray(groups)) {\n return groups.includes(contentModelGroup.id);\n }\n\n if (typeof permission.rwd === \"string\") {\n return permission.rwd.includes(\"r\");\n }\n\n return true;\n },\n [identity, hasFullAccess, currentLocale]\n );\n\n const canEdit = useCallback(\n (item: CreatableItem, permissionName: string): boolean => {\n const permission = getPermission<CmsSecurityPermission>(permissionName);\n\n if (!permission || !identity) {\n return false;\n }\n if (permission.own) {\n /**\n * There will be no \"createdBy\" field for a new entry therefore we enable the access.\n */\n if (!item.createdBy) {\n return true;\n }\n return get(item, \"createdBy.id\") === identity.login;\n }\n if (typeof permission.rwd === \"string\") {\n return permission.rwd.includes(\"w\");\n }\n return true;\n },\n [identity]\n );\n\n /**\n * @description This checks whether the user has the \"write\" access for given permission;\n * without talking the \"own\" property in account.\n * @param {string} permissionName\n * */\n const canCreate = useCallback(\n (permissionName: string): boolean => {\n const permission = getPermission<CmsSecurityPermission>(permissionName);\n if (!permission) {\n return false;\n }\n\n if (typeof permission.rwd !== \"string\") {\n return true;\n }\n\n return permission.rwd.includes(\"w\");\n },\n [identity]\n );\n\n const canDelete = useCallback(\n (item: CreatableItem, permissionName: string): boolean => {\n const permission = getPermission<CmsSecurityPermission>(permissionName);\n\n if (!permission) {\n return false;\n }\n if (permission.own) {\n return get(item, \"createdBy.id\") === (identity ? identity.login : null);\n }\n if (typeof permission.rwd === \"string\") {\n return permission.rwd.includes(\"d\");\n }\n return true;\n },\n [identity]\n );\n\n const canPublish = useCallback(\n (permissionName: string): boolean => {\n if (hasFullAccess) {\n return true;\n }\n const permission = getPermission<CmsSecurityPermission>(permissionName);\n\n if (!permission) {\n return false;\n }\n if (typeof permission.pw === \"string\") {\n return permission.pw.includes(\"p\");\n }\n\n return false;\n },\n [identity, hasFullAccess]\n );\n\n const canUnpublish = useCallback(\n (permissionName: string): boolean => {\n if (hasFullAccess) {\n return true;\n }\n const permission = getPermission<CmsSecurityPermission>(permissionName);\n\n if (!permission) {\n return false;\n }\n if (typeof permission.pw === \"string\") {\n return permission.pw.includes(\"u\");\n }\n\n return false;\n },\n [identity, hasFullAccess]\n );\n\n const canRequestReview = useCallback(\n (permissionName: string): boolean => {\n if (hasFullAccess) {\n return true;\n }\n const permission = getPermission<CmsSecurityPermission>(permissionName);\n\n if (!permission) {\n return false;\n }\n if (typeof permission.pw === \"string\") {\n return permission.pw.includes(\"r\");\n }\n\n return false;\n },\n [identity, hasFullAccess]\n );\n\n const canRequestChange = useCallback(\n (permissionName: string): boolean => {\n if (hasFullAccess) {\n return true;\n }\n const permission = getPermission<CmsSecurityPermission>(permissionName);\n\n if (!permission) {\n return false;\n }\n if (typeof permission.pw === \"string\") {\n return permission.pw.includes(\"c\");\n }\n\n return false;\n },\n [identity, hasFullAccess]\n );\n\n const canReadContentModels = canRead(\"cms.contentModel\");\n const canReadContentModelGroups = canRead(\"cms.contentModelGroup\");\n const canCreateContentModels = canCreate(\"cms.contentModel\");\n const canCreateContentModelGroups = canCreate(\"cms.contentModelGroup\");\n const canAccessManageEndpoint = useMemo(() => {\n return getPermission(\"cms.endpoint.manage\") !== undefined;\n }, [identity]);\n\n return {\n canReadEntries,\n canEdit,\n canCreate,\n canDelete,\n canPublish,\n canUnpublish,\n canRequestReview,\n canRequestChange,\n canReadContentModels,\n canReadContentModelGroups,\n canCreateContentModels,\n canCreateContentModelGroups,\n canAccessManageEndpoint\n };\n};\n/**\n * Default export is deprecated, use the named one.\n * @deprecated\n */\nexport default usePermission;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAYO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,GAAM;EAC/B,mBAAoC,IAAAC,wBAAA,GAApC;EAAA,IAAQC,QAAR,gBAAQA,QAAR;EAAA,IAAkBC,aAAlB,gBAAkBA,aAAlB;;EACA,eAA6B,IAAAC,iBAAA,GAA7B;EAAA,IAAQC,gBAAR,YAAQA,gBAAR;;EAEA,IAAMC,aAAa,GAAGD,gBAAgB,CAAC,SAAD,CAAtC;EAEA,IAAME,aAAa,GAAG,IAAAC,cAAA,EAAQ,YAAoC;IAC9D,OAAOL,aAAa,CAAC,OAAD,CAApB;EACH,CAFqB,EAEnB,CAACD,QAAD,CAFmB,CAAtB;EAIA,IAAMO,OAAO,GAAG,IAAAC,kBAAA,EACZ,UAACC,cAAD,EAAqC;IACjC,IAAMC,UAAU,GAAGT,aAAa,CAAwBQ,cAAxB,CAAhC;;IACA,IAAI,CAACC,UAAL,EAAiB;MACb,OAAO,KAAP;IACH;;IAED,IAAI,OAAOA,UAAU,CAACC,GAAlB,KAA0B,QAA9B,EAAwC;MACpC,OAAO,IAAP;IACH;;IAED,OAAOD,UAAU,CAACC,GAAX,CAAeC,QAAf,CAAwB,GAAxB,CAAP;EACH,CAZW,EAaZ,CAACZ,QAAD,CAbY,CAAhB;EAgBA,IAAMa,cAAc,GAAG,IAAAL,kBAAA,EACnB,gBAAgF;IAAA,IAA7EM,iBAA6E,QAA7EA,iBAA6E;IAAA,IAA1DC,YAA0D,QAA1DA,YAA0D;;IAC5E,IAAIV,aAAJ,EAAmB;MACf,OAAO,IAAP;IACH;;IAED,IAAMK,UAAU,GAAGT,aAAa,CAAwB,kBAAxB,CAAhC;IACA,IAAMe,sBAAsB,GAAGf,aAAa,CAAC,kBAAD,CAA5C;IACA,IAAMgB,2BAA2B,GAAGhB,aAAa,CAAC,uBAAD,CAAjD;;IAEA,IAAI,CAACS,UAAL,EAAiB;MACb,OAAO,KAAP;IACH,CAX2E,CAa5E;;;IACA,IAAMQ,MAAM,GAAG,IAAAC,YAAA,EAAIH,sBAAJ,mBAAsCZ,aAAtC,EAAf;;IACA,IAAIgB,KAAK,CAACC,OAAN,CAAcH,MAAd,CAAJ,EAA2B;MACvB,OAAOA,MAAM,CAACN,QAAP,CAAgBG,YAAY,CAACO,OAA7B,CAAP;IACH,CAjB2E,CAkB5E;;;IACA,IAAMC,MAAM,GAAG,IAAAJ,YAAA,EAAIF,2BAAJ,mBAA2Cb,aAA3C,EAAf;;IACA,IAAIgB,KAAK,CAACC,OAAN,CAAcE,MAAd,CAAJ,EAA2B;MACvB,OAAOA,MAAM,CAACX,QAAP,CAAgBE,iBAAiB,CAACU,EAAlC,CAAP;IACH;;IAED,IAAI,OAAOd,UAAU,CAACC,GAAlB,KAA0B,QAA9B,EAAwC;MACpC,OAAOD,UAAU,CAACC,GAAX,CAAeC,QAAf,CAAwB,GAAxB,CAAP;IACH;;IAED,OAAO,IAAP;EACH,CA9BkB,EA+BnB,CAACZ,QAAD,EAAWK,aAAX,EAA0BD,aAA1B,CA/BmB,CAAvB;EAkCA,IAAMqB,OAAO,GAAG,IAAAjB,kBAAA,EACZ,UAACkB,IAAD,EAAsBjB,cAAtB,EAA0D;IACtD,IAAMC,UAAU,GAAGT,aAAa,CAAwBQ,cAAxB,CAAhC;;IAEA,IAAI,CAACC,UAAD,IAAe,CAACV,QAApB,EAA8B;MAC1B,OAAO,KAAP;IACH;;IACD,IAAIU,UAAU,CAACiB,GAAf,EAAoB;MAChB;AAChB;AACA;MACgB,IAAI,CAACD,IAAI,CAACE,SAAV,EAAqB;QACjB,OAAO,IAAP;MACH;;MACD,OAAO,IAAAT,YAAA,EAAIO,IAAJ,EAAU,cAAV,MAA8B1B,QAAQ,CAAC6B,KAA9C;IACH;;IACD,IAAI,OAAOnB,UAAU,CAACC,GAAlB,KAA0B,QAA9B,EAAwC;MACpC,OAAOD,UAAU,CAACC,GAAX,CAAeC,QAAf,CAAwB,GAAxB,CAAP;IACH;;IACD,OAAO,IAAP;EACH,CApBW,EAqBZ,CAACZ,QAAD,CArBY,CAAhB;EAwBA;AACJ;AACA;AACA;AACA;;EACI,IAAM8B,SAAS,GAAG,IAAAtB,kBAAA,EACd,UAACC,cAAD,EAAqC;IACjC,IAAMC,UAAU,GAAGT,aAAa,CAAwBQ,cAAxB,CAAhC;;IACA,IAAI,CAACC,UAAL,EAAiB;MACb,OAAO,KAAP;IACH;;IAED,IAAI,OAAOA,UAAU,CAACC,GAAlB,KAA0B,QAA9B,EAAwC;MACpC,OAAO,IAAP;IACH;;IAED,OAAOD,UAAU,CAACC,GAAX,CAAeC,QAAf,CAAwB,GAAxB,CAAP;EACH,CAZa,EAad,CAACZ,QAAD,CAbc,CAAlB;EAgBA,IAAM+B,SAAS,GAAG,IAAAvB,kBAAA,EACd,UAACkB,IAAD,EAAsBjB,cAAtB,EAA0D;IACtD,IAAMC,UAAU,GAAGT,aAAa,CAAwBQ,cAAxB,CAAhC;;IAEA,IAAI,CAACC,UAAL,EAAiB;MACb,OAAO,KAAP;IACH;;IACD,IAAIA,UAAU,CAACiB,GAAf,EAAoB;MAChB,OAAO,IAAAR,YAAA,EAAIO,IAAJ,EAAU,cAAV,OAA+B1B,QAAQ,GAAGA,QAAQ,CAAC6B,KAAZ,GAAoB,IAA3D,CAAP;IACH;;IACD,IAAI,OAAOnB,UAAU,CAACC,GAAlB,KAA0B,QAA9B,EAAwC;MACpC,OAAOD,UAAU,CAACC,GAAX,CAAeC,QAAf,CAAwB,GAAxB,CAAP;IACH;;IACD,OAAO,IAAP;EACH,CAda,EAed,CAACZ,QAAD,CAfc,CAAlB;EAkBA,IAAMgC,UAAU,GAAG,IAAAxB,kBAAA,EACf,UAACC,cAAD,EAAqC;IACjC,IAAIJ,aAAJ,EAAmB;MACf,OAAO,IAAP;IACH;;IACD,IAAMK,UAAU,GAAGT,aAAa,CAAwBQ,cAAxB,CAAhC;;IAEA,IAAI,CAACC,UAAL,EAAiB;MACb,OAAO,KAAP;IACH;;IACD,IAAI,OAAOA,UAAU,CAACuB,EAAlB,KAAyB,QAA7B,EAAuC;MACnC,OAAOvB,UAAU,CAACuB,EAAX,CAAcrB,QAAd,CAAuB,GAAvB,CAAP;IACH;;IAED,OAAO,KAAP;EACH,CAfc,EAgBf,CAACZ,QAAD,EAAWK,aAAX,CAhBe,CAAnB;EAmBA,IAAM6B,YAAY,GAAG,IAAA1B,kBAAA,EACjB,UAACC,cAAD,EAAqC;IACjC,IAAIJ,aAAJ,EAAmB;MACf,OAAO,IAAP;IACH;;IACD,IAAMK,UAAU,GAAGT,aAAa,CAAwBQ,cAAxB,CAAhC;;IAEA,IAAI,CAACC,UAAL,EAAiB;MACb,OAAO,KAAP;IACH;;IACD,IAAI,OAAOA,UAAU,CAACuB,EAAlB,KAAyB,QAA7B,EAAuC;MACnC,OAAOvB,UAAU,CAACuB,EAAX,CAAcrB,QAAd,CAAuB,GAAvB,CAAP;IACH;;IAED,OAAO,KAAP;EACH,CAfgB,EAgBjB,CAACZ,QAAD,EAAWK,aAAX,CAhBiB,CAArB;EAmBA,IAAM8B,gBAAgB,GAAG,IAAA3B,kBAAA,EACrB,UAACC,cAAD,EAAqC;IACjC,IAAIJ,aAAJ,EAAmB;MACf,OAAO,IAAP;IACH;;IACD,IAAMK,UAAU,GAAGT,aAAa,CAAwBQ,cAAxB,CAAhC;;IAEA,IAAI,CAACC,UAAL,EAAiB;MACb,OAAO,KAAP;IACH;;IACD,IAAI,OAAOA,UAAU,CAACuB,EAAlB,KAAyB,QAA7B,EAAuC;MACnC,OAAOvB,UAAU,CAACuB,EAAX,CAAcrB,QAAd,CAAuB,GAAvB,CAAP;IACH;;IAED,OAAO,KAAP;EACH,CAfoB,EAgBrB,CAACZ,QAAD,EAAWK,aAAX,CAhBqB,CAAzB;EAmBA,IAAM+B,gBAAgB,GAAG,IAAA5B,kBAAA,EACrB,UAACC,cAAD,EAAqC;IACjC,IAAIJ,aAAJ,EAAmB;MACf,OAAO,IAAP;IACH;;IACD,IAAMK,UAAU,GAAGT,aAAa,CAAwBQ,cAAxB,CAAhC;;IAEA,IAAI,CAACC,UAAL,EAAiB;MACb,OAAO,KAAP;IACH;;IACD,IAAI,OAAOA,UAAU,CAACuB,EAAlB,KAAyB,QAA7B,EAAuC;MACnC,OAAOvB,UAAU,CAACuB,EAAX,CAAcrB,QAAd,CAAuB,GAAvB,CAAP;IACH;;IAED,OAAO,KAAP;EACH,CAfoB,EAgBrB,CAACZ,QAAD,EAAWK,aAAX,CAhBqB,CAAzB;EAmBA,IAAMgC,oBAAoB,GAAG9B,OAAO,CAAC,kBAAD,CAApC;EACA,IAAM+B,yBAAyB,GAAG/B,OAAO,CAAC,uBAAD,CAAzC;EACA,IAAMgC,sBAAsB,GAAGT,SAAS,CAAC,kBAAD,CAAxC;EACA,IAAMU,2BAA2B,GAAGV,SAAS,CAAC,uBAAD,CAA7C;EACA,IAAMW,uBAAuB,GAAG,IAAAnC,cAAA,EAAQ,YAAM;IAC1C,OAAOL,aAAa,CAAC,qBAAD,CAAb,KAAyCyC,SAAhD;EACH,CAF+B,EAE7B,CAAC1C,QAAD,CAF6B,CAAhC;EAIA,OAAO;IACHa,cAAc,EAAdA,cADG;IAEHY,OAAO,EAAPA,OAFG;IAGHK,SAAS,EAATA,SAHG;IAIHC,SAAS,EAATA,SAJG;IAKHC,UAAU,EAAVA,UALG;IAMHE,YAAY,EAAZA,YANG;IAOHC,gBAAgB,EAAhBA,gBAPG;IAQHC,gBAAgB,EAAhBA,gBARG;IASHC,oBAAoB,EAApBA,oBATG;IAUHC,yBAAyB,EAAzBA,yBAVG;IAWHC,sBAAsB,EAAtBA,sBAXG;IAYHC,2BAA2B,EAA3BA,2BAZG;IAaHC,uBAAuB,EAAvBA;EAbG,CAAP;AAeH,CA9NM;AA+NP;AACA;AACA;AACA;;;;eACe3C,a"}
|
|
1
|
+
{"version":3,"names":["usePermission","useSecurity","identity","getPermission","useI18N","getCurrentLocale","currentLocale","hasFullAccess","useMemo","canRead","useCallback","permissionName","permission","rwd","includes","canReadEntries","contentModelGroup","contentModel","contentModelPermission","contentModelGroupPermission","models","get","Array","isArray","modelId","groups","id","canEdit","item","own","createdBy","login","canCreate","canDelete","canPublish","pw","canUnpublish","canReadContentModels","canReadContentModelGroups","canCreateContentModels","canCreateContentModelGroups","canAccessManageEndpoint","undefined"],"sources":["usePermission.ts"],"sourcesContent":["import { useCallback, useMemo } from \"react\";\nimport { useSecurity } from \"@webiny/app-security\";\nimport get from \"lodash/get\";\nimport { useI18N } from \"@webiny/app-i18n/hooks/useI18N\";\nimport { CmsCreatedBy, CmsGroup, CmsModel, CmsSecurityPermission } from \"~/types\";\n\ninterface CreatableItem {\n createdBy: Pick<CmsCreatedBy, \"id\">;\n}\n\ninterface CanReadEntriesCallableParams {\n contentModelGroup: CmsGroup;\n contentModel: CmsModel;\n}\n\nexport const usePermission = () => {\n const { identity, getPermission } = useSecurity();\n const { getCurrentLocale } = useI18N();\n\n const currentLocale = getCurrentLocale(\"content\");\n\n const hasFullAccess = useMemo((): CmsSecurityPermission | null => {\n return getPermission(\"cms.*\");\n }, [identity]);\n\n const canRead = useCallback(\n (permissionName: string): boolean => {\n const permission = getPermission<CmsSecurityPermission>(permissionName);\n if (!permission) {\n return false;\n }\n\n if (typeof permission.rwd !== \"string\") {\n return true;\n }\n\n return permission.rwd.includes(\"r\");\n },\n [identity]\n );\n\n const canReadEntries = useCallback(\n ({ contentModelGroup, contentModel }: CanReadEntriesCallableParams): boolean => {\n if (hasFullAccess) {\n return true;\n }\n\n const permission = getPermission<CmsSecurityPermission>(\"cms.contentEntry\");\n const contentModelPermission = getPermission(\"cms.contentModel\");\n const contentModelGroupPermission = getPermission(\"cms.contentModelGroup\");\n\n if (!permission) {\n return false;\n }\n\n // Check \"contentModel\" list.\n const models = get(contentModelPermission, `models.${currentLocale}`);\n if (Array.isArray(models)) {\n return models.includes(contentModel.modelId);\n }\n // Check \"contentModelGroup\" list.\n const groups = get(contentModelGroupPermission, `groups.${currentLocale}`);\n if (Array.isArray(groups)) {\n return groups.includes(contentModelGroup.id);\n }\n\n if (typeof permission.rwd === \"string\") {\n return permission.rwd.includes(\"r\");\n }\n\n return true;\n },\n [identity, hasFullAccess, currentLocale]\n );\n\n const canEdit = useCallback(\n (item: CreatableItem, permissionName: string): boolean => {\n const permission = getPermission<CmsSecurityPermission>(permissionName);\n\n if (!permission || !identity) {\n return false;\n }\n if (permission.own) {\n /**\n * There will be no \"createdBy\" field for a new entry therefore we enable the access.\n */\n if (!item.createdBy) {\n return true;\n }\n return get(item, \"createdBy.id\") === identity.login;\n }\n if (typeof permission.rwd === \"string\") {\n return permission.rwd.includes(\"w\");\n }\n return true;\n },\n [identity]\n );\n\n /**\n * @description This checks whether the user has the \"write\" access for given permission;\n * without talking the \"own\" property in account.\n * @param {string} permissionName\n * */\n const canCreate = useCallback(\n (permissionName: string): boolean => {\n const permission = getPermission<CmsSecurityPermission>(permissionName);\n if (!permission) {\n return false;\n }\n\n if (typeof permission.rwd !== \"string\") {\n return true;\n }\n\n return permission.rwd.includes(\"w\");\n },\n [identity]\n );\n\n const canDelete = useCallback(\n (item: CreatableItem, permissionName: string): boolean => {\n const permission = getPermission<CmsSecurityPermission>(permissionName);\n\n if (!permission) {\n return false;\n }\n if (permission.own) {\n return get(item, \"createdBy.id\") === (identity ? identity.login : null);\n }\n if (typeof permission.rwd === \"string\") {\n return permission.rwd.includes(\"d\");\n }\n return true;\n },\n [identity]\n );\n\n const canPublish = useCallback(\n (permissionName: string): boolean => {\n if (hasFullAccess) {\n return true;\n }\n const permission = getPermission<CmsSecurityPermission>(permissionName);\n\n if (!permission) {\n return false;\n }\n if (typeof permission.pw === \"string\") {\n return permission.pw.includes(\"p\");\n }\n\n return false;\n },\n [identity, hasFullAccess]\n );\n\n const canUnpublish = useCallback(\n (permissionName: string): boolean => {\n if (hasFullAccess) {\n return true;\n }\n const permission = getPermission<CmsSecurityPermission>(permissionName);\n\n if (!permission) {\n return false;\n }\n if (typeof permission.pw === \"string\") {\n return permission.pw.includes(\"u\");\n }\n\n return false;\n },\n [identity, hasFullAccess]\n );\n\n const canReadContentModels = canRead(\"cms.contentModel\");\n const canReadContentModelGroups = canRead(\"cms.contentModelGroup\");\n const canCreateContentModels = canCreate(\"cms.contentModel\");\n const canCreateContentModelGroups = canCreate(\"cms.contentModelGroup\");\n const canAccessManageEndpoint = useMemo(() => {\n return getPermission(\"cms.endpoint.manage\") !== undefined;\n }, [identity]);\n\n return {\n canReadEntries,\n canEdit,\n canCreate,\n canDelete,\n canPublish,\n canUnpublish,\n canReadContentModels,\n canReadContentModelGroups,\n canCreateContentModels,\n canCreateContentModelGroups,\n canAccessManageEndpoint\n };\n};\n/**\n * Default export is deprecated, use the named one.\n * @deprecated\n */\nexport default usePermission;\n"],"mappings":"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"}
|
|
@@ -13,6 +13,8 @@ var _emotion = require("emotion");
|
|
|
13
13
|
|
|
14
14
|
var _List = require("@webiny/ui/List");
|
|
15
15
|
|
|
16
|
+
var _Typography = require("@webiny/ui/Typography");
|
|
17
|
+
|
|
16
18
|
// TODO: implement this without relying on the `ui` package
|
|
17
19
|
var linkStyle = /*#__PURE__*/(0, _emotion.css)({
|
|
18
20
|
color: "var(--mdc-theme-text-primary-on-background)",
|
|
@@ -49,7 +51,8 @@ var NothingToShow = function NothingToShow() {
|
|
|
49
51
|
className: submenuItems,
|
|
50
52
|
ripple: false,
|
|
51
53
|
disabled: true
|
|
52
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
54
|
+
}, /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
|
|
55
|
+
use: "body2",
|
|
53
56
|
className: linkStyle
|
|
54
57
|
}, "Nothing to show.")));
|
|
55
58
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["linkStyle","css","color","textDecoration","display","alignItems","width","height","outline","paddingLeft","submenuItems","margin","submenuList","padding","NothingToShow","opacity"],"sources":["NothingToShowElement.tsx"],"sourcesContent":["// TODO: implement this without relying on the `ui` package\nimport React from \"react\";\nimport { css } from \"emotion\";\nimport { List, ListItem } from \"@webiny/ui/List\";\n\nconst linkStyle = css({\n color: \"var(--mdc-theme-text-primary-on-background)\",\n textDecoration: \"none\",\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n height: \"100%\",\n outline: \"none\",\n paddingLeft: 72,\n \"&:hover\": {\n textDecoration: \"none\"\n }\n});\n\nconst submenuItems = css({\n \".mdc-drawer &.mdc-list-item\": {\n margin: 0,\n paddingLeft: 0\n }\n});\n\nconst submenuList = css({\n \"&.mdc-list\": {\n padding: 0\n }\n});\n\nexport const NothingToShow: React.FC = () => {\n return (\n <List className={submenuList} style={{ opacity: 0.4 }}>\n <ListItem className={submenuItems} ripple={false} disabled>\n <
|
|
1
|
+
{"version":3,"names":["linkStyle","css","color","textDecoration","display","alignItems","width","height","outline","paddingLeft","submenuItems","margin","submenuList","padding","NothingToShow","opacity"],"sources":["NothingToShowElement.tsx"],"sourcesContent":["// TODO: implement this without relying on the `ui` package\nimport React from \"react\";\nimport { css } from \"emotion\";\nimport { List, ListItem } from \"@webiny/ui/List\";\nimport { Typography } from \"@webiny/ui/Typography\";\n\nconst linkStyle = css({\n color: \"var(--mdc-theme-text-primary-on-background)\",\n textDecoration: \"none\",\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n height: \"100%\",\n outline: \"none\",\n paddingLeft: 72,\n \"&:hover\": {\n textDecoration: \"none\"\n }\n});\n\nconst submenuItems = css({\n \".mdc-drawer &.mdc-list-item\": {\n margin: 0,\n paddingLeft: 0\n }\n});\n\nconst submenuList = css({\n \"&.mdc-list\": {\n padding: 0\n }\n});\n\nexport const NothingToShow: React.FC = () => {\n return (\n <List className={submenuList} style={{ opacity: 0.4 }}>\n <ListItem className={submenuItems} ripple={false} disabled>\n <Typography use={\"body2\"} className={linkStyle}>\n Nothing to show.\n </Typography>\n </ListItem>\n </List>\n );\n};\n"],"mappings":";;;;;;;;;AACA;;AACA;;AACA;;AACA;;AAJA;AAMA,IAAMA,SAAS,gBAAG,IAAAC,YAAA,EAAI;EAClBC,KAAK,EAAE,6CADW;EAElBC,cAAc,EAAE,MAFE;EAGlBC,OAAO,EAAE,MAHS;EAIlBC,UAAU,EAAE,QAJM;EAKlBC,KAAK,EAAE,MALW;EAMlBC,MAAM,EAAE,MANU;EAOlBC,OAAO,EAAE,MAPS;EAQlBC,WAAW,EAAE,EARK;EASlB,WAAW;IACPN,cAAc,EAAE;EADT;AATO,CAAJ,qBAAlB;AAcA,IAAMO,YAAY,gBAAG,IAAAT,YAAA,EAAI;EACrB,+BAA+B;IAC3BU,MAAM,EAAE,CADmB;IAE3BF,WAAW,EAAE;EAFc;AADV,CAAJ,wBAArB;AAOA,IAAMG,WAAW,gBAAG,IAAAX,YAAA,EAAI;EACpB,cAAc;IACVY,OAAO,EAAE;EADC;AADM,CAAJ,uBAApB;;AAMO,IAAMC,aAAuB,GAAG,SAA1BA,aAA0B,GAAM;EACzC,oBACI,6BAAC,UAAD;IAAM,SAAS,EAAEF,WAAjB;IAA8B,KAAK,EAAE;MAAEG,OAAO,EAAE;IAAX;EAArC,gBACI,6BAAC,cAAD;IAAU,SAAS,EAAEL,YAArB;IAAmC,MAAM,EAAE,KAA3C;IAAkD,QAAQ;EAA1D,gBACI,6BAAC,sBAAD;IAAY,GAAG,EAAE,OAAjB;IAA0B,SAAS,EAAEV;EAArC,sBADJ,CADJ,CADJ;AASH,CAVM"}
|
|
@@ -80,7 +80,7 @@ var FormSettings = function FormSettings(_ref) {
|
|
|
80
80
|
}, /*#__PURE__*/_react.default.createElement(_List.ListItemGraphic, null, /*#__PURE__*/_react.default.createElement(_Icon.Icon, {
|
|
81
81
|
icon: pl.icon
|
|
82
82
|
})), /*#__PURE__*/_react.default.createElement(_FormSettingsStyled.TitleContent, null, /*#__PURE__*/_react.default.createElement(_FormSettingsStyled.ListItemTitle, null, pl.title), /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
|
|
83
|
-
use: "
|
|
83
|
+
use: "body2"
|
|
84
84
|
}, pl.description)));
|
|
85
85
|
}))), /*#__PURE__*/_react.default.createElement(_SplitView.RightPanel, {
|
|
86
86
|
span: 7
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["t","i18n","namespace","FormSettings","onExited","cmsEditorFormSettingsPlugins","plugins","byType","useContentModelEditor","data","setData","useSnackbar","showSnackbar","useState","activePlugin","setActivePlugin","Title","listStyle","map","pl","name","listItem","icon","title","description","Bind","submit","form","formData","renderHeaderActions","render","ev"],"sources":["FormSettings.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { plugins } from \"@webiny/plugins\";\nimport { OverlayLayout } from \"@webiny/app-admin/components/OverlayLayout\";\nimport { SplitView, LeftPanel, RightPanel } from \"@webiny/app-admin/components/SplitView\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { Form } from \"@webiny/form\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { ButtonPrimary } from \"@webiny/ui/Button\";\nimport { List, ListItem, ListItemGraphic } from \"@webiny/ui/List\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport * as SF from \"@webiny/app-admin/components/SimpleForm\";\nimport { CmsEditorFormSettingsPlugin } from \"~/types\";\nimport { Title, listItem, ListItemTitle, listStyle, TitleContent } from \"./FormSettingsStyled\";\nimport { useContentModelEditor } from \"~/admin/components/ContentModelEditor/useContentModelEditor\";\n\nconst t = i18n.namespace(\"FormsApp.Editor.FormSettings\");\n\ninterface FormSettingsProps {\n onExited: () => void;\n}\n\nconst FormSettings: React.FC<FormSettingsProps> = ({ onExited }) => {\n const cmsEditorFormSettingsPlugins = plugins.byType<CmsEditorFormSettingsPlugin>(\n \"cms-editor-form-settings\"\n );\n const { data, setData } = useContentModelEditor();\n const { showSnackbar } = useSnackbar();\n\n const [activePlugin, setActivePlugin] = useState(cmsEditorFormSettingsPlugins[0]);\n\n return (\n <OverlayLayout barMiddle={Title} onExited={onExited}>\n <SplitView>\n <LeftPanel span={5}>\n <List twoLine className={listStyle}>\n {cmsEditorFormSettingsPlugins.map(pl => (\n <ListItem\n key={pl.name}\n className={listItem}\n onClick={() => setActivePlugin(pl)}\n >\n <ListItemGraphic>\n <Icon icon={pl.icon} />\n </ListItemGraphic>\n <TitleContent>\n <ListItemTitle>{pl.title}</ListItemTitle>\n <Typography use={\"
|
|
1
|
+
{"version":3,"names":["t","i18n","namespace","FormSettings","onExited","cmsEditorFormSettingsPlugins","plugins","byType","useContentModelEditor","data","setData","useSnackbar","showSnackbar","useState","activePlugin","setActivePlugin","Title","listStyle","map","pl","name","listItem","icon","title","description","Bind","submit","form","formData","renderHeaderActions","render","ev"],"sources":["FormSettings.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { plugins } from \"@webiny/plugins\";\nimport { OverlayLayout } from \"@webiny/app-admin/components/OverlayLayout\";\nimport { SplitView, LeftPanel, RightPanel } from \"@webiny/app-admin/components/SplitView\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { Form } from \"@webiny/form\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { ButtonPrimary } from \"@webiny/ui/Button\";\nimport { List, ListItem, ListItemGraphic } from \"@webiny/ui/List\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport * as SF from \"@webiny/app-admin/components/SimpleForm\";\nimport { CmsEditorFormSettingsPlugin } from \"~/types\";\nimport { Title, listItem, ListItemTitle, listStyle, TitleContent } from \"./FormSettingsStyled\";\nimport { useContentModelEditor } from \"~/admin/components/ContentModelEditor/useContentModelEditor\";\n\nconst t = i18n.namespace(\"FormsApp.Editor.FormSettings\");\n\ninterface FormSettingsProps {\n onExited: () => void;\n}\n\nconst FormSettings: React.FC<FormSettingsProps> = ({ onExited }) => {\n const cmsEditorFormSettingsPlugins = plugins.byType<CmsEditorFormSettingsPlugin>(\n \"cms-editor-form-settings\"\n );\n const { data, setData } = useContentModelEditor();\n const { showSnackbar } = useSnackbar();\n\n const [activePlugin, setActivePlugin] = useState(cmsEditorFormSettingsPlugins[0]);\n\n return (\n <OverlayLayout barMiddle={Title} onExited={onExited}>\n <SplitView>\n <LeftPanel span={5}>\n <List twoLine className={listStyle}>\n {cmsEditorFormSettingsPlugins.map(pl => (\n <ListItem\n key={pl.name}\n className={listItem}\n onClick={() => setActivePlugin(pl)}\n >\n <ListItemGraphic>\n <Icon icon={pl.icon} />\n </ListItemGraphic>\n <TitleContent>\n <ListItemTitle>{pl.title}</ListItemTitle>\n <Typography use={\"body2\"}>{pl.description}</Typography>\n </TitleContent>\n </ListItem>\n ))}\n </List>\n </LeftPanel>\n <RightPanel span={7}>\n <Form\n data={data}\n onSubmit={data => {\n setData(() => data);\n onExited();\n showSnackbar(t`Content model settings updated successfully.`);\n }}\n >\n {({ Bind, submit, form, data: formData }) => (\n <SF.SimpleForm>\n <SF.SimpleFormHeader title={activePlugin.title}>\n {typeof activePlugin.renderHeaderActions === \"function\" &&\n activePlugin.renderHeaderActions({\n /**\n * TODO @ts-refactor\n * Figure out type for Bind\n */\n Bind: Bind as any,\n form,\n formData\n })}\n </SF.SimpleFormHeader>\n <SF.SimpleFormContent>\n {activePlugin\n ? activePlugin.render({\n /**\n * TODO @ts-refactor\n * Figure out type for Bind\n */\n Bind: Bind as any,\n form,\n formData\n })\n : null}\n </SF.SimpleFormContent>\n <SF.SimpleFormFooter>\n <ButtonPrimary\n onClick={ev => {\n submit(ev);\n }}\n >{t`Save settings`}</ButtonPrimary>\n </SF.SimpleFormFooter>\n </SF.SimpleForm>\n )}\n </Form>\n </RightPanel>\n </SplitView>\n </OverlayLayout>\n );\n};\n\nexport default FormSettings;\n"],"mappings":"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"}
|