@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.
Files changed (100) hide show
  1. package/components/GroupAutocomplete/graphql.js +16 -11
  2. package/components/GroupAutocomplete/graphql.js.map +1 -1
  3. package/components/GroupAutocomplete/index.d.ts +1 -1
  4. package/components/GroupAutocomplete/index.js +11 -17
  5. package/components/GroupAutocomplete/index.js.map +1 -1
  6. package/components/GroupsMultiAutocomplete/graphql.js +21 -11
  7. package/components/GroupsMultiAutocomplete/graphql.js.map +1 -1
  8. package/components/GroupsMultiAutocomplete/index.d.ts +1 -1
  9. package/components/GroupsMultiAutocomplete/index.js +11 -17
  10. package/components/GroupsMultiAutocomplete/index.js.map +1 -1
  11. package/components/NotAuthorizedError/NotAuthorizedError.js +18 -61
  12. package/components/NotAuthorizedError/NotAuthorizedError.js.map +1 -1
  13. package/components/NotAuthorizedError/index.js +1 -12
  14. package/components/NotAuthorizedError/index.js.map +1 -1
  15. package/components/TeamAutocomplete/graphql.js +16 -11
  16. package/components/TeamAutocomplete/graphql.js.map +1 -1
  17. package/components/TeamAutocomplete/index.d.ts +1 -1
  18. package/components/TeamAutocomplete/index.js +11 -17
  19. package/components/TeamAutocomplete/index.js.map +1 -1
  20. package/components/TeamsMultiAutocomplete/graphql.js +21 -11
  21. package/components/TeamsMultiAutocomplete/graphql.js.map +1 -1
  22. package/components/TeamsMultiAutocomplete/index.d.ts +1 -1
  23. package/components/TeamsMultiAutocomplete/index.js +11 -17
  24. package/components/TeamsMultiAutocomplete/index.js.map +1 -1
  25. package/index.d.ts +0 -7
  26. package/index.js +80 -71
  27. package/index.js.map +1 -1
  28. package/package.json +13 -13
  29. package/plugins/constants.js +1 -7
  30. package/plugins/constants.js.map +1 -1
  31. package/plugins/index.d.ts +1 -1
  32. package/plugins/index.js +4 -13
  33. package/plugins/index.js.map +1 -1
  34. package/plugins/installation.d.ts +1 -1
  35. package/plugins/installation.js +62 -51
  36. package/plugins/installation.js.map +1 -1
  37. package/plugins/permissionRenderer/SecurityPermissions.d.ts +1 -1
  38. package/plugins/permissionRenderer/SecurityPermissions.js +84 -127
  39. package/plugins/permissionRenderer/SecurityPermissions.js.map +1 -1
  40. package/plugins/permissionRenderer/index.js +17 -23
  41. package/plugins/permissionRenderer/index.js.map +1 -1
  42. package/plugins/routes.d.ts +1 -1
  43. package/plugins/routes.js +22 -33
  44. package/plugins/routes.js.map +1 -1
  45. package/plugins/secureRouteError.d.ts +1 -1
  46. package/plugins/secureRouteError.js +6 -13
  47. package/plugins/secureRouteError.js.map +1 -1
  48. package/types.d.ts +1 -1
  49. package/types.js +1 -5
  50. package/types.js.map +1 -1
  51. package/ui/elements/GroupAutocompleteElement.d.ts +1 -1
  52. package/ui/elements/GroupAutocompleteElement.js +29 -45
  53. package/ui/elements/GroupAutocompleteElement.js.map +1 -1
  54. package/ui/elements/GroupsMultiAutocompleteElement.d.ts +1 -1
  55. package/ui/elements/GroupsMultiAutocompleteElement.js +29 -45
  56. package/ui/elements/GroupsMultiAutocompleteElement.js.map +1 -1
  57. package/ui/elements/TeamAutocompleteElement.d.ts +1 -1
  58. package/ui/elements/TeamAutocompleteElement.js +29 -45
  59. package/ui/elements/TeamAutocompleteElement.js.map +1 -1
  60. package/ui/views/ApiKeys/ApiKeyForm.js +137 -200
  61. package/ui/views/ApiKeys/ApiKeyForm.js.map +1 -1
  62. package/ui/views/ApiKeys/ApiKeys.d.ts +2 -2
  63. package/ui/views/ApiKeys/ApiKeys.js +9 -17
  64. package/ui/views/ApiKeys/ApiKeys.js.map +1 -1
  65. package/ui/views/ApiKeys/ApiKeysDataList.js +110 -134
  66. package/ui/views/ApiKeys/ApiKeysDataList.js.map +1 -1
  67. package/ui/views/ApiKeys/graphql.d.ts +1 -1
  68. package/ui/views/ApiKeys/graphql.js +80 -16
  69. package/ui/views/ApiKeys/graphql.js.map +1 -1
  70. package/ui/views/ApiKeys/index.js +1 -16
  71. package/ui/views/ApiKeys/index.js.map +1 -1
  72. package/ui/views/ApiKeys/utils.d.ts +1 -1
  73. package/ui/views/ApiKeys/utils.js +3 -11
  74. package/ui/views/ApiKeys/utils.js.map +1 -1
  75. package/ui/views/Groups/Groups.d.ts +2 -2
  76. package/ui/views/Groups/Groups.js +9 -17
  77. package/ui/views/Groups/Groups.js.map +1 -1
  78. package/ui/views/Groups/GroupsDataList.js +114 -141
  79. package/ui/views/Groups/GroupsDataList.js.map +1 -1
  80. package/ui/views/Groups/GroupsForm.js +155 -187
  81. package/ui/views/Groups/GroupsForm.js.map +1 -1
  82. package/ui/views/Groups/graphql.d.ts +1 -1
  83. package/ui/views/Groups/graphql.js +83 -16
  84. package/ui/views/Groups/graphql.js.map +1 -1
  85. package/ui/views/Groups/index.js +1 -16
  86. package/ui/views/Groups/index.js.map +1 -1
  87. package/ui/views/Teams/Teams.d.ts +2 -2
  88. package/ui/views/Teams/Teams.js +9 -17
  89. package/ui/views/Teams/Teams.js.map +1 -1
  90. package/ui/views/Teams/TeamsDataList.js +116 -141
  91. package/ui/views/Teams/TeamsDataList.js.map +1 -1
  92. package/ui/views/Teams/TeamsForm.js +118 -150
  93. package/ui/views/Teams/TeamsForm.js.map +1 -1
  94. package/ui/views/Teams/graphql.d.ts +1 -1
  95. package/ui/views/Teams/graphql.js +87 -16
  96. package/ui/views/Teams/graphql.js.map +1 -1
  97. package/ui/views/Teams/index.js +1 -16
  98. package/ui/views/Teams/index.js.map +1 -1
  99. package/ui/views/utils.js +3 -14
  100. package/ui/views/utils.js.map +1 -1
@@ -1,245 +1,213 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.GroupsForm = void 0;
9
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
10
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
- var _base = _interopRequireDefault(require("@emotion/styled/base"));
12
- var _react = _interopRequireWildcard(require("react"));
13
- var _reactHooks = require("@apollo/react-hooks");
14
- var _pick = _interopRequireDefault(require("lodash/pick"));
15
- var _get = _interopRequireDefault(require("lodash/get"));
16
- var _reactRouter = require("@webiny/react-router");
17
- var _i18n = require("@webiny/app/i18n");
18
- var _form = require("@webiny/form");
19
- var _Grid = require("@webiny/ui/Grid");
20
- var _Input = require("@webiny/ui/Input");
21
- var _Alert = require("@webiny/ui/Alert");
22
- var _Button = require("@webiny/ui/Button");
23
- var _Progress = require("@webiny/ui/Progress");
24
- var _validation = require("@webiny/validation");
25
- var _SimpleForm = require("@webiny/app-admin/components/SimpleForm");
26
- var _Typography = require("@webiny/ui/Typography");
27
- var _Permissions = require("@webiny/app-admin/components/Permissions");
28
- var _useSnackbar2 = require("@webiny/app-admin/hooks/useSnackbar");
29
- var _graphql = require("./graphql");
30
- var _Snackbar = require("@webiny/ui/Snackbar");
31
- var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
32
- var _EmptyView = _interopRequireDefault(require("@webiny/app-admin/components/EmptyView"));
33
- var _add18px = require("@webiny/app-admin/assets/icons/add-18px.svg");
34
- var _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: id
31
+ id
78
32
  },
79
33
  skip: !id,
80
- onCompleted: function onCompleted(data) {
34
+ onCompleted: data => {
81
35
  if (!data) {
82
36
  return;
83
37
  }
84
- var error = data.security.group.error;
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
- var _useMutation = (0, _reactHooks.useMutation)(_graphql.CREATE_GROUP, {
92
- refetchQueries: [{
93
- query: _graphql.LIST_GROUPS
94
- }]
95
- }),
96
- _useMutation2 = (0, _slicedToArray2.default)(_useMutation, 2),
97
- create = _useMutation2[0],
98
- createMutation = _useMutation2[1];
99
- var _useMutation3 = (0, _reactHooks.useMutation)(_graphql.UPDATE_GROUP, {
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
- var onSubmit = (0, _react.useCallback)(async function (formData) {
111
- if (!formData.permissions || !formData.permissions.length) {
112
- showSnackbar(t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["You must configure permissions before saving!"]))), {
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
- var isUpdate = formData.createdOn;
122
- var _ref = isUpdate ? [update, {
123
- variables: {
124
- id: formData.id,
125
- data: (0, _pick.default)(formData, ["name", "description", "permissions"])
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
- }] : [create, {
128
- variables: {
129
- data: (0, _pick.default)(formData, ["name", "slug", "description", "permissions"])
84
+ }
85
+ }] : [create, {
86
+ variables: {
87
+ data: {
88
+ name,
89
+ slug,
90
+ description,
91
+ permissions
130
92
  }
131
- }],
132
- _ref2 = (0, _slicedToArray2.default)(_ref, 2),
133
- operation = _ref2[0],
134
- args = _ref2[1];
135
- var response = await operation(args);
136
- var _response$data$securi = response.data.security.group,
137
- group = _response$data$securi.data,
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("/access-management/roles?id=".concat(group.id));
143
- showSnackbar(t(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["Role saved successfully!"]))));
103
+ !isUpdate && history.push(`/access-management/roles?id=${group.id}`);
104
+ showSnackbar(t`Role saved successfully!`);
144
105
  }, [id]);
145
- var data = loading ? {} : (0, _get.default)(getQuery, "data.security.group.data", {});
146
- var systemGroup = data.slug === "full-access" || data.system;
147
- var pluginGroup = data.plugin;
148
- var canModifyGroup = !systemGroup && !pluginGroup;
149
- var showEmptyView = !newGroup && !loading && (0, _isEmpty.default)(data);
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__*/_react.default.createElement(_EmptyView.default, {
153
- title: t(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["Click on the left side list to display role details or create a..."]))),
154
- action: /*#__PURE__*/_react.default.createElement(_Button.ButtonDefault, {
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: function onClick() {
157
- return history.push("/access-management/roles?new=true");
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__*/_react.default.createElement(_form.Form, {
124
+ return /*#__PURE__*/React.createElement(Form, {
165
125
  data: data,
166
126
  onSubmit: onSubmit
167
- }, function (_ref3) {
168
- var data = _ref3.data,
169
- form = _ref3.form,
170
- Bind = _ref3.Bind;
171
- return /*#__PURE__*/_react.default.createElement(_SimpleForm.SimpleForm, null, loading && /*#__PURE__*/_react.default.createElement(_Progress.CircularProgress, null), /*#__PURE__*/_react.default.createElement(_SimpleForm.SimpleFormHeader, {
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__*/_react.default.createElement(_SimpleForm.SimpleFormContent, null, systemGroup && /*#__PURE__*/_react.default.createElement(_Grid.Grid, null, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
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__*/_react.default.createElement(_Alert.Alert, {
176
- type: "info",
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."))), pluginGroup && /*#__PURE__*/_react.default.createElement(_Grid.Grid, null, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
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__*/_react.default.createElement(_Alert.Alert, {
181
- type: "info",
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."))), /*#__PURE__*/_react.default.createElement(_Grid.Grid, null, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
146
+ }, "This role is registered via an extension, and cannot be modified.")), /*#__PURE__*/React.createElement(Grid.Column, {
184
147
  span: 6
185
- }, /*#__PURE__*/_react.default.createElement(Bind, {
148
+ }, /*#__PURE__*/React.createElement(Bind, {
186
149
  name: "name",
187
- validators: _validation.validation.create("required,minLength:3")
188
- }, /*#__PURE__*/_react.default.createElement(_Input.Input, {
189
- label: t(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["Name"]))),
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__*/_react.default.createElement(_Grid.Cell, {
156
+ }))), /*#__PURE__*/React.createElement(Grid.Column, {
193
157
  span: 6
194
- }, /*#__PURE__*/_react.default.createElement(Bind, {
158
+ }, /*#__PURE__*/React.createElement(Bind, {
195
159
  name: "slug",
196
- validators: _validation.validation.create("required,minLength:3")
197
- }, /*#__PURE__*/_react.default.createElement(_Input.Input, {
160
+ validators: validation.create("required,minLength:3")
161
+ }, /*#__PURE__*/React.createElement(Input, {
162
+ size: "lg",
198
163
  disabled: !canModifyGroup || !newGroup,
199
- label: t(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["Slug"]))),
164
+ label: t`Slug`,
200
165
  "data-testid": "admin.am.group.new.slug"
201
- })))), /*#__PURE__*/_react.default.createElement(_Grid.Grid, null, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
166
+ }))), /*#__PURE__*/React.createElement(Grid.Column, {
202
167
  span: 12
203
- }, /*#__PURE__*/_react.default.createElement(Bind, {
168
+ }, /*#__PURE__*/React.createElement(Bind, {
204
169
  name: "description",
205
- validators: _validation.validation.create("maxLength:500")
206
- }, /*#__PURE__*/_react.default.createElement(_Input.Input, {
207
- label: t(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["Description"]))),
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
- })))), canModifyGroup && /*#__PURE__*/_react.default.createElement(_Grid.Grid, null, /*#__PURE__*/_react.default.createElement(PermissionsTitleCell, {
212
- span: 12
213
- }, /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
214
- use: "subtitle1"
215
- }, t(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["Permissions"])))), /*#__PURE__*/_react.default.createElement(_Tooltip.Tooltip, {
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
- placement: "top"
218
- }, /*#__PURE__*/_react.default.createElement(_Button.IconButton, {
219
- icon: /*#__PURE__*/_react.default.createElement(_content_copy.ReactComponent, null),
220
- onClick: function onClick() {
221
- navigator.clipboard.writeText(JSON.stringify(data.permissions, null, 2));
222
- showSnackbar("JSON data copied to clipboard.");
223
- }
224
- }))), /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
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__*/_react.default.createElement(Bind, {
194
+ }, /*#__PURE__*/React.createElement(Bind, {
227
195
  name: "permissions",
228
196
  defaultValue: []
229
- }, function (bind) {
230
- return /*#__PURE__*/_react.default.createElement(_Permissions.Permissions, Object.assign({
231
- id: data.id || "new"
232
- }, bind));
233
- })))), canModifyGroup && /*#__PURE__*/_react.default.createElement(_SimpleForm.SimpleFormFooter, null, /*#__PURE__*/_react.default.createElement(ButtonWrapper, null, /*#__PURE__*/_react.default.createElement(_Button.ButtonDefault, {
234
- onClick: function onClick() {
235
- return history.push("/access-management/roles");
236
- }
237
- }, t(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2.default)(["Cancel"])))), /*#__PURE__*/_react.default.createElement(_Button.ButtonPrimary, {
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: function onClick(ev) {
207
+ onClick: ev => {
240
208
  form.submit(ev);
241
209
  }
242
- }, t(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2.default)(["Save role"])))))));
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&apos;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&apos;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":[]}
@@ -1,4 +1,4 @@
1
- import { Group } from "../../../types";
1
+ import type { Group } from "../../../types";
2
2
  export interface ListGroupsResponse {
3
3
  security: {
4
4
  groups: {