@webiny/app-security-access-management 5.34.8 → 5.35.0-beta.1

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 (52) hide show
  1. package/README.md +1 -1
  2. package/components/GroupAutocomplete/graphql.js +0 -5
  3. package/components/GroupAutocomplete/graphql.js.map +1 -1
  4. package/components/GroupAutocomplete/index.js +2 -10
  5. package/components/GroupAutocomplete/index.js.map +1 -1
  6. package/components/NotAuthorizedError/NotAuthorizedError.js +0 -12
  7. package/components/NotAuthorizedError/NotAuthorizedError.js.map +1 -1
  8. package/components/NotAuthorizedError/index.js +0 -1
  9. package/components/NotAuthorizedError/index.js.map +1 -1
  10. package/index.js +0 -15
  11. package/index.js.map +1 -1
  12. package/package.json +13 -13
  13. package/plugins/constants.js +0 -1
  14. package/plugins/constants.js.map +1 -1
  15. package/plugins/index.js +0 -6
  16. package/plugins/index.js.map +1 -1
  17. package/plugins/installation.js +19 -44
  18. package/plugins/installation.js.map +1 -1
  19. package/plugins/permissionRenderer/SecurityPermissions.js +2 -34
  20. package/plugins/permissionRenderer/SecurityPermissions.js.map +1 -1
  21. package/plugins/permissionRenderer/index.js +0 -12
  22. package/plugins/permissionRenderer/index.js.map +1 -1
  23. package/plugins/routes.js +0 -10
  24. package/plugins/routes.js.map +1 -1
  25. package/plugins/secureRouteError.js +0 -4
  26. package/plugins/secureRouteError.js.map +1 -1
  27. package/ui/elements/GroupAutocompleteElement.js +1 -16
  28. package/ui/elements/GroupAutocompleteElement.js.map +1 -1
  29. package/ui/views/ApiKeys/ApiKeyForm.js +62 -115
  30. package/ui/views/ApiKeys/ApiKeyForm.js.map +1 -1
  31. package/ui/views/ApiKeys/ApiKeys.js +3 -10
  32. package/ui/views/ApiKeys/ApiKeys.js.map +1 -1
  33. package/ui/views/ApiKeys/ApiKeysDataList.js +51 -98
  34. package/ui/views/ApiKeys/ApiKeysDataList.js.map +1 -1
  35. package/ui/views/ApiKeys/graphql.js +0 -5
  36. package/ui/views/ApiKeys/graphql.js.map +1 -1
  37. package/ui/views/ApiKeys/index.js +0 -2
  38. package/ui/views/ApiKeys/index.js.map +1 -1
  39. package/ui/views/ApiKeys/utils.js +0 -5
  40. package/ui/views/ApiKeys/utils.js.map +1 -1
  41. package/ui/views/Groups/Groups.js +3 -10
  42. package/ui/views/Groups/Groups.js.map +1 -1
  43. package/ui/views/Groups/GroupsDataList.js +52 -99
  44. package/ui/views/Groups/GroupsDataList.js.map +1 -1
  45. package/ui/views/Groups/GroupsForm.js +61 -114
  46. package/ui/views/Groups/GroupsForm.js.map +1 -1
  47. package/ui/views/Groups/graphql.js +0 -5
  48. package/ui/views/Groups/graphql.js.map +1 -1
  49. package/ui/views/Groups/index.js +0 -2
  50. package/ui/views/Groups/index.js.map +1 -1
  51. package/ui/views/utils.js +3 -9
  52. package/ui/views/utils.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["t","i18n","ns","ButtonWrapper","styled","display","justifyContent","GroupsForm","useRouter","location","history","useSnackbar","showSnackbar","newGroup","URLSearchParams","search","get","id","getQuery","useQuery","READ_GROUP","variables","skip","onCompleted","data","error","security","group","push","message","useMutation","CREATE_GROUP","refetchQueries","query","LIST_GROUPS","create","createMutation","UPDATE_GROUP","update","updateMutation","loading","find","item","onSubmit","useCallback","permissions","length","timeout","dismissesOnAction","action","isUpdate","createdOn","pick","operation","args","response","systemGroup","slug","showEmptyView","isEmpty","form","Bind","name","validation","Boolean","bind","ev","submit"],"sources":["GroupsForm.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { useMutation, useQuery } from \"@apollo/react-hooks\";\nimport styled from \"@emotion/styled\";\nimport pick from \"lodash/pick\";\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 { Alert } from \"@webiny/ui/Alert\";\nimport { ButtonDefault, ButtonIcon, ButtonPrimary } from \"@webiny/ui/Button\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\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 { Permissions } from \"@webiny/app-admin/components/Permissions\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { CREATE_GROUP, LIST_GROUPS, READ_GROUP, UPDATE_GROUP } 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\";\n\nconst t = i18n.ns(\"app-security/admin/groups/form\");\n\nconst ButtonWrapper = styled(\"div\")({\n display: \"flex\",\n justifyContent: \"space-between\"\n});\n\nexport interface GroupsFormProps {\n // TODO @ts-refactor delete and go up the tree and sort it out\n [key: string]: any;\n}\nexport const GroupsForm: React.FC<GroupsFormProps> = () => {\n const { location, history } = useRouter();\n const { showSnackbar } = useSnackbar();\n const newGroup = new URLSearchParams(location.search).get(\"new\") === \"true\";\n const id = new URLSearchParams(location.search).get(\"id\");\n\n const getQuery = useQuery(READ_GROUP, {\n variables: { id },\n skip: !id,\n onCompleted: data => {\n if (!data) {\n return;\n }\n\n const { error } = data.security.group;\n if (error) {\n history.push(\"/access-management/groups\");\n showSnackbar(error.message);\n }\n }\n });\n\n const [create, createMutation] = useMutation(CREATE_GROUP, {\n refetchQueries: [{ query: LIST_GROUPS }]\n });\n\n const [update, updateMutation] = useMutation(UPDATE_GROUP, {\n refetchQueries: [{ query: LIST_GROUPS }]\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 ? [\n update,\n {\n variables: {\n id: data.id,\n data: pick(data, [\"name\", \"description\", \"permissions\"])\n }\n }\n ]\n : [\n create,\n {\n variables: {\n data: pick(data, [\"name\", \"slug\", \"description\", \"permissions\"])\n }\n }\n ];\n\n const response = await operation(args);\n\n const { data: group, error } = response.data.security.group;\n if (error) {\n return showSnackbar(error.message);\n }\n\n !isUpdate && history.push(`/access-management/groups?id=${group.id}`);\n showSnackbar(t`Group saved successfully!`);\n },\n [id]\n );\n\n const data = loading ? {} : get(getQuery, \"data.security.group.data\", {});\n\n const systemGroup = data.slug === \"full-access\";\n\n const showEmptyView = !newGroup && !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 group details or create a...`}\n action={\n <ButtonDefault\n data-testid=\"new-record-button\"\n onClick={() => history.push(\"/access-management/groups?new=true\")}\n >\n <ButtonIcon icon={<AddIcon />} />\n {t`New Group`}\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={6}>\n <Bind\n name=\"name\"\n validators={validation.create(\"required,minLength:3\")}\n >\n <Input\n label={t`Name`}\n disabled={systemGroup}\n data-testid=\"admin.am.group.new.name\"\n />\n </Bind>\n </Cell>\n <Cell span={6}>\n <Bind\n name=\"slug\"\n validators={validation.create(\"required,minLength:3\")}\n >\n <Input\n disabled={Boolean(data.id)}\n label={t`Slug`}\n data-testid=\"admin.am.group.new.slug\"\n />\n </Bind>\n </Cell>\n </Grid>\n <Grid>\n <Cell span={12}>\n <Bind\n name=\"description\"\n validators={validation.create(\"maxLength:500\")}\n >\n <Input\n label={t`Description`}\n rows={3}\n disabled={systemGroup}\n data-testid=\"admin.am.group.new.description\"\n />\n </Bind>\n </Cell>\n </Grid>\n {systemGroup && (\n <Grid>\n <Cell span={12}>\n <Alert type={\"info\"} title={\"Permissions are locked\"}>\n This is a protected system group and you can&apos;t\n modify its permissions.\n </Alert>\n </Cell>\n </Grid>\n )}\n {!systemGroup && (\n <Grid>\n <Cell span={12}>\n <Typography use={\"subtitle1\"}>{t`Permissions`}</Typography>\n </Cell>\n <Cell span={12}>\n <Bind name={\"permissions\"} defaultValue={[]}>\n {bind => (\n <Permissions id={data.id || \"new\"} {...bind} />\n )}\n </Bind>\n </Cell>\n </Grid>\n )}\n </SimpleFormContent>\n {systemGroup ? null : (\n <SimpleFormFooter>\n <ButtonWrapper>\n <ButtonDefault\n onClick={() => history.push(\"/access-management/groups\")}\n >{t`Cancel`}</ButtonDefault>\n <ButtonPrimary\n data-testid=\"admin.am.group.new.save\"\n onClick={ev => {\n form.submit(ev);\n }}\n >{t`Save group`}</ButtonPrimary>\n </ButtonWrapper>\n </SimpleFormFooter>\n )}\n </SimpleForm>\n );\n }}\n </Form>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAMA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,IAAMA,CAAC,GAAGC,UAAA,CAAKC,EAAL,CAAQ,gCAAR,CAAV;;AAEA,IAAMC,aAAa,oBAAGC,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB;EAChCC,OAAO,EAAE,MADuB;EAEhCC,cAAc,EAAE;AAFgB,CAAjB,CAAnB;;AASO,IAAMC,UAAqC,GAAG,SAAxCA,UAAwC,GAAM;EACvD,iBAA8B,IAAAC,sBAAA,GAA9B;EAAA,IAAQC,QAAR,cAAQA,QAAR;EAAA,IAAkBC,OAAlB,cAAkBA,OAAlB;;EACA,mBAAyB,IAAAC,yBAAA,GAAzB;EAAA,IAAQC,YAAR,gBAAQA,YAAR;;EACA,IAAMC,QAAQ,GAAG,IAAIC,eAAJ,CAAoBL,QAAQ,CAACM,MAA7B,EAAqCC,GAArC,CAAyC,KAAzC,MAAoD,MAArE;EACA,IAAMC,EAAE,GAAG,IAAIH,eAAJ,CAAoBL,QAAQ,CAACM,MAA7B,EAAqCC,GAArC,CAAyC,IAAzC,CAAX;EAEA,IAAME,QAAQ,GAAG,IAAAC,oBAAA,EAASC,mBAAT,EAAqB;IAClCC,SAAS,EAAE;MAAEJ,EAAE,EAAFA;IAAF,CADuB;IAElCK,IAAI,EAAE,CAACL,EAF2B;IAGlCM,WAAW,EAAE,qBAAAC,IAAI,EAAI;MACjB,IAAI,CAACA,IAAL,EAAW;QACP;MACH;;MAED,IAAQC,KAAR,GAAkBD,IAAI,CAACE,QAAL,CAAcC,KAAhC,CAAQF,KAAR;;MACA,IAAIA,KAAJ,EAAW;QACPf,OAAO,CAACkB,IAAR,CAAa,2BAAb;QACAhB,YAAY,CAACa,KAAK,CAACI,OAAP,CAAZ;MACH;IACJ;EAbiC,CAArB,CAAjB;;EAgBA,mBAAiC,IAAAC,uBAAA,EAAYC,qBAAZ,EAA0B;IACvDC,cAAc,EAAE,CAAC;MAAEC,KAAK,EAAEC;IAAT,CAAD;EADuC,CAA1B,CAAjC;EAAA;EAAA,IAAOC,MAAP;EAAA,IAAeC,cAAf;;EAIA,oBAAiC,IAAAN,uBAAA,EAAYO,qBAAZ,EAA0B;IACvDL,cAAc,EAAE,CAAC;MAAEC,KAAK,EAAEC;IAAT,CAAD;EADuC,CAA1B,CAAjC;EAAA;EAAA,IAAOI,MAAP;EAAA,IAAeC,cAAf;;EAIA,IAAMC,OAAO,GAAG,CAACtB,QAAD,EAAWkB,cAAX,EAA2BG,cAA3B,EAA2CE,IAA3C,CAAgD,UAAAC,IAAI;IAAA,OAAIA,IAAI,CAACF,OAAT;EAAA,CAApD,CAAhB;EAEA,IAAMG,QAAQ,GAAG,IAAAC,kBAAA;IAAA,kGACb,iBAAMpB,IAAN;MAAA;;MAAA;QAAA;UAAA;YAAA;cAAA,MACQ,CAACA,IAAI,CAACqB,WAAN,IAAqB,CAACrB,IAAI,CAACqB,WAAL,CAAiBC,MAD/C;gBAAA;gBAAA;cAAA;;cAEQlC,YAAY,CAACZ,CAAD,kIAAmD;gBAC3D+C,OAAO,EAAE,KADkD;gBAE3DC,iBAAiB,EAAE,IAFwC;gBAG3DC,MAAM,eAAE,6BAAC,wBAAD;kBAAgB,KAAK,EAAE;gBAAvB;cAHmD,CAAnD,CAAZ;cAFR;;YAAA;cAUUC,QAVV,GAUqB1B,IAAI,CAAC2B,SAV1B;cAAA,QAW8BD,QAAQ,GAC5B,CACIZ,MADJ,EAEI;gBACIjB,SAAS,EAAE;kBACPJ,EAAE,EAAEO,IAAI,CAACP,EADF;kBAEPO,IAAI,EAAE,IAAA4B,aAAA,EAAK5B,IAAL,EAAW,CAAC,MAAD,EAAS,aAAT,EAAwB,aAAxB,CAAX;gBAFC;cADf,CAFJ,CAD4B,GAU5B,CACIW,MADJ,EAEI;gBACId,SAAS,EAAE;kBACPG,IAAI,EAAE,IAAA4B,aAAA,EAAK5B,IAAL,EAAW,CAAC,MAAD,EAAS,MAAT,EAAiB,aAAjB,EAAgC,aAAhC,CAAX;gBADC;cADf,CAFJ,CArBV,kDAWW6B,SAXX,aAWsBC,IAXtB;cAAA;cAAA,OA8B2BD,SAAS,CAACC,IAAD,CA9BpC;;YAAA;cA8BUC,QA9BV;cAAA,wBAgCmCA,QAAQ,CAAC/B,IAAT,CAAcE,QAAd,CAAuBC,KAhC1D,EAgCkBA,KAhClB,yBAgCYH,IAhCZ,EAgCyBC,KAhCzB,yBAgCyBA,KAhCzB;;cAAA,KAiCQA,KAjCR;gBAAA;gBAAA;cAAA;;cAAA,iCAkCeb,YAAY,CAACa,KAAK,CAACI,OAAP,CAlC3B;;YAAA;cAqCI,CAACqB,QAAD,IAAaxC,OAAO,CAACkB,IAAR,wCAA6CD,KAAK,CAACV,EAAnD,EAAb;cACAL,YAAY,CAACZ,CAAD,+GAAZ;;YAtCJ;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA,CADa;;IAAA;MAAA;IAAA;EAAA,KAyCb,CAACiB,EAAD,CAzCa,CAAjB;EA4CA,IAAMO,IAAI,GAAGgB,OAAO,GAAG,EAAH,GAAQ,IAAAxB,YAAA,EAAIE,QAAJ,EAAc,0BAAd,EAA0C,EAA1C,CAA5B;EAEA,IAAMsC,WAAW,GAAGhC,IAAI,CAACiC,IAAL,KAAc,aAAlC;EAEA,IAAMC,aAAa,GAAG,CAAC7C,QAAD,IAAa,CAAC2B,OAAd,IAAyB,IAAAmB,gBAAA,EAAQnC,IAAR,CAA/C,CAhFuD,CAiFvD;;EACA,IAAIkC,aAAJ,EAAmB;IACf,oBACI,6BAAC,kBAAD;MACI,KAAK,EAAE1D,CAAF,wJADT;MAEI,MAAM,eACF,6BAAC,qBAAD;QACI,eAAY,mBADhB;QAEI,OAAO,EAAE;UAAA,OAAMU,OAAO,CAACkB,IAAR,CAAa,oCAAb,CAAN;QAAA;MAFb,gBAII,6BAAC,kBAAD;QAAY,IAAI,eAAE,6BAAC,uBAAD;MAAlB,EAJJ,EAKK5B,CALL;IAHR,EADJ;EAcH;;EAED,oBACI,6BAAC,UAAD;IAAM,IAAI,EAAEwB,IAAZ;IAAkB,QAAQ,EAAEmB;EAA5B,GACK,iBAA0B;IAAA,IAAvBnB,IAAuB,SAAvBA,IAAuB;IAAA,IAAjBoC,IAAiB,SAAjBA,IAAiB;IAAA,IAAXC,IAAW,SAAXA,IAAW;IACvB,oBACI,6BAAC,sBAAD,QACKrB,OAAO,iBAAI,6BAAC,0BAAD,OADhB,eAEI,6BAAC,4BAAD;MAAkB,KAAK,EAAEhB,IAAI,CAACsC,IAAL,GAAYtC,IAAI,CAACsC,IAAjB,GAAwB;IAAjD,EAFJ,eAGI,6BAAC,6BAAD,qBACI,6BAAC,UAAD,qBACI,6BAAC,UAAD;MAAM,IAAI,EAAE;IAAZ,gBACI,6BAAC,IAAD;MACI,IAAI,EAAC,MADT;MAEI,UAAU,EAAEC,sBAAA,CAAW5B,MAAX,CAAkB,sBAAlB;IAFhB,gBAII,6BAAC,YAAD;MACI,KAAK,EAAEnC,CAAF,yFADT;MAEI,QAAQ,EAAEwD,WAFd;MAGI,eAAY;IAHhB,EAJJ,CADJ,CADJ,eAaI,6BAAC,UAAD;MAAM,IAAI,EAAE;IAAZ,gBACI,6BAAC,IAAD;MACI,IAAI,EAAC,MADT;MAEI,UAAU,EAAEO,sBAAA,CAAW5B,MAAX,CAAkB,sBAAlB;IAFhB,gBAII,6BAAC,YAAD;MACI,QAAQ,EAAE6B,OAAO,CAACxC,IAAI,CAACP,EAAN,CADrB;MAEI,KAAK,EAAEjB,CAAF,yFAFT;MAGI,eAAY;IAHhB,EAJJ,CADJ,CAbJ,CADJ,eA2BI,6BAAC,UAAD,qBACI,6BAAC,UAAD;MAAM,IAAI,EAAE;IAAZ,gBACI,6BAAC,IAAD;MACI,IAAI,EAAC,aADT;MAEI,UAAU,EAAE+D,sBAAA,CAAW5B,MAAX,CAAkB,eAAlB;IAFhB,gBAII,6BAAC,YAAD;MACI,KAAK,EAAEnC,CAAF,gGADT;MAEI,IAAI,EAAE,CAFV;MAGI,QAAQ,EAAEwD,WAHd;MAII,eAAY;IAJhB,EAJJ,CADJ,CADJ,CA3BJ,EA0CKA,WAAW,iBACR,6BAAC,UAAD,qBACI,6BAAC,UAAD;MAAM,IAAI,EAAE;IAAZ,gBACI,6BAAC,YAAD;MAAO,IAAI,EAAE,MAAb;MAAqB,KAAK,EAAE;IAA5B,GAAsD,wEAAtD,CADJ,CADJ,CA3CR,EAoDK,CAACA,WAAD,iBACG,6BAAC,UAAD,qBACI,6BAAC,UAAD;MAAM,IAAI,EAAE;IAAZ,gBACI,6BAAC,sBAAD;MAAY,GAAG,EAAE;IAAjB,GAA+BxD,CAA/B,iGADJ,CADJ,eAII,6BAAC,UAAD;MAAM,IAAI,EAAE;IAAZ,gBACI,6BAAC,IAAD;MAAM,IAAI,EAAE,aAAZ;MAA2B,YAAY,EAAE;IAAzC,GACK,UAAAiE,IAAI;MAAA,oBACD,6BAAC,wBAAD;QAAa,EAAE,EAAEzC,IAAI,CAACP,EAAL,IAAW;MAA5B,GAAuCgD,IAAvC,EADC;IAAA,CADT,CADJ,CAJJ,CArDR,CAHJ,EAsEKT,WAAW,GAAG,IAAH,gBACR,6BAAC,4BAAD,qBACI,6BAAC,aAAD,qBACI,6BAAC,qBAAD;MACI,OAAO,EAAE;QAAA,OAAM9C,OAAO,CAACkB,IAAR,CAAa,2BAAb,CAAN;MAAA;IADb,GAEE5B,CAFF,4FADJ,eAII,6BAAC,qBAAD;MACI,eAAY,yBADhB;MAEI,OAAO,EAAE,iBAAAkE,EAAE,EAAI;QACXN,IAAI,CAACO,MAAL,CAAYD,EAAZ;MACH;IAJL,GAKElE,CALF,kGAJJ,CADJ,CAvER,CADJ;EAwFH,CA1FL,CADJ;AA8FH,CAjMM"}
1
+ {"version":3,"names":["t","i18n","ns","ButtonWrapper","styled","display","justifyContent","GroupsForm","useRouter","location","history","useSnackbar","showSnackbar","newGroup","URLSearchParams","search","get","id","getQuery","useQuery","READ_GROUP","variables","skip","onCompleted","data","error","security","group","push","message","useMutation","CREATE_GROUP","refetchQueries","query","LIST_GROUPS","create","createMutation","UPDATE_GROUP","update","updateMutation","loading","find","item","onSubmit","useCallback","permissions","length","timeout","dismissesOnAction","action","isUpdate","createdOn","pick","operation","args","response","systemGroup","slug","showEmptyView","isEmpty","form","Bind","name","validation","Boolean","bind","ev","submit"],"sources":["GroupsForm.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { useMutation, useQuery } from \"@apollo/react-hooks\";\nimport styled from \"@emotion/styled\";\nimport pick from \"lodash/pick\";\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 { Alert } from \"@webiny/ui/Alert\";\nimport { ButtonDefault, ButtonIcon, ButtonPrimary } from \"@webiny/ui/Button\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\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 { Permissions } from \"@webiny/app-admin/components/Permissions\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { CREATE_GROUP, LIST_GROUPS, READ_GROUP, UPDATE_GROUP } 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\";\n\nconst t = i18n.ns(\"app-security/admin/groups/form\");\n\nconst ButtonWrapper = styled(\"div\")({\n display: \"flex\",\n justifyContent: \"space-between\"\n});\n\nexport interface GroupsFormProps {\n // TODO @ts-refactor delete and go up the tree and sort it out\n [key: string]: any;\n}\nexport const GroupsForm: React.FC<GroupsFormProps> = () => {\n const { location, history } = useRouter();\n const { showSnackbar } = useSnackbar();\n const newGroup = new URLSearchParams(location.search).get(\"new\") === \"true\";\n const id = new URLSearchParams(location.search).get(\"id\");\n\n const getQuery = useQuery(READ_GROUP, {\n variables: { id },\n skip: !id,\n onCompleted: data => {\n if (!data) {\n return;\n }\n\n const { error } = data.security.group;\n if (error) {\n history.push(\"/access-management/groups\");\n showSnackbar(error.message);\n }\n }\n });\n\n const [create, createMutation] = useMutation(CREATE_GROUP, {\n refetchQueries: [{ query: LIST_GROUPS }]\n });\n\n const [update, updateMutation] = useMutation(UPDATE_GROUP, {\n refetchQueries: [{ query: LIST_GROUPS }]\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 ? [\n update,\n {\n variables: {\n id: data.id,\n data: pick(data, [\"name\", \"description\", \"permissions\"])\n }\n }\n ]\n : [\n create,\n {\n variables: {\n data: pick(data, [\"name\", \"slug\", \"description\", \"permissions\"])\n }\n }\n ];\n\n const response = await operation(args);\n\n const { data: group, error } = response.data.security.group;\n if (error) {\n return showSnackbar(error.message);\n }\n\n !isUpdate && history.push(`/access-management/groups?id=${group.id}`);\n showSnackbar(t`Group saved successfully!`);\n },\n [id]\n );\n\n const data = loading ? {} : get(getQuery, \"data.security.group.data\", {});\n\n const systemGroup = data.slug === \"full-access\";\n\n const showEmptyView = !newGroup && !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 group details or create a...`}\n action={\n <ButtonDefault\n data-testid=\"new-record-button\"\n onClick={() => history.push(\"/access-management/groups?new=true\")}\n >\n <ButtonIcon icon={<AddIcon />} />\n {t`New Group`}\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={6}>\n <Bind\n name=\"name\"\n validators={validation.create(\"required,minLength:3\")}\n >\n <Input\n label={t`Name`}\n disabled={systemGroup}\n data-testid=\"admin.am.group.new.name\"\n />\n </Bind>\n </Cell>\n <Cell span={6}>\n <Bind\n name=\"slug\"\n validators={validation.create(\"required,minLength:3\")}\n >\n <Input\n disabled={Boolean(data.id)}\n label={t`Slug`}\n data-testid=\"admin.am.group.new.slug\"\n />\n </Bind>\n </Cell>\n </Grid>\n <Grid>\n <Cell span={12}>\n <Bind\n name=\"description\"\n validators={validation.create(\"maxLength:500\")}\n >\n <Input\n label={t`Description`}\n rows={3}\n disabled={systemGroup}\n data-testid=\"admin.am.group.new.description\"\n />\n </Bind>\n </Cell>\n </Grid>\n {systemGroup && (\n <Grid>\n <Cell span={12}>\n <Alert type={\"info\"} title={\"Permissions are locked\"}>\n This is a protected system group and you can&apos;t\n modify its permissions.\n </Alert>\n </Cell>\n </Grid>\n )}\n {!systemGroup && (\n <Grid>\n <Cell span={12}>\n <Typography use={\"subtitle1\"}>{t`Permissions`}</Typography>\n </Cell>\n <Cell span={12}>\n <Bind name={\"permissions\"} defaultValue={[]}>\n {bind => (\n <Permissions id={data.id || \"new\"} {...bind} />\n )}\n </Bind>\n </Cell>\n </Grid>\n )}\n </SimpleFormContent>\n {systemGroup ? null : (\n <SimpleFormFooter>\n <ButtonWrapper>\n <ButtonDefault\n onClick={() => history.push(\"/access-management/groups\")}\n >{t`Cancel`}</ButtonDefault>\n <ButtonPrimary\n data-testid=\"admin.am.group.new.save\"\n onClick={ev => {\n form.submit(ev);\n }}\n >{t`Save group`}</ButtonPrimary>\n </ButtonWrapper>\n </SimpleFormFooter>\n )}\n </SimpleForm>\n );\n }}\n </Form>\n );\n};\n"],"mappings":";;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAwF;AAExF,IAAMA,CAAC,GAAGC,UAAI,CAACC,EAAE,CAAC,gCAAgC,CAAC;AAEnD,IAAMC,aAAa,oBAAGC,eAAM,EAAC,KAAK;EAAA;EAAA;AAAA,GAAE;EAChCC,OAAO,EAAE,MAAM;EACfC,cAAc,EAAE;AACpB,CAAC,CAAC;AAMK,IAAMC,UAAqC,GAAG,SAAxCA,UAAqC,GAAS;EACvD,iBAA8B,IAAAC,sBAAS,GAAE;IAAjCC,QAAQ,cAARA,QAAQ;IAAEC,OAAO,cAAPA,OAAO;EACzB,mBAAyB,IAAAC,yBAAW,GAAE;IAA9BC,YAAY,gBAAZA,YAAY;EACpB,IAAMC,QAAQ,GAAG,IAAIC,eAAe,CAACL,QAAQ,CAACM,MAAM,CAAC,CAACC,GAAG,CAAC,KAAK,CAAC,KAAK,MAAM;EAC3E,IAAMC,EAAE,GAAG,IAAIH,eAAe,CAACL,QAAQ,CAACM,MAAM,CAAC,CAACC,GAAG,CAAC,IAAI,CAAC;EAEzD,IAAME,QAAQ,GAAG,IAAAC,oBAAQ,EAACC,mBAAU,EAAE;IAClCC,SAAS,EAAE;MAAEJ,EAAE,EAAFA;IAAG,CAAC;IACjBK,IAAI,EAAE,CAACL,EAAE;IACTM,WAAW,EAAE,qBAAAC,IAAI,EAAI;MACjB,IAAI,CAACA,IAAI,EAAE;QACP;MACJ;MAEA,IAAQC,KAAK,GAAKD,IAAI,CAACE,QAAQ,CAACC,KAAK,CAA7BF,KAAK;MACb,IAAIA,KAAK,EAAE;QACPf,OAAO,CAACkB,IAAI,CAAC,2BAA2B,CAAC;QACzChB,YAAY,CAACa,KAAK,CAACI,OAAO,CAAC;MAC/B;IACJ;EACJ,CAAC,CAAC;EAEF,mBAAiC,IAAAC,uBAAW,EAACC,qBAAY,EAAE;MACvDC,cAAc,EAAE,CAAC;QAAEC,KAAK,EAAEC;MAAY,CAAC;IAC3C,CAAC,CAAC;IAAA;IAFKC,MAAM;IAAEC,cAAc;EAI7B,oBAAiC,IAAAN,uBAAW,EAACO,qBAAY,EAAE;MACvDL,cAAc,EAAE,CAAC;QAAEC,KAAK,EAAEC;MAAY,CAAC;IAC3C,CAAC,CAAC;IAAA;IAFKI,MAAM;IAAEC,cAAc;EAI7B,IAAMC,OAAO,GAAG,CAACtB,QAAQ,EAAEkB,cAAc,EAAEG,cAAc,CAAC,CAACE,IAAI,CAAC,UAAAC,IAAI;IAAA,OAAIA,IAAI,CAACF,OAAO;EAAA,EAAC;EAErF,IAAMG,QAAQ,GAAG,IAAAC,kBAAW;IAAA,kGACxB,iBAAMpB,IAAI;MAAA;MAAA;QAAA;UAAA;YAAA,MACF,CAACA,IAAI,CAACqB,WAAW,IAAI,CAACrB,IAAI,CAACqB,WAAW,CAACC,MAAM;cAAA;cAAA;YAAA;YAC7ClC,YAAY,CAACZ,CAAC,kIAAiD;cAC3D+C,OAAO,EAAE,KAAK;cACdC,iBAAiB,EAAE,IAAI;cACvBC,MAAM,eAAE,6BAAC,wBAAc;gBAAC,KAAK,EAAE;cAAK;YACxC,CAAC,CAAC;YAAC;UAAA;YAIDC,QAAQ,GAAG1B,IAAI,CAAC2B,SAAS;YAAA,QACLD,QAAQ,GAC5B,CACIZ,MAAM,EACN;cACIjB,SAAS,EAAE;gBACPJ,EAAE,EAAEO,IAAI,CAACP,EAAE;gBACXO,IAAI,EAAE,IAAA4B,aAAI,EAAC5B,IAAI,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,CAAC;cAC3D;YACJ,CAAC,CACJ,GACD,CACIW,MAAM,EACN;cACId,SAAS,EAAE;gBACPG,IAAI,EAAE,IAAA4B,aAAI,EAAC5B,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,CAAC;cACnE;YACJ,CAAC,CACJ,kDAjBA6B,SAAS,aAAEC,IAAI;YAAA;YAAA,OAmBCD,SAAS,CAACC,IAAI,CAAC;UAAA;YAAhCC,QAAQ;YAAA,wBAEiBA,QAAQ,CAAC/B,IAAI,CAACE,QAAQ,CAACC,KAAK,EAA7CA,KAAK,yBAAXH,IAAI,EAASC,KAAK,yBAALA,KAAK;YAAA,KACtBA,KAAK;cAAA;cAAA;YAAA;YAAA,iCACEb,YAAY,CAACa,KAAK,CAACI,OAAO,CAAC;UAAA;YAGtC,CAACqB,QAAQ,IAAIxC,OAAO,CAACkB,IAAI,wCAAiCD,KAAK,CAACV,EAAE,EAAG;YACrEL,YAAY,CAACZ,CAAC,+GAA4B;UAAC;UAAA;YAAA;QAAA;MAAA;IAAA,CAC9C;IAAA;MAAA;IAAA;EAAA,KACD,CAACiB,EAAE,CAAC,CACP;EAED,IAAMO,IAAI,GAAGgB,OAAO,GAAG,CAAC,CAAC,GAAG,IAAAxB,YAAG,EAACE,QAAQ,EAAE,0BAA0B,EAAE,CAAC,CAAC,CAAC;EAEzE,IAAMsC,WAAW,GAAGhC,IAAI,CAACiC,IAAI,KAAK,aAAa;EAE/C,IAAMC,aAAa,GAAG,CAAC7C,QAAQ,IAAI,CAAC2B,OAAO,IAAI,IAAAmB,gBAAO,EAACnC,IAAI,CAAC;EAC5D;EACA,IAAIkC,aAAa,EAAE;IACf,oBACI,6BAAC,kBAAS;MACN,KAAK,EAAE1D,CAAC,wJAAsE;MAC9E,MAAM,eACF,6BAAC,qBAAa;QACV,eAAY,mBAAmB;QAC/B,OAAO,EAAE;UAAA,OAAMU,OAAO,CAACkB,IAAI,CAAC,oCAAoC,CAAC;QAAA;MAAC,gBAElE,6BAAC,kBAAU;QAAC,IAAI,eAAE,6BAAC,uBAAO;MAAI,EAAG,EAChC5B,CAAC;IAET,EACH;EAEV;EAEA,oBACI,6BAAC,UAAI;IAAC,IAAI,EAAEwB,IAAK;IAAC,QAAQ,EAAEmB;EAAS,GAChC,iBAA0B;IAAA,IAAvBnB,IAAI,SAAJA,IAAI;MAAEoC,IAAI,SAAJA,IAAI;MAAEC,IAAI,SAAJA,IAAI;IAChB,oBACI,6BAAC,sBAAU,QACNrB,OAAO,iBAAI,6BAAC,0BAAgB,OAAG,eAChC,6BAAC,4BAAgB;MAAC,KAAK,EAAEhB,IAAI,CAACsC,IAAI,GAAGtC,IAAI,CAACsC,IAAI,GAAG;IAAW,EAAG,eAC/D,6BAAC,6BAAiB,qBACd,6BAAC,UAAI,qBACD,6BAAC,UAAI;MAAC,IAAI,EAAE;IAAE,gBACV,6BAAC,IAAI;MACD,IAAI,EAAC,MAAM;MACX,UAAU,EAAEC,sBAAU,CAAC5B,MAAM,CAAC,sBAAsB;IAAE,gBAEtD,6BAAC,YAAK;MACF,KAAK,EAAEnC,CAAC,yFAAO;MACf,QAAQ,EAAEwD,WAAY;MACtB,eAAY;IAAyB,EACvC,CACC,CACJ,eACP,6BAAC,UAAI;MAAC,IAAI,EAAE;IAAE,gBACV,6BAAC,IAAI;MACD,IAAI,EAAC,MAAM;MACX,UAAU,EAAEO,sBAAU,CAAC5B,MAAM,CAAC,sBAAsB;IAAE,gBAEtD,6BAAC,YAAK;MACF,QAAQ,EAAE6B,OAAO,CAACxC,IAAI,CAACP,EAAE,CAAE;MAC3B,KAAK,EAAEjB,CAAC,yFAAO;MACf,eAAY;IAAyB,EACvC,CACC,CACJ,CACJ,eACP,6BAAC,UAAI,qBACD,6BAAC,UAAI;MAAC,IAAI,EAAE;IAAG,gBACX,6BAAC,IAAI;MACD,IAAI,EAAC,aAAa;MAClB,UAAU,EAAE+D,sBAAU,CAAC5B,MAAM,CAAC,eAAe;IAAE,gBAE/C,6BAAC,YAAK;MACF,KAAK,EAAEnC,CAAC,gGAAc;MACtB,IAAI,EAAE,CAAE;MACR,QAAQ,EAAEwD,WAAY;MACtB,eAAY;IAAgC,EAC9C,CACC,CACJ,CACJ,EACNA,WAAW,iBACR,6BAAC,UAAI,qBACD,6BAAC,UAAI;MAAC,IAAI,EAAE;IAAG,gBACX,6BAAC,YAAK;MAAC,IAAI,EAAE,MAAO;MAAC,KAAK,EAAE;IAAyB,GAAC,wEAGtD,CAAQ,CACL,CAEd,EACA,CAACA,WAAW,iBACT,6BAAC,UAAI,qBACD,6BAAC,UAAI;MAAC,IAAI,EAAE;IAAG,gBACX,6BAAC,sBAAU;MAAC,GAAG,EAAE;IAAY,GAAExD,CAAC,iGAA2B,CACxD,eACP,6BAAC,UAAI;MAAC,IAAI,EAAE;IAAG,gBACX,6BAAC,IAAI;MAAC,IAAI,EAAE,aAAc;MAAC,YAAY,EAAE;IAAG,GACvC,UAAAiE,IAAI;MAAA,oBACD,6BAAC,wBAAW;QAAC,EAAE,EAAEzC,IAAI,CAACP,EAAE,IAAI;MAAM,GAAKgD,IAAI,EAAI;IAAA,CAClD,CACE,CACJ,CAEd,CACe,EACnBT,WAAW,GAAG,IAAI,gBACf,6BAAC,4BAAgB,qBACb,6BAAC,aAAa,qBACV,6BAAC,qBAAa;MACV,OAAO,EAAE;QAAA,OAAM9C,OAAO,CAACkB,IAAI,CAAC,2BAA2B,CAAC;MAAA;IAAC,GAC3D5B,CAAC,4FAAyB,eAC5B,6BAAC,qBAAa;MACV,eAAY,yBAAyB;MACrC,OAAO,EAAE,iBAAAkE,EAAE,EAAI;QACXN,IAAI,CAACO,MAAM,CAACD,EAAE,CAAC;MACnB;IAAE,GACJlE,CAAC,kGAA6B,CACpB,CAEvB,CACQ;EAErB,CAAC,CACE;AAEf,CAAC;AAAC"}
@@ -1,18 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.UPDATE_GROUP = exports.READ_GROUP = exports.LIST_GROUPS = exports.DELETE_GROUP = exports.CREATE_GROUP = void 0;
9
-
10
8
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
-
12
9
  var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
13
-
14
10
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
15
-
16
11
  var fields = "\n id\n name\n slug\n description\n permissions\n system\n createdOn\n";
17
12
  var LIST_GROUPS = (0, _graphqlTag.default)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n query listGroups {\n security {\n groups: listGroups {\n data {\n ", "\n }\n }\n }\n }\n"])), fields);
18
13
  exports.LIST_GROUPS = LIST_GROUPS;
@@ -1 +1 @@
1
- {"version":3,"names":["fields","LIST_GROUPS","gql","READ_GROUP","CREATE_GROUP","UPDATE_GROUP","DELETE_GROUP"],"sources":["graphql.ts"],"sourcesContent":["import gql from \"graphql-tag\";\n\nconst fields = `\n id\n name\n slug\n description\n permissions\n system\n createdOn\n`;\n\nexport const LIST_GROUPS = gql`\n query listGroups {\n security {\n groups: listGroups {\n data {\n ${fields}\n }\n }\n }\n }\n`;\n\nexport const READ_GROUP = gql`\n query getGroup($id: ID!) {\n security {\n group: getGroup(where: { id: $id }){\n data {\n ${fields}\n }\n error {\n code\n message\n }\n }\n }\n }\n`;\n\nexport const CREATE_GROUP = gql`\n mutation createGroup($data: SecurityGroupCreateInput!){\n security {\n group: createGroup(data: $data) {\n data {\n ${fields}\n }\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\n\nexport const UPDATE_GROUP = gql`\n mutation updateGroup($id: ID!, $data: SecurityGroupUpdateInput!){\n security {\n group: updateGroup(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_GROUP = gql`\n mutation deleteGroup($id: ID!) {\n security {\n deleteGroup(id: $id) {\n data\n error {\n code\n message\n }\n }\n }\n }\n`;\n"],"mappings":";;;;;;;;;;;AAAA;;;;AAEA,IAAMA,MAAM,gGAAZ;AAUO,IAAMC,WAAW,OAAGC,mBAAH,2QAKFF,MALE,CAAjB;;AAYA,IAAMG,UAAU,OAAGD,mBAAH,wYAKDF,MALC,CAAhB;;AAgBA,IAAMI,YAAY,OAAGF,mBAAH,4bAKHF,MALG,CAAlB;;AAiBA,IAAMK,YAAY,OAAGH,mBAAH,+cAKHF,MALG,CAAlB;;AAiBA,IAAMM,YAAY,OAAGJ,mBAAH,gVAAlB"}
1
+ {"version":3,"names":["fields","LIST_GROUPS","gql","READ_GROUP","CREATE_GROUP","UPDATE_GROUP","DELETE_GROUP"],"sources":["graphql.ts"],"sourcesContent":["import gql from \"graphql-tag\";\n\nconst fields = `\n id\n name\n slug\n description\n permissions\n system\n createdOn\n`;\n\nexport const LIST_GROUPS = gql`\n query listGroups {\n security {\n groups: listGroups {\n data {\n ${fields}\n }\n }\n }\n }\n`;\n\nexport const READ_GROUP = gql`\n query getGroup($id: ID!) {\n security {\n group: getGroup(where: { id: $id }){\n data {\n ${fields}\n }\n error {\n code\n message\n }\n }\n }\n }\n`;\n\nexport const CREATE_GROUP = gql`\n mutation createGroup($data: SecurityGroupCreateInput!){\n security {\n group: createGroup(data: $data) {\n data {\n ${fields}\n }\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\n\nexport const UPDATE_GROUP = gql`\n mutation updateGroup($id: ID!, $data: SecurityGroupUpdateInput!){\n security {\n group: updateGroup(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_GROUP = gql`\n mutation deleteGroup($id: ID!) {\n security {\n deleteGroup(id: $id) {\n data\n error {\n code\n message\n }\n }\n }\n }\n`;\n"],"mappings":";;;;;;;;AAAA;AAA8B;AAE9B,IAAMA,MAAM,gGAQX;AAEM,IAAMC,WAAW,OAAGC,mBAAG,2QAKRF,MAAM,CAK3B;AAAC;AAEK,IAAMG,UAAU,OAAGD,mBAAG,wYAKPF,MAAM,CAS3B;AAAC;AAEK,IAAMI,YAAY,OAAGF,mBAAG,4bAKTF,MAAM,CAU3B;AAAC;AAEK,IAAMK,YAAY,OAAGH,mBAAG,+cAKTF,MAAM,CAU3B;AAAC;AAEK,IAAMM,YAAY,OAAGJ,mBAAG,gVAY9B;AAAC"}
@@ -3,9 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
-
7
6
  var _Groups = require("./Groups");
8
-
9
7
  Object.keys(_Groups).forEach(function (key) {
10
8
  if (key === "default" || key === "__esModule") return;
11
9
  if (key in exports && exports[key] === _Groups[key]) return;
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./Groups\";\n"],"mappings":";;;;;;AAAA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./Groups\";\n"],"mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
package/ui/views/utils.js CHANGED
@@ -1,26 +1,20 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.deserializeSorters = void 0;
9
-
10
8
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
-
12
9
  var deserializeSorters = function deserializeSorters(data) {
13
10
  if (typeof data !== "string") {
14
11
  return data;
15
12
  }
16
-
17
13
  var _ref = data.split("_"),
18
- _ref2 = (0, _slicedToArray2.default)(_ref, 2),
19
- field = _ref2[0],
20
- orderBy = _ref2[1];
21
-
14
+ _ref2 = (0, _slicedToArray2.default)(_ref, 2),
15
+ field = _ref2[0],
16
+ orderBy = _ref2[1];
22
17
  var order = String(orderBy).toLowerCase() === "asc" ? "asc" : "desc";
23
18
  return [field, order];
24
19
  };
25
-
26
20
  exports.deserializeSorters = deserializeSorters;
@@ -1 +1 @@
1
- {"version":3,"names":["deserializeSorters","data","split","field","orderBy","order","String","toLowerCase"],"sources":["utils.ts"],"sourcesContent":["type SortTypes = \"asc\" | \"desc\";\nexport const deserializeSorters = (data: string): [string, SortTypes] => {\n if (typeof data !== \"string\") {\n return data;\n }\n const [field, orderBy] = data.split(\"_\") as [string, SortTypes];\n const order = String(orderBy).toLowerCase() === \"asc\" ? \"asc\" : \"desc\";\n return [field, order];\n};\n"],"mappings":";;;;;;;;;;;AACO,IAAMA,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,IAAD,EAAuC;EACrE,IAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B;IAC1B,OAAOA,IAAP;EACH;;EACD,WAAyBA,IAAI,CAACC,KAAL,CAAW,GAAX,CAAzB;EAAA;EAAA,IAAOC,KAAP;EAAA,IAAcC,OAAd;;EACA,IAAMC,KAAK,GAAGC,MAAM,CAACF,OAAD,CAAN,CAAgBG,WAAhB,OAAkC,KAAlC,GAA0C,KAA1C,GAAkD,MAAhE;EACA,OAAO,CAACJ,KAAD,EAAQE,KAAR,CAAP;AACH,CAPM"}
1
+ {"version":3,"names":["deserializeSorters","data","split","field","orderBy","order","String","toLowerCase"],"sources":["utils.ts"],"sourcesContent":["type SortTypes = \"asc\" | \"desc\";\nexport const deserializeSorters = (data: string): [string, SortTypes] => {\n if (typeof data !== \"string\") {\n return data;\n }\n const [field, orderBy] = data.split(\"_\") as [string, SortTypes];\n const order = String(orderBy).toLowerCase() === \"asc\" ? \"asc\" : \"desc\";\n return [field, order];\n};\n"],"mappings":";;;;;;;;AACO,IAAMA,kBAAkB,GAAG,SAArBA,kBAAkB,CAAIC,IAAY,EAA0B;EACrE,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IAC1B,OAAOA,IAAI;EACf;EACA,WAAyBA,IAAI,CAACC,KAAK,CAAC,GAAG,CAAC;IAAA;IAAjCC,KAAK;IAAEC,OAAO;EACrB,IAAMC,KAAK,GAAGC,MAAM,CAACF,OAAO,CAAC,CAACG,WAAW,EAAE,KAAK,KAAK,GAAG,KAAK,GAAG,MAAM;EACtE,OAAO,CAACJ,KAAK,EAAEE,KAAK,CAAC;AACzB,CAAC;AAAC"}