@webiny/app-security-access-management 5.27.0 → 5.28.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/components/GroupAutocomplete/graphql.js +14 -3
  2. package/components/GroupAutocomplete/graphql.js.map +1 -1
  3. package/components/GroupAutocomplete/index.js +23 -8
  4. package/components/GroupAutocomplete/index.js.map +1 -1
  5. package/components/NotAuthorizedError/NotAuthorizedError.js +39 -18
  6. package/components/NotAuthorizedError/NotAuthorizedError.js.map +1 -1
  7. package/components/NotAuthorizedError/index.js +13 -1
  8. package/components/NotAuthorizedError/index.js.map +1 -1
  9. package/index.js +57 -32
  10. package/index.js.map +1 -1
  11. package/package.json +12 -12
  12. package/plugins/constants.js +9 -2
  13. package/plugins/constants.js.map +1 -1
  14. package/plugins/index.js +20 -6
  15. package/plugins/index.js.map +1 -1
  16. package/plugins/installation.js +47 -25
  17. package/plugins/installation.js.map +1 -1
  18. package/plugins/permissionRenderer/SecurityPermissions.js +69 -46
  19. package/plugins/permissionRenderer/SecurityPermissions.js.map +1 -1
  20. package/plugins/permissionRenderer/index.js +33 -15
  21. package/plugins/permissionRenderer/index.js.map +1 -1
  22. package/plugins/routes.js +37 -19
  23. package/plugins/routes.js.map +1 -1
  24. package/plugins/secureRouteError.js +16 -4
  25. package/plugins/secureRouteError.js.map +1 -1
  26. package/types.js +5 -1
  27. package/types.js.map +1 -1
  28. package/ui/elements/GroupAutocompleteElement.js +34 -18
  29. package/ui/elements/GroupAutocompleteElement.js.map +1 -1
  30. package/ui/views/ApiKeys/ApiKeyForm.js +122 -81
  31. package/ui/views/ApiKeys/ApiKeyForm.js.map +1 -1
  32. package/ui/views/ApiKeys/ApiKeys.js +22 -7
  33. package/ui/views/ApiKeys/ApiKeys.js.map +1 -1
  34. package/ui/views/ApiKeys/ApiKeysDataList.js +101 -66
  35. package/ui/views/ApiKeys/ApiKeysDataList.js.map +1 -1
  36. package/ui/views/ApiKeys/graphql.js +22 -7
  37. package/ui/views/ApiKeys/graphql.js.map +1 -1
  38. package/ui/views/ApiKeys/index.js +18 -1
  39. package/ui/views/ApiKeys/index.js.map +1 -1
  40. package/ui/views/ApiKeys/utils.js +18 -5
  41. package/ui/views/ApiKeys/utils.js.map +1 -1
  42. package/ui/views/Groups/Groups.js +22 -7
  43. package/ui/views/Groups/Groups.js.map +1 -1
  44. package/ui/views/Groups/GroupsDataList.js +107 -71
  45. package/ui/views/Groups/GroupsDataList.js.map +1 -1
  46. package/ui/views/Groups/GroupsForm.js +125 -84
  47. package/ui/views/Groups/GroupsForm.js.map +1 -1
  48. package/ui/views/Groups/graphql.js +22 -7
  49. package/ui/views/Groups/graphql.js.map +1 -1
  50. package/ui/views/Groups/index.js +18 -1
  51. package/ui/views/Groups/index.js.map +1 -1
  52. package/ui/views/utils.js +16 -4
  53. package/ui/views/utils.js.map +1 -1
@@ -1,102 +1,135 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
- import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.ApiKeysDataList = void 0;
11
+
12
+ var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
13
+
14
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
+
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
18
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
19
+
20
+ var _react = _interopRequireWildcard(require("react"));
21
+
22
+ var _orderBy = _interopRequireDefault(require("lodash/orderBy"));
23
+
24
+ var _i18n = require("@webiny/app/i18n");
25
+
26
+ var _List = require("@webiny/ui/List");
27
+
28
+ var _Button = require("@webiny/ui/Button");
29
+
30
+ var _icons = require("@webiny/ui/List/DataList/icons");
31
+
32
+ var _Grid = require("@webiny/ui/Grid");
33
+
34
+ var _Select = require("@webiny/ui/Select");
35
+
36
+ var _reactRouter = require("@webiny/react-router");
37
+
38
+ var _SearchUI = _interopRequireDefault(require("@webiny/app-admin/components/SearchUI"));
39
+
40
+ var _useSnackbar2 = require("@webiny/app-admin/hooks/useSnackbar");
41
+
42
+ var _reactHooks = require("@apollo/react-hooks");
43
+
44
+ var _useConfirmationDialog = require("@webiny/app-admin/hooks/useConfirmationDialog");
45
+
46
+ var GQL = _interopRequireWildcard(require("./graphql"));
47
+
48
+ var _add18px = require("@webiny/app-admin/assets/icons/add-18px.svg");
49
+
50
+ var _filter24px = require("@webiny/app-admin/assets/icons/filter-24px.svg");
51
+
52
+ var _utils = require("../utils");
4
53
 
5
54
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9;
6
55
 
7
- import _regeneratorRuntime from "@babel/runtime/regenerator";
8
- import React, { useCallback, useMemo, useState } from "react";
9
- import orderBy from "lodash/orderBy";
10
- import { i18n } from "@webiny/app/i18n";
11
- import { DataList, ScrollList, ListItem, ListItemText, ListItemTextSecondary, ListItemMeta, ListActions, DataListModalOverlayAction, DataListModalOverlay } from "@webiny/ui/List";
12
- import { ButtonIcon, ButtonSecondary } from "@webiny/ui/Button";
13
- import { DeleteIcon } from "@webiny/ui/List/DataList/icons";
14
- import { Cell, Grid } from "@webiny/ui/Grid";
15
- import { Select } from "@webiny/ui/Select";
16
- import { useRouter } from "@webiny/react-router";
17
- import SearchUI from "@webiny/app-admin/components/SearchUI";
18
- import { useSnackbar } from "@webiny/app-admin/hooks/useSnackbar";
19
- import { useQuery, useMutation } from "@apollo/react-hooks";
20
- import { useConfirmationDialog } from "@webiny/app-admin/hooks/useConfirmationDialog";
21
- import * as GQL from "./graphql";
22
- import { ReactComponent as AddIcon } from "@webiny/app-admin/assets/icons/add-18px.svg";
23
- import { ReactComponent as FilterIcon } from "@webiny/app-admin/assets/icons/filter-24px.svg";
24
- import { deserializeSorters } from "../utils";
25
- var t = i18n.ns("app-security/admin/groups/data-list");
56
+ var t = _i18n.i18n.ns("app-security/admin/groups/data-list");
57
+
26
58
  var SORTERS = [{
27
- label: t(_templateObject || (_templateObject = _taggedTemplateLiteral(["Newest to oldest"]))),
59
+ label: t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["Newest to oldest"]))),
28
60
  sorter: "createdOn_DESC"
29
61
  }, {
30
- label: t(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["Oldest to newest"]))),
62
+ label: t(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["Oldest to newest"]))),
31
63
  sorter: "createdOn_ASC"
32
64
  }, {
33
- label: t(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["Name A-Z"]))),
65
+ label: t(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["Name A-Z"]))),
34
66
  sorter: "name_ASC"
35
67
  }, {
36
- label: t(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["Name Z-A"]))),
68
+ label: t(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["Name Z-A"]))),
37
69
  sorter: "name_DESC"
38
70
  }];
39
- export var ApiKeysDataList = function ApiKeysDataList() {
40
- var _useState = useState(""),
41
- _useState2 = _slicedToArray(_useState, 2),
71
+
72
+ var ApiKeysDataList = function ApiKeysDataList() {
73
+ var _useState = (0, _react.useState)(""),
74
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
42
75
  filter = _useState2[0],
43
76
  setFilter = _useState2[1];
44
77
 
45
- var _useState3 = useState(SORTERS[0].sorter),
46
- _useState4 = _slicedToArray(_useState3, 2),
78
+ var _useState3 = (0, _react.useState)(SORTERS[0].sorter),
79
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
47
80
  sort = _useState4[0],
48
81
  setSort = _useState4[1];
49
82
 
50
- var _useRouter = useRouter(),
83
+ var _useRouter = (0, _reactRouter.useRouter)(),
51
84
  history = _useRouter.history,
52
85
  location = _useRouter.location;
53
86
 
54
- var _useSnackbar = useSnackbar(),
87
+ var _useSnackbar = (0, _useSnackbar2.useSnackbar)(),
55
88
  showSnackbar = _useSnackbar.showSnackbar;
56
89
 
57
- var _useConfirmationDialo = useConfirmationDialog({
90
+ var _useConfirmationDialo = (0, _useConfirmationDialog.useConfirmationDialog)({
58
91
  dataTestId: "default-data-list.delete-dialog"
59
92
  }),
60
93
  showConfirmation = _useConfirmationDialo.showConfirmation;
61
94
 
62
- var filterAPIKey = useCallback(function (_ref) {
95
+ var filterAPIKey = (0, _react.useCallback)(function (_ref) {
63
96
  var description = _ref.description,
64
97
  name = _ref.name;
65
98
  return description && description.toLowerCase().includes(filter) || name.toLowerCase().includes(filter);
66
99
  }, [filter]);
67
- var sortKeys = useCallback(function (list) {
100
+ var sortKeys = (0, _react.useCallback)(function (list) {
68
101
  if (!sort) {
69
102
  return list;
70
103
  }
71
104
 
72
- var _deserializeSorters = deserializeSorters(sort),
73
- _deserializeSorters2 = _slicedToArray(_deserializeSorters, 2),
105
+ var _deserializeSorters = (0, _utils.deserializeSorters)(sort),
106
+ _deserializeSorters2 = (0, _slicedToArray2.default)(_deserializeSorters, 2),
74
107
  key = _deserializeSorters2[0],
75
108
  value = _deserializeSorters2[1];
76
109
 
77
- return orderBy(list, [key], [value]);
110
+ return (0, _orderBy.default)(list, [key], [value]);
78
111
  }, [sort]);
79
112
 
80
- var _useQuery = useQuery(GQL.LIST_API_KEYS),
113
+ var _useQuery = (0, _reactHooks.useQuery)(GQL.LIST_API_KEYS),
81
114
  listResponse = _useQuery.data,
82
115
  listLoading = _useQuery.loading;
83
116
 
84
- var _useMutation = useMutation(GQL.DELETE_API_KEY, {
117
+ var _useMutation = (0, _reactHooks.useMutation)(GQL.DELETE_API_KEY, {
85
118
  refetchQueries: [{
86
119
  query: GQL.LIST_API_KEYS
87
120
  }]
88
121
  }),
89
- _useMutation2 = _slicedToArray(_useMutation, 2),
122
+ _useMutation2 = (0, _slicedToArray2.default)(_useMutation, 2),
90
123
  deleteIt = _useMutation2[0],
91
124
  deleteLoading = _useMutation2[1].loading;
92
125
 
93
126
  var data = listLoading && !listResponse ? [] : listResponse.security.apiKeys.data;
94
127
  var id = new URLSearchParams(location.search).get("id");
95
- var deleteItem = useCallback(function (item) {
96
- showConfirmation( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
128
+ var deleteItem = (0, _react.useCallback)(function (item) {
129
+ showConfirmation( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
97
130
  var _yield$deleteIt, data, error;
98
131
 
99
- return _regeneratorRuntime.wrap(function _callee$(_context) {
132
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
100
133
  while (1) {
101
134
  switch (_context.prev = _context.next) {
102
135
  case 0:
@@ -118,7 +151,7 @@ export var ApiKeysDataList = function ApiKeysDataList() {
118
151
  return _context.abrupt("return", showSnackbar(error.message));
119
152
 
120
153
  case 7:
121
- showSnackbar(t(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["Api key \"{id}\" deleted."])))({
154
+ showSnackbar(t(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["Api key \"{id}\" deleted."])))({
122
155
  id: item.id
123
156
  }));
124
157
 
@@ -134,17 +167,17 @@ export var ApiKeysDataList = function ApiKeysDataList() {
134
167
  }, _callee);
135
168
  })));
136
169
  }, [id]);
137
- var groupsDataListModalOverlay = useMemo(function () {
138
- return /*#__PURE__*/React.createElement(DataListModalOverlay, null, /*#__PURE__*/React.createElement(Grid, null, /*#__PURE__*/React.createElement(Cell, {
170
+ var groupsDataListModalOverlay = (0, _react.useMemo)(function () {
171
+ return /*#__PURE__*/_react.default.createElement(_List.DataListModalOverlay, null, /*#__PURE__*/_react.default.createElement(_Grid.Grid, null, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
139
172
  span: 12
140
- }, /*#__PURE__*/React.createElement(Select, {
173
+ }, /*#__PURE__*/_react.default.createElement(_Select.Select, {
141
174
  value: sort,
142
175
  onChange: setSort,
143
- label: t(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["Sort by"])))
176
+ label: t(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["Sort by"])))
144
177
  }, SORTERS.map(function (_ref3) {
145
178
  var label = _ref3.label,
146
179
  sorter = _ref3.sorter;
147
- return /*#__PURE__*/React.createElement("option", {
180
+ return /*#__PURE__*/_react.default.createElement("option", {
148
181
  key: label,
149
182
  value: sorter
150
183
  }, label);
@@ -152,41 +185,41 @@ export var ApiKeysDataList = function ApiKeysDataList() {
152
185
  }, [sort]);
153
186
  var filteredData = filter === "" ? data : data.filter(filterAPIKey);
154
187
  var list = sortKeys(filteredData);
155
- return /*#__PURE__*/React.createElement(DataList, {
156
- title: t(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["API Keys"]))),
157
- actions: /*#__PURE__*/React.createElement(ButtonSecondary, {
188
+ return /*#__PURE__*/_react.default.createElement(_List.DataList, {
189
+ title: t(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["API Keys"]))),
190
+ actions: /*#__PURE__*/_react.default.createElement(_Button.ButtonSecondary, {
158
191
  "data-testid": "new-record-button",
159
192
  onClick: function onClick() {
160
193
  return history.push("/access-management/api-keys?new=true");
161
194
  }
162
- }, /*#__PURE__*/React.createElement(ButtonIcon, {
163
- icon: /*#__PURE__*/React.createElement(AddIcon, null)
164
- }), " ", t(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["New API Key"])))),
195
+ }, /*#__PURE__*/_react.default.createElement(_Button.ButtonIcon, {
196
+ icon: /*#__PURE__*/_react.default.createElement(_add18px.ReactComponent, null)
197
+ }), " ", t(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["New API Key"])))),
165
198
  data: list,
166
199
  loading: listLoading || deleteLoading,
167
- search: /*#__PURE__*/React.createElement(SearchUI, {
200
+ search: /*#__PURE__*/_react.default.createElement(_SearchUI.default, {
168
201
  value: filter,
169
202
  onChange: setFilter,
170
- inputPlaceholder: t(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["Search API keys"])))
203
+ inputPlaceholder: t(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2.default)(["Search API keys"])))
171
204
  }),
172
205
  modalOverlay: groupsDataListModalOverlay,
173
- modalOverlayAction: /*#__PURE__*/React.createElement(DataListModalOverlayAction, {
174
- icon: /*#__PURE__*/React.createElement(FilterIcon, null),
206
+ modalOverlayAction: /*#__PURE__*/_react.default.createElement(_List.DataListModalOverlayAction, {
207
+ icon: /*#__PURE__*/_react.default.createElement(_filter24px.ReactComponent, null),
175
208
  "data-testid": "default-data-list.filter"
176
209
  })
177
210
  }, function (_ref4) {
178
211
  var data = _ref4.data;
179
- return /*#__PURE__*/React.createElement(ScrollList, {
212
+ return /*#__PURE__*/_react.default.createElement(_List.ScrollList, {
180
213
  "data-testid": "default-data-list"
181
214
  }, data.map(function (item) {
182
- return /*#__PURE__*/React.createElement(ListItem, {
215
+ return /*#__PURE__*/_react.default.createElement(_List.ListItem, {
183
216
  key: item.id,
184
217
  selected: item.id === id
185
- }, /*#__PURE__*/React.createElement(ListItemText, {
218
+ }, /*#__PURE__*/_react.default.createElement(_List.ListItemText, {
186
219
  onClick: function onClick() {
187
220
  return history.push("/access-management/api-keys?id=".concat(item.id));
188
221
  }
189
- }, item.name, /*#__PURE__*/React.createElement(ListItemTextSecondary, null, item.description)), /*#__PURE__*/React.createElement(ListItemMeta, null, /*#__PURE__*/React.createElement(ListActions, null, /*#__PURE__*/React.createElement(DeleteIcon, {
222
+ }, item.name, /*#__PURE__*/_react.default.createElement(_List.ListItemTextSecondary, null, item.description)), /*#__PURE__*/_react.default.createElement(_List.ListItemMeta, null, /*#__PURE__*/_react.default.createElement(_List.ListActions, null, /*#__PURE__*/_react.default.createElement(_icons.DeleteIcon, {
190
223
  onClick: function onClick() {
191
224
  return deleteItem(item);
192
225
  },
@@ -194,4 +227,6 @@ export var ApiKeysDataList = function ApiKeysDataList() {
194
227
  }))));
195
228
  }));
196
229
  });
197
- };
230
+ };
231
+
232
+ exports.ApiKeysDataList = ApiKeysDataList;
@@ -1 +1 @@
1
- {"version":3,"sources":["ApiKeysDataList.tsx"],"names":["React","useCallback","useMemo","useState","orderBy","i18n","DataList","ScrollList","ListItem","ListItemText","ListItemTextSecondary","ListItemMeta","ListActions","DataListModalOverlayAction","DataListModalOverlay","ButtonIcon","ButtonSecondary","DeleteIcon","Cell","Grid","Select","useRouter","SearchUI","useSnackbar","useQuery","useMutation","useConfirmationDialog","GQL","ReactComponent","AddIcon","FilterIcon","deserializeSorters","t","ns","SORTERS","label","sorter","ApiKeysDataList","filter","setFilter","sort","setSort","history","location","showSnackbar","dataTestId","showConfirmation","filterAPIKey","description","name","toLowerCase","includes","sortKeys","list","key","value","LIST_API_KEYS","listResponse","data","listLoading","loading","DELETE_API_KEY","refetchQueries","query","deleteIt","deleteLoading","security","apiKeys","id","URLSearchParams","search","get","deleteItem","item","variables","error","deleteApiKey","message","push","groupsDataListModalOverlay","map","filteredData"],"mappings":"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","sourcesContent":["import React, { useCallback, useMemo, useState } from \"react\";\nimport orderBy from \"lodash/orderBy\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport {\n DataList,\n ScrollList,\n ListItem,\n ListItemText,\n ListItemTextSecondary,\n ListItemMeta,\n ListActions,\n DataListModalOverlayAction,\n DataListModalOverlay\n} from \"@webiny/ui/List\";\nimport { ButtonIcon, ButtonSecondary } from \"@webiny/ui/Button\";\nimport { DeleteIcon } from \"@webiny/ui/List/DataList/icons\";\nimport { Cell, Grid } from \"@webiny/ui/Grid\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { useRouter } from \"@webiny/react-router\";\nimport SearchUI from \"@webiny/app-admin/components/SearchUI\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { useQuery, useMutation } from \"@apollo/react-hooks\";\nimport { useConfirmationDialog } from \"@webiny/app-admin/hooks/useConfirmationDialog\";\nimport * as GQL from \"./graphql\";\nimport { ReactComponent as AddIcon } from \"@webiny/app-admin/assets/icons/add-18px.svg\";\nimport { ReactComponent as FilterIcon } from \"@webiny/app-admin/assets/icons/filter-24px.svg\";\nimport { deserializeSorters } from \"../utils\";\nimport { ApiKey } from \"~/types\";\n\nconst t = i18n.ns(\"app-security/admin/groups/data-list\");\n\nconst SORTERS = [\n {\n label: t`Newest to oldest`,\n sorter: \"createdOn_DESC\"\n },\n {\n label: t`Oldest to newest`,\n sorter: \"createdOn_ASC\"\n },\n {\n label: t`Name A-Z`,\n sorter: \"name_ASC\"\n },\n {\n label: t`Name Z-A`,\n sorter: \"name_DESC\"\n }\n];\nexport interface ApiKeysDataListProps {\n // TODO @ts-refactor delete and go up the tree and sort it out\n [key: string]: any;\n}\nexport const ApiKeysDataList: React.FC<ApiKeysDataListProps> = () => {\n const [filter, setFilter] = useState(\"\");\n const [sort, setSort] = useState<string>(SORTERS[0].sorter);\n const { history, location } = useRouter();\n const { showSnackbar } = useSnackbar();\n const { showConfirmation } = useConfirmationDialog({\n dataTestId: \"default-data-list.delete-dialog\"\n });\n\n const filterAPIKey = useCallback(\n ({ description, name }) => {\n return (\n (description && description.toLowerCase().includes(filter)) ||\n name.toLowerCase().includes(filter)\n );\n },\n [filter]\n );\n\n const sortKeys = useCallback(\n list => {\n if (!sort) {\n return list;\n }\n const [key, value] = deserializeSorters(sort);\n return orderBy(list, [key], [value]);\n },\n [sort]\n );\n\n const { data: listResponse, loading: listLoading } = useQuery(GQL.LIST_API_KEYS);\n\n const [deleteIt, { loading: deleteLoading }] = useMutation(GQL.DELETE_API_KEY, {\n refetchQueries: [{ query: GQL.LIST_API_KEYS }]\n });\n\n const data = listLoading && !listResponse ? [] : listResponse.security.apiKeys.data;\n const id = new URLSearchParams(location.search).get(\"id\");\n\n const deleteItem = useCallback(\n item => {\n showConfirmation(async () => {\n const { data } = await deleteIt({\n variables: item\n });\n\n const { error } = data.security.deleteApiKey;\n if (error) {\n return showSnackbar(error.message);\n }\n\n showSnackbar(t`Api key \"{id}\" deleted.`({ id: item.id }));\n\n if (id === item.id) {\n history.push(`/access-management/api-keys`);\n }\n });\n },\n [id]\n );\n\n const groupsDataListModalOverlay = useMemo(\n () => (\n <DataListModalOverlay>\n <Grid>\n <Cell span={12}>\n <Select value={sort} onChange={setSort} label={t`Sort by`}>\n {SORTERS.map(({ label, sorter }) => {\n return (\n <option key={label} value={sorter}>\n {label}\n </option>\n );\n })}\n </Select>\n </Cell>\n </Grid>\n </DataListModalOverlay>\n ),\n [sort]\n );\n\n const filteredData = filter === \"\" ? data : data.filter(filterAPIKey);\n const list = sortKeys(filteredData);\n\n return (\n <DataList\n title={t`API Keys`}\n actions={\n <ButtonSecondary\n data-testid=\"new-record-button\"\n onClick={() => history.push(\"/access-management/api-keys?new=true\")}\n >\n <ButtonIcon icon={<AddIcon />} /> {t`New API Key`}\n </ButtonSecondary>\n }\n data={list}\n loading={listLoading || deleteLoading}\n search={\n <SearchUI\n value={filter}\n onChange={setFilter}\n inputPlaceholder={t`Search API keys`}\n />\n }\n modalOverlay={groupsDataListModalOverlay}\n modalOverlayAction={\n <DataListModalOverlayAction\n icon={<FilterIcon />}\n data-testid={\"default-data-list.filter\"}\n />\n }\n >\n {({ data }: { data: ApiKey[] }) => (\n <ScrollList data-testid=\"default-data-list\">\n {data.map(item => (\n <ListItem key={item.id} selected={item.id === id}>\n <ListItemText\n onClick={() =>\n history.push(`/access-management/api-keys?id=${item.id}`)\n }\n >\n {item.name}\n <ListItemTextSecondary>{item.description}</ListItemTextSecondary>\n </ListItemText>\n\n <ListItemMeta>\n <ListActions>\n <DeleteIcon\n onClick={() => deleteItem(item)}\n data-testid={\"default-data-list.delete\"}\n />\n </ListActions>\n </ListItemMeta>\n </ListItem>\n ))}\n </ScrollList>\n )}\n </DataList>\n );\n};\n"]}
1
+ {"version":3,"names":["t","i18n","ns","SORTERS","label","sorter","ApiKeysDataList","useState","filter","setFilter","sort","setSort","useRouter","history","location","useSnackbar","showSnackbar","useConfirmationDialog","dataTestId","showConfirmation","filterAPIKey","useCallback","description","name","toLowerCase","includes","sortKeys","list","deserializeSorters","key","value","orderBy","useQuery","GQL","LIST_API_KEYS","listResponse","data","listLoading","loading","useMutation","DELETE_API_KEY","refetchQueries","query","deleteIt","deleteLoading","security","apiKeys","id","URLSearchParams","search","get","deleteItem","item","variables","error","deleteApiKey","message","push","groupsDataListModalOverlay","useMemo","map","filteredData"],"sources":["ApiKeysDataList.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useState } from \"react\";\nimport orderBy from \"lodash/orderBy\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport {\n DataList,\n ScrollList,\n ListItem,\n ListItemText,\n ListItemTextSecondary,\n ListItemMeta,\n ListActions,\n DataListModalOverlayAction,\n DataListModalOverlay\n} from \"@webiny/ui/List\";\nimport { ButtonIcon, ButtonSecondary } from \"@webiny/ui/Button\";\nimport { DeleteIcon } from \"@webiny/ui/List/DataList/icons\";\nimport { Cell, Grid } from \"@webiny/ui/Grid\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { useRouter } from \"@webiny/react-router\";\nimport SearchUI from \"@webiny/app-admin/components/SearchUI\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { useQuery, useMutation } from \"@apollo/react-hooks\";\nimport { useConfirmationDialog } from \"@webiny/app-admin/hooks/useConfirmationDialog\";\nimport * as GQL from \"./graphql\";\nimport { ReactComponent as AddIcon } from \"@webiny/app-admin/assets/icons/add-18px.svg\";\nimport { ReactComponent as FilterIcon } from \"@webiny/app-admin/assets/icons/filter-24px.svg\";\nimport { deserializeSorters } from \"../utils\";\nimport { ApiKey } from \"~/types\";\n\nconst t = i18n.ns(\"app-security/admin/groups/data-list\");\n\nconst SORTERS = [\n {\n label: t`Newest to oldest`,\n sorter: \"createdOn_DESC\"\n },\n {\n label: t`Oldest to newest`,\n sorter: \"createdOn_ASC\"\n },\n {\n label: t`Name A-Z`,\n sorter: \"name_ASC\"\n },\n {\n label: t`Name Z-A`,\n sorter: \"name_DESC\"\n }\n];\nexport interface ApiKeysDataListProps {\n // TODO @ts-refactor delete and go up the tree and sort it out\n [key: string]: any;\n}\nexport const ApiKeysDataList: React.FC<ApiKeysDataListProps> = () => {\n const [filter, setFilter] = useState(\"\");\n const [sort, setSort] = useState<string>(SORTERS[0].sorter);\n const { history, location } = useRouter();\n const { showSnackbar } = useSnackbar();\n const { showConfirmation } = useConfirmationDialog({\n dataTestId: \"default-data-list.delete-dialog\"\n });\n\n const filterAPIKey = useCallback(\n ({ description, name }) => {\n return (\n (description && description.toLowerCase().includes(filter)) ||\n name.toLowerCase().includes(filter)\n );\n },\n [filter]\n );\n\n const sortKeys = useCallback(\n list => {\n if (!sort) {\n return list;\n }\n const [key, value] = deserializeSorters(sort);\n return orderBy(list, [key], [value]);\n },\n [sort]\n );\n\n const { data: listResponse, loading: listLoading } = useQuery(GQL.LIST_API_KEYS);\n\n const [deleteIt, { loading: deleteLoading }] = useMutation(GQL.DELETE_API_KEY, {\n refetchQueries: [{ query: GQL.LIST_API_KEYS }]\n });\n\n const data = listLoading && !listResponse ? [] : listResponse.security.apiKeys.data;\n const id = new URLSearchParams(location.search).get(\"id\");\n\n const deleteItem = useCallback(\n item => {\n showConfirmation(async () => {\n const { data } = await deleteIt({\n variables: item\n });\n\n const { error } = data.security.deleteApiKey;\n if (error) {\n return showSnackbar(error.message);\n }\n\n showSnackbar(t`Api key \"{id}\" deleted.`({ id: item.id }));\n\n if (id === item.id) {\n history.push(`/access-management/api-keys`);\n }\n });\n },\n [id]\n );\n\n const groupsDataListModalOverlay = useMemo(\n () => (\n <DataListModalOverlay>\n <Grid>\n <Cell span={12}>\n <Select value={sort} onChange={setSort} label={t`Sort by`}>\n {SORTERS.map(({ label, sorter }) => {\n return (\n <option key={label} value={sorter}>\n {label}\n </option>\n );\n })}\n </Select>\n </Cell>\n </Grid>\n </DataListModalOverlay>\n ),\n [sort]\n );\n\n const filteredData = filter === \"\" ? data : data.filter(filterAPIKey);\n const list = sortKeys(filteredData);\n\n return (\n <DataList\n title={t`API Keys`}\n actions={\n <ButtonSecondary\n data-testid=\"new-record-button\"\n onClick={() => history.push(\"/access-management/api-keys?new=true\")}\n >\n <ButtonIcon icon={<AddIcon />} /> {t`New API Key`}\n </ButtonSecondary>\n }\n data={list}\n loading={listLoading || deleteLoading}\n search={\n <SearchUI\n value={filter}\n onChange={setFilter}\n inputPlaceholder={t`Search API keys`}\n />\n }\n modalOverlay={groupsDataListModalOverlay}\n modalOverlayAction={\n <DataListModalOverlayAction\n icon={<FilterIcon />}\n data-testid={\"default-data-list.filter\"}\n />\n }\n >\n {({ data }: { data: ApiKey[] }) => (\n <ScrollList data-testid=\"default-data-list\">\n {data.map(item => (\n <ListItem key={item.id} selected={item.id === id}>\n <ListItemText\n onClick={() =>\n history.push(`/access-management/api-keys?id=${item.id}`)\n }\n >\n {item.name}\n <ListItemTextSecondary>{item.description}</ListItemTextSecondary>\n </ListItemText>\n\n <ListItemMeta>\n <ListActions>\n <DeleteIcon\n onClick={() => deleteItem(item)}\n data-testid={\"default-data-list.delete\"}\n />\n </ListActions>\n </ListItemMeta>\n </ListItem>\n ))}\n </ScrollList>\n )}\n </DataList>\n );\n};\n"],"mappings":"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"}
@@ -1,11 +1,26 @@
1
- import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.UPDATE_API_KEY = exports.READ_API_KEY = exports.LIST_API_KEYS = exports.DELETE_API_KEY = exports.CREATE_API_KEY = void 0;
9
+
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+
12
+ var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
2
13
 
3
14
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
4
15
 
5
- import gql from "graphql-tag";
6
16
  var fields = "\n id\n name\n description\n token\n permissions\n createdOn\n";
7
- export var LIST_API_KEYS = gql(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n query ListApiKeys {\n security {\n apiKeys: listApiKeys {\n data {\n ", "\n }\n }\n }\n }\n"])), fields);
8
- export var READ_API_KEY = gql(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n query GetApiKey($id: ID!) {\n security {\n apiKey: getApiKey(id: $id){\n data {\n ", "\n }\n error {\n code\n message\n }\n }\n }\n }\n"])), fields);
9
- export var CREATE_API_KEY = gql(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n mutation CreateApiKey($data: SecurityApiKeyInput!){\n security {\n apiKey: createApiKey(data: $data) {\n data {\n ", "\n }\n error {\n code\n message\n data\n }\n }\n }\n }\n"])), fields);
10
- export var UPDATE_API_KEY = gql(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n mutation UpdateApiKey($id: ID!, $data: SecurityApiKeyInput!){\n security {\n apiKey: updateApiKey(id: $id, data: $data) {\n data {\n ", "\n }\n error {\n code\n message\n data\n }\n }\n }\n }\n"])), fields);
11
- export var DELETE_API_KEY = gql(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n mutation DeleteApiKey($id: ID!) {\n security {\n deleteApiKey(id: $id) {\n data\n error {\n code\n message\n }\n }\n }\n }\n"])));
17
+ var LIST_API_KEYS = (0, _graphqlTag.default)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n query ListApiKeys {\n security {\n apiKeys: listApiKeys {\n data {\n ", "\n }\n }\n }\n }\n"])), fields);
18
+ exports.LIST_API_KEYS = LIST_API_KEYS;
19
+ var READ_API_KEY = (0, _graphqlTag.default)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n query GetApiKey($id: ID!) {\n security {\n apiKey: getApiKey(id: $id){\n data {\n ", "\n }\n error {\n code\n message\n }\n }\n }\n }\n"])), fields);
20
+ exports.READ_API_KEY = READ_API_KEY;
21
+ var CREATE_API_KEY = (0, _graphqlTag.default)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n mutation CreateApiKey($data: SecurityApiKeyInput!){\n security {\n apiKey: createApiKey(data: $data) {\n data {\n ", "\n }\n error {\n code\n message\n data\n }\n }\n }\n }\n"])), fields);
22
+ exports.CREATE_API_KEY = CREATE_API_KEY;
23
+ var UPDATE_API_KEY = (0, _graphqlTag.default)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n mutation UpdateApiKey($id: ID!, $data: SecurityApiKeyInput!){\n security {\n apiKey: updateApiKey(id: $id, data: $data) {\n data {\n ", "\n }\n error {\n code\n message\n data\n }\n }\n }\n }\n"])), fields);
24
+ exports.UPDATE_API_KEY = UPDATE_API_KEY;
25
+ var DELETE_API_KEY = (0, _graphqlTag.default)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n mutation DeleteApiKey($id: ID!) {\n security {\n deleteApiKey(id: $id) {\n data\n error {\n code\n message\n }\n }\n }\n }\n"])));
26
+ exports.DELETE_API_KEY = DELETE_API_KEY;
@@ -1 +1 @@
1
- {"version":3,"sources":["graphql.ts"],"names":["gql","fields","LIST_API_KEYS","READ_API_KEY","CREATE_API_KEY","UPDATE_API_KEY","DELETE_API_KEY"],"mappings":";;;;AAAA,OAAOA,GAAP,MAAgB,aAAhB;AAEA,IAAMC,MAAM,qFAAZ;AASA,OAAO,IAAMC,aAAa,GAAGF,GAAH,8PAKLC,MALK,CAAnB;AAYP,OAAO,IAAME,YAAY,GAAGH,GAAH,iXAKHC,MALG,CAAlB;AAgBP,OAAO,IAAMG,cAAc,GAAGJ,GAAH,2aAKLC,MALK,CAApB;AAiBP,OAAO,IAAMI,cAAc,GAAGL,GAAH,8bAKLC,MALK,CAApB;AAiBP,OAAO,IAAMK,cAAc,GAAGN,GAAH,mUAApB","sourcesContent":["import gql from \"graphql-tag\";\n\nconst fields = `\n id\n name\n description\n token\n permissions\n createdOn\n`;\n\nexport const LIST_API_KEYS = gql`\n query ListApiKeys {\n security {\n apiKeys: listApiKeys {\n data {\n ${fields}\n }\n }\n }\n }\n`;\n\nexport const READ_API_KEY = gql`\n query GetApiKey($id: ID!) {\n security {\n apiKey: getApiKey(id: $id){\n data {\n ${fields}\n }\n error {\n code\n message\n }\n }\n }\n }\n`;\n\nexport const CREATE_API_KEY = gql`\n mutation CreateApiKey($data: SecurityApiKeyInput!){\n security {\n apiKey: createApiKey(data: $data) {\n data {\n ${fields}\n }\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\n\nexport const UPDATE_API_KEY = gql`\n mutation UpdateApiKey($id: ID!, $data: SecurityApiKeyInput!){\n security {\n apiKey: updateApiKey(id: $id, data: $data) {\n data {\n ${fields}\n }\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\n\nexport const DELETE_API_KEY = gql`\n mutation DeleteApiKey($id: ID!) {\n security {\n deleteApiKey(id: $id) {\n data\n error {\n code\n message\n }\n }\n }\n }\n`;\n"]}
1
+ {"version":3,"names":["fields","LIST_API_KEYS","gql","READ_API_KEY","CREATE_API_KEY","UPDATE_API_KEY","DELETE_API_KEY"],"sources":["graphql.ts"],"sourcesContent":["import gql from \"graphql-tag\";\n\nconst fields = `\n id\n name\n description\n token\n permissions\n createdOn\n`;\n\nexport const LIST_API_KEYS = gql`\n query ListApiKeys {\n security {\n apiKeys: listApiKeys {\n data {\n ${fields}\n }\n }\n }\n }\n`;\n\nexport const READ_API_KEY = gql`\n query GetApiKey($id: ID!) {\n security {\n apiKey: getApiKey(id: $id){\n data {\n ${fields}\n }\n error {\n code\n message\n }\n }\n }\n }\n`;\n\nexport const CREATE_API_KEY = gql`\n mutation CreateApiKey($data: SecurityApiKeyInput!){\n security {\n apiKey: createApiKey(data: $data) {\n data {\n ${fields}\n }\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\n\nexport const UPDATE_API_KEY = gql`\n mutation UpdateApiKey($id: ID!, $data: SecurityApiKeyInput!){\n security {\n apiKey: updateApiKey(id: $id, data: $data) {\n data {\n ${fields}\n }\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\n\nexport const DELETE_API_KEY = gql`\n mutation DeleteApiKey($id: ID!) {\n security {\n deleteApiKey(id: $id) {\n data\n error {\n code\n message\n }\n }\n }\n }\n`;\n"],"mappings":";;;;;;;;;;;AAAA;;;;AAEA,IAAMA,MAAM,qFAAZ;AASO,IAAMC,aAAa,OAAGC,mBAAH,6QAKLF,MALK,CAAnB;;AAYA,IAAMG,YAAY,OAAGD,mBAAH,gYAKHF,MALG,CAAlB;;AAgBA,IAAMI,cAAc,OAAGF,mBAAH,0bAKLF,MALK,CAApB;;AAiBA,IAAMK,cAAc,OAAGH,mBAAH,6cAKLF,MALK,CAApB;;AAiBA,IAAMM,cAAc,OAAGJ,mBAAH,kVAApB"}
@@ -1 +1,18 @@
1
- export * from "./ApiKeys";
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _ApiKeys = require("./ApiKeys");
8
+
9
+ Object.keys(_ApiKeys).forEach(function (key) {
10
+ if (key === "default" || key === "__esModule") return;
11
+ if (key in exports && exports[key] === _ApiKeys[key]) return;
12
+ Object.defineProperty(exports, key, {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _ApiKeys[key];
16
+ }
17
+ });
18
+ });
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":"AAAA","sourcesContent":["export * from \"./ApiKeys\";\n"]}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./ApiKeys\";\n"],"mappings":";;;;;;AAAA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
@@ -1,5 +1,18 @@
1
- import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
- import _pick from "lodash/pick";
3
- export var pickDataForAPI = function pickDataForAPI(data) {
4
- return _objectSpread({}, _pick(data, ["name", "description", "permissions"]));
5
- };
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.pickDataForAPI = void 0;
9
+
10
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
+
12
+ var _pick2 = _interopRequireDefault(require("lodash/pick"));
13
+
14
+ var pickDataForAPI = function pickDataForAPI(data) {
15
+ return (0, _objectSpread2.default)({}, (0, _pick2.default)(data, ["name", "description", "permissions"]));
16
+ };
17
+
18
+ exports.pickDataForAPI = pickDataForAPI;
@@ -1 +1 @@
1
- {"version":3,"sources":["utils.ts"],"names":["pickDataForAPI","data"],"mappings":";;AAGA,OAAO,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,CAC1BC,IAD0B;AAAA,2BAGvB,MAAKA,IAAL,EAAW,CAAC,MAAD,EAAS,aAAT,EAAwB,aAAxB,CAAX,CAHuB;AAAA,CAAvB","sourcesContent":["import { pick } from \"lodash\";\nimport { ApiKey } from \"~/types\";\n\nexport const pickDataForAPI = (\n data: ApiKey\n): Pick<ApiKey, \"name\" | \"description\" | \"permissions\"> => ({\n ...pick(data, [\"name\", \"description\", \"permissions\"])\n});\n"]}
1
+ {"version":3,"names":["pickDataForAPI","data"],"sources":["utils.ts"],"sourcesContent":["import { pick } from \"lodash\";\nimport { ApiKey } from \"~/types\";\n\nexport const pickDataForAPI = (\n data: ApiKey\n): Pick<ApiKey, \"name\" | \"description\" | \"permissions\"> => ({\n ...pick(data, [\"name\", \"description\", \"permissions\"])\n});\n"],"mappings":";;;;;;;;;;;;;AAGO,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,CAC1BC,IAD0B;EAAA,uCAGvB,oBAAKA,IAAL,EAAW,CAAC,MAAD,EAAS,aAAT,EAAwB,aAAxB,CAAX,CAHuB;AAAA,CAAvB"}
@@ -1,11 +1,26 @@
1
- import React from "react";
2
- import { SplitView, LeftPanel, RightPanel } from "@webiny/app-admin/components/SplitView";
3
- import { GroupsDataList } from "./GroupsDataList";
4
- import { GroupsForm } from "./GroupsForm";
5
- export var Groups = function Groups(_ref) {
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.Groups = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _SplitView = require("@webiny/app-admin/components/SplitView");
13
+
14
+ var _GroupsDataList = require("./GroupsDataList");
15
+
16
+ var _GroupsForm = require("./GroupsForm");
17
+
18
+ var Groups = function Groups(_ref) {
6
19
  var _ref$formProps = _ref.formProps,
7
20
  formProps = _ref$formProps === void 0 ? {} : _ref$formProps,
8
21
  _ref$listProps = _ref.listProps,
9
22
  listProps = _ref$listProps === void 0 ? {} : _ref$listProps;
10
- return /*#__PURE__*/React.createElement(SplitView, null, /*#__PURE__*/React.createElement(LeftPanel, null, /*#__PURE__*/React.createElement(GroupsDataList, listProps)), /*#__PURE__*/React.createElement(RightPanel, null, /*#__PURE__*/React.createElement(GroupsForm, formProps)));
11
- };
23
+ return /*#__PURE__*/_react.default.createElement(_SplitView.SplitView, null, /*#__PURE__*/_react.default.createElement(_SplitView.LeftPanel, null, /*#__PURE__*/_react.default.createElement(_GroupsDataList.GroupsDataList, listProps)), /*#__PURE__*/_react.default.createElement(_SplitView.RightPanel, null, /*#__PURE__*/_react.default.createElement(_GroupsForm.GroupsForm, formProps)));
24
+ };
25
+
26
+ exports.Groups = Groups;
@@ -1 +1 @@
1
- {"version":3,"sources":["Groups.tsx"],"names":["React","SplitView","LeftPanel","RightPanel","GroupsDataList","GroupsForm","Groups","formProps","listProps"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,SAAT,EAAoBC,SAApB,EAA+BC,UAA/B,QAAiD,wCAAjD;AACA,SAASC,cAAT;AACA,SAASC,UAAT;AAMA,OAAO,IAAMC,MAA6B,GAAG,SAAhCA,MAAgC,OAAwC;AAAA,4BAArCC,SAAqC;AAAA,MAArCA,SAAqC,+BAAzB,EAAyB;AAAA,4BAArBC,SAAqB;AAAA,MAArBA,SAAqB,+BAAT,EAAS;AACjF,sBACI,oBAAC,SAAD,qBACI,oBAAC,SAAD,qBACI,oBAAC,cAAD,EAAoBA,SAApB,CADJ,CADJ,eAII,oBAAC,UAAD,qBACI,oBAAC,UAAD,EAAgBD,SAAhB,CADJ,CAJJ,CADJ;AAUH,CAXM","sourcesContent":["import React from \"react\";\nimport { SplitView, LeftPanel, RightPanel } from \"@webiny/app-admin/components/SplitView\";\nimport { GroupsDataList, GroupsDataListProps } from \"./GroupsDataList\";\nimport { GroupsForm, GroupsFormProps } from \"./GroupsForm\";\n\nexport interface GroupsProps {\n listProps?: GroupsDataListProps;\n formProps?: GroupsFormProps;\n}\nexport const Groups: React.FC<GroupsProps> = ({ formProps = {}, listProps = {} }) => {\n return (\n <SplitView>\n <LeftPanel>\n <GroupsDataList {...listProps} />\n </LeftPanel>\n <RightPanel>\n <GroupsForm {...formProps} />\n </RightPanel>\n </SplitView>\n );\n};\n"]}
1
+ {"version":3,"names":["Groups","formProps","listProps"],"sources":["Groups.tsx"],"sourcesContent":["import React from \"react\";\nimport { SplitView, LeftPanel, RightPanel } from \"@webiny/app-admin/components/SplitView\";\nimport { GroupsDataList, GroupsDataListProps } from \"./GroupsDataList\";\nimport { GroupsForm, GroupsFormProps } from \"./GroupsForm\";\n\nexport interface GroupsProps {\n listProps?: GroupsDataListProps;\n formProps?: GroupsFormProps;\n}\nexport const Groups: React.FC<GroupsProps> = ({ formProps = {}, listProps = {} }) => {\n return (\n <SplitView>\n <LeftPanel>\n <GroupsDataList {...listProps} />\n </LeftPanel>\n <RightPanel>\n <GroupsForm {...formProps} />\n </RightPanel>\n </SplitView>\n );\n};\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAMO,IAAMA,MAA6B,GAAG,SAAhCA,MAAgC,OAAwC;EAAA,0BAArCC,SAAqC;EAAA,IAArCA,SAAqC,+BAAzB,EAAyB;EAAA,0BAArBC,SAAqB;EAAA,IAArBA,SAAqB,+BAAT,EAAS;EACjF,oBACI,6BAAC,oBAAD,qBACI,6BAAC,oBAAD,qBACI,6BAAC,8BAAD,EAAoBA,SAApB,CADJ,CADJ,eAII,6BAAC,qBAAD,qBACI,6BAAC,sBAAD,EAAgBD,SAAhB,CADJ,CAJJ,CADJ;AAUH,CAXM"}