@webiny/app-security-access-management 5.43.3 → 6.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/GroupAutocomplete/graphql.js +16 -11
- package/components/GroupAutocomplete/graphql.js.map +1 -1
- package/components/GroupAutocomplete/index.d.ts +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.d.ts +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.d.ts +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.d.ts +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.d.ts +1 -1
- package/plugins/index.js +4 -13
- package/plugins/index.js.map +1 -1
- package/plugins/installation.d.ts +1 -1
- package/plugins/installation.js +62 -51
- package/plugins/installation.js.map +1 -1
- package/plugins/permissionRenderer/SecurityPermissions.d.ts +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.d.ts +1 -1
- package/plugins/routes.js +22 -33
- package/plugins/routes.js.map +1 -1
- package/plugins/secureRouteError.d.ts +1 -1
- package/plugins/secureRouteError.js +6 -13
- package/plugins/secureRouteError.js.map +1 -1
- package/types.d.ts +1 -1
- package/types.js +1 -5
- package/types.js.map +1 -1
- package/ui/elements/GroupAutocompleteElement.d.ts +1 -1
- package/ui/elements/GroupAutocompleteElement.js +29 -45
- package/ui/elements/GroupAutocompleteElement.js.map +1 -1
- package/ui/elements/GroupsMultiAutocompleteElement.d.ts +1 -1
- package/ui/elements/GroupsMultiAutocompleteElement.js +29 -45
- package/ui/elements/GroupsMultiAutocompleteElement.js.map +1 -1
- package/ui/elements/TeamAutocompleteElement.d.ts +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.d.ts +2 -2
- 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.d.ts +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.d.ts +1 -1
- package/ui/views/ApiKeys/utils.js +3 -11
- package/ui/views/ApiKeys/utils.js.map +1 -1
- package/ui/views/Groups/Groups.d.ts +2 -2
- 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 +155 -187
- package/ui/views/Groups/GroupsForm.js.map +1 -1
- package/ui/views/Groups/graphql.d.ts +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.d.ts +2 -2
- 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.d.ts +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,245 +1,213 @@
|
|
|
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
|
-
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 _Tooltip = require("@webiny/ui/Tooltip");
|
|
35
|
-
var _content_copy = require("@material-design-icons/svg/outlined/content_copy.svg");
|
|
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/roles/form");
|
|
39
|
-
var ButtonWrapper = /*#__PURE__*/(0, _base.default)("div", process.env.NODE_ENV === "production" ? {
|
|
40
|
-
target: "euuiyav1"
|
|
41
|
-
} : {
|
|
42
|
-
target: "euuiyav1",
|
|
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkdyb3Vwc0Zvcm0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtDZ0MiLCJmaWxlIjoiR3JvdXBzRm9ybS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2sgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZU11dGF0aW9uLCB1c2VRdWVyeSB9IGZyb20gXCJAYXBvbGxvL3JlYWN0LWhvb2tzXCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCBwaWNrIGZyb20gXCJsb2Rhc2gvcGlja1wiO1xuaW1wb3J0IGdldCBmcm9tIFwibG9kYXNoL2dldFwiO1xuaW1wb3J0IHsgdXNlUm91dGVyIH0gZnJvbSBcIkB3ZWJpbnkvcmVhY3Qtcm91dGVyXCI7XG5pbXBvcnQgeyBpMThuIH0gZnJvbSBcIkB3ZWJpbnkvYXBwL2kxOG5cIjtcbmltcG9ydCB7IEZvcm0gfSBmcm9tIFwiQHdlYmlueS9mb3JtXCI7XG5pbXBvcnQgeyBHcmlkLCBDZWxsIH0gZnJvbSBcIkB3ZWJpbnkvdWkvR3JpZFwiO1xuaW1wb3J0IHsgSW5wdXQgfSBmcm9tIFwiQHdlYmlueS91aS9JbnB1dFwiO1xuaW1wb3J0IHsgQWxlcnQgfSBmcm9tIFwiQHdlYmlueS91aS9BbGVydFwiO1xuaW1wb3J0IHsgQnV0dG9uRGVmYXVsdCwgQnV0dG9uSWNvbiwgQnV0dG9uUHJpbWFyeSwgSWNvbkJ1dHRvbiB9IGZyb20gXCJAd2ViaW55L3VpL0J1dHRvblwiO1xuaW1wb3J0IHsgQ2lyY3VsYXJQcm9ncmVzcyB9IGZyb20gXCJAd2ViaW55L3VpL1Byb2dyZXNzXCI7XG5pbXBvcnQgeyB2YWxpZGF0aW9uIH0gZnJvbSBcIkB3ZWJpbnkvdmFsaWRhdGlvblwiO1xuaW1wb3J0IHtcbiAgICBTaW1wbGVGb3JtLFxuICAgIFNpbXBsZUZvcm1Gb290ZXIsXG4gICAgU2ltcGxlRm9ybUNvbnRlbnQsXG4gICAgU2ltcGxlRm9ybUhlYWRlclxufSBmcm9tIFwiQHdlYmlueS9hcHAtYWRtaW4vY29tcG9uZW50cy9TaW1wbGVGb3JtXCI7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5IH0gZnJvbSBcIkB3ZWJpbnkvdWkvVHlwb2dyYXBoeVwiO1xuaW1wb3J0IHsgUGVybWlzc2lvbnMgfSBmcm9tIFwiQHdlYmlueS9hcHAtYWRtaW4vY29tcG9uZW50cy9QZXJtaXNzaW9uc1wiO1xuaW1wb3J0IHsgdXNlU25hY2tiYXIgfSBmcm9tIFwiQHdlYmlueS9hcHAtYWRtaW4vaG9va3MvdXNlU25hY2tiYXJcIjtcbmltcG9ydCB7IENSRUFURV9HUk9VUCwgTElTVF9HUk9VUFMsIFJFQURfR1JPVVAsIFVQREFURV9HUk9VUCB9IGZyb20gXCIuL2dyYXBocWxcIjtcbmltcG9ydCB7IFNuYWNrYmFyQWN0aW9uIH0gZnJvbSBcIkB3ZWJpbnkvdWkvU25hY2tiYXJcIjtcbmltcG9ydCBpc0VtcHR5IGZyb20gXCJsb2Rhc2gvaXNFbXB0eVwiO1xuaW1wb3J0IEVtcHR5VmlldyBmcm9tIFwiQHdlYmlueS9hcHAtYWRtaW4vY29tcG9uZW50cy9FbXB0eVZpZXdcIjtcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIEFkZEljb24gfSBmcm9tIFwiQHdlYmlueS9hcHAtYWRtaW4vYXNzZXRzL2ljb25zL2FkZC0xOHB4LnN2Z1wiO1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gXCJAd2ViaW55L3VpL1Rvb2x0aXBcIjtcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIENvcHlJY29uIH0gZnJvbSBcIkBtYXRlcmlhbC1kZXNpZ24taWNvbnMvc3ZnL291dGxpbmVkL2NvbnRlbnRfY29weS5zdmdcIjtcbmltcG9ydCB7IEdyb3VwIH0gZnJvbSBcIn4vdHlwZXNcIjtcblxuY29uc3QgdCA9IGkxOG4ubnMoXCJhcHAtc2VjdXJpdHkvYWRtaW4vcm9sZXMvZm9ybVwiKTtcblxuY29uc3QgQnV0dG9uV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5gO1xuXG5jb25zdCBQZXJtaXNzaW9uc1RpdGxlQ2VsbCA9IHN0eWxlZChDZWxsKWBcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdyb3Vwc0Zvcm1Qcm9wcyB7XG4gICAgLy8gVE9ETyBAdHMtcmVmYWN0b3IgZGVsZXRlIGFuZCBnbyB1cCB0aGUgdHJlZSBhbmQgc29ydCBpdCBvdXRcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBjb25zdCBHcm91cHNGb3JtID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgbG9jYXRpb24sIGhpc3RvcnkgfSA9IHVzZVJvdXRlcigpO1xuICAgIGNvbnN0IHsgc2hvd1NuYWNrYmFyIH0gPSB1c2VTbmFja2JhcigpO1xuICAgIGNvbnN0IG5ld0dyb3VwID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpLmdldChcIm5ld1wiKSA9PT0gXCJ0cnVlXCI7XG4gICAgY29uc3QgaWQgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCkuZ2V0KFwiaWRcIik7XG5cbiAgICBjb25zdCBnZXRRdWVyeSA9IHVzZVF1ZXJ5KFJFQURfR1JPVVAsIHtcbiAgICAgICAgdmFyaWFibGVzOiB7IGlkIH0sXG4gICAgICAgIHNraXA6ICFpZCxcbiAgICAgICAgb25Db21wbGV0ZWQ6IGRhdGEgPT4ge1xuICAgICAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB7IGVycm9yIH0gPSBkYXRhLnNlY3VyaXR5Lmdyb3VwO1xuICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgaGlzdG9yeS5wdXNoKFwiL2FjY2Vzcy1tYW5hZ2VtZW50L3JvbGVzXCIpO1xuICAgICAgICAgICAgICAgIHNob3dTbmFja2JhcihlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgW2NyZWF0ZSwgY3JlYXRlTXV0YXRpb25dID0gdXNlTXV0YXRpb24oQ1JFQVRFX0dST1VQLCB7XG4gICAgICAgIHJlZmV0Y2hRdWVyaWVzOiBbeyBxdWVyeTogTElTVF9HUk9VUFMgfV1cbiAgICB9KTtcblxuICAgIGNvbnN0IFt1cGRhdGUsIHVwZGF0ZU11dGF0aW9uXSA9IHVzZU11dGF0aW9uKFVQREFURV9HUk9VUCwge1xuICAgICAgICByZWZldGNoUXVlcmllczogW3sgcXVlcnk6IExJU1RfR1JPVVBTIH1dXG4gICAgfSk7XG5cbiAgICBjb25zdCBsb2FkaW5nID0gW2dldFF1ZXJ5LCBjcmVhdGVNdXRhdGlvbiwgdXBkYXRlTXV0YXRpb25dLmZpbmQoaXRlbSA9PiBpdGVtLmxvYWRpbmcpO1xuXG4gICAgY29uc3Qgb25TdWJtaXQgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgYXN5bmMgKGZvcm1EYXRhOiBHcm91cCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFmb3JtRGF0YS5wZXJtaXNzaW9ucyB8fCAhZm9ybURhdGEucGVybWlzc2lvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgc2hvd1NuYWNrYmFyKHRgWW91IG11c3QgY29uZmlndXJlIHBlcm1pc3Npb25zIGJlZm9yZSBzYXZpbmchYCwge1xuICAgICAgICAgICAgICAgICAgICB0aW1lb3V0OiA2MDAwMCxcbiAgICAgICAgICAgICAgICAgICAgZGlzbWlzc2VzT25BY3Rpb246IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogPFNuYWNrYmFyQWN0aW9uIGxhYmVsPXtcIk9LXCJ9IC8+XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBpc1VwZGF0ZSA9IGZvcm1EYXRhLmNyZWF0ZWRPbjtcbiAgICAgICAgICAgIGNvbnN0IFtvcGVyYXRpb24sIGFyZ3NdID0gaXNVcGRhdGVcbiAgICAgICAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgICAgICAgICB1cGRhdGUsXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBmb3JtRGF0YS5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHBpY2soZm9ybURhdGEsIFtcIm5hbWVcIiwgXCJkZXNjcmlwdGlvblwiLCBcInBlcm1pc3Npb25zXCJdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIDogW1xuICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogcGljayhmb3JtRGF0YSwgW1wibmFtZVwiLCBcInNsdWdcIiwgXCJkZXNjcmlwdGlvblwiLCBcInBlcm1pc3Npb25zXCJdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgXTtcblxuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBvcGVyYXRpb24oYXJncyk7XG5cbiAgICAgICAgICAgIGNvbnN0IHsgZGF0YTogZ3JvdXAsIGVycm9yIH0gPSByZXNwb25zZS5kYXRhLnNlY3VyaXR5Lmdyb3VwO1xuICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNob3dTbmFja2JhcihlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgIWlzVXBkYXRlICYmIGhpc3RvcnkucHVzaChgL2FjY2Vzcy1tYW5hZ2VtZW50L3JvbGVzP2lkPSR7Z3JvdXAuaWR9YCk7XG4gICAgICAgICAgICBzaG93U25hY2tiYXIodGBSb2xlIHNhdmVkIHN1Y2Nlc3NmdWxseSFgKTtcbiAgICAgICAgfSxcbiAgICAgICAgW2lkXVxuICAgICk7XG5cbiAgICBjb25zdCBkYXRhOiBHcm91cCA9IGxvYWRpbmcgPyB7fSA6IGdldChnZXRRdWVyeSwgXCJkYXRhLnNlY3VyaXR5Lmdyb3VwLmRhdGFcIiwge30pO1xuXG4gICAgY29uc3Qgc3lzdGVtR3JvdXAgPSBkYXRhLnNsdWcgPT09IFwiZnVsbC1hY2Nlc3NcIiB8fCBkYXRhLnN5c3RlbTtcbiAgICBjb25zdCBwbHVnaW5Hcm91cCA9IGRhdGEucGx1Z2luO1xuICAgIGNvbnN0IGNhbk1vZGlmeUdyb3VwID0gIXN5c3RlbUdyb3VwICYmICFwbHVnaW5Hcm91cDtcblxuICAgIGNvbnN0IHNob3dFbXB0eVZpZXcgPSAhbmV3R3JvdXAgJiYgIWxvYWRpbmcgJiYgaXNFbXB0eShkYXRhKTtcbiAgICAvLyBSZW5kZXIgXCJObyBjb250ZW50XCIgc2VsZWN0ZWQgdmlldy5cbiAgICBpZiAoc2hvd0VtcHR5Vmlldykge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPEVtcHR5Vmlld1xuICAgICAgICAgICAgICAgIHRpdGxlPXt0YENsaWNrIG9uIHRoZSBsZWZ0IHNpZGUgbGlzdCB0byBkaXNwbGF5IHJvbGUgZGV0YWlscyBvciBjcmVhdGUgYS4uLmB9XG4gICAgICAgICAgICAgICAgYWN0aW9uPXtcbiAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbkRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwibmV3LXJlY29yZC1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGlzdG9yeS5wdXNoKFwiL2FjY2Vzcy1tYW5hZ2VtZW50L3JvbGVzP25ldz10cnVlXCIpfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uSWNvbiBpY29uPXs8QWRkSWNvbiAvPn0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt0YE5ldyBSb2xlYH1cbiAgICAgICAgICAgICAgICAgICAgPC9CdXR0b25EZWZhdWx0PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPEZvcm0gZGF0YT17ZGF0YX0gb25TdWJtaXQ9e29uU3VibWl0fT5cbiAgICAgICAgICAgIHsoeyBkYXRhLCBmb3JtLCBCaW5kIH0pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICA8U2ltcGxlRm9ybT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtsb2FkaW5nICYmIDxDaXJjdWxhclByb2dyZXNzIC8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgPFNpbXBsZUZvcm1IZWFkZXIgdGl0bGU9e2RhdGEubmFtZSA/IGRhdGEubmFtZSA6IFwiVW50aXRsZWRcIn0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTaW1wbGVGb3JtQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c3lzdGVtR3JvdXAgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDZWxsIHNwYW49ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QWxlcnQgdHlwZT17XCJpbmZvXCJ9IHRpdGxlPXtcIlBlcm1pc3Npb25zIGFyZSBsb2NrZWRcIn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgYSBwcm90ZWN0ZWQgc3lzdGVtIHJvbGUgYW5kIHlvdSBjYW4mYXBvczt0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmeSBpdHMgcGVybWlzc2lvbnMuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BbGVydD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ2VsbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3BsdWdpbkdyb3VwICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2VsbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFsZXJ0IHR5cGU9e1wiaW5mb1wifSB0aXRsZT17XCJQZXJtaXNzaW9ucyBhcmUgbG9ja2VkXCJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIHJvbGUgaXMgcmVnaXN0ZXJlZCB2aWEgYW4gZXh0ZW5zaW9uLCBhbmQgY2Fubm90IGJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQWxlcnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NlbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2VsbCBzcGFuPXs2fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCaW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvcnM9e3ZhbGlkYXRpb24uY3JlYXRlKFwicmVxdWlyZWQsbWluTGVuZ3RoOjNcIil9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXt0YE5hbWVgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17IWNhbk1vZGlmeUdyb3VwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImFkbWluLmFtLmdyb3VwLm5ldy5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CaW5kPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NlbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDZWxsIHNwYW49ezZ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJpbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwic2x1Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9ycz17dmFsaWRhdGlvbi5jcmVhdGUoXCJyZXF1aXJlZCxtaW5MZW5ndGg6M1wiKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFjYW5Nb2RpZnlHcm91cCB8fCAhbmV3R3JvdXB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXt0YFNsdWdgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImFkbWluLmFtLmdyb3VwLm5ldy5zbHVnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CaW5kPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NlbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2VsbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QmluZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9ycz17dmFsaWRhdGlvbi5jcmVhdGUoXCJtYXhMZW5ndGg6NTAwXCIpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17dGBEZXNjcmlwdGlvbmB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M9ezN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXshY2FuTW9kaWZ5R3JvdXB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiYWRtaW4uYW0uZ3JvdXAubmV3LmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CaW5kPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NlbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjYW5Nb2RpZnlHcm91cCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFBlcm1pc3Npb25zVGl0bGVDZWxsIHNwYW49ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeSB1c2U9e1wic3VidGl0bGUxXCJ9Pnt0YFBlcm1pc3Npb25zYH08L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudD1cIkNvcHkgcGVybWlzc2lvbnMgYXMgSlNPTlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD17XCJ0b3BcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPXs8Q29weUljb24gLz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGRhdGEucGVybWlzc2lvbnMsIG51bGwsIDIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93U25hY2tiYXIoXCJKU09OIGRhdGEgY29waWVkIHRvIGNsaXBib2FyZC5cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUGVybWlzc2lvbnNUaXRsZUNlbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2VsbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJpbmQgbmFtZT17XCJwZXJtaXNzaW9uc1wifSBkZWZhdWx0VmFsdWU9e1tdfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2JpbmQgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFBlcm1pc3Npb25zIGlkPXtkYXRhLmlkIHx8IFwibmV3XCJ9IHsuLi5iaW5kfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQmluZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ2VsbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1NpbXBsZUZvcm1Db250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAge2Nhbk1vZGlmeUdyb3VwICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2ltcGxlRm9ybUZvb3Rlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbldyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uRGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhpc3RvcnkucHVzaChcIi9hY2Nlc3MtbWFuYWdlbWVudC9yb2xlc1wiKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57dGBDYW5jZWxgfTwvQnV0dG9uRGVmYXVsdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25QcmltYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJhZG1pbi5hbS5ncm91cC5uZXcuc2F2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17ZXYgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtLnN1Ym1pdChldik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57dGBTYXZlIHJvbGVgfTwvQnV0dG9uUHJpbWFyeT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b25XcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU2ltcGxlRm9ybUZvb3Rlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIDwvU2ltcGxlRm9ybT5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgPC9Gb3JtPlxuICAgICk7XG59O1xuIl19 */",
|
|
51
|
-
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
52
|
-
});
|
|
53
|
-
var PermissionsTitleCell = /*#__PURE__*/(0, _base.default)(_Grid.Cell, process.env.NODE_ENV === "production" ? {
|
|
54
|
-
target: "euuiyav0"
|
|
55
|
-
} : {
|
|
56
|
-
target: "euuiyav0",
|
|
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkdyb3Vwc0Zvcm0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVDeUMiLCJmaWxlIjoiR3JvdXBzRm9ybS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2sgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZU11dGF0aW9uLCB1c2VRdWVyeSB9IGZyb20gXCJAYXBvbGxvL3JlYWN0LWhvb2tzXCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCBwaWNrIGZyb20gXCJsb2Rhc2gvcGlja1wiO1xuaW1wb3J0IGdldCBmcm9tIFwibG9kYXNoL2dldFwiO1xuaW1wb3J0IHsgdXNlUm91dGVyIH0gZnJvbSBcIkB3ZWJpbnkvcmVhY3Qtcm91dGVyXCI7XG5pbXBvcnQgeyBpMThuIH0gZnJvbSBcIkB3ZWJpbnkvYXBwL2kxOG5cIjtcbmltcG9ydCB7IEZvcm0gfSBmcm9tIFwiQHdlYmlueS9mb3JtXCI7XG5pbXBvcnQgeyBHcmlkLCBDZWxsIH0gZnJvbSBcIkB3ZWJpbnkvdWkvR3JpZFwiO1xuaW1wb3J0IHsgSW5wdXQgfSBmcm9tIFwiQHdlYmlueS91aS9JbnB1dFwiO1xuaW1wb3J0IHsgQWxlcnQgfSBmcm9tIFwiQHdlYmlueS91aS9BbGVydFwiO1xuaW1wb3J0IHsgQnV0dG9uRGVmYXVsdCwgQnV0dG9uSWNvbiwgQnV0dG9uUHJpbWFyeSwgSWNvbkJ1dHRvbiB9IGZyb20gXCJAd2ViaW55L3VpL0J1dHRvblwiO1xuaW1wb3J0IHsgQ2lyY3VsYXJQcm9ncmVzcyB9IGZyb20gXCJAd2ViaW55L3VpL1Byb2dyZXNzXCI7XG5pbXBvcnQgeyB2YWxpZGF0aW9uIH0gZnJvbSBcIkB3ZWJpbnkvdmFsaWRhdGlvblwiO1xuaW1wb3J0IHtcbiAgICBTaW1wbGVGb3JtLFxuICAgIFNpbXBsZUZvcm1Gb290ZXIsXG4gICAgU2ltcGxlRm9ybUNvbnRlbnQsXG4gICAgU2ltcGxlRm9ybUhlYWRlclxufSBmcm9tIFwiQHdlYmlueS9hcHAtYWRtaW4vY29tcG9uZW50cy9TaW1wbGVGb3JtXCI7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5IH0gZnJvbSBcIkB3ZWJpbnkvdWkvVHlwb2dyYXBoeVwiO1xuaW1wb3J0IHsgUGVybWlzc2lvbnMgfSBmcm9tIFwiQHdlYmlueS9hcHAtYWRtaW4vY29tcG9uZW50cy9QZXJtaXNzaW9uc1wiO1xuaW1wb3J0IHsgdXNlU25hY2tiYXIgfSBmcm9tIFwiQHdlYmlueS9hcHAtYWRtaW4vaG9va3MvdXNlU25hY2tiYXJcIjtcbmltcG9ydCB7IENSRUFURV9HUk9VUCwgTElTVF9HUk9VUFMsIFJFQURfR1JPVVAsIFVQREFURV9HUk9VUCB9IGZyb20gXCIuL2dyYXBocWxcIjtcbmltcG9ydCB7IFNuYWNrYmFyQWN0aW9uIH0gZnJvbSBcIkB3ZWJpbnkvdWkvU25hY2tiYXJcIjtcbmltcG9ydCBpc0VtcHR5IGZyb20gXCJsb2Rhc2gvaXNFbXB0eVwiO1xuaW1wb3J0IEVtcHR5VmlldyBmcm9tIFwiQHdlYmlueS9hcHAtYWRtaW4vY29tcG9uZW50cy9FbXB0eVZpZXdcIjtcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIEFkZEljb24gfSBmcm9tIFwiQHdlYmlueS9hcHAtYWRtaW4vYXNzZXRzL2ljb25zL2FkZC0xOHB4LnN2Z1wiO1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gXCJAd2ViaW55L3VpL1Rvb2x0aXBcIjtcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIENvcHlJY29uIH0gZnJvbSBcIkBtYXRlcmlhbC1kZXNpZ24taWNvbnMvc3ZnL291dGxpbmVkL2NvbnRlbnRfY29weS5zdmdcIjtcbmltcG9ydCB7IEdyb3VwIH0gZnJvbSBcIn4vdHlwZXNcIjtcblxuY29uc3QgdCA9IGkxOG4ubnMoXCJhcHAtc2VjdXJpdHkvYWRtaW4vcm9sZXMvZm9ybVwiKTtcblxuY29uc3QgQnV0dG9uV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5gO1xuXG5jb25zdCBQZXJtaXNzaW9uc1RpdGxlQ2VsbCA9IHN0eWxlZChDZWxsKWBcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdyb3Vwc0Zvcm1Qcm9wcyB7XG4gICAgLy8gVE9ETyBAdHMtcmVmYWN0b3IgZGVsZXRlIGFuZCBnbyB1cCB0aGUgdHJlZSBhbmQgc29ydCBpdCBvdXRcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBjb25zdCBHcm91cHNGb3JtID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgbG9jYXRpb24sIGhpc3RvcnkgfSA9IHVzZVJvdXRlcigpO1xuICAgIGNvbnN0IHsgc2hvd1NuYWNrYmFyIH0gPSB1c2VTbmFja2JhcigpO1xuICAgIGNvbnN0IG5ld0dyb3VwID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpLmdldChcIm5ld1wiKSA9PT0gXCJ0cnVlXCI7XG4gICAgY29uc3QgaWQgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCkuZ2V0KFwiaWRcIik7XG5cbiAgICBjb25zdCBnZXRRdWVyeSA9IHVzZVF1ZXJ5KFJFQURfR1JPVVAsIHtcbiAgICAgICAgdmFyaWFibGVzOiB7IGlkIH0sXG4gICAgICAgIHNraXA6ICFpZCxcbiAgICAgICAgb25Db21wbGV0ZWQ6IGRhdGEgPT4ge1xuICAgICAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB7IGVycm9yIH0gPSBkYXRhLnNlY3VyaXR5Lmdyb3VwO1xuICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgaGlzdG9yeS5wdXNoKFwiL2FjY2Vzcy1tYW5hZ2VtZW50L3JvbGVzXCIpO1xuICAgICAgICAgICAgICAgIHNob3dTbmFja2JhcihlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgW2NyZWF0ZSwgY3JlYXRlTXV0YXRpb25dID0gdXNlTXV0YXRpb24oQ1JFQVRFX0dST1VQLCB7XG4gICAgICAgIHJlZmV0Y2hRdWVyaWVzOiBbeyBxdWVyeTogTElTVF9HUk9VUFMgfV1cbiAgICB9KTtcblxuICAgIGNvbnN0IFt1cGRhdGUsIHVwZGF0ZU11dGF0aW9uXSA9IHVzZU11dGF0aW9uKFVQREFURV9HUk9VUCwge1xuICAgICAgICByZWZldGNoUXVlcmllczogW3sgcXVlcnk6IExJU1RfR1JPVVBTIH1dXG4gICAgfSk7XG5cbiAgICBjb25zdCBsb2FkaW5nID0gW2dldFF1ZXJ5LCBjcmVhdGVNdXRhdGlvbiwgdXBkYXRlTXV0YXRpb25dLmZpbmQoaXRlbSA9PiBpdGVtLmxvYWRpbmcpO1xuXG4gICAgY29uc3Qgb25TdWJtaXQgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgYXN5bmMgKGZvcm1EYXRhOiBHcm91cCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFmb3JtRGF0YS5wZXJtaXNzaW9ucyB8fCAhZm9ybURhdGEucGVybWlzc2lvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgc2hvd1NuYWNrYmFyKHRgWW91IG11c3QgY29uZmlndXJlIHBlcm1pc3Npb25zIGJlZm9yZSBzYXZpbmchYCwge1xuICAgICAgICAgICAgICAgICAgICB0aW1lb3V0OiA2MDAwMCxcbiAgICAgICAgICAgICAgICAgICAgZGlzbWlzc2VzT25BY3Rpb246IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogPFNuYWNrYmFyQWN0aW9uIGxhYmVsPXtcIk9LXCJ9IC8+XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBpc1VwZGF0ZSA9IGZvcm1EYXRhLmNyZWF0ZWRPbjtcbiAgICAgICAgICAgIGNvbnN0IFtvcGVyYXRpb24sIGFyZ3NdID0gaXNVcGRhdGVcbiAgICAgICAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgICAgICAgICB1cGRhdGUsXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBmb3JtRGF0YS5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHBpY2soZm9ybURhdGEsIFtcIm5hbWVcIiwgXCJkZXNjcmlwdGlvblwiLCBcInBlcm1pc3Npb25zXCJdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIDogW1xuICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogcGljayhmb3JtRGF0YSwgW1wibmFtZVwiLCBcInNsdWdcIiwgXCJkZXNjcmlwdGlvblwiLCBcInBlcm1pc3Npb25zXCJdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgXTtcblxuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBvcGVyYXRpb24oYXJncyk7XG5cbiAgICAgICAgICAgIGNvbnN0IHsgZGF0YTogZ3JvdXAsIGVycm9yIH0gPSByZXNwb25zZS5kYXRhLnNlY3VyaXR5Lmdyb3VwO1xuICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNob3dTbmFja2JhcihlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgIWlzVXBkYXRlICYmIGhpc3RvcnkucHVzaChgL2FjY2Vzcy1tYW5hZ2VtZW50L3JvbGVzP2lkPSR7Z3JvdXAuaWR9YCk7XG4gICAgICAgICAgICBzaG93U25hY2tiYXIodGBSb2xlIHNhdmVkIHN1Y2Nlc3NmdWxseSFgKTtcbiAgICAgICAgfSxcbiAgICAgICAgW2lkXVxuICAgICk7XG5cbiAgICBjb25zdCBkYXRhOiBHcm91cCA9IGxvYWRpbmcgPyB7fSA6IGdldChnZXRRdWVyeSwgXCJkYXRhLnNlY3VyaXR5Lmdyb3VwLmRhdGFcIiwge30pO1xuXG4gICAgY29uc3Qgc3lzdGVtR3JvdXAgPSBkYXRhLnNsdWcgPT09IFwiZnVsbC1hY2Nlc3NcIiB8fCBkYXRhLnN5c3RlbTtcbiAgICBjb25zdCBwbHVnaW5Hcm91cCA9IGRhdGEucGx1Z2luO1xuICAgIGNvbnN0IGNhbk1vZGlmeUdyb3VwID0gIXN5c3RlbUdyb3VwICYmICFwbHVnaW5Hcm91cDtcblxuICAgIGNvbnN0IHNob3dFbXB0eVZpZXcgPSAhbmV3R3JvdXAgJiYgIWxvYWRpbmcgJiYgaXNFbXB0eShkYXRhKTtcbiAgICAvLyBSZW5kZXIgXCJObyBjb250ZW50XCIgc2VsZWN0ZWQgdmlldy5cbiAgICBpZiAoc2hvd0VtcHR5Vmlldykge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPEVtcHR5Vmlld1xuICAgICAgICAgICAgICAgIHRpdGxlPXt0YENsaWNrIG9uIHRoZSBsZWZ0IHNpZGUgbGlzdCB0byBkaXNwbGF5IHJvbGUgZGV0YWlscyBvciBjcmVhdGUgYS4uLmB9XG4gICAgICAgICAgICAgICAgYWN0aW9uPXtcbiAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbkRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwibmV3LXJlY29yZC1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGlzdG9yeS5wdXNoKFwiL2FjY2Vzcy1tYW5hZ2VtZW50L3JvbGVzP25ldz10cnVlXCIpfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uSWNvbiBpY29uPXs8QWRkSWNvbiAvPn0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt0YE5ldyBSb2xlYH1cbiAgICAgICAgICAgICAgICAgICAgPC9CdXR0b25EZWZhdWx0PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPEZvcm0gZGF0YT17ZGF0YX0gb25TdWJtaXQ9e29uU3VibWl0fT5cbiAgICAgICAgICAgIHsoeyBkYXRhLCBmb3JtLCBCaW5kIH0pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICA8U2ltcGxlRm9ybT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtsb2FkaW5nICYmIDxDaXJjdWxhclByb2dyZXNzIC8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgPFNpbXBsZUZvcm1IZWFkZXIgdGl0bGU9e2RhdGEubmFtZSA/IGRhdGEubmFtZSA6IFwiVW50aXRsZWRcIn0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTaW1wbGVGb3JtQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c3lzdGVtR3JvdXAgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDZWxsIHNwYW49ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QWxlcnQgdHlwZT17XCJpbmZvXCJ9IHRpdGxlPXtcIlBlcm1pc3Npb25zIGFyZSBsb2NrZWRcIn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgYSBwcm90ZWN0ZWQgc3lzdGVtIHJvbGUgYW5kIHlvdSBjYW4mYXBvczt0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmeSBpdHMgcGVybWlzc2lvbnMuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BbGVydD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ2VsbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3BsdWdpbkdyb3VwICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2VsbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFsZXJ0IHR5cGU9e1wiaW5mb1wifSB0aXRsZT17XCJQZXJtaXNzaW9ucyBhcmUgbG9ja2VkXCJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIHJvbGUgaXMgcmVnaXN0ZXJlZCB2aWEgYW4gZXh0ZW5zaW9uLCBhbmQgY2Fubm90IGJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQWxlcnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NlbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2VsbCBzcGFuPXs2fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCaW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvcnM9e3ZhbGlkYXRpb24uY3JlYXRlKFwicmVxdWlyZWQsbWluTGVuZ3RoOjNcIil9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXt0YE5hbWVgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17IWNhbk1vZGlmeUdyb3VwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImFkbWluLmFtLmdyb3VwLm5ldy5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CaW5kPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NlbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDZWxsIHNwYW49ezZ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJpbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwic2x1Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9ycz17dmFsaWRhdGlvbi5jcmVhdGUoXCJyZXF1aXJlZCxtaW5MZW5ndGg6M1wiKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFjYW5Nb2RpZnlHcm91cCB8fCAhbmV3R3JvdXB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXt0YFNsdWdgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImFkbWluLmFtLmdyb3VwLm5ldy5zbHVnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CaW5kPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NlbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2VsbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QmluZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9ycz17dmFsaWRhdGlvbi5jcmVhdGUoXCJtYXhMZW5ndGg6NTAwXCIpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17dGBEZXNjcmlwdGlvbmB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M9ezN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXshY2FuTW9kaWZ5R3JvdXB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiYWRtaW4uYW0uZ3JvdXAubmV3LmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CaW5kPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NlbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjYW5Nb2RpZnlHcm91cCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFBlcm1pc3Npb25zVGl0bGVDZWxsIHNwYW49ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeSB1c2U9e1wic3VidGl0bGUxXCJ9Pnt0YFBlcm1pc3Npb25zYH08L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudD1cIkNvcHkgcGVybWlzc2lvbnMgYXMgSlNPTlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD17XCJ0b3BcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPXs8Q29weUljb24gLz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGRhdGEucGVybWlzc2lvbnMsIG51bGwsIDIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93U25hY2tiYXIoXCJKU09OIGRhdGEgY29waWVkIHRvIGNsaXBib2FyZC5cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUGVybWlzc2lvbnNUaXRsZUNlbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2VsbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJpbmQgbmFtZT17XCJwZXJtaXNzaW9uc1wifSBkZWZhdWx0VmFsdWU9e1tdfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2JpbmQgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFBlcm1pc3Npb25zIGlkPXtkYXRhLmlkIHx8IFwibmV3XCJ9IHsuLi5iaW5kfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQmluZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ2VsbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1NpbXBsZUZvcm1Db250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAge2Nhbk1vZGlmeUdyb3VwICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2ltcGxlRm9ybUZvb3Rlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbldyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uRGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhpc3RvcnkucHVzaChcIi9hY2Nlc3MtbWFuYWdlbWVudC9yb2xlc1wiKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57dGBDYW5jZWxgfTwvQnV0dG9uRGVmYXVsdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25QcmltYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJhZG1pbi5hbS5ncm91cC5uZXcuc2F2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17ZXYgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtLnN1Ym1pdChldik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57dGBTYXZlIHJvbGVgfTwvQnV0dG9uUHJpbWFyeT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b25XcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU2ltcGxlRm9ybUZvb3Rlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIDwvU2ltcGxlRm9ybT5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgPC9Gb3JtPlxuICAgICk7XG59O1xuIl19 */",
|
|
65
|
-
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
66
|
-
});
|
|
67
|
-
var GroupsForm = exports.GroupsForm = function GroupsForm() {
|
|
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 newGroup = new URLSearchParams(location.search).get("new") === "true";
|
|
74
|
-
var id = new URLSearchParams(location.search).get("id");
|
|
75
|
-
var getQuery = (0, _reactHooks.useQuery)(_graphql.READ_GROUP, {
|
|
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 { validation } from "@webiny/validation";
|
|
8
|
+
import { SimpleForm, SimpleFormFooter, SimpleFormContent, SimpleFormHeader } from "@webiny/app-admin/components/SimpleForm";
|
|
9
|
+
import { Permissions } from "@webiny/app-admin/components/Permissions";
|
|
10
|
+
import { useSnackbar } from "@webiny/app-admin/hooks/useSnackbar";
|
|
11
|
+
import { CREATE_GROUP, LIST_GROUPS, READ_GROUP, UPDATE_GROUP } from "./graphql";
|
|
12
|
+
import isEmpty from "lodash/isEmpty";
|
|
13
|
+
import EmptyView from "@webiny/app-admin/components/EmptyView";
|
|
14
|
+
import { ReactComponent as AddIcon } from "@webiny/icons/add.svg";
|
|
15
|
+
import { ReactComponent as CopyIcon } from "@webiny/icons/content_copy.svg";
|
|
16
|
+
import { ReactComponent as SettingsIcon } from "@webiny/icons/settings.svg";
|
|
17
|
+
import { Alert, Button, Grid, IconButton, Input, OverlayLoader, Textarea, Tooltip } from "@webiny/admin-ui";
|
|
18
|
+
const t = i18n.ns("app-security/admin/roles/form");
|
|
19
|
+
export const GroupsForm = () => {
|
|
20
|
+
const {
|
|
21
|
+
location,
|
|
22
|
+
history
|
|
23
|
+
} = useRouter();
|
|
24
|
+
const {
|
|
25
|
+
showSnackbar
|
|
26
|
+
} = useSnackbar();
|
|
27
|
+
const newGroup = new URLSearchParams(location.search).get("new") === "true";
|
|
28
|
+
const id = new URLSearchParams(location.search).get("id");
|
|
29
|
+
const getQuery = useQuery(READ_GROUP, {
|
|
76
30
|
variables: {
|
|
77
|
-
id
|
|
31
|
+
id
|
|
78
32
|
},
|
|
79
33
|
skip: !id,
|
|
80
|
-
onCompleted:
|
|
34
|
+
onCompleted: data => {
|
|
81
35
|
if (!data) {
|
|
82
36
|
return;
|
|
83
37
|
}
|
|
84
|
-
|
|
38
|
+
const {
|
|
39
|
+
error
|
|
40
|
+
} = data.security.group;
|
|
85
41
|
if (error) {
|
|
86
42
|
history.push("/access-management/roles");
|
|
87
43
|
showSnackbar(error.message);
|
|
88
44
|
}
|
|
89
45
|
}
|
|
90
46
|
});
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
refetchQueries: [{
|
|
101
|
-
query: _graphql.LIST_GROUPS
|
|
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;
|
|
47
|
+
const [create, createMutation] = useMutation(CREATE_GROUP, {
|
|
48
|
+
refetchQueries: [{
|
|
49
|
+
query: LIST_GROUPS
|
|
50
|
+
}]
|
|
51
|
+
});
|
|
52
|
+
const [update, updateMutation] = useMutation(UPDATE_GROUP, {
|
|
53
|
+
refetchQueries: [{
|
|
54
|
+
query: LIST_GROUPS
|
|
55
|
+
}]
|
|
109
56
|
});
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
57
|
+
const loading = [getQuery, createMutation, updateMutation].find(item => item.loading);
|
|
58
|
+
const onSubmit = useCallback(async ({
|
|
59
|
+
id,
|
|
60
|
+
name,
|
|
61
|
+
description,
|
|
62
|
+
slug,
|
|
63
|
+
permissions,
|
|
64
|
+
createdOn
|
|
65
|
+
}) => {
|
|
66
|
+
if (!permissions || !permissions.length) {
|
|
67
|
+
showSnackbar(t`You must configure permissions before saving!`, {
|
|
113
68
|
timeout: 60000,
|
|
114
|
-
dismissesOnAction: true
|
|
115
|
-
action: /*#__PURE__*/_react.default.createElement(_Snackbar.SnackbarAction, {
|
|
116
|
-
label: "OK"
|
|
117
|
-
})
|
|
69
|
+
dismissesOnAction: true
|
|
118
70
|
});
|
|
119
71
|
return;
|
|
120
72
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
73
|
+
const isUpdate = createdOn;
|
|
74
|
+
const [operation, args] = isUpdate ? [update, {
|
|
75
|
+
variables: {
|
|
76
|
+
id,
|
|
77
|
+
data: {
|
|
78
|
+
name,
|
|
79
|
+
permissions,
|
|
80
|
+
...(description && {
|
|
81
|
+
description
|
|
82
|
+
})
|
|
126
83
|
}
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
|
|
84
|
+
}
|
|
85
|
+
}] : [create, {
|
|
86
|
+
variables: {
|
|
87
|
+
data: {
|
|
88
|
+
name,
|
|
89
|
+
slug,
|
|
90
|
+
description,
|
|
91
|
+
permissions
|
|
130
92
|
}
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
error = _response$data$securi.error;
|
|
93
|
+
}
|
|
94
|
+
}];
|
|
95
|
+
const response = await operation(args);
|
|
96
|
+
const {
|
|
97
|
+
data: group,
|
|
98
|
+
error
|
|
99
|
+
} = response.data.security.group;
|
|
139
100
|
if (error) {
|
|
140
101
|
return showSnackbar(error.message);
|
|
141
102
|
}
|
|
142
|
-
!isUpdate && history.push(
|
|
143
|
-
showSnackbar(t
|
|
103
|
+
!isUpdate && history.push(`/access-management/roles?id=${group.id}`);
|
|
104
|
+
showSnackbar(t`Role saved successfully!`);
|
|
144
105
|
}, [id]);
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
106
|
+
const data = loading ? {} : get(getQuery, "data.security.group.data", {});
|
|
107
|
+
const systemGroup = data.slug === "full-access" || data.system;
|
|
108
|
+
const pluginGroup = data.plugin;
|
|
109
|
+
const canModifyGroup = !systemGroup && !pluginGroup;
|
|
110
|
+
const showEmptyView = !newGroup && !loading && isEmpty(data);
|
|
150
111
|
// Render "No content" selected view.
|
|
151
112
|
if (showEmptyView) {
|
|
152
|
-
return /*#__PURE__*/
|
|
153
|
-
|
|
154
|
-
|
|
113
|
+
return /*#__PURE__*/React.createElement(EmptyView, {
|
|
114
|
+
icon: /*#__PURE__*/React.createElement(SettingsIcon, null),
|
|
115
|
+
title: t`Click on the left side list to display role details or create a...`,
|
|
116
|
+
action: /*#__PURE__*/React.createElement(Button, {
|
|
117
|
+
icon: /*#__PURE__*/React.createElement(AddIcon, null),
|
|
118
|
+
text: t`New Role`,
|
|
155
119
|
"data-testid": "new-record-button",
|
|
156
|
-
onClick:
|
|
157
|
-
|
|
158
|
-
}
|
|
159
|
-
}, /*#__PURE__*/_react.default.createElement(_Button.ButtonIcon, {
|
|
160
|
-
icon: /*#__PURE__*/_react.default.createElement(_add18px.ReactComponent, null)
|
|
161
|
-
}), t(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["New Role"]))))
|
|
120
|
+
onClick: () => history.push("/access-management/roles?new=true")
|
|
121
|
+
})
|
|
162
122
|
});
|
|
163
123
|
}
|
|
164
|
-
return /*#__PURE__*/
|
|
124
|
+
return /*#__PURE__*/React.createElement(Form, {
|
|
165
125
|
data: data,
|
|
166
126
|
onSubmit: onSubmit
|
|
167
|
-
},
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
127
|
+
}, ({
|
|
128
|
+
data,
|
|
129
|
+
form,
|
|
130
|
+
Bind
|
|
131
|
+
}) => {
|
|
132
|
+
return /*#__PURE__*/React.createElement(SimpleForm, {
|
|
133
|
+
size: "lg"
|
|
134
|
+
}, loading && /*#__PURE__*/React.createElement(OverlayLoader, null), /*#__PURE__*/React.createElement(SimpleFormHeader, {
|
|
172
135
|
title: data.name ? data.name : "Untitled"
|
|
173
|
-
}), /*#__PURE__*/
|
|
136
|
+
}), /*#__PURE__*/React.createElement(SimpleFormContent, null, /*#__PURE__*/React.createElement(Grid, null, /*#__PURE__*/React.createElement(React.Fragment, null, systemGroup && /*#__PURE__*/React.createElement(Grid.Column, {
|
|
174
137
|
span: 12
|
|
175
|
-
}, /*#__PURE__*/
|
|
176
|
-
type: "
|
|
138
|
+
}, /*#__PURE__*/React.createElement(Alert, {
|
|
139
|
+
type: "warning",
|
|
177
140
|
title: "Permissions are locked"
|
|
178
|
-
}, "This is a protected system role and you can't modify its permissions."))
|
|
141
|
+
}, "This is a protected system role and you can't modify its permissions.")), pluginGroup && /*#__PURE__*/React.createElement(Grid.Column, {
|
|
179
142
|
span: 12
|
|
180
|
-
}, /*#__PURE__*/
|
|
181
|
-
type: "
|
|
143
|
+
}, /*#__PURE__*/React.createElement(Alert, {
|
|
144
|
+
type: "warning",
|
|
182
145
|
title: "Permissions are locked"
|
|
183
|
-
}, "This role is registered via an extension, and cannot be modified."))
|
|
146
|
+
}, "This role is registered via an extension, and cannot be modified.")), /*#__PURE__*/React.createElement(Grid.Column, {
|
|
184
147
|
span: 6
|
|
185
|
-
}, /*#__PURE__*/
|
|
148
|
+
}, /*#__PURE__*/React.createElement(Bind, {
|
|
186
149
|
name: "name",
|
|
187
|
-
validators:
|
|
188
|
-
}, /*#__PURE__*/
|
|
189
|
-
|
|
150
|
+
validators: validation.create("required,minLength:3")
|
|
151
|
+
}, /*#__PURE__*/React.createElement(Input, {
|
|
152
|
+
size: "lg",
|
|
153
|
+
label: t`Name`,
|
|
190
154
|
disabled: !canModifyGroup,
|
|
191
155
|
"data-testid": "admin.am.group.new.name"
|
|
192
|
-
}))), /*#__PURE__*/
|
|
156
|
+
}))), /*#__PURE__*/React.createElement(Grid.Column, {
|
|
193
157
|
span: 6
|
|
194
|
-
}, /*#__PURE__*/
|
|
158
|
+
}, /*#__PURE__*/React.createElement(Bind, {
|
|
195
159
|
name: "slug",
|
|
196
|
-
validators:
|
|
197
|
-
}, /*#__PURE__*/
|
|
160
|
+
validators: validation.create("required,minLength:3")
|
|
161
|
+
}, /*#__PURE__*/React.createElement(Input, {
|
|
162
|
+
size: "lg",
|
|
198
163
|
disabled: !canModifyGroup || !newGroup,
|
|
199
|
-
label: t
|
|
164
|
+
label: t`Slug`,
|
|
200
165
|
"data-testid": "admin.am.group.new.slug"
|
|
201
|
-
})))
|
|
166
|
+
}))), /*#__PURE__*/React.createElement(Grid.Column, {
|
|
202
167
|
span: 12
|
|
203
|
-
}, /*#__PURE__*/
|
|
168
|
+
}, /*#__PURE__*/React.createElement(Bind, {
|
|
204
169
|
name: "description",
|
|
205
|
-
validators:
|
|
206
|
-
}, /*#__PURE__*/
|
|
207
|
-
|
|
170
|
+
validators: validation.create("maxLength:500")
|
|
171
|
+
}, /*#__PURE__*/React.createElement(Textarea, {
|
|
172
|
+
size: "lg",
|
|
173
|
+
label: t`Description`,
|
|
208
174
|
rows: 3,
|
|
209
175
|
disabled: !canModifyGroup,
|
|
210
176
|
"data-testid": "admin.am.group.new.description"
|
|
211
|
-
})))),
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
177
|
+
})))))), /*#__PURE__*/React.createElement(SimpleFormHeader, {
|
|
178
|
+
title: "Permissions",
|
|
179
|
+
rounded: false
|
|
180
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
181
|
+
className: "wby-flex wby-justify-end"
|
|
182
|
+
}, /*#__PURE__*/React.createElement(Tooltip, {
|
|
216
183
|
content: "Copy permissions as JSON",
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
184
|
+
trigger: /*#__PURE__*/React.createElement(IconButton, {
|
|
185
|
+
variant: "ghost",
|
|
186
|
+
icon: /*#__PURE__*/React.createElement(CopyIcon, null),
|
|
187
|
+
onClick: () => {
|
|
188
|
+
navigator.clipboard.writeText(JSON.stringify(data.permissions, null, 2));
|
|
189
|
+
showSnackbar("JSON data copied to clipboard.");
|
|
190
|
+
}
|
|
191
|
+
})
|
|
192
|
+
}))), /*#__PURE__*/React.createElement(SimpleFormContent, null, /*#__PURE__*/React.createElement(Grid, null, /*#__PURE__*/React.createElement(React.Fragment, null, canModifyGroup && /*#__PURE__*/React.createElement(Grid.Column, {
|
|
225
193
|
span: 12
|
|
226
|
-
}, /*#__PURE__*/
|
|
194
|
+
}, /*#__PURE__*/React.createElement(Bind, {
|
|
227
195
|
name: "permissions",
|
|
228
196
|
defaultValue: []
|
|
229
|
-
},
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
onClick:
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
197
|
+
}, bind => /*#__PURE__*/React.createElement(Permissions, Object.assign({
|
|
198
|
+
id: data.id || "new"
|
|
199
|
+
}, bind))))))), /*#__PURE__*/React.createElement(SimpleFormFooter, null, canModifyGroup && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button, {
|
|
200
|
+
variant: "secondary",
|
|
201
|
+
text: t`Cancel`,
|
|
202
|
+
onClick: () => history.push("/access-management/roles"),
|
|
203
|
+
"data-testid": "pb.category.new.form.button.cancel"
|
|
204
|
+
}), /*#__PURE__*/React.createElement(Button, {
|
|
205
|
+
text: t`Save`,
|
|
238
206
|
"data-testid": "admin.am.group.new.save",
|
|
239
|
-
onClick:
|
|
207
|
+
onClick: ev => {
|
|
240
208
|
form.submit(ev);
|
|
241
209
|
}
|
|
242
|
-
}
|
|
210
|
+
}))));
|
|
243
211
|
});
|
|
244
212
|
};
|
|
245
213
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactHooks","_pick","_interopRequireDefault","_get","_reactRouter","_i18n","_form","_Grid","_Input","_Alert","_Button","_Progress","_validation","_SimpleForm","_Typography","_Permissions","_useSnackbar2","_graphql","_Snackbar","_isEmpty","_EmptyView","_add18px","_Tooltip","_content_copy","_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","GroupsForm","exports","_useRouter","useRouter","location","history","_useSnackbar","useSnackbar","showSnackbar","newGroup","URLSearchParams","search","get","id","getQuery","useQuery","READ_GROUP","variables","skip","onCompleted","data","error","security","group","push","message","_useMutation","useMutation","CREATE_GROUP","refetchQueries","query","LIST_GROUPS","_useMutation2","_slicedToArray2","create","createMutation","_useMutation3","UPDATE_GROUP","_useMutation4","update","updateMutation","loading","find","item","onSubmit","useCallback","formData","permissions","length","_taggedTemplateLiteral2","timeout","dismissesOnAction","action","createElement","SnackbarAction","isUpdate","createdOn","_ref","pick","_ref2","operation","args","response","_response$data$securi","concat","systemGroup","slug","system","pluginGroup","plugin","canModifyGroup","showEmptyView","isEmpty","title","ButtonDefault","onClick","ButtonIcon","icon","ReactComponent","Form","_ref3","form","Bind","SimpleForm","CircularProgress","SimpleFormHeader","SimpleFormContent","Grid","span","Alert","type","validators","validation","Input","disabled","rows","Typography","use","Tooltip","content","placement","IconButton","navigator","clipboard","writeText","JSON","stringify","defaultValue","bind","Permissions","Object","assign","SimpleFormFooter","ButtonPrimary","ev","submit"],"sources":["GroupsForm.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { useMutation, useQuery } from \"@apollo/react-hooks\";\nimport styled from \"@emotion/styled\";\nimport pick from \"lodash/pick\";\nimport get from \"lodash/get\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { Form } from \"@webiny/form\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { Alert } from \"@webiny/ui/Alert\";\nimport { ButtonDefault, ButtonIcon, ButtonPrimary, IconButton } from \"@webiny/ui/Button\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { validation } from \"@webiny/validation\";\nimport {\n SimpleForm,\n SimpleFormFooter,\n SimpleFormContent,\n SimpleFormHeader\n} from \"@webiny/app-admin/components/SimpleForm\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { Permissions } from \"@webiny/app-admin/components/Permissions\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { CREATE_GROUP, LIST_GROUPS, READ_GROUP, UPDATE_GROUP } from \"./graphql\";\nimport { SnackbarAction } from \"@webiny/ui/Snackbar\";\nimport isEmpty from \"lodash/isEmpty\";\nimport EmptyView from \"@webiny/app-admin/components/EmptyView\";\nimport { ReactComponent as AddIcon } from \"@webiny/app-admin/assets/icons/add-18px.svg\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { ReactComponent as CopyIcon } from \"@material-design-icons/svg/outlined/content_copy.svg\";\nimport { Group } from \"~/types\";\n\nconst t = i18n.ns(\"app-security/admin/roles/form\");\n\nconst ButtonWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n`;\n\nconst PermissionsTitleCell = styled(Cell)`\n display: flex;\n align-items: center;\n`;\n\nexport interface GroupsFormProps {\n // TODO @ts-refactor delete and go up the tree and sort it out\n [key: string]: any;\n}\n\nexport const GroupsForm = () => {\n const { location, history } = useRouter();\n const { showSnackbar } = useSnackbar();\n const newGroup = new URLSearchParams(location.search).get(\"new\") === \"true\";\n const id = new URLSearchParams(location.search).get(\"id\");\n\n const getQuery = useQuery(READ_GROUP, {\n variables: { id },\n skip: !id,\n onCompleted: data => {\n if (!data) {\n return;\n }\n\n const { error } = data.security.group;\n if (error) {\n history.push(\"/access-management/roles\");\n showSnackbar(error.message);\n }\n }\n });\n\n const [create, createMutation] = useMutation(CREATE_GROUP, {\n refetchQueries: [{ query: LIST_GROUPS }]\n });\n\n const [update, updateMutation] = useMutation(UPDATE_GROUP, {\n refetchQueries: [{ query: LIST_GROUPS }]\n });\n\n const loading = [getQuery, createMutation, updateMutation].find(item => item.loading);\n\n const onSubmit = useCallback(\n async (formData: Group) => {\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 ? [\n update,\n {\n variables: {\n id: formData.id,\n data: pick(formData, [\"name\", \"description\", \"permissions\"])\n }\n }\n ]\n : [\n create,\n {\n variables: {\n data: pick(formData, [\"name\", \"slug\", \"description\", \"permissions\"])\n }\n }\n ];\n\n const response = await operation(args);\n\n const { data: group, error } = response.data.security.group;\n if (error) {\n return showSnackbar(error.message);\n }\n\n !isUpdate && history.push(`/access-management/roles?id=${group.id}`);\n showSnackbar(t`Role saved successfully!`);\n },\n [id]\n );\n\n const data: Group = loading ? {} : get(getQuery, \"data.security.group.data\", {});\n\n const systemGroup = data.slug === \"full-access\" || data.system;\n const pluginGroup = data.plugin;\n const canModifyGroup = !systemGroup && !pluginGroup;\n\n const showEmptyView = !newGroup && !loading && isEmpty(data);\n // Render \"No content\" selected view.\n if (showEmptyView) {\n return (\n <EmptyView\n title={t`Click on the left side list to display role details or create a...`}\n action={\n <ButtonDefault\n data-testid=\"new-record-button\"\n onClick={() => history.push(\"/access-management/roles?new=true\")}\n >\n <ButtonIcon icon={<AddIcon />} />\n {t`New Role`}\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 {systemGroup && (\n <Grid>\n <Cell span={12}>\n <Alert type={\"info\"} title={\"Permissions are locked\"}>\n This is a protected system role and you can't\n modify its permissions.\n </Alert>\n </Cell>\n </Grid>\n )}\n {pluginGroup && (\n <Grid>\n <Cell span={12}>\n <Alert type={\"info\"} title={\"Permissions are locked\"}>\n This role is registered via an extension, and cannot be\n modified.\n </Alert>\n </Cell>\n </Grid>\n )}\n <Grid>\n <Cell span={6}>\n <Bind\n name=\"name\"\n validators={validation.create(\"required,minLength:3\")}\n >\n <Input\n label={t`Name`}\n disabled={!canModifyGroup}\n data-testid=\"admin.am.group.new.name\"\n />\n </Bind>\n </Cell>\n <Cell span={6}>\n <Bind\n name=\"slug\"\n validators={validation.create(\"required,minLength:3\")}\n >\n <Input\n disabled={!canModifyGroup || !newGroup}\n label={t`Slug`}\n data-testid=\"admin.am.group.new.slug\"\n />\n </Bind>\n </Cell>\n </Grid>\n <Grid>\n <Cell span={12}>\n <Bind\n name=\"description\"\n validators={validation.create(\"maxLength:500\")}\n >\n <Input\n label={t`Description`}\n rows={3}\n disabled={!canModifyGroup}\n data-testid=\"admin.am.group.new.description\"\n />\n </Bind>\n </Cell>\n </Grid>\n {canModifyGroup && (\n <Grid>\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 span={12}>\n <Bind name={\"permissions\"} defaultValue={[]}>\n {bind => (\n <Permissions id={data.id || \"new\"} {...bind} />\n )}\n </Bind>\n </Cell>\n </Grid>\n )}\n </SimpleFormContent>\n {canModifyGroup && (\n <SimpleFormFooter>\n <ButtonWrapper>\n <ButtonDefault\n onClick={() => history.push(\"/access-management/roles\")}\n >{t`Cancel`}</ButtonDefault>\n <ButtonPrimary\n data-testid=\"admin.am.group.new.save\"\n onClick={ev => {\n form.submit(ev);\n }}\n >{t`Save role`}</ButtonPrimary>\n </ButtonWrapper>\n </SimpleFormFooter>\n )}\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","validation","SimpleForm","SimpleFormFooter","SimpleFormContent","SimpleFormHeader","Permissions","useSnackbar","CREATE_GROUP","LIST_GROUPS","READ_GROUP","UPDATE_GROUP","isEmpty","EmptyView","ReactComponent","AddIcon","CopyIcon","SettingsIcon","Alert","Button","Grid","IconButton","Input","OverlayLoader","Textarea","Tooltip","t","ns","GroupsForm","location","history","showSnackbar","newGroup","URLSearchParams","search","id","getQuery","variables","skip","onCompleted","data","error","security","group","push","message","create","createMutation","refetchQueries","query","update","updateMutation","loading","find","item","onSubmit","name","description","slug","permissions","createdOn","length","timeout","dismissesOnAction","isUpdate","operation","args","response","systemGroup","system","pluginGroup","plugin","canModifyGroup","showEmptyView","createElement","icon","title","action","text","onClick","form","Bind","size","Fragment","Column","span","type","validators","label","disabled","rows","rounded","className","content","trigger","variant","navigator","clipboard","writeText","JSON","stringify","defaultValue","bind","Object","assign","ev","submit"],"sources":["GroupsForm.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 { validation } from \"@webiny/validation\";\nimport {\n SimpleForm,\n SimpleFormFooter,\n SimpleFormContent,\n SimpleFormHeader\n} from \"@webiny/app-admin/components/SimpleForm\";\nimport { Permissions } from \"@webiny/app-admin/components/Permissions\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { CREATE_GROUP, LIST_GROUPS, READ_GROUP, UPDATE_GROUP } from \"./graphql\";\nimport 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 type { Group } from \"~/types\";\nimport {\n Alert,\n Button,\n Grid,\n IconButton,\n Input,\n OverlayLoader,\n Textarea,\n Tooltip\n} from \"@webiny/admin-ui\";\n\nconst t = i18n.ns(\"app-security/admin/roles/form\");\n\nexport interface GroupsFormProps {\n // TODO @ts-refactor delete and go up the tree and sort it out\n [key: string]: any;\n}\n\nexport const GroupsForm = () => {\n const { location, history } = useRouter();\n const { showSnackbar } = useSnackbar();\n const newGroup = new URLSearchParams(location.search).get(\"new\") === \"true\";\n const id = new URLSearchParams(location.search).get(\"id\");\n\n const getQuery = useQuery(READ_GROUP, {\n variables: { id },\n skip: !id,\n onCompleted: data => {\n if (!data) {\n return;\n }\n\n const { error } = data.security.group;\n if (error) {\n history.push(\"/access-management/roles\");\n showSnackbar(error.message);\n }\n }\n });\n\n const [create, createMutation] = useMutation(CREATE_GROUP, {\n refetchQueries: [{ query: LIST_GROUPS }]\n });\n\n const [update, updateMutation] = useMutation(UPDATE_GROUP, {\n refetchQueries: [{ query: LIST_GROUPS }]\n });\n\n const loading = [getQuery, createMutation, updateMutation].find(item => item.loading);\n\n const onSubmit = useCallback(\n async ({ id, name, description, slug, permissions, createdOn }: Group) => {\n if (!permissions || !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 = createdOn;\n const [operation, args] = isUpdate\n ? [\n update,\n {\n variables: {\n id,\n data: {\n name,\n permissions,\n ...(description && { description })\n }\n }\n }\n ]\n : [\n create,\n {\n variables: {\n data: {\n name,\n slug,\n description,\n permissions\n }\n }\n }\n ];\n\n const response = await operation(args);\n\n const { data: group, error } = response.data.security.group;\n if (error) {\n return showSnackbar(error.message);\n }\n\n !isUpdate && history.push(`/access-management/roles?id=${group.id}`);\n showSnackbar(t`Role saved successfully!`);\n },\n [id]\n );\n\n const data: Group = loading ? {} : get(getQuery, \"data.security.group.data\", {});\n\n const systemGroup = data.slug === \"full-access\" || data.system;\n const pluginGroup = data.plugin;\n const canModifyGroup = !systemGroup && !pluginGroup;\n\n const showEmptyView = !newGroup && !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 role details or create a...`}\n action={\n <Button\n icon={<AddIcon />}\n text={t`New Role`}\n data-testid=\"new-record-button\"\n onClick={() => history.push(\"/access-management/roles?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 <>\n {systemGroup && (\n <Grid.Column span={12}>\n <Alert\n type={\"warning\"}\n title={\"Permissions are locked\"}\n >\n This is a protected system role and you can't\n modify its permissions.\n </Alert>\n </Grid.Column>\n )}\n {pluginGroup && (\n <Grid.Column span={12}>\n <Alert\n type={\"warning\"}\n title={\"Permissions are locked\"}\n >\n This role is registered via an extension, and cannot\n be modified.\n </Alert>\n </Grid.Column>\n )}\n <Grid.Column span={6}>\n <Bind\n name=\"name\"\n validators={validation.create(\"required,minLength:3\")}\n >\n <Input\n size={\"lg\"}\n label={t`Name`}\n disabled={!canModifyGroup}\n data-testid=\"admin.am.group.new.name\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={6}>\n <Bind\n name=\"slug\"\n validators={validation.create(\"required,minLength:3\")}\n >\n <Input\n size={\"lg\"}\n disabled={!canModifyGroup || !newGroup}\n label={t`Slug`}\n data-testid=\"admin.am.group.new.slug\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind\n name=\"description\"\n validators={validation.create(\"maxLength:500\")}\n >\n <Textarea\n size={\"lg\"}\n label={t`Description`}\n rows={3}\n disabled={!canModifyGroup}\n data-testid=\"admin.am.group.new.description\"\n />\n </Bind>\n </Grid.Column>\n </>\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 <>\n {canModifyGroup && (\n <Grid.Column span={12}>\n <Bind name={\"permissions\"} defaultValue={[]}>\n {bind => (\n <Permissions id={data.id || \"new\"} {...bind} />\n )}\n </Bind>\n </Grid.Column>\n )}\n </>\n </Grid>\n </SimpleFormContent>\n <SimpleFormFooter>\n {canModifyGroup && (\n <>\n <Button\n variant={\"secondary\"}\n text={t`Cancel`}\n onClick={() => history.push(\"/access-management/roles\")}\n data-testid=\"pb.category.new.form.button.cancel\"\n />\n <Button\n text={t`Save`}\n data-testid=\"admin.am.group.new.save\"\n onClick={ev => {\n form.submit(ev);\n }}\n />\n </>\n )}\n </SimpleFormFooter>\n </SimpleForm>\n );\n }}\n </Form>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|