@webiny/app-security-access-management 5.39.0-beta.0 → 5.39.0-beta.2
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/README.md +5 -3
- package/components/GroupAutocomplete/index.d.ts +2 -2
- package/components/GroupAutocomplete/index.js.map +1 -1
- package/components/GroupsMultiAutocomplete/index.d.ts +2 -2
- package/components/GroupsMultiAutocomplete/index.js.map +1 -1
- package/components/NotAuthorizedError/NotAuthorizedError.d.ts +2 -2
- package/components/NotAuthorizedError/NotAuthorizedError.js.map +1 -1
- package/components/TeamAutocomplete/index.d.ts +2 -2
- package/components/TeamAutocomplete/index.js.map +1 -1
- package/index.js +0 -1
- package/index.js.map +1 -1
- package/package.json +13 -13
- package/plugins/installation.js +7 -23
- package/plugins/installation.js.map +1 -1
- package/plugins/permissionRenderer/SecurityPermissions.d.ts +2 -2
- package/plugins/permissionRenderer/SecurityPermissions.js.map +1 -1
- package/ui/views/ApiKeys/ApiKeyForm.d.ts +2 -2
- package/ui/views/ApiKeys/ApiKeyForm.js +37 -59
- package/ui/views/ApiKeys/ApiKeyForm.js.map +1 -1
- package/ui/views/ApiKeys/ApiKeys.d.ts +2 -2
- package/ui/views/ApiKeys/ApiKeys.js.map +1 -1
- package/ui/views/ApiKeys/ApiKeysDataList.d.ts +2 -2
- package/ui/views/ApiKeys/ApiKeysDataList.js +21 -38
- package/ui/views/ApiKeys/ApiKeysDataList.js.map +1 -1
- package/ui/views/Groups/Groups.d.ts +2 -2
- package/ui/views/Groups/Groups.js.map +1 -1
- package/ui/views/Groups/GroupsDataList.d.ts +2 -2
- package/ui/views/Groups/GroupsDataList.js +21 -38
- package/ui/views/Groups/GroupsDataList.js.map +1 -1
- package/ui/views/Groups/GroupsForm.d.ts +2 -2
- package/ui/views/Groups/GroupsForm.js +38 -58
- package/ui/views/Groups/GroupsForm.js.map +1 -1
- package/ui/views/Teams/Teams.d.ts +2 -2
- package/ui/views/Teams/Teams.js.map +1 -1
- package/ui/views/Teams/TeamsDataList.d.ts +2 -2
- package/ui/views/Teams/TeamsDataList.js +21 -38
- package/ui/views/Teams/TeamsDataList.js.map +1 -1
- package/ui/views/Teams/TeamsForm.d.ts +2 -2
- package/ui/views/Teams/TeamsForm.js +28 -45
- package/ui/views/Teams/TeamsForm.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactHooks","_get","_interopRequireDefault","_reactRouter","_i18n","_form","_Grid","_Input","_Button","_Progress","_FormElementMessage","_Permissions","_validation","_SimpleForm","_Typography","_useSnackbar2","_utils","GQL","_Snackbar","_isEmpty","_EmptyView","_add18px","_content_copy","_styled","_Tooltip","_featureFlags","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","t","i18n","ns","ButtonWrapper","styled","target","label","display","justifyContent","PermissionsTitleCell","Cell","ApiKeyForm","_useRouter","useRouter","location","history","_useSnackbar","useSnackbar","showSnackbar","newEntry","URLSearchParams","search","get","id","getQuery","useQuery","READ_API_KEY","variables","skip","onCompleted","data","error","security","apiKey","push","message","_useMutation","useMutation","CREATE_API_KEY","refetchQueries","query","LIST_API_KEYS","_useMutation2","_slicedToArray2","default","create","createMutation","_useMutation3","UPDATE_API_KEY","_useMutation4","update","updateMutation","loading","find","item","onSubmit","useCallback","_ref","_asyncToGenerator2","_regeneratorRuntime2","mark","_callee","isUpdate","_ref2","_ref3","operation","args","response","wrap","_callee$","_context","prev","next","permissions","length","_taggedTemplateLiteral2","timeout","dismissesOnAction","action","createElement","SnackbarAction","abrupt","createdOn","pickDataForAPI","sent","concat","stop","_x","apply","arguments","showEmptyView","isEmpty","title","ButtonDefault","onClick","ButtonIcon","icon","ReactComponent","Form","_ref4","form","Bind","SimpleForm","CircularProgress","SimpleFormHeader","name","SimpleFormContent","Grid","span","validators","validation","Input","rows","Typography","use","token","style","background","padding","paddingLeft","lineHeight","verticalAlign","position","right","CopyButton","value","onCopy","FormElementMessage","featureFlags","copyPermissionsButton","Tooltip","content","placement","IconButton","navigator","clipboard","writeText","JSON","stringify","defaultValue","bind","Permissions","Object","assign","SimpleFormFooter","ButtonPrimary","ev","submit","exports"],"sources":["ApiKeyForm.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { useMutation, useQuery } from \"@apollo/react-hooks\";\nimport get from \"lodash/get\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { Form } from \"@webiny/form\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Input } from \"@webiny/ui/Input\";\nimport {\n ButtonDefault,\n ButtonIcon,\n ButtonPrimary,\n CopyButton,\n IconButton\n} from \"@webiny/ui/Button\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { FormElementMessage } from \"@webiny/ui/FormElementMessage\";\nimport { Permissions } from \"@webiny/app-admin/components/Permissions\";\nimport { validation } from \"@webiny/validation\";\nimport {\n SimpleForm,\n SimpleFormFooter,\n SimpleFormContent,\n SimpleFormHeader\n} from \"@webiny/app-admin/components/SimpleForm\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { pickDataForAPI } from \"./utils\";\nimport * as GQL from \"./graphql\";\nimport { SnackbarAction } from \"@webiny/ui/Snackbar\";\nimport isEmpty from \"lodash/isEmpty\";\nimport EmptyView from \"@webiny/app-admin/components/EmptyView\";\nimport { ReactComponent as AddIcon } from \"@webiny/app-admin/assets/icons/add-18px.svg\";\nimport { ReactComponent as CopyIcon } from \"@material-design-icons/svg/outlined/content_copy.svg\";\nimport styled from \"@emotion/styled\";\nimport { ApiKey } from \"~/types\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { featureFlags } from \"@webiny/feature-flags\";\n\nconst t = i18n.ns(\"app-security-admin-users/admin/api-keys/form\");\n\nconst ButtonWrapper = styled(\"div\")({\n display: \"flex\",\n justifyContent: \"space-between\"\n});\n\nconst PermissionsTitleCell = styled(Cell)`\n display: flex;\n align-items: center;\n`;\n\nexport interface ApiKeyFormProps {\n // TODO @ts-refactor delete and go up the tree and sort it out\n [key: string]: any;\n}\n\nexport const ApiKeyForm: React.FC<ApiKeyFormProps> = () => {\n const { location, history } = useRouter();\n const { showSnackbar } = useSnackbar();\n const newEntry = new URLSearchParams(location.search).get(\"new\") === \"true\";\n const id = new URLSearchParams(location.search).get(\"id\");\n\n const getQuery = useQuery(GQL.READ_API_KEY, {\n variables: { id },\n skip: !id,\n onCompleted: data => {\n if (!data) {\n return;\n }\n\n const { error } = data.security.apiKey;\n if (error) {\n history.push(\"/access-management/api-keys\");\n showSnackbar(error.message);\n }\n }\n });\n\n const [create, createMutation] = useMutation(GQL.CREATE_API_KEY, {\n refetchQueries: [{ query: GQL.LIST_API_KEYS }]\n });\n\n const [update, updateMutation] = useMutation(GQL.UPDATE_API_KEY, {\n refetchQueries: [{ query: GQL.LIST_API_KEYS }]\n });\n\n const loading = [getQuery, createMutation, updateMutation].find(item => item.loading);\n\n const onSubmit = useCallback(\n async data => {\n if (!data.permissions || !data.permissions.length) {\n showSnackbar(t`You must configure permissions before saving!`, {\n timeout: 60000,\n dismissesOnAction: true,\n action: <SnackbarAction label={\"OK\"} />\n });\n return;\n }\n\n const isUpdate = data.createdOn;\n const [operation, args] = isUpdate\n ? [update, { variables: { id: data.id, data: pickDataForAPI(data) } }]\n : [create, { variables: { data: pickDataForAPI(data) } }];\n\n const response = await operation(args);\n\n const { error } = response.data.security.apiKey;\n if (error) {\n return showSnackbar(error.message);\n }\n\n const { id } = response.data.security.apiKey.data;\n\n !isUpdate && history.push(`/access-management/api-keys?id=${id}`);\n showSnackbar(t`API key saved successfully.`);\n },\n [id]\n );\n\n const data: ApiKey[] = get(getQuery, \"data.security.apiKey.data\", {});\n\n const showEmptyView = !newEntry && !loading && isEmpty(data);\n // Render \"No content\" selected view.\n if (showEmptyView) {\n return (\n <EmptyView\n title={t`Click on the left side list to display API key details or create a...`}\n action={\n <ButtonDefault\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 </ButtonDefault>\n }\n />\n );\n }\n\n return (\n <Form data={data} onSubmit={onSubmit}>\n {({ data, form, Bind }) => {\n return (\n <SimpleForm>\n {loading && <CircularProgress />}\n <SimpleFormHeader title={data.name ? data.name : \"Untitled\"} />\n <SimpleFormContent>\n <Grid>\n <Cell span={12}>\n <Bind name=\"name\" validators={validation.create(\"required\")}>\n <Input\n label={t`Name`}\n data-testid=\"sam.key.new.form.name\"\n />\n </Bind>\n </Cell>\n </Grid>\n <Grid>\n <Cell span={12}>\n <Bind\n name=\"description\"\n validators={validation.create(\"required\")}\n >\n <Input\n label={t`Description`}\n rows={4}\n data-testid=\"sam.key.new.form.description\"\n />\n </Bind>\n </Cell>\n </Grid>\n <Grid>\n <Cell span={12}>\n <div>\n <Typography use={\"subtitle1\"}>{t`Token`}</Typography>\n {data.token ? (\n <div\n style={{\n background: \"var(--mdc-theme-background)\",\n padding: \"8px\",\n paddingLeft: \"16px\"\n }}\n >\n <span\n style={{\n lineHeight: \"48px\",\n verticalAlign: \"middle\"\n }}\n >\n {data.token}\n </span>\n <span\n style={{ position: \"absolute\", right: \"32px\" }}\n >\n <CopyButton\n value={data.token}\n onCopy={() =>\n showSnackbar(\"Successfully copied!\")\n }\n />\n </span>\n </div>\n ) : (\n <FormElementMessage>\n Your token will be shown once you submit the form.\n </FormElementMessage>\n )}\n </div>\n </Cell>\n </Grid>\n <Grid>\n <Cell span={12}>\n <PermissionsTitleCell span={12}>\n <Typography use={\"subtitle1\"}>{t`Permissions`}</Typography>\n {featureFlags.copyPermissionsButton && (\n <Tooltip content=\"Copy as JSON\" placement={\"top\"}>\n <IconButton\n icon={<CopyIcon />}\n onClick={() => {\n navigator.clipboard.writeText(\n JSON.stringify(\n data.permissions,\n null,\n 2\n )\n );\n showSnackbar(\n \"JSON data copied to clipboard.\"\n );\n }}\n />\n </Tooltip>\n )}\n </PermissionsTitleCell>\n </Cell>\n <Cell span={12}>\n <Bind name={\"permissions\"} defaultValue={[]}>\n {bind => <Permissions id={data.id || \"new\"} {...bind} />}\n </Bind>\n </Cell>\n </Grid>\n </SimpleFormContent>\n <SimpleFormFooter>\n <ButtonWrapper>\n <ButtonDefault\n onClick={() => history.push(\"/access-management/api-keys\")}\n data-testid=\"sam.key.new.form.button.cancel\"\n >{t`Cancel`}</ButtonDefault>\n <ButtonPrimary\n onClick={ev => {\n form.submit(ev);\n }}\n data-testid=\"sam.key.new.form.button.save\"\n >{t`Save API key`}</ButtonPrimary>\n </ButtonWrapper>\n </SimpleFormFooter>\n </SimpleForm>\n );\n }}\n </Form>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactHooks","_get","_interopRequireDefault","_reactRouter","_i18n","_form","_Grid","_Input","_Button","_Progress","_FormElementMessage","_Permissions","_validation","_SimpleForm","_Typography","_useSnackbar2","_utils","GQL","_Snackbar","_isEmpty","_EmptyView","_add18px","_content_copy","_styled","_Tooltip","_featureFlags","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","t","i18n","ns","ButtonWrapper","styled","target","label","display","justifyContent","PermissionsTitleCell","Cell","ApiKeyForm","_useRouter","useRouter","location","history","_useSnackbar","useSnackbar","showSnackbar","newEntry","URLSearchParams","search","get","id","getQuery","useQuery","READ_API_KEY","variables","skip","onCompleted","data","error","security","apiKey","push","message","_useMutation","useMutation","CREATE_API_KEY","refetchQueries","query","LIST_API_KEYS","_useMutation2","_slicedToArray2","default","create","createMutation","_useMutation3","UPDATE_API_KEY","_useMutation4","update","updateMutation","loading","find","item","onSubmit","useCallback","permissions","length","_taggedTemplateLiteral2","timeout","dismissesOnAction","action","createElement","SnackbarAction","isUpdate","createdOn","_ref","pickDataForAPI","_ref2","operation","args","response","concat","showEmptyView","isEmpty","title","ButtonDefault","onClick","ButtonIcon","icon","ReactComponent","Form","_ref3","form","Bind","SimpleForm","CircularProgress","SimpleFormHeader","name","SimpleFormContent","Grid","span","validators","validation","Input","rows","Typography","use","token","style","background","padding","paddingLeft","lineHeight","verticalAlign","position","right","CopyButton","value","onCopy","FormElementMessage","featureFlags","copyPermissionsButton","Tooltip","content","placement","IconButton","navigator","clipboard","writeText","JSON","stringify","defaultValue","bind","Permissions","Object","assign","SimpleFormFooter","ButtonPrimary","ev","submit","exports"],"sources":["ApiKeyForm.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { useMutation, useQuery } from \"@apollo/react-hooks\";\nimport get from \"lodash/get\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { Form } from \"@webiny/form\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Input } from \"@webiny/ui/Input\";\nimport {\n ButtonDefault,\n ButtonIcon,\n ButtonPrimary,\n CopyButton,\n IconButton\n} from \"@webiny/ui/Button\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { FormElementMessage } from \"@webiny/ui/FormElementMessage\";\nimport { Permissions } from \"@webiny/app-admin/components/Permissions\";\nimport { validation } from \"@webiny/validation\";\nimport {\n SimpleForm,\n SimpleFormFooter,\n SimpleFormContent,\n SimpleFormHeader\n} from \"@webiny/app-admin/components/SimpleForm\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { pickDataForAPI } from \"./utils\";\nimport * as GQL from \"./graphql\";\nimport { SnackbarAction } from \"@webiny/ui/Snackbar\";\nimport isEmpty from \"lodash/isEmpty\";\nimport EmptyView from \"@webiny/app-admin/components/EmptyView\";\nimport { ReactComponent as AddIcon } from \"@webiny/app-admin/assets/icons/add-18px.svg\";\nimport { ReactComponent as CopyIcon } from \"@material-design-icons/svg/outlined/content_copy.svg\";\nimport styled from \"@emotion/styled\";\nimport { ApiKey } from \"~/types\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { featureFlags } from \"@webiny/feature-flags\";\n\nconst t = i18n.ns(\"app-security-admin-users/admin/api-keys/form\");\n\nconst ButtonWrapper = styled(\"div\")({\n display: \"flex\",\n justifyContent: \"space-between\"\n});\n\nconst PermissionsTitleCell = styled(Cell)`\n display: flex;\n align-items: center;\n`;\n\nexport interface ApiKeyFormProps {\n // TODO @ts-refactor delete and go up the tree and sort it out\n [key: string]: any;\n}\n\nexport const ApiKeyForm = () => {\n const { location, history } = useRouter();\n const { showSnackbar } = useSnackbar();\n const newEntry = new URLSearchParams(location.search).get(\"new\") === \"true\";\n const id = new URLSearchParams(location.search).get(\"id\");\n\n const getQuery = useQuery(GQL.READ_API_KEY, {\n variables: { id },\n skip: !id,\n onCompleted: data => {\n if (!data) {\n return;\n }\n\n const { error } = data.security.apiKey;\n if (error) {\n history.push(\"/access-management/api-keys\");\n showSnackbar(error.message);\n }\n }\n });\n\n const [create, createMutation] = useMutation(GQL.CREATE_API_KEY, {\n refetchQueries: [{ query: GQL.LIST_API_KEYS }]\n });\n\n const [update, updateMutation] = useMutation(GQL.UPDATE_API_KEY, {\n refetchQueries: [{ query: GQL.LIST_API_KEYS }]\n });\n\n const loading = [getQuery, createMutation, updateMutation].find(item => item.loading);\n\n const onSubmit = useCallback(\n async data => {\n if (!data.permissions || !data.permissions.length) {\n showSnackbar(t`You must configure permissions before saving!`, {\n timeout: 60000,\n dismissesOnAction: true,\n action: <SnackbarAction label={\"OK\"} />\n });\n return;\n }\n\n const isUpdate = data.createdOn;\n const [operation, args] = isUpdate\n ? [update, { variables: { id: data.id, data: pickDataForAPI(data) } }]\n : [create, { variables: { data: pickDataForAPI(data) } }];\n\n const response = await operation(args);\n\n const { error } = response.data.security.apiKey;\n if (error) {\n return showSnackbar(error.message);\n }\n\n const { id } = response.data.security.apiKey.data;\n\n !isUpdate && history.push(`/access-management/api-keys?id=${id}`);\n showSnackbar(t`API key saved successfully.`);\n },\n [id]\n );\n\n const data: ApiKey[] = get(getQuery, \"data.security.apiKey.data\", {});\n\n const showEmptyView = !newEntry && !loading && isEmpty(data);\n // Render \"No content\" selected view.\n if (showEmptyView) {\n return (\n <EmptyView\n title={t`Click on the left side list to display API key details or create a...`}\n action={\n <ButtonDefault\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 </ButtonDefault>\n }\n />\n );\n }\n\n return (\n <Form data={data} onSubmit={onSubmit}>\n {({ data, form, Bind }) => {\n return (\n <SimpleForm>\n {loading && <CircularProgress />}\n <SimpleFormHeader title={data.name ? data.name : \"Untitled\"} />\n <SimpleFormContent>\n <Grid>\n <Cell span={12}>\n <Bind name=\"name\" validators={validation.create(\"required\")}>\n <Input\n label={t`Name`}\n data-testid=\"sam.key.new.form.name\"\n />\n </Bind>\n </Cell>\n </Grid>\n <Grid>\n <Cell span={12}>\n <Bind\n name=\"description\"\n validators={validation.create(\"required\")}\n >\n <Input\n label={t`Description`}\n rows={4}\n data-testid=\"sam.key.new.form.description\"\n />\n </Bind>\n </Cell>\n </Grid>\n <Grid>\n <Cell span={12}>\n <div>\n <Typography use={\"subtitle1\"}>{t`Token`}</Typography>\n {data.token ? (\n <div\n style={{\n background: \"var(--mdc-theme-background)\",\n padding: \"8px\",\n paddingLeft: \"16px\"\n }}\n >\n <span\n style={{\n lineHeight: \"48px\",\n verticalAlign: \"middle\"\n }}\n >\n {data.token}\n </span>\n <span\n style={{ position: \"absolute\", right: \"32px\" }}\n >\n <CopyButton\n value={data.token}\n onCopy={() =>\n showSnackbar(\"Successfully copied!\")\n }\n />\n </span>\n </div>\n ) : (\n <FormElementMessage>\n Your token will be shown once you submit the form.\n </FormElementMessage>\n )}\n </div>\n </Cell>\n </Grid>\n <Grid>\n <Cell span={12}>\n <PermissionsTitleCell span={12}>\n <Typography use={\"subtitle1\"}>{t`Permissions`}</Typography>\n {featureFlags.copyPermissionsButton && (\n <Tooltip content=\"Copy as JSON\" placement={\"top\"}>\n <IconButton\n icon={<CopyIcon />}\n onClick={() => {\n navigator.clipboard.writeText(\n JSON.stringify(\n data.permissions,\n null,\n 2\n )\n );\n showSnackbar(\n \"JSON data copied to clipboard.\"\n );\n }}\n />\n </Tooltip>\n )}\n </PermissionsTitleCell>\n </Cell>\n <Cell span={12}>\n <Bind name={\"permissions\"} defaultValue={[]}>\n {bind => <Permissions id={data.id || \"new\"} {...bind} />}\n </Bind>\n </Cell>\n </Grid>\n </SimpleFormContent>\n <SimpleFormFooter>\n <ButtonWrapper>\n <ButtonDefault\n onClick={() => history.push(\"/access-management/api-keys\")}\n data-testid=\"sam.key.new.form.button.cancel\"\n >{t`Cancel`}</ButtonDefault>\n <ButtonPrimary\n onClick={ev => {\n form.submit(ev);\n }}\n data-testid=\"sam.key.new.form.button.save\"\n >{t`Save API key`}</ButtonPrimary>\n </ButtonWrapper>\n </SimpleFormFooter>\n </SimpleForm>\n );\n }}\n </Form>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
2
|
import { ApiKeysDataListProps } from "./ApiKeysDataList";
|
|
3
3
|
import { ApiKeyFormProps } from "./ApiKeyForm";
|
|
4
4
|
export interface ApiKeysProps {
|
|
5
5
|
listProps?: ApiKeysDataListProps;
|
|
6
6
|
formProps?: ApiKeyFormProps;
|
|
7
7
|
}
|
|
8
|
-
export declare const ApiKeys:
|
|
8
|
+
export declare const ApiKeys: ({ formProps, listProps }: ApiKeysProps) => JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","_interopRequireWildcard","require","_SplitView","_ApiKeysDataList","_ApiKeyForm","ApiKeys","_ref","_ref$formProps","formProps","_ref$listProps","listProps","createElement","SplitView","LeftPanel","ApiKeysDataList","RightPanel","ApiKeyForm","exports"],"sources":["ApiKeys.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { SplitView, LeftPanel, RightPanel } from \"@webiny/app-admin/components/SplitView\";\nimport { ApiKeysDataList, ApiKeysDataListProps } from \"./ApiKeysDataList\";\nimport { ApiKeyForm, ApiKeyFormProps } from \"./ApiKeyForm\";\n\nexport interface ApiKeysProps {\n listProps?: ApiKeysDataListProps;\n formProps?: ApiKeyFormProps;\n}\nexport const ApiKeys
|
|
1
|
+
{"version":3,"names":["React","_interopRequireWildcard","require","_SplitView","_ApiKeysDataList","_ApiKeyForm","ApiKeys","_ref","_ref$formProps","formProps","_ref$listProps","listProps","createElement","SplitView","LeftPanel","ApiKeysDataList","RightPanel","ApiKeyForm","exports"],"sources":["ApiKeys.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { SplitView, LeftPanel, RightPanel } from \"@webiny/app-admin/components/SplitView\";\nimport { ApiKeysDataList, ApiKeysDataListProps } from \"./ApiKeysDataList\";\nimport { ApiKeyForm, ApiKeyFormProps } from \"./ApiKeyForm\";\n\nexport interface ApiKeysProps {\n listProps?: ApiKeysDataListProps;\n formProps?: ApiKeyFormProps;\n}\nexport const ApiKeys = ({ formProps = {}, listProps = {} }: ApiKeysProps) => {\n return (\n <SplitView>\n <LeftPanel>\n <ApiKeysDataList {...listProps} />\n </LeftPanel>\n <RightPanel>\n <ApiKeyForm {...formProps} />\n </RightPanel>\n </SplitView>\n );\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AAMO,IAAMI,OAAO,GAAG,SAAVA,OAAOA,CAAAC,IAAA,EAAyD;EAAA,IAAAC,cAAA,GAAAD,IAAA,CAAnDE,SAAS;IAATA,SAAS,GAAAD,cAAA,cAAG,CAAC,CAAC,GAAAA,cAAA;IAAAE,cAAA,GAAAH,IAAA,CAAEI,SAAS;IAATA,SAAS,GAAAD,cAAA,cAAG,CAAC,CAAC,GAAAA,cAAA;EACpD,oBACIV,KAAA,CAAAY,aAAA,CAACT,UAAA,CAAAU,SAAS,qBACNb,KAAA,CAAAY,aAAA,CAACT,UAAA,CAAAW,SAAS,qBACNd,KAAA,CAAAY,aAAA,CAACR,gBAAA,CAAAW,eAAe,EAAKJ,SAAY,CAC1B,CAAC,eACZX,KAAA,CAAAY,aAAA,CAACT,UAAA,CAAAa,UAAU,qBACPhB,KAAA,CAAAY,aAAA,CAACP,WAAA,CAAAY,UAAU,EAAKR,SAAY,CACpB,CACL,CAAC;AAEpB,CAAC;AAACS,OAAA,CAAAZ,OAAA,GAAAA,OAAA"}
|
|
@@ -6,8 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.ApiKeysDataList = void 0;
|
|
9
|
-
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
10
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
12
10
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
13
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
@@ -89,37 +87,22 @@ var ApiKeysDataList = function ApiKeysDataList() {
|
|
|
89
87
|
var data = listLoading && !listResponse ? [] : listResponse.security.apiKeys.data;
|
|
90
88
|
var id = new URLSearchParams(location.search).get("id");
|
|
91
89
|
var deleteItem = (0, _react.useCallback)(function (item) {
|
|
92
|
-
showConfirmation(
|
|
93
|
-
var
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
}
|
|
109
|
-
return _context.abrupt("return", showSnackbar(error.message));
|
|
110
|
-
case 7:
|
|
111
|
-
showSnackbar(t(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["Api key \"{id}\" deleted."])))({
|
|
112
|
-
id: item.id
|
|
113
|
-
}));
|
|
114
|
-
if (id === item.id) {
|
|
115
|
-
history.push("/access-management/api-keys");
|
|
116
|
-
}
|
|
117
|
-
case 9:
|
|
118
|
-
case "end":
|
|
119
|
-
return _context.stop();
|
|
120
|
-
}
|
|
121
|
-
}, _callee);
|
|
122
|
-
})));
|
|
90
|
+
showConfirmation(async function () {
|
|
91
|
+
var _await$deleteIt = await deleteIt({
|
|
92
|
+
variables: item
|
|
93
|
+
}),
|
|
94
|
+
data = _await$deleteIt.data;
|
|
95
|
+
var error = data.security.deleteApiKey.error;
|
|
96
|
+
if (error) {
|
|
97
|
+
return showSnackbar(error.message);
|
|
98
|
+
}
|
|
99
|
+
showSnackbar(t(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["Api key \"{id}\" deleted."])))({
|
|
100
|
+
id: item.id
|
|
101
|
+
}));
|
|
102
|
+
if (id === item.id) {
|
|
103
|
+
history.push("/access-management/api-keys");
|
|
104
|
+
}
|
|
105
|
+
});
|
|
123
106
|
}, [id]);
|
|
124
107
|
var groupsDataListModalOverlay = (0, _react.useMemo)(function () {
|
|
125
108
|
return /*#__PURE__*/_react.default.createElement(_List.DataListModalOverlay, null, /*#__PURE__*/_react.default.createElement(_Grid.Grid, null, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
|
|
@@ -128,9 +111,9 @@ var ApiKeysDataList = function ApiKeysDataList() {
|
|
|
128
111
|
value: sort,
|
|
129
112
|
onChange: setSort,
|
|
130
113
|
label: t(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["Sort by"])))
|
|
131
|
-
}, SORTERS.map(function (
|
|
132
|
-
var label =
|
|
133
|
-
sorter =
|
|
114
|
+
}, SORTERS.map(function (_ref2) {
|
|
115
|
+
var label = _ref2.label,
|
|
116
|
+
sorter = _ref2.sorter;
|
|
134
117
|
return /*#__PURE__*/_react.default.createElement("option", {
|
|
135
118
|
key: label,
|
|
136
119
|
value: sorter
|
|
@@ -161,8 +144,8 @@ var ApiKeysDataList = function ApiKeysDataList() {
|
|
|
161
144
|
icon: /*#__PURE__*/_react.default.createElement(_filter24px.ReactComponent, null),
|
|
162
145
|
"data-testid": "default-data-list.filter"
|
|
163
146
|
})
|
|
164
|
-
}, function (
|
|
165
|
-
var data =
|
|
147
|
+
}, function (_ref3) {
|
|
148
|
+
var data = _ref3.data;
|
|
166
149
|
return /*#__PURE__*/_react.default.createElement(_List.ScrollList, {
|
|
167
150
|
"data-testid": "default-data-list"
|
|
168
151
|
}, data.map(function (item) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_orderBy","_interopRequireDefault","_i18n","_List","_Button","_icons","_Grid","_Select","_reactRouter","_SearchUI","_useSnackbar2","_reactHooks","_useConfirmationDialog","GQL","_add18px","_filter24px","_utils","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","t","i18n","ns","SORTERS","label","_taggedTemplateLiteral2","default","sorter","ApiKeysDataList","_useState","useState","_useState2","_slicedToArray2","filter","setFilter","_useState3","_useState4","sort","setSort","_useRouter","useRouter","history","location","_useSnackbar","useSnackbar","showSnackbar","_useConfirmationDialo","useConfirmationDialog","dataTestId","showConfirmation","filterAPIKey","useCallback","_ref","description","name","toLowerCase","includes","sortKeys","list","_deserializeSorters","deserializeSorters","_deserializeSorters2","key","value","orderBy","_useQuery","useQuery","LIST_API_KEYS","listResponse","data","listLoading","loading","_useMutation","useMutation","DELETE_API_KEY","refetchQueries","query","_useMutation2","deleteIt","deleteLoading","security","apiKeys","id","URLSearchParams","search","get","deleteItem","item","_asyncToGenerator2","_regeneratorRuntime2","mark","_callee","_yield$deleteIt","error","wrap","_callee$","_context","prev","next","variables","sent","deleteApiKey","abrupt","message","push","stop","groupsDataListModalOverlay","useMemo","createElement","DataListModalOverlay","Grid","Cell","span","Select","onChange","map","_ref3","filteredData","DataList","title","actions","ButtonSecondary","onClick","ButtonIcon","icon","ReactComponent","inputPlaceholder","modalOverlay","modalOverlayAction","DataListModalOverlayAction","_ref4","ScrollList","ListItem","selected","ListItemText","concat","ListItemTextSecondary","ListItemMeta","ListActions","DeleteIcon","exports"],"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
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_orderBy","_interopRequireDefault","_i18n","_List","_Button","_icons","_Grid","_Select","_reactRouter","_SearchUI","_useSnackbar2","_reactHooks","_useConfirmationDialog","GQL","_add18px","_filter24px","_utils","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","t","i18n","ns","SORTERS","label","_taggedTemplateLiteral2","default","sorter","ApiKeysDataList","_useState","useState","_useState2","_slicedToArray2","filter","setFilter","_useState3","_useState4","sort","setSort","_useRouter","useRouter","history","location","_useSnackbar","useSnackbar","showSnackbar","_useConfirmationDialo","useConfirmationDialog","dataTestId","showConfirmation","filterAPIKey","useCallback","_ref","description","name","toLowerCase","includes","sortKeys","list","_deserializeSorters","deserializeSorters","_deserializeSorters2","key","value","orderBy","_useQuery","useQuery","LIST_API_KEYS","listResponse","data","listLoading","loading","_useMutation","useMutation","DELETE_API_KEY","refetchQueries","query","_useMutation2","deleteIt","deleteLoading","security","apiKeys","id","URLSearchParams","search","get","deleteItem","item","_await$deleteIt","variables","error","deleteApiKey","message","push","groupsDataListModalOverlay","useMemo","createElement","DataListModalOverlay","Grid","Cell","span","Select","onChange","map","_ref2","filteredData","DataList","title","actions","ButtonSecondary","onClick","ButtonIcon","icon","ReactComponent","inputPlaceholder","modalOverlay","modalOverlayAction","DataListModalOverlayAction","_ref3","ScrollList","ListItem","selected","ListItemText","concat","ListItemTextSecondary","ListItemMeta","ListActions","DeleteIcon","exports"],"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 = () => {\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,8 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
2
|
import { GroupsDataListProps } from "./GroupsDataList";
|
|
3
3
|
import { GroupsFormProps } from "./GroupsForm";
|
|
4
4
|
export interface GroupsProps {
|
|
5
5
|
listProps?: GroupsDataListProps;
|
|
6
6
|
formProps?: GroupsFormProps;
|
|
7
7
|
}
|
|
8
|
-
export declare const Groups:
|
|
8
|
+
export declare const Groups: ({ formProps, listProps }: GroupsProps) => JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_SplitView","_GroupsDataList","_GroupsForm","Groups","_ref","_ref$formProps","formProps","_ref$listProps","listProps","default","createElement","SplitView","LeftPanel","GroupsDataList","RightPanel","GroupsForm","exports"],"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
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_SplitView","_GroupsDataList","_GroupsForm","Groups","_ref","_ref$formProps","formProps","_ref$listProps","listProps","default","createElement","SplitView","LeftPanel","GroupsDataList","RightPanel","GroupsForm","exports"],"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 = ({ formProps = {}, listProps = {} }: GroupsProps) => {\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,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AAMO,IAAMI,MAAM,GAAG,SAATA,MAAMA,CAAAC,IAAA,EAAwD;EAAA,IAAAC,cAAA,GAAAD,IAAA,CAAlDE,SAAS;IAATA,SAAS,GAAAD,cAAA,cAAG,CAAC,CAAC,GAAAA,cAAA;IAAAE,cAAA,GAAAH,IAAA,CAAEI,SAAS;IAATA,SAAS,GAAAD,cAAA,cAAG,CAAC,CAAC,GAAAA,cAAA;EACnD,oBACIV,MAAA,CAAAY,OAAA,CAAAC,aAAA,CAACV,UAAA,CAAAW,SAAS,qBACNd,MAAA,CAAAY,OAAA,CAAAC,aAAA,CAACV,UAAA,CAAAY,SAAS,qBACNf,MAAA,CAAAY,OAAA,CAAAC,aAAA,CAACT,eAAA,CAAAY,cAAc,EAAKL,SAAY,CACzB,CAAC,eACZX,MAAA,CAAAY,OAAA,CAAAC,aAAA,CAACV,UAAA,CAAAc,UAAU,qBACPjB,MAAA,CAAAY,OAAA,CAAAC,aAAA,CAACR,WAAA,CAAAa,UAAU,EAAKT,SAAY,CACpB,CACL,CAAC;AAEpB,CAAC;AAACU,OAAA,CAAAb,MAAA,GAAAA,MAAA"}
|
|
@@ -6,8 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.GroupsDataList = void 0;
|
|
9
|
-
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
10
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
12
10
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
13
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
@@ -91,37 +89,22 @@ var GroupsDataList = function GroupsDataList() {
|
|
|
91
89
|
return (0, _orderBy.default)(groups, [key], [sortBy]);
|
|
92
90
|
}, [sort]);
|
|
93
91
|
var deleteItem = (0, _react.useCallback)(function (item) {
|
|
94
|
-
showConfirmation(
|
|
95
|
-
var
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
}
|
|
111
|
-
return _context.abrupt("return", showSnackbar(error.message));
|
|
112
|
-
case 7:
|
|
113
|
-
showSnackbar(t(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["Role \"{slug}\" deleted."])))({
|
|
114
|
-
slug: item.slug
|
|
115
|
-
}));
|
|
116
|
-
if (id === item.id) {
|
|
117
|
-
history.push("/access-management/roles");
|
|
118
|
-
}
|
|
119
|
-
case 9:
|
|
120
|
-
case "end":
|
|
121
|
-
return _context.stop();
|
|
122
|
-
}
|
|
123
|
-
}, _callee);
|
|
124
|
-
})));
|
|
92
|
+
showConfirmation(async function () {
|
|
93
|
+
var _await$deleteIt = await deleteIt({
|
|
94
|
+
variables: item
|
|
95
|
+
}),
|
|
96
|
+
data = _await$deleteIt.data;
|
|
97
|
+
var error = data.security.deleteGroup.error;
|
|
98
|
+
if (error) {
|
|
99
|
+
return showSnackbar(error.message);
|
|
100
|
+
}
|
|
101
|
+
showSnackbar(t(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["Role \"{slug}\" deleted."])))({
|
|
102
|
+
slug: item.slug
|
|
103
|
+
}));
|
|
104
|
+
if (id === item.id) {
|
|
105
|
+
history.push("/access-management/roles");
|
|
106
|
+
}
|
|
107
|
+
});
|
|
125
108
|
}, [id]);
|
|
126
109
|
var groupsDataListModalOverlay = (0, _react.useMemo)(function () {
|
|
127
110
|
return /*#__PURE__*/_react.default.createElement(_List.DataListModalOverlay, null, /*#__PURE__*/_react.default.createElement(_Grid.Grid, null, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
|
|
@@ -130,9 +113,9 @@ var GroupsDataList = function GroupsDataList() {
|
|
|
130
113
|
value: sort,
|
|
131
114
|
onChange: setSort,
|
|
132
115
|
label: t(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["Sort by"])))
|
|
133
|
-
}, SORTERS.map(function (
|
|
134
|
-
var label =
|
|
135
|
-
sorter =
|
|
116
|
+
}, SORTERS.map(function (_ref2) {
|
|
117
|
+
var label = _ref2.label,
|
|
118
|
+
sorter = _ref2.sorter;
|
|
136
119
|
return /*#__PURE__*/_react.default.createElement("option", {
|
|
137
120
|
key: label,
|
|
138
121
|
value: sorter
|
|
@@ -163,8 +146,8 @@ var GroupsDataList = function GroupsDataList() {
|
|
|
163
146
|
icon: /*#__PURE__*/_react.default.createElement(_filter24px.ReactComponent, null),
|
|
164
147
|
"data-testid": "default-data-list.filter"
|
|
165
148
|
})
|
|
166
|
-
}, function (
|
|
167
|
-
var data =
|
|
149
|
+
}, function (_ref3) {
|
|
150
|
+
var data = _ref3.data;
|
|
168
151
|
return /*#__PURE__*/_react.default.createElement(_List.ScrollList, {
|
|
169
152
|
"data-testid": "default-data-list"
|
|
170
153
|
}, data.map(function (item) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_orderBy","_interopRequireDefault","_i18n","_List","_icons","_reactRouter","_useSnackbar2","_reactHooks","_useConfirmationDialog","_graphql","_Tooltip","_Button","_Grid","_Select","_SearchUI","_add18px","_filter24px","_utils","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","t","i18n","ns","SORTERS","label","_taggedTemplateLiteral2","default","sorter","GroupsDataList","_useState","useState","_useState2","_slicedToArray2","filter","setFilter","_useState3","_useState4","sort","setSort","_useRouter","useRouter","history","location","_useSnackbar","useSnackbar","showSnackbar","_useConfirmationDialo","useConfirmationDialog","dataTestId","showConfirmation","_useQuery","useQuery","LIST_GROUPS","listResponse","data","listLoading","loading","_useMutation","useMutation","DELETE_GROUP","refetchQueries","query","_useMutation2","deleteIt","deleteLoading","security","groups","id","URLSearchParams","search","get","filterGroup","useCallback","_ref","name","slug","description","toLowerCase","includes","sortGroups","_deserializeSorters","deserializeSorters","_deserializeSorters2","key","sortBy","orderBy","deleteItem","item","_asyncToGenerator2","_regeneratorRuntime2","mark","_callee","_yield$deleteIt","error","wrap","_callee$","_context","prev","next","variables","sent","deleteGroup","abrupt","message","push","stop","groupsDataListModalOverlay","useMemo","createElement","DataListModalOverlay","Grid","Cell","span","Select","value","onChange","map","_ref3","filteredData","groupList","DataList","title","actions","ButtonSecondary","onClick","ButtonIcon","icon","ReactComponent","inputPlaceholder","modalOverlay","modalOverlayAction","DataListModalOverlayAction","_ref4","ScrollList","ListItem","selected","ListItemText","concat","ListItemTextSecondary","ListItemMeta","ListActions","system","DeleteIcon","Tooltip","placement","content","disabled","exports"],"sources":["GroupsDataList.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 { DeleteIcon } from \"@webiny/ui/List/DataList/icons\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { useQuery, useMutation } from \"@apollo/react-hooks\";\nimport { useConfirmationDialog } from \"@webiny/app-admin/hooks/useConfirmationDialog\";\nimport { LIST_GROUPS, DELETE_GROUP } from \"./graphql\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { ButtonIcon, ButtonSecondary } from \"@webiny/ui/Button\";\nimport { Cell, Grid } from \"@webiny/ui/Grid\";\nimport { Select } from \"@webiny/ui/Select\";\nimport SearchUI from \"@webiny/app-admin/components/SearchUI\";\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 { Group } from \"~/types\";\n\nconst t = i18n.ns(\"app-security/admin/roles/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];\n\nexport interface GroupsDataListProps {\n // TODO @ts-refactor delete and go up the tree and sort it out\n [key: string]: any;\n}\nexport const GroupsDataList: React.FC<GroupsDataListProps> = () => {\n const [filter, setFilter] = useState(\"\");\n const [sort, setSort] = useState(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 { data: listResponse, loading: listLoading } = useQuery(LIST_GROUPS);\n\n const [deleteIt, { loading: deleteLoading }] = useMutation(DELETE_GROUP, {\n refetchQueries: [{ query: LIST_GROUPS }]\n });\n\n const data = listLoading && !listResponse ? [] : listResponse.security.groups.data;\n const id = new URLSearchParams(location.search).get(\"id\");\n\n const filterGroup = useCallback(\n ({ name, slug, description }) => {\n return (\n name.toLowerCase().includes(filter) ||\n slug.toLowerCase().includes(filter) ||\n (description && description.toLowerCase().includes(filter))\n );\n },\n [filter]\n );\n\n const sortGroups = useCallback(\n groups => {\n if (!sort) {\n return groups;\n }\n const [key, sortBy] = deserializeSorters(sort);\n return orderBy(groups, [key], [sortBy]);\n },\n [sort]\n );\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.deleteGroup;\n if (error) {\n return showSnackbar(error.message);\n }\n\n showSnackbar(t`Role \"{slug}\" deleted.`({ slug: item.slug }));\n\n if (id === item.id) {\n history.push(`/access-management/roles`);\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(filterGroup);\n const groupList = sortGroups(filteredData);\n\n return (\n <DataList\n title={t`Roles`}\n actions={\n <ButtonSecondary\n data-testid=\"new-record-button\"\n onClick={() => history.push(\"/access-management/roles?new=true\")}\n >\n <ButtonIcon icon={<AddIcon />} /> {t`New Role`}\n </ButtonSecondary>\n }\n data={groupList}\n loading={listLoading || deleteLoading}\n search={\n <SearchUI value={filter} onChange={setFilter} inputPlaceholder={t`Search Roles`} />\n }\n modalOverlay={groupsDataListModalOverlay}\n modalOverlayAction={\n <DataListModalOverlayAction\n icon={<FilterIcon />}\n data-testid={\"default-data-list.filter\"}\n />\n }\n >\n {({ data }: { data: Group[] }) => (\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/roles?id=${item.id}`)\n }\n >\n {item.name}\n <ListItemTextSecondary>{item.description}</ListItemTextSecondary>\n </ListItemText>\n\n <ListItemMeta>\n <ListActions>\n {!item.system ? (\n <DeleteIcon\n onClick={() => deleteItem(item)}\n data-testid={\"default-data-list.delete\"}\n />\n ) : (\n <Tooltip\n placement={\"bottom\"}\n content={<span>{t`You can't delete this group.`}</span>}\n >\n <DeleteIcon disabled />\n </Tooltip>\n )}\n </ListActions>\n </ListItemMeta>\n </ListItem>\n ))}\n </ScrollList>\n )}\n </DataList>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_orderBy","_interopRequireDefault","_i18n","_List","_icons","_reactRouter","_useSnackbar2","_reactHooks","_useConfirmationDialog","_graphql","_Tooltip","_Button","_Grid","_Select","_SearchUI","_add18px","_filter24px","_utils","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","t","i18n","ns","SORTERS","label","_taggedTemplateLiteral2","default","sorter","GroupsDataList","_useState","useState","_useState2","_slicedToArray2","filter","setFilter","_useState3","_useState4","sort","setSort","_useRouter","useRouter","history","location","_useSnackbar","useSnackbar","showSnackbar","_useConfirmationDialo","useConfirmationDialog","dataTestId","showConfirmation","_useQuery","useQuery","LIST_GROUPS","listResponse","data","listLoading","loading","_useMutation","useMutation","DELETE_GROUP","refetchQueries","query","_useMutation2","deleteIt","deleteLoading","security","groups","id","URLSearchParams","search","get","filterGroup","useCallback","_ref","name","slug","description","toLowerCase","includes","sortGroups","_deserializeSorters","deserializeSorters","_deserializeSorters2","key","sortBy","orderBy","deleteItem","item","_await$deleteIt","variables","error","deleteGroup","message","push","groupsDataListModalOverlay","useMemo","createElement","DataListModalOverlay","Grid","Cell","span","Select","value","onChange","map","_ref2","filteredData","groupList","DataList","title","actions","ButtonSecondary","onClick","ButtonIcon","icon","ReactComponent","inputPlaceholder","modalOverlay","modalOverlayAction","DataListModalOverlayAction","_ref3","ScrollList","ListItem","selected","ListItemText","concat","ListItemTextSecondary","ListItemMeta","ListActions","system","DeleteIcon","Tooltip","placement","content","disabled","exports"],"sources":["GroupsDataList.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 { DeleteIcon } from \"@webiny/ui/List/DataList/icons\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { useQuery, useMutation } from \"@apollo/react-hooks\";\nimport { useConfirmationDialog } from \"@webiny/app-admin/hooks/useConfirmationDialog\";\nimport { LIST_GROUPS, DELETE_GROUP } from \"./graphql\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { ButtonIcon, ButtonSecondary } from \"@webiny/ui/Button\";\nimport { Cell, Grid } from \"@webiny/ui/Grid\";\nimport { Select } from \"@webiny/ui/Select\";\nimport SearchUI from \"@webiny/app-admin/components/SearchUI\";\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 { Group } from \"~/types\";\n\nconst t = i18n.ns(\"app-security/admin/roles/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];\n\nexport interface GroupsDataListProps {\n // TODO @ts-refactor delete and go up the tree and sort it out\n [key: string]: any;\n}\nexport const GroupsDataList = () => {\n const [filter, setFilter] = useState(\"\");\n const [sort, setSort] = useState(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 { data: listResponse, loading: listLoading } = useQuery(LIST_GROUPS);\n\n const [deleteIt, { loading: deleteLoading }] = useMutation(DELETE_GROUP, {\n refetchQueries: [{ query: LIST_GROUPS }]\n });\n\n const data = listLoading && !listResponse ? [] : listResponse.security.groups.data;\n const id = new URLSearchParams(location.search).get(\"id\");\n\n const filterGroup = useCallback(\n ({ name, slug, description }) => {\n return (\n name.toLowerCase().includes(filter) ||\n slug.toLowerCase().includes(filter) ||\n (description && description.toLowerCase().includes(filter))\n );\n },\n [filter]\n );\n\n const sortGroups = useCallback(\n groups => {\n if (!sort) {\n return groups;\n }\n const [key, sortBy] = deserializeSorters(sort);\n return orderBy(groups, [key], [sortBy]);\n },\n [sort]\n );\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.deleteGroup;\n if (error) {\n return showSnackbar(error.message);\n }\n\n showSnackbar(t`Role \"{slug}\" deleted.`({ slug: item.slug }));\n\n if (id === item.id) {\n history.push(`/access-management/roles`);\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(filterGroup);\n const groupList = sortGroups(filteredData);\n\n return (\n <DataList\n title={t`Roles`}\n actions={\n <ButtonSecondary\n data-testid=\"new-record-button\"\n onClick={() => history.push(\"/access-management/roles?new=true\")}\n >\n <ButtonIcon icon={<AddIcon />} /> {t`New Role`}\n </ButtonSecondary>\n }\n data={groupList}\n loading={listLoading || deleteLoading}\n search={\n <SearchUI value={filter} onChange={setFilter} inputPlaceholder={t`Search Roles`} />\n }\n modalOverlay={groupsDataListModalOverlay}\n modalOverlayAction={\n <DataListModalOverlayAction\n icon={<FilterIcon />}\n data-testid={\"default-data-list.filter\"}\n />\n }\n >\n {({ data }: { data: Group[] }) => (\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/roles?id=${item.id}`)\n }\n >\n {item.name}\n <ListItemTextSecondary>{item.description}</ListItemTextSecondary>\n </ListItemText>\n\n <ListItemMeta>\n <ListActions>\n {!item.system ? (\n <DeleteIcon\n onClick={() => deleteItem(item)}\n data-testid={\"default-data-list.delete\"}\n />\n ) : (\n <Tooltip\n placement={\"bottom\"}\n content={<span>{t`You can't delete this group.`}</span>}\n >\n <DeleteIcon disabled />\n </Tooltip>\n )}\n </ListActions>\n </ListItemMeta>\n </ListItem>\n ))}\n </ScrollList>\n )}\n </DataList>\n );\n};\n"],"mappings":"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"}
|