@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.
- package/components/GroupAutocomplete/graphql.js +16 -11
- package/components/GroupAutocomplete/graphql.js.map +1 -1
- package/components/GroupAutocomplete/index.js +11 -17
- package/components/GroupAutocomplete/index.js.map +1 -1
- package/components/GroupsMultiAutocomplete/graphql.js +21 -11
- package/components/GroupsMultiAutocomplete/graphql.js.map +1 -1
- package/components/GroupsMultiAutocomplete/index.js +11 -17
- package/components/GroupsMultiAutocomplete/index.js.map +1 -1
- package/components/NotAuthorizedError/NotAuthorizedError.js +18 -61
- package/components/NotAuthorizedError/NotAuthorizedError.js.map +1 -1
- package/components/NotAuthorizedError/index.js +1 -12
- package/components/NotAuthorizedError/index.js.map +1 -1
- package/components/TeamAutocomplete/graphql.js +16 -11
- package/components/TeamAutocomplete/graphql.js.map +1 -1
- package/components/TeamAutocomplete/index.js +11 -17
- package/components/TeamAutocomplete/index.js.map +1 -1
- package/components/TeamsMultiAutocomplete/graphql.js +21 -11
- package/components/TeamsMultiAutocomplete/graphql.js.map +1 -1
- package/components/TeamsMultiAutocomplete/index.js +11 -17
- package/components/TeamsMultiAutocomplete/index.js.map +1 -1
- package/index.d.ts +0 -7
- package/index.js +80 -71
- package/index.js.map +1 -1
- package/package.json +13 -13
- package/plugins/constants.js +1 -7
- package/plugins/constants.js.map +1 -1
- package/plugins/index.js +4 -13
- package/plugins/index.js.map +1 -1
- package/plugins/installation.js +61 -50
- package/plugins/installation.js.map +1 -1
- package/plugins/permissionRenderer/SecurityPermissions.js +84 -127
- package/plugins/permissionRenderer/SecurityPermissions.js.map +1 -1
- package/plugins/permissionRenderer/index.js +17 -23
- package/plugins/permissionRenderer/index.js.map +1 -1
- package/plugins/routes.js +22 -33
- package/plugins/routes.js.map +1 -1
- package/plugins/secureRouteError.js +6 -13
- package/plugins/secureRouteError.js.map +1 -1
- package/types.js +1 -5
- package/ui/elements/GroupAutocompleteElement.js +29 -45
- package/ui/elements/GroupAutocompleteElement.js.map +1 -1
- package/ui/elements/GroupsMultiAutocompleteElement.js +29 -45
- package/ui/elements/GroupsMultiAutocompleteElement.js.map +1 -1
- package/ui/elements/TeamAutocompleteElement.js +29 -45
- package/ui/elements/TeamAutocompleteElement.js.map +1 -1
- package/ui/views/ApiKeys/ApiKeyForm.js +137 -200
- package/ui/views/ApiKeys/ApiKeyForm.js.map +1 -1
- package/ui/views/ApiKeys/ApiKeys.js +9 -17
- package/ui/views/ApiKeys/ApiKeys.js.map +1 -1
- package/ui/views/ApiKeys/ApiKeysDataList.js +110 -134
- package/ui/views/ApiKeys/ApiKeysDataList.js.map +1 -1
- package/ui/views/ApiKeys/graphql.js +80 -16
- package/ui/views/ApiKeys/graphql.js.map +1 -1
- package/ui/views/ApiKeys/index.js +1 -16
- package/ui/views/ApiKeys/index.js.map +1 -1
- package/ui/views/ApiKeys/utils.js +3 -11
- package/ui/views/ApiKeys/utils.js.map +1 -1
- package/ui/views/Groups/Groups.js +9 -17
- package/ui/views/Groups/Groups.js.map +1 -1
- package/ui/views/Groups/GroupsDataList.js +114 -141
- package/ui/views/Groups/GroupsDataList.js.map +1 -1
- package/ui/views/Groups/GroupsForm.js +139 -188
- package/ui/views/Groups/GroupsForm.js.map +1 -1
- package/ui/views/Groups/graphql.js +83 -16
- package/ui/views/Groups/graphql.js.map +1 -1
- package/ui/views/Groups/index.js +1 -16
- package/ui/views/Groups/index.js.map +1 -1
- package/ui/views/Teams/Teams.js +9 -17
- package/ui/views/Teams/Teams.js.map +1 -1
- package/ui/views/Teams/TeamsDataList.js +116 -141
- package/ui/views/Teams/TeamsDataList.js.map +1 -1
- package/ui/views/Teams/TeamsForm.js +118 -150
- package/ui/views/Teams/TeamsForm.js.map +1 -1
- package/ui/views/Teams/graphql.js +87 -16
- package/ui/views/Teams/graphql.js.map +1 -1
- package/ui/views/Teams/index.js +1 -16
- package/ui/views/Teams/index.js.map +1 -1
- package/ui/views/utils.js +3 -14
- package/ui/views/utils.js.map +1 -1
|
@@ -1,248 +1,185 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
|
32
|
+
id
|
|
78
33
|
},
|
|
79
34
|
skip: !id,
|
|
80
|
-
onCompleted:
|
|
35
|
+
onCompleted: data => {
|
|
81
36
|
if (!data) {
|
|
82
37
|
return;
|
|
83
38
|
}
|
|
84
|
-
|
|
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
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
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
|
-
|
|
141
|
-
|
|
142
|
-
|
|
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
|
-
|
|
145
|
-
|
|
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__*/
|
|
149
|
-
|
|
150
|
-
|
|
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:
|
|
153
|
-
|
|
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__*/
|
|
106
|
+
return /*#__PURE__*/React.createElement(Form, {
|
|
161
107
|
data: data,
|
|
162
108
|
onSubmit: onSubmit
|
|
163
|
-
},
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
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__*/
|
|
118
|
+
}), /*#__PURE__*/React.createElement(SimpleFormContent, null, /*#__PURE__*/React.createElement(Grid, null, /*#__PURE__*/React.createElement(Grid.Column, {
|
|
170
119
|
span: 12
|
|
171
|
-
}, /*#__PURE__*/
|
|
120
|
+
}, /*#__PURE__*/React.createElement(Bind, {
|
|
172
121
|
name: "name",
|
|
173
|
-
validators:
|
|
174
|
-
}, /*#__PURE__*/
|
|
175
|
-
|
|
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
|
-
})))
|
|
127
|
+
}))), /*#__PURE__*/React.createElement(Grid.Column, {
|
|
178
128
|
span: 12
|
|
179
|
-
}, /*#__PURE__*/
|
|
129
|
+
}, /*#__PURE__*/React.createElement(Bind, {
|
|
180
130
|
name: "description",
|
|
181
|
-
validators:
|
|
182
|
-
}, /*#__PURE__*/
|
|
183
|
-
|
|
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
|
-
})))
|
|
137
|
+
}))), /*#__PURE__*/React.createElement(Grid.Column, {
|
|
187
138
|
span: 12
|
|
188
|
-
}, /*#__PURE__*/
|
|
189
|
-
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
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:
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
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
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
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__*/
|
|
166
|
+
}, /*#__PURE__*/React.createElement(Bind, {
|
|
229
167
|
name: "permissions",
|
|
230
168
|
defaultValue: []
|
|
231
|
-
},
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
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
|
-
}
|
|
241
|
-
|
|
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
|
-
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|