@webiny/app-headless-cms 0.0.0-unstable.9e825fd5fb → 0.0.0-unstable.aa00eecd97
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/Entries.js +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/Entries.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/components/ReferencesDialog.js +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/ReferencesDialog.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/hooks/graphql.js +1 -5
- package/admin/plugins/fieldRenderers/ref/advanced/hooks/graphql.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/fields/dynamicZone.d.ts +2 -2
- package/admin/plugins/fields/dynamicZone.js +1 -1
- package/admin/plugins/fields/dynamicZone.js.map +1 -1
- 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"}
|
|
@@ -46,7 +46,7 @@ var Entries = function Entries(props) {
|
|
|
46
46
|
loadMore();
|
|
47
47
|
}, 500), [entries, loadMore]);
|
|
48
48
|
if (entries.length === 0) {
|
|
49
|
-
return null;
|
|
49
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "No entries found.");
|
|
50
50
|
}
|
|
51
51
|
return /*#__PURE__*/_react.default.createElement(Container, {
|
|
52
52
|
className: "entries"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Container","styled","minWidth","height","backgroundColor","boxSizing","display","overflowX","overflowY","paddingRight","ContainerChild","width","margin","Entries","props","entries","children","loadMore","loadMoreOnScroll","useCallback","debounce","position","top","length","map","entry","index","id"],"sources":["Entries.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport debounce from \"lodash/debounce\";\nimport styled from \"@emotion/styled\";\nimport { CmsReferenceContentEntry } from \"~/admin/plugins/fieldRenderers/ref/components/types\";\nimport { Scrollbar } from \"@webiny/ui/Scrollbar\";\nimport { positionValues as PositionValues } from \"react-custom-scrollbars\";\n\nconst Container = styled(\"div\")(() => ({\n minWidth: \"100%\",\n height: \"460px\",\n backgroundColor: \"var(--mdc-theme-background)\",\n boxSizing: \"border-box\",\n display: \"flex\",\n \">div>div\": {\n overflowX: \"hidden !important\" as any,\n overflowY: \"scroll\",\n paddingRight: 20\n }\n}));\nconst ContainerChild = styled(\"div\")({\n boxSizing: \"border-box\",\n width: \"100%\",\n margin: \"0 2px 25px 2px\"\n});\n\ninterface Props {\n entries: CmsReferenceContentEntry[];\n children: (entry: CmsReferenceContentEntry, index: number) => React.ReactNode;\n loadMore: () => void;\n}\n\nexport const Entries: React.VFC<Props> = props => {\n const { entries, children, loadMore } = props;\n\n const loadMoreOnScroll = useCallback(\n debounce((position: PositionValues) => {\n if (position.top <= 0.9) {\n return;\n }\n loadMore();\n }, 500),\n [entries, loadMore]\n );\n\n if (entries.length === 0) {\n return
|
|
1
|
+
{"version":3,"names":["Container","styled","minWidth","height","backgroundColor","boxSizing","display","overflowX","overflowY","paddingRight","ContainerChild","width","margin","Entries","props","entries","children","loadMore","loadMoreOnScroll","useCallback","debounce","position","top","length","map","entry","index","id"],"sources":["Entries.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport debounce from \"lodash/debounce\";\nimport styled from \"@emotion/styled\";\nimport { CmsReferenceContentEntry } from \"~/admin/plugins/fieldRenderers/ref/components/types\";\nimport { Scrollbar } from \"@webiny/ui/Scrollbar\";\nimport { positionValues as PositionValues } from \"react-custom-scrollbars\";\n\nconst Container = styled(\"div\")(() => ({\n minWidth: \"100%\",\n height: \"460px\",\n backgroundColor: \"var(--mdc-theme-background)\",\n boxSizing: \"border-box\",\n display: \"flex\",\n \">div>div\": {\n overflowX: \"hidden !important\" as any,\n overflowY: \"scroll\",\n paddingRight: 20\n }\n}));\nconst ContainerChild = styled(\"div\")({\n boxSizing: \"border-box\",\n width: \"100%\",\n margin: \"0 2px 25px 2px\"\n});\n\ninterface Props {\n entries: CmsReferenceContentEntry[];\n children: (entry: CmsReferenceContentEntry, index: number) => React.ReactNode;\n loadMore: () => void;\n}\n\nexport const Entries: React.VFC<Props> = props => {\n const { entries, children, loadMore } = props;\n\n const loadMoreOnScroll = useCallback(\n debounce((position: PositionValues) => {\n if (position.top <= 0.9) {\n return;\n }\n loadMore();\n }, 500),\n [entries, loadMore]\n );\n\n if (entries.length === 0) {\n return <>No entries found.</>;\n }\n return (\n <Container className={\"entries\"}>\n <Scrollbar data-testid=\"advanced-ref-field-entries\" onScrollFrame={loadMoreOnScroll}>\n {entries.map((entry, index) => {\n return (\n <ContainerChild key={`entry-${entry.id}`}>\n {children(entry, index)}\n </ContainerChild>\n );\n })}\n </Scrollbar>\n </Container>\n );\n};\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AAEA;AAGA,IAAMA,SAAS,oBAAGC,eAAM,EAAC,KAAK;EAAA;EAAA;AAAA,GAAE;EAAA,OAAO;IACnCC,QAAQ,EAAE,MAAM;IAChBC,MAAM,EAAE,OAAO;IACfC,eAAe,EAAE,6BAA6B;IAC9CC,SAAS,EAAE,YAAY;IACvBC,OAAO,EAAE,MAAM;IACf,UAAU,EAAE;MACRC,SAAS,EAAE,mBAA0B;MACrCC,SAAS,EAAE,QAAQ;MACnBC,YAAY,EAAE;IAClB;EACJ,CAAC;AAAA,CAAC,CAAC;AACH,IAAMC,cAAc,oBAAGT,eAAM,EAAC,KAAK;EAAA;EAAA;AAAA,GAAE;EACjCI,SAAS,EAAE,YAAY;EACvBM,KAAK,EAAE,MAAM;EACbC,MAAM,EAAE;AACZ,CAAC,CAAC;AAQK,IAAMC,OAAyB,GAAG,SAA5BA,OAAyB,CAAGC,KAAK,EAAI;EAC9C,IAAQC,OAAO,GAAyBD,KAAK,CAArCC,OAAO;IAAEC,QAAQ,GAAeF,KAAK,CAA5BE,QAAQ;IAAEC,QAAQ,GAAKH,KAAK,CAAlBG,QAAQ;EAEnC,IAAMC,gBAAgB,GAAG,IAAAC,kBAAW,EAChC,IAAAC,iBAAQ,EAAC,UAACC,QAAwB,EAAK;IACnC,IAAIA,QAAQ,CAACC,GAAG,IAAI,GAAG,EAAE;MACrB;IACJ;IACAL,QAAQ,EAAE;EACd,CAAC,EAAE,GAAG,CAAC,EACP,CAACF,OAAO,EAAEE,QAAQ,CAAC,CACtB;EAED,IAAIF,OAAO,CAACQ,MAAM,KAAK,CAAC,EAAE;IACtB,oBAAO,4DAAE,mBAAiB,CAAG;EACjC;EACA,oBACI,6BAAC,SAAS;IAAC,SAAS,EAAE;EAAU,gBAC5B,6BAAC,oBAAS;IAAC,eAAY,4BAA4B;IAAC,aAAa,EAAEL;EAAiB,GAC/EH,OAAO,CAACS,GAAG,CAAC,UAACC,KAAK,EAAEC,KAAK,EAAK;IAC3B,oBACI,6BAAC,cAAc;MAAC,GAAG,kBAAWD,KAAK,CAACE,EAAE;IAAG,GACpCX,QAAQ,CAACS,KAAK,EAAEC,KAAK,CAAC,CACV;EAEzB,CAAC,CAAC,CACM,CACJ;AAEpB,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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"}
|
|
@@ -38,7 +38,7 @@ var Content = /*#__PURE__*/(0, _styled.default)("div", {
|
|
|
38
38
|
flexDirection: "column",
|
|
39
39
|
position: "relative",
|
|
40
40
|
width: "100%",
|
|
41
|
-
minHeight: "
|
|
41
|
+
minHeight: "20px",
|
|
42
42
|
boxSizing: "border-box",
|
|
43
43
|
padding: "20px 0 20px 20px",
|
|
44
44
|
backgroundColor: "var(--mdc-theme-background)",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Container","styled","width","boxSizing","padding","Content","display","flex","flexDirection","position","minHeight","backgroundColor","border","overflowX","DialogContent","BaseDialogContent","isSelected","entryId","values","some","value","parseIdentifier","id","valueEntryId","ReferencesDialog","props","contentModel","onDialogClose","storeValues","initialValues","multiple","useSnackbar","showSnackbar","useState","setValues","onChange","useCallback","reference","referenceEntryId","newValues","filter","length","onDialogSave","useEntries","model","limit","entries","loading","error","runSearch","loadMore","useEffect","debouncedSearch","useRef","onInput","ev","String","target","trim","current","clearTimeout","setTimeout","entry"],"sources":["ReferencesDialog.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { DialogHeader } from \"./dialog/DialogHeader\";\nimport { Search } from \"./Search\";\nimport { Entry } from \"./Entry\";\nimport { DialogActions, DialogContent as BaseDialogContent } from \"~/admin/components/Dialog\";\nimport { CmsModelFieldRendererProps } from \"~/types\";\nimport { CmsReferenceValue } from \"~/admin/plugins/fieldRenderers/ref/components/types\";\nimport { ButtonDefault, ButtonPrimary } from \"@webiny/ui/Button\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { Dialog } from \"./dialog/Dialog\";\nimport { AbsoluteLoader } from \"~/admin/plugins/fieldRenderers/ref/advanced/components/Loader\";\nimport { useEntries } from \"~/admin/plugins/fieldRenderers/ref/advanced/hooks/useEntries\";\nimport { Entries } from \"./Entries\";\n\nconst Container = styled(\"div\")({\n width: \"100%\",\n boxSizing: \"border-box\",\n padding: \"20px\"\n});\n\nconst Content = styled(\"div\")({\n display: \"flex\",\n flex: \"1\",\n flexDirection: \"column\",\n position: \"relative\",\n width: \"100%\",\n minHeight: \"100px\",\n boxSizing: \"border-box\",\n padding: \"20px 0 20px 20px\",\n backgroundColor: \"var(--mdc-theme-background)\",\n border: \"1px solid var(--mdc-theme-on-background)\",\n overflowX: \"hidden\"\n});\n\nconst DialogContent = styled(BaseDialogContent)({\n padding: \"0 !important\"\n});\n\nconst isSelected = (entryId: string, values: CmsReferenceValue[]) => {\n if (!entryId) {\n return false;\n }\n return values.some(value => {\n const { id: valueEntryId } = parseIdentifier(value.id);\n return entryId === valueEntryId;\n });\n};\n\ninterface Props extends CmsModelFieldRendererProps {\n values?: CmsReferenceValue[] | null;\n onDialogClose: () => void;\n storeValues: (values: CmsReferenceValue[]) => void;\n multiple: boolean;\n}\n\nexport const ReferencesDialog: React.VFC<Props> = props => {\n const { contentModel, onDialogClose, storeValues, values: initialValues, multiple } = props;\n const { showSnackbar } = useSnackbar();\n\n const [values, setValues] = useState<CmsReferenceValue[]>(initialValues || []);\n\n /**\n * On change needs to handle the adding or removing of a reference.\n *\n * This is for both single and multiple reference fields.\n */\n const onChange = useCallback(\n (reference: CmsReferenceValue) => {\n const { id: referenceEntryId } = parseIdentifier(reference.id);\n /**\n * Let's handle the single usage first as it is quite simple.\n */\n if (!multiple) {\n const [value] = values;\n if (!value?.id) {\n setValues([reference]);\n return;\n }\n const { id: valueEntryId } = parseIdentifier(value.id);\n if (referenceEntryId === valueEntryId) {\n setValues([]);\n return;\n }\n setValues([reference]);\n return;\n }\n\n const newValues = values.filter(value => {\n if (!value?.id) {\n return false;\n }\n const { id: valueEntryId } = parseIdentifier(value.id);\n return referenceEntryId !== valueEntryId;\n });\n if (newValues.length === values.length) {\n setValues([...values, reference]);\n return;\n }\n setValues(newValues);\n },\n [setValues, values]\n );\n\n const onDialogSave = useCallback(() => {\n storeValues(values);\n onDialogClose();\n }, [values]);\n /**\n * Searching and list of reference entries.\n */\n const { entries, loading, error, runSearch, loadMore } = useEntries({\n model: contentModel,\n limit: 10\n });\n\n useEffect(() => {\n runSearch(\"\");\n }, []);\n\n useEffect(() => {\n if (!error) {\n return;\n }\n showSnackbar(error);\n }, [error]);\n\n const debouncedSearch = useRef<number | null>(null);\n\n const onInput = useCallback(ev => {\n const value = (String(ev.target.value) || \"\").trim();\n if (debouncedSearch.current) {\n clearTimeout(debouncedSearch.current);\n debouncedSearch.current = null;\n }\n /**\n * We can safely cast as setTimeout really produces a number.\n * There is an error while coding because Storm thinks this is NodeJS timeout.\n */\n debouncedSearch.current = setTimeout(() => {\n runSearch(value);\n }, 200) as unknown as number;\n }, []);\n\n return (\n <>\n <Dialog open={true} onClose={onDialogClose}>\n <DialogHeader model={contentModel} onClose={onDialogClose} />\n <DialogContent>\n <Container>\n <Search onInput={onInput} />\n <Content>\n {loading && <AbsoluteLoader />}\n <Entries entries={entries} loadMore={loadMore}>\n {entry => {\n return (\n <Entry\n model={contentModel}\n key={`reference-entry-${entry.id}`}\n entry={entry}\n selected={isSelected(entry.entryId, values)}\n onChange={onChange}\n />\n );\n }}\n </Entries>\n </Content>\n </Container>\n </DialogContent>\n <DialogActions>\n <ButtonDefault onClick={onDialogClose}>Cancel</ButtonDefault>\n <ButtonPrimary onClick={onDialogSave}>Save</ButtonPrimary>\n </DialogActions>\n </Dialog>\n </>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Container","styled","width","boxSizing","padding","Content","display","flex","flexDirection","position","minHeight","backgroundColor","border","overflowX","DialogContent","BaseDialogContent","isSelected","entryId","values","some","value","parseIdentifier","id","valueEntryId","ReferencesDialog","props","contentModel","onDialogClose","storeValues","initialValues","multiple","useSnackbar","showSnackbar","useState","setValues","onChange","useCallback","reference","referenceEntryId","newValues","filter","length","onDialogSave","useEntries","model","limit","entries","loading","error","runSearch","loadMore","useEffect","debouncedSearch","useRef","onInput","ev","String","target","trim","current","clearTimeout","setTimeout","entry"],"sources":["ReferencesDialog.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { DialogHeader } from \"./dialog/DialogHeader\";\nimport { Search } from \"./Search\";\nimport { Entry } from \"./Entry\";\nimport { DialogActions, DialogContent as BaseDialogContent } from \"~/admin/components/Dialog\";\nimport { CmsModelFieldRendererProps } from \"~/types\";\nimport { CmsReferenceValue } from \"~/admin/plugins/fieldRenderers/ref/components/types\";\nimport { ButtonDefault, ButtonPrimary } from \"@webiny/ui/Button\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { Dialog } from \"./dialog/Dialog\";\nimport { AbsoluteLoader } from \"~/admin/plugins/fieldRenderers/ref/advanced/components/Loader\";\nimport { useEntries } from \"~/admin/plugins/fieldRenderers/ref/advanced/hooks/useEntries\";\nimport { Entries } from \"./Entries\";\n\nconst Container = styled(\"div\")({\n width: \"100%\",\n boxSizing: \"border-box\",\n padding: \"20px\"\n});\n\nconst Content = styled(\"div\")({\n display: \"flex\",\n flex: \"1\",\n flexDirection: \"column\",\n position: \"relative\",\n width: \"100%\",\n minHeight: \"20px\",\n boxSizing: \"border-box\",\n padding: \"20px 0 20px 20px\",\n backgroundColor: \"var(--mdc-theme-background)\",\n border: \"1px solid var(--mdc-theme-on-background)\",\n overflowX: \"hidden\"\n});\n\nconst DialogContent = styled(BaseDialogContent)({\n padding: \"0 !important\"\n});\n\nconst isSelected = (entryId: string, values: CmsReferenceValue[]) => {\n if (!entryId) {\n return false;\n }\n return values.some(value => {\n const { id: valueEntryId } = parseIdentifier(value.id);\n return entryId === valueEntryId;\n });\n};\n\ninterface Props extends CmsModelFieldRendererProps {\n values?: CmsReferenceValue[] | null;\n onDialogClose: () => void;\n storeValues: (values: CmsReferenceValue[]) => void;\n multiple: boolean;\n}\n\nexport const ReferencesDialog: React.VFC<Props> = props => {\n const { contentModel, onDialogClose, storeValues, values: initialValues, multiple } = props;\n const { showSnackbar } = useSnackbar();\n\n const [values, setValues] = useState<CmsReferenceValue[]>(initialValues || []);\n\n /**\n * On change needs to handle the adding or removing of a reference.\n *\n * This is for both single and multiple reference fields.\n */\n const onChange = useCallback(\n (reference: CmsReferenceValue) => {\n const { id: referenceEntryId } = parseIdentifier(reference.id);\n /**\n * Let's handle the single usage first as it is quite simple.\n */\n if (!multiple) {\n const [value] = values;\n if (!value?.id) {\n setValues([reference]);\n return;\n }\n const { id: valueEntryId } = parseIdentifier(value.id);\n if (referenceEntryId === valueEntryId) {\n setValues([]);\n return;\n }\n setValues([reference]);\n return;\n }\n\n const newValues = values.filter(value => {\n if (!value?.id) {\n return false;\n }\n const { id: valueEntryId } = parseIdentifier(value.id);\n return referenceEntryId !== valueEntryId;\n });\n if (newValues.length === values.length) {\n setValues([...values, reference]);\n return;\n }\n setValues(newValues);\n },\n [setValues, values]\n );\n\n const onDialogSave = useCallback(() => {\n storeValues(values);\n onDialogClose();\n }, [values]);\n /**\n * Searching and list of reference entries.\n */\n const { entries, loading, error, runSearch, loadMore } = useEntries({\n model: contentModel,\n limit: 10\n });\n\n useEffect(() => {\n runSearch(\"\");\n }, []);\n\n useEffect(() => {\n if (!error) {\n return;\n }\n showSnackbar(error);\n }, [error]);\n\n const debouncedSearch = useRef<number | null>(null);\n\n const onInput = useCallback(ev => {\n const value = (String(ev.target.value) || \"\").trim();\n if (debouncedSearch.current) {\n clearTimeout(debouncedSearch.current);\n debouncedSearch.current = null;\n }\n /**\n * We can safely cast as setTimeout really produces a number.\n * There is an error while coding because Storm thinks this is NodeJS timeout.\n */\n debouncedSearch.current = setTimeout(() => {\n runSearch(value);\n }, 200) as unknown as number;\n }, []);\n\n return (\n <>\n <Dialog open={true} onClose={onDialogClose}>\n <DialogHeader model={contentModel} onClose={onDialogClose} />\n <DialogContent>\n <Container>\n <Search onInput={onInput} />\n <Content>\n {loading && <AbsoluteLoader />}\n <Entries entries={entries} loadMore={loadMore}>\n {entry => {\n return (\n <Entry\n model={contentModel}\n key={`reference-entry-${entry.id}`}\n entry={entry}\n selected={isSelected(entry.entryId, values)}\n onChange={onChange}\n />\n );\n }}\n </Entries>\n </Content>\n </Container>\n </DialogContent>\n <DialogActions>\n <ButtonDefault onClick={onDialogClose}>Cancel</ButtonDefault>\n <ButtonPrimary onClick={onDialogSave}>Save</ButtonPrimary>\n </DialogActions>\n </Dialog>\n </>\n );\n};\n"],"mappings":"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"}
|
|
@@ -7,15 +7,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.createSearchQuery = exports.LIST_LATEST_CONTENT_ENTRIES = void 0;
|
|
8
8
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
9
9
|
var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
|
|
10
|
-
var _upperFirst = _interopRequireDefault(require("lodash/upperFirst"));
|
|
11
|
-
var _pluralize = _interopRequireDefault(require("pluralize"));
|
|
12
10
|
var _templateObject, _templateObject2;
|
|
13
11
|
var fields = "\n data {\n id\n entryId\n title\n description\n image\n status\n createdOn\n savedOn\n model {\n name\n modelId\n }\n createdBy {\n id\n displayName\n type\n }\n modifiedBy {\n id\n displayName\n type\n }\n published {\n id\n }\n }\n error {\n message\n code\n data\n }\n";
|
|
14
12
|
var LIST_LATEST_CONTENT_ENTRIES = (0, _graphqlTag.default)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n query CmsListLatestContentEntries($entries: [CmsModelEntryInput!]!) {\n entries: getLatestContentEntries(entries: $entries) {\n ", "\n }\n }\n"])), fields);
|
|
15
13
|
exports.LIST_LATEST_CONTENT_ENTRIES = LIST_LATEST_CONTENT_ENTRIES;
|
|
16
14
|
var createSearchQuery = function createSearchQuery(model) {
|
|
17
|
-
|
|
18
|
-
var ucFirstModelId = (0, _upperFirst.default)(model.modelId);
|
|
19
|
-
return (0, _graphqlTag.default)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n query Search", "($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 entryId\n savedOn\n createdOn\n createdBy {\n id\n type\n displayName\n }\n ownedBy {\n id\n type\n displayName\n }\n modifiedBy {\n id\n type\n displayName\n }\n meta {\n title\n description\n image\n status\n }\n }\n meta {\n cursor\n hasMoreItems\n totalCount\n }\n error {\n message\n code\n data\n }\n }\n }"])), ucFirstPluralizedModelId, ucFirstModelId, ucFirstModelId, ucFirstPluralizedModelId);
|
|
15
|
+
return (0, _graphqlTag.default)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n query Search", "($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 entryId\n savedOn\n createdOn\n createdBy {\n id\n type\n displayName\n }\n ownedBy {\n id\n type\n displayName\n }\n modifiedBy {\n id\n type\n displayName\n }\n meta {\n title\n description\n image\n status\n }\n }\n meta {\n cursor\n hasMoreItems\n totalCount\n }\n error {\n message\n code\n data\n }\n }\n }"])), model.pluralApiName, model.singularApiName, model.singularApiName, model.pluralApiName);
|
|
20
16
|
};
|
|
21
17
|
exports.createSearchQuery = createSearchQuery;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["fields","LIST_LATEST_CONTENT_ENTRIES","gql","createSearchQuery","model","
|
|
1
|
+
{"version":3,"names":["fields","LIST_LATEST_CONTENT_ENTRIES","gql","createSearchQuery","model","pluralApiName","singularApiName"],"sources":["graphql.ts"],"sourcesContent":["import gql from \"graphql-tag\";\nimport {\n CmsContentEntryStatusType,\n CmsIdentity,\n CmsErrorResponse,\n CmsMetaResponse,\n CmsModel\n} from \"~/types\";\nimport { CmsReferenceContentEntry } from \"~/admin/plugins/fieldRenderers/ref/components/types\";\nimport { CmsEntryGetEntryVariable } from \"~/admin/plugins/fieldRenderers/ref/components/graphql\";\n\nconst fields = `\n data {\n id\n entryId\n title\n description\n image\n status\n createdOn\n savedOn\n model {\n name\n modelId\n }\n createdBy {\n id\n displayName\n type\n }\n modifiedBy {\n id\n displayName\n type\n }\n published {\n id\n }\n }\n error {\n message\n code\n data\n }\n`;\n\nexport interface ListLatestCmsEntriesResponse {\n entries: {\n data: CmsReferenceContentEntry[];\n error: CmsErrorResponse | null;\n };\n}\n\nexport interface ListLatestCmsEntriesVariables {\n entries: CmsEntryGetEntryVariable[];\n}\n\nexport const LIST_LATEST_CONTENT_ENTRIES = gql`\n query CmsListLatestContentEntries($entries: [CmsModelEntryInput!]!) {\n entries: getLatestContentEntries(entries: $entries) {\n ${fields}\n }\n }\n`;\n\nexport interface SearchQueryResponseEntry {\n id: string;\n entryId: string;\n savedOn: Date;\n createdOn: Date;\n createdBy: CmsIdentity;\n ownedBy: CmsIdentity;\n modifiedBy: CmsIdentity;\n meta: {\n title: string;\n description?: string;\n image?: string;\n status: CmsContentEntryStatusType;\n };\n}\n\nexport interface SearchQueryResponse {\n content: {\n data: SearchQueryResponseEntry[];\n error: CmsErrorResponse | null;\n meta: CmsMetaResponse;\n };\n}\n\nexport interface SearchQueryVariables {\n where?: {\n [key: string]: any;\n };\n sort?: string[];\n limit?: number;\n after?: string;\n}\n\nexport const createSearchQuery = (model: CmsModel) => {\n return gql`\n query Search${model.pluralApiName}($where: ${model.singularApiName}ListWhereInput, $sort: [${model.singularApiName}ListSorter], $limit: Int, $after: String) {\n content: list${model.pluralApiName}(\n where: $where\n sort: $sort\n limit: $limit\n after: $after\n ) {\n data {\n id\n entryId\n savedOn\n createdOn\n createdBy {\n id\n type\n displayName\n }\n ownedBy {\n id\n type\n displayName\n }\n modifiedBy {\n id\n type\n displayName\n }\n meta {\n title\n description\n image\n status\n }\n }\n meta {\n cursor\n hasMoreItems\n totalCount\n }\n error {\n message\n code\n data\n }\n }\n }`;\n};\n"],"mappings":";;;;;;;;AAAA;AAA8B;AAW9B,IAAMA,MAAM,ygBAiCX;AAaM,IAAMC,2BAA2B,OAAGC,mBAAG,qQAGhCF,MAAM,CAGnB;AAAC;AAmCK,IAAMG,iBAAiB,GAAG,SAApBA,iBAAiB,CAAIC,KAAe,EAAK;EAClD,WAAOF,mBAAG,8vCACQE,KAAK,CAACC,aAAa,EAAYD,KAAK,CAACE,eAAe,EAA2BF,KAAK,CAACE,eAAe,EAC/FF,KAAK,CAACC,aAAa;AA6C9C,CAAC;AAAC"}
|
|
@@ -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
|
},
|