@webiny/app-security-access-management 5.43.2 → 6.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/components/GroupAutocomplete/graphql.js +16 -11
  2. package/components/GroupAutocomplete/graphql.js.map +1 -1
  3. package/components/GroupAutocomplete/index.js +11 -17
  4. package/components/GroupAutocomplete/index.js.map +1 -1
  5. package/components/GroupsMultiAutocomplete/graphql.js +21 -11
  6. package/components/GroupsMultiAutocomplete/graphql.js.map +1 -1
  7. package/components/GroupsMultiAutocomplete/index.js +11 -17
  8. package/components/GroupsMultiAutocomplete/index.js.map +1 -1
  9. package/components/NotAuthorizedError/NotAuthorizedError.js +18 -61
  10. package/components/NotAuthorizedError/NotAuthorizedError.js.map +1 -1
  11. package/components/NotAuthorizedError/index.js +1 -12
  12. package/components/NotAuthorizedError/index.js.map +1 -1
  13. package/components/TeamAutocomplete/graphql.js +16 -11
  14. package/components/TeamAutocomplete/graphql.js.map +1 -1
  15. package/components/TeamAutocomplete/index.js +11 -17
  16. package/components/TeamAutocomplete/index.js.map +1 -1
  17. package/components/TeamsMultiAutocomplete/graphql.js +21 -11
  18. package/components/TeamsMultiAutocomplete/graphql.js.map +1 -1
  19. package/components/TeamsMultiAutocomplete/index.js +11 -17
  20. package/components/TeamsMultiAutocomplete/index.js.map +1 -1
  21. package/index.d.ts +0 -7
  22. package/index.js +80 -71
  23. package/index.js.map +1 -1
  24. package/package.json +13 -13
  25. package/plugins/constants.js +1 -7
  26. package/plugins/constants.js.map +1 -1
  27. package/plugins/index.js +4 -13
  28. package/plugins/index.js.map +1 -1
  29. package/plugins/installation.js +61 -50
  30. package/plugins/installation.js.map +1 -1
  31. package/plugins/permissionRenderer/SecurityPermissions.js +84 -127
  32. package/plugins/permissionRenderer/SecurityPermissions.js.map +1 -1
  33. package/plugins/permissionRenderer/index.js +17 -23
  34. package/plugins/permissionRenderer/index.js.map +1 -1
  35. package/plugins/routes.js +22 -33
  36. package/plugins/routes.js.map +1 -1
  37. package/plugins/secureRouteError.js +6 -13
  38. package/plugins/secureRouteError.js.map +1 -1
  39. package/types.js +1 -5
  40. package/ui/elements/GroupAutocompleteElement.js +29 -45
  41. package/ui/elements/GroupAutocompleteElement.js.map +1 -1
  42. package/ui/elements/GroupsMultiAutocompleteElement.js +29 -45
  43. package/ui/elements/GroupsMultiAutocompleteElement.js.map +1 -1
  44. package/ui/elements/TeamAutocompleteElement.js +29 -45
  45. package/ui/elements/TeamAutocompleteElement.js.map +1 -1
  46. package/ui/views/ApiKeys/ApiKeyForm.js +137 -200
  47. package/ui/views/ApiKeys/ApiKeyForm.js.map +1 -1
  48. package/ui/views/ApiKeys/ApiKeys.js +9 -17
  49. package/ui/views/ApiKeys/ApiKeys.js.map +1 -1
  50. package/ui/views/ApiKeys/ApiKeysDataList.js +110 -134
  51. package/ui/views/ApiKeys/ApiKeysDataList.js.map +1 -1
  52. package/ui/views/ApiKeys/graphql.js +80 -16
  53. package/ui/views/ApiKeys/graphql.js.map +1 -1
  54. package/ui/views/ApiKeys/index.js +1 -16
  55. package/ui/views/ApiKeys/index.js.map +1 -1
  56. package/ui/views/ApiKeys/utils.js +3 -11
  57. package/ui/views/ApiKeys/utils.js.map +1 -1
  58. package/ui/views/Groups/Groups.js +9 -17
  59. package/ui/views/Groups/Groups.js.map +1 -1
  60. package/ui/views/Groups/GroupsDataList.js +114 -141
  61. package/ui/views/Groups/GroupsDataList.js.map +1 -1
  62. package/ui/views/Groups/GroupsForm.js +139 -188
  63. package/ui/views/Groups/GroupsForm.js.map +1 -1
  64. package/ui/views/Groups/graphql.js +83 -16
  65. package/ui/views/Groups/graphql.js.map +1 -1
  66. package/ui/views/Groups/index.js +1 -16
  67. package/ui/views/Groups/index.js.map +1 -1
  68. package/ui/views/Teams/Teams.js +9 -17
  69. package/ui/views/Teams/Teams.js.map +1 -1
  70. package/ui/views/Teams/TeamsDataList.js +116 -141
  71. package/ui/views/Teams/TeamsDataList.js.map +1 -1
  72. package/ui/views/Teams/TeamsForm.js +118 -150
  73. package/ui/views/Teams/TeamsForm.js.map +1 -1
  74. package/ui/views/Teams/graphql.js +87 -16
  75. package/ui/views/Teams/graphql.js.map +1 -1
  76. package/ui/views/Teams/index.js +1 -16
  77. package/ui/views/Teams/index.js.map +1 -1
  78. package/ui/views/utils.js +3 -14
  79. package/ui/views/utils.js.map +1 -1
@@ -1,248 +1,185 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.ApiKeyForm = void 0;
9
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
10
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
- var _base = _interopRequireDefault(require("@emotion/styled/base"));
12
- var _react = _interopRequireWildcard(require("react"));
13
- var _reactHooks = require("@apollo/react-hooks");
14
- var _get = _interopRequireDefault(require("lodash/get"));
15
- var _reactRouter = require("@webiny/react-router");
16
- var _i18n = require("@webiny/app/i18n");
17
- var _form = require("@webiny/form");
18
- var _Grid = require("@webiny/ui/Grid");
19
- var _Input = require("@webiny/ui/Input");
20
- var _Button = require("@webiny/ui/Button");
21
- var _Progress = require("@webiny/ui/Progress");
22
- var _FormElementMessage = require("@webiny/ui/FormElementMessage");
23
- var _Permissions = require("@webiny/app-admin/components/Permissions");
24
- var _validation = require("@webiny/validation");
25
- var _SimpleForm = require("@webiny/app-admin/components/SimpleForm");
26
- var _Typography = require("@webiny/ui/Typography");
27
- var _useSnackbar2 = require("@webiny/app-admin/hooks/useSnackbar");
28
- var _utils = require("./utils");
29
- var GQL = _interopRequireWildcard(require("./graphql"));
30
- var _Snackbar = require("@webiny/ui/Snackbar");
31
- var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
32
- var _EmptyView = _interopRequireDefault(require("@webiny/app-admin/components/EmptyView"));
33
- var _add18px = require("@webiny/app-admin/assets/icons/add-18px.svg");
34
- var _content_copy = require("@material-design-icons/svg/outlined/content_copy.svg");
35
- var _Tooltip = require("@webiny/ui/Tooltip");
36
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
37
- function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
38
- var t = _i18n.i18n.ns("app-security-admin-users/admin/api-keys/form");
39
- var ButtonWrapper = /*#__PURE__*/(0, _base.default)("div", process.env.NODE_ENV === "production" ? {
40
- target: "e18bg2x41"
41
- } : {
42
- target: "e18bg2x41",
43
- label: "ButtonWrapper"
44
- })(process.env.NODE_ENV === "production" ? {
45
- name: "1eoy87d",
46
- styles: "display:flex;justify-content:space-between"
47
- } : {
48
- name: "1eoy87d",
49
- styles: "display:flex;justify-content:space-between",
50
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFwaUtleUZvcm0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdDc0IiLCJmaWxlIjoiQXBpS2V5Rm9ybS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2sgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZU11dGF0aW9uLCB1c2VRdWVyeSB9IGZyb20gXCJAYXBvbGxvL3JlYWN0LWhvb2tzXCI7XG5pbXBvcnQgZ2V0IGZyb20gXCJsb2Rhc2gvZ2V0XCI7XG5pbXBvcnQgeyB1c2VSb3V0ZXIgfSBmcm9tIFwiQHdlYmlueS9yZWFjdC1yb3V0ZXJcIjtcbmltcG9ydCB7IGkxOG4gfSBmcm9tIFwiQHdlYmlueS9hcHAvaTE4blwiO1xuaW1wb3J0IHsgRm9ybSB9IGZyb20gXCJAd2ViaW55L2Zvcm1cIjtcbmltcG9ydCB7IEdyaWQsIENlbGwgfSBmcm9tIFwiQHdlYmlueS91aS9HcmlkXCI7XG5pbXBvcnQgeyBJbnB1dCB9IGZyb20gXCJAd2ViaW55L3VpL0lucHV0XCI7XG5pbXBvcnQge1xuICAgIEJ1dHRvbkRlZmF1bHQsXG4gICAgQnV0dG9uSWNvbixcbiAgICBCdXR0b25QcmltYXJ5LFxuICAgIENvcHlCdXR0b24sXG4gICAgSWNvbkJ1dHRvblxufSBmcm9tIFwiQHdlYmlueS91aS9CdXR0b25cIjtcbmltcG9ydCB7IENpcmN1bGFyUHJvZ3Jlc3MgfSBmcm9tIFwiQHdlYmlueS91aS9Qcm9ncmVzc1wiO1xuaW1wb3J0IHsgRm9ybUVsZW1lbnRNZXNzYWdlIH0gZnJvbSBcIkB3ZWJpbnkvdWkvRm9ybUVsZW1lbnRNZXNzYWdlXCI7XG5pbXBvcnQgeyBQZXJtaXNzaW9ucyB9IGZyb20gXCJAd2ViaW55L2FwcC1hZG1pbi9jb21wb25lbnRzL1Blcm1pc3Npb25zXCI7XG5pbXBvcnQgeyB2YWxpZGF0aW9uIH0gZnJvbSBcIkB3ZWJpbnkvdmFsaWRhdGlvblwiO1xuaW1wb3J0IHtcbiAgICBTaW1wbGVGb3JtLFxuICAgIFNpbXBsZUZvcm1Gb290ZXIsXG4gICAgU2ltcGxlRm9ybUNvbnRlbnQsXG4gICAgU2ltcGxlRm9ybUhlYWRlclxufSBmcm9tIFwiQHdlYmlueS9hcHAtYWRtaW4vY29tcG9uZW50cy9TaW1wbGVGb3JtXCI7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5IH0gZnJvbSBcIkB3ZWJpbnkvdWkvVHlwb2dyYXBoeVwiO1xuaW1wb3J0IHsgdXNlU25hY2tiYXIgfSBmcm9tIFwiQHdlYmlueS9hcHAtYWRtaW4vaG9va3MvdXNlU25hY2tiYXJcIjtcbmltcG9ydCB7IHBpY2tEYXRhRm9yQVBJIH0gZnJvbSBcIi4vdXRpbHNcIjtcbmltcG9ydCAqIGFzIEdRTCBmcm9tIFwiLi9ncmFwaHFsXCI7XG5pbXBvcnQgeyBTbmFja2JhckFjdGlvbiB9IGZyb20gXCJAd2ViaW55L3VpL1NuYWNrYmFyXCI7XG5pbXBvcnQgaXNFbXB0eSBmcm9tIFwibG9kYXNoL2lzRW1wdHlcIjtcbmltcG9ydCBFbXB0eVZpZXcgZnJvbSBcIkB3ZWJpbnkvYXBwLWFkbWluL2NvbXBvbmVudHMvRW1wdHlWaWV3XCI7XG5pbXBvcnQgeyBSZWFjdENvbXBvbmVudCBhcyBBZGRJY29uIH0gZnJvbSBcIkB3ZWJpbnkvYXBwLWFkbWluL2Fzc2V0cy9pY29ucy9hZGQtMThweC5zdmdcIjtcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIENvcHlJY29uIH0gZnJvbSBcIkBtYXRlcmlhbC1kZXNpZ24taWNvbnMvc3ZnL291dGxpbmVkL2NvbnRlbnRfY29weS5zdmdcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgQXBpS2V5IH0gZnJvbSBcIn4vdHlwZXNcIjtcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tIFwiQHdlYmlueS91aS9Ub29sdGlwXCI7XG5cbmNvbnN0IHQgPSBpMThuLm5zKFwiYXBwLXNlY3VyaXR5LWFkbWluLXVzZXJzL2FkbWluL2FwaS1rZXlzL2Zvcm1cIik7XG5cbmNvbnN0IEJ1dHRvbldyYXBwZXIgPSBzdHlsZWQoXCJkaXZcIikoe1xuICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgIGp1c3RpZnlDb250ZW50OiBcInNwYWNlLWJldHdlZW5cIlxufSk7XG5cbmNvbnN0IFBlcm1pc3Npb25zVGl0bGVDZWxsID0gc3R5bGVkKENlbGwpYFxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBpS2V5Rm9ybVByb3BzIHtcbiAgICAvLyBUT0RPIEB0cy1yZWZhY3RvciBkZWxldGUgYW5kIGdvIHVwIHRoZSB0cmVlIGFuZCBzb3J0IGl0IG91dFxuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGNvbnN0IEFwaUtleUZvcm0gPSAoKSA9PiB7XG4gICAgY29uc3QgeyBsb2NhdGlvbiwgaGlzdG9yeSB9ID0gdXNlUm91dGVyKCk7XG4gICAgY29uc3QgeyBzaG93U25hY2tiYXIgfSA9IHVzZVNuYWNrYmFyKCk7XG4gICAgY29uc3QgbmV3RW50cnkgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCkuZ2V0KFwibmV3XCIpID09PSBcInRydWVcIjtcbiAgICBjb25zdCBpZCA9IG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKS5nZXQoXCJpZFwiKTtcblxuICAgIGNvbnN0IGdldFF1ZXJ5ID0gdXNlUXVlcnkoR1FMLlJFQURfQVBJX0tFWSwge1xuICAgICAgICB2YXJpYWJsZXM6IHsgaWQgfSxcbiAgICAgICAgc2tpcDogIWlkLFxuICAgICAgICBvbkNvbXBsZXRlZDogZGF0YSA9PiB7XG4gICAgICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHsgZXJyb3IgfSA9IGRhdGEuc2VjdXJpdHkuYXBpS2V5O1xuICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgaGlzdG9yeS5wdXNoKFwiL2FjY2Vzcy1tYW5hZ2VtZW50L2FwaS1rZXlzXCIpO1xuICAgICAgICAgICAgICAgIHNob3dTbmFja2JhcihlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgW2NyZWF0ZSwgY3JlYXRlTXV0YXRpb25dID0gdXNlTXV0YXRpb24oR1FMLkNSRUFURV9BUElfS0VZLCB7XG4gICAgICAgIHJlZmV0Y2hRdWVyaWVzOiBbeyBxdWVyeTogR1FMLkxJU1RfQVBJX0tFWVMgfV1cbiAgICB9KTtcblxuICAgIGNvbnN0IFt1cGRhdGUsIHVwZGF0ZU11dGF0aW9uXSA9IHVzZU11dGF0aW9uKEdRTC5VUERBVEVfQVBJX0tFWSwge1xuICAgICAgICByZWZldGNoUXVlcmllczogW3sgcXVlcnk6IEdRTC5MSVNUX0FQSV9LRVlTIH1dXG4gICAgfSk7XG5cbiAgICBjb25zdCBsb2FkaW5nID0gW2dldFF1ZXJ5LCBjcmVhdGVNdXRhdGlvbiwgdXBkYXRlTXV0YXRpb25dLmZpbmQoaXRlbSA9PiBpdGVtLmxvYWRpbmcpO1xuXG4gICAgY29uc3Qgb25TdWJtaXQgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgYXN5bmMgKGZvcm1EYXRhOiBBcGlLZXkpID0+IHtcbiAgICAgICAgICAgIGlmICghZm9ybURhdGEucGVybWlzc2lvbnMgfHwgIWZvcm1EYXRhLnBlcm1pc3Npb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHNob3dTbmFja2Jhcih0YFlvdSBtdXN0IGNvbmZpZ3VyZSBwZXJtaXNzaW9ucyBiZWZvcmUgc2F2aW5nIWAsIHtcbiAgICAgICAgICAgICAgICAgICAgdGltZW91dDogNjAwMDAsXG4gICAgICAgICAgICAgICAgICAgIGRpc21pc3Nlc09uQWN0aW9uOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBhY3Rpb246IDxTbmFja2JhckFjdGlvbiBsYWJlbD17XCJPS1wifSAvPlxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgaXNVcGRhdGUgPSBmb3JtRGF0YS5jcmVhdGVkT247XG4gICAgICAgICAgICBjb25zdCBbb3BlcmF0aW9uLCBhcmdzXSA9IGlzVXBkYXRlXG4gICAgICAgICAgICAgICAgPyBbdXBkYXRlLCB7IHZhcmlhYmxlczogeyBpZDogZm9ybURhdGEuaWQsIGRhdGE6IHBpY2tEYXRhRm9yQVBJKGZvcm1EYXRhKSB9IH1dXG4gICAgICAgICAgICAgICAgOiBbY3JlYXRlLCB7IHZhcmlhYmxlczogeyBkYXRhOiBwaWNrRGF0YUZvckFQSShmb3JtRGF0YSkgfSB9XTtcblxuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBvcGVyYXRpb24oYXJncyk7XG5cbiAgICAgICAgICAgIGNvbnN0IHsgZXJyb3IgfSA9IHJlc3BvbnNlLmRhdGEuc2VjdXJpdHkuYXBpS2V5O1xuICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNob3dTbmFja2JhcihlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgeyBpZCB9ID0gcmVzcG9uc2UuZGF0YS5zZWN1cml0eS5hcGlLZXkuZGF0YTtcblxuICAgICAgICAgICAgIWlzVXBkYXRlICYmIGhpc3RvcnkucHVzaChgL2FjY2Vzcy1tYW5hZ2VtZW50L2FwaS1rZXlzP2lkPSR7aWR9YCk7XG4gICAgICAgICAgICBzaG93U25hY2tiYXIodGBBUEkga2V5IHNhdmVkIHN1Y2Nlc3NmdWxseS5gKTtcbiAgICAgICAgfSxcbiAgICAgICAgW2lkXVxuICAgICk7XG5cbiAgICBjb25zdCBkYXRhOiBBcGlLZXkgPSBnZXQoZ2V0UXVlcnksIFwiZGF0YS5zZWN1cml0eS5hcGlLZXkuZGF0YVwiLCB7fSk7XG5cbiAgICBjb25zdCBzaG93RW1wdHlWaWV3ID0gIW5ld0VudHJ5ICYmICFsb2FkaW5nICYmIGlzRW1wdHkoZGF0YSk7XG4gICAgLy8gUmVuZGVyIFwiTm8gY29udGVudFwiIHNlbGVjdGVkIHZpZXcuXG4gICAgaWYgKHNob3dFbXB0eVZpZXcpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxFbXB0eVZpZXdcbiAgICAgICAgICAgICAgICB0aXRsZT17dGBDbGljayBvbiB0aGUgbGVmdCBzaWRlIGxpc3QgdG8gZGlzcGxheSBBUEkga2V5IGRldGFpbHMgb3IgY3JlYXRlIGEuLi5gfVxuICAgICAgICAgICAgICAgIGFjdGlvbj17XG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b25EZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cIm5ldy1yZWNvcmQtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhpc3RvcnkucHVzaChcIi9hY2Nlc3MtbWFuYWdlbWVudC9hcGkta2V5cz9uZXc9dHJ1ZVwiKX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbkljb24gaWNvbj17PEFkZEljb24gLz59IC8+IHt0YE5ldyBBUEkgS2V5YH1cbiAgICAgICAgICAgICAgICAgICAgPC9CdXR0b25EZWZhdWx0PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPEZvcm0gZGF0YT17ZGF0YX0gb25TdWJtaXQ9e29uU3VibWl0fT5cbiAgICAgICAgICAgIHsoeyBkYXRhLCBmb3JtLCBCaW5kIH0pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICA8U2ltcGxlRm9ybT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtsb2FkaW5nICYmIDxDaXJjdWxhclByb2dyZXNzIC8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgPFNpbXBsZUZvcm1IZWFkZXIgdGl0bGU9e2RhdGEubmFtZSA/IGRhdGEubmFtZSA6IFwiVW50aXRsZWRcIn0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTaW1wbGVGb3JtQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENlbGwgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJpbmQgbmFtZT1cIm5hbWVcIiB2YWxpZGF0b3JzPXt2YWxpZGF0aW9uLmNyZWF0ZShcInJlcXVpcmVkXCIpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e3RgTmFtZWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwic2FtLmtleS5uZXcuZm9ybS5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CaW5kPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NlbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2VsbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QmluZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9ycz17dmFsaWRhdGlvbi5jcmVhdGUoXCJyZXF1aXJlZFwiKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e3RgRGVzY3JpcHRpb25gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dzPXs0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cInNhbS5rZXkubmV3LmZvcm0uZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JpbmQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ2VsbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDZWxsIHNwYW49ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFR5cG9ncmFwaHkgdXNlPXtcInN1YnRpdGxlMVwifT57dGBUb2tlbmB9PC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtkYXRhLnRva2VuID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IFwidmFyKC0tbWRjLXRoZW1lLWJhY2tncm91bmQpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogXCI4cHhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nTGVmdDogXCIxNnB4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZUhlaWdodDogXCI0OHB4XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsQWxpZ246IFwibWlkZGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtkYXRhLnRva2VufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLCByaWdodDogXCIzMnB4XCIgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q29weUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17ZGF0YS50b2tlbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Db3B5PXsoKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1NuYWNrYmFyKFwiU3VjY2Vzc2Z1bGx5IGNvcGllZCFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGb3JtRWxlbWVudE1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZb3VyIHRva2VuIHdpbGwgYmUgc2hvd24gb25jZSB5b3Ugc3VibWl0IHRoZSBmb3JtLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0Zvcm1FbGVtZW50TWVzc2FnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ2VsbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDZWxsIHNwYW49ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQZXJtaXNzaW9uc1RpdGxlQ2VsbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFR5cG9ncmFwaHkgdXNlPXtcInN1YnRpdGxlMVwifT57dGBQZXJtaXNzaW9uc2B9PC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ9XCJDb3B5IHBlcm1pc3Npb25zIGFzIEpTT05cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9e1widG9wXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17PENvcHlJY29uIC8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShkYXRhLnBlcm1pc3Npb25zLCBudWxsLCAyKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1NuYWNrYmFyKFwiSlNPTiBkYXRhIGNvcGllZCB0byBjbGlwYm9hcmQuXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Blcm1pc3Npb25zVGl0bGVDZWxsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NlbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDZWxsIHNwYW49ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCaW5kIG5hbWU9e1wicGVybWlzc2lvbnNcIn0gZGVmYXVsdFZhbHVlPXtbXX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2JpbmQgPT4gPFBlcm1pc3Npb25zIGlkPXtkYXRhLmlkIHx8IFwibmV3XCJ9IHsuLi5iaW5kfSAvPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQmluZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9DZWxsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU2ltcGxlRm9ybUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U2ltcGxlRm9ybUZvb3Rlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbkRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhpc3RvcnkucHVzaChcIi9hY2Nlc3MtbWFuYWdlbWVudC9hcGkta2V5c1wiKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwic2FtLmtleS5uZXcuZm9ybS5idXR0b24uY2FuY2VsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt0YENhbmNlbGB9PC9CdXR0b25EZWZhdWx0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uUHJpbWFyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17ZXYgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm0uc3VibWl0KGV2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cInNhbS5rZXkubmV3LmZvcm0uYnV0dG9uLnNhdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3RgU2F2ZSBBUEkga2V5YH08L0J1dHRvblByaW1hcnk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b25XcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TaW1wbGVGb3JtRm9vdGVyPlxuICAgICAgICAgICAgICAgICAgICA8L1NpbXBsZUZvcm0+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgIDwvRm9ybT5cbiAgICApO1xufTtcbiJdfQ== */",
51
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
52
- });
53
- var PermissionsTitleCell = /*#__PURE__*/(0, _base.default)(_Grid.Cell, process.env.NODE_ENV === "production" ? {
54
- target: "e18bg2x40"
55
- } : {
56
- target: "e18bg2x40",
57
- label: "PermissionsTitleCell"
58
- })(process.env.NODE_ENV === "production" ? {
59
- name: "s5xdrg",
60
- styles: "display:flex;align-items:center"
61
- } : {
62
- name: "s5xdrg",
63
- styles: "display:flex;align-items:center",
64
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFwaUtleUZvcm0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZDeUMiLCJmaWxlIjoiQXBpS2V5Rm9ybS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2sgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZU11dGF0aW9uLCB1c2VRdWVyeSB9IGZyb20gXCJAYXBvbGxvL3JlYWN0LWhvb2tzXCI7XG5pbXBvcnQgZ2V0IGZyb20gXCJsb2Rhc2gvZ2V0XCI7XG5pbXBvcnQgeyB1c2VSb3V0ZXIgfSBmcm9tIFwiQHdlYmlueS9yZWFjdC1yb3V0ZXJcIjtcbmltcG9ydCB7IGkxOG4gfSBmcm9tIFwiQHdlYmlueS9hcHAvaTE4blwiO1xuaW1wb3J0IHsgRm9ybSB9IGZyb20gXCJAd2ViaW55L2Zvcm1cIjtcbmltcG9ydCB7IEdyaWQsIENlbGwgfSBmcm9tIFwiQHdlYmlueS91aS9HcmlkXCI7XG5pbXBvcnQgeyBJbnB1dCB9IGZyb20gXCJAd2ViaW55L3VpL0lucHV0XCI7XG5pbXBvcnQge1xuICAgIEJ1dHRvbkRlZmF1bHQsXG4gICAgQnV0dG9uSWNvbixcbiAgICBCdXR0b25QcmltYXJ5LFxuICAgIENvcHlCdXR0b24sXG4gICAgSWNvbkJ1dHRvblxufSBmcm9tIFwiQHdlYmlueS91aS9CdXR0b25cIjtcbmltcG9ydCB7IENpcmN1bGFyUHJvZ3Jlc3MgfSBmcm9tIFwiQHdlYmlueS91aS9Qcm9ncmVzc1wiO1xuaW1wb3J0IHsgRm9ybUVsZW1lbnRNZXNzYWdlIH0gZnJvbSBcIkB3ZWJpbnkvdWkvRm9ybUVsZW1lbnRNZXNzYWdlXCI7XG5pbXBvcnQgeyBQZXJtaXNzaW9ucyB9IGZyb20gXCJAd2ViaW55L2FwcC1hZG1pbi9jb21wb25lbnRzL1Blcm1pc3Npb25zXCI7XG5pbXBvcnQgeyB2YWxpZGF0aW9uIH0gZnJvbSBcIkB3ZWJpbnkvdmFsaWRhdGlvblwiO1xuaW1wb3J0IHtcbiAgICBTaW1wbGVGb3JtLFxuICAgIFNpbXBsZUZvcm1Gb290ZXIsXG4gICAgU2ltcGxlRm9ybUNvbnRlbnQsXG4gICAgU2ltcGxlRm9ybUhlYWRlclxufSBmcm9tIFwiQHdlYmlueS9hcHAtYWRtaW4vY29tcG9uZW50cy9TaW1wbGVGb3JtXCI7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5IH0gZnJvbSBcIkB3ZWJpbnkvdWkvVHlwb2dyYXBoeVwiO1xuaW1wb3J0IHsgdXNlU25hY2tiYXIgfSBmcm9tIFwiQHdlYmlueS9hcHAtYWRtaW4vaG9va3MvdXNlU25hY2tiYXJcIjtcbmltcG9ydCB7IHBpY2tEYXRhRm9yQVBJIH0gZnJvbSBcIi4vdXRpbHNcIjtcbmltcG9ydCAqIGFzIEdRTCBmcm9tIFwiLi9ncmFwaHFsXCI7XG5pbXBvcnQgeyBTbmFja2JhckFjdGlvbiB9IGZyb20gXCJAd2ViaW55L3VpL1NuYWNrYmFyXCI7XG5pbXBvcnQgaXNFbXB0eSBmcm9tIFwibG9kYXNoL2lzRW1wdHlcIjtcbmltcG9ydCBFbXB0eVZpZXcgZnJvbSBcIkB3ZWJpbnkvYXBwLWFkbWluL2NvbXBvbmVudHMvRW1wdHlWaWV3XCI7XG5pbXBvcnQgeyBSZWFjdENvbXBvbmVudCBhcyBBZGRJY29uIH0gZnJvbSBcIkB3ZWJpbnkvYXBwLWFkbWluL2Fzc2V0cy9pY29ucy9hZGQtMThweC5zdmdcIjtcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIENvcHlJY29uIH0gZnJvbSBcIkBtYXRlcmlhbC1kZXNpZ24taWNvbnMvc3ZnL291dGxpbmVkL2NvbnRlbnRfY29weS5zdmdcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgQXBpS2V5IH0gZnJvbSBcIn4vdHlwZXNcIjtcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tIFwiQHdlYmlueS91aS9Ub29sdGlwXCI7XG5cbmNvbnN0IHQgPSBpMThuLm5zKFwiYXBwLXNlY3VyaXR5LWFkbWluLXVzZXJzL2FkbWluL2FwaS1rZXlzL2Zvcm1cIik7XG5cbmNvbnN0IEJ1dHRvbldyYXBwZXIgPSBzdHlsZWQoXCJkaXZcIikoe1xuICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgIGp1c3RpZnlDb250ZW50OiBcInNwYWNlLWJldHdlZW5cIlxufSk7XG5cbmNvbnN0IFBlcm1pc3Npb25zVGl0bGVDZWxsID0gc3R5bGVkKENlbGwpYFxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBpS2V5Rm9ybVByb3BzIHtcbiAgICAvLyBUT0RPIEB0cy1yZWZhY3RvciBkZWxldGUgYW5kIGdvIHVwIHRoZSB0cmVlIGFuZCBzb3J0IGl0IG91dFxuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGNvbnN0IEFwaUtleUZvcm0gPSAoKSA9PiB7XG4gICAgY29uc3QgeyBsb2NhdGlvbiwgaGlzdG9yeSB9ID0gdXNlUm91dGVyKCk7XG4gICAgY29uc3QgeyBzaG93U25hY2tiYXIgfSA9IHVzZVNuYWNrYmFyKCk7XG4gICAgY29uc3QgbmV3RW50cnkgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCkuZ2V0KFwibmV3XCIpID09PSBcInRydWVcIjtcbiAgICBjb25zdCBpZCA9IG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKS5nZXQoXCJpZFwiKTtcblxuICAgIGNvbnN0IGdldFF1ZXJ5ID0gdXNlUXVlcnkoR1FMLlJFQURfQVBJX0tFWSwge1xuICAgICAgICB2YXJpYWJsZXM6IHsgaWQgfSxcbiAgICAgICAgc2tpcDogIWlkLFxuICAgICAgICBvbkNvbXBsZXRlZDogZGF0YSA9PiB7XG4gICAgICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHsgZXJyb3IgfSA9IGRhdGEuc2VjdXJpdHkuYXBpS2V5O1xuICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgaGlzdG9yeS5wdXNoKFwiL2FjY2Vzcy1tYW5hZ2VtZW50L2FwaS1rZXlzXCIpO1xuICAgICAgICAgICAgICAgIHNob3dTbmFja2JhcihlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgW2NyZWF0ZSwgY3JlYXRlTXV0YXRpb25dID0gdXNlTXV0YXRpb24oR1FMLkNSRUFURV9BUElfS0VZLCB7XG4gICAgICAgIHJlZmV0Y2hRdWVyaWVzOiBbeyBxdWVyeTogR1FMLkxJU1RfQVBJX0tFWVMgfV1cbiAgICB9KTtcblxuICAgIGNvbnN0IFt1cGRhdGUsIHVwZGF0ZU11dGF0aW9uXSA9IHVzZU11dGF0aW9uKEdRTC5VUERBVEVfQVBJX0tFWSwge1xuICAgICAgICByZWZldGNoUXVlcmllczogW3sgcXVlcnk6IEdRTC5MSVNUX0FQSV9LRVlTIH1dXG4gICAgfSk7XG5cbiAgICBjb25zdCBsb2FkaW5nID0gW2dldFF1ZXJ5LCBjcmVhdGVNdXRhdGlvbiwgdXBkYXRlTXV0YXRpb25dLmZpbmQoaXRlbSA9PiBpdGVtLmxvYWRpbmcpO1xuXG4gICAgY29uc3Qgb25TdWJtaXQgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgYXN5bmMgKGZvcm1EYXRhOiBBcGlLZXkpID0+IHtcbiAgICAgICAgICAgIGlmICghZm9ybURhdGEucGVybWlzc2lvbnMgfHwgIWZvcm1EYXRhLnBlcm1pc3Npb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHNob3dTbmFja2Jhcih0YFlvdSBtdXN0IGNvbmZpZ3VyZSBwZXJtaXNzaW9ucyBiZWZvcmUgc2F2aW5nIWAsIHtcbiAgICAgICAgICAgICAgICAgICAgdGltZW91dDogNjAwMDAsXG4gICAgICAgICAgICAgICAgICAgIGRpc21pc3Nlc09uQWN0aW9uOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBhY3Rpb246IDxTbmFja2JhckFjdGlvbiBsYWJlbD17XCJPS1wifSAvPlxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgaXNVcGRhdGUgPSBmb3JtRGF0YS5jcmVhdGVkT247XG4gICAgICAgICAgICBjb25zdCBbb3BlcmF0aW9uLCBhcmdzXSA9IGlzVXBkYXRlXG4gICAgICAgICAgICAgICAgPyBbdXBkYXRlLCB7IHZhcmlhYmxlczogeyBpZDogZm9ybURhdGEuaWQsIGRhdGE6IHBpY2tEYXRhRm9yQVBJKGZvcm1EYXRhKSB9IH1dXG4gICAgICAgICAgICAgICAgOiBbY3JlYXRlLCB7IHZhcmlhYmxlczogeyBkYXRhOiBwaWNrRGF0YUZvckFQSShmb3JtRGF0YSkgfSB9XTtcblxuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBvcGVyYXRpb24oYXJncyk7XG5cbiAgICAgICAgICAgIGNvbnN0IHsgZXJyb3IgfSA9IHJlc3BvbnNlLmRhdGEuc2VjdXJpdHkuYXBpS2V5O1xuICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNob3dTbmFja2JhcihlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgeyBpZCB9ID0gcmVzcG9uc2UuZGF0YS5zZWN1cml0eS5hcGlLZXkuZGF0YTtcblxuICAgICAgICAgICAgIWlzVXBkYXRlICYmIGhpc3RvcnkucHVzaChgL2FjY2Vzcy1tYW5hZ2VtZW50L2FwaS1rZXlzP2lkPSR7aWR9YCk7XG4gICAgICAgICAgICBzaG93U25hY2tiYXIodGBBUEkga2V5IHNhdmVkIHN1Y2Nlc3NmdWxseS5gKTtcbiAgICAgICAgfSxcbiAgICAgICAgW2lkXVxuICAgICk7XG5cbiAgICBjb25zdCBkYXRhOiBBcGlLZXkgPSBnZXQoZ2V0UXVlcnksIFwiZGF0YS5zZWN1cml0eS5hcGlLZXkuZGF0YVwiLCB7fSk7XG5cbiAgICBjb25zdCBzaG93RW1wdHlWaWV3ID0gIW5ld0VudHJ5ICYmICFsb2FkaW5nICYmIGlzRW1wdHkoZGF0YSk7XG4gICAgLy8gUmVuZGVyIFwiTm8gY29udGVudFwiIHNlbGVjdGVkIHZpZXcuXG4gICAgaWYgKHNob3dFbXB0eVZpZXcpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxFbXB0eVZpZXdcbiAgICAgICAgICAgICAgICB0aXRsZT17dGBDbGljayBvbiB0aGUgbGVmdCBzaWRlIGxpc3QgdG8gZGlzcGxheSBBUEkga2V5IGRldGFpbHMgb3IgY3JlYXRlIGEuLi5gfVxuICAgICAgICAgICAgICAgIGFjdGlvbj17XG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b25EZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cIm5ldy1yZWNvcmQtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhpc3RvcnkucHVzaChcIi9hY2Nlc3MtbWFuYWdlbWVudC9hcGkta2V5cz9uZXc9dHJ1ZVwiKX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbkljb24gaWNvbj17PEFkZEljb24gLz59IC8+IHt0YE5ldyBBUEkgS2V5YH1cbiAgICAgICAgICAgICAgICAgICAgPC9CdXR0b25EZWZhdWx0PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPEZvcm0gZGF0YT17ZGF0YX0gb25TdWJtaXQ9e29uU3VibWl0fT5cbiAgICAgICAgICAgIHsoeyBkYXRhLCBmb3JtLCBCaW5kIH0pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICA8U2ltcGxlRm9ybT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtsb2FkaW5nICYmIDxDaXJjdWxhclByb2dyZXNzIC8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgPFNpbXBsZUZvcm1IZWFkZXIgdGl0bGU9e2RhdGEubmFtZSA/IGRhdGEubmFtZSA6IFwiVW50aXRsZWRcIn0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTaW1wbGVGb3JtQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENlbGwgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJpbmQgbmFtZT1cIm5hbWVcIiB2YWxpZGF0b3JzPXt2YWxpZGF0aW9uLmNyZWF0ZShcInJlcXVpcmVkXCIpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e3RgTmFtZWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwic2FtLmtleS5uZXcuZm9ybS5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CaW5kPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NlbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2VsbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QmluZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9ycz17dmFsaWRhdGlvbi5jcmVhdGUoXCJyZXF1aXJlZFwiKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e3RgRGVzY3JpcHRpb25gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dzPXs0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cInNhbS5rZXkubmV3LmZvcm0uZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JpbmQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ2VsbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDZWxsIHNwYW49ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFR5cG9ncmFwaHkgdXNlPXtcInN1YnRpdGxlMVwifT57dGBUb2tlbmB9PC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtkYXRhLnRva2VuID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IFwidmFyKC0tbWRjLXRoZW1lLWJhY2tncm91bmQpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogXCI4cHhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nTGVmdDogXCIxNnB4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZUhlaWdodDogXCI0OHB4XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsQWxpZ246IFwibWlkZGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtkYXRhLnRva2VufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLCByaWdodDogXCIzMnB4XCIgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q29weUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17ZGF0YS50b2tlbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Db3B5PXsoKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1NuYWNrYmFyKFwiU3VjY2Vzc2Z1bGx5IGNvcGllZCFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGb3JtRWxlbWVudE1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZb3VyIHRva2VuIHdpbGwgYmUgc2hvd24gb25jZSB5b3Ugc3VibWl0IHRoZSBmb3JtLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0Zvcm1FbGVtZW50TWVzc2FnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ2VsbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDZWxsIHNwYW49ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQZXJtaXNzaW9uc1RpdGxlQ2VsbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFR5cG9ncmFwaHkgdXNlPXtcInN1YnRpdGxlMVwifT57dGBQZXJtaXNzaW9uc2B9PC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ9XCJDb3B5IHBlcm1pc3Npb25zIGFzIEpTT05cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9e1widG9wXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17PENvcHlJY29uIC8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShkYXRhLnBlcm1pc3Npb25zLCBudWxsLCAyKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1NuYWNrYmFyKFwiSlNPTiBkYXRhIGNvcGllZCB0byBjbGlwYm9hcmQuXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Blcm1pc3Npb25zVGl0bGVDZWxsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NlbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDZWxsIHNwYW49ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCaW5kIG5hbWU9e1wicGVybWlzc2lvbnNcIn0gZGVmYXVsdFZhbHVlPXtbXX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2JpbmQgPT4gPFBlcm1pc3Npb25zIGlkPXtkYXRhLmlkIHx8IFwibmV3XCJ9IHsuLi5iaW5kfSAvPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQmluZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9DZWxsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU2ltcGxlRm9ybUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U2ltcGxlRm9ybUZvb3Rlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbkRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhpc3RvcnkucHVzaChcIi9hY2Nlc3MtbWFuYWdlbWVudC9hcGkta2V5c1wiKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwic2FtLmtleS5uZXcuZm9ybS5idXR0b24uY2FuY2VsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt0YENhbmNlbGB9PC9CdXR0b25EZWZhdWx0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uUHJpbWFyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17ZXYgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm0uc3VibWl0KGV2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cInNhbS5rZXkubmV3LmZvcm0uYnV0dG9uLnNhdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3RgU2F2ZSBBUEkga2V5YH08L0J1dHRvblByaW1hcnk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b25XcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TaW1wbGVGb3JtRm9vdGVyPlxuICAgICAgICAgICAgICAgICAgICA8L1NpbXBsZUZvcm0+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgIDwvRm9ybT5cbiAgICApO1xufTtcbiJdfQ== */",
65
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
66
- });
67
- var ApiKeyForm = exports.ApiKeyForm = function ApiKeyForm() {
68
- var _useRouter = (0, _reactRouter.useRouter)(),
69
- location = _useRouter.location,
70
- history = _useRouter.history;
71
- var _useSnackbar = (0, _useSnackbar2.useSnackbar)(),
72
- showSnackbar = _useSnackbar.showSnackbar;
73
- var newEntry = new URLSearchParams(location.search).get("new") === "true";
74
- var id = new URLSearchParams(location.search).get("id");
75
- var getQuery = (0, _reactHooks.useQuery)(GQL.READ_API_KEY, {
1
+ import React, { useCallback } from "react";
2
+ import { useMutation, useQuery } from "@apollo/react-hooks";
3
+ import get from "lodash/get";
4
+ import { useRouter } from "@webiny/react-router";
5
+ import { i18n } from "@webiny/app/i18n";
6
+ import { Form } from "@webiny/form";
7
+ import { Permissions } from "@webiny/app-admin/components/Permissions";
8
+ import { validation } from "@webiny/validation";
9
+ import { SimpleForm, SimpleFormFooter, SimpleFormContent, SimpleFormHeader } from "@webiny/app-admin/components/SimpleForm";
10
+ import { useSnackbar } from "@webiny/app-admin/hooks/useSnackbar";
11
+ import { pickDataForAPI } from "./utils";
12
+ import * as GQL from "./graphql";
13
+ import isEmpty from "lodash/isEmpty";
14
+ import EmptyView from "@webiny/app-admin/components/EmptyView";
15
+ import { ReactComponent as AddIcon } from "@webiny/icons/add.svg";
16
+ import { ReactComponent as CopyIcon } from "@webiny/icons/content_copy.svg";
17
+ import { ReactComponent as SettingsIcon } from "@webiny/icons/settings.svg";
18
+ import { Alert, Button, CopyButton, Grid, IconButton, Input, Label, OverlayLoader, Textarea, Tooltip } from "@webiny/admin-ui";
19
+ const t = i18n.ns("app-security-admin-users/admin/api-keys/form");
20
+ export const ApiKeyForm = () => {
21
+ const {
22
+ location,
23
+ history
24
+ } = useRouter();
25
+ const {
26
+ showSnackbar
27
+ } = useSnackbar();
28
+ const newEntry = new URLSearchParams(location.search).get("new") === "true";
29
+ const id = new URLSearchParams(location.search).get("id");
30
+ const getQuery = useQuery(GQL.READ_API_KEY, {
76
31
  variables: {
77
- id: id
32
+ id
78
33
  },
79
34
  skip: !id,
80
- onCompleted: function onCompleted(data) {
35
+ onCompleted: data => {
81
36
  if (!data) {
82
37
  return;
83
38
  }
84
- var error = data.security.apiKey.error;
39
+ const {
40
+ error
41
+ } = data.security.apiKey;
85
42
  if (error) {
86
43
  history.push("/access-management/api-keys");
87
44
  showSnackbar(error.message);
88
45
  }
89
46
  }
90
47
  });
91
- var _useMutation = (0, _reactHooks.useMutation)(GQL.CREATE_API_KEY, {
92
- refetchQueries: [{
93
- query: GQL.LIST_API_KEYS
94
- }]
95
- }),
96
- _useMutation2 = (0, _slicedToArray2.default)(_useMutation, 2),
97
- create = _useMutation2[0],
98
- createMutation = _useMutation2[1];
99
- var _useMutation3 = (0, _reactHooks.useMutation)(GQL.UPDATE_API_KEY, {
100
- refetchQueries: [{
101
- query: GQL.LIST_API_KEYS
102
- }]
103
- }),
104
- _useMutation4 = (0, _slicedToArray2.default)(_useMutation3, 2),
105
- update = _useMutation4[0],
106
- updateMutation = _useMutation4[1];
107
- var loading = [getQuery, createMutation, updateMutation].find(function (item) {
108
- return item.loading;
48
+ const [create, createMutation] = useMutation(GQL.CREATE_API_KEY, {
49
+ refetchQueries: [{
50
+ query: GQL.LIST_API_KEYS
51
+ }]
52
+ });
53
+ const [update, updateMutation] = useMutation(GQL.UPDATE_API_KEY, {
54
+ refetchQueries: [{
55
+ query: GQL.LIST_API_KEYS
56
+ }]
109
57
  });
110
- var onSubmit = (0, _react.useCallback)(async function (formData) {
58
+ const loading = [getQuery, createMutation, updateMutation].find(item => item.loading);
59
+ const onSubmit = useCallback(async formData => {
111
60
  if (!formData.permissions || !formData.permissions.length) {
112
- showSnackbar(t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["You must configure permissions before saving!"]))), {
61
+ showSnackbar(t`You must configure permissions before saving!`, {
113
62
  timeout: 60000,
114
- dismissesOnAction: true,
115
- action: /*#__PURE__*/_react.default.createElement(_Snackbar.SnackbarAction, {
116
- label: "OK"
117
- })
63
+ dismissesOnAction: true
118
64
  });
119
65
  return;
120
66
  }
121
- var isUpdate = formData.createdOn;
122
- var _ref = isUpdate ? [update, {
123
- variables: {
124
- id: formData.id,
125
- data: (0, _utils.pickDataForAPI)(formData)
126
- }
127
- }] : [create, {
128
- variables: {
129
- data: (0, _utils.pickDataForAPI)(formData)
130
- }
131
- }],
132
- _ref2 = (0, _slicedToArray2.default)(_ref, 2),
133
- operation = _ref2[0],
134
- args = _ref2[1];
135
- var response = await operation(args);
136
- var error = response.data.security.apiKey.error;
67
+ const isUpdate = formData.createdOn;
68
+ const [operation, args] = isUpdate ? [update, {
69
+ variables: {
70
+ id: formData.id,
71
+ data: pickDataForAPI(formData)
72
+ }
73
+ }] : [create, {
74
+ variables: {
75
+ data: pickDataForAPI(formData)
76
+ }
77
+ }];
78
+ const response = await operation(args);
79
+ const {
80
+ error
81
+ } = response.data.security.apiKey;
137
82
  if (error) {
138
83
  return showSnackbar(error.message);
139
84
  }
140
- var id = response.data.security.apiKey.data.id;
141
- !isUpdate && history.push("/access-management/api-keys?id=".concat(id));
142
- showSnackbar(t(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["API key saved successfully."]))));
85
+ const {
86
+ id
87
+ } = response.data.security.apiKey.data;
88
+ !isUpdate && history.push(`/access-management/api-keys?id=${id}`);
89
+ showSnackbar(t`API key saved successfully.`);
143
90
  }, [id]);
144
- var data = (0, _get.default)(getQuery, "data.security.apiKey.data", {});
145
- var showEmptyView = !newEntry && !loading && (0, _isEmpty.default)(data);
91
+ const data = get(getQuery, "data.security.apiKey.data", {});
92
+ const showEmptyView = !newEntry && !loading && isEmpty(data);
146
93
  // Render "No content" selected view.
147
94
  if (showEmptyView) {
148
- return /*#__PURE__*/_react.default.createElement(_EmptyView.default, {
149
- title: t(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["Click on the left side list to display API key details or create a..."]))),
150
- action: /*#__PURE__*/_react.default.createElement(_Button.ButtonDefault, {
95
+ return /*#__PURE__*/React.createElement(EmptyView, {
96
+ icon: /*#__PURE__*/React.createElement(SettingsIcon, null),
97
+ title: t`Click on the left side list to display API key details or create a...`,
98
+ action: /*#__PURE__*/React.createElement(Button, {
99
+ icon: /*#__PURE__*/React.createElement(AddIcon, null),
100
+ text: t`New API Key`,
151
101
  "data-testid": "new-record-button",
152
- onClick: function onClick() {
153
- return history.push("/access-management/api-keys?new=true");
154
- }
155
- }, /*#__PURE__*/_react.default.createElement(_Button.ButtonIcon, {
156
- icon: /*#__PURE__*/_react.default.createElement(_add18px.ReactComponent, null)
157
- }), " ", t(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["New API Key"]))))
102
+ onClick: () => history.push("/access-management/api-keys?new=true")
103
+ })
158
104
  });
159
105
  }
160
- return /*#__PURE__*/_react.default.createElement(_form.Form, {
106
+ return /*#__PURE__*/React.createElement(Form, {
161
107
  data: data,
162
108
  onSubmit: onSubmit
163
- }, function (_ref3) {
164
- var data = _ref3.data,
165
- form = _ref3.form,
166
- Bind = _ref3.Bind;
167
- return /*#__PURE__*/_react.default.createElement(_SimpleForm.SimpleForm, null, loading && /*#__PURE__*/_react.default.createElement(_Progress.CircularProgress, null), /*#__PURE__*/_react.default.createElement(_SimpleForm.SimpleFormHeader, {
109
+ }, ({
110
+ data,
111
+ form,
112
+ Bind
113
+ }) => {
114
+ return /*#__PURE__*/React.createElement(SimpleForm, {
115
+ size: "lg"
116
+ }, loading && /*#__PURE__*/React.createElement(OverlayLoader, null), /*#__PURE__*/React.createElement(SimpleFormHeader, {
168
117
  title: data.name ? data.name : "Untitled"
169
- }), /*#__PURE__*/_react.default.createElement(_SimpleForm.SimpleFormContent, null, /*#__PURE__*/_react.default.createElement(_Grid.Grid, null, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
118
+ }), /*#__PURE__*/React.createElement(SimpleFormContent, null, /*#__PURE__*/React.createElement(Grid, null, /*#__PURE__*/React.createElement(Grid.Column, {
170
119
  span: 12
171
- }, /*#__PURE__*/_react.default.createElement(Bind, {
120
+ }, /*#__PURE__*/React.createElement(Bind, {
172
121
  name: "name",
173
- validators: _validation.validation.create("required")
174
- }, /*#__PURE__*/_react.default.createElement(_Input.Input, {
175
- label: t(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["Name"]))),
122
+ validators: validation.create("required")
123
+ }, /*#__PURE__*/React.createElement(Input, {
124
+ size: "lg",
125
+ label: t`Name`,
176
126
  "data-testid": "sam.key.new.form.name"
177
- })))), /*#__PURE__*/_react.default.createElement(_Grid.Grid, null, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
127
+ }))), /*#__PURE__*/React.createElement(Grid.Column, {
178
128
  span: 12
179
- }, /*#__PURE__*/_react.default.createElement(Bind, {
129
+ }, /*#__PURE__*/React.createElement(Bind, {
180
130
  name: "description",
181
- validators: _validation.validation.create("required")
182
- }, /*#__PURE__*/_react.default.createElement(_Input.Input, {
183
- label: t(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["Description"]))),
131
+ validators: validation.create("required")
132
+ }, /*#__PURE__*/React.createElement(Textarea, {
133
+ size: "lg",
134
+ label: t`Description`,
184
135
  rows: 4,
185
136
  "data-testid": "sam.key.new.form.description"
186
- })))), /*#__PURE__*/_react.default.createElement(_Grid.Grid, null, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
137
+ }))), /*#__PURE__*/React.createElement(Grid.Column, {
187
138
  span: 12
188
- }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
189
- use: "subtitle1"
190
- }, t(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["Token"])))), data.token ? /*#__PURE__*/_react.default.createElement("div", {
191
- style: {
192
- background: "var(--mdc-theme-background)",
193
- padding: "8px",
194
- paddingLeft: "16px"
195
- }
196
- }, /*#__PURE__*/_react.default.createElement("span", {
197
- style: {
198
- lineHeight: "48px",
199
- verticalAlign: "middle"
200
- }
201
- }, data.token), /*#__PURE__*/_react.default.createElement("span", {
202
- style: {
203
- position: "absolute",
204
- right: "32px"
205
- }
206
- }, /*#__PURE__*/_react.default.createElement(_Button.CopyButton, {
139
+ }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Label, {
140
+ text: t`Token`
141
+ }), data.token ? /*#__PURE__*/React.createElement("div", {
142
+ className: "wby-py-sm wby-pl-sm-extra wby-pr-xs wby-rounded-md wby-mt-xs wby-bg-neutral-disabled wby-flex wby-justify-between wby-items-center"
143
+ }, /*#__PURE__*/React.createElement("div", null, data.token), /*#__PURE__*/React.createElement(CopyButton, {
144
+ variant: "ghost",
207
145
  value: data.token,
208
- onCopy: function onCopy() {
209
- return showSnackbar("Successfully copied!");
210
- }
211
- }))) : /*#__PURE__*/_react.default.createElement(_FormElementMessage.FormElementMessage, null, "Your token will be shown once you submit the form.")))), /*#__PURE__*/_react.default.createElement(_Grid.Grid, null, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
212
- span: 12
213
- }, /*#__PURE__*/_react.default.createElement(PermissionsTitleCell, {
214
- span: 12
215
- }, /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
216
- use: "subtitle1"
217
- }, t(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["Permissions"])))), /*#__PURE__*/_react.default.createElement(_Tooltip.Tooltip, {
146
+ onCopy: () => showSnackbar("Successfully copied!")
147
+ })) : /*#__PURE__*/React.createElement(Alert, {
148
+ className: "wby-mt-xs"
149
+ }, "Your token will be shown once you submit the form."))))), /*#__PURE__*/React.createElement(SimpleFormHeader, {
150
+ title: "Permissions",
151
+ rounded: false
152
+ }, /*#__PURE__*/React.createElement("div", {
153
+ className: "wby-flex wby-justify-end"
154
+ }, /*#__PURE__*/React.createElement(Tooltip, {
218
155
  content: "Copy permissions as JSON",
219
- placement: "top"
220
- }, /*#__PURE__*/_react.default.createElement(_Button.IconButton, {
221
- icon: /*#__PURE__*/_react.default.createElement(_content_copy.ReactComponent, null),
222
- onClick: function onClick() {
223
- navigator.clipboard.writeText(JSON.stringify(data.permissions, null, 2));
224
- showSnackbar("JSON data copied to clipboard.");
225
- }
226
- })))), /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
156
+ trigger: /*#__PURE__*/React.createElement(IconButton, {
157
+ variant: "ghost",
158
+ icon: /*#__PURE__*/React.createElement(CopyIcon, null),
159
+ onClick: () => {
160
+ navigator.clipboard.writeText(JSON.stringify(data.permissions, null, 2));
161
+ showSnackbar("JSON data copied to clipboard.");
162
+ }
163
+ })
164
+ }))), /*#__PURE__*/React.createElement(SimpleFormContent, null, /*#__PURE__*/React.createElement(Grid, null, /*#__PURE__*/React.createElement(Grid.Column, {
227
165
  span: 12
228
- }, /*#__PURE__*/_react.default.createElement(Bind, {
166
+ }, /*#__PURE__*/React.createElement(Bind, {
229
167
  name: "permissions",
230
168
  defaultValue: []
231
- }, function (bind) {
232
- return /*#__PURE__*/_react.default.createElement(_Permissions.Permissions, Object.assign({
233
- id: data.id || "new"
234
- }, bind));
235
- })))), /*#__PURE__*/_react.default.createElement(_SimpleForm.SimpleFormFooter, null, /*#__PURE__*/_react.default.createElement(ButtonWrapper, null, /*#__PURE__*/_react.default.createElement(_Button.ButtonDefault, {
236
- onClick: function onClick() {
237
- return history.push("/access-management/api-keys");
238
- },
169
+ }, bind => /*#__PURE__*/React.createElement(Permissions, Object.assign({
170
+ id: data.id || "new"
171
+ }, bind)))))), /*#__PURE__*/React.createElement(SimpleFormFooter, null, /*#__PURE__*/React.createElement(Button, {
172
+ variant: "secondary",
173
+ text: t`Cancel`,
174
+ onClick: () => history.push("/access-management/api-keys"),
239
175
  "data-testid": "sam.key.new.form.button.cancel"
240
- }, t(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2.default)(["Cancel"])))), /*#__PURE__*/_react.default.createElement(_Button.ButtonPrimary, {
241
- onClick: function onClick(ev) {
176
+ }), /*#__PURE__*/React.createElement(Button, {
177
+ text: t`Save`,
178
+ "data-testid": "sam.key.new.form.button.save",
179
+ onClick: ev => {
242
180
  form.submit(ev);
243
- },
244
- "data-testid": "sam.key.new.form.button.save"
245
- }, t(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2.default)(["Save API key"])))))));
181
+ }
182
+ })));
246
183
  });
247
184
  };
248
185
 
@@ -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","_Tooltip","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_EMOTION_STRINGIFIED_CSS_ERROR__","t","i18n","ns","ButtonWrapper","_base","default","process","env","NODE_ENV","target","label","name","styles","map","toString","PermissionsTitleCell","Cell","ApiKeyForm","exports","_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","create","createMutation","_useMutation3","UPDATE_API_KEY","_useMutation4","update","updateMutation","loading","find","item","onSubmit","useCallback","formData","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","SimpleFormContent","Grid","span","validators","validation","Input","rows","Typography","use","token","style","background","padding","paddingLeft","lineHeight","verticalAlign","position","right","CopyButton","value","onCopy","FormElementMessage","Tooltip","content","placement","IconButton","navigator","clipboard","writeText","JSON","stringify","defaultValue","bind","Permissions","Object","assign","SimpleFormFooter","ButtonPrimary","ev","submit"],"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\";\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 (formData: ApiKey) => {\n if (!formData.permissions || !formData.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 = formData.createdOn;\n const [operation, args] = isUpdate\n ? [update, { variables: { id: formData.id, data: pickDataForAPI(formData) } }]\n : [create, { variables: { data: pickDataForAPI(formData) } }];\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 <Tooltip\n content=\"Copy permissions as JSON\"\n placement={\"top\"}\n >\n <IconButton\n icon={<CopyIcon />}\n onClick={() => {\n navigator.clipboard.writeText(\n JSON.stringify(data.permissions, null, 2)\n );\n showSnackbar(\"JSON data copied to clipboard.\");\n }}\n />\n </Tooltip>\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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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useMutation","useQuery","get","useRouter","i18n","Form","Permissions","validation","SimpleForm","SimpleFormFooter","SimpleFormContent","SimpleFormHeader","useSnackbar","pickDataForAPI","GQL","isEmpty","EmptyView","ReactComponent","AddIcon","CopyIcon","SettingsIcon","Alert","Button","CopyButton","Grid","IconButton","Input","Label","OverlayLoader","Textarea","Tooltip","t","ns","ApiKeyForm","location","history","showSnackbar","newEntry","URLSearchParams","search","id","getQuery","READ_API_KEY","variables","skip","onCompleted","data","error","security","apiKey","push","message","create","createMutation","CREATE_API_KEY","refetchQueries","query","LIST_API_KEYS","update","updateMutation","UPDATE_API_KEY","loading","find","item","onSubmit","formData","permissions","length","timeout","dismissesOnAction","isUpdate","createdOn","operation","args","response","showEmptyView","createElement","icon","title","action","text","onClick","form","Bind","size","name","Column","span","validators","label","rows","token","className","variant","value","onCopy","rounded","content","trigger","navigator","clipboard","writeText","JSON","stringify","defaultValue","bind","Object","assign","ev","submit"],"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 { 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 { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { pickDataForAPI } from \"./utils\";\nimport * as GQL from \"./graphql\";\nimport isEmpty from \"lodash/isEmpty\";\nimport EmptyView from \"@webiny/app-admin/components/EmptyView\";\nimport { ReactComponent as AddIcon } from \"@webiny/icons/add.svg\";\nimport { ReactComponent as CopyIcon } from \"@webiny/icons/content_copy.svg\";\nimport { ReactComponent as SettingsIcon } from \"@webiny/icons/settings.svg\";\nimport { ApiKey } from \"~/types\";\nimport {\n Alert,\n Button,\n CopyButton,\n Grid,\n IconButton,\n Input,\n Label,\n OverlayLoader,\n Textarea,\n Tooltip\n} from \"@webiny/admin-ui\";\n\nconst t = i18n.ns(\"app-security-admin-users/admin/api-keys/form\");\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 (formData: ApiKey) => {\n if (!formData.permissions || !formData.permissions.length) {\n showSnackbar(t`You must configure permissions before saving!`, {\n timeout: 60000,\n dismissesOnAction: true\n });\n return;\n }\n\n const isUpdate = formData.createdOn;\n const [operation, args] = isUpdate\n ? [update, { variables: { id: formData.id, data: pickDataForAPI(formData) } }]\n : [create, { variables: { data: pickDataForAPI(formData) } }];\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 icon={<SettingsIcon />}\n title={t`Click on the left side list to display API key details or create a...`}\n action={\n <Button\n icon={<AddIcon />}\n text={t`New API Key`}\n data-testid=\"new-record-button\"\n onClick={() => history.push(\"/access-management/api-keys?new=true\")}\n />\n }\n />\n );\n }\n\n return (\n <Form data={data} onSubmit={onSubmit}>\n {({ data, form, Bind }) => {\n return (\n <SimpleForm size={\"lg\"}>\n {loading && <OverlayLoader />}\n <SimpleFormHeader title={data.name ? data.name : \"Untitled\"} />\n <SimpleFormContent>\n <Grid>\n <Grid.Column span={12}>\n <Bind name=\"name\" validators={validation.create(\"required\")}>\n <Input\n size={\"lg\"}\n label={t`Name`}\n data-testid=\"sam.key.new.form.name\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind\n name=\"description\"\n validators={validation.create(\"required\")}\n >\n <Textarea\n size={\"lg\"}\n label={t`Description`}\n rows={4}\n data-testid=\"sam.key.new.form.description\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <div>\n <Label text={t`Token`} />\n {data.token ? (\n <div\n className={\n \"wby-py-sm wby-pl-sm-extra wby-pr-xs wby-rounded-md wby-mt-xs wby-bg-neutral-disabled wby-flex wby-justify-between wby-items-center\"\n }\n >\n <div>{data.token}</div>\n <CopyButton\n variant={\"ghost\"}\n value={data.token}\n onCopy={() =>\n showSnackbar(\"Successfully copied!\")\n }\n />\n </div>\n ) : (\n <Alert className={\"wby-mt-xs\"}>\n {\n \"Your token will be shown once you submit the form.\"\n }\n </Alert>\n )}\n </div>\n </Grid.Column>\n </Grid>\n </SimpleFormContent>\n <SimpleFormHeader title={\"Permissions\"} rounded={false}>\n <div className={\"wby-flex wby-justify-end\"}>\n <Tooltip\n content=\"Copy permissions as JSON\"\n trigger={\n <IconButton\n variant={\"ghost\"}\n icon={<CopyIcon />}\n onClick={() => {\n navigator.clipboard.writeText(\n JSON.stringify(data.permissions, null, 2)\n );\n showSnackbar(\"JSON data copied to clipboard.\");\n }}\n />\n }\n />\n </div>\n </SimpleFormHeader>\n <SimpleFormContent>\n <Grid>\n <Grid.Column span={12}>\n <Bind name={\"permissions\"} defaultValue={[]}>\n {bind => <Permissions id={data.id || \"new\"} {...bind} />}\n </Bind>\n </Grid.Column>\n </Grid>\n </SimpleFormContent>\n <SimpleFormFooter>\n <Button\n variant={\"secondary\"}\n text={t`Cancel`}\n onClick={() => history.push(\"/access-management/api-keys\")}\n data-testid=\"sam.key.new.form.button.cancel\"\n />\n <Button\n text={t`Save`}\n data-testid=\"sam.key.new.form.button.save\"\n onClick={ev => {\n form.submit(ev);\n }}\n />\n </SimpleFormFooter>\n </SimpleForm>\n );\n }}\n </Form>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,20 +1,12 @@
1
- "use strict";
2
-
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.ApiKeys = void 0;
8
- var React = _interopRequireWildcard(require("react"));
9
- var _SplitView = require("@webiny/app-admin/components/SplitView");
10
- var _ApiKeysDataList = require("./ApiKeysDataList");
11
- var _ApiKeyForm = require("./ApiKeyForm");
12
- var ApiKeys = exports.ApiKeys = function ApiKeys(_ref) {
13
- var _ref$formProps = _ref.formProps,
14
- formProps = _ref$formProps === void 0 ? {} : _ref$formProps,
15
- _ref$listProps = _ref.listProps,
16
- listProps = _ref$listProps === void 0 ? {} : _ref$listProps;
17
- return /*#__PURE__*/React.createElement(_SplitView.SplitView, null, /*#__PURE__*/React.createElement(_SplitView.LeftPanel, null, /*#__PURE__*/React.createElement(_ApiKeysDataList.ApiKeysDataList, listProps)), /*#__PURE__*/React.createElement(_SplitView.RightPanel, null, /*#__PURE__*/React.createElement(_ApiKeyForm.ApiKeyForm, formProps)));
1
+ import * as React from "react";
2
+ import { SplitView, LeftPanel, RightPanel } from "@webiny/app-admin/components/SplitView";
3
+ import { ApiKeysDataList } from "./ApiKeysDataList";
4
+ import { ApiKeyForm } from "./ApiKeyForm";
5
+ export const ApiKeys = ({
6
+ formProps = {},
7
+ listProps = {}
8
+ }) => {
9
+ return /*#__PURE__*/React.createElement(SplitView, null, /*#__PURE__*/React.createElement(LeftPanel, null, /*#__PURE__*/React.createElement(ApiKeysDataList, listProps)), /*#__PURE__*/React.createElement(RightPanel, null, /*#__PURE__*/React.createElement(ApiKeyForm, formProps)));
18
10
  };
19
11
 
20
12
  //# sourceMappingURL=ApiKeys.js.map