@webiny/app-audit-logs 5.38.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -0
  3. package/components/Text.d.ts +6 -0
  4. package/components/Text.js +16 -0
  5. package/components/Text.js.map +1 -0
  6. package/config/list/AuditLogsListConfig.d.ts +22 -0
  7. package/config/list/AuditLogsListConfig.js +34 -0
  8. package/config/list/AuditLogsListConfig.js.map +1 -0
  9. package/config/list/Browser/Filter.d.ts +17 -0
  10. package/config/list/Browser/Filter.js +54 -0
  11. package/config/list/Browser/Filter.js.map +1 -0
  12. package/config/list/Browser/FiltersToWhere.d.ts +7 -0
  13. package/config/list/Browser/FiltersToWhere.js +23 -0
  14. package/config/list/Browser/FiltersToWhere.js.map +1 -0
  15. package/config/list/Browser/index.d.ts +17 -0
  16. package/config/list/Browser/index.js +15 -0
  17. package/config/list/Browser/index.js.map +1 -0
  18. package/config/list/index.d.ts +1 -0
  19. package/config/list/index.js +18 -0
  20. package/config/list/index.js.map +1 -0
  21. package/constants/index.d.ts +1 -0
  22. package/constants/index.js +10 -0
  23. package/constants/index.js.map +1 -0
  24. package/graphql.d.ts +1 -0
  25. package/graphql.js +15 -0
  26. package/graphql.js.map +1 -0
  27. package/hooks/index.d.ts +1 -0
  28. package/hooks/index.js +18 -0
  29. package/hooks/index.js.map +1 -0
  30. package/hooks/useAuditLogsList.d.ts +21 -0
  31. package/hooks/useAuditLogsList.js +117 -0
  32. package/hooks/useAuditLogsList.js.map +1 -0
  33. package/index.d.ts +2 -0
  34. package/index.js +53 -0
  35. package/index.js.map +1 -0
  36. package/package.json +59 -0
  37. package/plugins/permissionRenderer/AuditLogsPermissions.d.ts +8 -0
  38. package/plugins/permissionRenderer/AuditLogsPermissions.js +118 -0
  39. package/plugins/permissionRenderer/AuditLogsPermissions.js.map +1 -0
  40. package/plugins/permissionRenderer/index.d.ts +2 -0
  41. package/plugins/permissionRenderer/index.js +40 -0
  42. package/plugins/permissionRenderer/index.js.map +1 -0
  43. package/types.d.ts +19 -0
  44. package/types.js +7 -0
  45. package/types.js.map +1 -0
  46. package/utils/transformCmsContentEntriesToRecordEntries.d.ts +25 -0
  47. package/utils/transformCmsContentEntriesToRecordEntries.js +51 -0
  48. package/utils/transformCmsContentEntriesToRecordEntries.js.map +1 -0
  49. package/views/Logs/Filters/FilterByAction.d.ts +2 -0
  50. package/views/Logs/Filters/FilterByAction.js +64 -0
  51. package/views/Logs/Filters/FilterByAction.js.map +1 -0
  52. package/views/Logs/Filters/FilterByApp.d.ts +2 -0
  53. package/views/Logs/Filters/FilterByApp.js +46 -0
  54. package/views/Logs/Filters/FilterByApp.js.map +1 -0
  55. package/views/Logs/Filters/FilterByEntity.d.ts +2 -0
  56. package/views/Logs/Filters/FilterByEntity.js +62 -0
  57. package/views/Logs/Filters/FilterByEntity.js.map +1 -0
  58. package/views/Logs/Filters/FilterByInitiator.d.ts +2 -0
  59. package/views/Logs/Filters/FilterByInitiator.js +51 -0
  60. package/views/Logs/Filters/FilterByInitiator.js.map +1 -0
  61. package/views/Logs/Filters/FilterByTimestamp.d.ts +2 -0
  62. package/views/Logs/Filters/FilterByTimestamp.js +48 -0
  63. package/views/Logs/Filters/FilterByTimestamp.js.map +1 -0
  64. package/views/Logs/Filters/Filters.d.ts +8 -0
  65. package/views/Logs/Filters/Filters.js +43 -0
  66. package/views/Logs/Filters/Filters.js.map +1 -0
  67. package/views/Logs/Filters/index.d.ts +6 -0
  68. package/views/Logs/Filters/index.js +73 -0
  69. package/views/Logs/Filters/index.js.map +1 -0
  70. package/views/Logs/Filters/styled.d.ts +7 -0
  71. package/views/Logs/Filters/styled.js +15 -0
  72. package/views/Logs/Filters/styled.js.map +1 -0
  73. package/views/Logs/Header/ButtonFilters/ButtonFilters.d.ts +8 -0
  74. package/views/Logs/Header/ButtonFilters/ButtonFilters.js +44 -0
  75. package/views/Logs/Header/ButtonFilters/ButtonFilters.js.map +1 -0
  76. package/views/Logs/Header/ButtonFilters/index.d.ts +1 -0
  77. package/views/Logs/Header/ButtonFilters/index.js +18 -0
  78. package/views/Logs/Header/ButtonFilters/index.js.map +1 -0
  79. package/views/Logs/Header/Header.d.ts +11 -0
  80. package/views/Logs/Header/Header.js +55 -0
  81. package/views/Logs/Header/Header.js.map +1 -0
  82. package/views/Logs/Header/index.d.ts +1 -0
  83. package/views/Logs/Header/index.js +18 -0
  84. package/views/Logs/Header/index.js.map +1 -0
  85. package/views/Logs/LoadMoreButton/LoadMoreButton.d.ts +9 -0
  86. package/views/Logs/LoadMoreButton/LoadMoreButton.js +32 -0
  87. package/views/Logs/LoadMoreButton/LoadMoreButton.js.map +1 -0
  88. package/views/Logs/LoadMoreButton/index.d.ts +1 -0
  89. package/views/Logs/LoadMoreButton/index.js +18 -0
  90. package/views/Logs/LoadMoreButton/index.js.map +1 -0
  91. package/views/Logs/LoadMoreButton/styled.d.ts +7 -0
  92. package/views/Logs/LoadMoreButton/styled.js +15 -0
  93. package/views/Logs/LoadMoreButton/styled.js.map +1 -0
  94. package/views/Logs/LoadingMore/index.d.ts +2 -0
  95. package/views/Logs/LoadingMore/index.js +26 -0
  96. package/views/Logs/LoadingMore/index.js.map +1 -0
  97. package/views/Logs/LoadingMore/styled.d.ts +11 -0
  98. package/views/Logs/LoadingMore/styled.js +20 -0
  99. package/views/Logs/LoadingMore/styled.js.map +1 -0
  100. package/views/Logs/Logs.d.ts +3 -0
  101. package/views/Logs/Logs.js +108 -0
  102. package/views/Logs/Logs.js.map +1 -0
  103. package/views/Logs/LogsModule.d.ts +2 -0
  104. package/views/Logs/LogsModule.js +32 -0
  105. package/views/Logs/LogsModule.js.map +1 -0
  106. package/views/Logs/Preview/Preview.d.ts +9 -0
  107. package/views/Logs/Preview/Preview.js +97 -0
  108. package/views/Logs/Preview/Preview.js.map +1 -0
  109. package/views/Logs/Preview/index.d.ts +1 -0
  110. package/views/Logs/Preview/index.js +18 -0
  111. package/views/Logs/Preview/index.js.map +1 -0
  112. package/views/Logs/Preview/styled.d.ts +8 -0
  113. package/views/Logs/Preview/styled.js +18 -0
  114. package/views/Logs/Preview/styled.js.map +1 -0
  115. package/views/Logs/Table/Table.d.ts +19 -0
  116. package/views/Logs/Table/Table.js +145 -0
  117. package/views/Logs/Table/Table.js.map +1 -0
  118. package/views/Logs/Table/index.d.ts +1 -0
  119. package/views/Logs/Table/index.js +18 -0
  120. package/views/Logs/Table/index.js.map +1 -0
  121. package/views/Logs/Table/styled.d.ts +22 -0
  122. package/views/Logs/Table/styled.js +49 -0
  123. package/views/Logs/Table/styled.js.map +1 -0
  124. package/views/Logs/styled.d.ts +11 -0
  125. package/views/Logs/styled.js +20 -0
  126. package/views/Logs/styled.js.map +1 -0
package/package.json ADDED
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "@webiny/app-audit-logs",
3
+ "version": "5.38.0-beta.0",
4
+ "main": "index.js",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/webiny/webiny-js.git"
8
+ },
9
+ "description": "",
10
+ "license": "MIT",
11
+ "dependencies": {
12
+ "@apollo/react-hooks": "3.1.5",
13
+ "@babel/runtime": "7.22.6",
14
+ "@emotion/react": "11.10.8",
15
+ "@emotion/styled": "11.10.6",
16
+ "@webiny/api-audit-logs": "5.38.0-beta.0",
17
+ "@webiny/app": "5.38.0-beta.0",
18
+ "@webiny/app-aco": "5.38.0-beta.0",
19
+ "@webiny/app-admin": "5.38.0-beta.0",
20
+ "@webiny/app-security": "5.38.0-beta.0",
21
+ "@webiny/form": "5.38.0-beta.0",
22
+ "@webiny/plugins": "5.38.0-beta.0",
23
+ "@webiny/react-properties": "5.38.0-beta.0",
24
+ "@webiny/react-router": "5.38.0-beta.0",
25
+ "@webiny/ui": "5.38.0-beta.0",
26
+ "date-fns": "2.29.3",
27
+ "emotion": "10.0.27",
28
+ "graphql-tag": "2.12.6",
29
+ "lodash": "4.17.21"
30
+ },
31
+ "peerDependencies": {
32
+ "react": "^17.0.2"
33
+ },
34
+ "devDependencies": {
35
+ "@babel/cli": "7.22.9",
36
+ "@babel/core": "7.22.9",
37
+ "@babel/preset-env": "7.20.2",
38
+ "@babel/preset-react": "7.18.6",
39
+ "@babel/preset-typescript": "7.18.6",
40
+ "@material-design-icons/svg": "0.14.3",
41
+ "@material-symbols/svg-400": "0.4.3",
42
+ "@types/react": "17.0.39",
43
+ "@webiny/cli": "5.38.0-beta.0",
44
+ "@webiny/project-utils": "5.38.0-beta.0",
45
+ "execa": "5.1.1",
46
+ "rimraf": "3.0.2",
47
+ "ttypescript": "1.5.15",
48
+ "typescript": "4.7.4"
49
+ },
50
+ "publishConfig": {
51
+ "access": "public",
52
+ "directory": "dist"
53
+ },
54
+ "scripts": {
55
+ "build": "yarn webiny run build",
56
+ "watch": "yarn webiny run watch"
57
+ },
58
+ "gitHead": "5746389d4988626b50e2523ccfa0a9a5e398e0ed"
59
+ }
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import { SecurityPermission } from "@webiny/app-security/types";
3
+ interface PageBuilderPermissionsProps {
4
+ value: SecurityPermission;
5
+ onChange: (value: SecurityPermission[]) => void;
6
+ }
7
+ export declare const AuditLogsPermissions: React.FC<PageBuilderPermissionsProps>;
8
+ export {};
@@ -0,0 +1,118 @@
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.AuditLogsPermissions = void 0;
9
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _Grid = require("@webiny/ui/Grid");
12
+ var _Select = require("@webiny/ui/Select");
13
+ var _i18n = require("@webiny/app/i18n");
14
+ var _Permissions = require("@webiny/app-admin/components/Permissions");
15
+ var _form = require("@webiny/form");
16
+ var _appSecurity = require("@webiny/app-security");
17
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
18
+ var t = _i18n.i18n.ns("app-audit-logs/plugins/permissionRenderer");
19
+ var AUDIT_LOGS = "al";
20
+ var AUDIT_LOGS_FULL_ACCESS = "al.*";
21
+ var FULL_ACCESS = "full";
22
+ var NO_ACCESS = "no";
23
+ var CUSTOM_ACCESS = "custom";
24
+ var AuditLogsPermissions = function AuditLogsPermissions(_ref) {
25
+ var value = _ref.value,
26
+ onChange = _ref.onChange;
27
+ var _useSecurity = (0, _appSecurity.useSecurity)(),
28
+ getPermission = _useSecurity.getPermission;
29
+
30
+ // We disable form elements for custom permissions if AACL cannot be used.
31
+ var cannotUseAAcl = (0, _react.useMemo)(function () {
32
+ return !getPermission("aacl", true);
33
+ }, []);
34
+ var onFormChange = (0, _react.useCallback)(function (formData) {
35
+ var newValue = [];
36
+ if (Array.isArray(value)) {
37
+ // Let's just filter out the `al*` permission objects, it's easier to build new ones from scratch.
38
+ newValue = value.filter(function (item) {
39
+ return !item.name.startsWith(AUDIT_LOGS);
40
+ });
41
+ }
42
+ if (formData.accessLevel === NO_ACCESS) {
43
+ onChange(newValue);
44
+ return;
45
+ }
46
+ if (formData.accessLevel === FULL_ACCESS) {
47
+ newValue.push({
48
+ name: AUDIT_LOGS_FULL_ACCESS
49
+ });
50
+ onChange(newValue);
51
+ return;
52
+ }
53
+
54
+ // Handling custom access level.
55
+
56
+ onChange(newValue);
57
+ }, [value]);
58
+ var formData = (0, _react.useMemo)(function () {
59
+ if (!Array.isArray(value)) {
60
+ return {
61
+ accessLevel: NO_ACCESS
62
+ };
63
+ }
64
+ var hasFullAccess = value.find(function (item) {
65
+ return item.name === AUDIT_LOGS_FULL_ACCESS || item.name === "*";
66
+ });
67
+ if (hasFullAccess) {
68
+ return {
69
+ accessLevel: FULL_ACCESS
70
+ };
71
+ }
72
+ var permissions = value.filter(function (item) {
73
+ return item.name.startsWith(AUDIT_LOGS);
74
+ });
75
+ if (!permissions.length) {
76
+ return {
77
+ accessLevel: NO_ACCESS
78
+ };
79
+ }
80
+ var formData = {
81
+ accessLevel: CUSTOM_ACCESS
82
+ };
83
+ return formData;
84
+ }, []);
85
+ return /*#__PURE__*/_react.default.createElement(_form.Form, {
86
+ data: formData,
87
+ onChange: onFormChange
88
+ }, function (_ref2) {
89
+ var data = _ref2.data,
90
+ Bind = _ref2.Bind;
91
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_Grid.Grid, {
92
+ className: _Permissions.gridNoPaddingClass
93
+ }, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
94
+ span: 12
95
+ }, data.accessLevel === "custom" && cannotUseAAcl && /*#__PURE__*/_react.default.createElement(_Permissions.CannotUseAaclAlert, null))), /*#__PURE__*/_react.default.createElement(_Grid.Grid, {
96
+ className: _Permissions.gridNoPaddingClass
97
+ }, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
98
+ span: 6
99
+ }, /*#__PURE__*/_react.default.createElement(_Permissions.PermissionInfo, {
100
+ title: t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["Access Level"])))
101
+ })), /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
102
+ span: 6
103
+ }, /*#__PURE__*/_react.default.createElement(Bind, {
104
+ name: "accessLevel"
105
+ }, /*#__PURE__*/_react.default.createElement(_Select.Select, {
106
+ label: t(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["Access Level"])))
107
+ }, /*#__PURE__*/_react.default.createElement("option", {
108
+ value: NO_ACCESS
109
+ }, t(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["No access"])))), /*#__PURE__*/_react.default.createElement("option", {
110
+ value: FULL_ACCESS
111
+ }, t(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["Full access"])))), /*#__PURE__*/_react.default.createElement("option", {
112
+ value: CUSTOM_ACCESS
113
+ }, t(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["Custom access"])))))))), data.accessLevel === CUSTOM_ACCESS && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null));
114
+ });
115
+ };
116
+ exports.AuditLogsPermissions = AuditLogsPermissions;
117
+
118
+ //# sourceMappingURL=AuditLogsPermissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_Grid","_Select","_i18n","_Permissions","_form","_appSecurity","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","t","i18n","ns","AUDIT_LOGS","AUDIT_LOGS_FULL_ACCESS","FULL_ACCESS","NO_ACCESS","CUSTOM_ACCESS","AuditLogsPermissions","_ref","value","onChange","_useSecurity","useSecurity","getPermission","cannotUseAAcl","useMemo","onFormChange","useCallback","formData","newValue","Array","isArray","filter","item","name","startsWith","accessLevel","push","hasFullAccess","find","permissions","length","default","createElement","Form","data","_ref2","Bind","Fragment","Grid","className","gridNoPaddingClass","Cell","span","CannotUseAaclAlert","PermissionInfo","title","_taggedTemplateLiteral2","Select","label","exports"],"sources":["AuditLogsPermissions.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useMemo } from \"react\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport {\n CannotUseAaclAlert,\n PermissionInfo,\n gridNoPaddingClass\n} from \"@webiny/app-admin/components/Permissions\";\nimport { Form } from \"@webiny/form\";\nimport { useSecurity } from \"@webiny/app-security\";\nimport { SecurityPermission } from \"@webiny/app-security/types\";\nimport { AaclPermission } from \"@webiny/app-admin\";\n\nconst t = i18n.ns(\"app-audit-logs/plugins/permissionRenderer\");\n\nconst AUDIT_LOGS = \"al\";\nconst AUDIT_LOGS_FULL_ACCESS = \"al.*\";\nconst FULL_ACCESS = \"full\";\nconst NO_ACCESS = \"no\";\nconst CUSTOM_ACCESS = \"custom\";\n\ninterface PageBuilderPermissionsProps {\n value: SecurityPermission;\n onChange: (value: SecurityPermission[]) => void;\n}\nexport const AuditLogsPermissions: React.FC<PageBuilderPermissionsProps> = ({\n value,\n onChange\n}) => {\n const { getPermission } = useSecurity();\n\n // We disable form elements for custom permissions if AACL cannot be used.\n const cannotUseAAcl = useMemo(() => {\n return !getPermission<AaclPermission>(\"aacl\", true);\n }, []);\n\n const onFormChange = useCallback(\n formData => {\n let newValue: SecurityPermission[] = [];\n if (Array.isArray(value)) {\n // Let's just filter out the `al*` permission objects, it's easier to build new ones from scratch.\n newValue = value.filter(item => !item.name.startsWith(AUDIT_LOGS));\n }\n\n if (formData.accessLevel === NO_ACCESS) {\n onChange(newValue);\n return;\n }\n\n if (formData.accessLevel === FULL_ACCESS) {\n newValue.push({ name: AUDIT_LOGS_FULL_ACCESS });\n onChange(newValue);\n return;\n }\n\n // Handling custom access level.\n\n onChange(newValue);\n },\n [value]\n );\n\n const formData = useMemo(() => {\n if (!Array.isArray(value)) {\n return { accessLevel: NO_ACCESS };\n }\n\n const hasFullAccess = value.find(\n item => item.name === AUDIT_LOGS_FULL_ACCESS || item.name === \"*\"\n );\n if (hasFullAccess) {\n return { accessLevel: FULL_ACCESS };\n }\n\n const permissions = value.filter(item => item.name.startsWith(AUDIT_LOGS));\n if (!permissions.length) {\n return { accessLevel: NO_ACCESS };\n }\n\n const formData = {\n accessLevel: CUSTOM_ACCESS\n };\n\n return formData;\n }, []);\n\n return (\n <Form data={formData} onChange={onFormChange}>\n {({ data, Bind }) => (\n <Fragment>\n <Grid className={gridNoPaddingClass}>\n <Cell span={12}>\n {data.accessLevel === \"custom\" && cannotUseAAcl && (\n <CannotUseAaclAlert />\n )}\n </Cell>\n </Grid>\n <Grid className={gridNoPaddingClass}>\n <Cell span={6}>\n <PermissionInfo title={t`Access Level`} />\n </Cell>\n <Cell span={6}>\n <Bind name={\"accessLevel\"}>\n <Select label={t`Access Level`}>\n <option value={NO_ACCESS}>{t`No access`}</option>\n <option value={FULL_ACCESS}>{t`Full access`}</option>\n <option value={CUSTOM_ACCESS}>{t`Custom access`}</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n {data.accessLevel === CUSTOM_ACCESS && <></>}\n </Fragment>\n )}\n </Form>\n );\n};\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const AuditLogsPermissions: React.FC;
@@ -0,0 +1,40 @@
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.AuditLogsPermissions = void 0;
9
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _quick_reference_all = require("@material-symbols/svg-400/outlined/quick_reference_all.svg");
12
+ var _i18n = require("@webiny/app/i18n");
13
+ var _plugins = require("@webiny/plugins");
14
+ var _Accordion = require("@webiny/ui/Accordion");
15
+ var _AuditLogsPermissions = require("./AuditLogsPermissions");
16
+ var _templateObject, _templateObject2;
17
+ var t = _i18n.i18n.ns("app-audit-logs/plugins/permissionRenderer");
18
+ var createPermissions = function createPermissions() {
19
+ return {
20
+ type: "admin-app-permissions-renderer",
21
+ name: "admin-app-permissions-renderer-audit-logs",
22
+ render: function render(props) {
23
+ return /*#__PURE__*/_react.default.createElement(_Accordion.AccordionItem, {
24
+ icon: /*#__PURE__*/_react.default.createElement(_quick_reference_all.ReactComponent, null),
25
+ title: t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["Audit Logs"]))),
26
+ description: t(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["Manage Audit Logs app access permissions."]))),
27
+ "data-testid": "permission.al"
28
+ }, /*#__PURE__*/_react.default.createElement(_AuditLogsPermissions.AuditLogsPermissions, props));
29
+ }
30
+ };
31
+ };
32
+ var AuditLogsPermissions = function AuditLogsPermissions() {
33
+ (0, _react.useEffect)(function () {
34
+ _plugins.plugins.register(createPermissions());
35
+ }, []);
36
+ return null;
37
+ };
38
+ exports.AuditLogsPermissions = AuditLogsPermissions;
39
+
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_quick_reference_all","_i18n","_plugins","_Accordion","_AuditLogsPermissions","_templateObject","_templateObject2","t","i18n","ns","createPermissions","type","name","render","props","default","createElement","AccordionItem","icon","ReactComponent","title","_taggedTemplateLiteral2","description","AuditLogsPermissions","useEffect","plugins","register","exports"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect } from \"react\";\nimport { ReactComponent as Icon } from \"@material-symbols/svg-400/outlined/quick_reference_all.svg\";\n\nimport { i18n } from \"@webiny/app/i18n\";\nimport { plugins } from \"@webiny/plugins\";\nimport { AccordionItem } from \"@webiny/ui/Accordion\";\nimport { AdminAppPermissionRendererPlugin } from \"@webiny/app-admin/types\";\n\nimport { AuditLogsPermissions as AuditLogsPermissionsComponent } from \"./AuditLogsPermissions\";\n\nconst t = i18n.ns(\"app-audit-logs/plugins/permissionRenderer\");\n\nconst createPermissions = (): AdminAppPermissionRendererPlugin => {\n return {\n type: \"admin-app-permissions-renderer\",\n name: \"admin-app-permissions-renderer-audit-logs\",\n render(props) {\n return (\n <AccordionItem\n icon={<Icon />}\n title={t`Audit Logs`}\n description={t`Manage Audit Logs app access permissions.`}\n data-testid={\"permission.al\"}\n >\n <AuditLogsPermissionsComponent {...props} />\n </AccordionItem>\n );\n }\n };\n};\n\nexport const AuditLogsPermissions: React.FC = () => {\n useEffect(() => {\n plugins.register(createPermissions());\n }, []);\n return null;\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AAEA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AAGA,IAAAK,qBAAA,GAAAL,OAAA;AAA+F,IAAAM,eAAA,EAAAC,gBAAA;AAE/F,IAAMC,CAAC,GAAGC,UAAI,CAACC,EAAE,CAAC,2CAA2C,CAAC;AAE9D,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAA,EAA2C;EAC9D,OAAO;IACHC,IAAI,EAAE,gCAAgC;IACtCC,IAAI,EAAE,2CAA2C;IACjDC,MAAM,WAAAA,OAACC,KAAK,EAAE;MACV,oBACIjB,MAAA,CAAAkB,OAAA,CAAAC,aAAA,CAACb,UAAA,CAAAc,aAAa;QACVC,IAAI,eAAErB,MAAA,CAAAkB,OAAA,CAAAC,aAAA,CAAChB,oBAAA,CAAAmB,cAAI,MAAE,CAAE;QACfC,KAAK,EAAEb,CAAC,CAAAF,eAAA,KAAAA,eAAA,OAAAgB,uBAAA,CAAAN,OAAA,mBAAa;QACrBO,WAAW,EAAEf,CAAC,CAAAD,gBAAA,KAAAA,gBAAA,OAAAe,uBAAA,CAAAN,OAAA,kDAA4C;QAC1D,eAAa;MAAgB,gBAE7BlB,MAAA,CAAAkB,OAAA,CAAAC,aAAA,CAACZ,qBAAA,CAAAmB,oBAA6B,EAAKT,KAAQ,CAChC,CAAC;IAExB;EACJ,CAAC;AACL,CAAC;AAEM,IAAMS,oBAA8B,GAAG,SAAjCA,oBAA8BA,CAAA,EAAS;EAChD,IAAAC,gBAAS,EAAC,YAAM;IACZC,gBAAO,CAACC,QAAQ,CAAChB,iBAAiB,CAAC,CAAC,CAAC;EACzC,CAAC,EAAE,EAAE,CAAC;EACN,OAAO,IAAI;AACf,CAAC;AAACiB,OAAA,CAAAJ,oBAAA,GAAAA,oBAAA"}
package/types.d.ts ADDED
@@ -0,0 +1,19 @@
1
+ export declare type AuditLog = {
2
+ id: string;
3
+ message: string;
4
+ app: string;
5
+ entity: string;
6
+ entityId: string;
7
+ action: string;
8
+ data: string;
9
+ timestamp: Date;
10
+ initiator: string;
11
+ };
12
+ export declare type User = {
13
+ id: string;
14
+ firstName: string;
15
+ lastName: string;
16
+ group: {
17
+ name: string;
18
+ };
19
+ };
package/types.js ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ //# sourceMappingURL=types.js.map
package/types.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["export type AuditLog = {\n id: string;\n message: string;\n app: string;\n entity: string;\n entityId: string;\n action: string;\n data: string;\n timestamp: Date;\n initiator: string;\n};\n\nexport type User = {\n id: string;\n firstName: string;\n lastName: string;\n group: {\n name: string;\n };\n};\n"],"mappings":""}
@@ -0,0 +1,25 @@
1
+ import { SearchRecordItem } from "@webiny/app-aco/types";
2
+ import { AuditLog, User } from "../types";
3
+ export declare type Entry = {
4
+ id: string;
5
+ message: string;
6
+ app: string;
7
+ entity: {
8
+ value: string;
9
+ label: string;
10
+ link?: string;
11
+ };
12
+ entityId: string;
13
+ action: {
14
+ label: string;
15
+ value: string;
16
+ };
17
+ data: string;
18
+ savedOn: Date;
19
+ initiator: {
20
+ id: string;
21
+ name: string;
22
+ role: string;
23
+ };
24
+ };
25
+ export declare const transformCmsContentEntriesToRecordEntries: (items: SearchRecordItem<AuditLog>[], users: User[]) => Entry[];
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.transformCmsContentEntriesToRecordEntries = void 0;
7
+ var _config = require("@webiny/api-audit-logs/config");
8
+ var transformCmsContentEntriesToRecordEntries = function transformCmsContentEntriesToRecordEntries(items, users) {
9
+ return items.map(function (_ref) {
10
+ var _app$entities, _entity$actions;
11
+ var id = _ref.id,
12
+ data = _ref.data;
13
+ var app = _config.auditLogsApps.find(function (app) {
14
+ return app.app === data.app;
15
+ });
16
+ var entity = app === null || app === void 0 ? void 0 : (_app$entities = app.entities) === null || _app$entities === void 0 ? void 0 : _app$entities.find(function (entity) {
17
+ return entity.type === data.entity;
18
+ });
19
+ var action = entity === null || entity === void 0 ? void 0 : (_entity$actions = entity.actions) === null || _entity$actions === void 0 ? void 0 : _entity$actions.find(function (action) {
20
+ return action.type === data.action;
21
+ });
22
+ var user = users.find(function (user) {
23
+ return user.id === data.initiator;
24
+ });
25
+ return {
26
+ id: id,
27
+ message: data.message,
28
+ app: (app === null || app === void 0 ? void 0 : app.displayName) || "-",
29
+ entity: {
30
+ label: (entity === null || entity === void 0 ? void 0 : entity.displayName) || "-",
31
+ value: data.entity,
32
+ link: (entity === null || entity === void 0 ? void 0 : entity.linkToEntity) && entity.linkToEntity(encodeURIComponent(data.entityId))
33
+ },
34
+ entityId: data.entityId,
35
+ action: {
36
+ label: (action === null || action === void 0 ? void 0 : action.displayName) || "-",
37
+ value: data.action
38
+ },
39
+ data: data.data,
40
+ savedOn: data.timestamp,
41
+ initiator: {
42
+ id: data.initiator,
43
+ name: "".concat(user === null || user === void 0 ? void 0 : user.firstName, " ").concat(user === null || user === void 0 ? void 0 : user.lastName),
44
+ role: (user === null || user === void 0 ? void 0 : user.group.name) || ""
45
+ }
46
+ };
47
+ });
48
+ };
49
+ exports.transformCmsContentEntriesToRecordEntries = transformCmsContentEntriesToRecordEntries;
50
+
51
+ //# sourceMappingURL=transformCmsContentEntriesToRecordEntries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_config","require","transformCmsContentEntriesToRecordEntries","items","users","map","_ref","_app$entities","_entity$actions","id","data","app","auditLogsApps","find","entity","entities","type","action","actions","user","initiator","message","displayName","label","value","link","linkToEntity","encodeURIComponent","entityId","savedOn","timestamp","name","concat","firstName","lastName","role","group","exports"],"sources":["transformCmsContentEntriesToRecordEntries.ts"],"sourcesContent":["import { SearchRecordItem } from \"@webiny/app-aco/types\";\nimport { auditLogsApps } from \"@webiny/api-audit-logs/config\";\n\nimport { AuditLog, User } from \"~/types\";\n\nexport type Entry = {\n id: string;\n message: string;\n app: string;\n entity: {\n value: string;\n label: string;\n link?: string;\n };\n entityId: string;\n action: {\n label: string;\n value: string;\n };\n data: string;\n savedOn: Date;\n initiator: {\n id: string;\n name: string;\n role: string;\n };\n};\n\nexport const transformCmsContentEntriesToRecordEntries = (\n items: SearchRecordItem<AuditLog>[],\n users: User[]\n): Entry[] => {\n return items.map(({ id, data }) => {\n const app = auditLogsApps.find(app => app.app === data.app);\n const entity = app?.entities?.find(entity => entity.type === data.entity);\n const action = entity?.actions?.find(action => action.type === data.action);\n const user = users.find(user => user.id === data.initiator);\n\n return {\n id,\n message: data.message,\n app: app?.displayName || \"-\",\n entity: {\n label: entity?.displayName || \"-\",\n value: data.entity,\n link: entity?.linkToEntity && entity.linkToEntity(encodeURIComponent(data.entityId))\n },\n entityId: data.entityId,\n action: {\n label: action?.displayName || \"-\",\n value: data.action\n },\n data: data.data,\n savedOn: data.timestamp,\n initiator: {\n id: data.initiator,\n name: `${user?.firstName} ${user?.lastName}`,\n role: user?.group.name || \"\"\n }\n };\n });\n};\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AA2BO,IAAMC,yCAAyC,GAAG,SAA5CA,yCAAyCA,CAClDC,KAAmC,EACnCC,KAAa,EACH;EACV,OAAOD,KAAK,CAACE,GAAG,CAAC,UAAAC,IAAA,EAAkB;IAAA,IAAAC,aAAA,EAAAC,eAAA;IAAA,IAAfC,EAAE,GAAAH,IAAA,CAAFG,EAAE;MAAEC,IAAI,GAAAJ,IAAA,CAAJI,IAAI;IACxB,IAAMC,GAAG,GAAGC,qBAAa,CAACC,IAAI,CAAC,UAAAF,GAAG;MAAA,OAAIA,GAAG,CAACA,GAAG,KAAKD,IAAI,CAACC,GAAG;IAAA,EAAC;IAC3D,IAAMG,MAAM,GAAGH,GAAG,aAAHA,GAAG,wBAAAJ,aAAA,GAAHI,GAAG,CAAEI,QAAQ,cAAAR,aAAA,uBAAbA,aAAA,CAAeM,IAAI,CAAC,UAAAC,MAAM;MAAA,OAAIA,MAAM,CAACE,IAAI,KAAKN,IAAI,CAACI,MAAM;IAAA,EAAC;IACzE,IAAMG,MAAM,GAAGH,MAAM,aAANA,MAAM,wBAAAN,eAAA,GAANM,MAAM,CAAEI,OAAO,cAAAV,eAAA,uBAAfA,eAAA,CAAiBK,IAAI,CAAC,UAAAI,MAAM;MAAA,OAAIA,MAAM,CAACD,IAAI,KAAKN,IAAI,CAACO,MAAM;IAAA,EAAC;IAC3E,IAAME,IAAI,GAAGf,KAAK,CAACS,IAAI,CAAC,UAAAM,IAAI;MAAA,OAAIA,IAAI,CAACV,EAAE,KAAKC,IAAI,CAACU,SAAS;IAAA,EAAC;IAE3D,OAAO;MACHX,EAAE,EAAFA,EAAE;MACFY,OAAO,EAAEX,IAAI,CAACW,OAAO;MACrBV,GAAG,EAAE,CAAAA,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEW,WAAW,KAAI,GAAG;MAC5BR,MAAM,EAAE;QACJS,KAAK,EAAE,CAAAT,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEQ,WAAW,KAAI,GAAG;QACjCE,KAAK,EAAEd,IAAI,CAACI,MAAM;QAClBW,IAAI,EAAE,CAAAX,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEY,YAAY,KAAIZ,MAAM,CAACY,YAAY,CAACC,kBAAkB,CAACjB,IAAI,CAACkB,QAAQ,CAAC;MACvF,CAAC;MACDA,QAAQ,EAAElB,IAAI,CAACkB,QAAQ;MACvBX,MAAM,EAAE;QACJM,KAAK,EAAE,CAAAN,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEK,WAAW,KAAI,GAAG;QACjCE,KAAK,EAAEd,IAAI,CAACO;MAChB,CAAC;MACDP,IAAI,EAAEA,IAAI,CAACA,IAAI;MACfmB,OAAO,EAAEnB,IAAI,CAACoB,SAAS;MACvBV,SAAS,EAAE;QACPX,EAAE,EAAEC,IAAI,CAACU,SAAS;QAClBW,IAAI,KAAAC,MAAA,CAAKb,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEc,SAAS,OAAAD,MAAA,CAAIb,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEe,QAAQ,CAAE;QAC5CC,IAAI,EAAE,CAAAhB,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEiB,KAAK,CAACL,IAAI,KAAI;MAC9B;IACJ,CAAC;EACL,CAAC,CAAC;AACN,CAAC;AAACM,OAAA,CAAAnC,yCAAA,GAAAA,yCAAA"}
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const FilterByAction: React.FC;
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.FilterByAction = void 0;
9
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _form = require("@webiny/form");
12
+ var _Select = require("@webiny/ui/Select");
13
+ var _config = require("@webiny/api-audit-logs/config");
14
+ var getValidFilterValue = function getValidFilterValue(value) {
15
+ if (value === "all" || value === "") {
16
+ return undefined;
17
+ }
18
+ return value;
19
+ };
20
+ var FilterByAction = function FilterByAction() {
21
+ var _data$data, _data$data2;
22
+ var _useForm = (0, _form.useForm)(),
23
+ data = _useForm.data;
24
+ var bind = (0, _form.useBind)({
25
+ name: "data.action",
26
+ beforeChange: function beforeChange(value, cb) {
27
+ cb(getValidFilterValue(value));
28
+ }
29
+ });
30
+ var appValue = data === null || data === void 0 ? void 0 : (_data$data = data.data) === null || _data$data === void 0 ? void 0 : _data$data.app;
31
+ var entityValue = data === null || data === void 0 ? void 0 : (_data$data2 = data.data) === null || _data$data2 === void 0 ? void 0 : _data$data2.entity;
32
+ var options = (0, _react.useMemo)(function () {
33
+ var _auditLogsApps$find, _entities$find;
34
+ if (!appValue || !entityValue) {
35
+ return [];
36
+ }
37
+ var entities = ((_auditLogsApps$find = _config.auditLogsApps.find(function (app) {
38
+ return app.app === appValue;
39
+ })) === null || _auditLogsApps$find === void 0 ? void 0 : _auditLogsApps$find.entities) || [];
40
+ var actions = ((_entities$find = entities.find(function (entity) {
41
+ return entity.type === entityValue;
42
+ })) === null || _entities$find === void 0 ? void 0 : _entities$find.actions) || [];
43
+ return [{
44
+ label: "All",
45
+ value: "all"
46
+ }].concat((0, _toConsumableArray2.default)(actions.map(function (entity) {
47
+ return {
48
+ label: entity.displayName,
49
+ value: entity.type
50
+ };
51
+ })));
52
+ }, [appValue, entityValue]);
53
+ if (!appValue || !entityValue) {
54
+ return null;
55
+ }
56
+ return /*#__PURE__*/_react.default.createElement(_Select.Select, Object.assign({}, bind, {
57
+ size: "medium",
58
+ placeholder: "Filter by Action",
59
+ options: options
60
+ }));
61
+ };
62
+ exports.FilterByAction = FilterByAction;
63
+
64
+ //# sourceMappingURL=FilterByAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_form","_Select","_config","getValidFilterValue","value","undefined","FilterByAction","_data$data","_data$data2","_useForm","useForm","data","bind","useBind","name","beforeChange","cb","appValue","app","entityValue","entity","options","useMemo","_auditLogsApps$find","_entities$find","entities","auditLogsApps","find","actions","type","label","concat","_toConsumableArray2","default","map","displayName","createElement","Select","Object","assign","size","placeholder","exports"],"sources":["FilterByAction.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\n\nimport { useBind, useForm } from \"@webiny/form\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { auditLogsApps } from \"@webiny/api-audit-logs/config\";\n\nconst getValidFilterValue = (value: string): string | undefined => {\n if (value === \"all\" || value === \"\") {\n return undefined;\n }\n return value;\n};\n\nexport const FilterByAction: React.FC = () => {\n const { data } = useForm();\n const bind = useBind({\n name: \"data.action\",\n beforeChange(value, cb) {\n cb(getValidFilterValue(value));\n }\n });\n\n const appValue = data?.data?.app;\n const entityValue = data?.data?.entity;\n\n const options = useMemo(() => {\n if (!appValue || !entityValue) {\n return [];\n }\n\n const entities = auditLogsApps.find(app => app.app === appValue)?.entities || [];\n const actions = entities.find(entity => entity.type === entityValue)?.actions || [];\n\n return [\n { label: \"All\", value: \"all\" },\n ...actions.map(entity => ({ label: entity.displayName, value: entity.type }))\n ];\n }, [appValue, entityValue]);\n\n if (!appValue || !entityValue) {\n return null;\n }\n\n return <Select {...bind} size={\"medium\"} placeholder={\"Filter by Action\"} options={options} />;\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAEA,IAAMI,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,KAAa,EAAyB;EAC/D,IAAIA,KAAK,KAAK,KAAK,IAAIA,KAAK,KAAK,EAAE,EAAE;IACjC,OAAOC,SAAS;EACpB;EACA,OAAOD,KAAK;AAChB,CAAC;AAEM,IAAME,cAAwB,GAAG,SAA3BA,cAAwBA,CAAA,EAAS;EAAA,IAAAC,UAAA,EAAAC,WAAA;EAC1C,IAAAC,QAAA,GAAiB,IAAAC,aAAO,EAAC,CAAC;IAAlBC,IAAI,GAAAF,QAAA,CAAJE,IAAI;EACZ,IAAMC,IAAI,GAAG,IAAAC,aAAO,EAAC;IACjBC,IAAI,EAAE,aAAa;IACnBC,YAAY,WAAAA,aAACX,KAAK,EAAEY,EAAE,EAAE;MACpBA,EAAE,CAACb,mBAAmB,CAACC,KAAK,CAAC,CAAC;IAClC;EACJ,CAAC,CAAC;EAEF,IAAMa,QAAQ,GAAGN,IAAI,aAAJA,IAAI,wBAAAJ,UAAA,GAAJI,IAAI,CAAEA,IAAI,cAAAJ,UAAA,uBAAVA,UAAA,CAAYW,GAAG;EAChC,IAAMC,WAAW,GAAGR,IAAI,aAAJA,IAAI,wBAAAH,WAAA,GAAJG,IAAI,CAAEA,IAAI,cAAAH,WAAA,uBAAVA,WAAA,CAAYY,MAAM;EAEtC,IAAMC,OAAO,GAAG,IAAAC,cAAO,EAAC,YAAM;IAAA,IAAAC,mBAAA,EAAAC,cAAA;IAC1B,IAAI,CAACP,QAAQ,IAAI,CAACE,WAAW,EAAE;MAC3B,OAAO,EAAE;IACb;IAEA,IAAMM,QAAQ,GAAG,EAAAF,mBAAA,GAAAG,qBAAa,CAACC,IAAI,CAAC,UAAAT,GAAG;MAAA,OAAIA,GAAG,CAACA,GAAG,KAAKD,QAAQ;IAAA,EAAC,cAAAM,mBAAA,uBAA/CA,mBAAA,CAAiDE,QAAQ,KAAI,EAAE;IAChF,IAAMG,OAAO,GAAG,EAAAJ,cAAA,GAAAC,QAAQ,CAACE,IAAI,CAAC,UAAAP,MAAM;MAAA,OAAIA,MAAM,CAACS,IAAI,KAAKV,WAAW;IAAA,EAAC,cAAAK,cAAA,uBAApDA,cAAA,CAAsDI,OAAO,KAAI,EAAE;IAEnF,QACI;MAAEE,KAAK,EAAE,KAAK;MAAE1B,KAAK,EAAE;IAAM,CAAC,EAAA2B,MAAA,KAAAC,mBAAA,CAAAC,OAAA,EAC3BL,OAAO,CAACM,GAAG,CAAC,UAAAd,MAAM;MAAA,OAAK;QAAEU,KAAK,EAAEV,MAAM,CAACe,WAAW;QAAE/B,KAAK,EAAEgB,MAAM,CAACS;MAAK,CAAC;IAAA,CAAC,CAAC;EAErF,CAAC,EAAE,CAACZ,QAAQ,EAAEE,WAAW,CAAC,CAAC;EAE3B,IAAI,CAACF,QAAQ,IAAI,CAACE,WAAW,EAAE;IAC3B,OAAO,IAAI;EACf;EAEA,oBAAOtB,MAAA,CAAAoC,OAAA,CAAAG,aAAA,CAACnC,OAAA,CAAAoC,MAAM,EAAAC,MAAA,CAAAC,MAAA,KAAK3B,IAAI;IAAE4B,IAAI,EAAE,QAAS;IAACC,WAAW,EAAE,kBAAmB;IAACpB,OAAO,EAAEA;EAAQ,EAAE,CAAC;AAClG,CAAC;AAACqB,OAAA,CAAApC,cAAA,GAAAA,cAAA"}
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const FilterByApp: React.FC;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.FilterByApp = void 0;
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _form = require("@webiny/form");
11
+ var _Select = require("@webiny/ui/Select");
12
+ var _config = require("@webiny/api-audit-logs/config");
13
+ var getValidFilterValue = function getValidFilterValue(value) {
14
+ if (value === "all" || value === "") {
15
+ return undefined;
16
+ }
17
+ return value;
18
+ };
19
+ var FilterByApp = function FilterByApp() {
20
+ var _useForm = (0, _form.useForm)(),
21
+ setValue = _useForm.setValue;
22
+ var bind = (0, _form.useBind)({
23
+ name: "data.app",
24
+ beforeChange: function beforeChange(value, cb) {
25
+ setValue("data.entity", undefined);
26
+ setValue("data.action", undefined);
27
+ cb(getValidFilterValue(value));
28
+ }
29
+ });
30
+ return /*#__PURE__*/_react.default.createElement(_Select.Select, Object.assign({}, bind, {
31
+ size: "medium",
32
+ placeholder: "Filter by App",
33
+ options: [{
34
+ label: "All",
35
+ value: "all"
36
+ }].concat((0, _toConsumableArray2.default)(_config.auditLogsApps.map(function (app) {
37
+ return {
38
+ label: app.displayName,
39
+ value: app.app
40
+ };
41
+ })))
42
+ }));
43
+ };
44
+ exports.FilterByApp = FilterByApp;
45
+
46
+ //# sourceMappingURL=FilterByApp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_form","_Select","_config","getValidFilterValue","value","undefined","FilterByApp","_useForm","useForm","setValue","bind","useBind","name","beforeChange","cb","default","createElement","Select","Object","assign","size","placeholder","options","label","concat","_toConsumableArray2","auditLogsApps","map","app","displayName","exports"],"sources":["FilterByApp.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { useBind, useForm } from \"@webiny/form\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { auditLogsApps } from \"@webiny/api-audit-logs/config\";\n\nconst getValidFilterValue = (value: string): string | undefined => {\n if (value === \"all\" || value === \"\") {\n return undefined;\n }\n return value;\n};\n\nexport const FilterByApp: React.FC = () => {\n const { setValue } = useForm();\n const bind = useBind({\n name: \"data.app\",\n beforeChange(value, cb) {\n setValue(\"data.entity\", undefined);\n setValue(\"data.action\", undefined);\n cb(getValidFilterValue(value));\n }\n });\n\n return (\n <Select\n {...bind}\n size={\"medium\"}\n placeholder={\"Filter by App\"}\n options={[\n { label: \"All\", value: \"all\" },\n ...auditLogsApps.map(app => ({ label: app.displayName, value: app.app }))\n ]}\n />\n );\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAEA,IAAMI,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,KAAa,EAAyB;EAC/D,IAAIA,KAAK,KAAK,KAAK,IAAIA,KAAK,KAAK,EAAE,EAAE;IACjC,OAAOC,SAAS;EACpB;EACA,OAAOD,KAAK;AAChB,CAAC;AAEM,IAAME,WAAqB,GAAG,SAAxBA,WAAqBA,CAAA,EAAS;EACvC,IAAAC,QAAA,GAAqB,IAAAC,aAAO,EAAC,CAAC;IAAtBC,QAAQ,GAAAF,QAAA,CAARE,QAAQ;EAChB,IAAMC,IAAI,GAAG,IAAAC,aAAO,EAAC;IACjBC,IAAI,EAAE,UAAU;IAChBC,YAAY,WAAAA,aAACT,KAAK,EAAEU,EAAE,EAAE;MACpBL,QAAQ,CAAC,aAAa,EAAEJ,SAAS,CAAC;MAClCI,QAAQ,CAAC,aAAa,EAAEJ,SAAS,CAAC;MAClCS,EAAE,CAACX,mBAAmB,CAACC,KAAK,CAAC,CAAC;IAClC;EACJ,CAAC,CAAC;EAEF,oBACIP,MAAA,CAAAkB,OAAA,CAAAC,aAAA,CAACf,OAAA,CAAAgB,MAAM,EAAAC,MAAA,CAAAC,MAAA,KACCT,IAAI;IACRU,IAAI,EAAE,QAAS;IACfC,WAAW,EAAE,eAAgB;IAC7BC,OAAO,GACH;MAAEC,KAAK,EAAE,KAAK;MAAEnB,KAAK,EAAE;IAAM,CAAC,EAAAoB,MAAA,KAAAC,mBAAA,CAAAV,OAAA,EAC3BW,qBAAa,CAACC,GAAG,CAAC,UAAAC,GAAG;MAAA,OAAK;QAAEL,KAAK,EAAEK,GAAG,CAACC,WAAW;QAAEzB,KAAK,EAAEwB,GAAG,CAACA;MAAI,CAAC;IAAA,CAAC,CAAC;EAC3E,EACL,CAAC;AAEV,CAAC;AAACE,OAAA,CAAAxB,WAAA,GAAAA,WAAA"}
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const FilterByEntity: React.FC;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.FilterByEntity = void 0;
9
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _form = require("@webiny/form");
12
+ var _Select = require("@webiny/ui/Select");
13
+ var _config = require("@webiny/api-audit-logs/config");
14
+ var getValidFilterValue = function getValidFilterValue(value) {
15
+ if (value === "all" || value === "") {
16
+ return undefined;
17
+ }
18
+ return value;
19
+ };
20
+ var FilterByEntity = function FilterByEntity() {
21
+ var _data$data;
22
+ var _useForm = (0, _form.useForm)(),
23
+ data = _useForm.data,
24
+ setValue = _useForm.setValue;
25
+ var bind = (0, _form.useBind)({
26
+ name: "data.entity",
27
+ beforeChange: function beforeChange(value, cb) {
28
+ setValue("data.action", undefined);
29
+ cb(getValidFilterValue(value));
30
+ }
31
+ });
32
+ var appValue = data === null || data === void 0 ? void 0 : (_data$data = data.data) === null || _data$data === void 0 ? void 0 : _data$data.app;
33
+ var options = (0, _react.useMemo)(function () {
34
+ var _auditLogsApps$find;
35
+ if (!appValue) {
36
+ return [];
37
+ }
38
+ var entities = ((_auditLogsApps$find = _config.auditLogsApps.find(function (app) {
39
+ return app.app === appValue;
40
+ })) === null || _auditLogsApps$find === void 0 ? void 0 : _auditLogsApps$find.entities) || [];
41
+ return [{
42
+ label: "All",
43
+ value: "all"
44
+ }].concat((0, _toConsumableArray2.default)(entities.map(function (entity) {
45
+ return {
46
+ label: entity.displayName,
47
+ value: entity.type
48
+ };
49
+ })));
50
+ }, [appValue]);
51
+ if (!appValue) {
52
+ return null;
53
+ }
54
+ return /*#__PURE__*/_react.default.createElement(_Select.Select, Object.assign({}, bind, {
55
+ size: "medium",
56
+ placeholder: "Filter by Entity",
57
+ options: options
58
+ }));
59
+ };
60
+ exports.FilterByEntity = FilterByEntity;
61
+
62
+ //# sourceMappingURL=FilterByEntity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_form","_Select","_config","getValidFilterValue","value","undefined","FilterByEntity","_data$data","_useForm","useForm","data","setValue","bind","useBind","name","beforeChange","cb","appValue","app","options","useMemo","_auditLogsApps$find","entities","auditLogsApps","find","label","concat","_toConsumableArray2","default","map","entity","displayName","type","createElement","Select","Object","assign","size","placeholder","exports"],"sources":["FilterByEntity.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\n\nimport { useBind, useForm } from \"@webiny/form\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { auditLogsApps } from \"@webiny/api-audit-logs/config\";\n\nconst getValidFilterValue = (value: string): string | undefined => {\n if (value === \"all\" || value === \"\") {\n return undefined;\n }\n return value;\n};\n\nexport const FilterByEntity: React.FC = () => {\n const { data, setValue } = useForm();\n const bind = useBind({\n name: \"data.entity\",\n beforeChange(value, cb) {\n setValue(\"data.action\", undefined);\n cb(getValidFilterValue(value));\n }\n });\n\n const appValue = data?.data?.app;\n\n const options = useMemo(() => {\n if (!appValue) {\n return [];\n }\n\n const entities = auditLogsApps.find(app => app.app === appValue)?.entities || [];\n\n return [\n { label: \"All\", value: \"all\" },\n ...entities.map(entity => ({ label: entity.displayName, value: entity.type }))\n ];\n }, [appValue]);\n\n if (!appValue) {\n return null;\n }\n\n return <Select {...bind} size={\"medium\"} placeholder={\"Filter by Entity\"} options={options} />;\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAEA,IAAMI,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,KAAa,EAAyB;EAC/D,IAAIA,KAAK,KAAK,KAAK,IAAIA,KAAK,KAAK,EAAE,EAAE;IACjC,OAAOC,SAAS;EACpB;EACA,OAAOD,KAAK;AAChB,CAAC;AAEM,IAAME,cAAwB,GAAG,SAA3BA,cAAwBA,CAAA,EAAS;EAAA,IAAAC,UAAA;EAC1C,IAAAC,QAAA,GAA2B,IAAAC,aAAO,EAAC,CAAC;IAA5BC,IAAI,GAAAF,QAAA,CAAJE,IAAI;IAAEC,QAAQ,GAAAH,QAAA,CAARG,QAAQ;EACtB,IAAMC,IAAI,GAAG,IAAAC,aAAO,EAAC;IACjBC,IAAI,EAAE,aAAa;IACnBC,YAAY,WAAAA,aAACX,KAAK,EAAEY,EAAE,EAAE;MACpBL,QAAQ,CAAC,aAAa,EAAEN,SAAS,CAAC;MAClCW,EAAE,CAACb,mBAAmB,CAACC,KAAK,CAAC,CAAC;IAClC;EACJ,CAAC,CAAC;EAEF,IAAMa,QAAQ,GAAGP,IAAI,aAAJA,IAAI,wBAAAH,UAAA,GAAJG,IAAI,CAAEA,IAAI,cAAAH,UAAA,uBAAVA,UAAA,CAAYW,GAAG;EAEhC,IAAMC,OAAO,GAAG,IAAAC,cAAO,EAAC,YAAM;IAAA,IAAAC,mBAAA;IAC1B,IAAI,CAACJ,QAAQ,EAAE;MACX,OAAO,EAAE;IACb;IAEA,IAAMK,QAAQ,GAAG,EAAAD,mBAAA,GAAAE,qBAAa,CAACC,IAAI,CAAC,UAAAN,GAAG;MAAA,OAAIA,GAAG,CAACA,GAAG,KAAKD,QAAQ;IAAA,EAAC,cAAAI,mBAAA,uBAA/CA,mBAAA,CAAiDC,QAAQ,KAAI,EAAE;IAEhF,QACI;MAAEG,KAAK,EAAE,KAAK;MAAErB,KAAK,EAAE;IAAM,CAAC,EAAAsB,MAAA,KAAAC,mBAAA,CAAAC,OAAA,EAC3BN,QAAQ,CAACO,GAAG,CAAC,UAAAC,MAAM;MAAA,OAAK;QAAEL,KAAK,EAAEK,MAAM,CAACC,WAAW;QAAE3B,KAAK,EAAE0B,MAAM,CAACE;MAAK,CAAC;IAAA,CAAC,CAAC;EAEtF,CAAC,EAAE,CAACf,QAAQ,CAAC,CAAC;EAEd,IAAI,CAACA,QAAQ,EAAE;IACX,OAAO,IAAI;EACf;EAEA,oBAAOpB,MAAA,CAAA+B,OAAA,CAAAK,aAAA,CAAChC,OAAA,CAAAiC,MAAM,EAAAC,MAAA,CAAAC,MAAA,KAAKxB,IAAI;IAAEyB,IAAI,EAAE,QAAS;IAACC,WAAW,EAAE,kBAAmB;IAACnB,OAAO,EAAEA;EAAQ,EAAE,CAAC;AAClG,CAAC;AAACoB,OAAA,CAAAjC,cAAA,GAAAA,cAAA"}
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const FilterByInitiator: React.FC;