@bigbinary/neeto-molecules 3.8.3 → 3.9.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.
@@ -0,0 +1,492 @@
1
+ 'use strict';
2
+
3
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
4
+ var React = require('react');
5
+ var neetoCist = require('@bigbinary/neeto-cist');
6
+ var constants = require('@bigbinary/neeto-commons-frontend/constants');
7
+ var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
8
+ var NoData = require('@bigbinary/neetoui/NoData');
9
+ var Table = require('@bigbinary/neetoui/Table');
10
+ var reactI18next = require('react-i18next');
11
+ var Container = require('./Container.js');
12
+ var Header = require('./Header.js');
13
+ var PageLoader = require('./PageLoader.js');
14
+ var TableWrapper = require('./TableWrapper.js');
15
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
16
+ var Typography = require('@bigbinary/neetoui/Typography');
17
+ var Modal = require('@bigbinary/neetoui/Modal');
18
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
19
+ var jsxRuntime = require('react/jsx-runtime');
20
+ var i18next = require('i18next');
21
+ var utils = require('@bigbinary/neeto-commons-frontend/utils');
22
+ var Button = require('@bigbinary/neetoui/Button');
23
+ var reactQuery = require('@tanstack/react-query');
24
+ var axios = require('axios');
25
+ require('classnames');
26
+ require('./index-JY2zVpnv.js');
27
+ require('./_commonjsHelpers-BJu3ubxk.js');
28
+ require('./inject-css-vQvjPR2x.js');
29
+ require('./Breadcrumbs.js');
30
+ require('@bigbinary/neeto-commons-frontend/utils/general');
31
+ require('react-router-dom');
32
+ require('./HelpPopover.js');
33
+ require('@bigbinary/neeto-icons/Help');
34
+ require('@bigbinary/neetoui/Popover');
35
+ require('./MoreDropdown.js');
36
+ require('@bigbinary/neeto-icons/MenuHorizontal');
37
+ require('@bigbinary/neeto-icons/MenuVertical');
38
+ require('@bigbinary/neetoui/Dropdown');
39
+ require('@bigbinary/neetoui/Tooltip');
40
+ require('ramda');
41
+ require('./Search.js');
42
+ require('@bigbinary/neeto-commons-frontend/react-utils/useFuncDebounce');
43
+ require('@bigbinary/neeto-commons-frontend/react-utils/useQueryParams');
44
+ require('@bigbinary/neeto-commons-frontend/react-utils/useUpdateEffect');
45
+ require('@bigbinary/neeto-icons/Search');
46
+ require('@bigbinary/neetoui/Input');
47
+
48
+ var LabelledDetail = function LabelledDetail(_ref) {
49
+ var label = _ref.label,
50
+ value = _ref.value;
51
+ return /*#__PURE__*/jsxRuntime.jsx(Typography, {
52
+ className: "mb-2",
53
+ style: "body1",
54
+ children: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
55
+ components: {
56
+ strong: /*#__PURE__*/jsxRuntime.jsx("strong", {})
57
+ },
58
+ i18nKey: "neetoMolecules.auditLogs.additionalDetails.".concat(label),
59
+ values: {
60
+ value: value
61
+ }
62
+ })
63
+ });
64
+ };
65
+
66
+ var DATE_FORMATS = {
67
+ "%d/%m/%Y": "DD/MM/YYYY",
68
+ "%m/%d/%Y": "MM/DD/YYYY",
69
+ "%Y/%m/%d": "YYYY/MM/DD"
70
+ };
71
+ var DETAILS_KEYS = {
72
+ CHANGES_MADE_BY: "changesMadeBy",
73
+ ERROR_MESSAGE: "errorMessage",
74
+ NAME: "name",
75
+ ORGANIZATION_ROLE: "organizationRole",
76
+ GENERIC_DETAILS: "details",
77
+ ADDED_PERMISSIONS: "addedPermissions",
78
+ REMOVED_PERMISSIONS: "removedPermissions"
79
+ };
80
+ var EMAILS_TABLE_COLUMN_DATA = [{
81
+ title: i18next.t("neetoMolecules.auditLogs.details.emails.title"),
82
+ key: "email",
83
+ dataIndex: "email"
84
+ }];
85
+ var CHANGELOG_COLUMN_DATA = [{
86
+ title: i18next.t("neetoMolecules.auditLogs.details.changelog.field"),
87
+ key: "field",
88
+ dataIndex: "field"
89
+ }, {
90
+ title: i18next.t("neetoMolecules.auditLogs.details.changelog.from"),
91
+ key: "from",
92
+ dataIndex: "from"
93
+ }, {
94
+ title: i18next.t("neetoMolecules.auditLogs.details.changelog.to"),
95
+ key: "to",
96
+ dataIndex: "to"
97
+ }];
98
+
99
+ var formatToFromValue = function formatToFromValue(value) {
100
+ if (value === true) {
101
+ return i18next.t("neetoMolecules.auditLogs.details.changelog.true");
102
+ }
103
+ if (value === false) {
104
+ return i18next.t("neetoMolecules.auditLogs.details.changelog.false");
105
+ }
106
+ if (value === null) return "-";
107
+ return value;
108
+ };
109
+ var transformDateFormat = function transformDateFormat(rawDateFormat) {
110
+ return DATE_FORMATS[rawDateFormat];
111
+ };
112
+ var getFormattedValue = function getFormattedValue(field, value) {
113
+ return field === "dateFormat" ? transformDateFormat(value) : formatToFromValue(value);
114
+ };
115
+ var formatEmails = function formatEmails(emails) {
116
+ return emails.map(function (email) {
117
+ return {
118
+ email: email
119
+ };
120
+ });
121
+ };
122
+ var formatChangeLog = function formatChangeLog(changes) {
123
+ return Object.entries(changes).map(function (_ref) {
124
+ var _ref2 = _slicedToArray(_ref, 2),
125
+ field = _ref2[0],
126
+ _ref2$ = _ref2[1],
127
+ from = _ref2$.from,
128
+ to = _ref2$.to;
129
+ var formattedField = neetoCist._humanize(field);
130
+ return {
131
+ field: formattedField,
132
+ from: getFormattedValue(field, from),
133
+ to: getFormattedValue(field, to)
134
+ };
135
+ });
136
+ };
137
+ var getFullName = function getFullName(firstName) {
138
+ var lastName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
139
+ return "".concat(firstName, " ").concat(lastName).trim();
140
+ };
141
+ var getLabel = function getLabel(_ref3) {
142
+ var firstName = _ref3.firstName,
143
+ lastName = _ref3.lastName,
144
+ organizationRole = _ref3.organizationRole;
145
+ if (firstName || lastName) {
146
+ return DETAILS_KEYS.NAME;
147
+ }
148
+ if (organizationRole) {
149
+ return DETAILS_KEYS.ORGANIZATION_ROLE;
150
+ }
151
+ return DETAILS_KEYS.GENERIC_DETAILS;
152
+ };
153
+ var formatPermissionsChangeLog = function formatPermissionsChangeLog(_ref4) {
154
+ var from = _ref4.from,
155
+ to = _ref4.to;
156
+ return [{
157
+ field: i18next.t("neetoMolecules.auditLogs.details.permissions.description"),
158
+ from: getFormattedValue("description", from),
159
+ to: getFormattedValue("description", to)
160
+ }];
161
+ };
162
+ var transformPermissions = function transformPermissions(permissions) {
163
+ return permissions.map(function (permission) {
164
+ var humanizedParts = permission.split(".").map(neetoCist._humanize);
165
+ return humanizedParts.join(" - ");
166
+ }).join(", ");
167
+ };
168
+
169
+ var GenericChangelog = function GenericChangelog(_ref) {
170
+ var details = _ref.details;
171
+ var _useTranslation = reactI18next.useTranslation(),
172
+ t = _useTranslation.t;
173
+ var _details$email = details.email,
174
+ email = _details$email === void 0 ? "" : _details$email,
175
+ _details$changes = details.changes,
176
+ changes = _details$changes === void 0 ? {} : _details$changes,
177
+ _details$errorMessage = details.errorMessage,
178
+ errorMessage = _details$errorMessage === void 0 ? "" : _details$errorMessage,
179
+ status = details.status;
180
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
181
+ children: [/*#__PURE__*/jsxRuntime.jsx(LabelledDetail, {
182
+ label: DETAILS_KEYS.CHANGES_MADE_BY,
183
+ value: email
184
+ }), neetoCist.isNotEmpty(changes) && status === "success" ? /*#__PURE__*/jsxRuntime.jsx(Table, {
185
+ columnData: CHANGELOG_COLUMN_DATA,
186
+ enableColumnFreeze: false,
187
+ rowData: formatChangeLog(changes)
188
+ }) : /*#__PURE__*/jsxRuntime.jsx(LabelledDetail, {
189
+ label: DETAILS_KEYS.ERROR_MESSAGE,
190
+ value: errorMessage || t("neetoMolecules.auditLogs.noError")
191
+ })]
192
+ });
193
+ };
194
+
195
+ var PermissionsChangelog = function PermissionsChangelog(_ref) {
196
+ var details = _ref.details;
197
+ var _details$description = details.description,
198
+ description = _details$description === void 0 ? {} : _details$description,
199
+ _details$organization = details.organizationRole,
200
+ organizationRole = _details$organization === void 0 ? "" : _details$organization,
201
+ _details$addedPermiss = details.addedPermissions,
202
+ addedPermissions = _details$addedPermiss === void 0 ? [] : _details$addedPermiss,
203
+ _details$removedPermi = details.removedPermissions,
204
+ removedPermissions = _details$removedPermi === void 0 ? [] : _details$removedPermi;
205
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
206
+ children: [/*#__PURE__*/jsxRuntime.jsx(LabelledDetail, {
207
+ label: DETAILS_KEYS.ORGANIZATION_ROLE,
208
+ value: organizationRole
209
+ }), neetoCist.isNotEmpty(addedPermissions) && /*#__PURE__*/jsxRuntime.jsx(LabelledDetail, {
210
+ label: DETAILS_KEYS.ADDED_PERMISSIONS,
211
+ value: transformPermissions(addedPermissions)
212
+ }), neetoCist.isNotEmpty(removedPermissions) && /*#__PURE__*/jsxRuntime.jsx(LabelledDetail, {
213
+ label: DETAILS_KEYS.REMOVED_PERMISSIONS,
214
+ value: transformPermissions(removedPermissions)
215
+ }), neetoCist.isNotEmpty(description) && /*#__PURE__*/jsxRuntime.jsx(Table, {
216
+ columnData: CHANGELOG_COLUMN_DATA,
217
+ enableColumnFreeze: false,
218
+ rowData: formatPermissionsChangeLog(description)
219
+ })]
220
+ });
221
+ };
222
+
223
+ var Emails = function Emails(_ref) {
224
+ var details = _ref.details;
225
+ var _useTranslation = reactI18next.useTranslation(),
226
+ t = _useTranslation.t;
227
+ var _details$emails = details.emails,
228
+ emails = _details$emails === void 0 ? [] : _details$emails,
229
+ status = details.status,
230
+ _details$errorMessage = details.errorMessage,
231
+ errorMessage = _details$errorMessage === void 0 ? "" : _details$errorMessage;
232
+ return /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {
233
+ children: neetoCist.isNotEmpty(emails) && status === "success" ? /*#__PURE__*/jsxRuntime.jsx(Table, {
234
+ columns: EMAILS_TABLE_COLUMN_DATA,
235
+ loading: false,
236
+ rowData: formatEmails(emails)
237
+ }) : /*#__PURE__*/jsxRuntime.jsx(LabelledDetail, {
238
+ label: DETAILS_KEYS.ERROR_MESSAGE,
239
+ value: errorMessage || t("neetoMolecules.auditLogs.noError")
240
+ })
241
+ });
242
+ };
243
+
244
+ var GenericDetails = function GenericDetails(_ref) {
245
+ var details = _ref.details;
246
+ var _details$firstName = details.firstName,
247
+ firstName = _details$firstName === void 0 ? "" : _details$firstName,
248
+ _details$lastName = details.lastName,
249
+ lastName = _details$lastName === void 0 ? "" : _details$lastName,
250
+ _details$organization = details.organizationRole,
251
+ organizationRole = _details$organization === void 0 ? "" : _details$organization;
252
+ var name = getFullName(firstName, lastName);
253
+ var label = getLabel({
254
+ firstName: firstName,
255
+ lastName: lastName,
256
+ organizationRole: organizationRole
257
+ });
258
+ var value = name || organizationRole || JSON.stringify(details);
259
+ return /*#__PURE__*/jsxRuntime.jsx(LabelledDetail, {
260
+ label: label,
261
+ value: value
262
+ });
263
+ };
264
+
265
+ var AUDIT_LOGS_QUERY_KEY = "audit-logs";
266
+ var ACTIONS = {
267
+ INVITED_USERS: "invitedUsers",
268
+ USER_SIGNED_UP: "userSignedUp",
269
+ UPDATED_USER: "updatedUser",
270
+ BULK_UPDATE_USERS: "bulkUpdateUsers",
271
+ UPDATED_USER_PROFILE: "updatedUserProfile",
272
+ CREATED_ROLE: "createdRole",
273
+ UPDATED_ROLE: "updatedRole",
274
+ DELETED_ROLE: "deletedRole"
275
+ };
276
+ var ADDITIONAL_DETAILS_KEYS = {
277
+ ACTION: "action",
278
+ PERFORMED_BY: "performedBy",
279
+ PERFORMED_AT: "performedAt",
280
+ PRODUCT: "product"
281
+ };
282
+ 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);
283
+
284
+ var _excluded$1 = ["status"];
285
+ 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; }
286
+ 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; }
287
+ var transformAction = function transformAction(action) {
288
+ return neetoCist.snakeToCamelCase(action.replace("audit_logs.organization.", ""));
289
+ };
290
+ var transformLogsForTable = function transformLogsForTable(logs) {
291
+ return logs.map(function (_ref) {
292
+ var id = _ref.id,
293
+ action = _ref.key,
294
+ _ref$metadata = _ref.metadata,
295
+ status = _ref$metadata.status,
296
+ restOfMetadata = _objectWithoutProperties(_ref$metadata, _excluded$1),
297
+ _ref$performer$name = _ref.performer.name,
298
+ performedBy = _ref$performer$name === void 0 ? "" : _ref$performer$name,
299
+ performedAt = _ref.updatedAt;
300
+ var transformedAction = transformAction(action);
301
+ var formattedPerformedAt = utils.dateFormat.dateTime(performedAt);
302
+ return {
303
+ id: id,
304
+ action: transformedAction,
305
+ status: neetoCist.capitalize(status),
306
+ performedAt: formattedPerformedAt,
307
+ performedBy: performedBy,
308
+ additionalDetails: _objectSpread$1(_objectSpread$1({}, restOfMetadata), {}, {
309
+ action: transformedAction,
310
+ performedAt: formattedPerformedAt,
311
+ performedBy: performedBy,
312
+ status: status
313
+ })
314
+ };
315
+ });
316
+ };
317
+ var getColumnData = function getColumnData(handleClick) {
318
+ return [{
319
+ title: i18next.t("neetoMolecules.auditLogs.table.headers.action", constants.SINGULAR),
320
+ key: "action",
321
+ dataIndex: "action",
322
+ render: function render(action, _ref2) {
323
+ var additionalDetails = _ref2.additionalDetails;
324
+ return /*#__PURE__*/jsxRuntime.jsx(Button, {
325
+ "data-testid": "action-link-button",
326
+ label: i18next.t("neetoMolecules.auditLogs.actions.".concat(action)),
327
+ style: "link",
328
+ onClick: function onClick() {
329
+ return handleClick(additionalDetails);
330
+ }
331
+ });
332
+ }
333
+ }, {
334
+ title: i18next.t("neetoMolecules.auditLogs.table.headers.status"),
335
+ key: "status",
336
+ dataIndex: "status"
337
+ }, {
338
+ title: i18next.t("neetoMolecules.auditLogs.table.headers.performedBy"),
339
+ key: "performedBy",
340
+ dataIndex: "performedBy"
341
+ }, {
342
+ title: i18next.t("neetoMolecules.auditLogs.table.headers.performedAt"),
343
+ key: "performedAt",
344
+ dataIndex: "performedAt"
345
+ }];
346
+ };
347
+ var getComponentForDetail = function getComponentForDetail(action) {
348
+ return DETAILS_COMPONENT_MAP[action] || GenericDetails;
349
+ };
350
+
351
+ var _excluded = ["message", "action", "performedBy", "performedAt", "via"];
352
+ var AdditionalDetails = function AdditionalDetails(_ref) {
353
+ var additionalDetails = _ref.additionalDetails,
354
+ isOpen = _ref.isOpen,
355
+ onClose = _ref.onClose;
356
+ var _useTranslation = reactI18next.useTranslation(),
357
+ t = _useTranslation.t;
358
+ var message = additionalDetails.message,
359
+ defaultAction = additionalDetails.action,
360
+ performedBy = additionalDetails.performedBy,
361
+ performedAt = additionalDetails.performedAt,
362
+ product = additionalDetails.via,
363
+ details = _objectWithoutProperties(additionalDetails, _excluded);
364
+ var action = message || t("neetoMolecules.auditLogs.actions.".concat(defaultAction));
365
+ var DetailComponent = getComponentForDetail(defaultAction);
366
+ return /*#__PURE__*/jsxRuntime.jsxs(Modal, {
367
+ isOpen: isOpen,
368
+ onClose: onClose,
369
+ "data-testid": "additional-details-modal",
370
+ size: "large",
371
+ children: [/*#__PURE__*/jsxRuntime.jsx(Modal.Header, {
372
+ children: /*#__PURE__*/jsxRuntime.jsx(Typography, {
373
+ style: "h2",
374
+ children: t("neetoMolecules.auditLogs.additionalDetails.title")
375
+ })
376
+ }), /*#__PURE__*/jsxRuntime.jsx(Modal.Body, {
377
+ children: /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
378
+ children: [/*#__PURE__*/jsxRuntime.jsx(LabelledDetail, {
379
+ label: ADDITIONAL_DETAILS_KEYS.ACTION,
380
+ value: action
381
+ }), /*#__PURE__*/jsxRuntime.jsx(LabelledDetail, {
382
+ label: ADDITIONAL_DETAILS_KEYS.PERFORMED_BY,
383
+ value: performedBy
384
+ }), /*#__PURE__*/jsxRuntime.jsx(LabelledDetail, {
385
+ label: ADDITIONAL_DETAILS_KEYS.PERFORMED_AT,
386
+ value: performedAt
387
+ }), /*#__PURE__*/jsxRuntime.jsx(LabelledDetail, {
388
+ label: ADDITIONAL_DETAILS_KEYS.PRODUCT,
389
+ value: neetoCist._capitalize(product)
390
+ }), /*#__PURE__*/jsxRuntime.jsx(DetailComponent, {
391
+ details: details
392
+ })]
393
+ })
394
+ })]
395
+ });
396
+ };
397
+
398
+ var fetchAuditLogs = function fetchAuditLogs(params) {
399
+ return axios.get("api/v1/audit_logs", {
400
+ params: params
401
+ });
402
+ };
403
+ var auditLogsApi = {
404
+ fetchAuditLogs: fetchAuditLogs
405
+ };
406
+
407
+ 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; }
408
+ 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; }
409
+ var useFetchAuditLogs = function useFetchAuditLogs(_ref) {
410
+ var params = _ref.params,
411
+ _ref$options = _ref.options,
412
+ options = _ref$options === void 0 ? {} : _ref$options;
413
+ return reactQuery.useQuery(_objectSpread({
414
+ queryKey: [AUDIT_LOGS_QUERY_KEY, params],
415
+ queryFn: function queryFn() {
416
+ return auditLogsApi.fetchAuditLogs(params);
417
+ }
418
+ }, options));
419
+ };
420
+
421
+ var AuditLogs = function AuditLogs() {
422
+ var _useState = React.useState(false),
423
+ _useState2 = _slicedToArray(_useState, 2),
424
+ isAdditionalDetailsModalOpen = _useState2[0],
425
+ setIsAdditionalDetailsModalOpen = _useState2[1];
426
+ var _useState3 = React.useState({}),
427
+ _useState4 = _slicedToArray(_useState3, 2),
428
+ additionalDetails = _useState4[0],
429
+ setAdditionalDetails = _useState4[1];
430
+ var _useTranslation = reactI18next.useTranslation(),
431
+ t = _useTranslation.t;
432
+ var _useQueryParams = reactUtils.useQueryParams(),
433
+ _useQueryParams$page = _useQueryParams.page,
434
+ page = _useQueryParams$page === void 0 ? constants.DEFAULT_PAGE_INDEX : _useQueryParams$page;
435
+ var _useFetchAuditLogs = useFetchAuditLogs({
436
+ params: {
437
+ page: page
438
+ }
439
+ }),
440
+ _useFetchAuditLogs$da = _useFetchAuditLogs.data,
441
+ _useFetchAuditLogs$da2 = _useFetchAuditLogs$da === void 0 ? {} : _useFetchAuditLogs$da,
442
+ _useFetchAuditLogs$da3 = _useFetchAuditLogs$da2.auditLogs,
443
+ auditLogs = _useFetchAuditLogs$da3 === void 0 ? [] : _useFetchAuditLogs$da3,
444
+ _useFetchAuditLogs$da4 = _useFetchAuditLogs$da2.totalCount,
445
+ totalCount = _useFetchAuditLogs$da4 === void 0 ? 0 : _useFetchAuditLogs$da4,
446
+ isLoading = _useFetchAuditLogs.isLoading,
447
+ isFetching = _useFetchAuditLogs.isFetching;
448
+ var handleClick = function handleClick(additionalDetails) {
449
+ setIsAdditionalDetailsModalOpen(true);
450
+ setAdditionalDetails(additionalDetails);
451
+ };
452
+ var handleClose = function handleClose() {
453
+ setIsAdditionalDetailsModalOpen(false);
454
+ setAdditionalDetails({});
455
+ };
456
+ if (isLoading) {
457
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
458
+ className: "flex h-full w-full items-center justify-center",
459
+ children: /*#__PURE__*/jsxRuntime.jsx(PageLoader, {})
460
+ });
461
+ }
462
+ return /*#__PURE__*/jsxRuntime.jsxs(Container, {
463
+ children: [/*#__PURE__*/jsxRuntime.jsx(Header, {
464
+ title: t("neetoMolecules.auditLogs.title")
465
+ }), /*#__PURE__*/jsxRuntime.jsx(TableWrapper, {
466
+ className: "mt-5",
467
+ hasPagination: totalCount > constants.DEFAULT_PAGE_SIZE,
468
+ children: neetoCist.isPresent(auditLogs) ? /*#__PURE__*/jsxRuntime.jsx(Table, {
469
+ totalCount: totalCount,
470
+ fixedHeight: true,
471
+ columnData: getColumnData(handleClick),
472
+ currentPageNumber: parseInt(page),
473
+ "data-testid": "audit-logs-table",
474
+ defaultPageSize: constants.DEFAULT_PAGE_SIZE,
475
+ loading: isFetching,
476
+ rowData: transformLogsForTable(auditLogs)
477
+ }) : /*#__PURE__*/jsxRuntime.jsx("div", {
478
+ className: "flex h-full w-full items-center justify-center",
479
+ children: /*#__PURE__*/jsxRuntime.jsx(NoData, {
480
+ title: t("neetoMolecules.auditLogs.noData")
481
+ })
482
+ })
483
+ }), /*#__PURE__*/jsxRuntime.jsx(AdditionalDetails, {
484
+ additionalDetails: additionalDetails,
485
+ isOpen: isAdditionalDetailsModalOpen,
486
+ onClose: handleClose
487
+ })]
488
+ });
489
+ };
490
+
491
+ module.exports = AuditLogs;
492
+ //# 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,IAAMA,cAAc,GAAG,SAAjBA,cAAcA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAMC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,KAAK,GAAAF,IAAA,CAALE,KAAK,CAAA;EAAA,oBACpCC,cAAA,CAACC,UAAU,EAAA;AAACC,IAAAA,SAAS,EAAC,MAAM;AAACC,IAAAA,KAAK,EAAC,OAAO;IAAAC,QAAA,eACxCJ,cAAA,CAACK,kBAAK,EAAA;AACJC,MAAAA,UAAU,EAAE;QAAEC,MAAM,eAAEP,cAAA,CAAS,QAAA,EAAA,EAAA,CAAA;OAAI;AACnCQ,MAAAA,OAAO,EAAAC,6CAAAA,CAAAA,MAAA,CAAgDX,KAAK,CAAG;AAC/DY,MAAAA,MAAM,EAAE;AAAEX,QAAAA,KAAK,EAALA,KAAAA;AAAM,OAAA;KACjB,CAAA;AAAC,GACQ,CAAC,CAAA;AAAA,CACd;;ACTM,IAAMY,YAAY,GAAG;AAC1B,EAAA,UAAU,EAAE,YAAY;AACxB,EAAA,UAAU,EAAE,YAAY;AACxB,EAAA,UAAU,EAAE,YAAA;AACd,CAAC,CAAA;AAEM,IAAMC,YAAY,GAAG;AAC1BC,EAAAA,eAAe,EAAE,eAAe;AAChCC,EAAAA,aAAa,EAAE,cAAc;AAC7BC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,iBAAiB,EAAE,kBAAkB;AACrCC,EAAAA,eAAe,EAAE,SAAS;AAC1BC,EAAAA,iBAAiB,EAAE,kBAAkB;AACrCC,EAAAA,mBAAmB,EAAE,oBAAA;AACvB,CAAC,CAAA;AAEM,IAAMC,wBAAwB,GAAG,CACtC;AACEC,EAAAA,KAAK,EAAEC,SAAC,CAAC,+CAA+C,CAAC;AACzDC,EAAAA,GAAG,EAAE,OAAO;AACZC,EAAAA,SAAS,EAAE,OAAA;AACb,CAAC,CACF,CAAA;AAEM,IAAMC,qBAAqB,GAAG,CACnC;AACEJ,EAAAA,KAAK,EAAEC,SAAC,CAAC,kDAAkD,CAAC;AAC5DC,EAAAA,GAAG,EAAE,OAAO;AACZC,EAAAA,SAAS,EAAE,OAAA;AACb,CAAC,EACD;AACEH,EAAAA,KAAK,EAAEC,SAAC,CAAC,iDAAiD,CAAC;AAC3DC,EAAAA,GAAG,EAAE,MAAM;AACXC,EAAAA,SAAS,EAAE,MAAA;AACb,CAAC,EACD;AACEH,EAAAA,KAAK,EAAEC,SAAC,CAAC,+CAA+C,CAAC;AACzDC,EAAAA,GAAG,EAAE,IAAI;AACTC,EAAAA,SAAS,EAAE,IAAA;AACb,CAAC,CACF;;ACrCD,IAAME,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAG3B,KAAK,EAAI;EACjC,IAAIA,KAAK,KAAK,IAAI,EAAE;IAClB,OAAOuB,SAAC,CAAC,iDAAiD,CAAC,CAAA;AAC7D,GAAA;EAEA,IAAIvB,KAAK,KAAK,KAAK,EAAE;IACnB,OAAOuB,SAAC,CAAC,kDAAkD,CAAC,CAAA;AAC9D,GAAA;AAEA,EAAA,IAAIvB,KAAK,KAAK,IAAI,EAAE,OAAO,GAAG,CAAA;AAE9B,EAAA,OAAOA,KAAK,CAAA;AACd,CAAC,CAAA;AAED,IAAM4B,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAGC,aAAa,EAAA;EAAA,OAAIjB,YAAY,CAACiB,aAAa,CAAC,CAAA;AAAA,CAAA,CAAA;AAExE,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,KAAK,EAAE/B,KAAK,EAAA;AAAA,EAAA,OACrC+B,KAAK,KAAK,YAAY,GAClBH,mBAAmB,CAAC5B,KAAK,CAAC,GAC1B2B,iBAAiB,CAAC3B,KAAK,CAAC,CAAA;AAAA,CAAA,CAAA;AAEvB,IAAMgC,YAAY,GAAG,SAAfA,YAAYA,CAAGC,MAAM,EAAA;AAAA,EAAA,OAAIA,MAAM,CAACC,GAAG,CAAC,UAAAC,KAAK,EAAA;IAAA,OAAK;AAAEA,MAAAA,KAAK,EAALA,KAAAA;KAAO,CAAA;AAAA,GAAC,CAAC,CAAA;AAAA,CAAA,CAAA;AAE/D,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAGC,OAAO,EAAA;EAAA,OACpCC,MAAM,CAACC,OAAO,CAACF,OAAO,CAAC,CAACH,GAAG,CAAC,UAAApC,IAAA,EAA2B;AAAA,IAAA,IAAA0C,KAAA,GAAAC,cAAA,CAAA3C,IAAA,EAAA,CAAA,CAAA;AAAzBiC,MAAAA,KAAK,GAAAS,KAAA,CAAA,CAAA,CAAA;AAAAE,MAAAA,MAAA,GAAAF,KAAA,CAAA,CAAA,CAAA;MAAIG,IAAI,GAAAD,MAAA,CAAJC,IAAI;MAAEC,EAAE,GAAAF,MAAA,CAAFE,EAAE,CAAA;AAC7C,IAAA,IAAMC,cAAc,GAAGC,mBAAS,CAACf,KAAK,CAAC,CAAA;IAEvC,OAAO;AACLA,MAAAA,KAAK,EAAEc,cAAc;AACrBF,MAAAA,IAAI,EAAEb,iBAAiB,CAACC,KAAK,EAAEY,IAAI,CAAC;AACpCC,MAAAA,EAAE,EAAEd,iBAAiB,CAACC,KAAK,EAAEa,EAAE,CAAA;KAChC,CAAA;AACH,GAAC,CAAC,CAAA;AAAA,CAAA,CAAA;AAEG,IAAMG,WAAW,GAAG,SAAdA,WAAWA,CAAIC,SAAS,EAAA;AAAA,EAAA,IAAEC,QAAQ,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;EAAA,OAClD,EAAA,CAAAxC,MAAA,CAAGsC,SAAS,EAAA,GAAA,CAAA,CAAAtC,MAAA,CAAIuC,QAAQ,CAAA,CAAGI,IAAI,EAAE,CAAA;AAAA,CAAA,CAAA;AAE5B,IAAMC,QAAQ,GAAG,SAAXA,QAAQA,CAAAC,KAAA,EAAkD;AAAA,EAAA,IAA5CP,SAAS,GAAAO,KAAA,CAATP,SAAS;IAAEC,QAAQ,GAAAM,KAAA,CAARN,QAAQ;IAAEO,gBAAgB,GAAAD,KAAA,CAAhBC,gBAAgB,CAAA;EAC9D,IAAIR,SAAS,IAAIC,QAAQ,EAAE;IACzB,OAAOpC,YAAY,CAACG,IAAI,CAAA;AAC1B,GAAA;AAEA,EAAA,IAAIwC,gBAAgB,EAAE;IACpB,OAAO3C,YAAY,CAACI,iBAAiB,CAAA;AACvC,GAAA;EAEA,OAAOJ,YAAY,CAACK,eAAe,CAAA;AACrC,CAAC,CAAA;AAEM,IAAMuC,0BAA0B,GAAG,SAA7BA,0BAA0BA,CAAAC,KAAA,EAAA;AAAA,EAAA,IAAMf,IAAI,GAAAe,KAAA,CAAJf,IAAI;IAAEC,EAAE,GAAAc,KAAA,CAAFd,EAAE,CAAA;AAAA,EAAA,OAAO,CAC1D;AACEb,IAAAA,KAAK,EAAER,SAAC,CAAC,0DAA0D,CAAC;AACpEoB,IAAAA,IAAI,EAAEb,iBAAiB,CAAC,aAAa,EAAEa,IAAI,CAAC;AAC5CC,IAAAA,EAAE,EAAEd,iBAAiB,CAAC,aAAa,EAAEc,EAAE,CAAA;AACzC,GAAC,CACF,CAAA;AAAA,CAAA,CAAA;AAEM,IAAMe,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAGC,WAAW,EAAA;AAAA,EAAA,OAC7CA,WAAW,CACR1B,GAAG,CAAC,UAAA2B,UAAU,EAAI;AACjB,IAAA,IAAMC,cAAc,GAAGD,UAAU,CAACE,KAAK,CAAC,GAAG,CAAC,CAAC7B,GAAG,CAACY,mBAAS,CAAC,CAAA;AAE3D,IAAA,OAAOgB,cAAc,CAACE,IAAI,CAAC,KAAK,CAAC,CAAA;AACnC,GAAC,CAAC,CACDA,IAAI,CAAC,IAAI,CAAC,CAAA;AAAA,CAAA;;AC5Df,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAnE,IAAA,EAAoB;AAAA,EAAA,IAAdoE,OAAO,GAAApE,IAAA,CAAPoE,OAAO,CAAA;AACjC,EAAA,IAAAC,eAAA,GAAcC,2BAAc,EAAE;IAAtB7C,CAAC,GAAA4C,eAAA,CAAD5C,CAAC,CAAA;AAET,EAAA,IAAA8C,cAAA,GAAgEH,OAAO,CAA/D/B,KAAK;AAALA,IAAAA,KAAK,GAAAkC,cAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,cAAA;IAAAC,gBAAA,GAA8CJ,OAAO,CAAnD7B,OAAO;AAAPA,IAAAA,OAAO,GAAAiC,gBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,gBAAA;IAAAC,qBAAA,GAAgCL,OAAO,CAArCM,YAAY;AAAZA,IAAAA,YAAY,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,qBAAA;IAAEE,MAAM,GAAKP,OAAO,CAAlBO,MAAM,CAAA;AAE3D,EAAA,oBACEC,eAAA,CAAA,KAAA,EAAA;IAAArE,QAAA,EAAA,cACEJ,cAAA,CAACJ,cAAc,EAAA;MAACE,KAAK,EAAEc,YAAY,CAACC,eAAgB;AAACd,MAAAA,KAAK,EAAEmC,KAAAA;AAAM,KAAE,CAAC,EACpEwC,oBAAU,CAACtC,OAAO,CAAC,IAAIoC,MAAM,KAAK,SAAS,gBAC1CxE,cAAA,CAAC2E,KAAK,EAAA;AACJC,MAAAA,UAAU,EAAEnD,qBAAsB;AAClCoD,MAAAA,kBAAkB,EAAE,KAAM;MAC1BC,OAAO,EAAE3C,eAAe,CAACC,OAAO,CAAA;AAAE,KACnC,CAAC,gBAEFpC,cAAA,CAACJ,cAAc,EAAA;MACbE,KAAK,EAAEc,YAAY,CAACE,aAAc;AAClCf,MAAAA,KAAK,EAAEwE,YAAY,IAAIjD,CAAC,CAAC,kCAAkC,CAAA;AAAE,KAC9D,CACF,CAAA;AAAA,GACE,CAAC,CAAA;AAEV,CAAC;;ACvBD,IAAMyD,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAAlF,IAAA,EAAoB;AAAA,EAAA,IAAdoE,OAAO,GAAApE,IAAA,CAAPoE,OAAO,CAAA;AACrC,EAAA,IAAAe,oBAAA,GAKIf,OAAO,CAJTgB,WAAW;AAAXA,IAAAA,WAAW,GAAAD,oBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,oBAAA;IAAAE,qBAAA,GAIdjB,OAAO,CAHTV,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAA2B,qBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,qBAAA;IAAAC,qBAAA,GAGnBlB,OAAO,CAFTmB,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,qBAAA;IAAAE,qBAAA,GAEnBpB,OAAO,CADTqB,kBAAkB;AAAlBA,IAAAA,kBAAkB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,qBAAA,CAAA;AAGzB,EAAA,oBACEZ,eAAA,CAAA,KAAA,EAAA;IAAArE,QAAA,EAAA,cACEJ,cAAA,CAACJ,cAAc,EAAA;MACbE,KAAK,EAAEc,YAAY,CAACI,iBAAkB;AACtCjB,MAAAA,KAAK,EAAEwD,gBAAAA;KACR,CAAC,EACDmB,oBAAU,CAACU,gBAAgB,CAAC,iBAC3BpF,cAAA,CAACJ,cAAc,EAAA;MACbE,KAAK,EAAEc,YAAY,CAACM,iBAAkB;MACtCnB,KAAK,EAAE2D,oBAAoB,CAAC0B,gBAAgB,CAAA;KAC7C,CACF,EACAV,oBAAU,CAACY,kBAAkB,CAAC,iBAC7BtF,cAAA,CAACJ,cAAc,EAAA;MACbE,KAAK,EAAEc,YAAY,CAACO,mBAAoB;MACxCpB,KAAK,EAAE2D,oBAAoB,CAAC4B,kBAAkB,CAAA;KAC/C,CACF,EACAZ,oBAAU,CAACO,WAAW,CAAC,iBACtBjF,cAAA,CAAC2E,KAAK,EAAA;AACJC,MAAAA,UAAU,EAAEnD,qBAAsB;AAClCoD,MAAAA,kBAAkB,EAAE,KAAM;MAC1BC,OAAO,EAAEtB,0BAA0B,CAACyB,WAAW,CAAA;AAAE,KAClD,CACF,CAAA;AAAA,GACE,CAAC,CAAA;AAEV,CAAC;;AClCD,IAAMM,MAAM,GAAG,SAATA,MAAMA,CAAA1F,IAAA,EAAoB;AAAA,EAAA,IAAdoE,OAAO,GAAApE,IAAA,CAAPoE,OAAO,CAAA;AACvB,EAAA,IAAAC,eAAA,GAAcC,2BAAc,EAAE;IAAtB7C,CAAC,GAAA4C,eAAA,CAAD5C,CAAC,CAAA;AAET,EAAA,IAAAkE,eAAA,GAAmDvB,OAAO,CAAlDjC,MAAM;AAANA,IAAAA,MAAM,GAAAwD,eAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,eAAA;IAAEhB,MAAM,GAAwBP,OAAO,CAArCO,MAAM;IAAAF,qBAAA,GAAwBL,OAAO,CAA7BM,YAAY;AAAZA,IAAAA,YAAY,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,qBAAA,CAAA;EAE9C,oBACEtE,cAAA,CAAAyF,mBAAA,EAAA;AAAArF,IAAAA,QAAA,EACGsE,oBAAU,CAAC1C,MAAM,CAAC,IAAIwC,MAAM,KAAK,SAAS,gBACzCxE,cAAA,CAAC2E,KAAK,EAAA;AACJe,MAAAA,OAAO,EAAEtE,wBAAyB;AAClCuE,MAAAA,OAAO,EAAE,KAAM;MACfb,OAAO,EAAE/C,YAAY,CAACC,MAAM,CAAA;AAAE,KAC/B,CAAC,gBAEFhC,cAAA,CAACJ,cAAc,EAAA;MACbE,KAAK,EAAEc,YAAY,CAACE,aAAc;AAClCf,MAAAA,KAAK,EAAEwE,YAAY,IAAIjD,CAAC,CAAC,kCAAkC,CAAA;KAC5D,CAAA;AACF,GACD,CAAC,CAAA;AAEP,CAAC;;AC1BD,IAAMsE,cAAc,GAAG,SAAjBA,cAAcA,CAAA/F,IAAA,EAAoB;AAAA,EAAA,IAAdoE,OAAO,GAAApE,IAAA,CAAPoE,OAAO,CAAA;AAC/B,EAAA,IAAA4B,kBAAA,GAAiE5B,OAAO,CAAhElB,SAAS;AAATA,IAAAA,SAAS,GAAA8C,kBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,kBAAA;IAAAC,iBAAA,GAA2C7B,OAAO,CAAhDjB,QAAQ;AAARA,IAAAA,QAAQ,GAAA8C,iBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,iBAAA;IAAAZ,qBAAA,GAA4BjB,OAAO,CAAjCV,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAA2B,qBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,qBAAA,CAAA;AAE5D,EAAA,IAAMa,IAAI,GAAGjD,WAAW,CAACC,SAAS,EAAEC,QAAQ,CAAC,CAAA;EAC7C,IAAMlD,KAAK,GAAGuD,QAAQ,CAAC;AAAEN,IAAAA,SAAS,EAATA,SAAS;AAAEC,IAAAA,QAAQ,EAARA,QAAQ;AAAEO,IAAAA,gBAAgB,EAAhBA,gBAAAA;AAAiB,GAAC,CAAC,CAAA;EACjE,IAAMxD,KAAK,GAAGgG,IAAI,IAAIxC,gBAAgB,IAAIyC,IAAI,CAACC,SAAS,CAAChC,OAAO,CAAC,CAAA;EAEjE,oBAAOjE,cAAA,CAACJ,cAAc,EAAA;AAAOE,IAAAA,KAAK,EAALA,KAAK;AAAEC,IAAAA,KAAK,EAALA,KAAAA;AAAK,GAAK,CAAC,CAAA;AACjD,CAAC;;ACPM,IAAMmG,oBAAoB,GAAG,YAAY,CAAA;AAEzC,IAAMC,OAAO,GAAG;AACrBC,EAAAA,aAAa,EAAE,cAAc;AAC7BC,EAAAA,cAAc,EAAE,cAAc;AAC9BC,EAAAA,YAAY,EAAE,aAAa;AAC3BC,EAAAA,iBAAiB,EAAE,iBAAiB;AACpCC,EAAAA,oBAAoB,EAAE,oBAAoB;AAC1CC,EAAAA,YAAY,EAAE,aAAa;AAC3BC,EAAAA,YAAY,EAAE,aAAa;AAC3BC,EAAAA,YAAY,EAAE,aAAA;AAChB,CAAC,CAAA;AAEM,IAAMC,uBAAuB,GAAG;AACrCC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,YAAY,EAAE,aAAa;AAC3BC,EAAAA,YAAY,EAAE,aAAa;AAC3BC,EAAAA,OAAO,EAAE,SAAA;AACX,CAAC,CAAA;AAEM,IAAMC,qBAAqB,GAAAC,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAA,EAAA,EAC/Bf,OAAO,CAACC,aAAa,EAAGb,MAAM,CAC9BY,EAAAA,OAAO,CAACI,iBAAiB,EAAGhB,MAAM,GAClCY,OAAO,CAACE,cAAc,EAAGT,cAAc,CAAA,EACvCO,OAAO,CAACG,YAAY,EAAGtC,gBAAgB,CAAA,EACvCmC,OAAO,CAACK,oBAAoB,EAAGxC,gBAAgB,CAC/CmC,EAAAA,OAAO,CAACM,YAAY,EAAGb,cAAc,CACrCO,EAAAA,OAAO,CAACO,YAAY,EAAG3B,oBAAoB,CAAA,EAC3CoB,OAAO,CAACQ,YAAY,EAAGf,cAAc,CACvC;;;;;ACzBD,IAAMuB,eAAe,GAAG,SAAlBA,eAAeA,CAAGC,MAAM,EAAA;EAAA,OAC5BC,0BAAgB,CAACD,MAAM,CAACE,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC,CAAA;AAAA,CAAA,CAAA;AAE3D,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAGC,IAAI,EAAA;AAAA,EAAA,OACvCA,IAAI,CAACvF,GAAG,CACN,UAAApC,IAAA,EAMM;AAAA,IAAA,IALJ4H,EAAE,GAAA5H,IAAA,CAAF4H,EAAE;MACGL,MAAM,GAAAvH,IAAA,CAAX0B,GAAG;MAAAmG,aAAA,GAAA7H,IAAA,CACH8H,QAAQ;MAAInD,MAAM,GAAAkD,aAAA,CAANlD,MAAM;AAAKoD,MAAAA,cAAc,GAAAC,wBAAA,CAAAH,aAAA,EAAAI,WAAA,CAAA;AAAAC,MAAAA,mBAAA,GAAAlI,IAAA,CACrCmI,SAAS,CAAIjC,IAAI;AAAEkC,MAAAA,WAAW,GAAAF,mBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,mBAAA;MACxBG,WAAW,GAAArI,IAAA,CAAtBsI,SAAS,CAAA;AAET,IAAA,IAAMC,iBAAiB,GAAGjB,eAAe,CAACC,MAAM,CAAC,CAAA;AACjD,IAAA,IAAMiB,oBAAoB,GAAGC,gBAAU,CAACC,QAAQ,CAACL,WAAW,CAAC,CAAA;IAE7D,OAAO;AACLT,MAAAA,EAAE,EAAFA,EAAE;AACFL,MAAAA,MAAM,EAAEgB,iBAAiB;AACzB5D,MAAAA,MAAM,EAAEgE,oBAAU,CAAChE,MAAM,CAAC;AAC1B0D,MAAAA,WAAW,EAAEG,oBAAoB;AACjCJ,MAAAA,WAAW,EAAXA,WAAW;AACXQ,MAAAA,iBAAiB,EAAAC,eAAA,CAAAA,eAAA,KACZd,cAAc,CAAA,EAAA,EAAA,EAAA;AACjBR,QAAAA,MAAM,EAAEgB,iBAAiB;AACzBF,QAAAA,WAAW,EAAEG,oBAAoB;AACjCJ,QAAAA,WAAW,EAAXA,WAAW;AACXzD,QAAAA,MAAM,EAANA,MAAAA;AAAM,OAAA,CAAA;KAET,CAAA;AACH,GACF,CAAC,CAAA;AAAA,CAAA,CAAA;AAEI,IAAMmE,aAAa,GAAG,SAAhBA,aAAaA,CAAGC,WAAW,EAAA;AAAA,EAAA,OAAI,CAC1C;AACEvH,IAAAA,KAAK,EAAEC,SAAC,CAAC,+CAA+C,EAAEuH,kBAAQ,CAAC;AACnEtH,IAAAA,GAAG,EAAE,QAAQ;AACbC,IAAAA,SAAS,EAAE,QAAQ;AACnBsH,IAAAA,MAAM,EAAE,SAARA,MAAMA,CAAG1B,MAAM,EAAA7E,KAAA,EAAA;AAAA,MAAA,IAAIkG,iBAAiB,GAAAlG,KAAA,CAAjBkG,iBAAiB,CAAA;MAAA,oBAClCzI,cAAA,CAAC+I,MAAM,EAAA;AACL,QAAA,aAAA,EAAY,oBAAoB;AAChCjJ,QAAAA,KAAK,EAAEwB,SAAC,CAAA,mCAAA,CAAAb,MAAA,CAAqC2G,MAAM,CAAE,CAAE;AACvDjH,QAAAA,KAAK,EAAC,MAAM;QACZ6I,OAAO,EAAE,SAATA,OAAOA,GAAA;UAAA,OAAQJ,WAAW,CAACH,iBAAiB,CAAC,CAAA;AAAA,SAAA;AAAC,OAC/C,CAAC,CAAA;AAAA,KAAA;AAEN,GAAC,EACD;AACEpH,IAAAA,KAAK,EAAEC,SAAC,CAAC,+CAA+C,CAAC;AACzDC,IAAAA,GAAG,EAAE,QAAQ;AACbC,IAAAA,SAAS,EAAE,QAAA;AACb,GAAC,EACD;AACEH,IAAAA,KAAK,EAAEC,SAAC,CAAC,oDAAoD,CAAC;AAC9DC,IAAAA,GAAG,EAAE,aAAa;AAClBC,IAAAA,SAAS,EAAE,aAAA;AACb,GAAC,EACD;AACEH,IAAAA,KAAK,EAAEC,SAAC,CAAC,oDAAoD,CAAC;AAC9DC,IAAAA,GAAG,EAAE,aAAa;AAClBC,IAAAA,SAAS,EAAE,aAAA;AACb,GAAC,CACF,CAAA;AAAA,CAAA,CAAA;AAEM,IAAMyH,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAG7B,MAAM,EAAA;AAAA,EAAA,OACzCH,qBAAqB,CAACG,MAAM,CAAC,IAAIxB,cAAc,CAAA;AAAA,CAAA;;;ACjEjD,IAAMsD,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAArJ,IAAA,EAA+C;AAAA,EAAA,IAAzC4I,iBAAiB,GAAA5I,IAAA,CAAjB4I,iBAAiB;IAAEU,MAAM,GAAAtJ,IAAA,CAANsJ,MAAM;IAAEC,OAAO,GAAAvJ,IAAA,CAAPuJ,OAAO,CAAA;AAC7D,EAAA,IAAAlF,eAAA,GAAcC,2BAAc,EAAE;IAAtB7C,CAAC,GAAA4C,eAAA,CAAD5C,CAAC,CAAA;AAET,EAAA,IACE+H,OAAO,GAMLZ,iBAAiB,CANnBY,OAAO;IACCC,aAAa,GAKnBb,iBAAiB,CALnBrB,MAAM;IACNa,WAAW,GAITQ,iBAAiB,CAJnBR,WAAW;IACXC,WAAW,GAGTO,iBAAiB,CAHnBP,WAAW;IACNqB,OAAO,GAEVd,iBAAiB,CAFnBe,GAAG;AACAvF,IAAAA,OAAO,GAAA4D,wBAAA,CACRY,iBAAiB,EAAAX,SAAA,CAAA,CAAA;EAErB,IAAMV,MAAM,GACViC,OAAO,IAAI/H,CAAC,qCAAAb,MAAA,CAAqC6I,aAAa,CAAE,CAAC,CAAA;AAEnE,EAAA,IAAMG,eAAe,GAAGR,qBAAqB,CAACK,aAAa,CAAC,CAAA;EAE5D,oBACE7E,eAAA,CAACiF,KAAK,EAAA;AACEP,IAAAA,MAAM,EAANA,MAAM;AAAEC,IAAAA,OAAO,EAAPA,OAAO;AACrB,IAAA,aAAA,EAAY,0BAA0B;AACtCO,IAAAA,IAAI,EAAC,OAAO;AAAAvJ,IAAAA,QAAA,EAEZJ,cAAAA,cAAA,CAAC0J,KAAK,CAACE,MAAM,EAAA;MAAAxJ,QAAA,eACXJ,cAAA,CAACC,UAAU,EAAA;AAACE,QAAAA,KAAK,EAAC,IAAI;QAAAC,QAAA,EACnBkB,CAAC,CAAC,kDAAkD,CAAA;OAC3C,CAAA;AAAC,KACD,CAAC,eACftB,cAAA,CAAC0J,KAAK,CAACG,IAAI,EAAA;MAAAzJ,QAAA,eACTqE,eAAA,CAAAgB,mBAAA,EAAA;QAAArF,QAAA,EAAA,cACEJ,cAAA,CAACJ,cAAc,EAAA;UACbE,KAAK,EAAE8G,uBAAuB,CAACC,MAAO;AACtC9G,UAAAA,KAAK,EAAEqH,MAAAA;AAAO,SACf,CAAC,eACFpH,cAAA,CAACJ,cAAc,EAAA;UACbE,KAAK,EAAE8G,uBAAuB,CAACE,YAAa;AAC5C/G,UAAAA,KAAK,EAAEkI,WAAAA;AAAY,SACpB,CAAC,eACFjI,cAAA,CAACJ,cAAc,EAAA;UACbE,KAAK,EAAE8G,uBAAuB,CAACG,YAAa;AAC5ChH,UAAAA,KAAK,EAAEmI,WAAAA;AAAY,SACpB,CAAC,eACFlI,cAAA,CAACJ,cAAc,EAAA;UACbE,KAAK,EAAE8G,uBAAuB,CAACI,OAAQ;UACvCjH,KAAK,EAAE+J,qBAAW,CAACP,OAAO,CAAA;AAAE,SAC7B,CAAC,eACFvJ,cAAA,CAACyJ,eAAe,EAAA;AAAOxF,UAAAA,OAAO,EAAPA,OAAAA;AAAO,SAAK,CAAC,CAAA;OACpC,CAAA;AAAC,KACO,CAAC,CAAA;AAAA,GACR,CAAC,CAAA;AAEZ,CAAC;;ACzDD,IAAM8F,cAAc,GAAG,SAAjBA,cAAcA,CAAGC,MAAM,EAAA;AAAA,EAAA,OAAIC,KAAK,CAACC,GAAG,CAAC,mBAAmB,EAAE;AAAEF,IAAAA,MAAM,EAANA,MAAAA;AAAO,GAAC,CAAC,CAAA;AAAA,CAAA,CAAA;AAE3E,IAAMG,YAAY,GAAG;AAAEJ,EAAAA,cAAc,EAAdA,cAAAA;AAAe,CAAC;;;;ACChC,IAAMK,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAvK,IAAA,EAAA;AAAA,EAAA,IAAMmK,MAAM,GAAAnK,IAAA,CAANmK,MAAM;IAAAK,YAAA,GAAAxK,IAAA,CAAEyK,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,YAAA,CAAA;EAAA,OACtDE,mBAAQ,CAAA7B,aAAA,CAAA;AACN8B,IAAAA,QAAQ,EAAE,CAACtE,oBAAoB,EAAE8D,MAAM,CAAC;IACxCS,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,MAAA,OAAQN,YAAY,CAACJ,cAAc,CAACC,MAAM,CAAC,CAAA;AAAA,KAAA;GAC/CM,EAAAA,OAAO,CACX,CAAC,CAAA;AAAA,CAAA;;ACOJ,IAAMI,SAAS,GAAG,SAAZA,SAASA,GAAS;AACtB,EAAA,IAAAC,SAAA,GACEC,cAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAArI,cAAA,CAAAmI,SAAA,EAAA,CAAA,CAAA;AADVG,IAAAA,4BAA4B,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,+BAA+B,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAEpE,EAAA,IAAAG,UAAA,GAAkDJ,cAAQ,CAAC,EAAE,CAAC;IAAAK,UAAA,GAAAzI,cAAA,CAAAwI,UAAA,EAAA,CAAA,CAAA;AAAvDvC,IAAAA,iBAAiB,GAAAwC,UAAA,CAAA,CAAA,CAAA;AAAEC,IAAAA,oBAAoB,GAAAD,UAAA,CAAA,CAAA,CAAA,CAAA;AAE9C,EAAA,IAAA/G,eAAA,GAAcC,2BAAc,EAAE;IAAtB7C,CAAC,GAAA4C,eAAA,CAAD5C,CAAC,CAAA;AAET,EAAA,IAAA6J,eAAA,GAAsCC,yBAAc,EAAE;IAAAC,oBAAA,GAAAF,eAAA,CAA9CG,IAAI;AAAJA,IAAAA,IAAI,GAAAD,oBAAA,KAAGE,KAAAA,CAAAA,GAAAA,4BAAkB,GAAAF,oBAAA,CAAA;EAEjC,IAAAG,kBAAA,GAIIpB,iBAAiB,CAAC;AAAEJ,MAAAA,MAAM,EAAE;AAAEsB,QAAAA,IAAI,EAAJA,IAAAA;AAAK,OAAA;AAAE,KAAC,CAAC;IAAAG,qBAAA,GAAAD,kBAAA,CAHzCE,IAAI;AAAAC,IAAAA,sBAAA,GAAAF,qBAAA,KAAA,KAAA,CAAA,GAAuC,EAAE,GAAAA,qBAAA;IAAAG,sBAAA,GAAAD,sBAAA,CAArCE,SAAS;AAATA,IAAAA,SAAS,GAAAD,sBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,sBAAA;IAAAE,sBAAA,GAAAH,sBAAA,CAAEI,UAAU;AAAVA,IAAAA,UAAU,GAAAD,sBAAA,KAAG,KAAA,CAAA,GAAA,CAAC,GAAAA,sBAAA;IACtCE,SAAS,GAAAR,kBAAA,CAATQ,SAAS;IACTC,UAAU,GAAAT,kBAAA,CAAVS,UAAU,CAAA;AAGZ,EAAA,IAAMrD,WAAW,GAAG,SAAdA,WAAWA,CAAGH,iBAAiB,EAAI;IACvCsC,+BAA+B,CAAC,IAAI,CAAC,CAAA;IACrCG,oBAAoB,CAACzC,iBAAiB,CAAC,CAAA;GACxC,CAAA;AAED,EAAA,IAAMyD,WAAW,GAAG,SAAdA,WAAWA,GAAS;IACxBnB,+BAA+B,CAAC,KAAK,CAAC,CAAA;IACtCG,oBAAoB,CAAC,EAAE,CAAC,CAAA;GACzB,CAAA;AAED,EAAA,IAAIc,SAAS,EAAE;AACb,IAAA,oBACEhM,cAAA,CAAA,KAAA,EAAA;AAAKE,MAAAA,SAAS,EAAC,gDAAgD;AAAAE,MAAAA,QAAA,eAC7DJ,cAAA,CAACmM,UAAU,EAAE,EAAA,CAAA;AAAC,KACX,CAAC,CAAA;AAEV,GAAA;EAEA,oBACE1H,eAAA,CAAC2H,SAAS,EAAA;IAAAhM,QAAA,EAAA,cACRJ,cAAA,CAAC4J,MAAM,EAAA;MAACvI,KAAK,EAAEC,CAAC,CAAC,gCAAgC,CAAA;AAAE,KAAE,CAAC,eACtDtB,cAAA,CAACqM,YAAY,EAAA;AACXnM,MAAAA,SAAS,EAAC,MAAM;MAChBoM,aAAa,EAAEP,UAAU,GAAGQ,2BAAkB;MAAAnM,QAAA,EAE7CoM,mBAAS,CAACX,SAAS,CAAC,gBACnB7L,cAAA,CAAC2E,KAAK,EAAA;AACEoH,QAAAA,UAAU,EAAVA,UAAU;QAChBU,WAAW,EAAA,IAAA;AACX7H,QAAAA,UAAU,EAAE+D,aAAa,CAACC,WAAW,CAAE;AACvC8D,QAAAA,iBAAiB,EAAEC,QAAQ,CAACrB,IAAI,CAAE;AAClC,QAAA,aAAA,EAAY,kBAAkB;AAC9BsB,QAAAA,eAAe,EAAEL,2BAAkB;AACnC5G,QAAAA,OAAO,EAAEsG,UAAW;QACpBnH,OAAO,EAAEyC,qBAAqB,CAACsE,SAAS,CAAA;OACzC,CAAC,gBAEF7L,cAAA,CAAA,KAAA,EAAA;AAAKE,QAAAA,SAAS,EAAC,gDAAgD;QAAAE,QAAA,eAC7DJ,cAAA,CAAC6M,MAAM,EAAA;UAACxL,KAAK,EAAEC,CAAC,CAAC,iCAAiC,CAAA;SAAI,CAAA;OACnD,CAAA;AACN,KACW,CAAC,eACftB,cAAA,CAACkJ,iBAAiB,EAAA;AACVT,MAAAA,iBAAiB,EAAjBA,iBAAiB;AACvBU,MAAAA,MAAM,EAAE2B,4BAA6B;AACrC1B,MAAAA,OAAO,EAAE8C,WAAAA;AAAY,KACtB,CAAC,CAAA;AAAA,GACO,CAAC,CAAA;AAEhB;;;;"}
@@ -36,7 +36,7 @@ var PageLoader = function PageLoader(_ref) {
36
36
  })
37
37
  }));
38
38
  };
39
- var index = /*#__PURE__*/React.memo(PageLoader);
39
+ var PageLoader$1 = /*#__PURE__*/React.memo(PageLoader);
40
40
 
41
- module.exports = index;
41
+ module.exports = PageLoader$1;
42
42
  //# sourceMappingURL=PageLoader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PageLoader.js","sources":["../../src/components/PageLoader/index.jsx"],"sourcesContent":["import { memo } from \"react\";\n\nimport { Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nimport \"./page-loader.scss\";\n\n// Please update the https://github.com/bigbinary/neeto-commons-backend/blob/main/app/views/shared/_page_loader.html.erb#L1\n// whenever there are some changes in the JSX.\n// Styles changes will be handled by the release process.\nconst PageLoader = ({ text = \"\", ...otherProps }) => (\n <div className=\"neeto-molecules-pageloader__wrapper\" {...otherProps}>\n <div className=\"neeto-molecules-pageloader neeto-ui-flex neeto-ui-flex-col neeto-ui-items-center neeto-ui-justify-center\">\n <div\n className=\"neeto-molecules-pageloader__content neeto-ui-flex neeto-ui-flex-shrink-0 neeto-ui-items-center neeto-ui-justify-center\"\n data-cy=\"neeto-molecules-pageloader\"\n >\n <div className=\"neeto-molecules-pageloader__loader\" />\n </div>\n {text && (\n <Typography style=\"h5\" weight=\"semibold\">\n {text}\n </Typography>\n )}\n </div>\n </div>\n);\n\nPageLoader.propTypes = {\n /**\n * Text to indicate loading status (optional).\n */\n text: PropTypes.string,\n};\n\nexport default memo(PageLoader);\n"],"names":["PageLoader","_ref","_ref$text","text","otherProps","_objectWithoutProperties","_excluded","_jsx","_objectSpread","className","children","_jsxs","Typography","style","weight","memo"],"mappings":";;;;;;;;;;;;;;;AAUA,IAAMA,UAAU,GAAG,SAAbA,UAAUA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAAC,SAAA,GAAAD,IAAA,CAAME,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,SAAA;AAAKE,IAAAA,UAAU,GAAAC,wBAAA,CAAAJ,IAAA,EAAAK,SAAA,CAAA,CAAA;AAAA,EAAA,oBAC5CC,cAAA,CAAA,KAAA,EAAAC,aAAA,CAAAA,aAAA,CAAA;AAAKC,IAAAA,SAAS,EAAC,qCAAA;AAAqC,GAAA,EAAKL,UAAU,CAAA,EAAA,EAAA,EAAA;AAAAM,IAAAA,QAAA,eACjEC,eAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,SAAS,EAAC,0GAA0G;AAAAC,MAAAA,QAAA,gBACvHH,cAAA,CAAA,KAAA,EAAA;AACEE,QAAAA,SAAS,EAAC,wHAAwH;AAClI,QAAA,SAAA,EAAQ,4BAA4B;AAAAC,QAAAA,QAAA,eAEpCH,cAAA,CAAA,KAAA,EAAA;AAAKE,UAAAA,SAAS,EAAC,oCAAA;SAAsC,CAAA;AAAC,OACnD,CAAC,EACLN,IAAI,iBACHI,cAAA,CAACK,UAAU,EAAA;AAACC,QAAAA,KAAK,EAAC,IAAI;AAACC,QAAAA,MAAM,EAAC,UAAU;AAAAJ,QAAAA,QAAA,EACrCP,IAAAA;AAAI,OACK,CACb,CAAA;KACE,CAAA;AAAC,GAAA,CACH,CAAC,CAAA;AAAA,CACP,CAAA;AASD,YAAeY,aAAAA,UAAI,CAACf,UAAU,CAAC;;;;"}
1
+ {"version":3,"file":"PageLoader.js","sources":["../../src/components/PageLoader/index.jsx"],"sourcesContent":["import { memo } from \"react\";\n\nimport { Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nimport \"./page-loader.scss\";\n\n// Please update the https://github.com/bigbinary/neeto-commons-backend/blob/main/app/views/shared/_page_loader.html.erb#L1\n// whenever there are some changes in the JSX.\n// Styles changes will be handled by the release process.\nconst PageLoader = ({ text = \"\", ...otherProps }) => (\n <div className=\"neeto-molecules-pageloader__wrapper\" {...otherProps}>\n <div className=\"neeto-molecules-pageloader neeto-ui-flex neeto-ui-flex-col neeto-ui-items-center neeto-ui-justify-center\">\n <div\n className=\"neeto-molecules-pageloader__content neeto-ui-flex neeto-ui-flex-shrink-0 neeto-ui-items-center neeto-ui-justify-center\"\n data-cy=\"neeto-molecules-pageloader\"\n >\n <div className=\"neeto-molecules-pageloader__loader\" />\n </div>\n {text && (\n <Typography style=\"h5\" weight=\"semibold\">\n {text}\n </Typography>\n )}\n </div>\n </div>\n);\n\nPageLoader.propTypes = {\n /**\n * Text to indicate loading status (optional).\n */\n text: PropTypes.string,\n};\n\nexport default memo(PageLoader);\n"],"names":["PageLoader","_ref","_ref$text","text","otherProps","_objectWithoutProperties","_excluded","_jsx","_objectSpread","className","children","_jsxs","Typography","style","weight","memo"],"mappings":";;;;;;;;;;;;;;;AAUA,IAAMA,UAAU,GAAG,SAAbA,UAAUA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAAC,SAAA,GAAAD,IAAA,CAAME,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,SAAA;AAAKE,IAAAA,UAAU,GAAAC,wBAAA,CAAAJ,IAAA,EAAAK,SAAA,CAAA,CAAA;AAAA,EAAA,oBAC5CC,cAAA,CAAA,KAAA,EAAAC,aAAA,CAAAA,aAAA,CAAA;AAAKC,IAAAA,SAAS,EAAC,qCAAA;AAAqC,GAAA,EAAKL,UAAU,CAAA,EAAA,EAAA,EAAA;AAAAM,IAAAA,QAAA,eACjEC,eAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,SAAS,EAAC,0GAA0G;AAAAC,MAAAA,QAAA,gBACvHH,cAAA,CAAA,KAAA,EAAA;AACEE,QAAAA,SAAS,EAAC,wHAAwH;AAClI,QAAA,SAAA,EAAQ,4BAA4B;AAAAC,QAAAA,QAAA,eAEpCH,cAAA,CAAA,KAAA,EAAA;AAAKE,UAAAA,SAAS,EAAC,oCAAA;SAAsC,CAAA;AAAC,OACnD,CAAC,EACLN,IAAI,iBACHI,cAAA,CAACK,UAAU,EAAA;AAACC,QAAAA,KAAK,EAAC,IAAI;AAACC,QAAAA,MAAM,EAAC,UAAU;AAAAJ,QAAAA,QAAA,EACrCP,IAAAA;AAAI,OACK,CACb,CAAA;KACE,CAAA;AAAC,GAAA,CACH,CAAC,CAAA;AAAA,CACP,CAAA;AASD,mBAAeY,aAAAA,UAAI,CAACf,UAAU,CAAC;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-molecules",
3
- "version": "3.8.3",
3
+ "version": "3.9.0",
4
4
  "description": "A package of reusable molecular components for neeto products.",
5
5
  "repository": "git@github.com:bigbinary/neeto-molecules.git",
6
6
  "author": "Amaljith K <amaljith.k@bigbinary.com>",