@bigbinary/neeto-molecules 4.1.12 → 4.1.14
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/dist/AuditLogs.js +20 -7
- package/dist/AuditLogs.js.map +1 -1
- package/dist/cjs/AuditLogs.js +18 -5
- package/dist/cjs/AuditLogs.js.map +1 -1
- package/package.json +1 -1
- package/src/translations/ar.json +2 -2
- package/src/translations/bg.json +2 -2
- package/src/translations/ca.json +2 -2
- package/src/translations/cs.json +2 -2
- package/src/translations/da.json +2 -2
- package/src/translations/de.json +2 -2
- package/src/translations/en.json +1 -0
- package/src/translations/es-MX.json +2 -2
- package/src/translations/es.json +2 -2
- package/src/translations/et.json +2 -2
- package/src/translations/fi.json +2 -2
- package/src/translations/fil.json +2 -2
- package/src/translations/fr.json +2 -2
- package/src/translations/he.json +2 -2
- package/src/translations/hi.json +2 -2
- package/src/translations/hr.json +2 -2
- package/src/translations/hu.json +2 -2
- package/src/translations/id.json +2 -2
- package/src/translations/it.json +2 -2
- package/src/translations/ja.json +2 -2
- package/src/translations/ko.json +2 -2
- package/src/translations/nl.json +2 -2
- package/src/translations/pl.json +2 -2
- package/src/translations/pt-BR.json +2 -2
- package/src/translations/pt.json +2 -2
- package/src/translations/ro.json +2 -2
- package/src/translations/ru.json +2 -2
- package/src/translations/sk.json +2 -2
- package/src/translations/sl.json +2 -2
- package/src/translations/sv.json +2 -2
- package/src/translations/th.json +2 -2
- package/src/translations/tr.json +2 -2
- package/src/translations/uk.json +2 -2
- package/src/translations/vi.json +2 -2
- package/src/translations/zh-CN.json +2 -2
- package/src/translations/zh-TW.json +2 -2
package/dist/AuditLogs.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
2
|
import { useMemo, createElement } from 'react';
|
|
3
|
-
import { snakeToCamelCase, isPresent, isNotEmpty, humanize } from '@bigbinary/neeto-cist';
|
|
3
|
+
import { snakeToCamelCase, isPresent, isNotEmpty, isEmpty, humanize } from '@bigbinary/neeto-cist';
|
|
4
4
|
import { LANGUAGE_OPTIONS, DEFAULT_STALE_TIME, DEFAULT_PAGE_INDEX } from '@bigbinary/neeto-commons-frontend/constants';
|
|
5
5
|
import { useQueryParams } from '@bigbinary/neeto-commons-frontend/react-utils';
|
|
6
6
|
import NoData from '@bigbinary/neetoui/NoData';
|
|
@@ -23,7 +23,7 @@ import GoogleCalendar from '@bigbinary/neeto-icons/misc/GoogleCalendar';
|
|
|
23
23
|
import Zoom from '@bigbinary/neeto-icons/misc/Zoom';
|
|
24
24
|
import Stripe from '@bigbinary/neeto-icons/misc/Stripe';
|
|
25
25
|
import StripeTypeface from '@bigbinary/neeto-icons/misc/StripeTypeface';
|
|
26
|
-
import { indexBy, prop, identity } from 'ramda';
|
|
26
|
+
import { indexBy, prop, omit, identity } from 'ramda';
|
|
27
27
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
28
28
|
import { globalProps } from '@bigbinary/neeto-commons-frontend/initializers';
|
|
29
29
|
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
@@ -247,12 +247,23 @@ var constructAuditLogText = function constructAuditLogText(_ref3) {
|
|
|
247
247
|
}
|
|
248
248
|
case ACTIONS.UPDATED_USER:
|
|
249
249
|
{
|
|
250
|
+
var _changes$active;
|
|
251
|
+
var affectedUser = email || "user";
|
|
252
|
+
var isUserDeactivated = (changes === null || changes === void 0 || (_changes$active = changes.active) === null || _changes$active === void 0 ? void 0 : _changes$active.to) === false;
|
|
253
|
+
var otherChanges = isUserDeactivated ? omit(["active"], changes) : changes;
|
|
254
|
+
var removedText = isUserDeactivated ? /*#__PURE__*/jsx(Trans, {
|
|
255
|
+
additionalValues: {
|
|
256
|
+
performedBy: performedBy,
|
|
257
|
+
affectedUser: affectedUser
|
|
258
|
+
},
|
|
259
|
+
i18nKey: "neetoMolecules.auditLogs.text.removedUser"
|
|
260
|
+
}) : null;
|
|
261
|
+
if (isUserDeactivated && isEmpty(otherChanges)) return removedText;
|
|
250
262
|
var changedFields = formatChangedFields({
|
|
251
|
-
changes:
|
|
263
|
+
changes: otherChanges,
|
|
252
264
|
countriesMap: countriesMap
|
|
253
265
|
});
|
|
254
|
-
var
|
|
255
|
-
return /*#__PURE__*/jsx(Trans, {
|
|
266
|
+
var updatedUserText = /*#__PURE__*/jsx(Trans, {
|
|
256
267
|
additionalComponents: {
|
|
257
268
|
ChangedFields: /*#__PURE__*/jsx(Fragment, {
|
|
258
269
|
children: changedFields
|
|
@@ -260,11 +271,13 @@ var constructAuditLogText = function constructAuditLogText(_ref3) {
|
|
|
260
271
|
},
|
|
261
272
|
additionalValues: {
|
|
262
273
|
performedBy: performedBy,
|
|
263
|
-
affectedUser: affectedUser
|
|
264
|
-
changedFields: changedFields
|
|
274
|
+
affectedUser: affectedUser
|
|
265
275
|
},
|
|
266
276
|
i18nKey: "neetoMolecules.auditLogs.text.updatedUser"
|
|
267
277
|
});
|
|
278
|
+
return removedText ? /*#__PURE__*/jsxs(Fragment, {
|
|
279
|
+
children: [removedText, " ", updatedUserText]
|
|
280
|
+
}) : updatedUserText;
|
|
268
281
|
}
|
|
269
282
|
case ACTIONS.BULK_UPDATE_USERS:
|
|
270
283
|
{
|
package/dist/AuditLogs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuditLogs.js","sources":["../src/components/AuditLogs/constants.js","../src/components/AuditLogs/Trans.jsx","../src/components/AuditLogs/utils.jsx","../src/components/AuditLogs/Card.jsx","../src/components/AuditLogs/api.js","../src/components/AuditLogs/useAuditLogsApi.js","../src/components/AuditLogs/useCountriesApi.js","../src/components/AuditLogs/usePermissionsApi.js","../src/components/AuditLogs/index.jsx"],"sourcesContent":["import { LANGUAGE_OPTIONS } from \"neetocommons/constants\";\nimport {\n User,\n UserAdd,\n UserCircle,\n UserRemove,\n UserSettings,\n CustomDomain,\n ApiKeys,\n} from \"neetoicons\";\nimport { GoogleCalendar, Zoom, Stripe, StripeTypeface } from \"neetoicons/misc\";\nimport { indexBy, prop } from \"ramda\";\n\nexport const AUDIT_LOGS_QUERY_KEY = \"audit-logs\";\nexport const COUNTRIES_LIST_QUERY_KEY = \"countries-list\"; // Same key as that used in \"neeto-team-members\" for cache reuse.\nexport const PERMISSIONS_LIST_QUERY_KEY = \"neeto-team-members-permissions\"; // Same key as that used in \"neeto-team-members\" for cache reuse.\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 CONNECTED_GOOGLE_CALENDER: \"connectedGoogleCalendar\",\n DISCONNECTED_GOOGLE_CALENDER: \"disconnectedGoogleCalendar\",\n CONNECTED_STRIPE_ACCOUNT: \"connectedStripeAccount\",\n DISCONNECTED_STRIPE_ACCOUNT: \"disconnectedStripeAccount\",\n CONNECTED_ZOOM_INTEGRATION: \"connectedZoomIntegration\",\n DISCONNECTED_ZOOM_INTEGRATION: \"disconnectedZoomIntegration\",\n CONNECTED_CUSTOM_DOMAIN: \"connectedCustomDomain\",\n CREATED_API_KEY: \"createdApiKey\",\n DELETED_API_KEY: \"deletedApiKey\",\n UPDATED_API_KEY: \"updatedApiKey\",\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 AUDIT_ICON_MAP = {\n [ACTIONS.INVITED_USERS]: UserCircle,\n [ACTIONS.USER_SIGNED_UP]: UserAdd,\n [ACTIONS.UPDATED_USER]: User,\n [ACTIONS.BULK_UPDATE_USERS]: User,\n [ACTIONS.UPDATED_USER_PROFILE]: UserSettings,\n [ACTIONS.CREATED_ROLE]: UserAdd,\n [ACTIONS.UPDATED_ROLE]: UserSettings,\n [ACTIONS.DELETED_ROLE]: UserRemove,\n [ACTIONS.CONNECTED_GOOGLE_CALENDER]: GoogleCalendar,\n [ACTIONS.DISCONNECTED_GOOGLE_CALENDER]: GoogleCalendar,\n [ACTIONS.CONNECTED_STRIPE_ACCOUNT]: StripeTypeface,\n [ACTIONS.DISCONNECTED_STRIPE_ACCOUNT]: Stripe,\n [ACTIONS.CONNECTED_ZOOM_INTEGRATION]: Zoom,\n [ACTIONS.DISCONNECTED_ZOOM_INTEGRATION]: Zoom,\n [ACTIONS.CONNECTED_CUSTOM_DOMAIN]: CustomDomain,\n [ACTIONS.CREATED_API_KEY]: ApiKeys,\n [ACTIONS.DELETED_API_KEY]: ApiKeys,\n [ACTIONS.UPDATED_API_KEY]: ApiKeys,\n};\n\nexport const AUDIT_LOGS_PAGE_SIZE = 12;\n\nexport const LANGUAGE_OPTIONS_MAP = indexBy(prop(\"value\"), LANGUAGE_OPTIONS);\n\nexport const DATE_FORMAT_OPTIONS_MAP = {\n \"%m/%d/%Y\": \"MM/DD/YYYY\",\n \"%d/%m/%Y\": \"DD/MM/YYYY\",\n \"%Y/%m/%d\": \"YYYY/MM/DD\",\n};\n\nexport const FIELD_NAME_MAP = { organizationRole: \"role\" };\n","import { globalProps } from \"neetocommons/initializers\";\nimport { Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { Trans as ReactTrans } from \"react-i18next\";\n\nconst Trans = ({\n i18nKey,\n additionalValues = {},\n additionalComponents = {},\n}) => (\n <ReactTrans\n {...{ i18nKey }}\n components={{\n Code: (\n <Typography\n className=\"neeto-ui-rounded-md neeto-ui-bg-gray-100 p-1\"\n component=\"code\"\n style=\"body3\"\n />\n ),\n Semibold: (\n <Typography\n className=\"n inline-block text-sm font-medium\"\n component=\"p\"\n />\n ),\n ...additionalComponents,\n }}\n values={{\n productSuffix: globalProps.appName,\n ...additionalValues,\n }}\n />\n);\n\nTrans.propTypes = {\n i18nKey: PropTypes.string.isRequired,\n additionalValues: PropTypes.object,\n additionalComponents: PropTypes.objectOf(PropTypes.element),\n};\n\nexport default Trans;\n","import { snakeToCamelCase, isNotEmpty, isPresent, humanize } from \"neetocist\";\nimport { identity, indexBy, prop } from \"ramda\";\n\nimport {\n ACTIONS,\n DATE_FORMAT_OPTIONS_MAP,\n FIELD_NAME_MAP,\n LANGUAGE_OPTIONS_MAP,\n} from \"./constants\";\nimport Trans from \"./Trans\";\n\nconst formatFieldName = field => FIELD_NAME_MAP[field] || humanize(field);\n\nconst createFieldValueFormatter = ({ field, countriesMap }) => {\n switch (field) {\n case \"language\":\n return value => LANGUAGE_OPTIONS_MAP[value]?.label || value;\n case \"dateFormat\":\n return value => DATE_FORMAT_OPTIONS_MAP[value] || value;\n case \"countryIdentifier\":\n return value => countriesMap[value]?.name || value;\n default:\n return identity;\n }\n};\n\nconst formatChangedFields = ({ changes, countriesMap }) => {\n const fields = Object.keys(changes).map((field, index) => {\n const change = changes[field];\n const valueFormatter = createFieldValueFormatter({ field, countriesMap });\n let element;\n\n if (field === \"profileImage\") {\n element = (\n <span key={field}>\n <Trans\n additionalValues={{ field: formatFieldName(field) }}\n i18nKey=\"neetoMolecules.auditLogs.text.updatedFields\"\n />\n </span>\n );\n } else if (change && isPresent(change.from)) {\n element = (\n <span key={field}>\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.updatedFieldsWithPreviousValue\"\n additionalValues={{\n field: formatFieldName(field),\n from: valueFormatter(change.from),\n to: valueFormatter(change.to),\n }}\n />\n </span>\n );\n } else {\n element = (\n <span key={field}>\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.updatedFieldsWithNewValue\"\n additionalValues={{\n field: formatFieldName(field),\n to: valueFormatter(change.to),\n }}\n />\n </span>\n );\n }\n\n return index > 0\n ? [<span key={`sep-${field}`}>, </span>, element]\n : element;\n });\n\n return fields.flat();\n};\n\nexport const transformAction = action =>\n snakeToCamelCase(action.replace(\"audit_logs.organization.\", \"\"));\n\nexport const constructAuditLogText = ({\n countriesMap = {},\n permissionsMap = {},\n action,\n performedBy,\n emails = [],\n firstName,\n lastName,\n organizationRole,\n email,\n changes = {},\n status,\n message,\n errorMessage,\n ...rest\n}) => {\n switch (action) {\n case ACTIONS.INVITED_USERS: {\n if (status === \"success\" && isNotEmpty(emails)) {\n const emailList = emails.join(\", \");\n\n return (\n <Trans\n additionalValues={{ performedBy, emailList }}\n i18nKey=\"neetoMolecules.auditLogs.text.invitedUsers\"\n />\n );\n }\n\n return (\n <Trans\n additionalValues={{ performedBy, errorMessage }}\n i18nKey=\"neetoMolecules.auditLogs.text.invitedUsersFailed\"\n />\n );\n }\n\n case ACTIONS.USER_SIGNED_UP: {\n const name = [firstName, lastName].filter(Boolean).join(\" \");\n const userIdentifier = name || organizationRole || email || \"User\";\n\n return (\n <Trans\n additionalValues={{ userIdentifier }}\n i18nKey=\"neetoMolecules.auditLogs.text.userSignedUp\"\n />\n );\n }\n\n case ACTIONS.UPDATED_USER: {\n const changedFields = formatChangedFields({ changes, countriesMap });\n const affectedUser = email || \"user\";\n\n return (\n <Trans\n additionalComponents={{ ChangedFields: <>{changedFields}</> }}\n additionalValues={{ performedBy, affectedUser, changedFields }}\n i18nKey=\"neetoMolecules.auditLogs.text.updatedUser\"\n />\n );\n }\n\n case ACTIONS.BULK_UPDATE_USERS: {\n if (status === \"success\" && isNotEmpty(emails)) {\n const emailList = emails.join(\", \");\n\n return (\n <Trans\n additionalValues={{ performedBy, emailList, message }}\n i18nKey=\"neetoMolecules.auditLogs.text.bulkUpdateUsers\"\n />\n );\n }\n\n return (\n <Trans\n additionalValues={{ performedBy, errorMessage }}\n i18nKey=\"neetoMolecules.auditLogs.text.bulkUpdateUsersFailed\"\n />\n );\n }\n\n case ACTIONS.UPDATED_USER_PROFILE: {\n const changedFields = formatChangedFields({ changes, countriesMap });\n\n return (\n <Trans\n additionalComponents={{ ChangedFields: <>{changedFields}</> }}\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.updatedUserProfile\"\n />\n );\n }\n\n case ACTIONS.CREATED_ROLE: {\n const roleName = organizationRole || \"role\";\n\n return (\n <Trans\n additionalValues={{ performedBy, roleName }}\n i18nKey=\"neetoMolecules.auditLogs.text.createdRole\"\n />\n );\n }\n\n case ACTIONS.UPDATED_ROLE: {\n const { addedPermissions = [], removedPermissions = [], name } = rest;\n\n const permissionsToText = permissions =>\n permissions\n .map(\n permission =>\n permissionsMap[permission]?.description ||\n humanize(permission.split(\".\")[1])\n )\n .join(\", \");\n\n let i18nKey = \"neetoMolecules.auditLogs.text.updatedRole\";\n\n if (name) {\n i18nKey = \"neetoMolecules.auditLogs.text.updatedRoleName\";\n } else if (isPresent(addedPermissions) && isPresent(removedPermissions)) {\n i18nKey = \"neetoMolecules.auditLogs.text.modifiedRolePermission\";\n } else if (isPresent(addedPermissions)) {\n i18nKey = \"neetoMolecules.auditLogs.text.addedRolePermission\";\n } else if (isPresent(removedPermissions)) {\n i18nKey = \"neetoMolecules.auditLogs.text.removedRolePermission\";\n }\n\n return (\n <Trans\n {...{ i18nKey }}\n additionalValues={{\n performedBy,\n roleName: organizationRole || \"role\",\n name,\n addedPermissionsText: permissionsToText(addedPermissions),\n removedPermissionsText: permissionsToText(removedPermissions),\n addedPermissionsCount: addedPermissions.length,\n removedPermissionsCount: removedPermissions.length,\n }}\n />\n );\n }\n\n case ACTIONS.CONNECTED_GOOGLE_CALENDER: {\n return (\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.connectedGoogleCalender\"\n additionalValues={{\n performedBy,\n emailAddress: changes.emailAddress,\n }}\n />\n );\n }\n\n case ACTIONS.DISCONNECTED_GOOGLE_CALENDER: {\n return (\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.disconnectedGoogleCalender\"\n additionalValues={{\n performedBy,\n emailAddress: changes.emailAddress,\n }}\n />\n );\n }\n\n case ACTIONS.CONNECTED_STRIPE_ACCOUNT: {\n return (\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.connectedStripeAccount\"\n additionalValues={{\n performedBy,\n stripeAccountId: changes.stripeAccountId,\n }}\n />\n );\n }\n\n case ACTIONS.DISCONNECTED_STRIPE_ACCOUNT: {\n return (\n <Trans\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.disconnectedStripeAccount\"\n />\n );\n }\n\n case ACTIONS.CONNECTED_ZOOM_INTEGRATION: {\n return (\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.connectedZoomAccount\"\n additionalValues={{\n performedBy,\n zoomAccountId: changes.zoomAccountId,\n }}\n />\n );\n }\n\n case ACTIONS.DISCONNECTED_ZOOM_INTEGRATION: {\n return (\n <Trans\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.disconnectedZoomAccount\"\n />\n );\n }\n\n case ACTIONS.CONNECTED_CUSTOM_DOMAIN: {\n return (\n <Trans\n additionalValues={{ performedBy, hostname: changes.hostname }}\n i18nKey=\"neetoMolecules.auditLogs.text.connectedCustomDomain\"\n />\n );\n }\n\n case ACTIONS.DELETED_ROLE: {\n const roleName = organizationRole || \"role\";\n\n return (\n <Trans\n additionalValues={{ performedBy, roleName }}\n i18nKey=\"neetoMolecules.auditLogs.text.deletedRole\"\n />\n );\n }\n\n case ACTIONS.CREATED_API_KEY: {\n return (\n <Trans\n additionalValues={{ performedBy, ...rest }}\n i18nKey=\"neetoMolecules.auditLogs.text.createdApiKey\"\n />\n );\n }\n\n case ACTIONS.DELETED_API_KEY: {\n return (\n <Trans\n additionalValues={{ performedBy, ...rest }}\n i18nKey=\"neetoMolecules.auditLogs.text.deletedApiKey\"\n />\n );\n }\n\n case ACTIONS.UPDATED_API_KEY: {\n return (\n <Trans\n additionalValues={{ performedBy, ...rest }}\n i18nKey=\"neetoMolecules.auditLogs.text.updatedApiKey\"\n />\n );\n }\n\n default: {\n return (\n <Trans\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.performedAction\"\n />\n );\n }\n }\n};\n\nexport const indexById = indexBy(prop(\"id\"));\n\nexport const indexByPermissionName = indexBy(prop(\"name\"));\n","import classnames from \"classnames\";\nimport { dateFormat } from \"neetocommons/utils\";\nimport { Typography } from \"neetoui\";\n\nimport { AUDIT_ICON_MAP } from \"./constants\";\nimport { constructAuditLogText, transformAction } from \"./utils\";\n\nconst Card = ({\n auditLog,\n countriesMap,\n index,\n permissionsMap,\n totalCount,\n}) => {\n const { key, metadata, performer, updatedAt } = auditLog;\n\n const action = transformAction(key);\n const performedBy = performer?.name || \"\";\n const performedAt = dateFormat.dateTime(updatedAt);\n\n const auditText = constructAuditLogText({\n countriesMap,\n action,\n performedBy,\n permissionsMap,\n ...metadata,\n });\n\n const Icon = AUDIT_ICON_MAP[action];\n\n return (\n <div\n data-testid=\"audit-log-card\"\n className={classnames(\n \"align-items-center neeto-ui-border-gray-200 flex w-full gap-x-4 border-b border-l border-r p-3\",\n {\n \"rounded-t-md border-t\": index === 0,\n \"rounded-b-md\": index === totalCount - 1,\n }\n )}\n >\n <div className=\"neeto-ui-rounded-full neeto-ui-bg-gray-100 flex size-10 flex-shrink-0 items-center justify-center\">\n <Icon className=\"neeto-ui-text-gray-600 flex-shrink-0\" size={22} />\n </div>\n <div className=\"flex flex-col gap-y-2\" data-testid=\"audit-log-content\">\n <Typography\n component=\"span\"\n data-testid=\"audit-log-text\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {auditText}\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-500 m-0\"\n data-testid=\"audit-log-timestamp\"\n style=\"body3\"\n >\n {performedAt}\n </Typography>\n </div>\n </div>\n );\n};\n\nexport default Card;\n","import axios from \"axios\";\n\nconst fetchAuditLogs = params => axios.get(\"api/v1/audit_logs\", { params });\n\nconst fetchCountries = () => axios.get(\"neeto_team_members/profile/countries\");\n\nconst fetchPermissions = () => axios.get(\"neeto_team_members/permissions\");\n\nconst auditLogsApi = { fetchAuditLogs, fetchCountries, fetchPermissions };\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 { useQuery } from \"@tanstack/react-query\";\nimport { DEFAULT_STALE_TIME } from \"neetocommons/constants\";\n\nimport auditLogsApi from \"./api\";\nimport { COUNTRIES_LIST_QUERY_KEY } from \"./constants\";\n\nexport const useFetchCountries = () =>\n useQuery({\n queryKey: [COUNTRIES_LIST_QUERY_KEY],\n queryFn: auditLogsApi.fetchCountries,\n staleTime: DEFAULT_STALE_TIME,\n });\n","import { useQuery } from \"@tanstack/react-query\";\nimport { DEFAULT_STALE_TIME } from \"neetocommons/constants\";\n\nimport auditLogsApi from \"./api\";\nimport { PERMISSIONS_LIST_QUERY_KEY } from \"./constants\";\n\nexport const useFetchPermissions = () =>\n useQuery({\n queryKey: [PERMISSIONS_LIST_QUERY_KEY],\n queryFn: auditLogsApi.fetchPermissions,\n staleTime: DEFAULT_STALE_TIME,\n });\n","import { useMemo } from \"react\";\n\nimport { isPresent } from \"neetocist\";\nimport { DEFAULT_PAGE_INDEX } from \"neetocommons/constants\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { NoData, Spinner, Pagination } from \"neetoui\";\nimport propTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Container from \"components/Container\";\nimport Header from \"components/Header\";\n\nimport Card from \"./Card\";\nimport { AUDIT_LOGS_PAGE_SIZE } from \"./constants\";\nimport { useFetchAuditLogs } from \"./useAuditLogsApi\";\nimport { useFetchCountries } from \"./useCountriesApi\";\nimport { useFetchPermissions } from \"./usePermissionsApi\";\nimport { indexById, indexByPermissionName } from \"./utils\";\n\nconst AuditLogs = ({ headerProps, noDataHelpText, noDataTitle }) => {\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, pageSize: AUDIT_LOGS_PAGE_SIZE } });\n\n const { data: countriesData } = useFetchCountries();\n\n const { data: permissionsData } = useFetchPermissions();\n\n const countriesList = countriesData?.countries;\n const permissionsList = permissionsData?.permissions;\n\n const permissionsMap = useMemo(\n () => (permissionsList ? indexByPermissionName(permissionsList) : {}),\n [permissionsList]\n );\n\n const countriesMap = useMemo(\n () => (countriesList ? indexById(countriesList) : {}),\n [countriesList]\n );\n\n if (isLoading || isFetching) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <Container isHeaderFixed className=\"overflow-hidden\">\n <Header\n className=\"px-5 md:px-10\"\n title={t(\"neetoMolecules.auditLogs.title\")}\n {...headerProps}\n />\n {isPresent(auditLogs) ? (\n <div className=\"w-full grow overflow-y-auto px-5 md:px-10\">\n {auditLogs.map((auditLog, index) => (\n <Card\n {...{ auditLog, countriesMap, index, permissionsMap }}\n key={auditLog.id}\n totalCount={auditLogs.length}\n />\n ))}\n </div>\n ) : (\n <div className=\"flex h-full w-full items-center justify-center\">\n <NoData\n helpText={noDataHelpText}\n title={noDataTitle || t(\"neetoMolecules.auditLogs.noData\")}\n />\n </div>\n )}\n {totalCount > 0 && (\n <div className=\"flex w-full justify-end px-5 py-4 md:px-10\">\n <Pagination\n count={totalCount}\n pageNo={parseInt(page)}\n pageSize={AUDIT_LOGS_PAGE_SIZE}\n />\n </div>\n )}\n </Container>\n );\n};\n\nAuditLogs.propTypes = {\n /**\n * Props to be passed to the `Header` component.\n */\n headerProps: propTypes.object,\n /**\n * Help text to be displayed to the `NoData` component when there are no audit logs.\n */\n noDataHelpText: propTypes.string,\n /**\n * Title to be passed to the `NoData` component when there are no audit logs.\n */\n noDataTitle: propTypes.string,\n};\n\nexport default AuditLogs;\n"],"names":["AUDIT_LOGS_QUERY_KEY","COUNTRIES_LIST_QUERY_KEY","PERMISSIONS_LIST_QUERY_KEY","ACTIONS","INVITED_USERS","USER_SIGNED_UP","UPDATED_USER","BULK_UPDATE_USERS","UPDATED_USER_PROFILE","CREATED_ROLE","UPDATED_ROLE","DELETED_ROLE","CONNECTED_GOOGLE_CALENDER","DISCONNECTED_GOOGLE_CALENDER","CONNECTED_STRIPE_ACCOUNT","DISCONNECTED_STRIPE_ACCOUNT","CONNECTED_ZOOM_INTEGRATION","DISCONNECTED_ZOOM_INTEGRATION","CONNECTED_CUSTOM_DOMAIN","CREATED_API_KEY","DELETED_API_KEY","UPDATED_API_KEY","AUDIT_ICON_MAP","_AUDIT_ICON_MAP","_defineProperty","UserCircle","UserAdd","User","UserSettings","UserRemove","GoogleCalendar","StripeTypeface","Stripe","Zoom","CustomDomain","ApiKeys","AUDIT_LOGS_PAGE_SIZE","LANGUAGE_OPTIONS_MAP","indexBy","prop","LANGUAGE_OPTIONS","DATE_FORMAT_OPTIONS_MAP","FIELD_NAME_MAP","organizationRole","Trans","_ref","i18nKey","_ref$additionalValues","additionalValues","_ref$additionalCompon","additionalComponents","_jsx","ReactTrans","components","_objectSpread","Code","Typography","className","component","style","Semibold","values","productSuffix","globalProps","appName","formatFieldName","field","humanize","createFieldValueFormatter","countriesMap","value","_LANGUAGE_OPTIONS_MAP","label","_countriesMap$value","name","identity","formatChangedFields","_ref2","changes","fields","Object","keys","map","index","change","valueFormatter","element","children","isPresent","from","to","concat","flat","transformAction","action","snakeToCamelCase","replace","constructAuditLogText","_ref3","_ref3$countriesMap","_ref3$permissionsMap","permissionsMap","performedBy","_ref3$emails","emails","firstName","lastName","email","_ref3$changes","status","message","errorMessage","rest","_objectWithoutProperties","_excluded","isNotEmpty","emailList","join","filter","Boolean","userIdentifier","changedFields","affectedUser","ChangedFields","_Fragment","roleName","_rest$addedPermission","addedPermissions","_rest$removedPermissi","removedPermissions","permissionsToText","permissions","permission","_permissionsMap$permi","description","split","addedPermissionsText","removedPermissionsText","addedPermissionsCount","length","removedPermissionsCount","emailAddress","stripeAccountId","zoomAccountId","hostname","indexById","indexByPermissionName","Card","auditLog","totalCount","key","metadata","performer","updatedAt","performedAt","dateFormat","dateTime","auditText","Icon","_jsxs","classnames","size","lineHeight","fetchAuditLogs","params","axios","get","fetchCountries","fetchPermissions","auditLogsApi","useFetchAuditLogs","_ref$options","options","useQuery","queryKey","queryFn","useFetchCountries","staleTime","DEFAULT_STALE_TIME","useFetchPermissions","AuditLogs","headerProps","noDataHelpText","noDataTitle","_useTranslation","useTranslation","t","_useQueryParams","useQueryParams","_useQueryParams$page","page","DEFAULT_PAGE_INDEX","_useFetchAuditLogs","pageSize","_useFetchAuditLogs$da","data","_useFetchAuditLogs$da2","_useFetchAuditLogs$da3","auditLogs","_useFetchAuditLogs$da4","isLoading","isFetching","_useFetchCountries","countriesData","_useFetchPermissions","permissionsData","countriesList","countries","permissionsList","useMemo","Spinner","Container","isHeaderFixed","Header","title","_createElement","id","NoData","helpText","Pagination","count","pageNo","parseInt"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AuditLogs.js","sources":["../src/components/AuditLogs/constants.js","../src/components/AuditLogs/Trans.jsx","../src/components/AuditLogs/utils.jsx","../src/components/AuditLogs/Card.jsx","../src/components/AuditLogs/api.js","../src/components/AuditLogs/useAuditLogsApi.js","../src/components/AuditLogs/useCountriesApi.js","../src/components/AuditLogs/usePermissionsApi.js","../src/components/AuditLogs/index.jsx"],"sourcesContent":["import { LANGUAGE_OPTIONS } from \"neetocommons/constants\";\nimport {\n User,\n UserAdd,\n UserCircle,\n UserRemove,\n UserSettings,\n CustomDomain,\n ApiKeys,\n} from \"neetoicons\";\nimport { GoogleCalendar, Zoom, Stripe, StripeTypeface } from \"neetoicons/misc\";\nimport { indexBy, prop } from \"ramda\";\n\nexport const AUDIT_LOGS_QUERY_KEY = \"audit-logs\";\nexport const COUNTRIES_LIST_QUERY_KEY = \"countries-list\"; // Same key as that used in \"neeto-team-members\" for cache reuse.\nexport const PERMISSIONS_LIST_QUERY_KEY = \"neeto-team-members-permissions\"; // Same key as that used in \"neeto-team-members\" for cache reuse.\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 CONNECTED_GOOGLE_CALENDER: \"connectedGoogleCalendar\",\n DISCONNECTED_GOOGLE_CALENDER: \"disconnectedGoogleCalendar\",\n CONNECTED_STRIPE_ACCOUNT: \"connectedStripeAccount\",\n DISCONNECTED_STRIPE_ACCOUNT: \"disconnectedStripeAccount\",\n CONNECTED_ZOOM_INTEGRATION: \"connectedZoomIntegration\",\n DISCONNECTED_ZOOM_INTEGRATION: \"disconnectedZoomIntegration\",\n CONNECTED_CUSTOM_DOMAIN: \"connectedCustomDomain\",\n CREATED_API_KEY: \"createdApiKey\",\n DELETED_API_KEY: \"deletedApiKey\",\n UPDATED_API_KEY: \"updatedApiKey\",\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 AUDIT_ICON_MAP = {\n [ACTIONS.INVITED_USERS]: UserCircle,\n [ACTIONS.USER_SIGNED_UP]: UserAdd,\n [ACTIONS.UPDATED_USER]: User,\n [ACTIONS.BULK_UPDATE_USERS]: User,\n [ACTIONS.UPDATED_USER_PROFILE]: UserSettings,\n [ACTIONS.CREATED_ROLE]: UserAdd,\n [ACTIONS.UPDATED_ROLE]: UserSettings,\n [ACTIONS.DELETED_ROLE]: UserRemove,\n [ACTIONS.CONNECTED_GOOGLE_CALENDER]: GoogleCalendar,\n [ACTIONS.DISCONNECTED_GOOGLE_CALENDER]: GoogleCalendar,\n [ACTIONS.CONNECTED_STRIPE_ACCOUNT]: StripeTypeface,\n [ACTIONS.DISCONNECTED_STRIPE_ACCOUNT]: Stripe,\n [ACTIONS.CONNECTED_ZOOM_INTEGRATION]: Zoom,\n [ACTIONS.DISCONNECTED_ZOOM_INTEGRATION]: Zoom,\n [ACTIONS.CONNECTED_CUSTOM_DOMAIN]: CustomDomain,\n [ACTIONS.CREATED_API_KEY]: ApiKeys,\n [ACTIONS.DELETED_API_KEY]: ApiKeys,\n [ACTIONS.UPDATED_API_KEY]: ApiKeys,\n};\n\nexport const AUDIT_LOGS_PAGE_SIZE = 12;\n\nexport const LANGUAGE_OPTIONS_MAP = indexBy(prop(\"value\"), LANGUAGE_OPTIONS);\n\nexport const DATE_FORMAT_OPTIONS_MAP = {\n \"%m/%d/%Y\": \"MM/DD/YYYY\",\n \"%d/%m/%Y\": \"DD/MM/YYYY\",\n \"%Y/%m/%d\": \"YYYY/MM/DD\",\n};\n\nexport const FIELD_NAME_MAP = { organizationRole: \"role\" };\n","import { globalProps } from \"neetocommons/initializers\";\nimport { Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { Trans as ReactTrans } from \"react-i18next\";\n\nconst Trans = ({\n i18nKey,\n additionalValues = {},\n additionalComponents = {},\n}) => (\n <ReactTrans\n {...{ i18nKey }}\n components={{\n Code: (\n <Typography\n className=\"neeto-ui-rounded-md neeto-ui-bg-gray-100 p-1\"\n component=\"code\"\n style=\"body3\"\n />\n ),\n Semibold: (\n <Typography\n className=\"n inline-block text-sm font-medium\"\n component=\"p\"\n />\n ),\n ...additionalComponents,\n }}\n values={{\n productSuffix: globalProps.appName,\n ...additionalValues,\n }}\n />\n);\n\nTrans.propTypes = {\n i18nKey: PropTypes.string.isRequired,\n additionalValues: PropTypes.object,\n additionalComponents: PropTypes.objectOf(PropTypes.element),\n};\n\nexport default Trans;\n","import {\n snakeToCamelCase,\n isEmpty,\n isNotEmpty,\n isPresent,\n humanize,\n} from \"neetocist\";\nimport { identity, indexBy, omit, prop } from \"ramda\";\n\nimport {\n ACTIONS,\n DATE_FORMAT_OPTIONS_MAP,\n FIELD_NAME_MAP,\n LANGUAGE_OPTIONS_MAP,\n} from \"./constants\";\nimport Trans from \"./Trans\";\n\nconst formatFieldName = field => FIELD_NAME_MAP[field] || humanize(field);\n\nconst createFieldValueFormatter = ({ field, countriesMap }) => {\n switch (field) {\n case \"language\":\n return value => LANGUAGE_OPTIONS_MAP[value]?.label || value;\n case \"dateFormat\":\n return value => DATE_FORMAT_OPTIONS_MAP[value] || value;\n case \"countryIdentifier\":\n return value => countriesMap[value]?.name || value;\n default:\n return identity;\n }\n};\n\nconst formatChangedFields = ({ changes, countriesMap }) => {\n const fields = Object.keys(changes).map((field, index) => {\n const change = changes[field];\n const valueFormatter = createFieldValueFormatter({ field, countriesMap });\n let element;\n\n if (field === \"profileImage\") {\n element = (\n <span key={field}>\n <Trans\n additionalValues={{ field: formatFieldName(field) }}\n i18nKey=\"neetoMolecules.auditLogs.text.updatedFields\"\n />\n </span>\n );\n } else if (change && isPresent(change.from)) {\n element = (\n <span key={field}>\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.updatedFieldsWithPreviousValue\"\n additionalValues={{\n field: formatFieldName(field),\n from: valueFormatter(change.from),\n to: valueFormatter(change.to),\n }}\n />\n </span>\n );\n } else {\n element = (\n <span key={field}>\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.updatedFieldsWithNewValue\"\n additionalValues={{\n field: formatFieldName(field),\n to: valueFormatter(change.to),\n }}\n />\n </span>\n );\n }\n\n return index > 0\n ? [<span key={`sep-${field}`}>, </span>, element]\n : element;\n });\n\n return fields.flat();\n};\n\nexport const transformAction = action =>\n snakeToCamelCase(action.replace(\"audit_logs.organization.\", \"\"));\n\nexport const constructAuditLogText = ({\n countriesMap = {},\n permissionsMap = {},\n action,\n performedBy,\n emails = [],\n firstName,\n lastName,\n organizationRole,\n email,\n changes = {},\n status,\n message,\n errorMessage,\n ...rest\n}) => {\n switch (action) {\n case ACTIONS.INVITED_USERS: {\n if (status === \"success\" && isNotEmpty(emails)) {\n const emailList = emails.join(\", \");\n\n return (\n <Trans\n additionalValues={{ performedBy, emailList }}\n i18nKey=\"neetoMolecules.auditLogs.text.invitedUsers\"\n />\n );\n }\n\n return (\n <Trans\n additionalValues={{ performedBy, errorMessage }}\n i18nKey=\"neetoMolecules.auditLogs.text.invitedUsersFailed\"\n />\n );\n }\n\n case ACTIONS.USER_SIGNED_UP: {\n const name = [firstName, lastName].filter(Boolean).join(\" \");\n const userIdentifier = name || organizationRole || email || \"User\";\n\n return (\n <Trans\n additionalValues={{ userIdentifier }}\n i18nKey=\"neetoMolecules.auditLogs.text.userSignedUp\"\n />\n );\n }\n\n case ACTIONS.UPDATED_USER: {\n const affectedUser = email || \"user\";\n const isUserDeactivated = changes?.active?.to === false;\n const otherChanges = isUserDeactivated\n ? omit([\"active\"], changes)\n : changes;\n\n const removedText = isUserDeactivated ? (\n <Trans\n additionalValues={{ performedBy, affectedUser }}\n i18nKey=\"neetoMolecules.auditLogs.text.removedUser\"\n />\n ) : null;\n\n if (isUserDeactivated && isEmpty(otherChanges)) return removedText;\n\n const changedFields = formatChangedFields({\n changes: otherChanges,\n countriesMap,\n });\n\n const updatedUserText = (\n <Trans\n additionalComponents={{ ChangedFields: <>{changedFields}</> }}\n additionalValues={{ performedBy, affectedUser }}\n i18nKey=\"neetoMolecules.auditLogs.text.updatedUser\"\n />\n );\n\n return removedText ? (\n <>\n {removedText} {updatedUserText}\n </>\n ) : (\n updatedUserText\n );\n }\n\n case ACTIONS.BULK_UPDATE_USERS: {\n if (status === \"success\" && isNotEmpty(emails)) {\n const emailList = emails.join(\", \");\n\n return (\n <Trans\n additionalValues={{ performedBy, emailList, message }}\n i18nKey=\"neetoMolecules.auditLogs.text.bulkUpdateUsers\"\n />\n );\n }\n\n return (\n <Trans\n additionalValues={{ performedBy, errorMessage }}\n i18nKey=\"neetoMolecules.auditLogs.text.bulkUpdateUsersFailed\"\n />\n );\n }\n\n case ACTIONS.UPDATED_USER_PROFILE: {\n const changedFields = formatChangedFields({ changes, countriesMap });\n\n return (\n <Trans\n additionalComponents={{ ChangedFields: <>{changedFields}</> }}\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.updatedUserProfile\"\n />\n );\n }\n\n case ACTIONS.CREATED_ROLE: {\n const roleName = organizationRole || \"role\";\n\n return (\n <Trans\n additionalValues={{ performedBy, roleName }}\n i18nKey=\"neetoMolecules.auditLogs.text.createdRole\"\n />\n );\n }\n\n case ACTIONS.UPDATED_ROLE: {\n const { addedPermissions = [], removedPermissions = [], name } = rest;\n\n const permissionsToText = permissions =>\n permissions\n .map(\n permission =>\n permissionsMap[permission]?.description ||\n humanize(permission.split(\".\")[1])\n )\n .join(\", \");\n\n let i18nKey = \"neetoMolecules.auditLogs.text.updatedRole\";\n\n if (name) {\n i18nKey = \"neetoMolecules.auditLogs.text.updatedRoleName\";\n } else if (isPresent(addedPermissions) && isPresent(removedPermissions)) {\n i18nKey = \"neetoMolecules.auditLogs.text.modifiedRolePermission\";\n } else if (isPresent(addedPermissions)) {\n i18nKey = \"neetoMolecules.auditLogs.text.addedRolePermission\";\n } else if (isPresent(removedPermissions)) {\n i18nKey = \"neetoMolecules.auditLogs.text.removedRolePermission\";\n }\n\n return (\n <Trans\n {...{ i18nKey }}\n additionalValues={{\n performedBy,\n roleName: organizationRole || \"role\",\n name,\n addedPermissionsText: permissionsToText(addedPermissions),\n removedPermissionsText: permissionsToText(removedPermissions),\n addedPermissionsCount: addedPermissions.length,\n removedPermissionsCount: removedPermissions.length,\n }}\n />\n );\n }\n\n case ACTIONS.CONNECTED_GOOGLE_CALENDER: {\n return (\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.connectedGoogleCalender\"\n additionalValues={{\n performedBy,\n emailAddress: changes.emailAddress,\n }}\n />\n );\n }\n\n case ACTIONS.DISCONNECTED_GOOGLE_CALENDER: {\n return (\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.disconnectedGoogleCalender\"\n additionalValues={{\n performedBy,\n emailAddress: changes.emailAddress,\n }}\n />\n );\n }\n\n case ACTIONS.CONNECTED_STRIPE_ACCOUNT: {\n return (\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.connectedStripeAccount\"\n additionalValues={{\n performedBy,\n stripeAccountId: changes.stripeAccountId,\n }}\n />\n );\n }\n\n case ACTIONS.DISCONNECTED_STRIPE_ACCOUNT: {\n return (\n <Trans\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.disconnectedStripeAccount\"\n />\n );\n }\n\n case ACTIONS.CONNECTED_ZOOM_INTEGRATION: {\n return (\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.connectedZoomAccount\"\n additionalValues={{\n performedBy,\n zoomAccountId: changes.zoomAccountId,\n }}\n />\n );\n }\n\n case ACTIONS.DISCONNECTED_ZOOM_INTEGRATION: {\n return (\n <Trans\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.disconnectedZoomAccount\"\n />\n );\n }\n\n case ACTIONS.CONNECTED_CUSTOM_DOMAIN: {\n return (\n <Trans\n additionalValues={{ performedBy, hostname: changes.hostname }}\n i18nKey=\"neetoMolecules.auditLogs.text.connectedCustomDomain\"\n />\n );\n }\n\n case ACTIONS.DELETED_ROLE: {\n const roleName = organizationRole || \"role\";\n\n return (\n <Trans\n additionalValues={{ performedBy, roleName }}\n i18nKey=\"neetoMolecules.auditLogs.text.deletedRole\"\n />\n );\n }\n\n case ACTIONS.CREATED_API_KEY: {\n return (\n <Trans\n additionalValues={{ performedBy, ...rest }}\n i18nKey=\"neetoMolecules.auditLogs.text.createdApiKey\"\n />\n );\n }\n\n case ACTIONS.DELETED_API_KEY: {\n return (\n <Trans\n additionalValues={{ performedBy, ...rest }}\n i18nKey=\"neetoMolecules.auditLogs.text.deletedApiKey\"\n />\n );\n }\n\n case ACTIONS.UPDATED_API_KEY: {\n return (\n <Trans\n additionalValues={{ performedBy, ...rest }}\n i18nKey=\"neetoMolecules.auditLogs.text.updatedApiKey\"\n />\n );\n }\n\n default: {\n return (\n <Trans\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.performedAction\"\n />\n );\n }\n }\n};\n\nexport const indexById = indexBy(prop(\"id\"));\n\nexport const indexByPermissionName = indexBy(prop(\"name\"));\n","import classnames from \"classnames\";\nimport { dateFormat } from \"neetocommons/utils\";\nimport { Typography } from \"neetoui\";\n\nimport { AUDIT_ICON_MAP } from \"./constants\";\nimport { constructAuditLogText, transformAction } from \"./utils\";\n\nconst Card = ({\n auditLog,\n countriesMap,\n index,\n permissionsMap,\n totalCount,\n}) => {\n const { key, metadata, performer, updatedAt } = auditLog;\n\n const action = transformAction(key);\n const performedBy = performer?.name || \"\";\n const performedAt = dateFormat.dateTime(updatedAt);\n\n const auditText = constructAuditLogText({\n countriesMap,\n action,\n performedBy,\n permissionsMap,\n ...metadata,\n });\n\n const Icon = AUDIT_ICON_MAP[action];\n\n return (\n <div\n data-testid=\"audit-log-card\"\n className={classnames(\n \"align-items-center neeto-ui-border-gray-200 flex w-full gap-x-4 border-b border-l border-r p-3\",\n {\n \"rounded-t-md border-t\": index === 0,\n \"rounded-b-md\": index === totalCount - 1,\n }\n )}\n >\n <div className=\"neeto-ui-rounded-full neeto-ui-bg-gray-100 flex size-10 flex-shrink-0 items-center justify-center\">\n <Icon className=\"neeto-ui-text-gray-600 flex-shrink-0\" size={22} />\n </div>\n <div className=\"flex flex-col gap-y-2\" data-testid=\"audit-log-content\">\n <Typography\n component=\"span\"\n data-testid=\"audit-log-text\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {auditText}\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-500 m-0\"\n data-testid=\"audit-log-timestamp\"\n style=\"body3\"\n >\n {performedAt}\n </Typography>\n </div>\n </div>\n );\n};\n\nexport default Card;\n","import axios from \"axios\";\n\nconst fetchAuditLogs = params => axios.get(\"api/v1/audit_logs\", { params });\n\nconst fetchCountries = () => axios.get(\"neeto_team_members/profile/countries\");\n\nconst fetchPermissions = () => axios.get(\"neeto_team_members/permissions\");\n\nconst auditLogsApi = { fetchAuditLogs, fetchCountries, fetchPermissions };\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 { useQuery } from \"@tanstack/react-query\";\nimport { DEFAULT_STALE_TIME } from \"neetocommons/constants\";\n\nimport auditLogsApi from \"./api\";\nimport { COUNTRIES_LIST_QUERY_KEY } from \"./constants\";\n\nexport const useFetchCountries = () =>\n useQuery({\n queryKey: [COUNTRIES_LIST_QUERY_KEY],\n queryFn: auditLogsApi.fetchCountries,\n staleTime: DEFAULT_STALE_TIME,\n });\n","import { useQuery } from \"@tanstack/react-query\";\nimport { DEFAULT_STALE_TIME } from \"neetocommons/constants\";\n\nimport auditLogsApi from \"./api\";\nimport { PERMISSIONS_LIST_QUERY_KEY } from \"./constants\";\n\nexport const useFetchPermissions = () =>\n useQuery({\n queryKey: [PERMISSIONS_LIST_QUERY_KEY],\n queryFn: auditLogsApi.fetchPermissions,\n staleTime: DEFAULT_STALE_TIME,\n });\n","import { useMemo } from \"react\";\n\nimport { isPresent } from \"neetocist\";\nimport { DEFAULT_PAGE_INDEX } from \"neetocommons/constants\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { NoData, Spinner, Pagination } from \"neetoui\";\nimport propTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Container from \"components/Container\";\nimport Header from \"components/Header\";\n\nimport Card from \"./Card\";\nimport { AUDIT_LOGS_PAGE_SIZE } from \"./constants\";\nimport { useFetchAuditLogs } from \"./useAuditLogsApi\";\nimport { useFetchCountries } from \"./useCountriesApi\";\nimport { useFetchPermissions } from \"./usePermissionsApi\";\nimport { indexById, indexByPermissionName } from \"./utils\";\n\nconst AuditLogs = ({ headerProps, noDataHelpText, noDataTitle }) => {\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, pageSize: AUDIT_LOGS_PAGE_SIZE } });\n\n const { data: countriesData } = useFetchCountries();\n\n const { data: permissionsData } = useFetchPermissions();\n\n const countriesList = countriesData?.countries;\n const permissionsList = permissionsData?.permissions;\n\n const permissionsMap = useMemo(\n () => (permissionsList ? indexByPermissionName(permissionsList) : {}),\n [permissionsList]\n );\n\n const countriesMap = useMemo(\n () => (countriesList ? indexById(countriesList) : {}),\n [countriesList]\n );\n\n if (isLoading || isFetching) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <Container isHeaderFixed className=\"overflow-hidden\">\n <Header\n className=\"px-5 md:px-10\"\n title={t(\"neetoMolecules.auditLogs.title\")}\n {...headerProps}\n />\n {isPresent(auditLogs) ? (\n <div className=\"w-full grow overflow-y-auto px-5 md:px-10\">\n {auditLogs.map((auditLog, index) => (\n <Card\n {...{ auditLog, countriesMap, index, permissionsMap }}\n key={auditLog.id}\n totalCount={auditLogs.length}\n />\n ))}\n </div>\n ) : (\n <div className=\"flex h-full w-full items-center justify-center\">\n <NoData\n helpText={noDataHelpText}\n title={noDataTitle || t(\"neetoMolecules.auditLogs.noData\")}\n />\n </div>\n )}\n {totalCount > 0 && (\n <div className=\"flex w-full justify-end px-5 py-4 md:px-10\">\n <Pagination\n count={totalCount}\n pageNo={parseInt(page)}\n pageSize={AUDIT_LOGS_PAGE_SIZE}\n />\n </div>\n )}\n </Container>\n );\n};\n\nAuditLogs.propTypes = {\n /**\n * Props to be passed to the `Header` component.\n */\n headerProps: propTypes.object,\n /**\n * Help text to be displayed to the `NoData` component when there are no audit logs.\n */\n noDataHelpText: propTypes.string,\n /**\n * Title to be passed to the `NoData` component when there are no audit logs.\n */\n noDataTitle: propTypes.string,\n};\n\nexport default AuditLogs;\n"],"names":["AUDIT_LOGS_QUERY_KEY","COUNTRIES_LIST_QUERY_KEY","PERMISSIONS_LIST_QUERY_KEY","ACTIONS","INVITED_USERS","USER_SIGNED_UP","UPDATED_USER","BULK_UPDATE_USERS","UPDATED_USER_PROFILE","CREATED_ROLE","UPDATED_ROLE","DELETED_ROLE","CONNECTED_GOOGLE_CALENDER","DISCONNECTED_GOOGLE_CALENDER","CONNECTED_STRIPE_ACCOUNT","DISCONNECTED_STRIPE_ACCOUNT","CONNECTED_ZOOM_INTEGRATION","DISCONNECTED_ZOOM_INTEGRATION","CONNECTED_CUSTOM_DOMAIN","CREATED_API_KEY","DELETED_API_KEY","UPDATED_API_KEY","AUDIT_ICON_MAP","_AUDIT_ICON_MAP","_defineProperty","UserCircle","UserAdd","User","UserSettings","UserRemove","GoogleCalendar","StripeTypeface","Stripe","Zoom","CustomDomain","ApiKeys","AUDIT_LOGS_PAGE_SIZE","LANGUAGE_OPTIONS_MAP","indexBy","prop","LANGUAGE_OPTIONS","DATE_FORMAT_OPTIONS_MAP","FIELD_NAME_MAP","organizationRole","Trans","_ref","i18nKey","_ref$additionalValues","additionalValues","_ref$additionalCompon","additionalComponents","_jsx","ReactTrans","components","_objectSpread","Code","Typography","className","component","style","Semibold","values","productSuffix","globalProps","appName","formatFieldName","field","humanize","createFieldValueFormatter","countriesMap","value","_LANGUAGE_OPTIONS_MAP","label","_countriesMap$value","name","identity","formatChangedFields","_ref2","changes","fields","Object","keys","map","index","change","valueFormatter","element","children","isPresent","from","to","concat","flat","transformAction","action","snakeToCamelCase","replace","constructAuditLogText","_ref3","_ref3$countriesMap","_ref3$permissionsMap","permissionsMap","performedBy","_ref3$emails","emails","firstName","lastName","email","_ref3$changes","status","message","errorMessage","rest","_objectWithoutProperties","_excluded","isNotEmpty","emailList","join","filter","Boolean","userIdentifier","_changes$active","affectedUser","isUserDeactivated","active","otherChanges","omit","removedText","isEmpty","changedFields","updatedUserText","ChangedFields","_Fragment","_jsxs","roleName","_rest$addedPermission","addedPermissions","_rest$removedPermissi","removedPermissions","permissionsToText","permissions","permission","_permissionsMap$permi","description","split","addedPermissionsText","removedPermissionsText","addedPermissionsCount","length","removedPermissionsCount","emailAddress","stripeAccountId","zoomAccountId","hostname","indexById","indexByPermissionName","Card","auditLog","totalCount","key","metadata","performer","updatedAt","performedAt","dateFormat","dateTime","auditText","Icon","classnames","size","lineHeight","fetchAuditLogs","params","axios","get","fetchCountries","fetchPermissions","auditLogsApi","useFetchAuditLogs","_ref$options","options","useQuery","queryKey","queryFn","useFetchCountries","staleTime","DEFAULT_STALE_TIME","useFetchPermissions","AuditLogs","headerProps","noDataHelpText","noDataTitle","_useTranslation","useTranslation","t","_useQueryParams","useQueryParams","_useQueryParams$page","page","DEFAULT_PAGE_INDEX","_useFetchAuditLogs","pageSize","_useFetchAuditLogs$da","data","_useFetchAuditLogs$da2","_useFetchAuditLogs$da3","auditLogs","_useFetchAuditLogs$da4","isLoading","isFetching","_useFetchCountries","countriesData","_useFetchPermissions","permissionsData","countriesList","countries","permissionsList","useMemo","Spinner","Container","isHeaderFixed","Header","title","_createElement","id","NoData","helpText","Pagination","count","pageNo","parseInt"],"mappings":"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"}
|
package/dist/cjs/AuditLogs.js
CHANGED
|
@@ -249,12 +249,23 @@ var constructAuditLogText = function constructAuditLogText(_ref3) {
|
|
|
249
249
|
}
|
|
250
250
|
case ACTIONS.UPDATED_USER:
|
|
251
251
|
{
|
|
252
|
+
var _changes$active;
|
|
253
|
+
var affectedUser = email || "user";
|
|
254
|
+
var isUserDeactivated = (changes === null || changes === void 0 || (_changes$active = changes.active) === null || _changes$active === void 0 ? void 0 : _changes$active.to) === false;
|
|
255
|
+
var otherChanges = isUserDeactivated ? ramda.omit(["active"], changes) : changes;
|
|
256
|
+
var removedText = isUserDeactivated ? /*#__PURE__*/jsxRuntime.jsx(Trans, {
|
|
257
|
+
additionalValues: {
|
|
258
|
+
performedBy: performedBy,
|
|
259
|
+
affectedUser: affectedUser
|
|
260
|
+
},
|
|
261
|
+
i18nKey: "neetoMolecules.auditLogs.text.removedUser"
|
|
262
|
+
}) : null;
|
|
263
|
+
if (isUserDeactivated && neetoCist.isEmpty(otherChanges)) return removedText;
|
|
252
264
|
var changedFields = formatChangedFields({
|
|
253
|
-
changes:
|
|
265
|
+
changes: otherChanges,
|
|
254
266
|
countriesMap: countriesMap
|
|
255
267
|
});
|
|
256
|
-
var
|
|
257
|
-
return /*#__PURE__*/jsxRuntime.jsx(Trans, {
|
|
268
|
+
var updatedUserText = /*#__PURE__*/jsxRuntime.jsx(Trans, {
|
|
258
269
|
additionalComponents: {
|
|
259
270
|
ChangedFields: /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {
|
|
260
271
|
children: changedFields
|
|
@@ -262,11 +273,13 @@ var constructAuditLogText = function constructAuditLogText(_ref3) {
|
|
|
262
273
|
},
|
|
263
274
|
additionalValues: {
|
|
264
275
|
performedBy: performedBy,
|
|
265
|
-
affectedUser: affectedUser
|
|
266
|
-
changedFields: changedFields
|
|
276
|
+
affectedUser: affectedUser
|
|
267
277
|
},
|
|
268
278
|
i18nKey: "neetoMolecules.auditLogs.text.updatedUser"
|
|
269
279
|
});
|
|
280
|
+
return removedText ? /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
281
|
+
children: [removedText, " ", updatedUserText]
|
|
282
|
+
}) : updatedUserText;
|
|
270
283
|
}
|
|
271
284
|
case ACTIONS.BULK_UPDATE_USERS:
|
|
272
285
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuditLogs.js","sources":["../../src/components/AuditLogs/constants.js","../../src/components/AuditLogs/Trans.jsx","../../src/components/AuditLogs/utils.jsx","../../src/components/AuditLogs/Card.jsx","../../src/components/AuditLogs/api.js","../../src/components/AuditLogs/useAuditLogsApi.js","../../src/components/AuditLogs/useCountriesApi.js","../../src/components/AuditLogs/usePermissionsApi.js","../../src/components/AuditLogs/index.jsx"],"sourcesContent":["import { LANGUAGE_OPTIONS } from \"neetocommons/constants\";\nimport {\n User,\n UserAdd,\n UserCircle,\n UserRemove,\n UserSettings,\n CustomDomain,\n ApiKeys,\n} from \"neetoicons\";\nimport { GoogleCalendar, Zoom, Stripe, StripeTypeface } from \"neetoicons/misc\";\nimport { indexBy, prop } from \"ramda\";\n\nexport const AUDIT_LOGS_QUERY_KEY = \"audit-logs\";\nexport const COUNTRIES_LIST_QUERY_KEY = \"countries-list\"; // Same key as that used in \"neeto-team-members\" for cache reuse.\nexport const PERMISSIONS_LIST_QUERY_KEY = \"neeto-team-members-permissions\"; // Same key as that used in \"neeto-team-members\" for cache reuse.\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 CONNECTED_GOOGLE_CALENDER: \"connectedGoogleCalendar\",\n DISCONNECTED_GOOGLE_CALENDER: \"disconnectedGoogleCalendar\",\n CONNECTED_STRIPE_ACCOUNT: \"connectedStripeAccount\",\n DISCONNECTED_STRIPE_ACCOUNT: \"disconnectedStripeAccount\",\n CONNECTED_ZOOM_INTEGRATION: \"connectedZoomIntegration\",\n DISCONNECTED_ZOOM_INTEGRATION: \"disconnectedZoomIntegration\",\n CONNECTED_CUSTOM_DOMAIN: \"connectedCustomDomain\",\n CREATED_API_KEY: \"createdApiKey\",\n DELETED_API_KEY: \"deletedApiKey\",\n UPDATED_API_KEY: \"updatedApiKey\",\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 AUDIT_ICON_MAP = {\n [ACTIONS.INVITED_USERS]: UserCircle,\n [ACTIONS.USER_SIGNED_UP]: UserAdd,\n [ACTIONS.UPDATED_USER]: User,\n [ACTIONS.BULK_UPDATE_USERS]: User,\n [ACTIONS.UPDATED_USER_PROFILE]: UserSettings,\n [ACTIONS.CREATED_ROLE]: UserAdd,\n [ACTIONS.UPDATED_ROLE]: UserSettings,\n [ACTIONS.DELETED_ROLE]: UserRemove,\n [ACTIONS.CONNECTED_GOOGLE_CALENDER]: GoogleCalendar,\n [ACTIONS.DISCONNECTED_GOOGLE_CALENDER]: GoogleCalendar,\n [ACTIONS.CONNECTED_STRIPE_ACCOUNT]: StripeTypeface,\n [ACTIONS.DISCONNECTED_STRIPE_ACCOUNT]: Stripe,\n [ACTIONS.CONNECTED_ZOOM_INTEGRATION]: Zoom,\n [ACTIONS.DISCONNECTED_ZOOM_INTEGRATION]: Zoom,\n [ACTIONS.CONNECTED_CUSTOM_DOMAIN]: CustomDomain,\n [ACTIONS.CREATED_API_KEY]: ApiKeys,\n [ACTIONS.DELETED_API_KEY]: ApiKeys,\n [ACTIONS.UPDATED_API_KEY]: ApiKeys,\n};\n\nexport const AUDIT_LOGS_PAGE_SIZE = 12;\n\nexport const LANGUAGE_OPTIONS_MAP = indexBy(prop(\"value\"), LANGUAGE_OPTIONS);\n\nexport const DATE_FORMAT_OPTIONS_MAP = {\n \"%m/%d/%Y\": \"MM/DD/YYYY\",\n \"%d/%m/%Y\": \"DD/MM/YYYY\",\n \"%Y/%m/%d\": \"YYYY/MM/DD\",\n};\n\nexport const FIELD_NAME_MAP = { organizationRole: \"role\" };\n","import { globalProps } from \"neetocommons/initializers\";\nimport { Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { Trans as ReactTrans } from \"react-i18next\";\n\nconst Trans = ({\n i18nKey,\n additionalValues = {},\n additionalComponents = {},\n}) => (\n <ReactTrans\n {...{ i18nKey }}\n components={{\n Code: (\n <Typography\n className=\"neeto-ui-rounded-md neeto-ui-bg-gray-100 p-1\"\n component=\"code\"\n style=\"body3\"\n />\n ),\n Semibold: (\n <Typography\n className=\"n inline-block text-sm font-medium\"\n component=\"p\"\n />\n ),\n ...additionalComponents,\n }}\n values={{\n productSuffix: globalProps.appName,\n ...additionalValues,\n }}\n />\n);\n\nTrans.propTypes = {\n i18nKey: PropTypes.string.isRequired,\n additionalValues: PropTypes.object,\n additionalComponents: PropTypes.objectOf(PropTypes.element),\n};\n\nexport default Trans;\n","import { snakeToCamelCase, isNotEmpty, isPresent, humanize } from \"neetocist\";\nimport { identity, indexBy, prop } from \"ramda\";\n\nimport {\n ACTIONS,\n DATE_FORMAT_OPTIONS_MAP,\n FIELD_NAME_MAP,\n LANGUAGE_OPTIONS_MAP,\n} from \"./constants\";\nimport Trans from \"./Trans\";\n\nconst formatFieldName = field => FIELD_NAME_MAP[field] || humanize(field);\n\nconst createFieldValueFormatter = ({ field, countriesMap }) => {\n switch (field) {\n case \"language\":\n return value => LANGUAGE_OPTIONS_MAP[value]?.label || value;\n case \"dateFormat\":\n return value => DATE_FORMAT_OPTIONS_MAP[value] || value;\n case \"countryIdentifier\":\n return value => countriesMap[value]?.name || value;\n default:\n return identity;\n }\n};\n\nconst formatChangedFields = ({ changes, countriesMap }) => {\n const fields = Object.keys(changes).map((field, index) => {\n const change = changes[field];\n const valueFormatter = createFieldValueFormatter({ field, countriesMap });\n let element;\n\n if (field === \"profileImage\") {\n element = (\n <span key={field}>\n <Trans\n additionalValues={{ field: formatFieldName(field) }}\n i18nKey=\"neetoMolecules.auditLogs.text.updatedFields\"\n />\n </span>\n );\n } else if (change && isPresent(change.from)) {\n element = (\n <span key={field}>\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.updatedFieldsWithPreviousValue\"\n additionalValues={{\n field: formatFieldName(field),\n from: valueFormatter(change.from),\n to: valueFormatter(change.to),\n }}\n />\n </span>\n );\n } else {\n element = (\n <span key={field}>\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.updatedFieldsWithNewValue\"\n additionalValues={{\n field: formatFieldName(field),\n to: valueFormatter(change.to),\n }}\n />\n </span>\n );\n }\n\n return index > 0\n ? [<span key={`sep-${field}`}>, </span>, element]\n : element;\n });\n\n return fields.flat();\n};\n\nexport const transformAction = action =>\n snakeToCamelCase(action.replace(\"audit_logs.organization.\", \"\"));\n\nexport const constructAuditLogText = ({\n countriesMap = {},\n permissionsMap = {},\n action,\n performedBy,\n emails = [],\n firstName,\n lastName,\n organizationRole,\n email,\n changes = {},\n status,\n message,\n errorMessage,\n ...rest\n}) => {\n switch (action) {\n case ACTIONS.INVITED_USERS: {\n if (status === \"success\" && isNotEmpty(emails)) {\n const emailList = emails.join(\", \");\n\n return (\n <Trans\n additionalValues={{ performedBy, emailList }}\n i18nKey=\"neetoMolecules.auditLogs.text.invitedUsers\"\n />\n );\n }\n\n return (\n <Trans\n additionalValues={{ performedBy, errorMessage }}\n i18nKey=\"neetoMolecules.auditLogs.text.invitedUsersFailed\"\n />\n );\n }\n\n case ACTIONS.USER_SIGNED_UP: {\n const name = [firstName, lastName].filter(Boolean).join(\" \");\n const userIdentifier = name || organizationRole || email || \"User\";\n\n return (\n <Trans\n additionalValues={{ userIdentifier }}\n i18nKey=\"neetoMolecules.auditLogs.text.userSignedUp\"\n />\n );\n }\n\n case ACTIONS.UPDATED_USER: {\n const changedFields = formatChangedFields({ changes, countriesMap });\n const affectedUser = email || \"user\";\n\n return (\n <Trans\n additionalComponents={{ ChangedFields: <>{changedFields}</> }}\n additionalValues={{ performedBy, affectedUser, changedFields }}\n i18nKey=\"neetoMolecules.auditLogs.text.updatedUser\"\n />\n );\n }\n\n case ACTIONS.BULK_UPDATE_USERS: {\n if (status === \"success\" && isNotEmpty(emails)) {\n const emailList = emails.join(\", \");\n\n return (\n <Trans\n additionalValues={{ performedBy, emailList, message }}\n i18nKey=\"neetoMolecules.auditLogs.text.bulkUpdateUsers\"\n />\n );\n }\n\n return (\n <Trans\n additionalValues={{ performedBy, errorMessage }}\n i18nKey=\"neetoMolecules.auditLogs.text.bulkUpdateUsersFailed\"\n />\n );\n }\n\n case ACTIONS.UPDATED_USER_PROFILE: {\n const changedFields = formatChangedFields({ changes, countriesMap });\n\n return (\n <Trans\n additionalComponents={{ ChangedFields: <>{changedFields}</> }}\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.updatedUserProfile\"\n />\n );\n }\n\n case ACTIONS.CREATED_ROLE: {\n const roleName = organizationRole || \"role\";\n\n return (\n <Trans\n additionalValues={{ performedBy, roleName }}\n i18nKey=\"neetoMolecules.auditLogs.text.createdRole\"\n />\n );\n }\n\n case ACTIONS.UPDATED_ROLE: {\n const { addedPermissions = [], removedPermissions = [], name } = rest;\n\n const permissionsToText = permissions =>\n permissions\n .map(\n permission =>\n permissionsMap[permission]?.description ||\n humanize(permission.split(\".\")[1])\n )\n .join(\", \");\n\n let i18nKey = \"neetoMolecules.auditLogs.text.updatedRole\";\n\n if (name) {\n i18nKey = \"neetoMolecules.auditLogs.text.updatedRoleName\";\n } else if (isPresent(addedPermissions) && isPresent(removedPermissions)) {\n i18nKey = \"neetoMolecules.auditLogs.text.modifiedRolePermission\";\n } else if (isPresent(addedPermissions)) {\n i18nKey = \"neetoMolecules.auditLogs.text.addedRolePermission\";\n } else if (isPresent(removedPermissions)) {\n i18nKey = \"neetoMolecules.auditLogs.text.removedRolePermission\";\n }\n\n return (\n <Trans\n {...{ i18nKey }}\n additionalValues={{\n performedBy,\n roleName: organizationRole || \"role\",\n name,\n addedPermissionsText: permissionsToText(addedPermissions),\n removedPermissionsText: permissionsToText(removedPermissions),\n addedPermissionsCount: addedPermissions.length,\n removedPermissionsCount: removedPermissions.length,\n }}\n />\n );\n }\n\n case ACTIONS.CONNECTED_GOOGLE_CALENDER: {\n return (\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.connectedGoogleCalender\"\n additionalValues={{\n performedBy,\n emailAddress: changes.emailAddress,\n }}\n />\n );\n }\n\n case ACTIONS.DISCONNECTED_GOOGLE_CALENDER: {\n return (\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.disconnectedGoogleCalender\"\n additionalValues={{\n performedBy,\n emailAddress: changes.emailAddress,\n }}\n />\n );\n }\n\n case ACTIONS.CONNECTED_STRIPE_ACCOUNT: {\n return (\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.connectedStripeAccount\"\n additionalValues={{\n performedBy,\n stripeAccountId: changes.stripeAccountId,\n }}\n />\n );\n }\n\n case ACTIONS.DISCONNECTED_STRIPE_ACCOUNT: {\n return (\n <Trans\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.disconnectedStripeAccount\"\n />\n );\n }\n\n case ACTIONS.CONNECTED_ZOOM_INTEGRATION: {\n return (\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.connectedZoomAccount\"\n additionalValues={{\n performedBy,\n zoomAccountId: changes.zoomAccountId,\n }}\n />\n );\n }\n\n case ACTIONS.DISCONNECTED_ZOOM_INTEGRATION: {\n return (\n <Trans\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.disconnectedZoomAccount\"\n />\n );\n }\n\n case ACTIONS.CONNECTED_CUSTOM_DOMAIN: {\n return (\n <Trans\n additionalValues={{ performedBy, hostname: changes.hostname }}\n i18nKey=\"neetoMolecules.auditLogs.text.connectedCustomDomain\"\n />\n );\n }\n\n case ACTIONS.DELETED_ROLE: {\n const roleName = organizationRole || \"role\";\n\n return (\n <Trans\n additionalValues={{ performedBy, roleName }}\n i18nKey=\"neetoMolecules.auditLogs.text.deletedRole\"\n />\n );\n }\n\n case ACTIONS.CREATED_API_KEY: {\n return (\n <Trans\n additionalValues={{ performedBy, ...rest }}\n i18nKey=\"neetoMolecules.auditLogs.text.createdApiKey\"\n />\n );\n }\n\n case ACTIONS.DELETED_API_KEY: {\n return (\n <Trans\n additionalValues={{ performedBy, ...rest }}\n i18nKey=\"neetoMolecules.auditLogs.text.deletedApiKey\"\n />\n );\n }\n\n case ACTIONS.UPDATED_API_KEY: {\n return (\n <Trans\n additionalValues={{ performedBy, ...rest }}\n i18nKey=\"neetoMolecules.auditLogs.text.updatedApiKey\"\n />\n );\n }\n\n default: {\n return (\n <Trans\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.performedAction\"\n />\n );\n }\n }\n};\n\nexport const indexById = indexBy(prop(\"id\"));\n\nexport const indexByPermissionName = indexBy(prop(\"name\"));\n","import classnames from \"classnames\";\nimport { dateFormat } from \"neetocommons/utils\";\nimport { Typography } from \"neetoui\";\n\nimport { AUDIT_ICON_MAP } from \"./constants\";\nimport { constructAuditLogText, transformAction } from \"./utils\";\n\nconst Card = ({\n auditLog,\n countriesMap,\n index,\n permissionsMap,\n totalCount,\n}) => {\n const { key, metadata, performer, updatedAt } = auditLog;\n\n const action = transformAction(key);\n const performedBy = performer?.name || \"\";\n const performedAt = dateFormat.dateTime(updatedAt);\n\n const auditText = constructAuditLogText({\n countriesMap,\n action,\n performedBy,\n permissionsMap,\n ...metadata,\n });\n\n const Icon = AUDIT_ICON_MAP[action];\n\n return (\n <div\n data-testid=\"audit-log-card\"\n className={classnames(\n \"align-items-center neeto-ui-border-gray-200 flex w-full gap-x-4 border-b border-l border-r p-3\",\n {\n \"rounded-t-md border-t\": index === 0,\n \"rounded-b-md\": index === totalCount - 1,\n }\n )}\n >\n <div className=\"neeto-ui-rounded-full neeto-ui-bg-gray-100 flex size-10 flex-shrink-0 items-center justify-center\">\n <Icon className=\"neeto-ui-text-gray-600 flex-shrink-0\" size={22} />\n </div>\n <div className=\"flex flex-col gap-y-2\" data-testid=\"audit-log-content\">\n <Typography\n component=\"span\"\n data-testid=\"audit-log-text\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {auditText}\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-500 m-0\"\n data-testid=\"audit-log-timestamp\"\n style=\"body3\"\n >\n {performedAt}\n </Typography>\n </div>\n </div>\n );\n};\n\nexport default Card;\n","import axios from \"axios\";\n\nconst fetchAuditLogs = params => axios.get(\"api/v1/audit_logs\", { params });\n\nconst fetchCountries = () => axios.get(\"neeto_team_members/profile/countries\");\n\nconst fetchPermissions = () => axios.get(\"neeto_team_members/permissions\");\n\nconst auditLogsApi = { fetchAuditLogs, fetchCountries, fetchPermissions };\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 { useQuery } from \"@tanstack/react-query\";\nimport { DEFAULT_STALE_TIME } from \"neetocommons/constants\";\n\nimport auditLogsApi from \"./api\";\nimport { COUNTRIES_LIST_QUERY_KEY } from \"./constants\";\n\nexport const useFetchCountries = () =>\n useQuery({\n queryKey: [COUNTRIES_LIST_QUERY_KEY],\n queryFn: auditLogsApi.fetchCountries,\n staleTime: DEFAULT_STALE_TIME,\n });\n","import { useQuery } from \"@tanstack/react-query\";\nimport { DEFAULT_STALE_TIME } from \"neetocommons/constants\";\n\nimport auditLogsApi from \"./api\";\nimport { PERMISSIONS_LIST_QUERY_KEY } from \"./constants\";\n\nexport const useFetchPermissions = () =>\n useQuery({\n queryKey: [PERMISSIONS_LIST_QUERY_KEY],\n queryFn: auditLogsApi.fetchPermissions,\n staleTime: DEFAULT_STALE_TIME,\n });\n","import { useMemo } from \"react\";\n\nimport { isPresent } from \"neetocist\";\nimport { DEFAULT_PAGE_INDEX } from \"neetocommons/constants\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { NoData, Spinner, Pagination } from \"neetoui\";\nimport propTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Container from \"components/Container\";\nimport Header from \"components/Header\";\n\nimport Card from \"./Card\";\nimport { AUDIT_LOGS_PAGE_SIZE } from \"./constants\";\nimport { useFetchAuditLogs } from \"./useAuditLogsApi\";\nimport { useFetchCountries } from \"./useCountriesApi\";\nimport { useFetchPermissions } from \"./usePermissionsApi\";\nimport { indexById, indexByPermissionName } from \"./utils\";\n\nconst AuditLogs = ({ headerProps, noDataHelpText, noDataTitle }) => {\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, pageSize: AUDIT_LOGS_PAGE_SIZE } });\n\n const { data: countriesData } = useFetchCountries();\n\n const { data: permissionsData } = useFetchPermissions();\n\n const countriesList = countriesData?.countries;\n const permissionsList = permissionsData?.permissions;\n\n const permissionsMap = useMemo(\n () => (permissionsList ? indexByPermissionName(permissionsList) : {}),\n [permissionsList]\n );\n\n const countriesMap = useMemo(\n () => (countriesList ? indexById(countriesList) : {}),\n [countriesList]\n );\n\n if (isLoading || isFetching) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <Container isHeaderFixed className=\"overflow-hidden\">\n <Header\n className=\"px-5 md:px-10\"\n title={t(\"neetoMolecules.auditLogs.title\")}\n {...headerProps}\n />\n {isPresent(auditLogs) ? (\n <div className=\"w-full grow overflow-y-auto px-5 md:px-10\">\n {auditLogs.map((auditLog, index) => (\n <Card\n {...{ auditLog, countriesMap, index, permissionsMap }}\n key={auditLog.id}\n totalCount={auditLogs.length}\n />\n ))}\n </div>\n ) : (\n <div className=\"flex h-full w-full items-center justify-center\">\n <NoData\n helpText={noDataHelpText}\n title={noDataTitle || t(\"neetoMolecules.auditLogs.noData\")}\n />\n </div>\n )}\n {totalCount > 0 && (\n <div className=\"flex w-full justify-end px-5 py-4 md:px-10\">\n <Pagination\n count={totalCount}\n pageNo={parseInt(page)}\n pageSize={AUDIT_LOGS_PAGE_SIZE}\n />\n </div>\n )}\n </Container>\n );\n};\n\nAuditLogs.propTypes = {\n /**\n * Props to be passed to the `Header` component.\n */\n headerProps: propTypes.object,\n /**\n * Help text to be displayed to the `NoData` component when there are no audit logs.\n */\n noDataHelpText: propTypes.string,\n /**\n * Title to be passed to the `NoData` component when there are no audit logs.\n */\n noDataTitle: propTypes.string,\n};\n\nexport default AuditLogs;\n"],"names":["AUDIT_LOGS_QUERY_KEY","COUNTRIES_LIST_QUERY_KEY","PERMISSIONS_LIST_QUERY_KEY","ACTIONS","INVITED_USERS","USER_SIGNED_UP","UPDATED_USER","BULK_UPDATE_USERS","UPDATED_USER_PROFILE","CREATED_ROLE","UPDATED_ROLE","DELETED_ROLE","CONNECTED_GOOGLE_CALENDER","DISCONNECTED_GOOGLE_CALENDER","CONNECTED_STRIPE_ACCOUNT","DISCONNECTED_STRIPE_ACCOUNT","CONNECTED_ZOOM_INTEGRATION","DISCONNECTED_ZOOM_INTEGRATION","CONNECTED_CUSTOM_DOMAIN","CREATED_API_KEY","DELETED_API_KEY","UPDATED_API_KEY","AUDIT_ICON_MAP","_AUDIT_ICON_MAP","_defineProperty","UserCircle","UserAdd","User","UserSettings","UserRemove","GoogleCalendar","StripeTypeface","Stripe","Zoom","CustomDomain","ApiKeys","AUDIT_LOGS_PAGE_SIZE","LANGUAGE_OPTIONS_MAP","indexBy","prop","LANGUAGE_OPTIONS","DATE_FORMAT_OPTIONS_MAP","FIELD_NAME_MAP","organizationRole","Trans","_ref","i18nKey","_ref$additionalValues","additionalValues","_ref$additionalCompon","additionalComponents","_jsx","ReactTrans","components","_objectSpread","Code","Typography","className","component","style","Semibold","values","productSuffix","globalProps","appName","formatFieldName","field","humanize","createFieldValueFormatter","countriesMap","value","_LANGUAGE_OPTIONS_MAP","label","_countriesMap$value","name","identity","formatChangedFields","_ref2","changes","fields","Object","keys","map","index","change","valueFormatter","element","children","isPresent","from","to","concat","flat","transformAction","action","snakeToCamelCase","replace","constructAuditLogText","_ref3","_ref3$countriesMap","_ref3$permissionsMap","permissionsMap","performedBy","_ref3$emails","emails","firstName","lastName","email","_ref3$changes","status","message","errorMessage","rest","_objectWithoutProperties","_excluded","isNotEmpty","emailList","join","filter","Boolean","userIdentifier","changedFields","affectedUser","ChangedFields","_Fragment","roleName","_rest$addedPermission","addedPermissions","_rest$removedPermissi","removedPermissions","permissionsToText","permissions","permission","_permissionsMap$permi","description","split","addedPermissionsText","removedPermissionsText","addedPermissionsCount","length","removedPermissionsCount","emailAddress","stripeAccountId","zoomAccountId","hostname","indexById","indexByPermissionName","Card","auditLog","totalCount","key","metadata","performer","updatedAt","performedAt","dateFormat","dateTime","auditText","Icon","_jsxs","classnames","size","lineHeight","fetchAuditLogs","params","axios","get","fetchCountries","fetchPermissions","auditLogsApi","useFetchAuditLogs","_ref$options","options","useQuery","queryKey","queryFn","useFetchCountries","staleTime","DEFAULT_STALE_TIME","useFetchPermissions","AuditLogs","headerProps","noDataHelpText","noDataTitle","_useTranslation","useTranslation","t","_useQueryParams","useQueryParams","_useQueryParams$page","page","DEFAULT_PAGE_INDEX","_useFetchAuditLogs","pageSize","_useFetchAuditLogs$da","data","_useFetchAuditLogs$da2","_useFetchAuditLogs$da3","auditLogs","_useFetchAuditLogs$da4","isLoading","isFetching","_useFetchCountries","countriesData","_useFetchPermissions","permissionsData","countriesList","countries","permissionsList","useMemo","Spinner","Container","isHeaderFixed","Header","title","_createElement","id","NoData","helpText","Pagination","count","pageNo","parseInt"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaO,IAAMA,oBAAoB,GAAG,YAAY;AACzC,IAAMC,wBAAwB,GAAG,gBAAgB,CAAC;AAClD,IAAMC,0BAA0B,GAAG,gCAAgC,CAAC;;AAEpE,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;AAC3BC,EAAAA,yBAAyB,EAAE,yBAAyB;AACpDC,EAAAA,4BAA4B,EAAE,4BAA4B;AAC1DC,EAAAA,wBAAwB,EAAE,wBAAwB;AAClDC,EAAAA,2BAA2B,EAAE,2BAA2B;AACxDC,EAAAA,0BAA0B,EAAE,0BAA0B;AACtDC,EAAAA,6BAA6B,EAAE,6BAA6B;AAC5DC,EAAAA,uBAAuB,EAAE,uBAAuB;AAChDC,EAAAA,eAAe,EAAE,eAAe;AAChCC,EAAAA,eAAe,EAAE,eAAe;AAChCC,EAAAA,eAAe,EAAE;AACnB,CAAC;AASM,IAAMC,cAAc,IAAAC,eAAA,OAAAC,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAD,eAAA,EACxBpB,OAAO,CAACC,aAAa,EAAGqB,UAAU,CAAA,EAClCtB,OAAO,CAACE,cAAc,EAAGqB,OAAO,CAAA,EAChCvB,OAAO,CAACG,YAAY,EAAGqB,IAAI,CAAA,EAC3BxB,OAAO,CAACI,iBAAiB,EAAGoB,IAAI,CAAA,EAChCxB,OAAO,CAACK,oBAAoB,EAAGoB,YAAY,CAAA,EAC3CzB,OAAO,CAACM,YAAY,EAAGiB,OAAO,CAAA,EAC9BvB,OAAO,CAACO,YAAY,EAAGkB,YAAY,GACnCzB,OAAO,CAACQ,YAAY,EAAGkB,UAAU,CAAA,EACjC1B,OAAO,CAACS,yBAAyB,EAAGkB,cAAc,CAAA,EAClD3B,OAAO,CAACU,4BAA4B,EAAGiB,cAAc,CAAA,EAAAN,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAD,eAAA,EACrDpB,OAAO,CAACW,wBAAwB,EAAGiB,cAAc,CAAA,EACjD5B,OAAO,CAACY,2BAA2B,EAAGiB,MAAM,CAAA,EAC5C7B,OAAO,CAACa,0BAA0B,EAAGiB,IAAI,CAAA,EACzC9B,OAAO,CAACc,6BAA6B,EAAGgB,IAAI,CAAA,EAC5C9B,OAAO,CAACe,uBAAuB,EAAGgB,YAAY,CAAA,EAC9C/B,OAAO,CAACgB,eAAe,EAAGgB,OAAO,CAAA,EACjChC,OAAO,CAACiB,eAAe,EAAGe,OAAO,GACjChC,OAAO,CAACkB,eAAe,EAAGc,OAAO,CAAA,CACnC;AAEM,IAAMC,oBAAoB,GAAG,EAAE;AAE/B,IAAMC,oBAAoB,GAAGC,aAAO,CAACC,UAAI,CAAC,OAAO,CAAC,EAAEC,0BAAgB,CAAC;AAErE,IAAMC,uBAAuB,GAAG;AACrC,EAAA,UAAU,EAAE,YAAY;AACxB,EAAA,UAAU,EAAE,YAAY;AACxB,EAAA,UAAU,EAAE;AACd,CAAC;AAEM,IAAMC,cAAc,GAAG;AAAEC,EAAAA,gBAAgB,EAAE;AAAO,CAAC;;;;ACvE1D,IAAMC,KAAK,GAAG,SAARA,KAAKA,CAAAC,IAAA,EAAA;AAAA,EAAA,IACTC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAAC,qBAAA,GAAAF,IAAA,CACPG,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAAD,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;IAAAE,qBAAA,GAAAJ,IAAA,CACrBK,oBAAoB;AAApBA,IAAAA,oBAAoB,GAAAD,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;EAAA,oBAEzBE,cAAA,CAACC,kBAAU,EAAA;AACHN,IAAAA,OAAO,EAAPA,OAAO;AACbO,IAAAA,UAAU,EAAAC,eAAA,CAAA;MACRC,IAAI,eACFJ,cAAA,CAACK,UAAU,EAAA;AACTC,QAAAA,SAAS,EAAC,8CAA8C;AACxDC,QAAAA,SAAS,EAAC,MAAM;AAChBC,QAAAA,KAAK,EAAC;AAAO,OACd,CACF;MACDC,QAAQ,eACNT,cAAA,CAACK,UAAU,EAAA;AACTC,QAAAA,SAAS,EAAC,oCAAoC;AAC9CC,QAAAA,SAAS,EAAC;OACX;AACF,KAAA,EACER,oBAAoB,CACvB;AACFW,IAAAA,MAAM,EAAAP,eAAA,CAAA;MACJQ,aAAa,EAAEC,wBAAW,CAACC;AAAO,KAAA,EAC/BhB,gBAAgB;AACnB,GACH,CAAC;AAAA,CACH;;;;;ACtBD,IAAMiB,eAAe,GAAG,SAAlBA,eAAeA,CAAGC,KAAK,EAAA;EAAA,OAAIxB,cAAc,CAACwB,KAAK,CAAC,IAAIC,kBAAQ,CAACD,KAAK,CAAC;AAAA,CAAA;AAEzE,IAAME,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAAvB,IAAA,EAAgC;AAAA,EAAA,IAA1BqB,KAAK,GAAArB,IAAA,CAALqB,KAAK;IAAEG,YAAY,GAAAxB,IAAA,CAAZwB,YAAY;AACtD,EAAA,QAAQH,KAAK;AACX,IAAA,KAAK,UAAU;AACb,MAAA,OAAO,UAAAI,KAAK,EAAA;AAAA,QAAA,IAAAC,qBAAA;AAAA,QAAA,OAAI,CAAA,CAAAA,qBAAA,GAAAlC,oBAAoB,CAACiC,KAAK,CAAC,MAAA,IAAA,IAAAC,qBAAA,KAAA,MAAA,GAAA,MAAA,GAA3BA,qBAAA,CAA6BC,KAAK,KAAIF,KAAK;AAAA,MAAA,CAAA;AAC7D,IAAA,KAAK,YAAY;AACf,MAAA,OAAO,UAAAA,KAAK,EAAA;AAAA,QAAA,OAAI7B,uBAAuB,CAAC6B,KAAK,CAAC,IAAIA,KAAK;AAAA,MAAA,CAAA;AACzD,IAAA,KAAK,mBAAmB;AACtB,MAAA,OAAO,UAAAA,KAAK,EAAA;AAAA,QAAA,IAAAG,mBAAA;AAAA,QAAA,OAAI,CAAA,CAAAA,mBAAA,GAAAJ,YAAY,CAACC,KAAK,CAAC,MAAA,IAAA,IAAAG,mBAAA,KAAA,MAAA,GAAA,MAAA,GAAnBA,mBAAA,CAAqBC,IAAI,KAAIJ,KAAK;AAAA,MAAA,CAAA;AACpD,IAAA;AACE,MAAA,OAAOK,cAAQ;AACnB;AACF,CAAC;AAED,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAAC,KAAA,EAAkC;AAAA,EAAA,IAA5BC,OAAO,GAAAD,KAAA,CAAPC,OAAO;IAAET,YAAY,GAAAQ,KAAA,CAAZR,YAAY;AAClD,EAAA,IAAMU,MAAM,GAAGC,MAAM,CAACC,IAAI,CAACH,OAAO,CAAC,CAACI,GAAG,CAAC,UAAChB,KAAK,EAAEiB,KAAK,EAAK;AACxD,IAAA,IAAMC,MAAM,GAAGN,OAAO,CAACZ,KAAK,CAAC;IAC7B,IAAMmB,cAAc,GAAGjB,yBAAyB,CAAC;AAAEF,MAAAA,KAAK,EAALA,KAAK;AAAEG,MAAAA,YAAY,EAAZA;AAAa,KAAC,CAAC;AACzE,IAAA,IAAIiB,OAAO;IAEX,IAAIpB,KAAK,KAAK,cAAc,EAAE;AAC5BoB,MAAAA,OAAO,gBACLnC,cAAA,CAAA,MAAA,EAAA;QAAAoC,QAAA,eACEpC,cAAA,CAACP,KAAK,EAAA;AACJI,UAAAA,gBAAgB,EAAE;YAAEkB,KAAK,EAAED,eAAe,CAACC,KAAK;WAAI;AACpDpB,UAAAA,OAAO,EAAC;SACT;AAAC,OAAA,EAJOoB,KAKL,CACP;IACH,CAAC,MAAM,IAAIkB,MAAM,IAAII,mBAAS,CAACJ,MAAM,CAACK,IAAI,CAAC,EAAE;AAC3CH,MAAAA,OAAO,gBACLnC,cAAA,CAAA,MAAA,EAAA;QAAAoC,QAAA,eACEpC,cAAA,CAACP,KAAK,EAAA;AACJE,UAAAA,OAAO,EAAC,8DAA8D;AACtEE,UAAAA,gBAAgB,EAAE;AAChBkB,YAAAA,KAAK,EAAED,eAAe,CAACC,KAAK,CAAC;AAC7BuB,YAAAA,IAAI,EAAEJ,cAAc,CAACD,MAAM,CAACK,IAAI,CAAC;AACjCC,YAAAA,EAAE,EAAEL,cAAc,CAACD,MAAM,CAACM,EAAE;AAC9B;SACD;AAAC,OAAA,EAROxB,KASL,CACP;AACH,IAAA,CAAC,MAAM;AACLoB,MAAAA,OAAO,gBACLnC,cAAA,CAAA,MAAA,EAAA;QAAAoC,QAAA,eACEpC,cAAA,CAACP,KAAK,EAAA;AACJE,UAAAA,OAAO,EAAC,yDAAyD;AACjEE,UAAAA,gBAAgB,EAAE;AAChBkB,YAAAA,KAAK,EAAED,eAAe,CAACC,KAAK,CAAC;AAC7BwB,YAAAA,EAAE,EAAEL,cAAc,CAACD,MAAM,CAACM,EAAE;AAC9B;SACD;AAAC,OAAA,EAPOxB,KAQL,CACP;AACH,IAAA;AAEA,IAAA,OAAOiB,KAAK,GAAG,CAAC,GACZ,cAAChC,cAAA,CAAA,MAAA,EAAA;AAAAoC,MAAAA,QAAA,EAA2B;KAAE,EAAA,MAAA,CAAAI,MAAA,CAAXzB,KAAK,CAAY,CAAC,EAAEoB,OAAO,CAAC,GAC/CA,OAAO;AACb,EAAA,CAAC,CAAC;AAEF,EAAA,OAAOP,MAAM,CAACa,IAAI,EAAE;AACtB,CAAC;AAEM,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAGC,MAAM,EAAA;EAAA,OACnCC,0BAAgB,CAACD,MAAM,CAACE,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;AAAA,CAAA;AAE3D,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAAC,KAAA,EAe5B;AAAA,EAAA,IAAAC,kBAAA,GAAAD,KAAA,CAdJ7B,YAAY;AAAZA,IAAAA,YAAY,GAAA8B,kBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,kBAAA;IAAAC,oBAAA,GAAAF,KAAA,CACjBG,cAAc;AAAdA,IAAAA,cAAc,GAAAD,oBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,oBAAA;IACnBN,MAAM,GAAAI,KAAA,CAANJ,MAAM;IACNQ,WAAW,GAAAJ,KAAA,CAAXI,WAAW;IAAAC,YAAA,GAAAL,KAAA,CACXM,MAAM;AAANA,IAAAA,MAAM,GAAAD,YAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,YAAA;IACXE,SAAS,GAAAP,KAAA,CAATO,SAAS;IACTC,QAAQ,GAAAR,KAAA,CAARQ,QAAQ;IACR/D,gBAAgB,GAAAuD,KAAA,CAAhBvD,gBAAgB;IAChBgE,KAAK,GAAAT,KAAA,CAALS,KAAK;IAAAC,aAAA,GAAAV,KAAA,CACLpB,OAAO;AAAPA,IAAAA,OAAO,GAAA8B,aAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,aAAA;IACZC,MAAM,GAAAX,KAAA,CAANW,MAAM;IACNC,OAAO,GAAAZ,KAAA,CAAPY,OAAO;IACPC,YAAY,GAAAb,KAAA,CAAZa,YAAY;AACTC,IAAAA,IAAI,GAAAC,wBAAA,CAAAf,KAAA,EAAAgB,SAAA,CAAA;AAEP,EAAA,QAAQpB,MAAM;IACZ,KAAK3F,OAAO,CAACC,aAAa;AAAE,MAAA;QAC1B,IAAIyG,MAAM,KAAK,SAAS,IAAIM,oBAAU,CAACX,MAAM,CAAC,EAAE;AAC9C,UAAA,IAAMY,SAAS,GAAGZ,MAAM,CAACa,IAAI,CAAC,IAAI,CAAC;UAEnC,oBACElE,cAAA,CAACP,KAAK,EAAA;AACJI,YAAAA,gBAAgB,EAAE;AAAEsD,cAAAA,WAAW,EAAXA,WAAW;AAAEc,cAAAA,SAAS,EAATA;aAAY;AAC7CtE,YAAAA,OAAO,EAAC;AAA4C,WACrD,CAAC;AAEN,QAAA;QAEA,oBACEK,cAAA,CAACP,KAAK,EAAA;AACJI,UAAAA,gBAAgB,EAAE;AAAEsD,YAAAA,WAAW,EAAXA,WAAW;AAAES,YAAAA,YAAY,EAAZA;WAAe;AAChDjE,UAAAA,OAAO,EAAC;AAAkD,SAC3D,CAAC;AAEN,MAAA;IAEA,KAAK3C,OAAO,CAACE,cAAc;AAAE,MAAA;AAC3B,QAAA,IAAMqE,IAAI,GAAG,CAAC+B,SAAS,EAAEC,QAAQ,CAAC,CAACY,MAAM,CAACC,OAAO,CAAC,CAACF,IAAI,CAAC,GAAG,CAAC;QAC5D,IAAMG,cAAc,GAAG9C,IAAI,IAAI/B,gBAAgB,IAAIgE,KAAK,IAAI,MAAM;QAElE,oBACExD,cAAA,CAACP,KAAK,EAAA;AACJI,UAAAA,gBAAgB,EAAE;AAAEwE,YAAAA,cAAc,EAAdA;WAAiB;AACrC1E,UAAAA,OAAO,EAAC;AAA4C,SACrD,CAAC;AAEN,MAAA;IAEA,KAAK3C,OAAO,CAACG,YAAY;AAAE,MAAA;QACzB,IAAMmH,aAAa,GAAG7C,mBAAmB,CAAC;AAAEE,UAAAA,OAAO,EAAPA,OAAO;AAAET,UAAAA,YAAY,EAAZA;AAAa,SAAC,CAAC;AACpE,QAAA,IAAMqD,YAAY,GAAGf,KAAK,IAAI,MAAM;QAEpC,oBACExD,cAAA,CAACP,KAAK,EAAA;AACJM,UAAAA,oBAAoB,EAAE;YAAEyE,aAAa,eAAExE,cAAA,CAAAyE,mBAAA,EAAA;AAAArC,cAAAA,QAAA,EAAGkC;aAAgB;WAAI;AAC9DzE,UAAAA,gBAAgB,EAAE;AAAEsD,YAAAA,WAAW,EAAXA,WAAW;AAAEoB,YAAAA,YAAY,EAAZA,YAAY;AAAED,YAAAA,aAAa,EAAbA;WAAgB;AAC/D3E,UAAAA,OAAO,EAAC;AAA2C,SACpD,CAAC;AAEN,MAAA;IAEA,KAAK3C,OAAO,CAACI,iBAAiB;AAAE,MAAA;QAC9B,IAAIsG,MAAM,KAAK,SAAS,IAAIM,oBAAU,CAACX,MAAM,CAAC,EAAE;AAC9C,UAAA,IAAMY,UAAS,GAAGZ,MAAM,CAACa,IAAI,CAAC,IAAI,CAAC;UAEnC,oBACElE,cAAA,CAACP,KAAK,EAAA;AACJI,YAAAA,gBAAgB,EAAE;AAAEsD,cAAAA,WAAW,EAAXA,WAAW;AAAEc,cAAAA,SAAS,EAATA,UAAS;AAAEN,cAAAA,OAAO,EAAPA;aAAU;AACtDhE,YAAAA,OAAO,EAAC;AAA+C,WACxD,CAAC;AAEN,QAAA;QAEA,oBACEK,cAAA,CAACP,KAAK,EAAA;AACJI,UAAAA,gBAAgB,EAAE;AAAEsD,YAAAA,WAAW,EAAXA,WAAW;AAAES,YAAAA,YAAY,EAAZA;WAAe;AAChDjE,UAAAA,OAAO,EAAC;AAAqD,SAC9D,CAAC;AAEN,MAAA;IAEA,KAAK3C,OAAO,CAACK,oBAAoB;AAAE,MAAA;QACjC,IAAMiH,cAAa,GAAG7C,mBAAmB,CAAC;AAAEE,UAAAA,OAAO,EAAPA,OAAO;AAAET,UAAAA,YAAY,EAAZA;AAAa,SAAC,CAAC;QAEpE,oBACElB,cAAA,CAACP,KAAK,EAAA;AACJM,UAAAA,oBAAoB,EAAE;YAAEyE,aAAa,eAAExE,cAAA,CAAAyE,mBAAA,EAAA;AAAArC,cAAAA,QAAA,EAAGkC;aAAgB;WAAI;AAC9DzE,UAAAA,gBAAgB,EAAE;AAAEsD,YAAAA,WAAW,EAAXA;WAAc;AAClCxD,UAAAA,OAAO,EAAC;AAAkD,SAC3D,CAAC;AAEN,MAAA;IAEA,KAAK3C,OAAO,CAACM,YAAY;AAAE,MAAA;AACzB,QAAA,IAAMoH,QAAQ,GAAGlF,gBAAgB,IAAI,MAAM;QAE3C,oBACEQ,cAAA,CAACP,KAAK,EAAA;AACJI,UAAAA,gBAAgB,EAAE;AAAEsD,YAAAA,WAAW,EAAXA,WAAW;AAAEuB,YAAAA,QAAQ,EAARA;WAAW;AAC5C/E,UAAAA,OAAO,EAAC;AAA2C,SACpD,CAAC;AAEN,MAAA;IAEA,KAAK3C,OAAO,CAACO,YAAY;AAAE,MAAA;AACzB,QAAA,IAAAoH,qBAAA,GAAiEd,IAAI,CAA7De,gBAAgB;AAAhBA,UAAAA,gBAAgB,GAAAD,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;UAAAE,qBAAA,GAAoChB,IAAI,CAAtCiB,kBAAkB;AAAlBA,UAAAA,kBAAkB,GAAAD,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;UAAEtD,KAAI,GAAKsC,IAAI,CAAbtC,IAAI;AAE5D,QAAA,IAAMwD,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGC,WAAW,EAAA;AAAA,UAAA,OACnCA,WAAW,CACRjD,GAAG,CACF,UAAAkD,UAAU,EAAA;AAAA,YAAA,IAAAC,qBAAA;YAAA,OACR,CAAA,CAAAA,qBAAA,GAAAhC,cAAc,CAAC+B,UAAU,CAAC,MAAA,IAAA,IAAAC,qBAAA,KAAA,MAAA,GAAA,MAAA,GAA1BA,qBAAA,CAA4BC,WAAW,KACvCnE,kBAAQ,CAACiE,UAAU,CAACG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAA,UAAA,CACtC,CAAC,CACAlB,IAAI,CAAC,IAAI,CAAC;AAAA,QAAA,CAAA;QAEf,IAAIvE,OAAO,GAAG,2CAA2C;AAEzD,QAAA,IAAI4B,KAAI,EAAE;AACR5B,UAAAA,OAAO,GAAG,+CAA+C;QAC3D,CAAC,MAAM,IAAI0C,mBAAS,CAACuC,gBAAgB,CAAC,IAAIvC,mBAAS,CAACyC,kBAAkB,CAAC,EAAE;AACvEnF,UAAAA,OAAO,GAAG,sDAAsD;AAClE,QAAA,CAAC,MAAM,IAAI0C,mBAAS,CAACuC,gBAAgB,CAAC,EAAE;AACtCjF,UAAAA,OAAO,GAAG,mDAAmD;AAC/D,QAAA,CAAC,MAAM,IAAI0C,mBAAS,CAACyC,kBAAkB,CAAC,EAAE;AACxCnF,UAAAA,OAAO,GAAG,qDAAqD;AACjE,QAAA;QAEA,oBACEK,cAAA,CAACP,KAAK,EAAA;AACEE,UAAAA,OAAO,EAAPA,OAAO;AACbE,UAAAA,gBAAgB,EAAE;AAChBsD,YAAAA,WAAW,EAAXA,WAAW;YACXuB,QAAQ,EAAElF,gBAAgB,IAAI,MAAM;AACpC+B,YAAAA,IAAI,EAAJA,KAAI;AACJ8D,YAAAA,oBAAoB,EAAEN,iBAAiB,CAACH,gBAAgB,CAAC;AACzDU,YAAAA,sBAAsB,EAAEP,iBAAiB,CAACD,kBAAkB,CAAC;YAC7DS,qBAAqB,EAAEX,gBAAgB,CAACY,MAAM;YAC9CC,uBAAuB,EAAEX,kBAAkB,CAACU;AAC9C;AAAE,SACH,CAAC;AAEN,MAAA;IAEA,KAAKxI,OAAO,CAACS,yBAAyB;AAAE,MAAA;QACtC,oBACEuC,cAAA,CAACP,KAAK,EAAA;AACJE,UAAAA,OAAO,EAAC,uDAAuD;AAC/DE,UAAAA,gBAAgB,EAAE;AAChBsD,YAAAA,WAAW,EAAXA,WAAW;YACXuC,YAAY,EAAE/D,OAAO,CAAC+D;AACxB;AAAE,SACH,CAAC;AAEN,MAAA;IAEA,KAAK1I,OAAO,CAACU,4BAA4B;AAAE,MAAA;QACzC,oBACEsC,cAAA,CAACP,KAAK,EAAA;AACJE,UAAAA,OAAO,EAAC,0DAA0D;AAClEE,UAAAA,gBAAgB,EAAE;AAChBsD,YAAAA,WAAW,EAAXA,WAAW;YACXuC,YAAY,EAAE/D,OAAO,CAAC+D;AACxB;AAAE,SACH,CAAC;AAEN,MAAA;IAEA,KAAK1I,OAAO,CAACW,wBAAwB;AAAE,MAAA;QACrC,oBACEqC,cAAA,CAACP,KAAK,EAAA;AACJE,UAAAA,OAAO,EAAC,sDAAsD;AAC9DE,UAAAA,gBAAgB,EAAE;AAChBsD,YAAAA,WAAW,EAAXA,WAAW;YACXwC,eAAe,EAAEhE,OAAO,CAACgE;AAC3B;AAAE,SACH,CAAC;AAEN,MAAA;IAEA,KAAK3I,OAAO,CAACY,2BAA2B;AAAE,MAAA;QACxC,oBACEoC,cAAA,CAACP,KAAK,EAAA;AACJI,UAAAA,gBAAgB,EAAE;AAAEsD,YAAAA,WAAW,EAAXA;WAAc;AAClCxD,UAAAA,OAAO,EAAC;AAAyD,SAClE,CAAC;AAEN,MAAA;IAEA,KAAK3C,OAAO,CAACa,0BAA0B;AAAE,MAAA;QACvC,oBACEmC,cAAA,CAACP,KAAK,EAAA;AACJE,UAAAA,OAAO,EAAC,oDAAoD;AAC5DE,UAAAA,gBAAgB,EAAE;AAChBsD,YAAAA,WAAW,EAAXA,WAAW;YACXyC,aAAa,EAAEjE,OAAO,CAACiE;AACzB;AAAE,SACH,CAAC;AAEN,MAAA;IAEA,KAAK5I,OAAO,CAACc,6BAA6B;AAAE,MAAA;QAC1C,oBACEkC,cAAA,CAACP,KAAK,EAAA;AACJI,UAAAA,gBAAgB,EAAE;AAAEsD,YAAAA,WAAW,EAAXA;WAAc;AAClCxD,UAAAA,OAAO,EAAC;AAAuD,SAChE,CAAC;AAEN,MAAA;IAEA,KAAK3C,OAAO,CAACe,uBAAuB;AAAE,MAAA;QACpC,oBACEiC,cAAA,CAACP,KAAK,EAAA;AACJI,UAAAA,gBAAgB,EAAE;AAAEsD,YAAAA,WAAW,EAAXA,WAAW;YAAE0C,QAAQ,EAAElE,OAAO,CAACkE;WAAW;AAC9DlG,UAAAA,OAAO,EAAC;AAAqD,SAC9D,CAAC;AAEN,MAAA;IAEA,KAAK3C,OAAO,CAACQ,YAAY;AAAE,MAAA;AACzB,QAAA,IAAMkH,SAAQ,GAAGlF,gBAAgB,IAAI,MAAM;QAE3C,oBACEQ,cAAA,CAACP,KAAK,EAAA;AACJI,UAAAA,gBAAgB,EAAE;AAAEsD,YAAAA,WAAW,EAAXA,WAAW;AAAEuB,YAAAA,QAAQ,EAARA;WAAW;AAC5C/E,UAAAA,OAAO,EAAC;AAA2C,SACpD,CAAC;AAEN,MAAA;IAEA,KAAK3C,OAAO,CAACgB,eAAe;AAAE,MAAA;QAC5B,oBACEgC,cAAA,CAACP,KAAK,EAAA;AACJI,UAAAA,gBAAgB,EAAAM,eAAA,CAAA;AAAIgD,YAAAA,WAAW,EAAXA;AAAW,WAAA,EAAKU,IAAI,CAAG;AAC3ClE,UAAAA,OAAO,EAAC;AAA6C,SACtD,CAAC;AAEN,MAAA;IAEA,KAAK3C,OAAO,CAACiB,eAAe;AAAE,MAAA;QAC5B,oBACE+B,cAAA,CAACP,KAAK,EAAA;AACJI,UAAAA,gBAAgB,EAAAM,eAAA,CAAA;AAAIgD,YAAAA,WAAW,EAAXA;AAAW,WAAA,EAAKU,IAAI,CAAG;AAC3ClE,UAAAA,OAAO,EAAC;AAA6C,SACtD,CAAC;AAEN,MAAA;IAEA,KAAK3C,OAAO,CAACkB,eAAe;AAAE,MAAA;QAC5B,oBACE8B,cAAA,CAACP,KAAK,EAAA;AACJI,UAAAA,gBAAgB,EAAAM,eAAA,CAAA;AAAIgD,YAAAA,WAAW,EAAXA;AAAW,WAAA,EAAKU,IAAI,CAAG;AAC3ClE,UAAAA,OAAO,EAAC;AAA6C,SACtD,CAAC;AAEN,MAAA;AAEA,IAAA;AAAS,MAAA;QACP,oBACEK,cAAA,CAACP,KAAK,EAAA;AACJI,UAAAA,gBAAgB,EAAE;AAAEsD,YAAAA,WAAW,EAAXA;WAAc;AAClCxD,UAAAA,OAAO,EAAC;AAA+C,SACxD,CAAC;AAEN,MAAA;AACF;AACF,CAAC;AAEM,IAAMmG,SAAS,GAAG3G,aAAO,CAACC,UAAI,CAAC,IAAI,CAAC,CAAC;AAErC,IAAM2G,qBAAqB,GAAG5G,aAAO,CAACC,UAAI,CAAC,MAAM,CAAC,CAAC;;;;ACvV1D,IAAM4G,IAAI,GAAG,SAAPA,IAAIA,CAAAtG,IAAA,EAMJ;AAAA,EAAA,IALJuG,QAAQ,GAAAvG,IAAA,CAARuG,QAAQ;IACR/E,YAAY,GAAAxB,IAAA,CAAZwB,YAAY;IACZc,KAAK,GAAAtC,IAAA,CAALsC,KAAK;IACLkB,cAAc,GAAAxD,IAAA,CAAdwD,cAAc;IACdgD,UAAU,GAAAxG,IAAA,CAAVwG,UAAU;AAEV,EAAA,IAAQC,GAAG,GAAqCF,QAAQ,CAAhDE,GAAG;IAAEC,QAAQ,GAA2BH,QAAQ,CAA3CG,QAAQ;IAAEC,SAAS,GAAgBJ,QAAQ,CAAjCI,SAAS;IAAEC,SAAS,GAAKL,QAAQ,CAAtBK,SAAS;AAE3C,EAAA,IAAM3D,MAAM,GAAGD,eAAe,CAACyD,GAAG,CAAC;EACnC,IAAMhD,WAAW,GAAG,CAAAkD,SAAS,KAAA,IAAA,IAATA,SAAS,KAAA,MAAA,GAAA,MAAA,GAATA,SAAS,CAAE9E,IAAI,KAAI,EAAE;AACzC,EAAA,IAAMgF,WAAW,GAAGC,gBAAU,CAACC,QAAQ,CAACH,SAAS,CAAC;AAElD,EAAA,IAAMI,SAAS,GAAG5D,qBAAqB,CAAA3C,eAAA,CAAA;AACrCe,IAAAA,YAAY,EAAZA,YAAY;AACZyB,IAAAA,MAAM,EAANA,MAAM;AACNQ,IAAAA,WAAW,EAAXA,WAAW;AACXD,IAAAA,cAAc,EAAdA;GAAc,EACXkD,QAAQ,CACZ,CAAC;AAEF,EAAA,IAAMO,IAAI,GAAGxI,cAAc,CAACwE,MAAM,CAAC;AAEnC,EAAA,oBACEiE,eAAA,CAAA,KAAA,EAAA;AACE,IAAA,aAAA,EAAY,gBAAgB;AAC5BtG,IAAAA,SAAS,EAAEuG,UAAU,CACnB,gGAAgG,EAChG;MACE,uBAAuB,EAAE7E,KAAK,KAAK,CAAC;AACpC,MAAA,cAAc,EAAEA,KAAK,KAAKkE,UAAU,GAAG;AACzC,KACF,CAAE;AAAA9D,IAAAA,QAAA,gBAEFpC,cAAA,CAAA,KAAA,EAAA;AAAKM,MAAAA,SAAS,EAAC,mGAAmG;MAAA8B,QAAA,eAChHpC,cAAA,CAAC2G,IAAI,EAAA;AAACrG,QAAAA,SAAS,EAAC,sCAAsC;AAACwG,QAAAA,IAAI,EAAE;OAAK;KAC/D,CAAC,eACNF,eAAA,CAAA,KAAA,EAAA;AAAKtG,MAAAA,SAAS,EAAC,uBAAuB;AAAC,MAAA,aAAA,EAAY,mBAAmB;MAAA8B,QAAA,EAAA,cACpEpC,cAAA,CAACK,UAAU,EAAA;AACTE,QAAAA,SAAS,EAAC,MAAM;AAChB,QAAA,aAAA,EAAY,gBAAgB;AAC5BwG,QAAAA,UAAU,EAAC,QAAQ;AACnBvG,QAAAA,KAAK,EAAC,OAAO;AAAA4B,QAAAA,QAAA,EAEZsE;AAAS,OACA,CAAC,eACb1G,cAAA,CAACK,UAAU,EAAA;AACTC,QAAAA,SAAS,EAAC,4BAA4B;AACtC,QAAA,aAAA,EAAY,qBAAqB;AACjCE,QAAAA,KAAK,EAAC,OAAO;AAAA4B,QAAAA,QAAA,EAEZmE;AAAW,OACF,CAAC;AAAA,KACV,CAAC;AAAA,GACH,CAAC;AAEV,CAAC;;AC7DD,IAAMS,cAAc,GAAG,SAAjBA,cAAcA,CAAGC,MAAM,EAAA;AAAA,EAAA,OAAIC,KAAK,CAACC,GAAG,CAAC,mBAAmB,EAAE;AAAEF,IAAAA,MAAM,EAANA;AAAO,GAAC,CAAC;AAAA,CAAA;AAE3E,IAAMG,cAAc,GAAG,SAAjBA,cAAcA,GAAA;AAAA,EAAA,OAASF,KAAK,CAACC,GAAG,CAAC,sCAAsC,CAAC;AAAA,CAAA;AAE9E,IAAME,gBAAgB,GAAG,SAAnBA,gBAAgBA,GAAA;AAAA,EAAA,OAASH,KAAK,CAACC,GAAG,CAAC,gCAAgC,CAAC;AAAA,CAAA;AAE1E,IAAMG,YAAY,GAAG;AAAEN,EAAAA,cAAc,EAAdA,cAAc;AAAEI,EAAAA,cAAc,EAAdA,cAAc;AAAEC,EAAAA,gBAAgB,EAAhBA;AAAiB,CAAC;;;;ACHlE,IAAME,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAA7H,IAAA,EAAA;AAAA,EAAA,IAAMuH,MAAM,GAAAvH,IAAA,CAANuH,MAAM;IAAAO,YAAA,GAAA9H,IAAA,CAAE+H,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,YAAA;EAAA,OACtDE,mBAAQ,CAAAvH,eAAA,CAAA;AACNwH,IAAAA,QAAQ,EAAE,CAAC9K,oBAAoB,EAAEoK,MAAM,CAAC;IACxCW,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,MAAA,OAAQN,YAAY,CAACN,cAAc,CAACC,MAAM,CAAC;AAAA,IAAA;GAAA,EAC/CQ,OAAO,CACX,CAAC;AAAA,CAAA;;ACJG,IAAMI,iBAAiB,GAAG,SAApBA,iBAAiBA,GAAA;AAAA,EAAA,OAC5BH,mBAAQ,CAAC;IACPC,QAAQ,EAAE,CAAC7K,wBAAwB,CAAC;IACpC8K,OAAO,EAAEN,YAAY,CAACF,cAAc;AACpCU,IAAAA,SAAS,EAAEC;AACb,GAAC,CAAC;AAAA,CAAA;;ACLG,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,GAAA;AAAA,EAAA,OAC9BN,mBAAQ,CAAC;IACPC,QAAQ,EAAE,CAAC5K,0BAA0B,CAAC;IACtC6K,OAAO,EAAEN,YAAY,CAACD,gBAAgB;AACtCS,IAAAA,SAAS,EAAEC;AACb,GAAC,CAAC;AAAA,CAAA;;;;ACQJ,IAAME,SAAS,GAAG,SAAZA,SAASA,CAAAvI,IAAA,EAAqD;AAAA,EAAA,IAA/CwI,WAAW,GAAAxI,IAAA,CAAXwI,WAAW;IAAEC,cAAc,GAAAzI,IAAA,CAAdyI,cAAc;IAAEC,WAAW,GAAA1I,IAAA,CAAX0I,WAAW;AAC3D,EAAA,IAAAC,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;AAET,EAAA,IAAAC,eAAA,GAAsCC,yBAAc,EAAE;IAAAC,oBAAA,GAAAF,eAAA,CAA9CG,IAAI;AAAJA,IAAAA,IAAI,GAAAD,oBAAA,KAAA,MAAA,GAAGE,4BAAkB,GAAAF,oBAAA;EAEjC,IAAAG,kBAAA,GAIItB,iBAAiB,CAAC;AAAEN,MAAAA,MAAM,EAAE;AAAE0B,QAAAA,IAAI,EAAJA,IAAI;AAAEG,QAAAA,QAAQ,EAAE7J;AAAqB;AAAE,KAAC,CAAC;IAAA8J,qBAAA,GAAAF,kBAAA,CAHzEG,IAAI;AAAAC,IAAAA,sBAAA,GAAAF,qBAAA,KAAA,MAAA,GAAuC,EAAE,GAAAA,qBAAA;IAAAG,sBAAA,GAAAD,sBAAA,CAArCE,SAAS;AAATA,IAAAA,SAAS,GAAAD,sBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,sBAAA;IAAAE,sBAAA,GAAAH,sBAAA,CAAE/C,UAAU;AAAVA,IAAAA,UAAU,GAAAkD,sBAAA,KAAA,MAAA,GAAG,CAAC,GAAAA,sBAAA;IACtCC,SAAS,GAAAR,kBAAA,CAATQ,SAAS;IACTC,UAAU,GAAAT,kBAAA,CAAVS,UAAU;AAGZ,EAAA,IAAAC,kBAAA,GAAgC1B,iBAAiB,EAAE;IAArC2B,aAAa,GAAAD,kBAAA,CAAnBP,IAAI;AAEZ,EAAA,IAAAS,oBAAA,GAAkCzB,mBAAmB,EAAE;IAAzC0B,eAAe,GAAAD,oBAAA,CAArBT,IAAI;EAEZ,IAAMW,aAAa,GAAGH,aAAa,KAAA,IAAA,IAAbA,aAAa,KAAA,MAAA,GAAA,MAAA,GAAbA,aAAa,CAAEI,SAAS;EAC9C,IAAMC,eAAe,GAAGH,eAAe,KAAA,IAAA,IAAfA,eAAe,KAAA,MAAA,GAAA,MAAA,GAAfA,eAAe,CAAE1E,WAAW;EAEpD,IAAM9B,cAAc,GAAG4G,aAAO,CAC5B,YAAA;IAAA,OAAOD,eAAe,GAAG9D,qBAAqB,CAAC8D,eAAe,CAAC,GAAG,EAAE;AAAA,EAAA,CAAC,EACrE,CAACA,eAAe,CAClB,CAAC;EAED,IAAM3I,YAAY,GAAG4I,aAAO,CAC1B,YAAA;IAAA,OAAOH,aAAa,GAAG7D,SAAS,CAAC6D,aAAa,CAAC,GAAG,EAAE;AAAA,EAAA,CAAC,EACrD,CAACA,aAAa,CAChB,CAAC;EAED,IAAIN,SAAS,IAAIC,UAAU,EAAE;AAC3B,IAAA,oBACEtJ,cAAA,CAAA,KAAA,EAAA;AAAKM,MAAAA,SAAS,EAAC,gDAAgD;AAAA8B,MAAAA,QAAA,eAC7DpC,cAAA,CAAC+J,OAAO,EAAA,EAAE;AAAC,KACR,CAAC;AAEV,EAAA;EAEA,oBACEnD,eAAA,CAACoD,SAAS,EAAA;IAACC,aAAa,EAAA,IAAA;AAAC3J,IAAAA,SAAS,EAAC,iBAAiB;AAAA8B,IAAAA,QAAA,EAAA,cAClDpC,cAAA,CAACkK,MAAM,EAAA/J,aAAA,CAAA;AACLG,MAAAA,SAAS,EAAC,eAAe;MACzB6J,KAAK,EAAE5B,CAAC,CAAC,gCAAgC;KAAE,EACvCL,WAAW,CAChB,CAAC,EACD7F,mBAAS,CAAC8G,SAAS,CAAC,gBACnBnJ,cAAA,CAAA,KAAA,EAAA;AAAKM,MAAAA,SAAS,EAAC,2CAA2C;MAAA8B,QAAA,EACvD+G,SAAS,CAACpH,GAAG,CAAC,UAACkE,QAAQ,EAAEjE,KAAK,EAAA;QAAA,oBAC7BoI,mBAAA,CAACpE,IAAI,EAAA;AACGC,UAAAA,QAAQ,EAARA,QAAQ;AAAE/E,UAAAA,YAAY,EAAZA,YAAY;AAAEc,UAAAA,KAAK,EAALA,KAAK;AAAEkB,UAAAA,cAAc,EAAdA,cAAc;UACnDiD,GAAG,EAAEF,QAAQ,CAACoE,EAAG;UACjBnE,UAAU,EAAEiD,SAAS,CAAC3D;AAAO,SAC9B,CAAC;MAAA,CACH;KACE,CAAC,gBAENxF,cAAA,CAAA,KAAA,EAAA;AAAKM,MAAAA,SAAS,EAAC,gDAAgD;MAAA8B,QAAA,eAC7DpC,cAAA,CAACsK,MAAM,EAAA;AACLC,QAAAA,QAAQ,EAAEpC,cAAe;AACzBgC,QAAAA,KAAK,EAAE/B,WAAW,IAAIG,CAAC,CAAC,iCAAiC;OAC1D;AAAC,KACC,CACN,EACArC,UAAU,GAAG,CAAC,iBACblG,cAAA,CAAA,KAAA,EAAA;AAAKM,MAAAA,SAAS,EAAC,4CAA4C;MAAA8B,QAAA,eACzDpC,cAAA,CAACwK,UAAU,EAAA;AACTC,QAAAA,KAAK,EAAEvE,UAAW;AAClBwE,QAAAA,MAAM,EAAEC,QAAQ,CAAChC,IAAI,CAAE;AACvBG,QAAAA,QAAQ,EAAE7J;OACX;AAAC,KACC,CACN;AAAA,GACQ,CAAC;AAEhB;;;;"}
|
|
1
|
+
{"version":3,"file":"AuditLogs.js","sources":["../../src/components/AuditLogs/constants.js","../../src/components/AuditLogs/Trans.jsx","../../src/components/AuditLogs/utils.jsx","../../src/components/AuditLogs/Card.jsx","../../src/components/AuditLogs/api.js","../../src/components/AuditLogs/useAuditLogsApi.js","../../src/components/AuditLogs/useCountriesApi.js","../../src/components/AuditLogs/usePermissionsApi.js","../../src/components/AuditLogs/index.jsx"],"sourcesContent":["import { LANGUAGE_OPTIONS } from \"neetocommons/constants\";\nimport {\n User,\n UserAdd,\n UserCircle,\n UserRemove,\n UserSettings,\n CustomDomain,\n ApiKeys,\n} from \"neetoicons\";\nimport { GoogleCalendar, Zoom, Stripe, StripeTypeface } from \"neetoicons/misc\";\nimport { indexBy, prop } from \"ramda\";\n\nexport const AUDIT_LOGS_QUERY_KEY = \"audit-logs\";\nexport const COUNTRIES_LIST_QUERY_KEY = \"countries-list\"; // Same key as that used in \"neeto-team-members\" for cache reuse.\nexport const PERMISSIONS_LIST_QUERY_KEY = \"neeto-team-members-permissions\"; // Same key as that used in \"neeto-team-members\" for cache reuse.\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 CONNECTED_GOOGLE_CALENDER: \"connectedGoogleCalendar\",\n DISCONNECTED_GOOGLE_CALENDER: \"disconnectedGoogleCalendar\",\n CONNECTED_STRIPE_ACCOUNT: \"connectedStripeAccount\",\n DISCONNECTED_STRIPE_ACCOUNT: \"disconnectedStripeAccount\",\n CONNECTED_ZOOM_INTEGRATION: \"connectedZoomIntegration\",\n DISCONNECTED_ZOOM_INTEGRATION: \"disconnectedZoomIntegration\",\n CONNECTED_CUSTOM_DOMAIN: \"connectedCustomDomain\",\n CREATED_API_KEY: \"createdApiKey\",\n DELETED_API_KEY: \"deletedApiKey\",\n UPDATED_API_KEY: \"updatedApiKey\",\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 AUDIT_ICON_MAP = {\n [ACTIONS.INVITED_USERS]: UserCircle,\n [ACTIONS.USER_SIGNED_UP]: UserAdd,\n [ACTIONS.UPDATED_USER]: User,\n [ACTIONS.BULK_UPDATE_USERS]: User,\n [ACTIONS.UPDATED_USER_PROFILE]: UserSettings,\n [ACTIONS.CREATED_ROLE]: UserAdd,\n [ACTIONS.UPDATED_ROLE]: UserSettings,\n [ACTIONS.DELETED_ROLE]: UserRemove,\n [ACTIONS.CONNECTED_GOOGLE_CALENDER]: GoogleCalendar,\n [ACTIONS.DISCONNECTED_GOOGLE_CALENDER]: GoogleCalendar,\n [ACTIONS.CONNECTED_STRIPE_ACCOUNT]: StripeTypeface,\n [ACTIONS.DISCONNECTED_STRIPE_ACCOUNT]: Stripe,\n [ACTIONS.CONNECTED_ZOOM_INTEGRATION]: Zoom,\n [ACTIONS.DISCONNECTED_ZOOM_INTEGRATION]: Zoom,\n [ACTIONS.CONNECTED_CUSTOM_DOMAIN]: CustomDomain,\n [ACTIONS.CREATED_API_KEY]: ApiKeys,\n [ACTIONS.DELETED_API_KEY]: ApiKeys,\n [ACTIONS.UPDATED_API_KEY]: ApiKeys,\n};\n\nexport const AUDIT_LOGS_PAGE_SIZE = 12;\n\nexport const LANGUAGE_OPTIONS_MAP = indexBy(prop(\"value\"), LANGUAGE_OPTIONS);\n\nexport const DATE_FORMAT_OPTIONS_MAP = {\n \"%m/%d/%Y\": \"MM/DD/YYYY\",\n \"%d/%m/%Y\": \"DD/MM/YYYY\",\n \"%Y/%m/%d\": \"YYYY/MM/DD\",\n};\n\nexport const FIELD_NAME_MAP = { organizationRole: \"role\" };\n","import { globalProps } from \"neetocommons/initializers\";\nimport { Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { Trans as ReactTrans } from \"react-i18next\";\n\nconst Trans = ({\n i18nKey,\n additionalValues = {},\n additionalComponents = {},\n}) => (\n <ReactTrans\n {...{ i18nKey }}\n components={{\n Code: (\n <Typography\n className=\"neeto-ui-rounded-md neeto-ui-bg-gray-100 p-1\"\n component=\"code\"\n style=\"body3\"\n />\n ),\n Semibold: (\n <Typography\n className=\"n inline-block text-sm font-medium\"\n component=\"p\"\n />\n ),\n ...additionalComponents,\n }}\n values={{\n productSuffix: globalProps.appName,\n ...additionalValues,\n }}\n />\n);\n\nTrans.propTypes = {\n i18nKey: PropTypes.string.isRequired,\n additionalValues: PropTypes.object,\n additionalComponents: PropTypes.objectOf(PropTypes.element),\n};\n\nexport default Trans;\n","import {\n snakeToCamelCase,\n isEmpty,\n isNotEmpty,\n isPresent,\n humanize,\n} from \"neetocist\";\nimport { identity, indexBy, omit, prop } from \"ramda\";\n\nimport {\n ACTIONS,\n DATE_FORMAT_OPTIONS_MAP,\n FIELD_NAME_MAP,\n LANGUAGE_OPTIONS_MAP,\n} from \"./constants\";\nimport Trans from \"./Trans\";\n\nconst formatFieldName = field => FIELD_NAME_MAP[field] || humanize(field);\n\nconst createFieldValueFormatter = ({ field, countriesMap }) => {\n switch (field) {\n case \"language\":\n return value => LANGUAGE_OPTIONS_MAP[value]?.label || value;\n case \"dateFormat\":\n return value => DATE_FORMAT_OPTIONS_MAP[value] || value;\n case \"countryIdentifier\":\n return value => countriesMap[value]?.name || value;\n default:\n return identity;\n }\n};\n\nconst formatChangedFields = ({ changes, countriesMap }) => {\n const fields = Object.keys(changes).map((field, index) => {\n const change = changes[field];\n const valueFormatter = createFieldValueFormatter({ field, countriesMap });\n let element;\n\n if (field === \"profileImage\") {\n element = (\n <span key={field}>\n <Trans\n additionalValues={{ field: formatFieldName(field) }}\n i18nKey=\"neetoMolecules.auditLogs.text.updatedFields\"\n />\n </span>\n );\n } else if (change && isPresent(change.from)) {\n element = (\n <span key={field}>\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.updatedFieldsWithPreviousValue\"\n additionalValues={{\n field: formatFieldName(field),\n from: valueFormatter(change.from),\n to: valueFormatter(change.to),\n }}\n />\n </span>\n );\n } else {\n element = (\n <span key={field}>\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.updatedFieldsWithNewValue\"\n additionalValues={{\n field: formatFieldName(field),\n to: valueFormatter(change.to),\n }}\n />\n </span>\n );\n }\n\n return index > 0\n ? [<span key={`sep-${field}`}>, </span>, element]\n : element;\n });\n\n return fields.flat();\n};\n\nexport const transformAction = action =>\n snakeToCamelCase(action.replace(\"audit_logs.organization.\", \"\"));\n\nexport const constructAuditLogText = ({\n countriesMap = {},\n permissionsMap = {},\n action,\n performedBy,\n emails = [],\n firstName,\n lastName,\n organizationRole,\n email,\n changes = {},\n status,\n message,\n errorMessage,\n ...rest\n}) => {\n switch (action) {\n case ACTIONS.INVITED_USERS: {\n if (status === \"success\" && isNotEmpty(emails)) {\n const emailList = emails.join(\", \");\n\n return (\n <Trans\n additionalValues={{ performedBy, emailList }}\n i18nKey=\"neetoMolecules.auditLogs.text.invitedUsers\"\n />\n );\n }\n\n return (\n <Trans\n additionalValues={{ performedBy, errorMessage }}\n i18nKey=\"neetoMolecules.auditLogs.text.invitedUsersFailed\"\n />\n );\n }\n\n case ACTIONS.USER_SIGNED_UP: {\n const name = [firstName, lastName].filter(Boolean).join(\" \");\n const userIdentifier = name || organizationRole || email || \"User\";\n\n return (\n <Trans\n additionalValues={{ userIdentifier }}\n i18nKey=\"neetoMolecules.auditLogs.text.userSignedUp\"\n />\n );\n }\n\n case ACTIONS.UPDATED_USER: {\n const affectedUser = email || \"user\";\n const isUserDeactivated = changes?.active?.to === false;\n const otherChanges = isUserDeactivated\n ? omit([\"active\"], changes)\n : changes;\n\n const removedText = isUserDeactivated ? (\n <Trans\n additionalValues={{ performedBy, affectedUser }}\n i18nKey=\"neetoMolecules.auditLogs.text.removedUser\"\n />\n ) : null;\n\n if (isUserDeactivated && isEmpty(otherChanges)) return removedText;\n\n const changedFields = formatChangedFields({\n changes: otherChanges,\n countriesMap,\n });\n\n const updatedUserText = (\n <Trans\n additionalComponents={{ ChangedFields: <>{changedFields}</> }}\n additionalValues={{ performedBy, affectedUser }}\n i18nKey=\"neetoMolecules.auditLogs.text.updatedUser\"\n />\n );\n\n return removedText ? (\n <>\n {removedText} {updatedUserText}\n </>\n ) : (\n updatedUserText\n );\n }\n\n case ACTIONS.BULK_UPDATE_USERS: {\n if (status === \"success\" && isNotEmpty(emails)) {\n const emailList = emails.join(\", \");\n\n return (\n <Trans\n additionalValues={{ performedBy, emailList, message }}\n i18nKey=\"neetoMolecules.auditLogs.text.bulkUpdateUsers\"\n />\n );\n }\n\n return (\n <Trans\n additionalValues={{ performedBy, errorMessage }}\n i18nKey=\"neetoMolecules.auditLogs.text.bulkUpdateUsersFailed\"\n />\n );\n }\n\n case ACTIONS.UPDATED_USER_PROFILE: {\n const changedFields = formatChangedFields({ changes, countriesMap });\n\n return (\n <Trans\n additionalComponents={{ ChangedFields: <>{changedFields}</> }}\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.updatedUserProfile\"\n />\n );\n }\n\n case ACTIONS.CREATED_ROLE: {\n const roleName = organizationRole || \"role\";\n\n return (\n <Trans\n additionalValues={{ performedBy, roleName }}\n i18nKey=\"neetoMolecules.auditLogs.text.createdRole\"\n />\n );\n }\n\n case ACTIONS.UPDATED_ROLE: {\n const { addedPermissions = [], removedPermissions = [], name } = rest;\n\n const permissionsToText = permissions =>\n permissions\n .map(\n permission =>\n permissionsMap[permission]?.description ||\n humanize(permission.split(\".\")[1])\n )\n .join(\", \");\n\n let i18nKey = \"neetoMolecules.auditLogs.text.updatedRole\";\n\n if (name) {\n i18nKey = \"neetoMolecules.auditLogs.text.updatedRoleName\";\n } else if (isPresent(addedPermissions) && isPresent(removedPermissions)) {\n i18nKey = \"neetoMolecules.auditLogs.text.modifiedRolePermission\";\n } else if (isPresent(addedPermissions)) {\n i18nKey = \"neetoMolecules.auditLogs.text.addedRolePermission\";\n } else if (isPresent(removedPermissions)) {\n i18nKey = \"neetoMolecules.auditLogs.text.removedRolePermission\";\n }\n\n return (\n <Trans\n {...{ i18nKey }}\n additionalValues={{\n performedBy,\n roleName: organizationRole || \"role\",\n name,\n addedPermissionsText: permissionsToText(addedPermissions),\n removedPermissionsText: permissionsToText(removedPermissions),\n addedPermissionsCount: addedPermissions.length,\n removedPermissionsCount: removedPermissions.length,\n }}\n />\n );\n }\n\n case ACTIONS.CONNECTED_GOOGLE_CALENDER: {\n return (\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.connectedGoogleCalender\"\n additionalValues={{\n performedBy,\n emailAddress: changes.emailAddress,\n }}\n />\n );\n }\n\n case ACTIONS.DISCONNECTED_GOOGLE_CALENDER: {\n return (\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.disconnectedGoogleCalender\"\n additionalValues={{\n performedBy,\n emailAddress: changes.emailAddress,\n }}\n />\n );\n }\n\n case ACTIONS.CONNECTED_STRIPE_ACCOUNT: {\n return (\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.connectedStripeAccount\"\n additionalValues={{\n performedBy,\n stripeAccountId: changes.stripeAccountId,\n }}\n />\n );\n }\n\n case ACTIONS.DISCONNECTED_STRIPE_ACCOUNT: {\n return (\n <Trans\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.disconnectedStripeAccount\"\n />\n );\n }\n\n case ACTIONS.CONNECTED_ZOOM_INTEGRATION: {\n return (\n <Trans\n i18nKey=\"neetoMolecules.auditLogs.text.connectedZoomAccount\"\n additionalValues={{\n performedBy,\n zoomAccountId: changes.zoomAccountId,\n }}\n />\n );\n }\n\n case ACTIONS.DISCONNECTED_ZOOM_INTEGRATION: {\n return (\n <Trans\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.disconnectedZoomAccount\"\n />\n );\n }\n\n case ACTIONS.CONNECTED_CUSTOM_DOMAIN: {\n return (\n <Trans\n additionalValues={{ performedBy, hostname: changes.hostname }}\n i18nKey=\"neetoMolecules.auditLogs.text.connectedCustomDomain\"\n />\n );\n }\n\n case ACTIONS.DELETED_ROLE: {\n const roleName = organizationRole || \"role\";\n\n return (\n <Trans\n additionalValues={{ performedBy, roleName }}\n i18nKey=\"neetoMolecules.auditLogs.text.deletedRole\"\n />\n );\n }\n\n case ACTIONS.CREATED_API_KEY: {\n return (\n <Trans\n additionalValues={{ performedBy, ...rest }}\n i18nKey=\"neetoMolecules.auditLogs.text.createdApiKey\"\n />\n );\n }\n\n case ACTIONS.DELETED_API_KEY: {\n return (\n <Trans\n additionalValues={{ performedBy, ...rest }}\n i18nKey=\"neetoMolecules.auditLogs.text.deletedApiKey\"\n />\n );\n }\n\n case ACTIONS.UPDATED_API_KEY: {\n return (\n <Trans\n additionalValues={{ performedBy, ...rest }}\n i18nKey=\"neetoMolecules.auditLogs.text.updatedApiKey\"\n />\n );\n }\n\n default: {\n return (\n <Trans\n additionalValues={{ performedBy }}\n i18nKey=\"neetoMolecules.auditLogs.text.performedAction\"\n />\n );\n }\n }\n};\n\nexport const indexById = indexBy(prop(\"id\"));\n\nexport const indexByPermissionName = indexBy(prop(\"name\"));\n","import classnames from \"classnames\";\nimport { dateFormat } from \"neetocommons/utils\";\nimport { Typography } from \"neetoui\";\n\nimport { AUDIT_ICON_MAP } from \"./constants\";\nimport { constructAuditLogText, transformAction } from \"./utils\";\n\nconst Card = ({\n auditLog,\n countriesMap,\n index,\n permissionsMap,\n totalCount,\n}) => {\n const { key, metadata, performer, updatedAt } = auditLog;\n\n const action = transformAction(key);\n const performedBy = performer?.name || \"\";\n const performedAt = dateFormat.dateTime(updatedAt);\n\n const auditText = constructAuditLogText({\n countriesMap,\n action,\n performedBy,\n permissionsMap,\n ...metadata,\n });\n\n const Icon = AUDIT_ICON_MAP[action];\n\n return (\n <div\n data-testid=\"audit-log-card\"\n className={classnames(\n \"align-items-center neeto-ui-border-gray-200 flex w-full gap-x-4 border-b border-l border-r p-3\",\n {\n \"rounded-t-md border-t\": index === 0,\n \"rounded-b-md\": index === totalCount - 1,\n }\n )}\n >\n <div className=\"neeto-ui-rounded-full neeto-ui-bg-gray-100 flex size-10 flex-shrink-0 items-center justify-center\">\n <Icon className=\"neeto-ui-text-gray-600 flex-shrink-0\" size={22} />\n </div>\n <div className=\"flex flex-col gap-y-2\" data-testid=\"audit-log-content\">\n <Typography\n component=\"span\"\n data-testid=\"audit-log-text\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {auditText}\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-500 m-0\"\n data-testid=\"audit-log-timestamp\"\n style=\"body3\"\n >\n {performedAt}\n </Typography>\n </div>\n </div>\n );\n};\n\nexport default Card;\n","import axios from \"axios\";\n\nconst fetchAuditLogs = params => axios.get(\"api/v1/audit_logs\", { params });\n\nconst fetchCountries = () => axios.get(\"neeto_team_members/profile/countries\");\n\nconst fetchPermissions = () => axios.get(\"neeto_team_members/permissions\");\n\nconst auditLogsApi = { fetchAuditLogs, fetchCountries, fetchPermissions };\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 { useQuery } from \"@tanstack/react-query\";\nimport { DEFAULT_STALE_TIME } from \"neetocommons/constants\";\n\nimport auditLogsApi from \"./api\";\nimport { COUNTRIES_LIST_QUERY_KEY } from \"./constants\";\n\nexport const useFetchCountries = () =>\n useQuery({\n queryKey: [COUNTRIES_LIST_QUERY_KEY],\n queryFn: auditLogsApi.fetchCountries,\n staleTime: DEFAULT_STALE_TIME,\n });\n","import { useQuery } from \"@tanstack/react-query\";\nimport { DEFAULT_STALE_TIME } from \"neetocommons/constants\";\n\nimport auditLogsApi from \"./api\";\nimport { PERMISSIONS_LIST_QUERY_KEY } from \"./constants\";\n\nexport const useFetchPermissions = () =>\n useQuery({\n queryKey: [PERMISSIONS_LIST_QUERY_KEY],\n queryFn: auditLogsApi.fetchPermissions,\n staleTime: DEFAULT_STALE_TIME,\n });\n","import { useMemo } from \"react\";\n\nimport { isPresent } from \"neetocist\";\nimport { DEFAULT_PAGE_INDEX } from \"neetocommons/constants\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { NoData, Spinner, Pagination } from \"neetoui\";\nimport propTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Container from \"components/Container\";\nimport Header from \"components/Header\";\n\nimport Card from \"./Card\";\nimport { AUDIT_LOGS_PAGE_SIZE } from \"./constants\";\nimport { useFetchAuditLogs } from \"./useAuditLogsApi\";\nimport { useFetchCountries } from \"./useCountriesApi\";\nimport { useFetchPermissions } from \"./usePermissionsApi\";\nimport { indexById, indexByPermissionName } from \"./utils\";\n\nconst AuditLogs = ({ headerProps, noDataHelpText, noDataTitle }) => {\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, pageSize: AUDIT_LOGS_PAGE_SIZE } });\n\n const { data: countriesData } = useFetchCountries();\n\n const { data: permissionsData } = useFetchPermissions();\n\n const countriesList = countriesData?.countries;\n const permissionsList = permissionsData?.permissions;\n\n const permissionsMap = useMemo(\n () => (permissionsList ? indexByPermissionName(permissionsList) : {}),\n [permissionsList]\n );\n\n const countriesMap = useMemo(\n () => (countriesList ? indexById(countriesList) : {}),\n [countriesList]\n );\n\n if (isLoading || isFetching) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <Container isHeaderFixed className=\"overflow-hidden\">\n <Header\n className=\"px-5 md:px-10\"\n title={t(\"neetoMolecules.auditLogs.title\")}\n {...headerProps}\n />\n {isPresent(auditLogs) ? (\n <div className=\"w-full grow overflow-y-auto px-5 md:px-10\">\n {auditLogs.map((auditLog, index) => (\n <Card\n {...{ auditLog, countriesMap, index, permissionsMap }}\n key={auditLog.id}\n totalCount={auditLogs.length}\n />\n ))}\n </div>\n ) : (\n <div className=\"flex h-full w-full items-center justify-center\">\n <NoData\n helpText={noDataHelpText}\n title={noDataTitle || t(\"neetoMolecules.auditLogs.noData\")}\n />\n </div>\n )}\n {totalCount > 0 && (\n <div className=\"flex w-full justify-end px-5 py-4 md:px-10\">\n <Pagination\n count={totalCount}\n pageNo={parseInt(page)}\n pageSize={AUDIT_LOGS_PAGE_SIZE}\n />\n </div>\n )}\n </Container>\n );\n};\n\nAuditLogs.propTypes = {\n /**\n * Props to be passed to the `Header` component.\n */\n headerProps: propTypes.object,\n /**\n * Help text to be displayed to the `NoData` component when there are no audit logs.\n */\n noDataHelpText: propTypes.string,\n /**\n * Title to be passed to the `NoData` component when there are no audit logs.\n */\n noDataTitle: propTypes.string,\n};\n\nexport default AuditLogs;\n"],"names":["AUDIT_LOGS_QUERY_KEY","COUNTRIES_LIST_QUERY_KEY","PERMISSIONS_LIST_QUERY_KEY","ACTIONS","INVITED_USERS","USER_SIGNED_UP","UPDATED_USER","BULK_UPDATE_USERS","UPDATED_USER_PROFILE","CREATED_ROLE","UPDATED_ROLE","DELETED_ROLE","CONNECTED_GOOGLE_CALENDER","DISCONNECTED_GOOGLE_CALENDER","CONNECTED_STRIPE_ACCOUNT","DISCONNECTED_STRIPE_ACCOUNT","CONNECTED_ZOOM_INTEGRATION","DISCONNECTED_ZOOM_INTEGRATION","CONNECTED_CUSTOM_DOMAIN","CREATED_API_KEY","DELETED_API_KEY","UPDATED_API_KEY","AUDIT_ICON_MAP","_AUDIT_ICON_MAP","_defineProperty","UserCircle","UserAdd","User","UserSettings","UserRemove","GoogleCalendar","StripeTypeface","Stripe","Zoom","CustomDomain","ApiKeys","AUDIT_LOGS_PAGE_SIZE","LANGUAGE_OPTIONS_MAP","indexBy","prop","LANGUAGE_OPTIONS","DATE_FORMAT_OPTIONS_MAP","FIELD_NAME_MAP","organizationRole","Trans","_ref","i18nKey","_ref$additionalValues","additionalValues","_ref$additionalCompon","additionalComponents","_jsx","ReactTrans","components","_objectSpread","Code","Typography","className","component","style","Semibold","values","productSuffix","globalProps","appName","formatFieldName","field","humanize","createFieldValueFormatter","countriesMap","value","_LANGUAGE_OPTIONS_MAP","label","_countriesMap$value","name","identity","formatChangedFields","_ref2","changes","fields","Object","keys","map","index","change","valueFormatter","element","children","isPresent","from","to","concat","flat","transformAction","action","snakeToCamelCase","replace","constructAuditLogText","_ref3","_ref3$countriesMap","_ref3$permissionsMap","permissionsMap","performedBy","_ref3$emails","emails","firstName","lastName","email","_ref3$changes","status","message","errorMessage","rest","_objectWithoutProperties","_excluded","isNotEmpty","emailList","join","filter","Boolean","userIdentifier","_changes$active","affectedUser","isUserDeactivated","active","otherChanges","omit","removedText","isEmpty","changedFields","updatedUserText","ChangedFields","_Fragment","_jsxs","roleName","_rest$addedPermission","addedPermissions","_rest$removedPermissi","removedPermissions","permissionsToText","permissions","permission","_permissionsMap$permi","description","split","addedPermissionsText","removedPermissionsText","addedPermissionsCount","length","removedPermissionsCount","emailAddress","stripeAccountId","zoomAccountId","hostname","indexById","indexByPermissionName","Card","auditLog","totalCount","key","metadata","performer","updatedAt","performedAt","dateFormat","dateTime","auditText","Icon","classnames","size","lineHeight","fetchAuditLogs","params","axios","get","fetchCountries","fetchPermissions","auditLogsApi","useFetchAuditLogs","_ref$options","options","useQuery","queryKey","queryFn","useFetchCountries","staleTime","DEFAULT_STALE_TIME","useFetchPermissions","AuditLogs","headerProps","noDataHelpText","noDataTitle","_useTranslation","useTranslation","t","_useQueryParams","useQueryParams","_useQueryParams$page","page","DEFAULT_PAGE_INDEX","_useFetchAuditLogs","pageSize","_useFetchAuditLogs$da","data","_useFetchAuditLogs$da2","_useFetchAuditLogs$da3","auditLogs","_useFetchAuditLogs$da4","isLoading","isFetching","_useFetchCountries","countriesData","_useFetchPermissions","permissionsData","countriesList","countries","permissionsList","useMemo","Spinner","Container","isHeaderFixed","Header","title","_createElement","id","NoData","helpText","Pagination","count","pageNo","parseInt"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaO,IAAMA,oBAAoB,GAAG,YAAY;AACzC,IAAMC,wBAAwB,GAAG,gBAAgB,CAAC;AAClD,IAAMC,0BAA0B,GAAG,gCAAgC,CAAC;;AAEpE,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;AAC3BC,EAAAA,yBAAyB,EAAE,yBAAyB;AACpDC,EAAAA,4BAA4B,EAAE,4BAA4B;AAC1DC,EAAAA,wBAAwB,EAAE,wBAAwB;AAClDC,EAAAA,2BAA2B,EAAE,2BAA2B;AACxDC,EAAAA,0BAA0B,EAAE,0BAA0B;AACtDC,EAAAA,6BAA6B,EAAE,6BAA6B;AAC5DC,EAAAA,uBAAuB,EAAE,uBAAuB;AAChDC,EAAAA,eAAe,EAAE,eAAe;AAChCC,EAAAA,eAAe,EAAE,eAAe;AAChCC,EAAAA,eAAe,EAAE;AACnB,CAAC;AASM,IAAMC,cAAc,IAAAC,eAAA,OAAAC,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAD,eAAA,EACxBpB,OAAO,CAACC,aAAa,EAAGqB,UAAU,CAAA,EAClCtB,OAAO,CAACE,cAAc,EAAGqB,OAAO,CAAA,EAChCvB,OAAO,CAACG,YAAY,EAAGqB,IAAI,CAAA,EAC3BxB,OAAO,CAACI,iBAAiB,EAAGoB,IAAI,CAAA,EAChCxB,OAAO,CAACK,oBAAoB,EAAGoB,YAAY,CAAA,EAC3CzB,OAAO,CAACM,YAAY,EAAGiB,OAAO,CAAA,EAC9BvB,OAAO,CAACO,YAAY,EAAGkB,YAAY,GACnCzB,OAAO,CAACQ,YAAY,EAAGkB,UAAU,CAAA,EACjC1B,OAAO,CAACS,yBAAyB,EAAGkB,cAAc,CAAA,EAClD3B,OAAO,CAACU,4BAA4B,EAAGiB,cAAc,CAAA,EAAAN,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAD,eAAA,EACrDpB,OAAO,CAACW,wBAAwB,EAAGiB,cAAc,CAAA,EACjD5B,OAAO,CAACY,2BAA2B,EAAGiB,MAAM,CAAA,EAC5C7B,OAAO,CAACa,0BAA0B,EAAGiB,IAAI,CAAA,EACzC9B,OAAO,CAACc,6BAA6B,EAAGgB,IAAI,CAAA,EAC5C9B,OAAO,CAACe,uBAAuB,EAAGgB,YAAY,CAAA,EAC9C/B,OAAO,CAACgB,eAAe,EAAGgB,OAAO,CAAA,EACjChC,OAAO,CAACiB,eAAe,EAAGe,OAAO,GACjChC,OAAO,CAACkB,eAAe,EAAGc,OAAO,CAAA,CACnC;AAEM,IAAMC,oBAAoB,GAAG,EAAE;AAE/B,IAAMC,oBAAoB,GAAGC,aAAO,CAACC,UAAI,CAAC,OAAO,CAAC,EAAEC,0BAAgB,CAAC;AAErE,IAAMC,uBAAuB,GAAG;AACrC,EAAA,UAAU,EAAE,YAAY;AACxB,EAAA,UAAU,EAAE,YAAY;AACxB,EAAA,UAAU,EAAE;AACd,CAAC;AAEM,IAAMC,cAAc,GAAG;AAAEC,EAAAA,gBAAgB,EAAE;AAAO,CAAC;;;;ACvE1D,IAAMC,KAAK,GAAG,SAARA,KAAKA,CAAAC,IAAA,EAAA;AAAA,EAAA,IACTC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAAC,qBAAA,GAAAF,IAAA,CACPG,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAAD,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;IAAAE,qBAAA,GAAAJ,IAAA,CACrBK,oBAAoB;AAApBA,IAAAA,oBAAoB,GAAAD,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;EAAA,oBAEzBE,cAAA,CAACC,kBAAU,EAAA;AACHN,IAAAA,OAAO,EAAPA,OAAO;AACbO,IAAAA,UAAU,EAAAC,eAAA,CAAA;MACRC,IAAI,eACFJ,cAAA,CAACK,UAAU,EAAA;AACTC,QAAAA,SAAS,EAAC,8CAA8C;AACxDC,QAAAA,SAAS,EAAC,MAAM;AAChBC,QAAAA,KAAK,EAAC;AAAO,OACd,CACF;MACDC,QAAQ,eACNT,cAAA,CAACK,UAAU,EAAA;AACTC,QAAAA,SAAS,EAAC,oCAAoC;AAC9CC,QAAAA,SAAS,EAAC;OACX;AACF,KAAA,EACER,oBAAoB,CACvB;AACFW,IAAAA,MAAM,EAAAP,eAAA,CAAA;MACJQ,aAAa,EAAEC,wBAAW,CAACC;AAAO,KAAA,EAC/BhB,gBAAgB;AACnB,GACH,CAAC;AAAA,CACH;;;;;AChBD,IAAMiB,eAAe,GAAG,SAAlBA,eAAeA,CAAGC,KAAK,EAAA;EAAA,OAAIxB,cAAc,CAACwB,KAAK,CAAC,IAAIC,kBAAQ,CAACD,KAAK,CAAC;AAAA,CAAA;AAEzE,IAAME,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAAvB,IAAA,EAAgC;AAAA,EAAA,IAA1BqB,KAAK,GAAArB,IAAA,CAALqB,KAAK;IAAEG,YAAY,GAAAxB,IAAA,CAAZwB,YAAY;AACtD,EAAA,QAAQH,KAAK;AACX,IAAA,KAAK,UAAU;AACb,MAAA,OAAO,UAAAI,KAAK,EAAA;AAAA,QAAA,IAAAC,qBAAA;AAAA,QAAA,OAAI,CAAA,CAAAA,qBAAA,GAAAlC,oBAAoB,CAACiC,KAAK,CAAC,MAAA,IAAA,IAAAC,qBAAA,KAAA,MAAA,GAAA,MAAA,GAA3BA,qBAAA,CAA6BC,KAAK,KAAIF,KAAK;AAAA,MAAA,CAAA;AAC7D,IAAA,KAAK,YAAY;AACf,MAAA,OAAO,UAAAA,KAAK,EAAA;AAAA,QAAA,OAAI7B,uBAAuB,CAAC6B,KAAK,CAAC,IAAIA,KAAK;AAAA,MAAA,CAAA;AACzD,IAAA,KAAK,mBAAmB;AACtB,MAAA,OAAO,UAAAA,KAAK,EAAA;AAAA,QAAA,IAAAG,mBAAA;AAAA,QAAA,OAAI,CAAA,CAAAA,mBAAA,GAAAJ,YAAY,CAACC,KAAK,CAAC,MAAA,IAAA,IAAAG,mBAAA,KAAA,MAAA,GAAA,MAAA,GAAnBA,mBAAA,CAAqBC,IAAI,KAAIJ,KAAK;AAAA,MAAA,CAAA;AACpD,IAAA;AACE,MAAA,OAAOK,cAAQ;AACnB;AACF,CAAC;AAED,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAAC,KAAA,EAAkC;AAAA,EAAA,IAA5BC,OAAO,GAAAD,KAAA,CAAPC,OAAO;IAAET,YAAY,GAAAQ,KAAA,CAAZR,YAAY;AAClD,EAAA,IAAMU,MAAM,GAAGC,MAAM,CAACC,IAAI,CAACH,OAAO,CAAC,CAACI,GAAG,CAAC,UAAChB,KAAK,EAAEiB,KAAK,EAAK;AACxD,IAAA,IAAMC,MAAM,GAAGN,OAAO,CAACZ,KAAK,CAAC;IAC7B,IAAMmB,cAAc,GAAGjB,yBAAyB,CAAC;AAAEF,MAAAA,KAAK,EAALA,KAAK;AAAEG,MAAAA,YAAY,EAAZA;AAAa,KAAC,CAAC;AACzE,IAAA,IAAIiB,OAAO;IAEX,IAAIpB,KAAK,KAAK,cAAc,EAAE;AAC5BoB,MAAAA,OAAO,gBACLnC,cAAA,CAAA,MAAA,EAAA;QAAAoC,QAAA,eACEpC,cAAA,CAACP,KAAK,EAAA;AACJI,UAAAA,gBAAgB,EAAE;YAAEkB,KAAK,EAAED,eAAe,CAACC,KAAK;WAAI;AACpDpB,UAAAA,OAAO,EAAC;SACT;AAAC,OAAA,EAJOoB,KAKL,CACP;IACH,CAAC,MAAM,IAAIkB,MAAM,IAAII,mBAAS,CAACJ,MAAM,CAACK,IAAI,CAAC,EAAE;AAC3CH,MAAAA,OAAO,gBACLnC,cAAA,CAAA,MAAA,EAAA;QAAAoC,QAAA,eACEpC,cAAA,CAACP,KAAK,EAAA;AACJE,UAAAA,OAAO,EAAC,8DAA8D;AACtEE,UAAAA,gBAAgB,EAAE;AAChBkB,YAAAA,KAAK,EAAED,eAAe,CAACC,KAAK,CAAC;AAC7BuB,YAAAA,IAAI,EAAEJ,cAAc,CAACD,MAAM,CAACK,IAAI,CAAC;AACjCC,YAAAA,EAAE,EAAEL,cAAc,CAACD,MAAM,CAACM,EAAE;AAC9B;SACD;AAAC,OAAA,EAROxB,KASL,CACP;AACH,IAAA,CAAC,MAAM;AACLoB,MAAAA,OAAO,gBACLnC,cAAA,CAAA,MAAA,EAAA;QAAAoC,QAAA,eACEpC,cAAA,CAACP,KAAK,EAAA;AACJE,UAAAA,OAAO,EAAC,yDAAyD;AACjEE,UAAAA,gBAAgB,EAAE;AAChBkB,YAAAA,KAAK,EAAED,eAAe,CAACC,KAAK,CAAC;AAC7BwB,YAAAA,EAAE,EAAEL,cAAc,CAACD,MAAM,CAACM,EAAE;AAC9B;SACD;AAAC,OAAA,EAPOxB,KAQL,CACP;AACH,IAAA;AAEA,IAAA,OAAOiB,KAAK,GAAG,CAAC,GACZ,cAAChC,cAAA,CAAA,MAAA,EAAA;AAAAoC,MAAAA,QAAA,EAA2B;KAAE,EAAA,MAAA,CAAAI,MAAA,CAAXzB,KAAK,CAAY,CAAC,EAAEoB,OAAO,CAAC,GAC/CA,OAAO;AACb,EAAA,CAAC,CAAC;AAEF,EAAA,OAAOP,MAAM,CAACa,IAAI,EAAE;AACtB,CAAC;AAEM,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAGC,MAAM,EAAA;EAAA,OACnCC,0BAAgB,CAACD,MAAM,CAACE,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;AAAA,CAAA;AAE3D,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAAC,KAAA,EAe5B;AAAA,EAAA,IAAAC,kBAAA,GAAAD,KAAA,CAdJ7B,YAAY;AAAZA,IAAAA,YAAY,GAAA8B,kBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,kBAAA;IAAAC,oBAAA,GAAAF,KAAA,CACjBG,cAAc;AAAdA,IAAAA,cAAc,GAAAD,oBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,oBAAA;IACnBN,MAAM,GAAAI,KAAA,CAANJ,MAAM;IACNQ,WAAW,GAAAJ,KAAA,CAAXI,WAAW;IAAAC,YAAA,GAAAL,KAAA,CACXM,MAAM;AAANA,IAAAA,MAAM,GAAAD,YAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,YAAA;IACXE,SAAS,GAAAP,KAAA,CAATO,SAAS;IACTC,QAAQ,GAAAR,KAAA,CAARQ,QAAQ;IACR/D,gBAAgB,GAAAuD,KAAA,CAAhBvD,gBAAgB;IAChBgE,KAAK,GAAAT,KAAA,CAALS,KAAK;IAAAC,aAAA,GAAAV,KAAA,CACLpB,OAAO;AAAPA,IAAAA,OAAO,GAAA8B,aAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,aAAA;IACZC,MAAM,GAAAX,KAAA,CAANW,MAAM;IACNC,OAAO,GAAAZ,KAAA,CAAPY,OAAO;IACPC,YAAY,GAAAb,KAAA,CAAZa,YAAY;AACTC,IAAAA,IAAI,GAAAC,wBAAA,CAAAf,KAAA,EAAAgB,SAAA,CAAA;AAEP,EAAA,QAAQpB,MAAM;IACZ,KAAK3F,OAAO,CAACC,aAAa;AAAE,MAAA;QAC1B,IAAIyG,MAAM,KAAK,SAAS,IAAIM,oBAAU,CAACX,MAAM,CAAC,EAAE;AAC9C,UAAA,IAAMY,SAAS,GAAGZ,MAAM,CAACa,IAAI,CAAC,IAAI,CAAC;UAEnC,oBACElE,cAAA,CAACP,KAAK,EAAA;AACJI,YAAAA,gBAAgB,EAAE;AAAEsD,cAAAA,WAAW,EAAXA,WAAW;AAAEc,cAAAA,SAAS,EAATA;aAAY;AAC7CtE,YAAAA,OAAO,EAAC;AAA4C,WACrD,CAAC;AAEN,QAAA;QAEA,oBACEK,cAAA,CAACP,KAAK,EAAA;AACJI,UAAAA,gBAAgB,EAAE;AAAEsD,YAAAA,WAAW,EAAXA,WAAW;AAAES,YAAAA,YAAY,EAAZA;WAAe;AAChDjE,UAAAA,OAAO,EAAC;AAAkD,SAC3D,CAAC;AAEN,MAAA;IAEA,KAAK3C,OAAO,CAACE,cAAc;AAAE,MAAA;AAC3B,QAAA,IAAMqE,IAAI,GAAG,CAAC+B,SAAS,EAAEC,QAAQ,CAAC,CAACY,MAAM,CAACC,OAAO,CAAC,CAACF,IAAI,CAAC,GAAG,CAAC;QAC5D,IAAMG,cAAc,GAAG9C,IAAI,IAAI/B,gBAAgB,IAAIgE,KAAK,IAAI,MAAM;QAElE,oBACExD,cAAA,CAACP,KAAK,EAAA;AACJI,UAAAA,gBAAgB,EAAE;AAAEwE,YAAAA,cAAc,EAAdA;WAAiB;AACrC1E,UAAAA,OAAO,EAAC;AAA4C,SACrD,CAAC;AAEN,MAAA;IAEA,KAAK3C,OAAO,CAACG,YAAY;AAAE,MAAA;AAAA,QAAA,IAAAmH,eAAA;AACzB,QAAA,IAAMC,YAAY,GAAGf,KAAK,IAAI,MAAM;AACpC,QAAA,IAAMgB,iBAAiB,GAAG,CAAA7C,OAAO,KAAA,IAAA,IAAPA,OAAO,gBAAA2C,eAAA,GAAP3C,OAAO,CAAE8C,MAAM,cAAAH,eAAA,KAAA,MAAA,GAAA,MAAA,GAAfA,eAAA,CAAiB/B,EAAE,MAAK,KAAK;AACvD,QAAA,IAAMmC,YAAY,GAAGF,iBAAiB,GAClCG,UAAI,CAAC,CAAC,QAAQ,CAAC,EAAEhD,OAAO,CAAC,GACzBA,OAAO;AAEX,QAAA,IAAMiD,WAAW,GAAGJ,iBAAiB,gBACnCxE,cAAA,CAACP,KAAK,EAAA;AACJI,UAAAA,gBAAgB,EAAE;AAAEsD,YAAAA,WAAW,EAAXA,WAAW;AAAEoB,YAAAA,YAAY,EAAZA;WAAe;AAChD5E,UAAAA,OAAO,EAAC;SACT,CAAC,GACA,IAAI;QAER,IAAI6E,iBAAiB,IAAIK,iBAAO,CAACH,YAAY,CAAC,EAAE,OAAOE,WAAW;QAElE,IAAME,aAAa,GAAGrD,mBAAmB,CAAC;AACxCE,UAAAA,OAAO,EAAE+C,YAAY;AACrBxD,UAAAA,YAAY,EAAZA;AACF,SAAC,CAAC;AAEF,QAAA,IAAM6D,eAAe,gBACnB/E,cAAA,CAACP,KAAK,EAAA;AACJM,UAAAA,oBAAoB,EAAE;YAAEiF,aAAa,eAAEhF,cAAA,CAAAiF,mBAAA,EAAA;AAAA7C,cAAAA,QAAA,EAAG0C;aAAgB;WAAI;AAC9DjF,UAAAA,gBAAgB,EAAE;AAAEsD,YAAAA,WAAW,EAAXA,WAAW;AAAEoB,YAAAA,YAAY,EAAZA;WAAe;AAChD5E,UAAAA,OAAO,EAAC;AAA2C,SACpD,CACF;AAED,QAAA,OAAOiF,WAAW,gBAChBM,eAAA,CAAAD,mBAAA,EAAA;AAAA7C,UAAAA,QAAA,EAAA,CACGwC,WAAW,EAAC,GAAC,EAACG,eAAe;SAC9B,CAAC,GAEHA,eACD;AACH,MAAA;IAEA,KAAK/H,OAAO,CAACI,iBAAiB;AAAE,MAAA;QAC9B,IAAIsG,MAAM,KAAK,SAAS,IAAIM,oBAAU,CAACX,MAAM,CAAC,EAAE;AAC9C,UAAA,IAAMY,UAAS,GAAGZ,MAAM,CAACa,IAAI,CAAC,IAAI,CAAC;UAEnC,oBACElE,cAAA,CAACP,KAAK,EAAA;AACJI,YAAAA,gBAAgB,EAAE;AAAEsD,cAAAA,WAAW,EAAXA,WAAW;AAAEc,cAAAA,SAAS,EAATA,UAAS;AAAEN,cAAAA,OAAO,EAAPA;aAAU;AACtDhE,YAAAA,OAAO,EAAC;AAA+C,WACxD,CAAC;AAEN,QAAA;QAEA,oBACEK,cAAA,CAACP,KAAK,EAAA;AACJI,UAAAA,gBAAgB,EAAE;AAAEsD,YAAAA,WAAW,EAAXA,WAAW;AAAES,YAAAA,YAAY,EAAZA;WAAe;AAChDjE,UAAAA,OAAO,EAAC;AAAqD,SAC9D,CAAC;AAEN,MAAA;IAEA,KAAK3C,OAAO,CAACK,oBAAoB;AAAE,MAAA;QACjC,IAAMyH,cAAa,GAAGrD,mBAAmB,CAAC;AAAEE,UAAAA,OAAO,EAAPA,OAAO;AAAET,UAAAA,YAAY,EAAZA;AAAa,SAAC,CAAC;QAEpE,oBACElB,cAAA,CAACP,KAAK,EAAA;AACJM,UAAAA,oBAAoB,EAAE;YAAEiF,aAAa,eAAEhF,cAAA,CAAAiF,mBAAA,EAAA;AAAA7C,cAAAA,QAAA,EAAG0C;aAAgB;WAAI;AAC9DjF,UAAAA,gBAAgB,EAAE;AAAEsD,YAAAA,WAAW,EAAXA;WAAc;AAClCxD,UAAAA,OAAO,EAAC;AAAkD,SAC3D,CAAC;AAEN,MAAA;IAEA,KAAK3C,OAAO,CAACM,YAAY;AAAE,MAAA;AACzB,QAAA,IAAM6H,QAAQ,GAAG3F,gBAAgB,IAAI,MAAM;QAE3C,oBACEQ,cAAA,CAACP,KAAK,EAAA;AACJI,UAAAA,gBAAgB,EAAE;AAAEsD,YAAAA,WAAW,EAAXA,WAAW;AAAEgC,YAAAA,QAAQ,EAARA;WAAW;AAC5CxF,UAAAA,OAAO,EAAC;AAA2C,SACpD,CAAC;AAEN,MAAA;IAEA,KAAK3C,OAAO,CAACO,YAAY;AAAE,MAAA;AACzB,QAAA,IAAA6H,qBAAA,GAAiEvB,IAAI,CAA7DwB,gBAAgB;AAAhBA,UAAAA,gBAAgB,GAAAD,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;UAAAE,qBAAA,GAAoCzB,IAAI,CAAtC0B,kBAAkB;AAAlBA,UAAAA,kBAAkB,GAAAD,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;UAAE/D,KAAI,GAAKsC,IAAI,CAAbtC,IAAI;AAE5D,QAAA,IAAMiE,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGC,WAAW,EAAA;AAAA,UAAA,OACnCA,WAAW,CACR1D,GAAG,CACF,UAAA2D,UAAU,EAAA;AAAA,YAAA,IAAAC,qBAAA;YAAA,OACR,CAAA,CAAAA,qBAAA,GAAAzC,cAAc,CAACwC,UAAU,CAAC,MAAA,IAAA,IAAAC,qBAAA,KAAA,MAAA,GAAA,MAAA,GAA1BA,qBAAA,CAA4BC,WAAW,KACvC5E,kBAAQ,CAAC0E,UAAU,CAACG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAA,UAAA,CACtC,CAAC,CACA3B,IAAI,CAAC,IAAI,CAAC;AAAA,QAAA,CAAA;QAEf,IAAIvE,OAAO,GAAG,2CAA2C;AAEzD,QAAA,IAAI4B,KAAI,EAAE;AACR5B,UAAAA,OAAO,GAAG,+CAA+C;QAC3D,CAAC,MAAM,IAAI0C,mBAAS,CAACgD,gBAAgB,CAAC,IAAIhD,mBAAS,CAACkD,kBAAkB,CAAC,EAAE;AACvE5F,UAAAA,OAAO,GAAG,sDAAsD;AAClE,QAAA,CAAC,MAAM,IAAI0C,mBAAS,CAACgD,gBAAgB,CAAC,EAAE;AACtC1F,UAAAA,OAAO,GAAG,mDAAmD;AAC/D,QAAA,CAAC,MAAM,IAAI0C,mBAAS,CAACkD,kBAAkB,CAAC,EAAE;AACxC5F,UAAAA,OAAO,GAAG,qDAAqD;AACjE,QAAA;QAEA,oBACEK,cAAA,CAACP,KAAK,EAAA;AACEE,UAAAA,OAAO,EAAPA,OAAO;AACbE,UAAAA,gBAAgB,EAAE;AAChBsD,YAAAA,WAAW,EAAXA,WAAW;YACXgC,QAAQ,EAAE3F,gBAAgB,IAAI,MAAM;AACpC+B,YAAAA,IAAI,EAAJA,KAAI;AACJuE,YAAAA,oBAAoB,EAAEN,iBAAiB,CAACH,gBAAgB,CAAC;AACzDU,YAAAA,sBAAsB,EAAEP,iBAAiB,CAACD,kBAAkB,CAAC;YAC7DS,qBAAqB,EAAEX,gBAAgB,CAACY,MAAM;YAC9CC,uBAAuB,EAAEX,kBAAkB,CAACU;AAC9C;AAAE,SACH,CAAC;AAEN,MAAA;IAEA,KAAKjJ,OAAO,CAACS,yBAAyB;AAAE,MAAA;QACtC,oBACEuC,cAAA,CAACP,KAAK,EAAA;AACJE,UAAAA,OAAO,EAAC,uDAAuD;AAC/DE,UAAAA,gBAAgB,EAAE;AAChBsD,YAAAA,WAAW,EAAXA,WAAW;YACXgD,YAAY,EAAExE,OAAO,CAACwE;AACxB;AAAE,SACH,CAAC;AAEN,MAAA;IAEA,KAAKnJ,OAAO,CAACU,4BAA4B;AAAE,MAAA;QACzC,oBACEsC,cAAA,CAACP,KAAK,EAAA;AACJE,UAAAA,OAAO,EAAC,0DAA0D;AAClEE,UAAAA,gBAAgB,EAAE;AAChBsD,YAAAA,WAAW,EAAXA,WAAW;YACXgD,YAAY,EAAExE,OAAO,CAACwE;AACxB;AAAE,SACH,CAAC;AAEN,MAAA;IAEA,KAAKnJ,OAAO,CAACW,wBAAwB;AAAE,MAAA;QACrC,oBACEqC,cAAA,CAACP,KAAK,EAAA;AACJE,UAAAA,OAAO,EAAC,sDAAsD;AAC9DE,UAAAA,gBAAgB,EAAE;AAChBsD,YAAAA,WAAW,EAAXA,WAAW;YACXiD,eAAe,EAAEzE,OAAO,CAACyE;AAC3B;AAAE,SACH,CAAC;AAEN,MAAA;IAEA,KAAKpJ,OAAO,CAACY,2BAA2B;AAAE,MAAA;QACxC,oBACEoC,cAAA,CAACP,KAAK,EAAA;AACJI,UAAAA,gBAAgB,EAAE;AAAEsD,YAAAA,WAAW,EAAXA;WAAc;AAClCxD,UAAAA,OAAO,EAAC;AAAyD,SAClE,CAAC;AAEN,MAAA;IAEA,KAAK3C,OAAO,CAACa,0BAA0B;AAAE,MAAA;QACvC,oBACEmC,cAAA,CAACP,KAAK,EAAA;AACJE,UAAAA,OAAO,EAAC,oDAAoD;AAC5DE,UAAAA,gBAAgB,EAAE;AAChBsD,YAAAA,WAAW,EAAXA,WAAW;YACXkD,aAAa,EAAE1E,OAAO,CAAC0E;AACzB;AAAE,SACH,CAAC;AAEN,MAAA;IAEA,KAAKrJ,OAAO,CAACc,6BAA6B;AAAE,MAAA;QAC1C,oBACEkC,cAAA,CAACP,KAAK,EAAA;AACJI,UAAAA,gBAAgB,EAAE;AAAEsD,YAAAA,WAAW,EAAXA;WAAc;AAClCxD,UAAAA,OAAO,EAAC;AAAuD,SAChE,CAAC;AAEN,MAAA;IAEA,KAAK3C,OAAO,CAACe,uBAAuB;AAAE,MAAA;QACpC,oBACEiC,cAAA,CAACP,KAAK,EAAA;AACJI,UAAAA,gBAAgB,EAAE;AAAEsD,YAAAA,WAAW,EAAXA,WAAW;YAAEmD,QAAQ,EAAE3E,OAAO,CAAC2E;WAAW;AAC9D3G,UAAAA,OAAO,EAAC;AAAqD,SAC9D,CAAC;AAEN,MAAA;IAEA,KAAK3C,OAAO,CAACQ,YAAY;AAAE,MAAA;AACzB,QAAA,IAAM2H,SAAQ,GAAG3F,gBAAgB,IAAI,MAAM;QAE3C,oBACEQ,cAAA,CAACP,KAAK,EAAA;AACJI,UAAAA,gBAAgB,EAAE;AAAEsD,YAAAA,WAAW,EAAXA,WAAW;AAAEgC,YAAAA,QAAQ,EAARA;WAAW;AAC5CxF,UAAAA,OAAO,EAAC;AAA2C,SACpD,CAAC;AAEN,MAAA;IAEA,KAAK3C,OAAO,CAACgB,eAAe;AAAE,MAAA;QAC5B,oBACEgC,cAAA,CAACP,KAAK,EAAA;AACJI,UAAAA,gBAAgB,EAAAM,eAAA,CAAA;AAAIgD,YAAAA,WAAW,EAAXA;AAAW,WAAA,EAAKU,IAAI,CAAG;AAC3ClE,UAAAA,OAAO,EAAC;AAA6C,SACtD,CAAC;AAEN,MAAA;IAEA,KAAK3C,OAAO,CAACiB,eAAe;AAAE,MAAA;QAC5B,oBACE+B,cAAA,CAACP,KAAK,EAAA;AACJI,UAAAA,gBAAgB,EAAAM,eAAA,CAAA;AAAIgD,YAAAA,WAAW,EAAXA;AAAW,WAAA,EAAKU,IAAI,CAAG;AAC3ClE,UAAAA,OAAO,EAAC;AAA6C,SACtD,CAAC;AAEN,MAAA;IAEA,KAAK3C,OAAO,CAACkB,eAAe;AAAE,MAAA;QAC5B,oBACE8B,cAAA,CAACP,KAAK,EAAA;AACJI,UAAAA,gBAAgB,EAAAM,eAAA,CAAA;AAAIgD,YAAAA,WAAW,EAAXA;AAAW,WAAA,EAAKU,IAAI,CAAG;AAC3ClE,UAAAA,OAAO,EAAC;AAA6C,SACtD,CAAC;AAEN,MAAA;AAEA,IAAA;AAAS,MAAA;QACP,oBACEK,cAAA,CAACP,KAAK,EAAA;AACJI,UAAAA,gBAAgB,EAAE;AAAEsD,YAAAA,WAAW,EAAXA;WAAc;AAClCxD,UAAAA,OAAO,EAAC;AAA+C,SACxD,CAAC;AAEN,MAAA;AACF;AACF,CAAC;AAEM,IAAM4G,SAAS,GAAGpH,aAAO,CAACC,UAAI,CAAC,IAAI,CAAC,CAAC;AAErC,IAAMoH,qBAAqB,GAAGrH,aAAO,CAACC,UAAI,CAAC,MAAM,CAAC,CAAC;;;;ACtX1D,IAAMqH,IAAI,GAAG,SAAPA,IAAIA,CAAA/G,IAAA,EAMJ;AAAA,EAAA,IALJgH,QAAQ,GAAAhH,IAAA,CAARgH,QAAQ;IACRxF,YAAY,GAAAxB,IAAA,CAAZwB,YAAY;IACZc,KAAK,GAAAtC,IAAA,CAALsC,KAAK;IACLkB,cAAc,GAAAxD,IAAA,CAAdwD,cAAc;IACdyD,UAAU,GAAAjH,IAAA,CAAViH,UAAU;AAEV,EAAA,IAAQC,GAAG,GAAqCF,QAAQ,CAAhDE,GAAG;IAAEC,QAAQ,GAA2BH,QAAQ,CAA3CG,QAAQ;IAAEC,SAAS,GAAgBJ,QAAQ,CAAjCI,SAAS;IAAEC,SAAS,GAAKL,QAAQ,CAAtBK,SAAS;AAE3C,EAAA,IAAMpE,MAAM,GAAGD,eAAe,CAACkE,GAAG,CAAC;EACnC,IAAMzD,WAAW,GAAG,CAAA2D,SAAS,KAAA,IAAA,IAATA,SAAS,KAAA,MAAA,GAAA,MAAA,GAATA,SAAS,CAAEvF,IAAI,KAAI,EAAE;AACzC,EAAA,IAAMyF,WAAW,GAAGC,gBAAU,CAACC,QAAQ,CAACH,SAAS,CAAC;AAElD,EAAA,IAAMI,SAAS,GAAGrE,qBAAqB,CAAA3C,eAAA,CAAA;AACrCe,IAAAA,YAAY,EAAZA,YAAY;AACZyB,IAAAA,MAAM,EAANA,MAAM;AACNQ,IAAAA,WAAW,EAAXA,WAAW;AACXD,IAAAA,cAAc,EAAdA;GAAc,EACX2D,QAAQ,CACZ,CAAC;AAEF,EAAA,IAAMO,IAAI,GAAGjJ,cAAc,CAACwE,MAAM,CAAC;AAEnC,EAAA,oBACEuC,eAAA,CAAA,KAAA,EAAA;AACE,IAAA,aAAA,EAAY,gBAAgB;AAC5B5E,IAAAA,SAAS,EAAE+G,UAAU,CACnB,gGAAgG,EAChG;MACE,uBAAuB,EAAErF,KAAK,KAAK,CAAC;AACpC,MAAA,cAAc,EAAEA,KAAK,KAAK2E,UAAU,GAAG;AACzC,KACF,CAAE;AAAAvE,IAAAA,QAAA,gBAEFpC,cAAA,CAAA,KAAA,EAAA;AAAKM,MAAAA,SAAS,EAAC,mGAAmG;MAAA8B,QAAA,eAChHpC,cAAA,CAACoH,IAAI,EAAA;AAAC9G,QAAAA,SAAS,EAAC,sCAAsC;AAACgH,QAAAA,IAAI,EAAE;OAAK;KAC/D,CAAC,eACNpC,eAAA,CAAA,KAAA,EAAA;AAAK5E,MAAAA,SAAS,EAAC,uBAAuB;AAAC,MAAA,aAAA,EAAY,mBAAmB;MAAA8B,QAAA,EAAA,cACpEpC,cAAA,CAACK,UAAU,EAAA;AACTE,QAAAA,SAAS,EAAC,MAAM;AAChB,QAAA,aAAA,EAAY,gBAAgB;AAC5BgH,QAAAA,UAAU,EAAC,QAAQ;AACnB/G,QAAAA,KAAK,EAAC,OAAO;AAAA4B,QAAAA,QAAA,EAEZ+E;AAAS,OACA,CAAC,eACbnH,cAAA,CAACK,UAAU,EAAA;AACTC,QAAAA,SAAS,EAAC,4BAA4B;AACtC,QAAA,aAAA,EAAY,qBAAqB;AACjCE,QAAAA,KAAK,EAAC,OAAO;AAAA4B,QAAAA,QAAA,EAEZ4E;AAAW,OACF,CAAC;AAAA,KACV,CAAC;AAAA,GACH,CAAC;AAEV,CAAC;;AC7DD,IAAMQ,cAAc,GAAG,SAAjBA,cAAcA,CAAGC,MAAM,EAAA;AAAA,EAAA,OAAIC,KAAK,CAACC,GAAG,CAAC,mBAAmB,EAAE;AAAEF,IAAAA,MAAM,EAANA;AAAO,GAAC,CAAC;AAAA,CAAA;AAE3E,IAAMG,cAAc,GAAG,SAAjBA,cAAcA,GAAA;AAAA,EAAA,OAASF,KAAK,CAACC,GAAG,CAAC,sCAAsC,CAAC;AAAA,CAAA;AAE9E,IAAME,gBAAgB,GAAG,SAAnBA,gBAAgBA,GAAA;AAAA,EAAA,OAASH,KAAK,CAACC,GAAG,CAAC,gCAAgC,CAAC;AAAA,CAAA;AAE1E,IAAMG,YAAY,GAAG;AAAEN,EAAAA,cAAc,EAAdA,cAAc;AAAEI,EAAAA,cAAc,EAAdA,cAAc;AAAEC,EAAAA,gBAAgB,EAAhBA;AAAiB,CAAC;;;;ACHlE,IAAME,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAArI,IAAA,EAAA;AAAA,EAAA,IAAM+H,MAAM,GAAA/H,IAAA,CAAN+H,MAAM;IAAAO,YAAA,GAAAtI,IAAA,CAAEuI,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,YAAA;EAAA,OACtDE,mBAAQ,CAAA/H,eAAA,CAAA;AACNgI,IAAAA,QAAQ,EAAE,CAACtL,oBAAoB,EAAE4K,MAAM,CAAC;IACxCW,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,MAAA,OAAQN,YAAY,CAACN,cAAc,CAACC,MAAM,CAAC;AAAA,IAAA;GAAA,EAC/CQ,OAAO,CACX,CAAC;AAAA,CAAA;;ACJG,IAAMI,iBAAiB,GAAG,SAApBA,iBAAiBA,GAAA;AAAA,EAAA,OAC5BH,mBAAQ,CAAC;IACPC,QAAQ,EAAE,CAACrL,wBAAwB,CAAC;IACpCsL,OAAO,EAAEN,YAAY,CAACF,cAAc;AACpCU,IAAAA,SAAS,EAAEC;AACb,GAAC,CAAC;AAAA,CAAA;;ACLG,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,GAAA;AAAA,EAAA,OAC9BN,mBAAQ,CAAC;IACPC,QAAQ,EAAE,CAACpL,0BAA0B,CAAC;IACtCqL,OAAO,EAAEN,YAAY,CAACD,gBAAgB;AACtCS,IAAAA,SAAS,EAAEC;AACb,GAAC,CAAC;AAAA,CAAA;;;;ACQJ,IAAME,SAAS,GAAG,SAAZA,SAASA,CAAA/I,IAAA,EAAqD;AAAA,EAAA,IAA/CgJ,WAAW,GAAAhJ,IAAA,CAAXgJ,WAAW;IAAEC,cAAc,GAAAjJ,IAAA,CAAdiJ,cAAc;IAAEC,WAAW,GAAAlJ,IAAA,CAAXkJ,WAAW;AAC3D,EAAA,IAAAC,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;AAET,EAAA,IAAAC,eAAA,GAAsCC,yBAAc,EAAE;IAAAC,oBAAA,GAAAF,eAAA,CAA9CG,IAAI;AAAJA,IAAAA,IAAI,GAAAD,oBAAA,KAAA,MAAA,GAAGE,4BAAkB,GAAAF,oBAAA;EAEjC,IAAAG,kBAAA,GAIItB,iBAAiB,CAAC;AAAEN,MAAAA,MAAM,EAAE;AAAE0B,QAAAA,IAAI,EAAJA,IAAI;AAAEG,QAAAA,QAAQ,EAAErK;AAAqB;AAAE,KAAC,CAAC;IAAAsK,qBAAA,GAAAF,kBAAA,CAHzEG,IAAI;AAAAC,IAAAA,sBAAA,GAAAF,qBAAA,KAAA,MAAA,GAAuC,EAAE,GAAAA,qBAAA;IAAAG,sBAAA,GAAAD,sBAAA,CAArCE,SAAS;AAATA,IAAAA,SAAS,GAAAD,sBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,sBAAA;IAAAE,sBAAA,GAAAH,sBAAA,CAAE9C,UAAU;AAAVA,IAAAA,UAAU,GAAAiD,sBAAA,KAAA,MAAA,GAAG,CAAC,GAAAA,sBAAA;IACtCC,SAAS,GAAAR,kBAAA,CAATQ,SAAS;IACTC,UAAU,GAAAT,kBAAA,CAAVS,UAAU;AAGZ,EAAA,IAAAC,kBAAA,GAAgC1B,iBAAiB,EAAE;IAArC2B,aAAa,GAAAD,kBAAA,CAAnBP,IAAI;AAEZ,EAAA,IAAAS,oBAAA,GAAkCzB,mBAAmB,EAAE;IAAzC0B,eAAe,GAAAD,oBAAA,CAArBT,IAAI;EAEZ,IAAMW,aAAa,GAAGH,aAAa,KAAA,IAAA,IAAbA,aAAa,KAAA,MAAA,GAAA,MAAA,GAAbA,aAAa,CAAEI,SAAS;EAC9C,IAAMC,eAAe,GAAGH,eAAe,KAAA,IAAA,IAAfA,eAAe,KAAA,MAAA,GAAA,MAAA,GAAfA,eAAe,CAAEzE,WAAW;EAEpD,IAAMvC,cAAc,GAAGoH,aAAO,CAC5B,YAAA;IAAA,OAAOD,eAAe,GAAG7D,qBAAqB,CAAC6D,eAAe,CAAC,GAAG,EAAE;AAAA,EAAA,CAAC,EACrE,CAACA,eAAe,CAClB,CAAC;EAED,IAAMnJ,YAAY,GAAGoJ,aAAO,CAC1B,YAAA;IAAA,OAAOH,aAAa,GAAG5D,SAAS,CAAC4D,aAAa,CAAC,GAAG,EAAE;AAAA,EAAA,CAAC,EACrD,CAACA,aAAa,CAChB,CAAC;EAED,IAAIN,SAAS,IAAIC,UAAU,EAAE;AAC3B,IAAA,oBACE9J,cAAA,CAAA,KAAA,EAAA;AAAKM,MAAAA,SAAS,EAAC,gDAAgD;AAAA8B,MAAAA,QAAA,eAC7DpC,cAAA,CAACuK,OAAO,EAAA,EAAE;AAAC,KACR,CAAC;AAEV,EAAA;EAEA,oBACErF,eAAA,CAACsF,SAAS,EAAA;IAACC,aAAa,EAAA,IAAA;AAACnK,IAAAA,SAAS,EAAC,iBAAiB;AAAA8B,IAAAA,QAAA,EAAA,cAClDpC,cAAA,CAAC0K,MAAM,EAAAvK,aAAA,CAAA;AACLG,MAAAA,SAAS,EAAC,eAAe;MACzBqK,KAAK,EAAE5B,CAAC,CAAC,gCAAgC;KAAE,EACvCL,WAAW,CAChB,CAAC,EACDrG,mBAAS,CAACsH,SAAS,CAAC,gBACnB3J,cAAA,CAAA,KAAA,EAAA;AAAKM,MAAAA,SAAS,EAAC,2CAA2C;MAAA8B,QAAA,EACvDuH,SAAS,CAAC5H,GAAG,CAAC,UAAC2E,QAAQ,EAAE1E,KAAK,EAAA;QAAA,oBAC7B4I,mBAAA,CAACnE,IAAI,EAAA;AACGC,UAAAA,QAAQ,EAARA,QAAQ;AAAExF,UAAAA,YAAY,EAAZA,YAAY;AAAEc,UAAAA,KAAK,EAALA,KAAK;AAAEkB,UAAAA,cAAc,EAAdA,cAAc;UACnD0D,GAAG,EAAEF,QAAQ,CAACmE,EAAG;UACjBlE,UAAU,EAAEgD,SAAS,CAAC1D;AAAO,SAC9B,CAAC;MAAA,CACH;KACE,CAAC,gBAENjG,cAAA,CAAA,KAAA,EAAA;AAAKM,MAAAA,SAAS,EAAC,gDAAgD;MAAA8B,QAAA,eAC7DpC,cAAA,CAAC8K,MAAM,EAAA;AACLC,QAAAA,QAAQ,EAAEpC,cAAe;AACzBgC,QAAAA,KAAK,EAAE/B,WAAW,IAAIG,CAAC,CAAC,iCAAiC;OAC1D;AAAC,KACC,CACN,EACApC,UAAU,GAAG,CAAC,iBACb3G,cAAA,CAAA,KAAA,EAAA;AAAKM,MAAAA,SAAS,EAAC,4CAA4C;MAAA8B,QAAA,eACzDpC,cAAA,CAACgL,UAAU,EAAA;AACTC,QAAAA,KAAK,EAAEtE,UAAW;AAClBuE,QAAAA,MAAM,EAAEC,QAAQ,CAAChC,IAAI,CAAE;AACvBG,QAAAA,QAAQ,EAAErK;OACX;AAAC,KACC,CACN;AAAA,GACQ,CAAC;AAEhB;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigbinary/neeto-molecules",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.14",
|
|
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>",
|
package/src/translations/ar.json
CHANGED
|
@@ -533,8 +533,8 @@
|
|
|
533
533
|
"performedAction": "{{performedBy, anyCase}} <Semibold>نفّذ</Semibold> إجراءً على {{productSuffix, anyCase}}.",
|
|
534
534
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> من <Code>{{from, anyCase}}</Code> إلى <Code>{{to, anyCase}}</Code>",
|
|
535
535
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> إلى <Code>{{to, anyCase}}</Code>",
|
|
536
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold
|
|
537
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold
|
|
536
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>تم الاتصال بـ Google Calendar</Semibold> باستخدام <Code>{{emailAddress}}</Code>.",
|
|
537
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>تم فصل الاتصال بـ Google Calendar</Semibold> لـ <Code>{{emailAddress}}</Code>.",
|
|
538
538
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>اتصل بالتكامل مع Stripe</Semibold> مع معرف الحساب: <Code>{{stripeAccountId}}</Code> على {{productSuffix, anyCase}}.",
|
|
539
539
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>فصل التكامل مع Stripe</Semibold> على {{productSuffix, anyCase}}.",
|
|
540
540
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>اتصل بالتكامل مع Zoom</Semibold> مع معرف الحساب: <Code>{{zoomAccountId}}</Code> على {{productSuffix, anyCase}}.",
|
package/src/translations/bg.json
CHANGED
|
@@ -554,8 +554,8 @@
|
|
|
554
554
|
"performedAction": "{{performedBy, anyCase}} <Semibold>извърши</Semibold> действие на {{productSuffix, anyCase}}.",
|
|
555
555
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> от <Code>{{from, anyCase}}</Code> на <Code>{{to, anyCase}}</Code>",
|
|
556
556
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> на <Code>{{to, anyCase}}</Code>",
|
|
557
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold
|
|
558
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold
|
|
557
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>свързан Google Calendar</Semibold> с <Code>{{emailAddress}}</Code>.",
|
|
558
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>развръзал Google Calendar</Semibold> за <Code>{{emailAddress}}</Code>.",
|
|
559
559
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>свърза с интеграцията на Stripe</Semibold> с акаунт ID: <Code>{{stripeAccountId}}</Code> на {{productSuffix, anyCase}}.",
|
|
560
560
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>изключи интеграцията на Stripe</Semibold> на {{productSuffix, anyCase}}.",
|
|
561
561
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>свърза с интеграцията на Zoom</Semibold> с акаунт ID: <Code>{{zoomAccountId}}</Code> на {{productSuffix, anyCase}}.",
|
package/src/translations/ca.json
CHANGED
|
@@ -533,8 +533,8 @@
|
|
|
533
533
|
"performedAction": "{{performedBy, anyCase}} <Semibold>ha realitzat</Semibold> una acció a {{productSuffix, anyCase}}.",
|
|
534
534
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> de <Code>{{from, anyCase}}</Code> a <Code>{{to, anyCase}}</Code>",
|
|
535
535
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> a <Code>{{to, anyCase}}</Code>",
|
|
536
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>ha connectat
|
|
537
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>ha desconnectat
|
|
536
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>ha connectat Google Calendar</Semibold> utilitzant <Code>{{emailAddress}}</Code>.",
|
|
537
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>ha desconnectat Google Calendar</Semibold> per <Code>{{emailAddress}}</Code>.",
|
|
538
538
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>ha connectat a la integració de Stripe</Semibold> amb l'ID del compte: <Code>{{stripeAccountId}}</Code> a {{productSuffix, anyCase}}.",
|
|
539
539
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>ha desconnectat la integració de Stripe</Semibold> a {{productSuffix, anyCase}}.",
|
|
540
540
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>ha connectat a la integració de Zoom</Semibold> amb l'ID del compte: <Code>{{zoomAccountId}}</Code> a {{productSuffix, anyCase}}.",
|
package/src/translations/cs.json
CHANGED
|
@@ -533,8 +533,8 @@
|
|
|
533
533
|
"performedAction": "{{performedBy, anyCase}} <Semibold>provedl</Semibold> akci na {{productSuffix, anyCase}}.",
|
|
534
534
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> z <Code>{{from, anyCase}}</Code> na <Code>{{to, anyCase}}</Code>",
|
|
535
535
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> na <Code>{{to, anyCase}}</Code>",
|
|
536
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>
|
|
537
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>odpojil
|
|
536
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>připojil Google Calendar</Semibold> použitím <Code>{{emailAddress}}</Code>.",
|
|
537
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>odpojil Google Calendar</Semibold> pro <Code>{{emailAddress}}</Code>.",
|
|
538
538
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>se připojil k integraci Stripe</Semibold> s ID účtu: <Code>{{stripeAccountId}}</Code> na {{productSuffix, anyCase}}.",
|
|
539
539
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>odpojil integraci Stripe</Semibold> na {{productSuffix, anyCase}}.",
|
|
540
540
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>se připojil k integraci Zoom</Semibold> s ID účtu: <Code>{{zoomAccountId}}</Code> na {{productSuffix, anyCase}}.",
|
package/src/translations/da.json
CHANGED
|
@@ -533,8 +533,8 @@
|
|
|
533
533
|
"performedAction": "{{performedBy, anyCase}} <Semibold>udførte</Semibold> en handling på {{productSuffix, anyCase}}.",
|
|
534
534
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> fra <Code>{{from, anyCase}}</Code> til <Code>{{to, anyCase}}</Code>",
|
|
535
535
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> til <Code>{{to, anyCase}}</Code>",
|
|
536
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>
|
|
537
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>
|
|
536
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>forbandt Google Kalender</Semibold> ved hjælp af <Code>{{emailAddress}}</Code>.",
|
|
537
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>afbrød forbindelse til Google Kalender</Semibold> for <Code>{{emailAddress}}</Code>.",
|
|
538
538
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>forbundne til Stripe integrationen</Semibold> med konto ID: <Code>{{stripeAccountId}}</Code> på {{productSuffix, anyCase}}.",
|
|
539
539
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>frakoblede Stripe integrationen</Semibold> på {{productSuffix, anyCase}}.",
|
|
540
540
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>forbundne til Zoom integrationen</Semibold> med konto ID: <Code>{{zoomAccountId}}</Code> på {{productSuffix, anyCase}}.",
|
package/src/translations/de.json
CHANGED
|
@@ -376,8 +376,8 @@
|
|
|
376
376
|
"performedAction": "{{performedBy, anyCase}} <Semibold>hat eine Aktion ausgeführt</Semibold> bei {{productSuffix, anyCase}}.",
|
|
377
377
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> von <Code>{{from, anyCase}}</Code> auf <Code>{{to, anyCase}}</Code>",
|
|
378
378
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> auf <Code>{{to, anyCase}}</Code>",
|
|
379
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>
|
|
380
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>
|
|
379
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>verbundene Google Kalender</Semibold> über <Code>{{emailAddress}}</Code>.",
|
|
380
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>getrennte Google Kalender</Semibold> für <Code>{{emailAddress}}</Code>.",
|
|
381
381
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>hat sich mit der Stripe-Integration verbunden</Semibold> mit der Kontonummer: <Code>{{stripeAccountId}}</Code> bei {{productSuffix, anyCase}}.",
|
|
382
382
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>hat die Stripe-Integration getrennt</Semibold> bei {{productSuffix, anyCase}}.",
|
|
383
383
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>hat sich mit der Zoom-Integration verbunden</Semibold> mit der Kontonummer: <Code>{{zoomAccountId}}</Code> bei {{productSuffix, anyCase}}.",
|
package/src/translations/en.json
CHANGED
|
@@ -342,6 +342,7 @@
|
|
|
342
342
|
"invitedUsersFailed": "{{performedBy, anyCase}} <Semibold>attempted</Semibold> to invite a user {{productSuffix, anyCase}}{{errorMessage}}.",
|
|
343
343
|
"userSignedUp": "{{userIdentifier}} <Semibold>signed up</Semibold> on {{productSuffix, anyCase}}.",
|
|
344
344
|
"updatedUser": "{{performedBy, anyCase}} <Semibold>changed</Semibold> <Code>{{affectedUser}}'s</Code> <ChangedFields></ChangedFields> on {{productSuffix, anyCase}}.",
|
|
345
|
+
"removedUser": "{{performedBy, anyCase}} <Semibold>removed</Semibold> <Code>{{affectedUser}}</Code> from {{productSuffix, anyCase}}.",
|
|
345
346
|
"bulkUpdateUsers": "{{performedBy, anyCase}} <Semibold>{{message}}</Semibold>: <Code>{{emailList}}</Code> on {{productSuffix, anyCase}}.",
|
|
346
347
|
"bulkUpdateUsersFailed": "{{performedBy, anyCase}} <Semibold>{{message}}</Semibold> at {{productSuffix, anyCase}}{{errorMessage}}.",
|
|
347
348
|
"updatedUserProfile": "{{performedBy, anyCase}} <Semibold>changed</Semibold> <ChangedFields></ChangedFields> in {{productSuffix, anyCase}}.",
|
|
@@ -533,8 +533,8 @@
|
|
|
533
533
|
"performedAction": "{{performedBy, anyCase}} <Semibold>realizó</Semibold> una acción en {{productSuffix, anyCase}}.",
|
|
534
534
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> de <Code>{{from, anyCase}}</Code> a <Code>{{to, anyCase}}</Code>",
|
|
535
535
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> a <Code>{{to, anyCase}}</Code>",
|
|
536
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>
|
|
537
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>desconectó
|
|
536
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>conectó Google Calendar</Semibold> usando <Code>{{emailAddress}}</Code>.",
|
|
537
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>desconectó Google Calendar</Semibold> para <Code>{{emailAddress}}</Code>.",
|
|
538
538
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>se conectó a la integración de Stripe</Semibold> con ID de cuenta: <Code>{{stripeAccountId}}</Code> en {{productSuffix, anyCase}}.",
|
|
539
539
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>desconectó la integración de Stripe</Semibold> en {{productSuffix, anyCase}}.",
|
|
540
540
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>se conectó a la integración de Zoom</Semibold> con ID de cuenta: <Code>{{zoomAccountId}}</Code> en {{productSuffix, anyCase}}.",
|
package/src/translations/es.json
CHANGED
|
@@ -376,8 +376,8 @@
|
|
|
376
376
|
"performedAction": "{{performedBy, anyCase}} <Semibold> realizó</Semibold> una acción en {{productSuffix, anyCase}}.",
|
|
377
377
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> de <Code>{{from, anyCase}}</Code> a <Code>{{to, anyCase}}</Code>",
|
|
378
378
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> a <Code>{{to, anyCase}}</Code>",
|
|
379
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>conectó
|
|
380
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>desconectó
|
|
379
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>conectó Google Calendar</Semibold> usando <Code>{{emailAddress}}</Code>.",
|
|
380
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>desconectó Google Calendar</Semibold> para <Code>{{emailAddress}}</Code>.",
|
|
381
381
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>conectó a la integración de Stripe</Semibold> con ID de cuenta: <Code>{{stripeAccountId}}</Code> en {{productSuffix, anyCase}}.",
|
|
382
382
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>desconectó la integración de Stripe</Semibold> en {{productSuffix, anyCase}}.",
|
|
383
383
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>conectó a la integración de Zoom</Semibold> con ID de cuenta: <Code>{{zoomAccountId}}</Code> en {{productSuffix, anyCase}}.",
|
package/src/translations/et.json
CHANGED
|
@@ -533,8 +533,8 @@
|
|
|
533
533
|
"performedAction": "{{performedBy, anyCase}} <Semibold>tehtud</Semibold> tegevus {{productSuffix, anyCase}}.",
|
|
534
534
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> <from, anyCase>oli</from, anyCase> <Code>{{from, anyCase}}</Code> <to, anyCase>on</to, anyCase> <Code>{{to, anyCase}}</Code>",
|
|
535
535
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> <to, anyCase>on</to, anyCase> <Code>{{to, anyCase}}</Code>",
|
|
536
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>ü
|
|
537
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>
|
|
536
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>ühendas Google Calendar</Semibold> kasutades <Code>{{emailAddress}}</Code>.",
|
|
537
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>lahutas Google Calendar</Semibold> <Code>{{emailAddress}}</Code>.",
|
|
538
538
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>ühendatud Stripe integratsioon</Semibold> kontoga ID: <Code>{{stripeAccountId}}</Code> {{productSuffix, anyCase}}.",
|
|
539
539
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>lahkunud Stripe integratsioon</Semibold> {{productSuffix, anyCase}}.",
|
|
540
540
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>ühendatud Zoom integratsioon</Semibold> kontoga ID: <Code>{{zoomAccountId}}</Code> {{productSuffix, anyCase}}.",
|
package/src/translations/fi.json
CHANGED
|
@@ -533,8 +533,8 @@
|
|
|
533
533
|
"performedAction": "{{performedBy, anyCase}} <Semibold>sai aikaan</Semibold> toiminnon {{productSuffix, anyCase}}.",
|
|
534
534
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> <Code>{{from, anyCase}}</Code> <Code>{{to, anyCase}}</Code>",
|
|
535
535
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> <Code>{{to, anyCase}}</Code>",
|
|
536
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>
|
|
537
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>
|
|
536
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>yhdistetty Google Kalendar</Semibold> käyttäen <Code>{{emailAddress}}</Code>.",
|
|
537
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>irrotettu Google Kalendar</Semibold> käyttäjälle <Code>{{emailAddress}}</Code>.",
|
|
538
538
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>yhdisti Stripe-integraatioon</Semibold> tilillä: <Code>{{stripeAccountId}}</Code> {{productSuffix, anyCase}}.",
|
|
539
539
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>irrotti Stripe-integraation</Semibold> {{productSuffix, anyCase}}.",
|
|
540
540
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>yhdisti Zoom-integraatioon</Semibold> tilillä: <Code>{{zoomAccountId}}</Code> {{productSuffix, anyCase}}.",
|
|
@@ -533,8 +533,8 @@
|
|
|
533
533
|
"performedAction": "{{performedBy, anyCase}} <Semibold>nagsagawa</Semibold> ng isang aksyon sa {{productSuffix, anyCase}}.",
|
|
534
534
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> mula sa <Code>{{from, anyCase}}</Code> hanggang sa <Code>{{to, anyCase}}</Code>",
|
|
535
535
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> sa <Code>{{to, anyCase}}</Code>",
|
|
536
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>nakakonekta
|
|
537
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>
|
|
536
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>nakakonekta ang Google Calendar</Semibold> gamit ang <Code>{{emailAddress}}</Code>.",
|
|
537
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>nakatanggal ang Google Calendar</Semibold> para sa <Code>{{emailAddress}}</Code>.",
|
|
538
538
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>nakakonekta sa Stripe integration</Semibold> gamit ang account ID: <Code>{{stripeAccountId}}</Code> sa {{productSuffix, anyCase}}.",
|
|
539
539
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>nag-alis ng koneksyon sa Stripe integration</Semibold> sa {{productSuffix, anyCase}}.",
|
|
540
540
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>nakakonekta sa Zoom integration</Semibold> gamit ang account ID: <Code>{{zoomAccountId}}</Code> sa {{productSuffix, anyCase}}.",
|
package/src/translations/fr.json
CHANGED
|
@@ -376,8 +376,8 @@
|
|
|
376
376
|
"performedAction": "{{performedBy, anyCase}} <Semibold> a effectué</Semibold> une action sur {{productSuffix, anyCase}}.",
|
|
377
377
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> de <Code>{{from, anyCase}}</Code> à <Code>{{to, anyCase}}</Code>",
|
|
378
378
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> à <Code>{{to, anyCase}}</Code>",
|
|
379
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>
|
|
380
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>
|
|
379
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>connected Google Calendar</Semibold> using <Code>{{emailAddress}}</Code>.",
|
|
380
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>disconnected Google Calendar</Semibold> for <Code>{{emailAddress}}</Code>.",
|
|
381
381
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>connecté à l'intégration Stripe</Semibold> avec l'ID de compte: <Code>{{stripeAccountId}}</Code> sur {{productSuffix, anyCase}}.",
|
|
382
382
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>déconnecté l'intégration Stripe</Semibold> sur {{productSuffix, anyCase}}.",
|
|
383
383
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>connecté à l'intégration Zoom</Semibold> avec l'ID de compte: <Code>{{zoomAccountId}}</Code> sur {{productSuffix, anyCase}}.",
|
package/src/translations/he.json
CHANGED
|
@@ -353,8 +353,8 @@
|
|
|
353
353
|
"performedAction": "{{performedBy, anyCase}} <Semibold>ביצע</Semibold> פעולה ב- {{productSuffix, anyCase}}.",
|
|
354
354
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> מ- <Code>{{from, anyCase}}</Code> ל- <Code>{{to, anyCase}}</Code>",
|
|
355
355
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> ל- <Code>{{to, anyCase}}</Code>",
|
|
356
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold
|
|
357
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>ניתק
|
|
356
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>חובר לוח שנה של גוגל</Semibold> באמצעות <Code>{{emailAddress}}</Code>.",
|
|
357
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>ניתק לוח שנה של גוגל</Semibold> עבור <Code>{{emailAddress}}</Code>.",
|
|
358
358
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>מחובר לאינטגרציית Stripe</Semibold> עם מזהה חשבון: <Code>{{stripeAccountId}}</Code> ב- {{productSuffix, anyCase}}.",
|
|
359
359
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>ניתק את אינטגרציית Stripe</Semibold> ב- {{productSuffix, anyCase}}.",
|
|
360
360
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>מחובר לאינטגרציית Zoom</Semibold> עם מזהה חשבון: <Code>{{zoomAccountId}}</Code> ב- {{productSuffix, anyCase}}.",
|
package/src/translations/hi.json
CHANGED
|
@@ -554,8 +554,8 @@
|
|
|
554
554
|
"performedAction": "{{performedBy, anyCase}} <Semibold>performed</Semibold> एक क्रिया {{productSuffix, anyCase}} पर",
|
|
555
555
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}<\\Semibold>: से <Code>{{from, anyCase}}<\\Code> तक <Code>{{to, anyCase}}<\\Code>",
|
|
556
556
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}<\\Semibold>: तक <Code>{{to, anyCase}}<\\Code>",
|
|
557
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold
|
|
558
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold
|
|
557
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>गूगल कैलेंडर से जुड़े</Semibold> <Code>{{emailAddress}}</Code> का उपयोग करके।",
|
|
558
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>गूगल कैलेंडर से डिस्कनेक्ट</Semibold> <Code>{{emailAddress}}</Code> के लिए।",
|
|
559
559
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>connected to Stripe integration</Semibold> खाता ID के साथ: <Code>{{stripeAccountId}}</Code> पर {{productSuffix, anyCase}}",
|
|
560
560
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>disconnected the Stripe integration</Semibold> पर {{productSuffix, anyCase}}",
|
|
561
561
|
"connectedZoomAccount": "{{performedBy, anyCase}} ने <Semibold>connected to Zoom integration</Semibold> खाता ID के साथ: <Code>{{zoomAccountId}}</Code> पर {{productSuffix, anyCase}}",
|
package/src/translations/hr.json
CHANGED
|
@@ -533,8 +533,8 @@
|
|
|
533
533
|
"performedAction": "{{performedBy, anyCase}} <Semibold>izvršio</Semibold> akciju na {{productSuffix, anyCase}}.",
|
|
534
534
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> od <Code>{{from, anyCase}}</Code> do <Code>{{to, anyCase}}</Code>",
|
|
535
535
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> do <Code>{{to, anyCase}}</Code>",
|
|
536
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>
|
|
537
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>isključen Google
|
|
536
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>spojen Google Calendar</Semibold> koristeći <Code>{{emailAddress}}</Code>.",
|
|
537
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>isključen Google Calendar</Semibold> za <Code>{{emailAddress}}</Code>.",
|
|
538
538
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>povezan s Stripe integracijom</Semibold> s ID-om računa: <Code>{{stripeAccountId}}</Code> na {{productSuffix, anyCase}}.",
|
|
539
539
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>isključen Stripe integraciju</Semibold> na {{productSuffix, anyCase}}.",
|
|
540
540
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>povezan s Zoom integracijom</Semibold> s ID-om računa: <Code>{{zoomAccountId}}</Code> na {{productSuffix, anyCase}}.",
|
package/src/translations/hu.json
CHANGED
|
@@ -356,8 +356,8 @@
|
|
|
356
356
|
"updatedFields": "<Semibold>{{field}}</Semibold>",
|
|
357
357
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> a <Code>{{from, anyCase}}</Code>-ről <Code>{{to, anyCase}}</Code>-ra",
|
|
358
358
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> a <Code>{{to, anyCase}}</Code>-ra",
|
|
359
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold
|
|
360
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>
|
|
359
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>összekapcsolta a Google Naptárt</Semibold> a <Code>{{emailAddress}}</Code> használatával.",
|
|
360
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>leválasztotta a Google Naptárt</Semibold> a <Code>{{emailAddress}}</Code> számára.",
|
|
361
361
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>kapcsolódott a Stripe integrációhoz</Semibold> az azonosítóval: <Code>{{stripeAccountId}}</Code> a {{productSuffix, anyCase}}-on.",
|
|
362
362
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>lemákolta a Stripe integrációt</Semibold> a {{productSuffix, anyCase}}-on.",
|
|
363
363
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>kapcsolódott a Zoom integrációhoz</Semibold> az azonosítóval: <Code>{{zoomAccountId}}</Code> a {{productSuffix, anyCase}}-on.",
|
package/src/translations/id.json
CHANGED
|
@@ -533,8 +533,8 @@
|
|
|
533
533
|
"performedAction": "{{performedBy, anyCase}} <Semibold>performed</Semibold> sebuah tindakan di {{productSuffix, anyCase}}.",
|
|
534
534
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> dari <Code>{{from, anyCase}}</Code> ke <Code>{{to, anyCase}}</Code>",
|
|
535
535
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> ke <Code>{{to, anyCase}}</Code>",
|
|
536
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>
|
|
537
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>
|
|
536
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>terhubung Google Calendar</Semibold> menggunakan <Code>{{emailAddress}}</Code>.",
|
|
537
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>terputus dari Google Calendar</Semibold> untuk <Code>{{emailAddress}}</Code>.",
|
|
538
538
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>connected to Stripe integration</Semibold> dengan ID akun: <Code>{{stripeAccountId}}</Code> di {{productSuffix, anyCase}}.",
|
|
539
539
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>disconnected integrasi Stripe</Semibold> di {{productSuffix, anyCase}}.",
|
|
540
540
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>connected to Zoom integration</Semibold> dengan ID akun: <Code>{{zoomAccountId}}</Code> di {{productSuffix, anyCase}}.",
|
package/src/translations/it.json
CHANGED
|
@@ -533,8 +533,8 @@
|
|
|
533
533
|
"performedAction": "{{performedBy, anyCase}} <Semibold>ha eseguito</Semibold> un'azione su {{productSuffix, anyCase}}.",
|
|
534
534
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> da <Code>{{from, anyCase}}</Code> a <Code>{{to, anyCase}}</Code>",
|
|
535
535
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> a <Code>{{to, anyCase}}</Code>",
|
|
536
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>ha
|
|
537
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>ha disconnesso
|
|
536
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>ha connesso Google Calendar</Semibold> utilizzando <Code>{{emailAddress}}</Code>.",
|
|
537
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>ha disconnesso Google Calendar</Semibold> per <Code>{{emailAddress}}</Code>.",
|
|
538
538
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>ha collegato l'integrazione Stripe</Semibold> con ID account: <Code>{{stripeAccountId}}</Code> su {{productSuffix, anyCase}}.",
|
|
539
539
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>ha disconnesso l'integrazione Stripe</Semibold> su {{productSuffix, anyCase}}.",
|
|
540
540
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>ha collegato l'integrazione Zoom</Semibold> con ID account: <Code>{{zoomAccountId}}</Code> su {{productSuffix, anyCase}}.",
|
package/src/translations/ja.json
CHANGED
|
@@ -533,8 +533,8 @@
|
|
|
533
533
|
"performedAction": "{{performedBy, anyCase}} <Semibold>アクションを実行しました</Semibold> {{productSuffix, anyCase}} 上で。",
|
|
534
534
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> を <Code>{{from, anyCase}}</Code> から <Code>{{to, anyCase}}</Code> に。",
|
|
535
535
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> を <Code>{{to, anyCase}}</Code> に。",
|
|
536
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>Googleカレンダーに接続しました</Semibold>
|
|
537
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>Google
|
|
536
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>Google カレンダーに接続しました</Semibold> using <Code>{{emailAddress}}</Code>.",
|
|
537
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>Google カレンダーから切断しました</Semibold> for <Code>{{emailAddress}}</Code>.",
|
|
538
538
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>Stripe統合に接続しました</Semibold> アカウントID: <Code>{{stripeAccountId}}</Code> を使って {{productSuffix, anyCase}} 上で。",
|
|
539
539
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>Stripe統合を切断しました</Semibold> {{productSuffix, anyCase}} 上で。",
|
|
540
540
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>Zoom統合に接続しました</Semibold> アカウントID: <Code>{{zoomAccountId}}</Code> を使って {{productSuffix, anyCase}} 上で。",
|
package/src/translations/ko.json
CHANGED
|
@@ -533,8 +533,8 @@
|
|
|
533
533
|
"performedAction": "{{performedBy, anyCase}} <Semibold>작업을 수행했습니다</Semibold> {{productSuffix, anyCase}}.",
|
|
534
534
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> <Code>{{from, anyCase}}</Code>에서 <Code>{{to, anyCase}}</Code>로 변경했습니다.",
|
|
535
535
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold>을 <Code>{{to, anyCase}}</Code>로 변경했습니다.",
|
|
536
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold
|
|
537
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold
|
|
536
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>구글 캘린더에 연결됨</Semibold> using <Code>{{emailAddress}}</Code>.",
|
|
537
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>구글 캘린더에서 끊김</Semibold> for <Code>{{emailAddress}}</Code>.",
|
|
538
538
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>Stripe 통합에 연결되었습니다</Semibold> 계정 ID: <Code>{{stripeAccountId}}</Code>로 {{productSuffix, anyCase}}.",
|
|
539
539
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>Stripe 통합을 끊었습니다</Semibold> {{productSuffix, anyCase}}.",
|
|
540
540
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>Zoom 통합에 연결되었습니다</Semibold> 계정 ID: <Code>{{zoomAccountId}}</Code>로 {{productSuffix, anyCase}}.",
|
package/src/translations/nl.json
CHANGED
|
@@ -376,8 +376,8 @@
|
|
|
376
376
|
"performedAction": "{{performedBy, anyCase}} <Semibold>voerde uit</Semibold> een actie op {{productSuffix, anyCase}}.",
|
|
377
377
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> van <Code>{{from, anyCase}}</Code> naar <Code>{{to, anyCase}}</Code>",
|
|
378
378
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> naar <Code>{{to, anyCase}}</Code>",
|
|
379
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>verbonden
|
|
380
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>
|
|
379
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>verbonden Google Calendar</Semibold> met <Code>{{emailAddress}}</Code>.",
|
|
380
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>verbonden Google Calendar</Semibold> voor <Code>{{emailAddress}}</Code>.",
|
|
381
381
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>verbonden met Stripe integratie</Semibold> met account ID: <Code>{{stripeAccountId}}</Code> op {{productSuffix, anyCase}}.",
|
|
382
382
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>verbroken de Stripe integratie</Semibold> op {{productSuffix, anyCase}}.",
|
|
383
383
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>verbonden met Zoom integratie</Semibold> met account ID: <Code>{{zoomAccountId}}</Code> op {{productSuffix, anyCase}}.",
|
package/src/translations/pl.json
CHANGED
|
@@ -376,8 +376,8 @@
|
|
|
376
376
|
"performedAction": "{{performedBy, anyCase}} <Semibold>wykonał</Semibold> działanie na {{productSuffix, anyCase}}.",
|
|
377
377
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> z <Code>{{from, anyCase}}</Code> do <Code>{{to, anyCase}}</Code>",
|
|
378
378
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> do <Code>{{to, anyCase}}</Code>",
|
|
379
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>
|
|
380
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>
|
|
379
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>połączył Google Calendar</Semibold> używając <Code>{{emailAddress}}</Code>.",
|
|
380
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>rozłączył Google Calendar</Semibold> dla <Code>{{emailAddress}}</Code>.",
|
|
381
381
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>połączono z integracją Stripe</Semibold> z identyfikatorem konta: <Code>{{stripeAccountId}}</Code> na {{productSuffix, anyCase}}.",
|
|
382
382
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>odłączono integrację Stripe</Semibold> na {{productSuffix, anyCase}}.",
|
|
383
383
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>połączono z integracją Zoom</Semibold> z identyfikatorem konta: <Code>{{zoomAccountId}}</Code> na {{productSuffix, anyCase}}.",
|
|
@@ -533,8 +533,8 @@
|
|
|
533
533
|
"performedAction": "{{performedBy, anyCase}} <Semibold>realizou</Semibold> uma ação em {{productSuffix, anyCase}}.",
|
|
534
534
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> de <Code>{{from, anyCase}}</Code> para <Code>{{to, anyCase}}</Code>",
|
|
535
535
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> para <Code>{{to, anyCase}}</Code>",
|
|
536
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>conectou
|
|
537
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>desconectou
|
|
536
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>conectou o Google Calendar</Semibold> usando <Code>{{emailAddress}}</Code>.",
|
|
537
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>desconectou o Google Calendar</Semibold> para <Code>{{emailAddress}}</Code>.",
|
|
538
538
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>conectou-se à integração do Stripe</Semibold> com o ID da conta: <Code>{{stripeAccountId}}</Code> em {{productSuffix, anyCase}}.",
|
|
539
539
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>desconectou a integração do Stripe</Semibold> em {{productSuffix, anyCase}}.",
|
|
540
540
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>conectou-se à integração do Zoom</Semibold> com o ID da conta: <Code>{{zoomAccountId}}</Code> em {{productSuffix, anyCase}}.",
|
package/src/translations/pt.json
CHANGED
|
@@ -376,8 +376,8 @@
|
|
|
376
376
|
"performedAction": "{{performedBy, anyCase}} <Semibold>realizou</Semibold> uma ação em {{productSuffix, anyCase}}.",
|
|
377
377
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> de <Code>{{from, anyCase}}</Code> para <Code>{{to, anyCase}}</Code>",
|
|
378
378
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> para <Code>{{to, anyCase}}</Code>",
|
|
379
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>conectou
|
|
380
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>desconectou
|
|
379
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>conectou o Google Calendar</Semibold> usando <Code>{{emailAddress}}</Code>.",
|
|
380
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>desconectou o Google Calendar</Semibold> para <Code>{{emailAddress}}</Code>.",
|
|
381
381
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>conectou à integração Stripe</Semibold> com ID da conta: <Code>{{stripeAccountId}}</Code> em {{productSuffix, anyCase}}.",
|
|
382
382
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>desconectou a integração Stripe</Semibold> em {{productSuffix, anyCase}}.",
|
|
383
383
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>conectou à integração Zoom</Semibold> com ID da conta: <Code>{{zoomAccountId}}</Code> em {{productSuffix, anyCase}}.",
|
package/src/translations/ro.json
CHANGED
|
@@ -533,8 +533,8 @@
|
|
|
533
533
|
"performedAction": "{{performedBy, anyCase}} <Semibold>efectuat</Semibold> o acțiune pe {{productSuffix, anyCase}}.",
|
|
534
534
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> de la <Code>{{from, anyCase}}</Code> la <Code>{{to, anyCase}}</Code>",
|
|
535
535
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> la <Code>{{to, anyCase}}</Code>",
|
|
536
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>conectat
|
|
537
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>deconectat
|
|
536
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>conectat Google Calendar</Semibold> folosind <Code>{{emailAddress}}</Code>.",
|
|
537
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>deconectat Google Calendar</Semibold> pentru <Code>{{emailAddress}}</Code>.",
|
|
538
538
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>conectat la integrarea Stripe</Semibold> cu ID-ul contului: <Code>{{stripeAccountId}}</Code> pe {{productSuffix, anyCase}}.",
|
|
539
539
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>deconectat integrarea Stripe</Semibold> pe {{productSuffix, anyCase}}.",
|
|
540
540
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>conectat la integrarea Zoom</Semibold> cu ID-ul contului: <Code>{{zoomAccountId}}</Code> pe {{productSuffix, anyCase}}.",
|
package/src/translations/ru.json
CHANGED
|
@@ -527,8 +527,8 @@
|
|
|
527
527
|
"performedAction": "{{performedBy, anyCase}} <Semibold>выполнил</Semibold> действие на {{productSuffix, anyCase}}.",
|
|
528
528
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> с <Code>{{from, anyCase}}</Code> на <Code>{{to, anyCase}}</Code>",
|
|
529
529
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> на <Code>{{to, anyCase}}</Code>",
|
|
530
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold
|
|
531
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold
|
|
530
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>подключённый Google Calendar</Semibold> с использованием <Code>{{emailAddress}}</Code>.",
|
|
531
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>отключённый Google Calendar</Semibold> для <Code>{{emailAddress}}</Code>.",
|
|
532
532
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>подключил интеграцию с Stripe</Semibold> с идентификатором аккаунта: <Code>{{stripeAccountId}}</Code> на {{productSuffix, anyCase}}.",
|
|
533
533
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>отключил интеграцию с Stripe</Semibold> на {{productSuffix, anyCase}}.",
|
|
534
534
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>подключил интеграцию с Zoom</Semibold> с идентификатором аккаунта: <Code>{{zoomAccountId}}</Code> на {{productSuffix, anyCase}}.",
|
package/src/translations/sk.json
CHANGED
|
@@ -533,8 +533,8 @@
|
|
|
533
533
|
"performedAction": "{{performedBy, anyCase}} <Semibold>vykonal</Semibold> akciu na {{productSuffix, anyCase}}.",
|
|
534
534
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> z <Code>{{from, anyCase}}</Code> na <Code>{{to, anyCase}}</Code>",
|
|
535
535
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> na <Code>{{to, anyCase}}</Code>",
|
|
536
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>
|
|
537
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>
|
|
536
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>pripojený Google Calendar</Semibold> pomocou <Code>{{emailAddress}}</Code>.",
|
|
537
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>odpojený Google Calendar</Semibold> pre <Code>{{emailAddress}}</Code>.",
|
|
538
538
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>spojil s Stripe integráciou</Semibold> s ID účtu: <Code>{{stripeAccountId}}</Code> na {{productSuffix, anyCase}}.",
|
|
539
539
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>odpojil integráciu Stripe</Semibold> na {{productSuffix, anyCase}}.",
|
|
540
540
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>spojil s Zoom integráciou</Semibold> s ID účtu: <Code>{{zoomAccountId}}</Code> na {{productSuffix, anyCase}}.",
|
package/src/translations/sl.json
CHANGED
|
@@ -533,8 +533,8 @@
|
|
|
533
533
|
"performedAction": "{{performedBy, anyCase}} <Semibold>izvedel</Semibold> dejanje na {{productSuffix, anyCase}}.",
|
|
534
534
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> od <Code>{{from, anyCase}}</Code> do <Code>{{to, anyCase}}</Code>",
|
|
535
535
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> na <Code>{{to, anyCase}}</Code>",
|
|
536
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>
|
|
537
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>
|
|
536
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>povezan Google Koledar</Semibold> z <Code>{{emailAddress}}</Code>.",
|
|
537
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>odklenjen Google Koledar</Semibold> za <Code>{{emailAddress}}</Code>.",
|
|
538
538
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>se povezal z Stripe integracijo</Semibold> z ID računa: <Code>{{stripeAccountId}}</Code> na {{productSuffix, anyCase}}.",
|
|
539
539
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>odklopil Stripe integracijo</Semibold> na {{productSuffix, anyCase}}.",
|
|
540
540
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>se povezal z Zoom integracijo</Semibold> z ID računa: <Code>{{zoomAccountId}}</Code> na {{productSuffix, anyCase}}.",
|
package/src/translations/sv.json
CHANGED
|
@@ -533,8 +533,8 @@
|
|
|
533
533
|
"performedAction": "{{performedBy, anyCase}} <Semibold>genomförde</Semibold> en åtgärd på {{productSuffix, anyCase}}.",
|
|
534
534
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> från <Code>{{from, anyCase}}</Code> till <Code>{{to, anyCase}}</Code>",
|
|
535
535
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> till <Code>{{to, anyCase}}</Code>",
|
|
536
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>anslöt
|
|
537
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>kopplade bort Google Kalender
|
|
536
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>anslöt Google Kalender</Semibold> med <Code>{{emailAddress}}</Code>.",
|
|
537
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>kopplade bort Google Kalender</Semibold> för <Code>{{emailAddress}}</Code>.",
|
|
538
538
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>anslöt till Stripe-integrationen</Semibold> med kontonummer: <Code>{{stripeAccountId}}</Code> på {{productSuffix, anyCase}}.",
|
|
539
539
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>kopplade bort Stripe-integrationen</Semibold> på {{productSuffix, anyCase}}.",
|
|
540
540
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>anslöt till Zoom-integrationen</Semibold> med kontonummer: <Code>{{zoomAccountId}}</Code> på {{productSuffix, anyCase}}.",
|
package/src/translations/th.json
CHANGED
|
@@ -831,8 +831,8 @@
|
|
|
831
831
|
"performedAction": "{{performedBy, anyCase}} <Semibold>ดำเนินการ</Semibold> บน {{productSuffix, anyCase}}。",
|
|
832
832
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> จาก <Code>{{from, anyCase}}</Code> เป็น <Code>{{to, anyCase}}</Code>",
|
|
833
833
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> ไปยัง <Code>{{to, anyCase}}</Code>",
|
|
834
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold
|
|
835
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold
|
|
834
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>เชื่อมต่อ Google Calendar</Semibold> ใช้ <Code>{{emailAddress}}</Code>.",
|
|
835
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>ตัดการเชื่อมต่อ Google Calendar</Semibold> สำหรับ <Code>{{emailAddress}}</Code>.",
|
|
836
836
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>เชื่อมต่อกับการรวม Stripe</Semibold> โดยมี ID บัญชี: <Code>{{stripeAccountId}}</Code> ใน {{productSuffix, anyCase}}。",
|
|
837
837
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>ยกเลิกการเชื่อมต่อการรวม Stripe</Semibold> ใน {{productSuffix, anyCase}}。",
|
|
838
838
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>เชื่อมต่อกับการรวม Zoom</Semibold> โดยมี ID บัญชี: <Code>{{zoomAccountId}}</Code> ใน {{productSuffix, anyCase}}。",
|
package/src/translations/tr.json
CHANGED
|
@@ -533,8 +533,8 @@
|
|
|
533
533
|
"performedAction": "{{performedBy, anyCase}} <Semibold>bir eylem gerçekleştirdi</Semibold> {{productSuffix, anyCase}}.",
|
|
534
534
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> <Code>{{from, anyCase}}</Code>'den <Code>{{to, anyCase}}</Code>'ye değiştirildi.",
|
|
535
535
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> <Code>{{to, anyCase}}</Code> olarak değiştirildi.",
|
|
536
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>Google Takvim'
|
|
537
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>Google Takvim
|
|
536
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>Google Takvim'e bağlandı</Semibold> using <Code>{{emailAddress}}</Code>.",
|
|
537
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>Google Takvim'den bağlantı kesildi</Semibold> for <Code>{{emailAddress}}</Code>.",
|
|
538
538
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>Stripe entegrasyonuna bağlandı</Semibold> hesap ID'si: <Code>{{stripeAccountId}}</Code> {{productSuffix, anyCase}}.",
|
|
539
539
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>Stripe entegrasyonunu kopardı</Semibold> {{productSuffix, anyCase}}.",
|
|
540
540
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>Zoom entegrasyonuna bağlandı</Semibold> hesap ID'si: <Code>{{zoomAccountId}}</Code> {{productSuffix, anyCase}}.",
|
package/src/translations/uk.json
CHANGED
|
@@ -533,8 +533,8 @@
|
|
|
533
533
|
"performedAction": "{{performedBy, anyCase}} <Semibold>виконав</Semibold> дію на {{productSuffix, anyCase}}.",
|
|
534
534
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> з <Code>{{from, anyCase}}</Code> на <Code>{{to, anyCase}}</Code>",
|
|
535
535
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> на <Code>{{to, anyCase}}</Code>",
|
|
536
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold
|
|
537
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold
|
|
536
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>підключено Google Календар</Semibold> за допомогою <Code>{{emailAddress}}</Code>.",
|
|
537
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>відключено Google Календар</Semibold> для <Code>{{emailAddress}}</Code>.",
|
|
538
538
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>підключив інтеграцію Stripe</Semibold> з ID облікового запису: <Code>{{stripeAccountId}}</Code> на {{productSuffix, anyCase}}.",
|
|
539
539
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>відключив інтеграцію Stripe</Semibold> на {{productSuffix, anyCase}}.",
|
|
540
540
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>підключив інтеграцію Zoom</Semibold> з ID облікового запису: <Code>{{zoomAccountId}}</Code> на {{productSuffix, anyCase}}.",
|
package/src/translations/vi.json
CHANGED
|
@@ -533,8 +533,8 @@
|
|
|
533
533
|
"performedAction": "{{performedBy, anyCase}} <Semibold>đã thực hiện</Semibold> một hành động trên {{productSuffix, anyCase}}.",
|
|
534
534
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> từ <Code>{{from, anyCase}}</Code> đến <Code>{{to, anyCase}}</Code>",
|
|
535
535
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> đến <Code>{{to, anyCase}}</Code>",
|
|
536
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold
|
|
537
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold
|
|
536
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>Kết nối Google Calendar</Semibold> bằng <Code>{{emailAddress}}</Code>.",
|
|
537
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>Ngắt kết nối Google Calendar</Semibold> cho <Code>{{emailAddress}}</Code>.",
|
|
538
538
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>đã kết nối với tích hợp Stripe</Semibold> với ID tài khoản: <Code>{{stripeAccountId}}</Code> trên {{productSuffix, anyCase}}.",
|
|
539
539
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>đã ngắt kết nối tích hợp Stripe</Semibold> trên {{productSuffix, anyCase}}.",
|
|
540
540
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>đã kết nối với tích hợp Zoom</Semibold> với ID tài khoản: <Code>{{zoomAccountId}}</Code> trên {{productSuffix, anyCase}}.",
|
|
@@ -533,8 +533,8 @@
|
|
|
533
533
|
"performedAction": "{{performedBy, anyCase}} <Semibold>执行了</Semibold> 一个操作在 {{productSuffix, anyCase}}。",
|
|
534
534
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> 从 <Code>{{from, anyCase}}</Code> 到 <Code>{{to, anyCase}}</Code>",
|
|
535
535
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> 到 <Code>{{to, anyCase}}</Code>",
|
|
536
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold
|
|
537
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>断开了 Google
|
|
536
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>连接了 Google 日历</Semibold> 使用 <Code>{{emailAddress}}</Code>.",
|
|
537
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>断开了 Google 日历</Semibold> 为 <Code>{{emailAddress}}</Code>.",
|
|
538
538
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>已连接到 Stripe 集成</Semibold> 帐户 ID: <Code>{{stripeAccountId}}</Code> 在 {{productSuffix, anyCase}}。",
|
|
539
539
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>断开了 Stripe 集成</Semibold> 在 {{productSuffix, anyCase}}。",
|
|
540
540
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>已连接到 Zoom 集成</Semibold> 帐户 ID: <Code>{{zoomAccountId}}</Code> 在 {{productSuffix, anyCase}}。",
|
|
@@ -533,8 +533,8 @@
|
|
|
533
533
|
"performedAction": "{{performedBy, anyCase}} <Semibold>已執行</Semibold> 一個動作在 {{productSuffix, anyCase}}。",
|
|
534
534
|
"updatedFieldsWithPreviousValue": "<Semibold>{{field}}</Semibold> 從 <Code>{{from, anyCase}}</Code> 到 <Code>{{to, anyCase}}</Code>",
|
|
535
535
|
"updatedFieldsWithNewValue": "<Semibold>{{field}}</Semibold> 到 <Code>{{to, anyCase}}</Code>",
|
|
536
|
-
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold
|
|
537
|
-
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>已斷開 Google
|
|
536
|
+
"connectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>已連接 Google 日曆</Semibold>,使用 <Code>{{emailAddress}}</Code>。",
|
|
537
|
+
"disconnectedGoogleCalender": "{{performedBy, anyCase}} <Semibold>已斷開 Google 日曆</Semibold>,對於 <Code>{{emailAddress}}</Code>。",
|
|
538
538
|
"connectedStripeAccount": "{{performedBy, anyCase}} <Semibold>已連接到 Stripe 集成</Semibold> 帳號 ID: <Code>{{stripeAccountId}}</Code> 在 {{productSuffix, anyCase}}。",
|
|
539
539
|
"disconnectedStripeAccount": "{{performedBy, anyCase}} <Semibold>已斷開 Stripe 集成</Semibold> 在 {{productSuffix, anyCase}}。",
|
|
540
540
|
"connectedZoomAccount": "{{performedBy, anyCase}} <Semibold>已連接到 Zoom 集成</Semibold> 帳號 ID: <Code>{{zoomAccountId}}</Code> 在 {{productSuffix, anyCase}}。",
|