@webiny/app-headless-cms 0.0.0-unstable.c2780f51fe → 0.0.0-unstable.c59b9cc5b9
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/Dialog.js +1 -1
- package/admin/components/Dialog.js.map +1 -1
- package/admin/components/IconPicker.js +16 -12
- package/admin/components/IconPicker.js.map +1 -1
- package/admin/hooks/useContentModels.d.ts +8 -0
- package/admin/hooks/useContentModels.js +9 -2
- package/admin/hooks/useContentModels.js.map +1 -1
- package/admin/menus/ContentGroupsMenuItems.js +1 -2
- package/admin/menus/ContentGroupsMenuItems.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/NewReferencedEntryDialog.js +3 -3
- package/admin/plugins/fieldRenderers/ref/advanced/components/NewReferencedEntryDialog.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/index.d.ts +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/index.js +3 -3
- package/admin/plugins/fieldRenderers/ref/advanced/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.d.ts +2 -2
- package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js +3 -3
- package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/index.js +2 -1
- package/admin/plugins/fieldRenderers/ref/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleItems.d.ts +21 -0
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleItems.js +85 -0
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleItems.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleMultipleRenderer.d.ts +9 -0
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleMultipleRenderer.js +50 -0
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleMultipleRenderer.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleSingleRenderer.d.ts +9 -0
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleSingleRenderer.js +39 -0
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleSingleRenderer.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/simple/components/useContentModels.d.ts +8 -0
- package/admin/plugins/fieldRenderers/ref/simple/components/useContentModels.js +31 -0
- package/admin/plugins/fieldRenderers/ref/simple/components/useContentModels.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/simple/components/useReferences.d.ts +11 -0
- package/admin/plugins/fieldRenderers/ref/simple/components/useReferences.js +98 -0
- package/admin/plugins/fieldRenderers/ref/simple/components/useReferences.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/simple/index.d.ts +1 -0
- package/admin/plugins/fieldRenderers/ref/simple/index.js +12 -0
- package/admin/plugins/fieldRenderers/ref/simple/index.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/simple/simpleMultipleRenderer.d.ts +2 -0
- package/admin/plugins/fieldRenderers/ref/simple/simpleMultipleRenderer.js +40 -0
- package/admin/plugins/fieldRenderers/ref/simple/simpleMultipleRenderer.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/simple/simpleSingleRenderer.d.ts +2 -0
- package/admin/plugins/fieldRenderers/ref/simple/simpleSingleRenderer.js +40 -0
- package/admin/plugins/fieldRenderers/ref/simple/simpleSingleRenderer.js.map +1 -0
- package/admin/plugins/routes.js +2 -1
- package/admin/plugins/routes.js.map +1 -1
- package/admin/views/contentEntries/ContentEntries.js +8 -57
- package/admin/views/contentEntries/ContentEntries.js.map +1 -1
- package/admin/views/contentEntries/ContentEntriesContainer.d.ts +4 -0
- package/admin/views/contentEntries/ContentEntriesContainer.js +65 -0
- package/admin/views/contentEntries/ContentEntriesContainer.js.map +1 -0
- package/admin/views/contentEntries/ContentEntriesContext.d.ts +1 -1
- package/admin/views/contentEntries/ContentEntriesContext.js +4 -4
- package/admin/views/contentEntries/ContentEntriesContext.js.map +1 -1
- package/admin/views/contentEntries/ContentEntriesList.js +2 -3
- package/admin/views/contentEntries/ContentEntriesList.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.d.ts +1 -1
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js +4 -4
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js.map +1 -1
- package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.d.ts +2 -0
- package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.js +36 -39
- package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.js.map +1 -1
- package/admin/views/contentModels/ContentModelsDataList.js +3 -3
- package/admin/views/contentModels/ContentModelsDataList.js.map +1 -1
- package/package.json +30 -30
- package/types/index.d.ts +9 -5
- package/types/index.js.map +1 -1
- package/admin/plugins/upgrades/5.19.0/UpgradeItemsInfo.d.ts +0 -7
- package/admin/plugins/upgrades/5.19.0/UpgradeItemsInfo.js +0 -65
- package/admin/plugins/upgrades/5.19.0/UpgradeItemsInfo.js.map +0 -1
- package/admin/plugins/upgrades/5.19.0/createCmsApolloClient.d.ts +0 -7
- package/admin/plugins/upgrades/5.19.0/createCmsApolloClient.js +0 -67
- package/admin/plugins/upgrades/5.19.0/createCmsApolloClient.js.map +0 -1
- package/admin/plugins/upgrades/5.19.0/createListEntriesQuery.d.ts +0 -2
- package/admin/plugins/upgrades/5.19.0/createListEntriesQuery.js +0 -26
- package/admin/plugins/upgrades/5.19.0/createListEntriesQuery.js.map +0 -1
- package/admin/plugins/upgrades/5.19.0/createListModelsQuery.d.ts +0 -1
- package/admin/plugins/upgrades/5.19.0/createListModelsQuery.js +0 -20
- package/admin/plugins/upgrades/5.19.0/createListModelsQuery.js.map +0 -1
- package/admin/plugins/upgrades/5.19.0/createRepublishMutation.d.ts +0 -2
- package/admin/plugins/upgrades/5.19.0/createRepublishMutation.js +0 -23
- package/admin/plugins/upgrades/5.19.0/createRepublishMutation.js.map +0 -1
- package/admin/plugins/upgrades/5.19.0/createUpgradeMutation.d.ts +0 -1
- package/admin/plugins/upgrades/5.19.0/createUpgradeMutation.js +0 -20
- package/admin/plugins/upgrades/5.19.0/createUpgradeMutation.js.map +0 -1
- package/admin/plugins/upgrades/5.19.0/fetchModelEntries.d.ts +0 -7
- package/admin/plugins/upgrades/5.19.0/fetchModelEntries.js +0 -137
- package/admin/plugins/upgrades/5.19.0/fetchModelEntries.js.map +0 -1
- package/admin/plugins/upgrades/5.19.0/types.d.ts +0 -47
- package/admin/plugins/upgrades/5.19.0/types.js +0 -5
- package/admin/plugins/upgrades/5.19.0/types.js.map +0 -1
- package/admin/plugins/upgrades/5.33.0/locales.d.ts +0 -7
- package/admin/plugins/upgrades/5.33.0/locales.js +0 -65
- package/admin/plugins/upgrades/5.33.0/locales.js.map +0 -1
- package/admin/plugins/upgrades/5.33.0/types.d.ts +0 -7
- package/admin/plugins/upgrades/5.33.0/types.js +0 -5
- package/admin/plugins/upgrades/5.33.0/types.js.map +0 -1
- package/admin/plugins/upgrades/5.33.0/upgrade.d.ts +0 -8
- package/admin/plugins/upgrades/5.33.0/upgrade.js +0 -81
- package/admin/plugins/upgrades/5.33.0/upgrade.js.map +0 -1
- package/admin/plugins/upgrades/v5.0.0.d.ts +0 -5
- package/admin/plugins/upgrades/v5.0.0.js +0 -111
- package/admin/plugins/upgrades/v5.0.0.js.map +0 -1
- package/admin/plugins/upgrades/v5.19.0.d.ts +0 -5
- package/admin/plugins/upgrades/v5.19.0.js +0 -684
- package/admin/plugins/upgrades/v5.19.0.js.map +0 -1
- package/admin/plugins/upgrades/v5.33.0.d.ts +0 -6
- package/admin/plugins/upgrades/v5.33.0.js +0 -191
- package/admin/plugins/upgrades/v5.33.0.js.map +0 -1
- package/admin/plugins/upgrades/v5.5.0.d.ts +0 -5
- package/admin/plugins/upgrades/v5.5.0.js +0 -111
- package/admin/plugins/upgrades/v5.5.0.js.map +0 -1
- package/admin/plugins/upgrades/v5.8.0.d.ts +0 -5
- package/admin/plugins/upgrades/v5.8.0.js +0 -111
- package/admin/plugins/upgrades/v5.8.0.js.map +0 -1
- package/admin/views/contentEntries/experiment/Property.d.ts +0 -34
- package/admin/views/contentEntries/experiment/Property.js +0 -200
- package/admin/views/contentEntries/experiment/Property.js.map +0 -1
|
@@ -24,5 +24,5 @@ Object.keys(_Dialog).forEach(function (key) {
|
|
|
24
24
|
var Dialog = /*#__PURE__*/(0, _styled.default)(_Dialog.Dialog, {
|
|
25
25
|
label: "Dialog",
|
|
26
26
|
target: "e1q5k1p00"
|
|
27
|
-
})(".mdc-dialog__surface{width:600px;min-width:600px;overflow:initial;}.mdc-dialog__content{overflow:
|
|
27
|
+
})(".mdc-dialog__surface{width:600px;min-width:600px;overflow:initial;}.mdc-dialog__content{overflow:auto;.mdc-list:first-of-type{padding:0;}}");
|
|
28
28
|
exports.Dialog = Dialog;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Dialog","styled","BaseDialog"],"sources":["Dialog.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport { Dialog as BaseDialog } from \"@webiny/ui/Dialog\";\nexport * from \"@webiny/ui/Dialog\";\n\nexport const Dialog = styled(BaseDialog)`\n .mdc-dialog__surface {\n width: 600px;\n min-width: 600px;\n overflow: initial;\n }\n\n .mdc-dialog__content {\n overflow:
|
|
1
|
+
{"version":3,"names":["Dialog","styled","BaseDialog"],"sources":["Dialog.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport { Dialog as BaseDialog } from \"@webiny/ui/Dialog\";\nexport * from \"@webiny/ui/Dialog\";\n\nexport const Dialog = styled(BaseDialog)`\n .mdc-dialog__surface {\n width: 600px;\n min-width: 600px;\n overflow: initial;\n }\n\n .mdc-dialog__content {\n overflow: auto;\n .mdc-list:first-of-type {\n padding: 0;\n }\n }\n`;\n"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AAEO,IAAMA,MAAM,oBAAGC,eAAM,EAACC,cAAU;EAAA;EAAA;AAAA,gJAatC;AAAC"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.IconPicker = void 0;
|
|
9
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
10
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
12
|
var _emotion = require("emotion");
|
|
13
|
+
var _react2 = require("@emotion/react");
|
|
12
14
|
var _plugins = require("@webiny/plugins");
|
|
13
15
|
var _Typography = require("@webiny/ui/Typography");
|
|
14
16
|
var _reactVirtualized = require("react-virtualized");
|
|
@@ -17,6 +19,7 @@ var _DelayedOnChange = _interopRequireDefault(require("./DelayedOnChange"));
|
|
|
17
19
|
var _Menu = require("@webiny/ui/Menu");
|
|
18
20
|
var _Input = require("@webiny/ui/Input");
|
|
19
21
|
var _FormElementMessage = require("@webiny/ui/FormElementMessage");
|
|
22
|
+
var _templateObject;
|
|
20
23
|
/**
|
|
21
24
|
* Controls the helper text below the checkbox.
|
|
22
25
|
* @type {string}
|
|
@@ -25,6 +28,7 @@ var iconPickerLabel = /*#__PURE__*/(0, _emotion.css)({
|
|
|
25
28
|
marginBottom: 5,
|
|
26
29
|
marginLeft: 2
|
|
27
30
|
}, "label:iconPickerLabel;");
|
|
31
|
+
var globalStyles = (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n #rmwcPortal > .mdc-menu-surface {\n z-index: 1000;\n }\n"])));
|
|
28
32
|
var MenuWrapper = /*#__PURE__*/(0, _emotion.css)("color:var(--mdc-theme-text-secondary-on-background);background-color:var(--mdc-theme-on-background);border-bottom:1px solid var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,0.54));padding:16px 8px;cursor:pointer;:hover{border-bottom:1px solid rgba(0,0,0,1);}label:MenuWrapper;");
|
|
29
33
|
var NoResultWrapper = /*#__PURE__*/(0, _emotion.css)({
|
|
30
34
|
width: 640,
|
|
@@ -82,20 +86,17 @@ var searchInput = /*#__PURE__*/(0, _emotion.css)({
|
|
|
82
86
|
padding: "20px 12px 20px"
|
|
83
87
|
}
|
|
84
88
|
}, "label:searchInput;");
|
|
85
|
-
var useState = _react.default.useState,
|
|
86
|
-
useCallback = _react.default.useCallback,
|
|
87
|
-
useMemo = _react.default.useMemo;
|
|
88
89
|
var IconPicker = function IconPicker(_ref) {
|
|
89
90
|
var value = _ref.value,
|
|
90
91
|
onChange = _ref.onChange,
|
|
91
92
|
label = _ref.label,
|
|
92
93
|
description = _ref.description,
|
|
93
94
|
validation = _ref.validation;
|
|
94
|
-
var _useState = useState(""),
|
|
95
|
+
var _useState = (0, _react.useState)(""),
|
|
95
96
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
96
97
|
filter = _useState2[0],
|
|
97
98
|
setFilter = _useState2[1];
|
|
98
|
-
var _useState3 = useState(false),
|
|
99
|
+
var _useState3 = (0, _react.useState)(false),
|
|
99
100
|
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
100
101
|
mustRenderGrid = _useState4[0],
|
|
101
102
|
setMustRenderGrid = _useState4[1];
|
|
@@ -107,22 +108,22 @@ var IconPicker = function IconPicker(_ref) {
|
|
|
107
108
|
}
|
|
108
109
|
}, 50);
|
|
109
110
|
}, [mustRenderGrid]);
|
|
110
|
-
var onFilterChange = useCallback(function (value, cb) {
|
|
111
|
+
var onFilterChange = (0, _react.useCallback)(function (value, cb) {
|
|
111
112
|
setFilter(value);
|
|
112
113
|
cb();
|
|
113
114
|
}, [filter]);
|
|
114
|
-
var allIcons = useMemo(function () {
|
|
115
|
+
var allIcons = (0, _react.useMemo)(function () {
|
|
115
116
|
var iconPlugins = _plugins.plugins.byType("cms-icons");
|
|
116
117
|
return iconPlugins.reduce(function (icons, pl) {
|
|
117
118
|
return icons.concat(pl.getIcons());
|
|
118
119
|
}, []);
|
|
119
120
|
}, []);
|
|
120
|
-
var icons = useMemo(function () {
|
|
121
|
+
var icons = (0, _react.useMemo)(function () {
|
|
121
122
|
return filter ? allIcons.filter(function (ic) {
|
|
122
123
|
return ic.name.includes(filter);
|
|
123
124
|
}) : allIcons;
|
|
124
125
|
}, [filter]);
|
|
125
|
-
var renderCell = useCallback(function (_ref2) {
|
|
126
|
+
var renderCell = (0, _react.useCallback)(function (_ref2) {
|
|
126
127
|
var closeMenu = _ref2.closeMenu;
|
|
127
128
|
return function renderCell(_ref3) {
|
|
128
129
|
var columnIndex = _ref3.columnIndex,
|
|
@@ -151,9 +152,11 @@ var IconPicker = function IconPicker(_ref) {
|
|
|
151
152
|
}, item.name));
|
|
152
153
|
};
|
|
153
154
|
}, [icons]);
|
|
154
|
-
var renderGrid = useCallback(function (_ref4) {
|
|
155
|
+
var renderGrid = (0, _react.useCallback)(function (_ref4) {
|
|
155
156
|
var closeMenu = _ref4.closeMenu;
|
|
156
|
-
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(
|
|
157
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_react2.Global, {
|
|
158
|
+
styles: globalStyles
|
|
159
|
+
}), /*#__PURE__*/_react.default.createElement(_DelayedOnChange.default, {
|
|
157
160
|
value: filter,
|
|
158
161
|
onChange: onFilterChange
|
|
159
162
|
}, function (_ref5) {
|
|
@@ -198,6 +201,7 @@ var IconPicker = function IconPicker(_ref) {
|
|
|
198
201
|
onClose: function onClose() {
|
|
199
202
|
return setMustRenderGrid(false);
|
|
200
203
|
},
|
|
204
|
+
renderToPortal: true,
|
|
201
205
|
handle: /*#__PURE__*/_react.default.createElement("div", {
|
|
202
206
|
className: MenuWrapper
|
|
203
207
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["iconPickerLabel","css","marginBottom","marginLeft","MenuWrapper","NoResultWrapper","width","color","padding","COLUMN_COUNT","gridItem","display","flexDirection","justifyContent","boxSizing","paddingTop","alignItems","textAlign","cursor","transform","borderRadius","transition","boxShadow","content","position","top","left","height","zIndex","opacity","backgroundColor","grid","pickIcon","searchInput","input","useState","React","useCallback","useMemo","IconPicker","value","onChange","label","description","validation","filter","setFilter","mustRenderGrid","setMustRenderGrid","inputRef","useRef","useEffect","setTimeout","current","focus","onFilterChange","cb","allIcons","iconPlugins","plugins","byType","reduce","icons","pl","concat","getIcons","ic","name","includes","renderCell","closeMenu","columnIndex","key","rowIndex","style","item","id","join","renderGrid","length","Math","ceil","fontAwesomeIconValue","split","validationIsValid","isValid","validationMessage","message"],"sources":["IconPicker.tsx"],"sourcesContent":["import React, { useEffect, useRef } from \"react\";\nimport { css } from \"emotion\";\nimport { plugins } from \"@webiny/plugins\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { Grid } from \"react-virtualized\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport DelayedOnChange from \"./DelayedOnChange\";\nimport { Menu } from \"@webiny/ui/Menu\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { CmsIcon, CmsIconsPlugin } from \"~/types\";\nimport { FormComponentProps } from \"@webiny/ui/types\";\nimport { FormElementMessage } from \"@webiny/ui/FormElementMessage\";\nimport { GridCellProps } from \"react-virtualized/dist/es/Grid\";\n\n/**\n * Controls the helper text below the checkbox.\n * @type {string}\n */\nconst iconPickerLabel = css({ marginBottom: 5, marginLeft: 2 });\n\nconst MenuWrapper = css`\n color: var(--mdc-theme-text-secondary-on-background);\n background-color: var(--mdc-theme-on-background);\n border-bottom: 1px solid var(--mdc-theme-text-secondary-on-background, rgba(0, 0, 0, 0.54));\n padding: 16px 8px;\n cursor: pointer;\n :hover {\n border-bottom: 1px solid rgba(0, 0, 0, 1);\n }\n`;\n\nconst NoResultWrapper = css({\n width: 640,\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n padding: \"16px 12px\"\n});\n\nconst COLUMN_COUNT = 6;\n\nconst gridItem = css({\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"flex-start\",\n boxSizing: \"border-box\",\n paddingTop: 15,\n alignItems: \"center\",\n textAlign: \"center\",\n cursor: \"pointer\",\n transform: \"translateZ(0)\",\n borderRadius: 2,\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n transition: \"all 0.5s cubic-bezier(0.165, 0.84, 0.44, 1)\",\n \"&::after\": {\n boxShadow: \"0 0.25rem 0.125rem 0 rgba(0,0,0,0.05)\",\n transition: \"opacity 0.5s cubic-bezier(0.165, 0.84, 0.44, 1)\",\n content: '\"\"',\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n zIndex: -1,\n opacity: 0\n },\n \"&:hover\": {\n backgroundColor: \"var(--mdc-theme-background)\",\n color: \"var(--mdc-theme-text-primary-on-background)\",\n \"&::after\": {\n opacity: 1\n }\n },\n \">svg\": {\n width: 42,\n marginBottom: 5\n }\n});\n\nconst grid = css({\n padding: 20\n});\n\nconst pickIcon = css({\n width: 50,\n textAlign: \"center\",\n cursor: \"pointer\"\n});\n\nconst searchInput = css({\n input: {\n padding: \"20px 12px 20px\"\n }\n});\n\nconst { useState, useCallback, useMemo } = React;\n\nexport interface IconPickerProps extends FormComponentProps {\n label?: React.ReactNode;\n description?: React.ReactNode;\n}\n\nexport const IconPicker: React.FC<IconPickerProps> = ({\n value,\n onChange,\n label,\n description,\n validation\n}) => {\n const [filter, setFilter] = useState(\"\");\n const [mustRenderGrid, setMustRenderGrid] = useState(false);\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n setTimeout(() => {\n if (mustRenderGrid && inputRef.current) {\n inputRef.current.focus();\n }\n }, 50);\n }, [mustRenderGrid]);\n\n const onFilterChange = useCallback(\n (value, cb) => {\n setFilter(value);\n cb();\n },\n [filter]\n );\n\n const allIcons: CmsIcon[] = useMemo(() => {\n const iconPlugins = plugins.byType<CmsIconsPlugin>(\"cms-icons\");\n return iconPlugins.reduce((icons: Array<CmsIcon>, pl) => {\n return icons.concat(pl.getIcons());\n }, []);\n }, []);\n\n const icons = useMemo(() => {\n return filter ? allIcons.filter(ic => ic.name.includes(filter)) : allIcons;\n }, [filter]);\n\n const renderCell = useCallback(\n ({ closeMenu }) => {\n return function renderCell({\n columnIndex,\n key,\n rowIndex,\n style\n }: GridCellProps): React.ReactNode {\n const item = icons[rowIndex * COLUMN_COUNT + columnIndex];\n if (!item) {\n return null;\n }\n\n return (\n <div\n key={key}\n style={style}\n className={gridItem}\n onClick={() => {\n if (onChange) {\n onChange(item.id.join(\"/\"));\n }\n closeMenu();\n }}\n >\n <FontAwesomeIcon icon={item.id} size={\"2x\"} />\n <Typography use={\"body2\"}>{item.name}</Typography>\n </div>\n );\n };\n },\n [icons]\n );\n\n const renderGrid = useCallback(\n ({ closeMenu }) => {\n return (\n <>\n <DelayedOnChange value={filter} onChange={onFilterChange}>\n {({ value, onChange }) => (\n <Input\n inputRef={inputRef}\n className={searchInput}\n value={value}\n onChange={onChange}\n placeholder={\"Search icons...\"}\n />\n )}\n </DelayedOnChange>\n {icons.length === 0 ? (\n <div className={NoResultWrapper}>\n <Typography use=\"body1\">No results found.</Typography>\n </div>\n ) : (\n <Grid\n className={grid}\n cellRenderer={renderCell({ closeMenu })}\n columnCount={COLUMN_COUNT}\n columnWidth={100}\n height={440}\n rowCount={Math.ceil(icons.length / COLUMN_COUNT)}\n rowHeight={100}\n width={640}\n />\n )}\n </>\n );\n },\n [icons]\n );\n\n const fontAwesomeIconValue: any =\n typeof value === \"string\" && value.includes(\"/\") ? value.split(\"/\") : [\"fas\", \"star\"];\n\n const { isValid: validationIsValid, message: validationMessage } = validation || {};\n\n return (\n <>\n {label && (\n <div className={iconPickerLabel}>\n <Typography use={\"body1\"}>{label}</Typography>\n </div>\n )}\n\n <Menu\n onOpen={() => setMustRenderGrid(true)}\n onClose={() => setMustRenderGrid(false)}\n handle={\n <div className={MenuWrapper}>\n <div className={pickIcon}>\n <FontAwesomeIcon icon={fontAwesomeIconValue} size={\"2x\"} />\n </div>\n </div>\n }\n >\n {mustRenderGrid && renderGrid}\n </Menu>\n\n {validationIsValid === false && (\n <FormElementMessage error>{validationMessage}</FormElementMessage>\n )}\n {validationIsValid !== false && description && (\n <FormElementMessage>{description}</FormElementMessage>\n )}\n </>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["iconPickerLabel","css","marginBottom","marginLeft","globalStyles","reactCss","MenuWrapper","NoResultWrapper","width","color","padding","COLUMN_COUNT","gridItem","display","flexDirection","justifyContent","boxSizing","paddingTop","alignItems","textAlign","cursor","transform","borderRadius","transition","boxShadow","content","position","top","left","height","zIndex","opacity","backgroundColor","grid","pickIcon","searchInput","input","IconPicker","value","onChange","label","description","validation","useState","filter","setFilter","mustRenderGrid","setMustRenderGrid","inputRef","useRef","useEffect","setTimeout","current","focus","onFilterChange","useCallback","cb","allIcons","useMemo","iconPlugins","plugins","byType","reduce","icons","pl","concat","getIcons","ic","name","includes","renderCell","closeMenu","columnIndex","key","rowIndex","style","item","id","join","renderGrid","length","Math","ceil","fontAwesomeIconValue","split","validationIsValid","isValid","validationMessage","message"],"sources":["IconPicker.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState, useCallback, useMemo } from \"react\";\nimport { css } from \"emotion\";\nimport { Global, css as reactCss } from \"@emotion/react\";\nimport { plugins } from \"@webiny/plugins\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { Grid } from \"react-virtualized\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport DelayedOnChange from \"./DelayedOnChange\";\nimport { Menu } from \"@webiny/ui/Menu\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { CmsIcon, CmsIconsPlugin } from \"~/types\";\nimport { FormComponentProps } from \"@webiny/ui/types\";\nimport { FormElementMessage } from \"@webiny/ui/FormElementMessage\";\nimport { GridCellProps } from \"react-virtualized/dist/es/Grid\";\n\n/**\n * Controls the helper text below the checkbox.\n * @type {string}\n */\nconst iconPickerLabel = css({ marginBottom: 5, marginLeft: 2 });\n\nconst globalStyles = reactCss`\n #rmwcPortal > .mdc-menu-surface {\n z-index: 1000;\n }\n`;\n\nconst MenuWrapper = css`\n color: var(--mdc-theme-text-secondary-on-background);\n background-color: var(--mdc-theme-on-background);\n border-bottom: 1px solid var(--mdc-theme-text-secondary-on-background, rgba(0, 0, 0, 0.54));\n padding: 16px 8px;\n cursor: pointer;\n :hover {\n border-bottom: 1px solid rgba(0, 0, 0, 1);\n }\n`;\n\nconst NoResultWrapper = css({\n width: 640,\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n padding: \"16px 12px\"\n});\n\nconst COLUMN_COUNT = 6;\n\nconst gridItem = css({\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"flex-start\",\n boxSizing: \"border-box\",\n paddingTop: 15,\n alignItems: \"center\",\n textAlign: \"center\",\n cursor: \"pointer\",\n transform: \"translateZ(0)\",\n borderRadius: 2,\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n transition: \"all 0.5s cubic-bezier(0.165, 0.84, 0.44, 1)\",\n \"&::after\": {\n boxShadow: \"0 0.25rem 0.125rem 0 rgba(0,0,0,0.05)\",\n transition: \"opacity 0.5s cubic-bezier(0.165, 0.84, 0.44, 1)\",\n content: '\"\"',\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n zIndex: -1,\n opacity: 0\n },\n \"&:hover\": {\n backgroundColor: \"var(--mdc-theme-background)\",\n color: \"var(--mdc-theme-text-primary-on-background)\",\n \"&::after\": {\n opacity: 1\n }\n },\n \">svg\": {\n width: 42,\n marginBottom: 5\n }\n});\n\nconst grid = css({\n padding: 20\n});\n\nconst pickIcon = css({\n width: 50,\n textAlign: \"center\",\n cursor: \"pointer\"\n});\n\nconst searchInput = css({\n input: {\n padding: \"20px 12px 20px\"\n }\n});\n\nexport interface IconPickerProps extends FormComponentProps {\n label?: React.ReactNode;\n description?: React.ReactNode;\n}\n\nexport const IconPicker: React.FC<IconPickerProps> = ({\n value,\n onChange,\n label,\n description,\n validation\n}) => {\n const [filter, setFilter] = useState(\"\");\n const [mustRenderGrid, setMustRenderGrid] = useState(false);\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n setTimeout(() => {\n if (mustRenderGrid && inputRef.current) {\n inputRef.current.focus();\n }\n }, 50);\n }, [mustRenderGrid]);\n\n const onFilterChange = useCallback(\n (value, cb) => {\n setFilter(value);\n cb();\n },\n [filter]\n );\n\n const allIcons: CmsIcon[] = useMemo(() => {\n const iconPlugins = plugins.byType<CmsIconsPlugin>(\"cms-icons\");\n return iconPlugins.reduce((icons: Array<CmsIcon>, pl) => {\n return icons.concat(pl.getIcons());\n }, []);\n }, []);\n\n const icons = useMemo(() => {\n return filter ? allIcons.filter(ic => ic.name.includes(filter)) : allIcons;\n }, [filter]);\n\n const renderCell = useCallback(\n ({ closeMenu }) => {\n return function renderCell({\n columnIndex,\n key,\n rowIndex,\n style\n }: GridCellProps): React.ReactNode {\n const item = icons[rowIndex * COLUMN_COUNT + columnIndex];\n if (!item) {\n return null;\n }\n\n return (\n <div\n key={key}\n style={style}\n className={gridItem}\n onClick={() => {\n if (onChange) {\n onChange(item.id.join(\"/\"));\n }\n closeMenu();\n }}\n >\n <FontAwesomeIcon icon={item.id} size={\"2x\"} />\n <Typography use={\"body2\"}>{item.name}</Typography>\n </div>\n );\n };\n },\n [icons]\n );\n\n const renderGrid = useCallback(\n ({ closeMenu }) => {\n return (\n <>\n <Global styles={globalStyles} />\n <DelayedOnChange value={filter} onChange={onFilterChange}>\n {({ value, onChange }) => (\n <Input\n inputRef={inputRef}\n className={searchInput}\n value={value}\n onChange={onChange}\n placeholder={\"Search icons...\"}\n />\n )}\n </DelayedOnChange>\n {icons.length === 0 ? (\n <div className={NoResultWrapper}>\n <Typography use=\"body1\">No results found.</Typography>\n </div>\n ) : (\n <Grid\n className={grid}\n cellRenderer={renderCell({ closeMenu })}\n columnCount={COLUMN_COUNT}\n columnWidth={100}\n height={440}\n rowCount={Math.ceil(icons.length / COLUMN_COUNT)}\n rowHeight={100}\n width={640}\n />\n )}\n </>\n );\n },\n [icons]\n );\n\n const fontAwesomeIconValue: any =\n typeof value === \"string\" && value.includes(\"/\") ? value.split(\"/\") : [\"fas\", \"star\"];\n\n const { isValid: validationIsValid, message: validationMessage } = validation || {};\n\n return (\n <>\n {label && (\n <div className={iconPickerLabel}>\n <Typography use={\"body1\"}>{label}</Typography>\n </div>\n )}\n\n <Menu\n onOpen={() => setMustRenderGrid(true)}\n onClose={() => setMustRenderGrid(false)}\n renderToPortal={true}\n handle={\n <div className={MenuWrapper}>\n <div className={pickIcon}>\n <FontAwesomeIcon icon={fontAwesomeIconValue} size={\"2x\"} />\n </div>\n </div>\n }\n >\n {mustRenderGrid && renderGrid}\n </Menu>\n\n {validationIsValid === false && (\n <FormElementMessage error>{validationMessage}</FormElementMessage>\n )}\n {validationIsValid !== false && description && (\n <FormElementMessage>{description}</FormElementMessage>\n )}\n </>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { CmsModel } from "../../types";
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated Use `useModels` hook instead.
|
|
4
|
+
*/
|
|
2
5
|
export declare const useContentModels: () => {
|
|
3
6
|
models: CmsModel[];
|
|
4
7
|
loading: boolean;
|
|
5
8
|
error: string | null;
|
|
6
9
|
};
|
|
10
|
+
export declare const useModels: () => {
|
|
11
|
+
models: CmsModel[];
|
|
12
|
+
loading: boolean;
|
|
13
|
+
error: string | null;
|
|
14
|
+
};
|
|
@@ -4,10 +4,13 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.useContentModels = void 0;
|
|
7
|
+
exports.useModels = exports.useContentModels = void 0;
|
|
8
8
|
var GQL = _interopRequireWildcard(require("../viewsGraphql"));
|
|
9
9
|
var _index = require("./index");
|
|
10
10
|
var _react = require("react");
|
|
11
|
+
/**
|
|
12
|
+
* @deprecated Use `useModels` hook instead.
|
|
13
|
+
*/
|
|
11
14
|
var useContentModels = function useContentModels() {
|
|
12
15
|
var _useQuery = (0, _index.useQuery)(GQL.LIST_CONTENT_MODELS),
|
|
13
16
|
data = _useQuery.data,
|
|
@@ -30,4 +33,8 @@ var useContentModels = function useContentModels() {
|
|
|
30
33
|
error: error
|
|
31
34
|
};
|
|
32
35
|
};
|
|
33
|
-
exports.useContentModels = useContentModels;
|
|
36
|
+
exports.useContentModels = useContentModels;
|
|
37
|
+
var useModels = function useModels() {
|
|
38
|
+
return useContentModels();
|
|
39
|
+
};
|
|
40
|
+
exports.useModels = useModels;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useContentModels","useQuery","GQL","LIST_CONTENT_MODELS","data","loading","apolloError","error","models","useMemo","listContentModels","message"],"sources":["useContentModels.ts"],"sourcesContent":["import * as GQL from \"~/admin/viewsGraphql\";\nimport { useQuery } from \"~/admin/hooks/index\";\nimport { ListCmsModelsQueryResponse } from \"~/admin/viewsGraphql\";\nimport { useMemo } from \"react\";\nimport { CmsModel } from \"~/types\";\n\nexport const useContentModels = () => {\n const {\n data,\n loading,\n error: apolloError\n } = useQuery<ListCmsModelsQueryResponse>(GQL.LIST_CONTENT_MODELS);\n\n const models = useMemo<CmsModel[]>(() => {\n return data?.listContentModels?.data || [];\n }, [data]);\n\n const error = useMemo(() => {\n if (!!apolloError) {\n return apolloError.message;\n }\n return data?.listContentModels?.error?.message || null;\n }, [apolloError]);\n\n return {\n models,\n loading,\n error\n };\n};\n"],"mappings":";;;;;;;AAAA;AACA;AAEA;
|
|
1
|
+
{"version":3,"names":["useContentModels","useQuery","GQL","LIST_CONTENT_MODELS","data","loading","apolloError","error","models","useMemo","listContentModels","message","useModels"],"sources":["useContentModels.ts"],"sourcesContent":["import * as GQL from \"~/admin/viewsGraphql\";\nimport { useQuery } from \"~/admin/hooks/index\";\nimport { ListCmsModelsQueryResponse } from \"~/admin/viewsGraphql\";\nimport { useMemo } from \"react\";\nimport { CmsModel } from \"~/types\";\n\n/**\n * @deprecated Use `useModels` hook instead.\n */\nexport const useContentModels = () => {\n const {\n data,\n loading,\n error: apolloError\n } = useQuery<ListCmsModelsQueryResponse>(GQL.LIST_CONTENT_MODELS);\n\n const models = useMemo<CmsModel[]>(() => {\n return data?.listContentModels?.data || [];\n }, [data]);\n\n const error = useMemo(() => {\n if (!!apolloError) {\n return apolloError.message;\n }\n return data?.listContentModels?.error?.message || null;\n }, [apolloError]);\n\n return {\n models,\n loading,\n error\n };\n};\n\nexport const useModels = () => {\n return useContentModels();\n};\n"],"mappings":";;;;;;;AAAA;AACA;AAEA;AAGA;AACA;AACA;AACO,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAgB,GAAS;EAClC,gBAII,IAAAC,eAAQ,EAA6BC,GAAG,CAACC,mBAAmB,CAAC;IAH7DC,IAAI,aAAJA,IAAI;IACJC,OAAO,aAAPA,OAAO;IACAC,WAAW,aAAlBC,KAAK;EAGT,IAAMC,MAAM,GAAG,IAAAC,cAAO,EAAa,YAAM;IAAA;IACrC,OAAO,CAAAL,IAAI,aAAJA,IAAI,gDAAJA,IAAI,CAAEM,iBAAiB,0DAAvB,sBAAyBN,IAAI,KAAI,EAAE;EAC9C,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;EAEV,IAAMG,KAAK,GAAG,IAAAE,cAAO,EAAC,YAAM;IAAA;IACxB,IAAI,CAAC,CAACH,WAAW,EAAE;MACf,OAAOA,WAAW,CAACK,OAAO;IAC9B;IACA,OAAO,CAAAP,IAAI,aAAJA,IAAI,iDAAJA,IAAI,CAAEM,iBAAiB,qFAAvB,uBAAyBH,KAAK,2DAA9B,uBAAgCI,OAAO,KAAI,IAAI;EAC1D,CAAC,EAAE,CAACL,WAAW,CAAC,CAAC;EAEjB,OAAO;IACHE,MAAM,EAANA,MAAM;IACNH,OAAO,EAAPA,OAAO;IACPE,KAAK,EAALA;EACJ,CAAC;AACL,CAAC;AAAC;AAEK,IAAMK,SAAS,GAAG,SAAZA,SAAS,GAAS;EAC3B,OAAOZ,gBAAgB,EAAE;AAC7B,CAAC;AAAC"}
|
|
@@ -7,7 +7,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.ContentGroupsMenuItems = void 0;
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _get = _interopRequireDefault(require("lodash/get"));
|
|
10
|
-
var _pluralize = _interopRequireDefault(require("pluralize"));
|
|
11
10
|
var _reactFontawesome = require("@fortawesome/react-fontawesome");
|
|
12
11
|
var _viewsGraphql = require("../viewsGraphql");
|
|
13
12
|
var _useQuery = _interopRequireDefault(require("../hooks/useQuery"));
|
|
@@ -76,7 +75,7 @@ var ContentGroupsMenuItems = function ContentGroupsMenuItems() {
|
|
|
76
75
|
contentModel: contentModel
|
|
77
76
|
}, /*#__PURE__*/_react.default.createElement(_appAdmin.AddMenu, {
|
|
78
77
|
name: contentModel.modelId,
|
|
79
|
-
label:
|
|
78
|
+
label: contentModel.name,
|
|
80
79
|
path: "/cms/content-entries/".concat(contentModel.modelId)
|
|
81
80
|
}));
|
|
82
81
|
})));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["HasContentEntryPermissions","group","contentModel","children","usePermission","canReadEntries","contentModelGroup","hasContentEntryPermission","contentModels","some","length","Icon","color","icon","split","ContentGroupsMenuItems","response","useQuery","LIST_MENU_CONTENT_GROUPS_MODELS","groups","get","map","id","name","modelId"
|
|
1
|
+
{"version":3,"names":["HasContentEntryPermissions","group","contentModel","children","usePermission","canReadEntries","contentModelGroup","hasContentEntryPermission","contentModels","some","length","Icon","color","icon","split","ContentGroupsMenuItems","response","useQuery","LIST_MENU_CONTENT_GROUPS_MODELS","groups","get","map","id","name","modelId"],"sources":["ContentGroupsMenuItems.tsx"],"sourcesContent":["import React from \"react\";\nimport get from \"lodash/get\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport {\n LIST_MENU_CONTENT_GROUPS_MODELS,\n ListMenuCmsGroupsQueryResponse\n} from \"~/admin/viewsGraphql\";\nimport useQuery from \"~/admin/hooks/useQuery\";\nimport usePermission from \"~/admin/hooks/usePermission\";\nimport { AddMenu as Menu } from \"@webiny/app-admin\";\nimport { NothingToShow } from \"./NothingToShowElement\";\nimport { CmsGroup, CmsModel } from \"~/types\";\nimport { IconProp } from \"@fortawesome/fontawesome-svg-core\";\n\ninterface HasContentEntryPermissionsProps {\n group: CmsGroup;\n contentModel?: CmsModel;\n children: JSX.Element;\n}\n\nconst HasContentEntryPermissions: React.FC<HasContentEntryPermissionsProps> = ({\n group,\n contentModel,\n children\n}) => {\n const { canReadEntries } = usePermission();\n\n if (contentModel) {\n if (!canReadEntries({ contentModelGroup: group, contentModel })) {\n return null;\n }\n } else {\n const hasContentEntryPermission = group.contentModels.some(contentModel =>\n canReadEntries({\n contentModelGroup: group,\n contentModel\n })\n );\n\n if (group.contentModels.length > 0 && !hasContentEntryPermission) {\n return null;\n }\n }\n\n return children;\n};\n\ninterface IconProps {\n group: CmsGroup;\n}\nconst Icon: React.FC<IconProps> = ({ group }) => {\n return (\n <FontAwesomeIcon\n style={{ color: \"var(--mdc-theme-text-secondary-on-background)\" }}\n icon={(group.icon || \"\").split(\"/\") as IconProp}\n />\n );\n};\n\nexport const ContentGroupsMenuItems: React.FC = () => {\n const response = useQuery<ListMenuCmsGroupsQueryResponse>(LIST_MENU_CONTENT_GROUPS_MODELS);\n const groups: CmsGroup[] = get(response, \"data.listContentModelGroups.data\") || [];\n\n if (!groups || groups.length === 0) {\n return null;\n }\n\n return (\n <>\n {groups.map(group => {\n return (\n <HasContentEntryPermissions key={group.id} group={group}>\n <Menu\n name={group.id}\n label={group.name}\n tags={[\"headlessCMS\"]}\n icon={<Icon group={group} />}\n >\n {group.contentModels.length === 0 && (\n <Menu name={`${group.id}-empty`} element={<NothingToShow />} />\n )}\n {group.contentModels.length > 0 &&\n group.contentModels.map(contentModel => (\n <HasContentEntryPermissions\n key={contentModel.modelId}\n group={group}\n contentModel={contentModel}\n >\n <Menu\n name={contentModel.modelId}\n label={contentModel.name}\n path={`/cms/content-entries/${contentModel.modelId}`}\n />\n </HasContentEntryPermissions>\n ))}\n </Menu>\n </HasContentEntryPermissions>\n );\n })}\n </>\n );\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AAUA,IAAMA,0BAAqE,GAAG,SAAxEA,0BAAqE,OAIrE;EAAA,IAHFC,KAAK,QAALA,KAAK;IACLC,YAAY,QAAZA,YAAY;IACZC,QAAQ,QAARA,QAAQ;EAER,qBAA2B,IAAAC,uBAAa,GAAE;IAAlCC,cAAc,kBAAdA,cAAc;EAEtB,IAAIH,YAAY,EAAE;IACd,IAAI,CAACG,cAAc,CAAC;MAAEC,iBAAiB,EAAEL,KAAK;MAAEC,YAAY,EAAZA;IAAa,CAAC,CAAC,EAAE;MAC7D,OAAO,IAAI;IACf;EACJ,CAAC,MAAM;IACH,IAAMK,yBAAyB,GAAGN,KAAK,CAACO,aAAa,CAACC,IAAI,CAAC,UAAAP,YAAY;MAAA,OACnEG,cAAc,CAAC;QACXC,iBAAiB,EAAEL,KAAK;QACxBC,YAAY,EAAZA;MACJ,CAAC,CAAC;IAAA,EACL;IAED,IAAID,KAAK,CAACO,aAAa,CAACE,MAAM,GAAG,CAAC,IAAI,CAACH,yBAAyB,EAAE;MAC9D,OAAO,IAAI;IACf;EACJ;EAEA,OAAOJ,QAAQ;AACnB,CAAC;AAKD,IAAMQ,IAAyB,GAAG,SAA5BA,IAAyB,QAAkB;EAAA,IAAZV,KAAK,SAALA,KAAK;EACtC,oBACI,6BAAC,iCAAe;IACZ,KAAK,EAAE;MAAEW,KAAK,EAAE;IAAgD,CAAE;IAClE,IAAI,EAAE,CAACX,KAAK,CAACY,IAAI,IAAI,EAAE,EAAEC,KAAK,CAAC,GAAG;EAAc,EAClD;AAEV,CAAC;AAEM,IAAMC,sBAAgC,GAAG,SAAnCA,sBAAgC,GAAS;EAClD,IAAMC,QAAQ,GAAG,IAAAC,iBAAQ,EAAiCC,6CAA+B,CAAC;EAC1F,IAAMC,MAAkB,GAAG,IAAAC,YAAG,EAACJ,QAAQ,EAAE,kCAAkC,CAAC,IAAI,EAAE;EAElF,IAAI,CAACG,MAAM,IAAIA,MAAM,CAACT,MAAM,KAAK,CAAC,EAAE;IAChC,OAAO,IAAI;EACf;EAEA,oBACI,4DACKS,MAAM,CAACE,GAAG,CAAC,UAAApB,KAAK,EAAI;IACjB,oBACI,6BAAC,0BAA0B;MAAC,GAAG,EAAEA,KAAK,CAACqB,EAAG;MAAC,KAAK,EAAErB;IAAM,gBACpD,6BAAC,iBAAI;MACD,IAAI,EAAEA,KAAK,CAACqB,EAAG;MACf,KAAK,EAAErB,KAAK,CAACsB,IAAK;MAClB,IAAI,EAAE,CAAC,aAAa,CAAE;MACtB,IAAI,eAAE,6BAAC,IAAI;QAAC,KAAK,EAAEtB;MAAM;IAAI,GAE5BA,KAAK,CAACO,aAAa,CAACE,MAAM,KAAK,CAAC,iBAC7B,6BAAC,iBAAI;MAAC,IAAI,YAAKT,KAAK,CAACqB,EAAE,WAAS;MAAC,OAAO,eAAE,6BAAC,mCAAa;IAAI,EAC/D,EACArB,KAAK,CAACO,aAAa,CAACE,MAAM,GAAG,CAAC,IAC3BT,KAAK,CAACO,aAAa,CAACa,GAAG,CAAC,UAAAnB,YAAY;MAAA,oBAChC,6BAAC,0BAA0B;QACvB,GAAG,EAAEA,YAAY,CAACsB,OAAQ;QAC1B,KAAK,EAAEvB,KAAM;QACb,YAAY,EAAEC;MAAa,gBAE3B,6BAAC,iBAAI;QACD,IAAI,EAAEA,YAAY,CAACsB,OAAQ;QAC3B,KAAK,EAAEtB,YAAY,CAACqB,IAAK;QACzB,IAAI,iCAA0BrB,YAAY,CAACsB,OAAO;MAAG,EACvD,CACuB;IAAA,CAChC,CAAC,CACH,CACkB;EAErC,CAAC,CAAC,CACH;AAEX,CAAC;AAAC"}
|
|
@@ -35,7 +35,7 @@ var EntryForm = function EntryForm(_ref) {
|
|
|
35
35
|
}, /*#__PURE__*/_react.default.createElement(_ContentEntryForm.ContentEntryForm, {
|
|
36
36
|
onSubmit: function onSubmit(data) {
|
|
37
37
|
/**
|
|
38
|
-
* We know that data is
|
|
38
|
+
* We know that data is CmsContentEntry.
|
|
39
39
|
*/
|
|
40
40
|
return onCreate(data);
|
|
41
41
|
},
|
|
@@ -119,11 +119,11 @@ var NewReferencedEntryDialog = function NewReferencedEntryDialog(_ref3) {
|
|
|
119
119
|
if (!model) {
|
|
120
120
|
return null;
|
|
121
121
|
}
|
|
122
|
-
return /*#__PURE__*/_react.default.createElement(_ContentEntriesContext.
|
|
122
|
+
return /*#__PURE__*/_react.default.createElement(_ContentEntriesContext.ContentEntriesProvider, {
|
|
123
123
|
contentModel: model,
|
|
124
124
|
key: model.modelId,
|
|
125
125
|
insideDialog: true
|
|
126
|
-
}, /*#__PURE__*/_react.default.createElement(_ContentEntryContext.
|
|
126
|
+
}, /*#__PURE__*/_react.default.createElement(_ContentEntryContext.ContentEntryProvider, {
|
|
127
127
|
isNewEntry: function isNewEntry() {
|
|
128
128
|
return true;
|
|
129
129
|
},
|
package/admin/plugins/fieldRenderers/ref/advanced/components/NewReferencedEntryDialog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["t","i18n","ns","EntryForm","onCreate","useContentEntry","setFormRef","contentModel","data","form","DialogSaveButton","onClick","useCallback","ev","current","submit","NewReferencedEntryDialog","baseModel","model","onClose","onChange","useCms","apolloClient","useState","undefined","setModel","useEffect","query","GET_CONTENT_MODEL","variables","modelId","response","getContentModel","entry","published","meta","status","modelName","name"],"sources":["NewReferencedEntryDialog.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\";\nimport {
|
|
1
|
+
{"version":3,"names":["t","i18n","ns","EntryForm","onCreate","useContentEntry","setFormRef","contentModel","data","form","DialogSaveButton","onClick","useCallback","ev","current","submit","NewReferencedEntryDialog","baseModel","model","onClose","onChange","useCms","apolloClient","useState","undefined","setModel","useEffect","query","GET_CONTENT_MODEL","variables","modelId","response","getContentModel","entry","published","meta","status","modelName","name"],"sources":["NewReferencedEntryDialog.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\";\nimport { ContentEntryProvider } from \"~/admin/views/contentEntries/ContentEntry/ContentEntryContext\";\nimport { DialogActions, DialogCancel, DialogContent, DialogTitle } from \"@webiny/ui/Dialog\";\nimport { ContentEntriesProvider } from \"~/admin/views/contentEntries/ContentEntriesContext\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { CmsContentEntry, CmsModel } from \"~/types\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks/useContentEntry\";\nimport { ModelProvider } from \"~/admin/components/ModelProvider\";\nimport { ContentEntryForm } from \"~/admin/components/ContentEntryForm/ContentEntryForm\";\nimport { ButtonPrimary } from \"@webiny/ui/Button\";\nimport {\n GET_CONTENT_MODEL,\n GetCmsModelQueryResponse,\n GetCmsModelQueryVariables\n} from \"~/admin/graphql/contentModels\";\nimport { useCms } from \"~/admin/hooks\";\nimport { FullWidthDialog } from \"./dialog/Dialog\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/ref\");\n\ninterface EntryFormProps {\n onCreate: (entry: CmsContentEntry) => void;\n}\n\nconst EntryForm: React.VFC<EntryFormProps> = ({ onCreate }) => {\n const { setFormRef, contentModel } = useContentEntry();\n\n return (\n <ModelProvider model={contentModel}>\n <ContentEntryForm\n onSubmit={data => {\n /**\n * We know that data is CmsContentEntry.\n */\n return onCreate(data as unknown as CmsContentEntry);\n }}\n onForm={form => setFormRef(form)}\n entry={{}}\n addEntryToListCache={false}\n />\n </ModelProvider>\n );\n};\n\nconst DialogSaveButton: React.VFC = () => {\n const { form } = useContentEntry();\n\n const onClick = useCallback(\n (ev: React.MouseEvent) => {\n (async () => {\n await form.current.submit(ev);\n })();\n },\n [form.current]\n );\n\n return <ButtonPrimary onClick={onClick}>{t`Create Entry`}</ButtonPrimary>;\n};\n\ninterface Props {\n model: Pick<CmsModel, \"modelId\">;\n onClose: () => void;\n onChange: (entry: any) => void;\n}\n\nexport const NewReferencedEntryDialog: React.VFC<Props> = ({\n model: baseModel,\n onClose,\n onChange\n}) => {\n const { apolloClient } = useCms();\n const [model, setModel] = useState<CmsModel | undefined>(undefined);\n\n useEffect(() => {\n (async () => {\n const response = await apolloClient.query<\n GetCmsModelQueryResponse,\n GetCmsModelQueryVariables\n >({\n query: GET_CONTENT_MODEL,\n variables: {\n modelId: baseModel.modelId\n }\n });\n setModel(response.data.getContentModel.data);\n })();\n }, [baseModel.modelId]);\n\n const onCreate = useCallback(\n (entry: CmsContentEntry) => {\n if (!model) {\n onClose();\n return;\n }\n onChange({\n ...entry,\n /*\n * Format data for AutoComplete.\n */\n published: entry.meta?.status === \"published\",\n modelId: model.modelId,\n modelName: model.name\n });\n onClose();\n },\n [onChange, model]\n );\n if (!model) {\n return null;\n }\n\n return (\n <ContentEntriesProvider contentModel={model} key={model.modelId} insideDialog={true}>\n <ContentEntryProvider isNewEntry={() => true} getContentId={() => null}>\n <FullWidthDialog open={true} onClose={onClose}>\n <DialogTitle>{t`New {modelName} Entry`({ modelName: model.name })}</DialogTitle>\n <DialogContent>\n <EntryForm onCreate={onCreate} />\n </DialogContent>\n <DialogActions>\n <DialogCancel>{t`Cancel`}</DialogCancel>\n <DialogSaveButton />\n </DialogActions>\n </FullWidthDialog>\n </ContentEntryProvider>\n </ContentEntriesProvider>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const
|
|
1
|
+
export declare const createAdvancedRefRenderer: () => import("../../../../../types").CmsModelFieldRendererPlugin[];
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.createAdvancedRefRenderer = void 0;
|
|
7
7
|
var _detailedReferenceRenderer = require("./detailedReferenceRenderer");
|
|
8
8
|
var _detailedReferencesRenderer = require("./detailedReferencesRenderer");
|
|
9
|
-
var
|
|
9
|
+
var createAdvancedRefRenderer = function createAdvancedRefRenderer() {
|
|
10
10
|
return [(0, _detailedReferenceRenderer.createAdvancedSingleRenderer)(), (0, _detailedReferencesRenderer.createAdvancedMultipleRenderer)()];
|
|
11
11
|
};
|
|
12
|
-
exports.
|
|
12
|
+
exports.createAdvancedRefRenderer = createAdvancedRefRenderer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["createAdvancedRefRenderer","createAdvancedSingleRenderer","createAdvancedMultipleRenderer"],"sources":["index.ts"],"sourcesContent":["import { createAdvancedSingleRenderer } from \"./detailedReferenceRenderer\";\nimport { createAdvancedMultipleRenderer } from \"./detailedReferencesRenderer\";\n\nexport const createAdvancedRefRenderer = () => {\n return [createAdvancedSingleRenderer(), createAdvancedMultipleRenderer()];\n};\n"],"mappings":";;;;;;AAAA;AACA;AAEO,IAAMA,yBAAyB,GAAG,SAA5BA,yBAAyB,GAAS;EAC3C,OAAO,CAAC,IAAAC,uDAA4B,GAAE,EAAE,IAAAC,0DAA8B,GAAE,CAAC;AAC7E,CAAC;AAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import {
|
|
2
|
+
import { CmsContentEntry } from "../../../../../types";
|
|
3
3
|
export declare const NewEntryButton: () => JSX.Element;
|
|
4
4
|
interface NewRefEntryProps {
|
|
5
5
|
modelId: string;
|
|
6
6
|
children: React.ReactElement;
|
|
7
|
-
onChange: (entry:
|
|
7
|
+
onChange: (entry: CmsContentEntry) => void;
|
|
8
8
|
}
|
|
9
9
|
declare const NewRefEntryFormDialog: React.FC<NewRefEntryProps>;
|
|
10
10
|
export default NewRefEntryFormDialog;
|
|
@@ -40,7 +40,7 @@ var EntryForm = function EntryForm(_ref) {
|
|
|
40
40
|
}, /*#__PURE__*/_react.default.createElement(_ContentEntryForm.ContentEntryForm, {
|
|
41
41
|
onSubmit: function onSubmit(data) {
|
|
42
42
|
/**
|
|
43
|
-
* We know that data is
|
|
43
|
+
* We know that data is CmsContentEntry.
|
|
44
44
|
*/
|
|
45
45
|
return onCreate(data);
|
|
46
46
|
},
|
|
@@ -125,11 +125,11 @@ var NewRefEntryFormDialog = function NewRefEntryFormDialog(_ref2) {
|
|
|
125
125
|
if (!contentModel) {
|
|
126
126
|
return children;
|
|
127
127
|
}
|
|
128
|
-
return /*#__PURE__*/_react.default.createElement(_ContentEntriesContext.
|
|
128
|
+
return /*#__PURE__*/_react.default.createElement(_ContentEntriesContext.ContentEntriesProvider, {
|
|
129
129
|
contentModel: contentModel,
|
|
130
130
|
key: contentModel.modelId,
|
|
131
131
|
insideDialog: true
|
|
132
|
-
}, /*#__PURE__*/_react.default.createElement(_ContentEntryContext.
|
|
132
|
+
}, /*#__PURE__*/_react.default.createElement(_ContentEntryContext.ContentEntryProvider, {
|
|
133
133
|
isNewEntry: function isNewEntry() {
|
|
134
134
|
return true;
|
|
135
135
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["t","i18n","ns","dialogContentStyles","css","dialogContainerStyles","EntryForm","onCreate","useContentEntry","setFormRef","contentModel","data","form","DialogSaveButton","current","submit","DefaultButton","styled","ButtonDefault","NewEntryButton","useNewRefEntryDialog","setOpen","NewRefEntryFormDialog","modelId","children","onChange","useState","undefined","setContentModel","useSnackbar","showSnackbar","useQuery","GET_CONTENT_MODEL","skip","variables","onCompleted","contentModelData","get","open","hideDialog","useCallback","entry","published","modelName","name"],"sources":["NewRefEntryFormDialog.tsx"],"sourcesContent":["import React, { useCallback, useState } from \"react\";\nimport get from \"lodash/get\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport { Dialog, DialogActions, DialogCancel, DialogContent, DialogTitle } from \"@webiny/ui/Dialog\";\nimport { ButtonDefault, ButtonIcon, ButtonPrimary } from \"@webiny/ui/Button\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ReactComponent as AddIcon } from \"@webiny/app-admin/assets/icons/add-18px.svg\";\nimport {
|
|
1
|
+
{"version":3,"names":["t","i18n","ns","dialogContentStyles","css","dialogContainerStyles","EntryForm","onCreate","useContentEntry","setFormRef","contentModel","data","form","DialogSaveButton","current","submit","DefaultButton","styled","ButtonDefault","NewEntryButton","useNewRefEntryDialog","setOpen","NewRefEntryFormDialog","modelId","children","onChange","useState","undefined","setContentModel","useSnackbar","showSnackbar","useQuery","GET_CONTENT_MODEL","skip","variables","onCompleted","contentModelData","get","open","hideDialog","useCallback","entry","published","modelName","name"],"sources":["NewRefEntryFormDialog.tsx"],"sourcesContent":["import React, { useCallback, useState } from \"react\";\nimport get from \"lodash/get\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport { Dialog, DialogActions, DialogCancel, DialogContent, DialogTitle } from \"@webiny/ui/Dialog\";\nimport { ButtonDefault, ButtonIcon, ButtonPrimary } from \"@webiny/ui/Button\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ReactComponent as AddIcon } from \"@webiny/app-admin/assets/icons/add-18px.svg\";\nimport { ContentEntriesProvider } from \"~/admin/views/contentEntries/ContentEntriesContext\";\nimport { ContentEntryProvider } from \"~/admin/views/contentEntries/ContentEntry/ContentEntryContext\";\nimport { ContentEntryForm } from \"~/admin/components/ContentEntryForm/ContentEntryForm\";\nimport { useQuery } from \"~/admin/hooks\";\nimport {\n GET_CONTENT_MODEL,\n GetCmsModelQueryResponse,\n GetCmsModelQueryVariables\n} from \"~/admin/graphql/contentModels\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks/useContentEntry\";\nimport { useNewRefEntryDialog } from \"../hooks/useNewRefEntryDialog\";\nimport { CmsContentEntry, CmsModel } from \"~/types\";\nimport { ModelProvider } from \"~/admin/components/ModelProvider\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/ref\");\n\nconst dialogContentStyles = css`\n width: 786px;\n`;\n\nconst dialogContainerStyles = css`\n /*\n* By default, a Dialog component has the \"z-index\" value of 20.\n* As we are rendering the content entry form in a \"Dialog\", the File Manager view triggered by a \"file\" field\n* will render below the source form, rendering it useless for the user.\n*\n* To fix that issue, we're setting the \"z-index\" CSS property for this particular Dialog to less than 18,\n* which is the \"z-index\" value assigned to File Manager view, so that it will render below the File Manager view as expected.\n*/\n\n &.mdc-dialog {\n z-index: 17;\n }\n`;\n\ninterface EntryFormProps {\n onCreate: (entry: CmsContentEntry) => void;\n}\nconst EntryForm: React.FC<EntryFormProps> = ({ onCreate }) => {\n const { setFormRef, contentModel } = useContentEntry();\n\n return (\n <ModelProvider model={contentModel}>\n <ContentEntryForm\n onSubmit={data => {\n /**\n * We know that data is CmsContentEntry.\n */\n return onCreate(data as unknown as CmsContentEntry);\n }}\n onForm={form => setFormRef(form)}\n entry={{}}\n addEntryToListCache={false}\n />\n </ModelProvider>\n );\n};\n\nconst DialogSaveButton: React.FC = () => {\n const { form } = useContentEntry();\n\n return <ButtonPrimary onClick={form.current.submit}>{t`Create Entry`}</ButtonPrimary>;\n};\n\nconst DefaultButton = styled(ButtonDefault)`\n margin-left: 32px;\n`;\n\nexport const NewEntryButton = () => {\n const { setOpen } = useNewRefEntryDialog();\n return (\n <DefaultButton small={true} onClick={() => setOpen(true)}>\n <ButtonIcon icon={<AddIcon />} />\n {t`New Entry`}\n </DefaultButton>\n );\n};\n\ninterface NewRefEntryProps {\n modelId: string;\n children: React.ReactElement;\n onChange: (entry: CmsContentEntry) => void;\n}\n\nconst NewRefEntryFormDialog: React.FC<NewRefEntryProps> = ({ modelId, children, onChange }) => {\n const [contentModel, setContentModel] = useState<CmsModel | undefined>(undefined);\n\n const { showSnackbar } = useSnackbar();\n\n useQuery<GetCmsModelQueryResponse, GetCmsModelQueryVariables>(GET_CONTENT_MODEL, {\n skip: !modelId,\n variables: { modelId },\n onCompleted: data => {\n const contentModelData = get(data, \"getContentModel.data\") as unknown as CmsModel;\n if (contentModelData) {\n setContentModel(contentModelData);\n return;\n }\n\n showSnackbar(\n t`Could not load content for model \"{modelId}\". Redirecting...`({\n modelId\n })\n );\n }\n });\n\n const { open, setOpen } = useNewRefEntryDialog();\n const hideDialog = useCallback(() => setOpen(false), []);\n\n const onCreate = useCallback(\n (entry: CmsContentEntry) => {\n if (!contentModel) {\n setOpen(false);\n return;\n }\n onChange({\n ...entry,\n /*\n * Format data for AutoComplete.\n */\n published: get(entry, \"meta.status\") === \"published\",\n modelId: contentModel.modelId,\n modelName: contentModel.name\n });\n setOpen(false);\n },\n [onChange, contentModel]\n );\n\n if (!contentModel) {\n return children;\n }\n\n return (\n <ContentEntriesProvider\n contentModel={contentModel}\n key={contentModel.modelId}\n insideDialog={true}\n >\n <ContentEntryProvider isNewEntry={() => true} getContentId={() => null}>\n <Dialog open={open} onClose={hideDialog} className={dialogContainerStyles}>\n <DialogTitle>\n {t`New {modelName} Entry`({ modelName: contentModel.name })}\n </DialogTitle>\n <DialogContent className={dialogContentStyles}>\n <EntryForm onCreate={onCreate} />\n </DialogContent>\n <DialogActions>\n <DialogCancel>{t`Cancel`}</DialogCancel>\n <DialogSaveButton />\n </DialogActions>\n </Dialog>\n {children}\n </ContentEntryProvider>\n </ContentEntriesProvider>\n );\n};\n\nexport default NewRefEntryFormDialog;\n"],"mappings":"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"}
|
|
@@ -9,5 +9,6 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers
|
|
|
9
9
|
var _refInput = _interopRequireDefault(require("./refInput"));
|
|
10
10
|
var _refInputs = _interopRequireDefault(require("./refInputs"));
|
|
11
11
|
var _advanced = require("./advanced");
|
|
12
|
-
var
|
|
12
|
+
var _simple = require("./simple");
|
|
13
|
+
var _default = [].concat((0, _toConsumableArray2.default)((0, _advanced.createAdvancedRefRenderer)()), [_refInput.default, _refInputs.default], (0, _toConsumableArray2.default)((0, _simple.createSimpleRefRenderer)()));
|
|
13
14
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["createAdvancedRefRenderer","refInput","refInputs","createSimpleRefRenderer"],"sources":["index.ts"],"sourcesContent":["import refInput from \"./refInput\";\nimport refInputs from \"./refInputs\";\nimport { createAdvancedRefRenderer } from \"./advanced\";\nimport { createSimpleRefRenderer } from \"./simple\";\n\nexport default [...createAdvancedRefRenderer(), refInput, refInputs, ...createSimpleRefRenderer()];\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AAAmD,0DAEhC,IAAAA,mCAAyB,GAAE,IAAEC,iBAAQ,EAAEC,kBAAS,oCAAK,IAAAC,+BAAuB,GAAE;AAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { CmsReferenceContentEntry, CmsReferenceValue } from "../../components/types";
|
|
3
|
+
import { CmsModelField } from "../../../../../../types";
|
|
4
|
+
export interface AddItemParams {
|
|
5
|
+
id: string;
|
|
6
|
+
modelId: string;
|
|
7
|
+
}
|
|
8
|
+
export interface RemoveItemParams {
|
|
9
|
+
entryId: string;
|
|
10
|
+
modelId: string;
|
|
11
|
+
}
|
|
12
|
+
interface Props {
|
|
13
|
+
multiple?: boolean;
|
|
14
|
+
field: CmsModelField;
|
|
15
|
+
items?: CmsReferenceContentEntry[];
|
|
16
|
+
values?: CmsReferenceValue[];
|
|
17
|
+
addItem: (params: AddItemParams) => void;
|
|
18
|
+
removeItem: (params: RemoveItemParams) => void;
|
|
19
|
+
}
|
|
20
|
+
export declare const SimpleItems: React.VFC<Props>;
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.SimpleItems = void 0;
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _Checkbox = require("@webiny/ui/Checkbox");
|
|
11
|
+
var _utils = require("@webiny/utils");
|
|
12
|
+
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
13
|
+
var _Radio = require("@webiny/ui/Radio");
|
|
14
|
+
var Title = /*#__PURE__*/(0, _styled.default)("h5", {
|
|
15
|
+
target: "e1t86xkg0",
|
|
16
|
+
label: "Title"
|
|
17
|
+
})({
|
|
18
|
+
display: "block"
|
|
19
|
+
});
|
|
20
|
+
var ListItem = /*#__PURE__*/(0, _styled.default)("div", {
|
|
21
|
+
target: "e1t86xkg1",
|
|
22
|
+
label: "ListItem"
|
|
23
|
+
})({
|
|
24
|
+
display: "block"
|
|
25
|
+
});
|
|
26
|
+
var Item = function Item(props) {
|
|
27
|
+
var multiple = props.multiple,
|
|
28
|
+
value = props.value,
|
|
29
|
+
item = props.item,
|
|
30
|
+
onChange = props.onChange;
|
|
31
|
+
if (!multiple) {
|
|
32
|
+
return /*#__PURE__*/_react.default.createElement(_Radio.Radio, {
|
|
33
|
+
value: value,
|
|
34
|
+
onChange: onChange,
|
|
35
|
+
label: item.title
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
return /*#__PURE__*/_react.default.createElement(_Checkbox.Checkbox, {
|
|
39
|
+
value: value,
|
|
40
|
+
onChange: onChange,
|
|
41
|
+
label: item.title
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
var SimpleItems = function SimpleItems(props) {
|
|
45
|
+
var field = props.field,
|
|
46
|
+
items = props.items,
|
|
47
|
+
values = props.values,
|
|
48
|
+
addItem = props.addItem,
|
|
49
|
+
removeItem = props.removeItem,
|
|
50
|
+
multiple = props.multiple;
|
|
51
|
+
var onChange = (0, _react.useCallback)(function (item) {
|
|
52
|
+
return function (checked) {
|
|
53
|
+
if (checked) {
|
|
54
|
+
addItem({
|
|
55
|
+
id: item.id,
|
|
56
|
+
modelId: item.model.modelId
|
|
57
|
+
});
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
removeItem({
|
|
61
|
+
entryId: item.entryId,
|
|
62
|
+
modelId: item.model.modelId
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
}, [addItem, removeItem, multiple, values]);
|
|
66
|
+
if (!items || items.length === 0) {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Title, null, field.label), items.map(function (item) {
|
|
70
|
+
var checked = (values || []).some(function (value) {
|
|
71
|
+
var _parseIdentifier = (0, _utils.parseIdentifier)(value.id),
|
|
72
|
+
entryId = _parseIdentifier.id;
|
|
73
|
+
return entryId === item.entryId;
|
|
74
|
+
});
|
|
75
|
+
return /*#__PURE__*/_react.default.createElement(ListItem, {
|
|
76
|
+
key: "item-".concat(item.entryId)
|
|
77
|
+
}, /*#__PURE__*/_react.default.createElement(Item, {
|
|
78
|
+
multiple: multiple,
|
|
79
|
+
value: checked ? item.entryId : null,
|
|
80
|
+
item: item,
|
|
81
|
+
onChange: onChange(item)
|
|
82
|
+
}));
|
|
83
|
+
}));
|
|
84
|
+
};
|
|
85
|
+
exports.SimpleItems = SimpleItems;
|