@webiny/app-headless-cms 5.26.0 → 5.26.1-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.
|
@@ -125,7 +125,7 @@ var Field = function Field(props) {
|
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
127
|
}, _callee);
|
|
128
|
-
})), [field.fieldId]);
|
|
128
|
+
})), [field.fieldId, setData]);
|
|
129
129
|
var fieldPlugin = getFieldPlugin(field.type);
|
|
130
130
|
var editorFieldOptionPlugins = plugins.byType("cms-editor-field-option");
|
|
131
131
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Field.tsx"],"names":["React","Fragment","useCallback","css","styled","IconButton","Typography","ReactComponent","EditIcon","DeleteIcon","TitleIcon","MoreVerticalIcon","Menu","MenuItem","plugins","ListItemGraphic","Icon","i18n","useSnackbar","useContentModelEditor","useFieldEditor","t","ns","FieldContainer","display","flexDirection","justifyContent","alignItems","Info","flex","lineHeight","Actions","menuStyles","width","right","left","opacity","pointerEvents","allowedTitleFieldTypes","isFieldAllowedToBeTitle","field","parent","multipleValues","includes","type","Field","props","onEdit","showSnackbar","setData","data","getFieldPlugin","onDelete","fieldId","setAsTitle","titleFieldId","response","error","message","fieldPlugin","editorFieldOptionPlugins","byType","isTitleField","lockedFields","label","map","pl","cloneElement","render","key","name","some","lockedField","find","memo"],"mappings":"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","sourcesContent":["import React, { Fragment, useCallback } from \"react\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { ReactComponent as EditIcon } from \"~/admin/icons/edit.svg\";\nimport { ReactComponent as DeleteIcon } from \"~/admin/icons/delete.svg\";\nimport { ReactComponent as TitleIcon } from \"~/admin/icons/title-24px.svg\";\nimport { ReactComponent as MoreVerticalIcon } from \"~/admin/icons/more_vert.svg\";\nimport { Menu, MenuItem } from \"@webiny/ui/Menu\";\nimport { plugins } from \"@webiny/plugins\";\nimport { CmsEditorField, CmsEditorFieldOptionPlugin } from \"~/types\";\nimport { ListItemGraphic } from \"@webiny/ui/List\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { useContentModelEditor } from \"~/admin/components/ContentModelEditor/useContentModelEditor\";\nimport { useFieldEditor } from \"~/admin/components/FieldEditor/useFieldEditor\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/components/editor/field\");\n\nconst FieldContainer = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\"\n});\n\nconst Info = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"column\",\n \"> *\": {\n flex: \"1 100%\",\n lineHeight: \"150%\"\n }\n});\n\nconst Actions = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"right\",\n \"> *\": {\n flex: \"1 100%\"\n }\n});\n\nconst menuStyles = css({\n width: 220,\n right: -105,\n left: \"auto !important\",\n \".disabled\": {\n opacity: 0.5,\n pointerEvents: \"none\"\n }\n});\n\nconst allowedTitleFieldTypes: string[] = [\"text\", \"number\"];\n\nconst isFieldAllowedToBeTitle = (field: CmsEditorField, parent?: CmsEditorField) => {\n if (field.multipleValues || parent) {\n return false;\n } else if (allowedTitleFieldTypes.includes(field.type) === false) {\n return false;\n }\n return true;\n};\n\nexport interface FieldProps {\n field: CmsEditorField;\n onDelete: (field: CmsEditorField) => void;\n onEdit: (field: CmsEditorField) => void;\n parent?: CmsEditorField;\n}\nconst Field: React.FC<FieldProps> = props => {\n const { field, onEdit, parent } = props;\n const { showSnackbar } = useSnackbar();\n const { setData, data } = useContentModelEditor();\n const { getFieldPlugin } = useFieldEditor();\n\n const onDelete = useCallback(() => {\n props.onDelete(field);\n }, [field.fieldId]);\n\n const setAsTitle = useCallback(async (): Promise<void> => {\n const response = await setData(data => {\n return { ...data, titleFieldId: field.fieldId };\n });\n\n if (response && response.error) {\n return showSnackbar(response.error.message);\n }\n\n showSnackbar(t`Title field set successfully.`);\n }, [field.fieldId]);\n\n const fieldPlugin = getFieldPlugin(field.type);\n const editorFieldOptionPlugins =\n plugins.byType<CmsEditorFieldOptionPlugin>(\"cms-editor-field-option\");\n\n if (!fieldPlugin) {\n return null;\n }\n\n const isTitleField = data && field.fieldId === data.titleFieldId && !parent;\n\n const lockedFields = data ? data.lockedFields || [] : [];\n return (\n <Fragment>\n <FieldContainer>\n <Info>\n <Typography use={\"subtitle1\"}>{field.label}</Typography>\n <Typography use={\"caption\"}>\n {fieldPlugin.field.label}{\" \"}\n {field.multipleValues && <>({t`multiple values`})</>}\n {isTitleField && <>({t`entry title`})</>}\n </Typography>\n </Info>\n <Actions>\n <IconButton\n data-testid={\"cms.editor.edit-field\"}\n icon={<EditIcon />}\n onClick={() => onEdit(field)}\n />\n <Menu\n className={menuStyles}\n handle={<IconButton icon={<MoreVerticalIcon />} />}\n >\n {editorFieldOptionPlugins.map(pl =>\n React.cloneElement(pl.render(), { key: pl.name })\n )}\n {/* We only allow this action for top-level fields. */}\n <MenuItem\n disabled={!isFieldAllowedToBeTitle(field, parent)}\n onClick={setAsTitle}\n >\n <ListItemGraphic>\n <Icon icon={<TitleIcon />} />\n </ListItemGraphic>\n {t`Use as title`}\n </MenuItem>\n <MenuItem\n disabled={lockedFields.some(\n lockedField => lockedField.fieldId === field.fieldId\n )}\n onClick={onDelete}\n >\n <ListItemGraphic>\n <Icon icon={<DeleteIcon />} />\n </ListItemGraphic>\n {lockedFields.find(lockedField => lockedField.fieldId === field.fieldId)\n ? t`Cannot delete`\n : t`Delete`}\n </MenuItem>\n </Menu>\n </Actions>\n </FieldContainer>\n <div className={\"field-extra\"}>\n {fieldPlugin.field.render && fieldPlugin.field.render({ field, data, setData })}\n </div>\n </Fragment>\n );\n};\n\nexport default React.memo(Field);\n"]}
|
|
1
|
+
{"version":3,"sources":["Field.tsx"],"names":["React","Fragment","useCallback","css","styled","IconButton","Typography","ReactComponent","EditIcon","DeleteIcon","TitleIcon","MoreVerticalIcon","Menu","MenuItem","plugins","ListItemGraphic","Icon","i18n","useSnackbar","useContentModelEditor","useFieldEditor","t","ns","FieldContainer","display","flexDirection","justifyContent","alignItems","Info","flex","lineHeight","Actions","menuStyles","width","right","left","opacity","pointerEvents","allowedTitleFieldTypes","isFieldAllowedToBeTitle","field","parent","multipleValues","includes","type","Field","props","onEdit","showSnackbar","setData","data","getFieldPlugin","onDelete","fieldId","setAsTitle","titleFieldId","response","error","message","fieldPlugin","editorFieldOptionPlugins","byType","isTitleField","lockedFields","label","map","pl","cloneElement","render","key","name","some","lockedField","find","memo"],"mappings":"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","sourcesContent":["import React, { Fragment, useCallback } from \"react\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { ReactComponent as EditIcon } from \"~/admin/icons/edit.svg\";\nimport { ReactComponent as DeleteIcon } from \"~/admin/icons/delete.svg\";\nimport { ReactComponent as TitleIcon } from \"~/admin/icons/title-24px.svg\";\nimport { ReactComponent as MoreVerticalIcon } from \"~/admin/icons/more_vert.svg\";\nimport { Menu, MenuItem } from \"@webiny/ui/Menu\";\nimport { plugins } from \"@webiny/plugins\";\nimport { CmsEditorField, CmsEditorFieldOptionPlugin } from \"~/types\";\nimport { ListItemGraphic } from \"@webiny/ui/List\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { useContentModelEditor } from \"~/admin/components/ContentModelEditor/useContentModelEditor\";\nimport { useFieldEditor } from \"~/admin/components/FieldEditor/useFieldEditor\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/components/editor/field\");\n\nconst FieldContainer = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\"\n});\n\nconst Info = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"column\",\n \"> *\": {\n flex: \"1 100%\",\n lineHeight: \"150%\"\n }\n});\n\nconst Actions = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"right\",\n \"> *\": {\n flex: \"1 100%\"\n }\n});\n\nconst menuStyles = css({\n width: 220,\n right: -105,\n left: \"auto !important\",\n \".disabled\": {\n opacity: 0.5,\n pointerEvents: \"none\"\n }\n});\n\nconst allowedTitleFieldTypes: string[] = [\"text\", \"number\"];\n\nconst isFieldAllowedToBeTitle = (field: CmsEditorField, parent?: CmsEditorField) => {\n if (field.multipleValues || parent) {\n return false;\n } else if (allowedTitleFieldTypes.includes(field.type) === false) {\n return false;\n }\n return true;\n};\n\nexport interface FieldProps {\n field: CmsEditorField;\n onDelete: (field: CmsEditorField) => void;\n onEdit: (field: CmsEditorField) => void;\n parent?: CmsEditorField;\n}\nconst Field: React.FC<FieldProps> = props => {\n const { field, onEdit, parent } = props;\n const { showSnackbar } = useSnackbar();\n const { setData, data } = useContentModelEditor();\n const { getFieldPlugin } = useFieldEditor();\n\n const onDelete = useCallback(() => {\n props.onDelete(field);\n }, [field.fieldId]);\n\n const setAsTitle = useCallback(async (): Promise<void> => {\n const response = await setData(data => {\n return { ...data, titleFieldId: field.fieldId };\n });\n\n if (response && response.error) {\n return showSnackbar(response.error.message);\n }\n\n showSnackbar(t`Title field set successfully.`);\n }, [field.fieldId, setData]);\n\n const fieldPlugin = getFieldPlugin(field.type);\n const editorFieldOptionPlugins =\n plugins.byType<CmsEditorFieldOptionPlugin>(\"cms-editor-field-option\");\n\n if (!fieldPlugin) {\n return null;\n }\n\n const isTitleField = data && field.fieldId === data.titleFieldId && !parent;\n\n const lockedFields = data ? data.lockedFields || [] : [];\n return (\n <Fragment>\n <FieldContainer>\n <Info>\n <Typography use={\"subtitle1\"}>{field.label}</Typography>\n <Typography use={\"caption\"}>\n {fieldPlugin.field.label}{\" \"}\n {field.multipleValues && <>({t`multiple values`})</>}\n {isTitleField && <>({t`entry title`})</>}\n </Typography>\n </Info>\n <Actions>\n <IconButton\n data-testid={\"cms.editor.edit-field\"}\n icon={<EditIcon />}\n onClick={() => onEdit(field)}\n />\n <Menu\n className={menuStyles}\n handle={<IconButton icon={<MoreVerticalIcon />} />}\n >\n {editorFieldOptionPlugins.map(pl =>\n React.cloneElement(pl.render(), { key: pl.name })\n )}\n {/* We only allow this action for top-level fields. */}\n <MenuItem\n disabled={!isFieldAllowedToBeTitle(field, parent)}\n onClick={setAsTitle}\n >\n <ListItemGraphic>\n <Icon icon={<TitleIcon />} />\n </ListItemGraphic>\n {t`Use as title`}\n </MenuItem>\n <MenuItem\n disabled={lockedFields.some(\n lockedField => lockedField.fieldId === field.fieldId\n )}\n onClick={onDelete}\n >\n <ListItemGraphic>\n <Icon icon={<DeleteIcon />} />\n </ListItemGraphic>\n {lockedFields.find(lockedField => lockedField.fieldId === field.fieldId)\n ? t`Cannot delete`\n : t`Delete`}\n </MenuItem>\n </Menu>\n </Actions>\n </FieldContainer>\n <div className={\"field-extra\"}>\n {fieldPlugin.field.render && fieldPlugin.field.render({ field, data, setData })}\n </div>\n </Fragment>\n );\n};\n\nexport default React.memo(Field);\n"]}
|
package/admin/plugins/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
declare const _default: () => (import("
|
|
1
|
+
declare const _default: () => (import("../../types").CmsEditorFormSettingsPlugin | import("../../types").CmsIconsPlugin | import("../../types").CmsFieldValueTransformer[] | import("@webiny/app/types").CacheGetObjectIdPlugin | import("@webiny/app/types").RoutePlugin[] | import("@webiny/app-admin/types").AdminInstallationPlugin | import("@webiny/app-admin/types").AdminAppPermissionRendererPlugin | import("../../types").CmsContentDetailsPlugin[] | {
|
|
2
2
|
name: string;
|
|
3
3
|
type: string;
|
|
4
4
|
render(): JSX.Element;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/app-headless-cms",
|
|
3
|
-
"version": "5.26.0",
|
|
3
|
+
"version": "5.26.1-beta.0",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -26,19 +26,19 @@
|
|
|
26
26
|
"@fortawesome/react-fontawesome": "0.1.17",
|
|
27
27
|
"@svgr/webpack": "6.2.1",
|
|
28
28
|
"@types/react": "16.14.2",
|
|
29
|
-
"@webiny/app": "5.26.0",
|
|
30
|
-
"@webiny/app-admin": "5.26.0",
|
|
31
|
-
"@webiny/app-graphql-playground": "5.26.0",
|
|
32
|
-
"@webiny/app-i18n": "5.26.0",
|
|
33
|
-
"@webiny/app-plugin-admin-welcome-screen": "5.26.0",
|
|
34
|
-
"@webiny/app-security": "5.26.0",
|
|
35
|
-
"@webiny/error": "5.26.0",
|
|
36
|
-
"@webiny/form": "5.26.0",
|
|
37
|
-
"@webiny/plugins": "5.26.0",
|
|
38
|
-
"@webiny/react-router": "5.26.0",
|
|
39
|
-
"@webiny/ui": "5.26.0",
|
|
40
|
-
"@webiny/utils": "5.26.0",
|
|
41
|
-
"@webiny/validation": "5.26.0",
|
|
29
|
+
"@webiny/app": "5.26.1-beta.0",
|
|
30
|
+
"@webiny/app-admin": "5.26.1-beta.0",
|
|
31
|
+
"@webiny/app-graphql-playground": "5.26.1-beta.0",
|
|
32
|
+
"@webiny/app-i18n": "5.26.1-beta.0",
|
|
33
|
+
"@webiny/app-plugin-admin-welcome-screen": "5.26.1-beta.0",
|
|
34
|
+
"@webiny/app-security": "5.26.1-beta.0",
|
|
35
|
+
"@webiny/error": "5.26.1-beta.0",
|
|
36
|
+
"@webiny/form": "5.26.1-beta.0",
|
|
37
|
+
"@webiny/plugins": "5.26.1-beta.0",
|
|
38
|
+
"@webiny/react-router": "5.26.1-beta.0",
|
|
39
|
+
"@webiny/ui": "5.26.1-beta.0",
|
|
40
|
+
"@webiny/utils": "5.26.1-beta.0",
|
|
41
|
+
"@webiny/validation": "5.26.1-beta.0",
|
|
42
42
|
"apollo-cache": "1.3.5",
|
|
43
43
|
"apollo-client": "2.6.10",
|
|
44
44
|
"apollo-link": "1.2.14",
|
|
@@ -73,8 +73,8 @@
|
|
|
73
73
|
"@babel/preset-env": "^7.16.4",
|
|
74
74
|
"@babel/preset-react": "^7.16.0",
|
|
75
75
|
"@babel/preset-typescript": "^7.16.0",
|
|
76
|
-
"@webiny/cli": "^5.26.0",
|
|
77
|
-
"@webiny/project-utils": "^5.26.0",
|
|
76
|
+
"@webiny/cli": "^5.26.1-beta.0",
|
|
77
|
+
"@webiny/project-utils": "^5.26.1-beta.0",
|
|
78
78
|
"babel-plugin-emotion": "^9.2.8",
|
|
79
79
|
"babel-plugin-lodash": "^3.3.4",
|
|
80
80
|
"babel-plugin-module-resolver": "^4.1.0",
|
|
@@ -106,5 +106,5 @@
|
|
|
106
106
|
]
|
|
107
107
|
}
|
|
108
108
|
},
|
|
109
|
-
"gitHead": "
|
|
109
|
+
"gitHead": "d85df0d292bfd4ee2422cbb59de18ee8899df076"
|
|
110
110
|
}
|