@bigbinary/neeto-molecules 3.8.3 → 3.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -11,6 +11,7 @@ https://neeto-molecules.neeto.com/
11
11
 
12
12
  ## Exported Components
13
13
 
14
+ - [AuditLogs](./docs/components/AuditLogs.md)
14
15
  - [Breadcrumbs](./docs/components/Breadcrumbs.md)
15
16
  - [BrowserSupport](./docs/components/BrowserSupport.md)
16
17
  - [Builder](./docs/components/Builder.md)
@@ -0,0 +1,490 @@
1
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
+ import { useState } from 'react';
3
+ import { _humanize, isNotEmpty, capitalize, snakeToCamelCase, _capitalize, isPresent } from '@bigbinary/neeto-cist';
4
+ import { SINGULAR, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_INDEX } from '@bigbinary/neeto-commons-frontend/constants';
5
+ import { useQueryParams } from '@bigbinary/neeto-commons-frontend/react-utils';
6
+ import NoData from '@bigbinary/neetoui/NoData';
7
+ import Table from '@bigbinary/neetoui/Table';
8
+ import { Trans, useTranslation } from 'react-i18next';
9
+ import Container from './Container.js';
10
+ import Header from './Header.js';
11
+ import PageLoader from './PageLoader.js';
12
+ import TableWrapper from './TableWrapper.js';
13
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
14
+ import Typography from '@bigbinary/neetoui/Typography';
15
+ import Modal from '@bigbinary/neetoui/Modal';
16
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
17
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
18
+ import { t } from 'i18next';
19
+ import { dateFormat } from '@bigbinary/neeto-commons-frontend/utils';
20
+ import Button from '@bigbinary/neetoui/Button';
21
+ import { useQuery } from '@tanstack/react-query';
22
+ import axios from 'axios';
23
+ import 'classnames';
24
+ import './index-DAYCJu79.js';
25
+ import './_commonjsHelpers-BFTU3MAI.js';
26
+ import './inject-css-DmrvuTKK.js';
27
+ import './Breadcrumbs.js';
28
+ import '@bigbinary/neeto-commons-frontend/utils/general';
29
+ import 'react-router-dom';
30
+ import './HelpPopover.js';
31
+ import '@bigbinary/neeto-icons/Help';
32
+ import '@bigbinary/neetoui/Popover';
33
+ import './MoreDropdown.js';
34
+ import '@bigbinary/neeto-icons/MenuHorizontal';
35
+ import '@bigbinary/neeto-icons/MenuVertical';
36
+ import '@bigbinary/neetoui/Dropdown';
37
+ import '@bigbinary/neetoui/Tooltip';
38
+ import 'ramda';
39
+ import './Search.js';
40
+ import '@bigbinary/neeto-commons-frontend/react-utils/useFuncDebounce';
41
+ import '@bigbinary/neeto-commons-frontend/react-utils/useQueryParams';
42
+ import '@bigbinary/neeto-commons-frontend/react-utils/useUpdateEffect';
43
+ import '@bigbinary/neeto-icons/Search';
44
+ import '@bigbinary/neetoui/Input';
45
+
46
+ var LabelledDetail = function LabelledDetail(_ref) {
47
+ var label = _ref.label,
48
+ value = _ref.value;
49
+ return /*#__PURE__*/jsx(Typography, {
50
+ className: "mb-2",
51
+ style: "body1",
52
+ children: /*#__PURE__*/jsx(Trans, {
53
+ components: {
54
+ strong: /*#__PURE__*/jsx("strong", {})
55
+ },
56
+ i18nKey: "neetoMolecules.auditLogs.additionalDetails.".concat(label),
57
+ values: {
58
+ value: value
59
+ }
60
+ })
61
+ });
62
+ };
63
+
64
+ var DATE_FORMATS = {
65
+ "%d/%m/%Y": "DD/MM/YYYY",
66
+ "%m/%d/%Y": "MM/DD/YYYY",
67
+ "%Y/%m/%d": "YYYY/MM/DD"
68
+ };
69
+ var DETAILS_KEYS = {
70
+ CHANGES_MADE_BY: "changesMadeBy",
71
+ ERROR_MESSAGE: "errorMessage",
72
+ NAME: "name",
73
+ ORGANIZATION_ROLE: "organizationRole",
74
+ GENERIC_DETAILS: "details",
75
+ ADDED_PERMISSIONS: "addedPermissions",
76
+ REMOVED_PERMISSIONS: "removedPermissions"
77
+ };
78
+ var EMAILS_TABLE_COLUMN_DATA = [{
79
+ title: t("neetoMolecules.auditLogs.details.emails.title"),
80
+ key: "email",
81
+ dataIndex: "email"
82
+ }];
83
+ var CHANGELOG_COLUMN_DATA = [{
84
+ title: t("neetoMolecules.auditLogs.details.changelog.field"),
85
+ key: "field",
86
+ dataIndex: "field"
87
+ }, {
88
+ title: t("neetoMolecules.auditLogs.details.changelog.from"),
89
+ key: "from",
90
+ dataIndex: "from"
91
+ }, {
92
+ title: t("neetoMolecules.auditLogs.details.changelog.to"),
93
+ key: "to",
94
+ dataIndex: "to"
95
+ }];
96
+
97
+ var formatToFromValue = function formatToFromValue(value) {
98
+ if (value === true) {
99
+ return t("neetoMolecules.auditLogs.details.changelog.true");
100
+ }
101
+ if (value === false) {
102
+ return t("neetoMolecules.auditLogs.details.changelog.false");
103
+ }
104
+ if (value === null) return "-";
105
+ return value;
106
+ };
107
+ var transformDateFormat = function transformDateFormat(rawDateFormat) {
108
+ return DATE_FORMATS[rawDateFormat];
109
+ };
110
+ var getFormattedValue = function getFormattedValue(field, value) {
111
+ return field === "dateFormat" ? transformDateFormat(value) : formatToFromValue(value);
112
+ };
113
+ var formatEmails = function formatEmails(emails) {
114
+ return emails.map(function (email) {
115
+ return {
116
+ email: email
117
+ };
118
+ });
119
+ };
120
+ var formatChangeLog = function formatChangeLog(changes) {
121
+ return Object.entries(changes).map(function (_ref) {
122
+ var _ref2 = _slicedToArray(_ref, 2),
123
+ field = _ref2[0],
124
+ _ref2$ = _ref2[1],
125
+ from = _ref2$.from,
126
+ to = _ref2$.to;
127
+ var formattedField = _humanize(field);
128
+ return {
129
+ field: formattedField,
130
+ from: getFormattedValue(field, from),
131
+ to: getFormattedValue(field, to)
132
+ };
133
+ });
134
+ };
135
+ var getFullName = function getFullName(firstName) {
136
+ var lastName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
137
+ return "".concat(firstName, " ").concat(lastName).trim();
138
+ };
139
+ var getLabel = function getLabel(_ref3) {
140
+ var firstName = _ref3.firstName,
141
+ lastName = _ref3.lastName,
142
+ organizationRole = _ref3.organizationRole;
143
+ if (firstName || lastName) {
144
+ return DETAILS_KEYS.NAME;
145
+ }
146
+ if (organizationRole) {
147
+ return DETAILS_KEYS.ORGANIZATION_ROLE;
148
+ }
149
+ return DETAILS_KEYS.GENERIC_DETAILS;
150
+ };
151
+ var formatPermissionsChangeLog = function formatPermissionsChangeLog(_ref4) {
152
+ var from = _ref4.from,
153
+ to = _ref4.to;
154
+ return [{
155
+ field: t("neetoMolecules.auditLogs.details.permissions.description"),
156
+ from: getFormattedValue("description", from),
157
+ to: getFormattedValue("description", to)
158
+ }];
159
+ };
160
+ var transformPermissions = function transformPermissions(permissions) {
161
+ return permissions.map(function (permission) {
162
+ var humanizedParts = permission.split(".").map(_humanize);
163
+ return humanizedParts.join(" - ");
164
+ }).join(", ");
165
+ };
166
+
167
+ var GenericChangelog = function GenericChangelog(_ref) {
168
+ var details = _ref.details;
169
+ var _useTranslation = useTranslation(),
170
+ t = _useTranslation.t;
171
+ var _details$email = details.email,
172
+ email = _details$email === void 0 ? "" : _details$email,
173
+ _details$changes = details.changes,
174
+ changes = _details$changes === void 0 ? {} : _details$changes,
175
+ _details$errorMessage = details.errorMessage,
176
+ errorMessage = _details$errorMessage === void 0 ? "" : _details$errorMessage,
177
+ status = details.status;
178
+ return /*#__PURE__*/jsxs("div", {
179
+ children: [/*#__PURE__*/jsx(LabelledDetail, {
180
+ label: DETAILS_KEYS.CHANGES_MADE_BY,
181
+ value: email
182
+ }), isNotEmpty(changes) && status === "success" ? /*#__PURE__*/jsx(Table, {
183
+ columnData: CHANGELOG_COLUMN_DATA,
184
+ enableColumnFreeze: false,
185
+ rowData: formatChangeLog(changes)
186
+ }) : /*#__PURE__*/jsx(LabelledDetail, {
187
+ label: DETAILS_KEYS.ERROR_MESSAGE,
188
+ value: errorMessage || t("neetoMolecules.auditLogs.noError")
189
+ })]
190
+ });
191
+ };
192
+
193
+ var PermissionsChangelog = function PermissionsChangelog(_ref) {
194
+ var details = _ref.details;
195
+ var _details$description = details.description,
196
+ description = _details$description === void 0 ? {} : _details$description,
197
+ _details$organization = details.organizationRole,
198
+ organizationRole = _details$organization === void 0 ? "" : _details$organization,
199
+ _details$addedPermiss = details.addedPermissions,
200
+ addedPermissions = _details$addedPermiss === void 0 ? [] : _details$addedPermiss,
201
+ _details$removedPermi = details.removedPermissions,
202
+ removedPermissions = _details$removedPermi === void 0 ? [] : _details$removedPermi;
203
+ return /*#__PURE__*/jsxs("div", {
204
+ children: [/*#__PURE__*/jsx(LabelledDetail, {
205
+ label: DETAILS_KEYS.ORGANIZATION_ROLE,
206
+ value: organizationRole
207
+ }), isNotEmpty(addedPermissions) && /*#__PURE__*/jsx(LabelledDetail, {
208
+ label: DETAILS_KEYS.ADDED_PERMISSIONS,
209
+ value: transformPermissions(addedPermissions)
210
+ }), isNotEmpty(removedPermissions) && /*#__PURE__*/jsx(LabelledDetail, {
211
+ label: DETAILS_KEYS.REMOVED_PERMISSIONS,
212
+ value: transformPermissions(removedPermissions)
213
+ }), isNotEmpty(description) && /*#__PURE__*/jsx(Table, {
214
+ columnData: CHANGELOG_COLUMN_DATA,
215
+ enableColumnFreeze: false,
216
+ rowData: formatPermissionsChangeLog(description)
217
+ })]
218
+ });
219
+ };
220
+
221
+ var Emails = function Emails(_ref) {
222
+ var details = _ref.details;
223
+ var _useTranslation = useTranslation(),
224
+ t = _useTranslation.t;
225
+ var _details$emails = details.emails,
226
+ emails = _details$emails === void 0 ? [] : _details$emails,
227
+ status = details.status,
228
+ _details$errorMessage = details.errorMessage,
229
+ errorMessage = _details$errorMessage === void 0 ? "" : _details$errorMessage;
230
+ return /*#__PURE__*/jsx(Fragment, {
231
+ children: isNotEmpty(emails) && status === "success" ? /*#__PURE__*/jsx(Table, {
232
+ columns: EMAILS_TABLE_COLUMN_DATA,
233
+ loading: false,
234
+ rowData: formatEmails(emails)
235
+ }) : /*#__PURE__*/jsx(LabelledDetail, {
236
+ label: DETAILS_KEYS.ERROR_MESSAGE,
237
+ value: errorMessage || t("neetoMolecules.auditLogs.noError")
238
+ })
239
+ });
240
+ };
241
+
242
+ var GenericDetails = function GenericDetails(_ref) {
243
+ var details = _ref.details;
244
+ var _details$firstName = details.firstName,
245
+ firstName = _details$firstName === void 0 ? "" : _details$firstName,
246
+ _details$lastName = details.lastName,
247
+ lastName = _details$lastName === void 0 ? "" : _details$lastName,
248
+ _details$organization = details.organizationRole,
249
+ organizationRole = _details$organization === void 0 ? "" : _details$organization;
250
+ var name = getFullName(firstName, lastName);
251
+ var label = getLabel({
252
+ firstName: firstName,
253
+ lastName: lastName,
254
+ organizationRole: organizationRole
255
+ });
256
+ var value = name || organizationRole || JSON.stringify(details);
257
+ return /*#__PURE__*/jsx(LabelledDetail, {
258
+ label: label,
259
+ value: value
260
+ });
261
+ };
262
+
263
+ var AUDIT_LOGS_QUERY_KEY = "audit-logs";
264
+ var ACTIONS = {
265
+ INVITED_USERS: "invitedUsers",
266
+ USER_SIGNED_UP: "userSignedUp",
267
+ UPDATED_USER: "updatedUser",
268
+ BULK_UPDATE_USERS: "bulkUpdateUsers",
269
+ UPDATED_USER_PROFILE: "updatedUserProfile",
270
+ CREATED_ROLE: "createdRole",
271
+ UPDATED_ROLE: "updatedRole",
272
+ DELETED_ROLE: "deletedRole"
273
+ };
274
+ var ADDITIONAL_DETAILS_KEYS = {
275
+ ACTION: "action",
276
+ PERFORMED_BY: "performedBy",
277
+ PERFORMED_AT: "performedAt",
278
+ PRODUCT: "product"
279
+ };
280
+ var DETAILS_COMPONENT_MAP = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, ACTIONS.INVITED_USERS, Emails), ACTIONS.BULK_UPDATE_USERS, Emails), ACTIONS.USER_SIGNED_UP, GenericDetails), ACTIONS.UPDATED_USER, GenericChangelog), ACTIONS.UPDATED_USER_PROFILE, GenericChangelog), ACTIONS.CREATED_ROLE, GenericDetails), ACTIONS.UPDATED_ROLE, PermissionsChangelog), ACTIONS.DELETED_ROLE, GenericDetails);
281
+
282
+ var _excluded$1 = ["status"];
283
+ function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
284
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
285
+ var transformAction = function transformAction(action) {
286
+ return snakeToCamelCase(action.replace("audit_logs.organization.", ""));
287
+ };
288
+ var transformLogsForTable = function transformLogsForTable(logs) {
289
+ return logs.map(function (_ref) {
290
+ var id = _ref.id,
291
+ action = _ref.key,
292
+ _ref$metadata = _ref.metadata,
293
+ status = _ref$metadata.status,
294
+ restOfMetadata = _objectWithoutProperties(_ref$metadata, _excluded$1),
295
+ _ref$performer$name = _ref.performer.name,
296
+ performedBy = _ref$performer$name === void 0 ? "" : _ref$performer$name,
297
+ performedAt = _ref.updatedAt;
298
+ var transformedAction = transformAction(action);
299
+ var formattedPerformedAt = dateFormat.dateTime(performedAt);
300
+ return {
301
+ id: id,
302
+ action: transformedAction,
303
+ status: capitalize(status),
304
+ performedAt: formattedPerformedAt,
305
+ performedBy: performedBy,
306
+ additionalDetails: _objectSpread$1(_objectSpread$1({}, restOfMetadata), {}, {
307
+ action: transformedAction,
308
+ performedAt: formattedPerformedAt,
309
+ performedBy: performedBy,
310
+ status: status
311
+ })
312
+ };
313
+ });
314
+ };
315
+ var getColumnData = function getColumnData(handleClick) {
316
+ return [{
317
+ title: t("neetoMolecules.auditLogs.table.headers.action", SINGULAR),
318
+ key: "action",
319
+ dataIndex: "action",
320
+ render: function render(action, _ref2) {
321
+ var additionalDetails = _ref2.additionalDetails;
322
+ return /*#__PURE__*/jsx(Button, {
323
+ "data-testid": "action-link-button",
324
+ label: t("neetoMolecules.auditLogs.actions.".concat(action)),
325
+ style: "link",
326
+ onClick: function onClick() {
327
+ return handleClick(additionalDetails);
328
+ }
329
+ });
330
+ }
331
+ }, {
332
+ title: t("neetoMolecules.auditLogs.table.headers.status"),
333
+ key: "status",
334
+ dataIndex: "status"
335
+ }, {
336
+ title: t("neetoMolecules.auditLogs.table.headers.performedBy"),
337
+ key: "performedBy",
338
+ dataIndex: "performedBy"
339
+ }, {
340
+ title: t("neetoMolecules.auditLogs.table.headers.performedAt"),
341
+ key: "performedAt",
342
+ dataIndex: "performedAt"
343
+ }];
344
+ };
345
+ var getComponentForDetail = function getComponentForDetail(action) {
346
+ return DETAILS_COMPONENT_MAP[action] || GenericDetails;
347
+ };
348
+
349
+ var _excluded = ["message", "action", "performedBy", "performedAt", "via"];
350
+ var AdditionalDetails = function AdditionalDetails(_ref) {
351
+ var additionalDetails = _ref.additionalDetails,
352
+ isOpen = _ref.isOpen,
353
+ onClose = _ref.onClose;
354
+ var _useTranslation = useTranslation(),
355
+ t = _useTranslation.t;
356
+ var message = additionalDetails.message,
357
+ defaultAction = additionalDetails.action,
358
+ performedBy = additionalDetails.performedBy,
359
+ performedAt = additionalDetails.performedAt,
360
+ product = additionalDetails.via,
361
+ details = _objectWithoutProperties(additionalDetails, _excluded);
362
+ var action = message || t("neetoMolecules.auditLogs.actions.".concat(defaultAction));
363
+ var DetailComponent = getComponentForDetail(defaultAction);
364
+ return /*#__PURE__*/jsxs(Modal, {
365
+ isOpen: isOpen,
366
+ onClose: onClose,
367
+ "data-testid": "additional-details-modal",
368
+ size: "large",
369
+ children: [/*#__PURE__*/jsx(Modal.Header, {
370
+ children: /*#__PURE__*/jsx(Typography, {
371
+ style: "h2",
372
+ children: t("neetoMolecules.auditLogs.additionalDetails.title")
373
+ })
374
+ }), /*#__PURE__*/jsx(Modal.Body, {
375
+ children: /*#__PURE__*/jsxs(Fragment, {
376
+ children: [/*#__PURE__*/jsx(LabelledDetail, {
377
+ label: ADDITIONAL_DETAILS_KEYS.ACTION,
378
+ value: action
379
+ }), /*#__PURE__*/jsx(LabelledDetail, {
380
+ label: ADDITIONAL_DETAILS_KEYS.PERFORMED_BY,
381
+ value: performedBy
382
+ }), /*#__PURE__*/jsx(LabelledDetail, {
383
+ label: ADDITIONAL_DETAILS_KEYS.PERFORMED_AT,
384
+ value: performedAt
385
+ }), /*#__PURE__*/jsx(LabelledDetail, {
386
+ label: ADDITIONAL_DETAILS_KEYS.PRODUCT,
387
+ value: _capitalize(product)
388
+ }), /*#__PURE__*/jsx(DetailComponent, {
389
+ details: details
390
+ })]
391
+ })
392
+ })]
393
+ });
394
+ };
395
+
396
+ var fetchAuditLogs = function fetchAuditLogs(params) {
397
+ return axios.get("api/v1/audit_logs", {
398
+ params: params
399
+ });
400
+ };
401
+ var auditLogsApi = {
402
+ fetchAuditLogs: fetchAuditLogs
403
+ };
404
+
405
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
406
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
407
+ var useFetchAuditLogs = function useFetchAuditLogs(_ref) {
408
+ var params = _ref.params,
409
+ _ref$options = _ref.options,
410
+ options = _ref$options === void 0 ? {} : _ref$options;
411
+ return useQuery(_objectSpread({
412
+ queryKey: [AUDIT_LOGS_QUERY_KEY, params],
413
+ queryFn: function queryFn() {
414
+ return auditLogsApi.fetchAuditLogs(params);
415
+ }
416
+ }, options));
417
+ };
418
+
419
+ var AuditLogs = function AuditLogs() {
420
+ var _useState = useState(false),
421
+ _useState2 = _slicedToArray(_useState, 2),
422
+ isAdditionalDetailsModalOpen = _useState2[0],
423
+ setIsAdditionalDetailsModalOpen = _useState2[1];
424
+ var _useState3 = useState({}),
425
+ _useState4 = _slicedToArray(_useState3, 2),
426
+ additionalDetails = _useState4[0],
427
+ setAdditionalDetails = _useState4[1];
428
+ var _useTranslation = useTranslation(),
429
+ t = _useTranslation.t;
430
+ var _useQueryParams = useQueryParams(),
431
+ _useQueryParams$page = _useQueryParams.page,
432
+ page = _useQueryParams$page === void 0 ? DEFAULT_PAGE_INDEX : _useQueryParams$page;
433
+ var _useFetchAuditLogs = useFetchAuditLogs({
434
+ params: {
435
+ page: page
436
+ }
437
+ }),
438
+ _useFetchAuditLogs$da = _useFetchAuditLogs.data,
439
+ _useFetchAuditLogs$da2 = _useFetchAuditLogs$da === void 0 ? {} : _useFetchAuditLogs$da,
440
+ _useFetchAuditLogs$da3 = _useFetchAuditLogs$da2.auditLogs,
441
+ auditLogs = _useFetchAuditLogs$da3 === void 0 ? [] : _useFetchAuditLogs$da3,
442
+ _useFetchAuditLogs$da4 = _useFetchAuditLogs$da2.totalCount,
443
+ totalCount = _useFetchAuditLogs$da4 === void 0 ? 0 : _useFetchAuditLogs$da4,
444
+ isLoading = _useFetchAuditLogs.isLoading,
445
+ isFetching = _useFetchAuditLogs.isFetching;
446
+ var handleClick = function handleClick(additionalDetails) {
447
+ setIsAdditionalDetailsModalOpen(true);
448
+ setAdditionalDetails(additionalDetails);
449
+ };
450
+ var handleClose = function handleClose() {
451
+ setIsAdditionalDetailsModalOpen(false);
452
+ setAdditionalDetails({});
453
+ };
454
+ if (isLoading) {
455
+ return /*#__PURE__*/jsx("div", {
456
+ className: "flex h-full w-full items-center justify-center",
457
+ children: /*#__PURE__*/jsx(PageLoader, {})
458
+ });
459
+ }
460
+ return /*#__PURE__*/jsxs(Container, {
461
+ children: [/*#__PURE__*/jsx(Header, {
462
+ title: t("neetoMolecules.auditLogs.title")
463
+ }), /*#__PURE__*/jsx(TableWrapper, {
464
+ className: "mt-5",
465
+ hasPagination: totalCount > DEFAULT_PAGE_SIZE,
466
+ children: isPresent(auditLogs) ? /*#__PURE__*/jsx(Table, {
467
+ totalCount: totalCount,
468
+ fixedHeight: true,
469
+ columnData: getColumnData(handleClick),
470
+ currentPageNumber: parseInt(page),
471
+ "data-testid": "audit-logs-table",
472
+ defaultPageSize: DEFAULT_PAGE_SIZE,
473
+ loading: isFetching,
474
+ rowData: transformLogsForTable(auditLogs)
475
+ }) : /*#__PURE__*/jsx("div", {
476
+ className: "flex h-full w-full items-center justify-center",
477
+ children: /*#__PURE__*/jsx(NoData, {
478
+ title: t("neetoMolecules.auditLogs.noData")
479
+ })
480
+ })
481
+ }), /*#__PURE__*/jsx(AdditionalDetails, {
482
+ additionalDetails: additionalDetails,
483
+ isOpen: isAdditionalDetailsModalOpen,
484
+ onClose: handleClose
485
+ })]
486
+ });
487
+ };
488
+
489
+ export { AuditLogs as default };
490
+ //# sourceMappingURL=AuditLogs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuditLogs.js","sources":["../src/components/AuditLogs/LabelledDetail.jsx","../src/components/AuditLogs/Details/constants.js","../src/components/AuditLogs/Details/utils.js","../src/components/AuditLogs/Details/Changelog/Generic.jsx","../src/components/AuditLogs/Details/Changelog/Permissions.jsx","../src/components/AuditLogs/Details/Emails.jsx","../src/components/AuditLogs/Details/Generic.jsx","../src/components/AuditLogs/constants.js","../src/components/AuditLogs/utils.jsx","../src/components/AuditLogs/AddtionalDetails.jsx","../src/components/AuditLogs/api.js","../src/components/AuditLogs/useAuditLogsApi.js","../src/components/AuditLogs/index.jsx"],"sourcesContent":["import { Typography } from \"neetoui\";\nimport { Trans } from \"react-i18next\";\n\nconst LabelledDetail = ({ label, value }) => (\n <Typography className=\"mb-2\" style=\"body1\">\n <Trans\n components={{ strong: <strong /> }}\n i18nKey={`neetoMolecules.auditLogs.additionalDetails.${label}`}\n values={{ value }}\n />\n </Typography>\n);\n\nexport default LabelledDetail;\n","import { t } from \"i18next\";\n\nexport const DATE_FORMATS = {\n \"%d/%m/%Y\": \"DD/MM/YYYY\",\n \"%m/%d/%Y\": \"MM/DD/YYYY\",\n \"%Y/%m/%d\": \"YYYY/MM/DD\",\n};\n\nexport const DETAILS_KEYS = {\n CHANGES_MADE_BY: \"changesMadeBy\",\n ERROR_MESSAGE: \"errorMessage\",\n NAME: \"name\",\n ORGANIZATION_ROLE: \"organizationRole\",\n GENERIC_DETAILS: \"details\",\n ADDED_PERMISSIONS: \"addedPermissions\",\n REMOVED_PERMISSIONS: \"removedPermissions\",\n};\n\nexport const EMAILS_TABLE_COLUMN_DATA = [\n {\n title: t(\"neetoMolecules.auditLogs.details.emails.title\"),\n key: \"email\",\n dataIndex: \"email\",\n },\n];\n\nexport const CHANGELOG_COLUMN_DATA = [\n {\n title: t(\"neetoMolecules.auditLogs.details.changelog.field\"),\n key: \"field\",\n dataIndex: \"field\",\n },\n {\n title: t(\"neetoMolecules.auditLogs.details.changelog.from\"),\n key: \"from\",\n dataIndex: \"from\",\n },\n {\n title: t(\"neetoMolecules.auditLogs.details.changelog.to\"),\n key: \"to\",\n dataIndex: \"to\",\n },\n];\n","import { t } from \"i18next\";\nimport { _humanize } from \"neetocist\";\n\nimport { DATE_FORMATS, DETAILS_KEYS } from \"./constants\";\n\nconst formatToFromValue = value => {\n if (value === true) {\n return t(\"neetoMolecules.auditLogs.details.changelog.true\");\n }\n\n if (value === false) {\n return t(\"neetoMolecules.auditLogs.details.changelog.false\");\n }\n\n if (value === null) return \"-\";\n\n return value;\n};\n\nconst transformDateFormat = rawDateFormat => DATE_FORMATS[rawDateFormat];\n\nconst getFormattedValue = (field, value) =>\n field === \"dateFormat\"\n ? transformDateFormat(value)\n : formatToFromValue(value);\n\nexport const formatEmails = emails => emails.map(email => ({ email }));\n\nexport const formatChangeLog = changes =>\n Object.entries(changes).map(([field, { from, to }]) => {\n const formattedField = _humanize(field);\n\n return {\n field: formattedField,\n from: getFormattedValue(field, from),\n to: getFormattedValue(field, to),\n };\n });\n\nexport const getFullName = (firstName, lastName = \"\") =>\n `${firstName} ${lastName}`.trim();\n\nexport const getLabel = ({ firstName, lastName, organizationRole }) => {\n if (firstName || lastName) {\n return DETAILS_KEYS.NAME;\n }\n\n if (organizationRole) {\n return DETAILS_KEYS.ORGANIZATION_ROLE;\n }\n\n return DETAILS_KEYS.GENERIC_DETAILS;\n};\n\nexport const formatPermissionsChangeLog = ({ from, to }) => [\n {\n field: t(\"neetoMolecules.auditLogs.details.permissions.description\"),\n from: getFormattedValue(\"description\", from),\n to: getFormattedValue(\"description\", to),\n },\n];\n\nexport const transformPermissions = permissions =>\n permissions\n .map(permission => {\n const humanizedParts = permission.split(\".\").map(_humanize);\n\n return humanizedParts.join(\" - \");\n })\n .join(\", \");\n","import { isNotEmpty } from \"neetocist\";\nimport { Table } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport LabelledDetail from \"components/AuditLogs/LabelledDetail\";\n\nimport { CHANGELOG_COLUMN_DATA, DETAILS_KEYS } from \"../constants\";\nimport { formatChangeLog } from \"../utils\";\n\nconst GenericChangelog = ({ details }) => {\n const { t } = useTranslation();\n\n const { email = \"\", changes = {}, errorMessage = \"\", status } = details;\n\n return (\n <div>\n <LabelledDetail label={DETAILS_KEYS.CHANGES_MADE_BY} value={email} />\n {isNotEmpty(changes) && status === \"success\" ? (\n <Table\n columnData={CHANGELOG_COLUMN_DATA}\n enableColumnFreeze={false}\n rowData={formatChangeLog(changes)}\n />\n ) : (\n <LabelledDetail\n label={DETAILS_KEYS.ERROR_MESSAGE}\n value={errorMessage || t(\"neetoMolecules.auditLogs.noError\")}\n />\n )}\n </div>\n );\n};\n\nexport default GenericChangelog;\n","import { isNotEmpty } from \"neetocist\";\nimport { Table } from \"neetoui\";\n\nimport LabelledDetail from \"components/AuditLogs/LabelledDetail\";\n\nimport { DETAILS_KEYS, CHANGELOG_COLUMN_DATA } from \"../constants\";\nimport { formatPermissionsChangeLog, transformPermissions } from \"../utils\";\n\nconst PermissionsChangelog = ({ details }) => {\n const {\n description = {},\n organizationRole = \"\",\n addedPermissions = [],\n removedPermissions = [],\n } = details;\n\n return (\n <div>\n <LabelledDetail\n label={DETAILS_KEYS.ORGANIZATION_ROLE}\n value={organizationRole}\n />\n {isNotEmpty(addedPermissions) && (\n <LabelledDetail\n label={DETAILS_KEYS.ADDED_PERMISSIONS}\n value={transformPermissions(addedPermissions)}\n />\n )}\n {isNotEmpty(removedPermissions) && (\n <LabelledDetail\n label={DETAILS_KEYS.REMOVED_PERMISSIONS}\n value={transformPermissions(removedPermissions)}\n />\n )}\n {isNotEmpty(description) && (\n <Table\n columnData={CHANGELOG_COLUMN_DATA}\n enableColumnFreeze={false}\n rowData={formatPermissionsChangeLog(description)}\n />\n )}\n </div>\n );\n};\n\nexport default PermissionsChangelog;\n","import { isNotEmpty } from \"neetocist\";\nimport { Table } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { DETAILS_KEYS, EMAILS_TABLE_COLUMN_DATA } from \"./constants\";\nimport { formatEmails } from \"./utils\";\n\nimport LabelledDetail from \"../LabelledDetail\";\n\nconst Emails = ({ details }) => {\n const { t } = useTranslation();\n\n const { emails = [], status, errorMessage = \"\" } = details;\n\n return (\n <>\n {isNotEmpty(emails) && status === \"success\" ? (\n <Table\n columns={EMAILS_TABLE_COLUMN_DATA}\n loading={false}\n rowData={formatEmails(emails)}\n />\n ) : (\n <LabelledDetail\n label={DETAILS_KEYS.ERROR_MESSAGE}\n value={errorMessage || t(\"neetoMolecules.auditLogs.noError\")}\n />\n )}\n </>\n );\n};\n\nexport default Emails;\n","import { getLabel, getFullName } from \"./utils\";\n\nimport LabelledDetail from \"../LabelledDetail\";\n\nconst GenericDetails = ({ details }) => {\n const { firstName = \"\", lastName = \"\", organizationRole = \"\" } = details;\n\n const name = getFullName(firstName, lastName);\n const label = getLabel({ firstName, lastName, organizationRole });\n const value = name || organizationRole || JSON.stringify(details);\n\n return <LabelledDetail {...{ label, value }} />;\n};\n\nexport default GenericDetails;\n","import GenericChangelog from \"./Details/Changelog/Generic\";\nimport PermissionsChangelog from \"./Details/Changelog/Permissions\";\nimport Emails from \"./Details/Emails\";\nimport GenericDetails from \"./Details/Generic\";\n\nexport const AUDIT_LOGS_QUERY_KEY = \"audit-logs\";\n\nexport const ACTIONS = {\n INVITED_USERS: \"invitedUsers\",\n USER_SIGNED_UP: \"userSignedUp\",\n UPDATED_USER: \"updatedUser\",\n BULK_UPDATE_USERS: \"bulkUpdateUsers\",\n UPDATED_USER_PROFILE: \"updatedUserProfile\",\n CREATED_ROLE: \"createdRole\",\n UPDATED_ROLE: \"updatedRole\",\n DELETED_ROLE: \"deletedRole\",\n};\n\nexport const ADDITIONAL_DETAILS_KEYS = {\n ACTION: \"action\",\n PERFORMED_BY: \"performedBy\",\n PERFORMED_AT: \"performedAt\",\n PRODUCT: \"product\",\n};\n\nexport const DETAILS_COMPONENT_MAP = {\n [ACTIONS.INVITED_USERS]: Emails,\n [ACTIONS.BULK_UPDATE_USERS]: Emails,\n [ACTIONS.USER_SIGNED_UP]: GenericDetails,\n [ACTIONS.UPDATED_USER]: GenericChangelog,\n [ACTIONS.UPDATED_USER_PROFILE]: GenericChangelog,\n [ACTIONS.CREATED_ROLE]: GenericDetails,\n [ACTIONS.UPDATED_ROLE]: PermissionsChangelog,\n [ACTIONS.DELETED_ROLE]: GenericDetails,\n};\n","import { t } from \"i18next\";\nimport { capitalize, snakeToCamelCase } from \"neetocist\";\nimport { SINGULAR } from \"neetocommons/constants\";\nimport { dateFormat } from \"neetocommons/utils\";\nimport { Button } from \"neetoui\";\n\nimport { DETAILS_COMPONENT_MAP } from \"./constants\";\nimport GenericDetails from \"./Details/Generic\";\n\nconst transformAction = action =>\n snakeToCamelCase(action.replace(\"audit_logs.organization.\", \"\"));\n\nexport const transformLogsForTable = logs =>\n logs.map(\n ({\n id,\n key: action,\n metadata: { status, ...restOfMetadata },\n performer: { name: performedBy = \"\" },\n updatedAt: performedAt,\n }) => {\n const transformedAction = transformAction(action);\n const formattedPerformedAt = dateFormat.dateTime(performedAt);\n\n return {\n id,\n action: transformedAction,\n status: capitalize(status),\n performedAt: formattedPerformedAt,\n performedBy,\n additionalDetails: {\n ...restOfMetadata,\n action: transformedAction,\n performedAt: formattedPerformedAt,\n performedBy,\n status,\n },\n };\n }\n );\n\nexport const getColumnData = handleClick => [\n {\n title: t(\"neetoMolecules.auditLogs.table.headers.action\", SINGULAR),\n key: \"action\",\n dataIndex: \"action\",\n render: (action, { additionalDetails }) => (\n <Button\n data-testid=\"action-link-button\"\n label={t(`neetoMolecules.auditLogs.actions.${action}`)}\n style=\"link\"\n onClick={() => handleClick(additionalDetails)}\n />\n ),\n },\n {\n title: t(\"neetoMolecules.auditLogs.table.headers.status\"),\n key: \"status\",\n dataIndex: \"status\",\n },\n {\n title: t(\"neetoMolecules.auditLogs.table.headers.performedBy\"),\n key: \"performedBy\",\n dataIndex: \"performedBy\",\n },\n {\n title: t(\"neetoMolecules.auditLogs.table.headers.performedAt\"),\n key: \"performedAt\",\n dataIndex: \"performedAt\",\n },\n];\n\nexport const getComponentForDetail = action =>\n DETAILS_COMPONENT_MAP[action] || GenericDetails;\n","import { _capitalize } from \"neetocist\";\nimport { Typography, Modal } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { ADDITIONAL_DETAILS_KEYS } from \"./constants\";\nimport LabelledDetail from \"./LabelledDetail\";\nimport { getComponentForDetail } from \"./utils\";\n\nconst AdditionalDetails = ({ additionalDetails, isOpen, onClose }) => {\n const { t } = useTranslation();\n\n const {\n message,\n action: defaultAction,\n performedBy,\n performedAt,\n via: product,\n ...details\n } = additionalDetails;\n\n const action =\n message || t(`neetoMolecules.auditLogs.actions.${defaultAction}`);\n\n const DetailComponent = getComponentForDetail(defaultAction);\n\n return (\n <Modal\n {...{ isOpen, onClose }}\n data-testid=\"additional-details-modal\"\n size=\"large\"\n >\n <Modal.Header>\n <Typography style=\"h2\">\n {t(\"neetoMolecules.auditLogs.additionalDetails.title\")}\n </Typography>\n </Modal.Header>\n <Modal.Body>\n <>\n <LabelledDetail\n label={ADDITIONAL_DETAILS_KEYS.ACTION}\n value={action}\n />\n <LabelledDetail\n label={ADDITIONAL_DETAILS_KEYS.PERFORMED_BY}\n value={performedBy}\n />\n <LabelledDetail\n label={ADDITIONAL_DETAILS_KEYS.PERFORMED_AT}\n value={performedAt}\n />\n <LabelledDetail\n label={ADDITIONAL_DETAILS_KEYS.PRODUCT}\n value={_capitalize(product)}\n />\n <DetailComponent {...{ details }} />\n </>\n </Modal.Body>\n </Modal>\n );\n};\n\nexport default AdditionalDetails;\n","import axios from \"axios\";\n\nconst fetchAuditLogs = params => axios.get(\"api/v1/audit_logs\", { params });\n\nconst auditLogsApi = { fetchAuditLogs };\n\nexport default auditLogsApi;\n","import { useQuery } from \"@tanstack/react-query\";\n\nimport auditLogsApi from \"./api\";\nimport { AUDIT_LOGS_QUERY_KEY } from \"./constants\";\n\nexport const useFetchAuditLogs = ({ params, options = {} }) =>\n useQuery({\n queryKey: [AUDIT_LOGS_QUERY_KEY, params],\n queryFn: () => auditLogsApi.fetchAuditLogs(params),\n ...options,\n });\n","import { useState } from \"react\";\n\nimport { isPresent } from \"neetocist\";\nimport { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE } from \"neetocommons/constants\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { NoData, Table } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Container from \"components/Container\";\nimport Header from \"components/Header\";\nimport PageLoader from \"components/PageLoader\";\nimport TableWrapper from \"components/TableWrapper\";\n\nimport AdditionalDetails from \"./AddtionalDetails\";\nimport { useFetchAuditLogs } from \"./useAuditLogsApi\";\nimport { transformLogsForTable, getColumnData } from \"./utils\";\n\nconst AuditLogs = () => {\n const [isAdditionalDetailsModalOpen, setIsAdditionalDetailsModalOpen] =\n useState(false);\n const [additionalDetails, setAdditionalDetails] = useState({});\n\n const { t } = useTranslation();\n\n const { page = DEFAULT_PAGE_INDEX } = useQueryParams();\n\n const {\n data: { auditLogs = [], totalCount = 0 } = {},\n isLoading,\n isFetching,\n } = useFetchAuditLogs({ params: { page } });\n\n const handleClick = additionalDetails => {\n setIsAdditionalDetailsModalOpen(true);\n setAdditionalDetails(additionalDetails);\n };\n\n const handleClose = () => {\n setIsAdditionalDetailsModalOpen(false);\n setAdditionalDetails({});\n };\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <PageLoader />\n </div>\n );\n }\n\n return (\n <Container>\n <Header title={t(\"neetoMolecules.auditLogs.title\")} />\n <TableWrapper\n className=\"mt-5\"\n hasPagination={totalCount > DEFAULT_PAGE_SIZE}\n >\n {isPresent(auditLogs) ? (\n <Table\n {...{ totalCount }}\n fixedHeight\n columnData={getColumnData(handleClick)}\n currentPageNumber={parseInt(page)}\n data-testid=\"audit-logs-table\"\n defaultPageSize={DEFAULT_PAGE_SIZE}\n loading={isFetching}\n rowData={transformLogsForTable(auditLogs)}\n />\n ) : (\n <div className=\"flex h-full w-full items-center justify-center\">\n <NoData title={t(\"neetoMolecules.auditLogs.noData\")} />\n </div>\n )}\n </TableWrapper>\n <AdditionalDetails\n {...{ additionalDetails }}\n isOpen={isAdditionalDetailsModalOpen}\n onClose={handleClose}\n />\n </Container>\n );\n};\n\nexport default AuditLogs;\n"],"names":["LabelledDetail","_ref","label","value","_jsx","Typography","className","style","children","Trans","components","strong","i18nKey","concat","values","DATE_FORMATS","DETAILS_KEYS","CHANGES_MADE_BY","ERROR_MESSAGE","NAME","ORGANIZATION_ROLE","GENERIC_DETAILS","ADDED_PERMISSIONS","REMOVED_PERMISSIONS","EMAILS_TABLE_COLUMN_DATA","title","t","key","dataIndex","CHANGELOG_COLUMN_DATA","formatToFromValue","transformDateFormat","rawDateFormat","getFormattedValue","field","formatEmails","emails","map","email","formatChangeLog","changes","Object","entries","_ref2","_slicedToArray","_ref2$","from","to","formattedField","_humanize","getFullName","firstName","lastName","arguments","length","undefined","trim","getLabel","_ref3","organizationRole","formatPermissionsChangeLog","_ref4","transformPermissions","permissions","permission","humanizedParts","split","join","GenericChangelog","details","_useTranslation","useTranslation","_details$email","_details$changes","_details$errorMessage","errorMessage","status","_jsxs","isNotEmpty","Table","columnData","enableColumnFreeze","rowData","PermissionsChangelog","_details$description","description","_details$organization","_details$addedPermiss","addedPermissions","_details$removedPermi","removedPermissions","Emails","_details$emails","_Fragment","columns","loading","GenericDetails","_details$firstName","_details$lastName","name","JSON","stringify","AUDIT_LOGS_QUERY_KEY","ACTIONS","INVITED_USERS","USER_SIGNED_UP","UPDATED_USER","BULK_UPDATE_USERS","UPDATED_USER_PROFILE","CREATED_ROLE","UPDATED_ROLE","DELETED_ROLE","ADDITIONAL_DETAILS_KEYS","ACTION","PERFORMED_BY","PERFORMED_AT","PRODUCT","DETAILS_COMPONENT_MAP","_defineProperty","transformAction","action","snakeToCamelCase","replace","transformLogsForTable","logs","id","_ref$metadata","metadata","restOfMetadata","_objectWithoutProperties","_excluded","_ref$performer$name","performer","performedBy","performedAt","updatedAt","transformedAction","formattedPerformedAt","dateFormat","dateTime","capitalize","additionalDetails","_objectSpread","getColumnData","handleClick","SINGULAR","render","Button","onClick","getComponentForDetail","AdditionalDetails","isOpen","onClose","message","defaultAction","product","via","DetailComponent","Modal","size","Header","Body","_capitalize","fetchAuditLogs","params","axios","get","auditLogsApi","useFetchAuditLogs","_ref$options","options","useQuery","queryKey","queryFn","AuditLogs","_useState","useState","_useState2","isAdditionalDetailsModalOpen","setIsAdditionalDetailsModalOpen","_useState3","_useState4","setAdditionalDetails","_useQueryParams","useQueryParams","_useQueryParams$page","page","DEFAULT_PAGE_INDEX","_useFetchAuditLogs","_useFetchAuditLogs$da","data","_useFetchAuditLogs$da2","_useFetchAuditLogs$da3","auditLogs","_useFetchAuditLogs$da4","totalCount","isLoading","isFetching","handleClose","PageLoader","Container","TableWrapper","hasPagination","DEFAULT_PAGE_SIZE","isPresent","fixedHeight","currentPageNumber","parseInt","defaultPageSize","NoData"],"mappings":"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"}
@@ -73,8 +73,8 @@ var RAILS_ENV = {
73
73
  development: "development"
74
74
  };
75
75
  var NEETO_WIDGET_SCRIPT_URL = {
76
- staging: "https://d13nryxs46eypn.cloudfront.net/neeto-widget-staging.js",
77
- production: "https://d13nryxs46eypn.cloudfront.net/neeto-widget.js"
76
+ staging: "https://d3nshle8hzelnq.cloudfront.net/neeto-widget-staging.js",
77
+ production: "https://d30z9pielxbbde.cloudfront.net/neeto-widget.js"
78
78
  };
79
79
  var AVAILABLE_FRAMEWORK_OPTIONS = Object.freeze({
80
80
  rails: "rails",