@acorex-platform/module-tenant-management-client 0.0.59 → 0.0.60
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/fesm2022/acorex-platform-module-tenant-management-client-approve-tenant-request.command-D18-n5Lc.mjs +91 -0
- package/fesm2022/acorex-platform-module-tenant-management-client-approve-tenant-request.command-D18-n5Lc.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-tenant-management-client-contracts-entities-resource-share.mjs +6 -0
- package/fesm2022/acorex-platform-module-tenant-management-client-contracts-entities-resource-share.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-tenant-management-client-contracts-entities-tenant-user-app-access.mjs +110 -5
- package/fesm2022/acorex-platform-module-tenant-management-client-contracts-entities-tenant-user-app-access.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-tenant-management-client-contracts-entities-tenant-user.mjs +186 -9
- package/fesm2022/acorex-platform-module-tenant-management-client-contracts-entities-tenant-user.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-tenant-management-client-contracts-entities-tenant.mjs +158 -24
- package/fesm2022/acorex-platform-module-tenant-management-client-contracts-entities-tenant.mjs.map +1 -1
- package/fesm2022/{acorex-platform-module-tenant-management-client-contracts-entity-catalog-acorex-platform-module-tenant-management-client-contracts-entity-catalog-CDfoKWOn.mjs → acorex-platform-module-tenant-management-client-contracts-entity-catalog-acorex-platform-module-tenant-management-client-contracts-entity-catalog-DqBYnske.mjs} +11 -5
- package/fesm2022/acorex-platform-module-tenant-management-client-contracts-entity-catalog-acorex-platform-module-tenant-management-client-contracts-entity-catalog-DqBYnske.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-tenant-management-client-contracts-entity-catalog-resource-share.entity-BPbgUTEH.mjs → acorex-platform-module-tenant-management-client-contracts-entity-catalog-resource-share.entity-Bf7keWah.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-tenant-management-client-contracts-entity-catalog-resource-share.entity-BPbgUTEH.mjs.map → acorex-platform-module-tenant-management-client-contracts-entity-catalog-resource-share.entity-Bf7keWah.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-tenant-management-client-contracts-entity-catalog-tenant-user-admin-scope-C6Ekm0Qg.mjs +43 -0
- package/fesm2022/acorex-platform-module-tenant-management-client-contracts-entity-catalog-tenant-user-admin-scope-C6Ekm0Qg.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-tenant-management-client-contracts-entity-catalog-tenant-user-app-access.entity-nA_yhhRD.mjs → acorex-platform-module-tenant-management-client-contracts-entity-catalog-tenant-user-app-access.entity-BhkM_HyR.mjs} +66 -7
- package/fesm2022/acorex-platform-module-tenant-management-client-contracts-entity-catalog-tenant-user-app-access.entity-BhkM_HyR.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-tenant-management-client-contracts-entity-catalog-tenant-user.entity-CmUdRisR.mjs → acorex-platform-module-tenant-management-client-contracts-entity-catalog-tenant-user.entity-Dk8LTu5B.mjs} +142 -11
- package/fesm2022/acorex-platform-module-tenant-management-client-contracts-entity-catalog-tenant-user.entity-Dk8LTu5B.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-tenant-management-client-contracts-entity-catalog-tenant.entity-ZpnmQnXF.mjs → acorex-platform-module-tenant-management-client-contracts-entity-catalog-tenant.entity-cOVeFcEP.mjs} +154 -26
- package/fesm2022/acorex-platform-module-tenant-management-client-contracts-entity-catalog-tenant.entity-cOVeFcEP.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-tenant-management-client-contracts-entity-catalog.mjs +1 -1
- package/fesm2022/acorex-platform-module-tenant-management-client-contracts.mjs +96 -3
- package/fesm2022/acorex-platform-module-tenant-management-client-contracts.mjs.map +1 -1
- package/fesm2022/acorex-platform-module-tenant-management-client-reject-tenant-request.command-CKSHPw1a.mjs +80 -0
- package/fesm2022/acorex-platform-module-tenant-management-client-reject-tenant-request.command-CKSHPw1a.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-tenant-management-client.mjs +350 -14
- package/fesm2022/acorex-platform-module-tenant-management-client.mjs.map +1 -1
- package/i18n/en-AU/tenant-management.json +91 -10
- package/i18n/en-US/tenant-management.json +91 -10
- package/i18n/fa-IR/tenant-management.json +92 -11
- package/package.json +1 -1
- package/types/acorex-platform-module-tenant-management-client-contracts.d.ts +178 -4
- package/types/acorex-platform-module-tenant-management-client.d.ts +25 -1
- package/fesm2022/acorex-platform-module-tenant-management-client-contracts-entity-catalog-acorex-platform-module-tenant-management-client-contracts-entity-catalog-CDfoKWOn.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-tenant-management-client-contracts-entity-catalog-tenant-user-app-access.entity-nA_yhhRD.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-tenant-management-client-contracts-entity-catalog-tenant-user.entity-CmUdRisR.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-tenant-management-client-contracts-entity-catalog-tenant.entity-ZpnmQnXF.mjs.map +0 -1
package/fesm2022/acorex-platform-module-tenant-management-client-contracts-entities-tenant-user.mjs
CHANGED
|
@@ -1,5 +1,46 @@
|
|
|
1
1
|
import { AXPSystemActionType, AXPWidgetsList } from '@acorex-platform/framework-shared/core';
|
|
2
|
-
import { entityMasterRecordActions, createAllQueryView, createQueryView,
|
|
2
|
+
import { entityDetailsCrudActions, AXPEntityCommandScope, entityMasterRecordActions, createAllQueryView, createQueryView, entityMasterCrudActions } from '@acorex-platform/framework-shared/entity';
|
|
3
|
+
|
|
4
|
+
//#region ----- Tenant Users admin scope (operation-owned) -----
|
|
5
|
+
/** Query `params` key carrying the operation scope. */
|
|
6
|
+
const AXP_TENANT_USER_ADMIN_SCOPE_PARAM = 'tenantUserAdminScope';
|
|
7
|
+
/** HTTP header (lowercase) for getOne/update/delete (and related) ops. */
|
|
8
|
+
const AXP_TENANT_USER_ADMIN_SCOPE_HEADER = 'x-axp-tenant-user-admin-scope';
|
|
9
|
+
/** Entity list view name for TM → Tenant Users / Tenant Application Access. */
|
|
10
|
+
const AXP_TENANT_USERS_VIEW = 'tenant-users';
|
|
11
|
+
function normalizeTenantUserAdminScope(value) {
|
|
12
|
+
return value === 'current-tenant' ? 'current-tenant' : 'default';
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Whether the URL carries the explicit Tenant Users operation context.
|
|
16
|
+
*
|
|
17
|
+
* Prefer durable `tenantUserAdminScope=current-tenant` (entity list rewrites
|
|
18
|
+
* unknown `view=` values to `all`). Also accept `view=tenant-users` when present.
|
|
19
|
+
* Never infer from entity path `/e/TenantUser*` alone.
|
|
20
|
+
*/
|
|
21
|
+
function isTenantUsersOperationUrl(url) {
|
|
22
|
+
if (!url) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
const parsed = new URL(url, 'http://local.invalid');
|
|
27
|
+
if (parsed.searchParams.get(AXP_TENANT_USER_ADMIN_SCOPE_PARAM)?.trim() === 'current-tenant') {
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
if (parsed.searchParams.get('view')?.trim() === AXP_TENANT_USERS_VIEW) {
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
// Fall through to substring checks.
|
|
36
|
+
}
|
|
37
|
+
return (url.includes(`${AXP_TENANT_USER_ADMIN_SCOPE_PARAM}=current-tenant`) ||
|
|
38
|
+
url.includes(`view=${AXP_TENANT_USERS_VIEW}`));
|
|
39
|
+
}
|
|
40
|
+
function resolveTenantUserAdminScopeFromUrl(url) {
|
|
41
|
+
return isTenantUsersOperationUrl(url) ? 'current-tenant' : 'default';
|
|
42
|
+
}
|
|
43
|
+
//#endregion
|
|
3
44
|
|
|
4
45
|
const config = {
|
|
5
46
|
i18n: 'tenant-management',
|
|
@@ -45,7 +86,13 @@ const RootConfig = {
|
|
|
45
86
|
},
|
|
46
87
|
queries: {
|
|
47
88
|
dashboard: {
|
|
89
|
+
/** Tenant-wide TenantUser count (Tenant Console Overview). */
|
|
48
90
|
activeUsersKpi: `${config.module}:Dashboard:ActiveUsersKpi`,
|
|
91
|
+
/**
|
|
92
|
+
* Current-application TenantUserAppAccess count (TM Application scope).
|
|
93
|
+
* On Tenant Console Overview / TM Application Overview widgets (D-17 / D-18).
|
|
94
|
+
*/
|
|
95
|
+
tmApplicationUsersKpi: `${config.module}:Dashboard:TmApplicationUsersKpi`,
|
|
49
96
|
usersByRoleDonut: `${config.module}:Dashboard:UsersByRoleDonut`,
|
|
50
97
|
},
|
|
51
98
|
reports: {
|
|
@@ -65,6 +112,15 @@ const AXMTenantManagementModuleConst = {
|
|
|
65
112
|
i18n: 'tenant-management',
|
|
66
113
|
};
|
|
67
114
|
|
|
115
|
+
/** Same commands as SecurityManagement Users (ADR-TEN-001 D-05 / waiting-room parity). */
|
|
116
|
+
const INVITE_USER_COMMAND = 'SecurityManagement:User:Invite';
|
|
117
|
+
const CREATE_USER_IN_TENANT_COMMAND = 'SecurityManagement:User:CreateInTenant';
|
|
118
|
+
const SEND_PASSWORD_RESET_COMMAND = 'SecurityManagement:User:SendPasswordResetEmail';
|
|
119
|
+
const RESET_TWO_FACTOR_COMMAND = 'SecurityManagement:User:ResetTwoFactor';
|
|
120
|
+
const RESEND_INVITATION_COMMAND = 'SecurityManagement:User:ResendInvitation';
|
|
121
|
+
const CANCEL_INVITATION_COMMAND = 'SecurityManagement:User:CancelInvitation';
|
|
122
|
+
const APPROVE_JOIN_REQUEST_COMMAND = 'SecurityManagement:User:ApproveJoinRequest';
|
|
123
|
+
const REJECT_JOIN_REQUEST_COMMAND = 'SecurityManagement:User:RejectJoinRequest';
|
|
68
124
|
//#endregion
|
|
69
125
|
//#region ---- Tenant User Entity Factory ----
|
|
70
126
|
async function tenantUserEntityFactory() {
|
|
@@ -534,17 +590,53 @@ async function tenantUserEntityFactory() {
|
|
|
534
590
|
actions: [
|
|
535
591
|
...entityMasterCrudActions({ create: false }),
|
|
536
592
|
{
|
|
537
|
-
name: '
|
|
538
|
-
title:
|
|
539
|
-
icon: 'fa-light fa-
|
|
593
|
+
name: 'invite',
|
|
594
|
+
title: '@security-management:users.entities.user.actions.invite.title',
|
|
595
|
+
icon: 'fa-light fa-envelope',
|
|
596
|
+
command: {
|
|
597
|
+
name: INVITE_USER_COMMAND,
|
|
598
|
+
},
|
|
599
|
+
priority: 'primary',
|
|
600
|
+
type: AXPSystemActionType.Create,
|
|
601
|
+
scope: AXPEntityCommandScope.TypeLevel,
|
|
602
|
+
},
|
|
603
|
+
{
|
|
604
|
+
name: 'new-user',
|
|
605
|
+
title: '@security-management:users.entities.user.actions.create-in-tenant.title',
|
|
606
|
+
icon: 'fa-light fa-user',
|
|
540
607
|
command: {
|
|
541
|
-
name:
|
|
542
|
-
options: {},
|
|
608
|
+
name: CREATE_USER_IN_TENANT_COMMAND,
|
|
543
609
|
},
|
|
544
610
|
priority: 'primary',
|
|
545
611
|
type: AXPSystemActionType.Create,
|
|
546
612
|
scope: AXPEntityCommandScope.TypeLevel,
|
|
547
613
|
},
|
|
614
|
+
{
|
|
615
|
+
name: 'approve-join-request',
|
|
616
|
+
title: '@security-management:users.entities.user.actions.approve-join-request.title',
|
|
617
|
+
icon: 'fa-light fa-user-check',
|
|
618
|
+
command: {
|
|
619
|
+
name: APPROVE_JOIN_REQUEST_COMMAND,
|
|
620
|
+
},
|
|
621
|
+
color: 'success',
|
|
622
|
+
priority: 'primary',
|
|
623
|
+
type: 'view',
|
|
624
|
+
scope: AXPEntityCommandScope.Individual,
|
|
625
|
+
hidden: '{{ context.eval("statusId") !== "pending" || context.eval("invitation.source") !== "join-request" }}',
|
|
626
|
+
},
|
|
627
|
+
{
|
|
628
|
+
name: 'reject-join-request',
|
|
629
|
+
title: '@security-management:users.entities.user.actions.reject-join-request.title',
|
|
630
|
+
icon: 'fa-light fa-user-xmark',
|
|
631
|
+
command: {
|
|
632
|
+
name: REJECT_JOIN_REQUEST_COMMAND,
|
|
633
|
+
},
|
|
634
|
+
color: 'warning',
|
|
635
|
+
priority: 'primary',
|
|
636
|
+
type: 'view',
|
|
637
|
+
scope: AXPEntityCommandScope.Individual,
|
|
638
|
+
hidden: '{{ context.eval("statusId") !== "pending" || context.eval("invitation.source") !== "join-request" }}',
|
|
639
|
+
},
|
|
548
640
|
],
|
|
549
641
|
views: [
|
|
550
642
|
createAllQueryView({
|
|
@@ -554,8 +646,8 @@ async function tenantUserEntityFactory() {
|
|
|
554
646
|
conditions: [
|
|
555
647
|
{
|
|
556
648
|
name: 'invitation.source',
|
|
557
|
-
operator: { type: '
|
|
558
|
-
value: 'invite',
|
|
649
|
+
operator: { type: 'in' },
|
|
650
|
+
value: ['invite', 'join-request'],
|
|
559
651
|
hidden: true,
|
|
560
652
|
},
|
|
561
653
|
],
|
|
@@ -569,6 +661,12 @@ async function tenantUserEntityFactory() {
|
|
|
569
661
|
],
|
|
570
662
|
sorts: [{ name: 'invitation.sentAt', dir: 'desc' }],
|
|
571
663
|
}),
|
|
664
|
+
{
|
|
665
|
+
// TM menu `?view=tenant-users` — keeps named view (Device Sessions pattern).
|
|
666
|
+
// Current-tenant bound is enforced by tenantUserAdminScope (server), not by isPlatform.
|
|
667
|
+
...createQueryView(AXP_TENANT_USERS_VIEW, RootConfig.entities.tenantUser.titlePlural, true, { sorts: [{ name: 'startDate', dir: 'desc' }] }),
|
|
668
|
+
visible: false,
|
|
669
|
+
},
|
|
572
670
|
],
|
|
573
671
|
},
|
|
574
672
|
single: {
|
|
@@ -586,10 +684,89 @@ async function tenantUserEntityFactory() {
|
|
|
586
684
|
{ name: 'endDate', layout: { positions: { lg: { colSpan: 6, order: 5 } } } },
|
|
587
685
|
{ name: 'isAccountHolder', layout: { positions: { lg: { colSpan: 12, order: 6 } } } },
|
|
588
686
|
],
|
|
589
|
-
actions: [
|
|
687
|
+
actions: [
|
|
688
|
+
{
|
|
689
|
+
name: 'send-password-reset',
|
|
690
|
+
title: '@security-management:users.entities.user.actions.send-password-reset.title',
|
|
691
|
+
icon: 'fa-light fa-envelope',
|
|
692
|
+
command: { name: SEND_PASSWORD_RESET_COMMAND },
|
|
693
|
+
priority: 'secondary',
|
|
694
|
+
type: 'view',
|
|
695
|
+
scope: AXPEntityCommandScope.Individual,
|
|
696
|
+
},
|
|
697
|
+
{
|
|
698
|
+
name: 'reset-two-factor',
|
|
699
|
+
title: '@security-management:users.entities.user.actions.reset-two-factor.title',
|
|
700
|
+
icon: 'fa-light fa-shield-keyhole',
|
|
701
|
+
command: { name: RESET_TWO_FACTOR_COMMAND },
|
|
702
|
+
priority: 'secondary',
|
|
703
|
+
type: 'view',
|
|
704
|
+
scope: AXPEntityCommandScope.Individual,
|
|
705
|
+
},
|
|
706
|
+
{
|
|
707
|
+
name: 'resend-invitation',
|
|
708
|
+
title: '@security-management:users.entities.user.actions.resend-invitation.title',
|
|
709
|
+
icon: 'fa-light fa-paper-plane',
|
|
710
|
+
command: { name: RESEND_INVITATION_COMMAND },
|
|
711
|
+
priority: 'secondary',
|
|
712
|
+
type: 'view',
|
|
713
|
+
scope: AXPEntityCommandScope.Individual,
|
|
714
|
+
hidden: '{{ context.eval("statusId") !== "pending" || context.eval("invitation.source") !== "invite" }}',
|
|
715
|
+
},
|
|
716
|
+
{
|
|
717
|
+
name: 'cancel-invitation',
|
|
718
|
+
title: '@security-management:users.entities.user.actions.cancel-invitation.title',
|
|
719
|
+
icon: 'fa-light fa-user-xmark',
|
|
720
|
+
command: { name: CANCEL_INVITATION_COMMAND },
|
|
721
|
+
priority: 'secondary',
|
|
722
|
+
type: 'view',
|
|
723
|
+
scope: AXPEntityCommandScope.Individual,
|
|
724
|
+
hidden: '{{ context.eval("statusId") !== "pending" || context.eval("invitation.source") !== "invite" }}',
|
|
725
|
+
},
|
|
726
|
+
{
|
|
727
|
+
name: 'approve-join-request',
|
|
728
|
+
title: '@security-management:users.entities.user.actions.approve-join-request.title',
|
|
729
|
+
icon: 'fa-light fa-user-check',
|
|
730
|
+
command: { name: APPROVE_JOIN_REQUEST_COMMAND },
|
|
731
|
+
color: 'success',
|
|
732
|
+
priority: 'primary',
|
|
733
|
+
type: 'view',
|
|
734
|
+
scope: AXPEntityCommandScope.Individual,
|
|
735
|
+
hidden: '{{ context.eval("statusId") !== "pending" || context.eval("invitation.source") !== "join-request" }}',
|
|
736
|
+
},
|
|
737
|
+
{
|
|
738
|
+
name: 'reject-join-request',
|
|
739
|
+
title: '@security-management:users.entities.user.actions.reject-join-request.title',
|
|
740
|
+
icon: 'fa-light fa-user-xmark',
|
|
741
|
+
command: { name: REJECT_JOIN_REQUEST_COMMAND },
|
|
742
|
+
color: 'warning',
|
|
743
|
+
priority: 'primary',
|
|
744
|
+
type: 'view',
|
|
745
|
+
scope: AXPEntityCommandScope.Individual,
|
|
746
|
+
hidden: '{{ context.eval("statusId") !== "pending" || context.eval("invitation.source") !== "join-request" }}',
|
|
747
|
+
},
|
|
748
|
+
...entityMasterRecordActions(),
|
|
749
|
+
],
|
|
590
750
|
},
|
|
591
751
|
},
|
|
592
752
|
},
|
|
753
|
+
relatedEntities: [
|
|
754
|
+
{
|
|
755
|
+
entity: `${RootConfig.module.name}.${RootConfig.entities.tenantUserAppAccess.name}`,
|
|
756
|
+
title: `@${RootConfig.config.i18n}:tenants.entities.related-entities.tenant-user-app-access.title`,
|
|
757
|
+
icon: RootConfig.entities.tenantUserAppAccess.icon,
|
|
758
|
+
columns: ['applicationId', 'statusId', 'startDate', 'endDate'],
|
|
759
|
+
conditions: [
|
|
760
|
+
{
|
|
761
|
+
name: 'tenantUserId',
|
|
762
|
+
operator: { type: 'equal' },
|
|
763
|
+
value: '{{ context.eval("id") }}',
|
|
764
|
+
},
|
|
765
|
+
],
|
|
766
|
+
actions: [...entityDetailsCrudActions('tenantUserId')],
|
|
767
|
+
layout: { type: 'page-list', position: 'after', order: 1 },
|
|
768
|
+
},
|
|
769
|
+
],
|
|
593
770
|
};
|
|
594
771
|
return entityDef;
|
|
595
772
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-tenant-management-client-contracts-entities-tenant-user.mjs","sources":["../../../../libs/modules/tenant-management/contracts/src/root-config.ts","../../../../libs/modules/tenant-management/contracts/src/entities/tenant-user/tenant-user.entity.ts","../../../../libs/modules/tenant-management/contracts/src/acorex-platform-module-tenant-management-client-contracts-entities-tenant-user.ts"],"sourcesContent":["const config = {\n i18n: 'tenant-management',\n module: 'TenantManagement',\n};\n\nexport const RootConfig = {\n config,\n module: {\n route: 'tenant-management',\n name: config.module,\n title: `@${config.i18n}:module.title`,\n icon: 'fa-light fa-building',\n },\n entities: {\n tenant: {\n name: 'Tenant',\n source: `${config.module}.Tenant`,\n title: `@${config.i18n}:tenants.entities.tenant.title`,\n titlePlural: `@${config.i18n}:tenants.entities.tenant.plural`,\n icon: 'fa-light fa-building',\n },\n tenantUser: {\n name: 'TenantUser',\n source: `${config.module}.TenantUser`,\n title: `@${config.i18n}:tenants.entities.tenant-user.title`,\n titlePlural: `@${config.i18n}:tenants.entities.tenant-user.plural`,\n icon: 'fa-light fa-user-group',\n },\n tenantUserAppAccess: {\n name: 'TenantUserAppAccess',\n source: `${config.module}.TenantUserAppAccess`,\n title: `@${config.i18n}:tenants.entities.tenant-user-app-access.title`,\n titlePlural: `@${config.i18n}:tenants.entities.tenant-user-app-access.plural`,\n icon: 'fa-light fa-app-store',\n },\n resourceShare: {\n name: 'ResourceShare',\n source: `${config.module}.ResourceShare`,\n title: `@${config.i18n}:tenants.entities.resource-share.title`,\n titlePlural: `@${config.i18n}:tenants.entities.resource-share.plural`,\n icon: 'fa-light fa-share-nodes',\n },\n },\n queries: {\n dashboard: {\n activeUsersKpi: `${config.module}:Dashboard:ActiveUsersKpi`,\n usersByRoleDonut: `${config.module}:Dashboard:UsersByRoleDonut`,\n },\n reports: {\n getTenantApplicationAccess: `${config.module}:Reports:GetTenantApplicationAccess`,\n getTenantUserDistribution: `${config.module}:Reports:GetTenantUserDistribution`,\n getTenantRegistrationTimeline: `${config.module}:Reports:GetTenantRegistrationTimeline`,\n getTenantRegistrationChartData: `${config.module}:Reports:GetTenantRegistrationChartData`,\n getSubscriptionsTimeline: `${config.module}:Reports:GetSubscriptionsTimeline`,\n getSubscriptionsChartData: `${config.module}:Reports:GetSubscriptionsChartData`,\n },\n },\n};\n\n// Keep the old export for backward compatibility\nexport const AXMTenantManagementModuleConst = {\n moduleName: 'TenantManagement',\n moduleRoute: 'tenant-management',\n i18n: 'tenant-management',\n} as const;\n","import { AXPSystemActionType, AXPWidgetsList } from '@acorex-platform/framework-shared/core';\nimport {\n AXPEntity,\n AXPEntityCommandScope,\n createAllQueryView,\n createQueryView,\n entityMasterCrudActions,\n entityMasterRecordActions,\n} from '@acorex-platform/framework-shared/entity';\n//#region ---- Imports ----\nimport { RootConfig } from '../../root-config';\n\n//#endregion\n\n//#region ---- Tenant User Entity Factory ----\n\nexport async function tenantUserEntityFactory(): Promise<AXPEntity | null> {\n const i18n = RootConfig.config.i18n + ':tenants.entities.tenant-user';\n\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.tenantUser.name,\n title: RootConfig.entities.tenantUser.title,\n icon: RootConfig.entities.tenantUser.icon,\n searchTags: [\n 'tenant-user',\n 'membership',\n 'tenant',\n 'user',\n 'account-holder',\n 'tenant-management',\n 'کاربر مستأجر',\n 'عضویت',\n 'مستأجر',\n ],\n formats: {\n individual: RootConfig.entities.tenantUser.title,\n plural: RootConfig.entities.tenantUser.titlePlural,\n searchResult: {\n title:\n '{{ context.eval(\"user.displayName\") + \" - \" + context.eval(\"tenant.title\", { pipes: [\"translate\"] }) }}',\n description: '{{ user.displayName }}',\n },\n },\n plugins: [\n {\n name: 'status',\n options: {\n field: 'statusId',\n definition: 'tenant-management.status.tenant-user',\n generate: { views: { enabled: false } },\n },\n },\n { name: 'history' },\n { name: 'compare' },\n ],\n groups: [\n {\n id: 'basic-info',\n title: `@${i18n}.groups.basic-info`,\n },\n {\n id: 'membership-details',\n title: `@${i18n}.groups.membership-details`,\n },\n ],\n properties: [\n {\n name: 'id',\n title: 'ID',\n groupId: 'basic-info',\n schema: { dataType: 'uuid', visible: false, nullable: false, readonly: true, unique: { enabled: true } },\n },\n {\n name: 'tenantId',\n title: `@${i18n}.fields.tenant.title`,\n groupId: 'basic-info',\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.LookupBox,\n options: {\n entity: `${RootConfig.module.name}.${RootConfig.entities.tenant.name}`,\n textField: 'title',\n valueField: 'id',\n look: 'select',\n expose: [\n { source: 'id', target: 'tenant.id' },\n { source: 'title', target: 'tenant.title' },\n ],\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'userId',\n title: `@${i18n}.fields.user.title`,\n groupId: 'basic-info',\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.LookupBox,\n options: {\n entity: `${\"SecurityManagement\"}.${\"User\"}`,\n textField: 'displayName',\n valueField: 'id',\n look: 'select',\n expose: [\n { source: 'id', target: 'user.id' },\n { source: 'username', target: 'user.username' },\n { source: 'displayName', target: 'user.displayName' },\n ],\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'statusId',\n title: `@${i18n}.fields.status.title`,\n groupId: 'membership-details',\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Advanced.Status,\n options: {\n definitionKey: 'tenant-management.status.tenant-user',\n },\n },\n },\n },\n {\n name: 'startDate',\n title: `@${i18n}.fields.start-date.title`,\n groupId: 'membership-details',\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n schema: {\n dataType: 'date',\n interface: {\n type: AXPWidgetsList.Editors.DateTimeBox,\n options: {\n format: 'date',\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'endDate',\n title: `@${i18n}.fields.end-date.title`,\n groupId: 'membership-details',\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n schema: {\n dataType: 'date',\n interface: {\n type: AXPWidgetsList.Editors.DateTimeBox,\n options: {\n format: 'date',\n },\n },\n },\n },\n {\n name: 'isAccountHolder',\n title: `@${i18n}.fields.is-account-holder.title`,\n groupId: 'membership-details',\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n schema: {\n dataType: 'boolean',\n interface: {\n type: AXPWidgetsList.Editors.CheckBox,\n // options: {\n // readOnly: true,\n // },\n },\n },\n },\n {\n name: 'invitation',\n title: `@${i18n}.fields.invitation.title`,\n groupId: 'membership-details',\n schema: {\n dataType: 'object',\n readonly: true,\n visible: false,\n nullable: true,\n interface: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n },\n },\n {\n name: 'invitation.source',\n title: `@${i18n}.fields.invitation-source.title`,\n groupId: 'membership-details',\n options: {\n filter: {\n advance: { enabled: true },\n },\n },\n schema: {\n dataType: 'string',\n readonly: true,\n visible: false,\n nullable: true,\n interface: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n },\n },\n {\n name: 'invitation.sentAt',\n title: `@${i18n}.fields.invitation-sent-at.title`,\n groupId: 'membership-details',\n options: {\n sort: { enabled: true },\n },\n schema: {\n dataType: 'datetime',\n readonly: true,\n visible: false,\n nullable: true,\n interface: {\n type: AXPWidgetsList.Editors.DateTimeBox,\n options: { format: 'datetime' },\n },\n },\n },\n {\n name: 'invitation.acceptedAt',\n title: `@${i18n}.fields.invitation-accepted-at.title`,\n groupId: 'membership-details',\n options: {\n sort: { enabled: true },\n },\n schema: {\n dataType: 'datetime',\n readonly: true,\n visible: false,\n nullable: true,\n interface: {\n type: AXPWidgetsList.Editors.DateTimeBox,\n options: { format: 'datetime' },\n },\n },\n },\n {\n name: 'invitation.expiresAt',\n title: `@${i18n}.fields.invitation-expires-at.title`,\n groupId: 'membership-details',\n options: {\n sort: { enabled: true },\n },\n schema: {\n dataType: 'datetime',\n readonly: true,\n visible: false,\n nullable: true,\n interface: {\n type: AXPWidgetsList.Editors.DateTimeBox,\n options: { format: 'datetime' },\n },\n },\n },\n ],\n columns: [\n { name: 'userId', options: { dataPath: 'user' } },\n { name: 'tenantId', options: { dataPath: 'tenant' } },\n {\n name: 'statusId',\n options: {\n definitionKey: 'tenant-management.status.tenant-user',\n entity: `${RootConfig.module.name}.${RootConfig.entities.tenantUser.name}`,\n fieldName: 'statusId',\n },\n },\n { name: 'invitation.sentAt', options: { visible: false } },\n { name: 'invitation.acceptedAt', options: { visible: false } },\n { name: 'invitation.expiresAt', options: { visible: false } },\n { name: 'startDate' },\n { name: 'endDate' },\n { name: 'isAccountHolder' },\n ],\n interfaces: {\n master: {\n create: {\n sections: [\n {\n id: 'basic-info',\n },\n {\n id: 'membership-details',\n },\n ],\n properties: [\n {\n name: 'tenantId',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'userId',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'statusId',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'startDate',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'endDate',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'isAccountHolder',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n ],\n },\n update: {\n sections: [\n {\n id: 'basic-info',\n },\n {\n id: 'membership-details',\n },\n ],\n properties: [\n {\n name: 'tenantId',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'userId',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'statusId',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'startDate',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'endDate',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'isAccountHolder',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n ],\n },\n list: {\n actions: [\n ...entityMasterCrudActions({ create: false }),\n {\n name: 'create-tenant-user',\n title: `@${RootConfig.config.i18n}:tenants.actions.create-tenant-user.title`,\n icon: 'fa-light fa-user-plus',\n command: {\n name: 'TenantManagement.Tenant:CreateTenantUser',\n options: {},\n },\n priority: 'primary',\n type: AXPSystemActionType.Create,\n scope: AXPEntityCommandScope.TypeLevel,\n },\n ],\n views: [\n createAllQueryView({\n sorts: [{ name: 'startDate', dir: 'desc' }],\n }),\n createQueryView(\n 'invitations',\n `@${i18n}.views.invitations.title`,\n true,\n {\n conditions: [\n {\n name: 'invitation.source',\n operator: { type: 'equal' },\n value: 'invite',\n hidden: true,\n },\n ],\n columns: [\n 'userId',\n 'statusId',\n 'invitation.sentAt',\n 'invitation.acceptedAt',\n 'invitation.expiresAt',\n 'endDate',\n ],\n sorts: [{ name: 'invitation.sentAt', dir: 'desc' }],\n },\n ),\n ],\n },\n single: {\n title:\n '{{ context.eval(\"user.displayName\") + \" - \" + context.eval(\"tenant.title\", { pipes: [\"translate\"] }) }}',\n description: '{{ user.displayName }}',\n sections: [\n { id: 'basic-info', layout: { positions: { lg: { colSpan: 12 } } } },\n { id: 'membership-details', layout: { positions: { lg: { colSpan: 12 } } } },\n ],\n properties: [\n { name: 'tenantId', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },\n { name: 'userId', layout: { positions: { lg: { colSpan: 12, order: 2 } } } },\n { name: 'statusId', layout: { positions: { lg: { colSpan: 6, order: 3 } } } },\n { name: 'startDate', layout: { positions: { lg: { colSpan: 6, order: 4 } } } },\n { name: 'endDate', layout: { positions: { lg: { colSpan: 6, order: 5 } } } },\n { name: 'isAccountHolder', layout: { positions: { lg: { colSpan: 12, order: 6 } } } },\n ],\n actions: [...entityMasterRecordActions()],\n },\n },\n },\n };\n\n return entityDef;\n}\n\n//#endregion\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './entity-entry.tenant-user';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-tenant-management-client-contracts-entities-tenant-user.mjs","sources":["../../../../libs/modules/tenant-management/contracts/src/tenant-user-admin-scope.ts","../../../../libs/modules/tenant-management/contracts/src/root-config.ts","../../../../libs/modules/tenant-management/contracts/src/entities/tenant-user/tenant-user.entity.ts","../../../../libs/modules/tenant-management/contracts/src/acorex-platform-module-tenant-management-client-contracts-entities-tenant-user.ts"],"sourcesContent":["//#region ----- Tenant Users admin scope (operation-owned) -----\n\n/**\n * Explicit Tenant Users / Tenant Application Access operation scope (ADR-TEN-001).\n * Selected by the calling surface (`view=tenant-users`), not Application.code / TM ids,\n * and not by generic `/e/TenantUser*` entity routes alone.\n *\n * - `current-tenant` — TM → Tenant Users (and related AppAccess): force session tenant\n * - `default` — generic / platform TenantUser ops: existing membership policy (incl. isPlatform)\n */\nexport type AXPTenantUserAdminScope = 'current-tenant' | 'default';\n\n/** Query `params` key carrying the operation scope. */\nexport const AXP_TENANT_USER_ADMIN_SCOPE_PARAM = 'tenantUserAdminScope';\n\n/** HTTP header (lowercase) for getOne/update/delete (and related) ops. */\nexport const AXP_TENANT_USER_ADMIN_SCOPE_HEADER = 'x-axp-tenant-user-admin-scope';\n\n/** Entity list view name for TM → Tenant Users / Tenant Application Access. */\nexport const AXP_TENANT_USERS_VIEW = 'tenant-users';\n\nexport function normalizeTenantUserAdminScope(value: unknown): AXPTenantUserAdminScope {\n return value === 'current-tenant' ? 'current-tenant' : 'default';\n}\n\n/**\n * Whether the URL carries the explicit Tenant Users operation context.\n *\n * Prefer durable `tenantUserAdminScope=current-tenant` (entity list rewrites\n * unknown `view=` values to `all`). Also accept `view=tenant-users` when present.\n * Never infer from entity path `/e/TenantUser*` alone.\n */\nexport function isTenantUsersOperationUrl(url: string | null | undefined): boolean {\n if (!url) {\n return false;\n }\n\n try {\n const parsed = new URL(url, 'http://local.invalid');\n if (\n parsed.searchParams.get(AXP_TENANT_USER_ADMIN_SCOPE_PARAM)?.trim() === 'current-tenant'\n ) {\n return true;\n }\n if (parsed.searchParams.get('view')?.trim() === AXP_TENANT_USERS_VIEW) {\n return true;\n }\n } catch {\n // Fall through to substring checks.\n }\n\n return (\n url.includes(`${AXP_TENANT_USER_ADMIN_SCOPE_PARAM}=current-tenant`) ||\n url.includes(`view=${AXP_TENANT_USERS_VIEW}`)\n );\n}\n\nexport function resolveTenantUserAdminScopeFromUrl(\n url: string | null | undefined,\n): AXPTenantUserAdminScope {\n return isTenantUsersOperationUrl(url) ? 'current-tenant' : 'default';\n}\n\n//#endregion\n","const config = {\n i18n: 'tenant-management',\n module: 'TenantManagement',\n};\n\nexport const RootConfig = {\n config,\n module: {\n route: 'tenant-management',\n name: config.module,\n title: `@${config.i18n}:module.title`,\n icon: 'fa-light fa-building',\n },\n entities: {\n tenant: {\n name: 'Tenant',\n source: `${config.module}.Tenant`,\n title: `@${config.i18n}:tenants.entities.tenant.title`,\n titlePlural: `@${config.i18n}:tenants.entities.tenant.plural`,\n icon: 'fa-light fa-building',\n },\n tenantUser: {\n name: 'TenantUser',\n source: `${config.module}.TenantUser`,\n title: `@${config.i18n}:tenants.entities.tenant-user.title`,\n titlePlural: `@${config.i18n}:tenants.entities.tenant-user.plural`,\n icon: 'fa-light fa-user-group',\n },\n tenantUserAppAccess: {\n name: 'TenantUserAppAccess',\n source: `${config.module}.TenantUserAppAccess`,\n title: `@${config.i18n}:tenants.entities.tenant-user-app-access.title`,\n titlePlural: `@${config.i18n}:tenants.entities.tenant-user-app-access.plural`,\n icon: 'fa-light fa-app-store',\n },\n resourceShare: {\n name: 'ResourceShare',\n source: `${config.module}.ResourceShare`,\n title: `@${config.i18n}:tenants.entities.resource-share.title`,\n titlePlural: `@${config.i18n}:tenants.entities.resource-share.plural`,\n icon: 'fa-light fa-share-nodes',\n },\n },\n queries: {\n dashboard: {\n /** Tenant-wide TenantUser count (Tenant Console Overview). */\n activeUsersKpi: `${config.module}:Dashboard:ActiveUsersKpi`,\n /**\n * Current-application TenantUserAppAccess count (TM Application scope).\n * On Tenant Console Overview / TM Application Overview widgets (D-17 / D-18).\n */\n tmApplicationUsersKpi: `${config.module}:Dashboard:TmApplicationUsersKpi`,\n usersByRoleDonut: `${config.module}:Dashboard:UsersByRoleDonut`,\n },\n reports: {\n getTenantApplicationAccess: `${config.module}:Reports:GetTenantApplicationAccess`,\n getTenantUserDistribution: `${config.module}:Reports:GetTenantUserDistribution`,\n getTenantRegistrationTimeline: `${config.module}:Reports:GetTenantRegistrationTimeline`,\n getTenantRegistrationChartData: `${config.module}:Reports:GetTenantRegistrationChartData`,\n getSubscriptionsTimeline: `${config.module}:Reports:GetSubscriptionsTimeline`,\n getSubscriptionsChartData: `${config.module}:Reports:GetSubscriptionsChartData`,\n },\n },\n};\n\n// Keep the old export for backward compatibility\nexport const AXMTenantManagementModuleConst = {\n moduleName: 'TenantManagement',\n moduleRoute: 'tenant-management',\n i18n: 'tenant-management',\n} as const;\n","import { AXPSystemActionType, AXPWidgetsList } from '@acorex-platform/framework-shared/core';\nimport {\n AXPEntity,\n AXPEntityCommandScope,\n createAllQueryView,\n createQueryView,\n entityDetailsCrudActions,\n entityMasterCrudActions,\n entityMasterRecordActions,\n} from '@acorex-platform/framework-shared/entity';\n//#region ---- Imports ----\nimport { AXP_TENANT_USERS_VIEW } from '../../tenant-user-admin-scope';\nimport { RootConfig } from '../../root-config';\n\n/** Same commands as SecurityManagement Users (ADR-TEN-001 D-05 / waiting-room parity). */\nconst INVITE_USER_COMMAND = 'SecurityManagement:User:Invite';\nconst CREATE_USER_IN_TENANT_COMMAND = 'SecurityManagement:User:CreateInTenant';\nconst SEND_PASSWORD_RESET_COMMAND = 'SecurityManagement:User:SendPasswordResetEmail';\nconst RESET_TWO_FACTOR_COMMAND = 'SecurityManagement:User:ResetTwoFactor';\nconst RESEND_INVITATION_COMMAND = 'SecurityManagement:User:ResendInvitation';\nconst CANCEL_INVITATION_COMMAND = 'SecurityManagement:User:CancelInvitation';\nconst APPROVE_JOIN_REQUEST_COMMAND = 'SecurityManagement:User:ApproveJoinRequest';\nconst REJECT_JOIN_REQUEST_COMMAND = 'SecurityManagement:User:RejectJoinRequest';\n\n//#endregion\n\n//#region ---- Tenant User Entity Factory ----\n\nexport async function tenantUserEntityFactory(): Promise<AXPEntity | null> {\n const i18n = RootConfig.config.i18n + ':tenants.entities.tenant-user';\n\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.tenantUser.name,\n title: RootConfig.entities.tenantUser.title,\n icon: RootConfig.entities.tenantUser.icon,\n searchTags: [\n 'tenant-user',\n 'membership',\n 'tenant',\n 'user',\n 'account-holder',\n 'tenant-management',\n 'کاربر مستأجر',\n 'عضویت',\n 'مستأجر',\n ],\n formats: {\n individual: RootConfig.entities.tenantUser.title,\n plural: RootConfig.entities.tenantUser.titlePlural,\n searchResult: {\n title:\n '{{ context.eval(\"user.displayName\") + \" - \" + context.eval(\"tenant.title\", { pipes: [\"translate\"] }) }}',\n description: '{{ user.displayName }}',\n },\n },\n plugins: [\n {\n name: 'status',\n options: {\n field: 'statusId',\n definition: 'tenant-management.status.tenant-user',\n generate: { views: { enabled: false } },\n },\n },\n { name: 'history' },\n { name: 'compare' },\n ],\n groups: [\n {\n id: 'basic-info',\n title: `@${i18n}.groups.basic-info`,\n },\n {\n id: 'membership-details',\n title: `@${i18n}.groups.membership-details`,\n },\n ],\n properties: [\n {\n name: 'id',\n title: 'ID',\n groupId: 'basic-info',\n schema: { dataType: 'uuid', visible: false, nullable: false, readonly: true, unique: { enabled: true } },\n },\n {\n name: 'tenantId',\n title: `@${i18n}.fields.tenant.title`,\n groupId: 'basic-info',\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.LookupBox,\n options: {\n entity: `${RootConfig.module.name}.${RootConfig.entities.tenant.name}`,\n textField: 'title',\n valueField: 'id',\n look: 'select',\n expose: [\n { source: 'id', target: 'tenant.id' },\n { source: 'title', target: 'tenant.title' },\n ],\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'userId',\n title: `@${i18n}.fields.user.title`,\n groupId: 'basic-info',\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.LookupBox,\n options: {\n entity: `${\"SecurityManagement\"}.${\"User\"}`,\n textField: 'displayName',\n valueField: 'id',\n look: 'select',\n expose: [\n { source: 'id', target: 'user.id' },\n { source: 'username', target: 'user.username' },\n { source: 'displayName', target: 'user.displayName' },\n ],\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'statusId',\n title: `@${i18n}.fields.status.title`,\n groupId: 'membership-details',\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Advanced.Status,\n options: {\n definitionKey: 'tenant-management.status.tenant-user',\n },\n },\n },\n },\n {\n name: 'startDate',\n title: `@${i18n}.fields.start-date.title`,\n groupId: 'membership-details',\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n schema: {\n dataType: 'date',\n interface: {\n type: AXPWidgetsList.Editors.DateTimeBox,\n options: {\n format: 'date',\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'endDate',\n title: `@${i18n}.fields.end-date.title`,\n groupId: 'membership-details',\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n schema: {\n dataType: 'date',\n interface: {\n type: AXPWidgetsList.Editors.DateTimeBox,\n options: {\n format: 'date',\n },\n },\n },\n },\n {\n name: 'isAccountHolder',\n title: `@${i18n}.fields.is-account-holder.title`,\n groupId: 'membership-details',\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n schema: {\n dataType: 'boolean',\n interface: {\n type: AXPWidgetsList.Editors.CheckBox,\n // options: {\n // readOnly: true,\n // },\n },\n },\n },\n {\n name: 'invitation',\n title: `@${i18n}.fields.invitation.title`,\n groupId: 'membership-details',\n schema: {\n dataType: 'object',\n readonly: true,\n visible: false,\n nullable: true,\n interface: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n },\n },\n {\n name: 'invitation.source',\n title: `@${i18n}.fields.invitation-source.title`,\n groupId: 'membership-details',\n options: {\n filter: {\n advance: { enabled: true },\n },\n },\n schema: {\n dataType: 'string',\n readonly: true,\n visible: false,\n nullable: true,\n interface: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n },\n },\n {\n name: 'invitation.sentAt',\n title: `@${i18n}.fields.invitation-sent-at.title`,\n groupId: 'membership-details',\n options: {\n sort: { enabled: true },\n },\n schema: {\n dataType: 'datetime',\n readonly: true,\n visible: false,\n nullable: true,\n interface: {\n type: AXPWidgetsList.Editors.DateTimeBox,\n options: { format: 'datetime' },\n },\n },\n },\n {\n name: 'invitation.acceptedAt',\n title: `@${i18n}.fields.invitation-accepted-at.title`,\n groupId: 'membership-details',\n options: {\n sort: { enabled: true },\n },\n schema: {\n dataType: 'datetime',\n readonly: true,\n visible: false,\n nullable: true,\n interface: {\n type: AXPWidgetsList.Editors.DateTimeBox,\n options: { format: 'datetime' },\n },\n },\n },\n {\n name: 'invitation.expiresAt',\n title: `@${i18n}.fields.invitation-expires-at.title`,\n groupId: 'membership-details',\n options: {\n sort: { enabled: true },\n },\n schema: {\n dataType: 'datetime',\n readonly: true,\n visible: false,\n nullable: true,\n interface: {\n type: AXPWidgetsList.Editors.DateTimeBox,\n options: { format: 'datetime' },\n },\n },\n },\n ],\n columns: [\n { name: 'userId', options: { dataPath: 'user' } },\n { name: 'tenantId', options: { dataPath: 'tenant' } },\n {\n name: 'statusId',\n options: {\n definitionKey: 'tenant-management.status.tenant-user',\n entity: `${RootConfig.module.name}.${RootConfig.entities.tenantUser.name}`,\n fieldName: 'statusId',\n },\n },\n { name: 'invitation.sentAt', options: { visible: false } },\n { name: 'invitation.acceptedAt', options: { visible: false } },\n { name: 'invitation.expiresAt', options: { visible: false } },\n { name: 'startDate' },\n { name: 'endDate' },\n { name: 'isAccountHolder' },\n ],\n interfaces: {\n master: {\n create: {\n sections: [\n {\n id: 'basic-info',\n },\n {\n id: 'membership-details',\n },\n ],\n properties: [\n {\n name: 'tenantId',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'userId',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'statusId',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'startDate',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'endDate',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'isAccountHolder',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n ],\n },\n update: {\n sections: [\n {\n id: 'basic-info',\n },\n {\n id: 'membership-details',\n },\n ],\n properties: [\n {\n name: 'tenantId',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'userId',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'statusId',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'startDate',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'endDate',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'isAccountHolder',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n ],\n },\n list: {\n actions: [\n ...entityMasterCrudActions({ create: false }),\n {\n name: 'invite',\n title: '@security-management:users.entities.user.actions.invite.title',\n icon: 'fa-light fa-envelope',\n command: {\n name: INVITE_USER_COMMAND,\n },\n priority: 'primary',\n type: AXPSystemActionType.Create,\n scope: AXPEntityCommandScope.TypeLevel,\n },\n {\n name: 'new-user',\n title: '@security-management:users.entities.user.actions.create-in-tenant.title',\n icon: 'fa-light fa-user',\n command: {\n name: CREATE_USER_IN_TENANT_COMMAND,\n },\n priority: 'primary',\n type: AXPSystemActionType.Create,\n scope: AXPEntityCommandScope.TypeLevel,\n },\n {\n name: 'approve-join-request',\n title: '@security-management:users.entities.user.actions.approve-join-request.title',\n icon: 'fa-light fa-user-check',\n command: {\n name: APPROVE_JOIN_REQUEST_COMMAND,\n },\n color: 'success',\n priority: 'primary',\n type: 'view',\n scope: AXPEntityCommandScope.Individual,\n hidden:\n '{{ context.eval(\"statusId\") !== \"pending\" || context.eval(\"invitation.source\") !== \"join-request\" }}',\n },\n {\n name: 'reject-join-request',\n title: '@security-management:users.entities.user.actions.reject-join-request.title',\n icon: 'fa-light fa-user-xmark',\n command: {\n name: REJECT_JOIN_REQUEST_COMMAND,\n },\n color: 'warning',\n priority: 'primary',\n type: 'view',\n scope: AXPEntityCommandScope.Individual,\n hidden:\n '{{ context.eval(\"statusId\") !== \"pending\" || context.eval(\"invitation.source\") !== \"join-request\" }}',\n },\n ],\n views: [\n createAllQueryView({\n sorts: [{ name: 'startDate', dir: 'desc' }],\n }),\n createQueryView(\n 'invitations',\n `@${i18n}.views.invitations.title`,\n true,\n {\n conditions: [\n {\n name: 'invitation.source',\n operator: { type: 'in' },\n value: ['invite', 'join-request'],\n hidden: true,\n },\n ],\n columns: [\n 'userId',\n 'statusId',\n 'invitation.sentAt',\n 'invitation.acceptedAt',\n 'invitation.expiresAt',\n 'endDate',\n ],\n sorts: [{ name: 'invitation.sentAt', dir: 'desc' }],\n },\n ),\n {\n // TM menu `?view=tenant-users` — keeps named view (Device Sessions pattern).\n // Current-tenant bound is enforced by tenantUserAdminScope (server), not by isPlatform.\n ...createQueryView(\n AXP_TENANT_USERS_VIEW,\n RootConfig.entities.tenantUser.titlePlural,\n true,\n { sorts: [{ name: 'startDate', dir: 'desc' }] },\n ),\n visible: false,\n },\n ],\n },\n single: {\n title:\n '{{ context.eval(\"user.displayName\") + \" - \" + context.eval(\"tenant.title\", { pipes: [\"translate\"] }) }}',\n description: '{{ user.displayName }}',\n sections: [\n { id: 'basic-info', layout: { positions: { lg: { colSpan: 12 } } } },\n { id: 'membership-details', layout: { positions: { lg: { colSpan: 12 } } } },\n ],\n properties: [\n { name: 'tenantId', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },\n { name: 'userId', layout: { positions: { lg: { colSpan: 12, order: 2 } } } },\n { name: 'statusId', layout: { positions: { lg: { colSpan: 6, order: 3 } } } },\n { name: 'startDate', layout: { positions: { lg: { colSpan: 6, order: 4 } } } },\n { name: 'endDate', layout: { positions: { lg: { colSpan: 6, order: 5 } } } },\n { name: 'isAccountHolder', layout: { positions: { lg: { colSpan: 12, order: 6 } } } },\n ],\n actions: [\n {\n name: 'send-password-reset',\n title: '@security-management:users.entities.user.actions.send-password-reset.title',\n icon: 'fa-light fa-envelope',\n command: { name: SEND_PASSWORD_RESET_COMMAND },\n priority: 'secondary',\n type: 'view',\n scope: AXPEntityCommandScope.Individual,\n },\n {\n name: 'reset-two-factor',\n title: '@security-management:users.entities.user.actions.reset-two-factor.title',\n icon: 'fa-light fa-shield-keyhole',\n command: { name: RESET_TWO_FACTOR_COMMAND },\n priority: 'secondary',\n type: 'view',\n scope: AXPEntityCommandScope.Individual,\n },\n {\n name: 'resend-invitation',\n title: '@security-management:users.entities.user.actions.resend-invitation.title',\n icon: 'fa-light fa-paper-plane',\n command: { name: RESEND_INVITATION_COMMAND },\n priority: 'secondary',\n type: 'view',\n scope: AXPEntityCommandScope.Individual,\n hidden:\n '{{ context.eval(\"statusId\") !== \"pending\" || context.eval(\"invitation.source\") !== \"invite\" }}',\n },\n {\n name: 'cancel-invitation',\n title: '@security-management:users.entities.user.actions.cancel-invitation.title',\n icon: 'fa-light fa-user-xmark',\n command: { name: CANCEL_INVITATION_COMMAND },\n priority: 'secondary',\n type: 'view',\n scope: AXPEntityCommandScope.Individual,\n hidden:\n '{{ context.eval(\"statusId\") !== \"pending\" || context.eval(\"invitation.source\") !== \"invite\" }}',\n },\n {\n name: 'approve-join-request',\n title: '@security-management:users.entities.user.actions.approve-join-request.title',\n icon: 'fa-light fa-user-check',\n command: { name: APPROVE_JOIN_REQUEST_COMMAND },\n color: 'success',\n priority: 'primary',\n type: 'view',\n scope: AXPEntityCommandScope.Individual,\n hidden:\n '{{ context.eval(\"statusId\") !== \"pending\" || context.eval(\"invitation.source\") !== \"join-request\" }}',\n },\n {\n name: 'reject-join-request',\n title: '@security-management:users.entities.user.actions.reject-join-request.title',\n icon: 'fa-light fa-user-xmark',\n command: { name: REJECT_JOIN_REQUEST_COMMAND },\n color: 'warning',\n priority: 'primary',\n type: 'view',\n scope: AXPEntityCommandScope.Individual,\n hidden:\n '{{ context.eval(\"statusId\") !== \"pending\" || context.eval(\"invitation.source\") !== \"join-request\" }}',\n },\n ...entityMasterRecordActions(),\n ],\n },\n },\n },\n relatedEntities: [\n {\n entity: `${RootConfig.module.name}.${RootConfig.entities.tenantUserAppAccess.name}`,\n title: `@${RootConfig.config.i18n}:tenants.entities.related-entities.tenant-user-app-access.title`,\n icon: RootConfig.entities.tenantUserAppAccess.icon,\n columns: ['applicationId', 'statusId', 'startDate', 'endDate'],\n conditions: [\n {\n name: 'tenantUserId',\n operator: { type: 'equal' },\n value: '{{ context.eval(\"id\") }}',\n },\n ],\n actions: [...entityDetailsCrudActions('tenantUserId')],\n layout: { type: 'page-list', position: 'after', order: 1 },\n },\n ],\n };\n\n return entityDef;\n}\n\n//#endregion\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './entity-entry.tenant-user';\n"],"names":[],"mappings":";;;AAAA;AAYA;AACO,MAAM,iCAAiC,GAAG,sBAAsB;AAEvE;AACO,MAAM,kCAAkC,GAAG,+BAA+B;AAEjF;AACO,MAAM,qBAAqB,GAAG,cAAc;AAE7C,SAAU,6BAA6B,CAAC,KAAc,EAAA;IAC1D,OAAO,KAAK,KAAK,gBAAgB,GAAG,gBAAgB,GAAG,SAAS;AAClE;AAEA;;;;;;AAMG;AACG,SAAU,yBAAyB,CAAC,GAA8B,EAAA;IACtE,IAAI,CAAC,GAAG,EAAE;AACR,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,IAAI;QACF,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,sBAAsB,CAAC;AACnD,QAAA,IACE,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,iCAAiC,CAAC,EAAE,IAAI,EAAE,KAAK,gBAAgB,EACvF;AACA,YAAA,OAAO,IAAI;QACb;AACA,QAAA,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,qBAAqB,EAAE;AACrE,YAAA,OAAO,IAAI;QACb;IACF;AAAE,IAAA,MAAM;;IAER;IAEA,QACE,GAAG,CAAC,QAAQ,CAAC,CAAA,EAAG,iCAAiC,iBAAiB,CAAC;QACnE,GAAG,CAAC,QAAQ,CAAC,CAAA,KAAA,EAAQ,qBAAqB,CAAA,CAAE,CAAC;AAEjD;AAEM,SAAU,kCAAkC,CAChD,GAA8B,EAAA;AAE9B,IAAA,OAAO,yBAAyB,CAAC,GAAG,CAAC,GAAG,gBAAgB,GAAG,SAAS;AACtE;AAEA;;AC/DA,MAAM,MAAM,GAAG;AACb,IAAA,IAAI,EAAE,mBAAmB;AACzB,IAAA,MAAM,EAAE,kBAAkB;CAC3B;AAEM,MAAM,UAAU,GAAG;IACxB,MAAM;AACN,IAAA,MAAM,EAAE;AACN,QAAA,KAAK,EAAE,mBAAmB;QAC1B,IAAI,EAAE,MAAM,CAAC,MAAM;AACnB,QAAA,KAAK,EAAE,CAAA,CAAA,EAAI,MAAM,CAAC,IAAI,CAAA,aAAA,CAAe;AACrC,QAAA,IAAI,EAAE,sBAAsB;AAC7B,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,MAAM,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,OAAA,CAAS;AACjC,YAAA,KAAK,EAAE,CAAA,CAAA,EAAI,MAAM,CAAC,IAAI,CAAA,8BAAA,CAAgC;AACtD,YAAA,WAAW,EAAE,CAAA,CAAA,EAAI,MAAM,CAAC,IAAI,CAAA,+BAAA,CAAiC;AAC7D,YAAA,IAAI,EAAE,sBAAsB;AAC7B,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,MAAM,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,WAAA,CAAa;AACrC,YAAA,KAAK,EAAE,CAAA,CAAA,EAAI,MAAM,CAAC,IAAI,CAAA,mCAAA,CAAqC;AAC3D,YAAA,WAAW,EAAE,CAAA,CAAA,EAAI,MAAM,CAAC,IAAI,CAAA,oCAAA,CAAsC;AAClE,YAAA,IAAI,EAAE,wBAAwB;AAC/B,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,MAAM,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,oBAAA,CAAsB;AAC9C,YAAA,KAAK,EAAE,CAAA,CAAA,EAAI,MAAM,CAAC,IAAI,CAAA,8CAAA,CAAgD;AACtE,YAAA,WAAW,EAAE,CAAA,CAAA,EAAI,MAAM,CAAC,IAAI,CAAA,+CAAA,CAAiD;AAC7E,YAAA,IAAI,EAAE,uBAAuB;AAC9B,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,IAAI,EAAE,eAAe;AACrB,YAAA,MAAM,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,cAAA,CAAgB;AACxC,YAAA,KAAK,EAAE,CAAA,CAAA,EAAI,MAAM,CAAC,IAAI,CAAA,sCAAA,CAAwC;AAC9D,YAAA,WAAW,EAAE,CAAA,CAAA,EAAI,MAAM,CAAC,IAAI,CAAA,uCAAA,CAAyC;AACrE,YAAA,IAAI,EAAE,yBAAyB;AAChC,SAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,SAAS,EAAE;;AAET,YAAA,cAAc,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,yBAAA,CAA2B;AAC3D;;;AAGG;AACH,YAAA,qBAAqB,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,gCAAA,CAAkC;AACzE,YAAA,gBAAgB,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,2BAAA,CAA6B;AAChE,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,0BAA0B,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,mCAAA,CAAqC;AACjF,YAAA,yBAAyB,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,kCAAA,CAAoC;AAC/E,YAAA,6BAA6B,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,sCAAA,CAAwC;AACvF,YAAA,8BAA8B,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,uCAAA,CAAyC;AACzF,YAAA,wBAAwB,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,iCAAA,CAAmC;AAC7E,YAAA,yBAAyB,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,kCAAA,CAAoC;AAChF,SAAA;AACF,KAAA;CACF;AAED;AACO,MAAM,8BAA8B,GAAG;AAC5C,IAAA,UAAU,EAAE,kBAAkB;AAC9B,IAAA,WAAW,EAAE,mBAAmB;AAChC,IAAA,IAAI,EAAE,mBAAmB;CACjB;;ACxDV;AACA,MAAM,mBAAmB,GAAG,gCAAgC;AAC5D,MAAM,6BAA6B,GAAG,wCAAwC;AAC9E,MAAM,2BAA2B,GAAG,gDAAgD;AACpF,MAAM,wBAAwB,GAAG,wCAAwC;AACzE,MAAM,yBAAyB,GAAG,0CAA0C;AAC5E,MAAM,yBAAyB,GAAG,0CAA0C;AAC5E,MAAM,4BAA4B,GAAG,4CAA4C;AACjF,MAAM,2BAA2B,GAAG,2CAA2C;AAE/E;AAEA;AAEO,eAAe,uBAAuB,GAAA;IACzC,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,+BAA+B;AAErE,IAAA,MAAM,SAAS,GAAc;AACzB,QAAA,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAC9B,QAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI;AACzC,QAAA,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK;AAC3C,QAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI;AACzC,QAAA,UAAU,EAAE;YACV,aAAa;YACb,YAAY;YACZ,QAAQ;YACR,MAAM;YACN,gBAAgB;YAChB,mBAAmB;YACnB,cAAc;YACd,OAAO;YACP,QAAQ;AACT,SAAA;AACD,QAAA,OAAO,EAAE;AACL,YAAA,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK;AAChD,YAAA,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW;AAClD,YAAA,YAAY,EAAE;AACV,gBAAA,KAAK,EACH,yGAAyG;AAC3G,gBAAA,WAAW,EAAE,wBAAwB;AACxC,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,EAAE;AACL,YAAA;AACI,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,OAAO,EAAE;AACL,oBAAA,KAAK,EAAE,UAAU;AACjB,oBAAA,UAAU,EAAE,sCAAsC;oBAClD,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;AAC1C,iBAAA;AACJ,aAAA;YACD,EAAE,IAAI,EAAE,SAAS,EAAE;YACnB,EAAE,IAAI,EAAE,SAAS,EAAE;AACtB,SAAA;AACD,QAAA,MAAM,EAAE;AACJ,YAAA;AACI,gBAAA,EAAE,EAAE,YAAY;gBAChB,KAAK,EAAE,CAAA,CAAA,EAAI,IAAI,CAAA,kBAAA,CAAoB;AACtC,aAAA;AACD,YAAA;AACI,gBAAA,EAAE,EAAE,oBAAoB;gBACxB,KAAK,EAAE,CAAA,CAAA,EAAI,IAAI,CAAA,0BAAA,CAA4B;AAC9C,aAAA;AACJ,SAAA;AACD,QAAA,UAAU,EAAE;AACR,YAAA;AACI,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,OAAO,EAAE,YAAY;gBACrB,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;AAC3G,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,CAAA,CAAA,EAAI,IAAI,CAAA,oBAAA,CAAsB;AACrC,gBAAA,OAAO,EAAE,YAAY;AACrB,gBAAA,OAAO,EAAE;AACL,oBAAA,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AACvB,oBAAA,MAAM,EAAE;AACJ,wBAAA,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AAC1B,wBAAA,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AAC5B,qBAAA;AACJ,iBAAA;AACD,gBAAA,MAAM,EAAE;AACJ,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,SAAS,EAAE;AACP,wBAAA,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS;AACtC,wBAAA,OAAO,EAAE;AACL,4BAAA,MAAM,EAAE,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAA,CAAE;AACtE,4BAAA,SAAS,EAAE,OAAO;AAClB,4BAAA,UAAU,EAAE,IAAI;AAChB,4BAAA,IAAI,EAAE,QAAQ;AACd,4BAAA,MAAM,EAAE;AACJ,gCAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE;AACrC,gCAAA,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE;AAC9C,6BAAA;AACJ,yBAAA;AACJ,qBAAA;AACJ,iBAAA;AACD,gBAAA,WAAW,EAAE;AACT,oBAAA;AACI,wBAAA,IAAI,EAAE,UAAU;AACnB,qBAAA;AACJ,iBAAA;AACJ,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,CAAA,CAAA,EAAI,IAAI,CAAA,kBAAA,CAAoB;AACnC,gBAAA,OAAO,EAAE,YAAY;AACrB,gBAAA,OAAO,EAAE;AACL,oBAAA,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AACvB,oBAAA,MAAM,EAAE;AACJ,wBAAA,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AAC1B,wBAAA,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AAC5B,qBAAA;AACJ,iBAAA;AACD,gBAAA,MAAM,EAAE;AACJ,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,SAAS,EAAE;AACP,wBAAA,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS;AACtC,wBAAA,OAAO,EAAE;AACL,4BAAA,MAAM,EAAE,CAAA,EAAG,oBAAoB,CAAA,CAAA,EAAI,MAAM,CAAA,CAAE;AAC3C,4BAAA,SAAS,EAAE,aAAa;AACxB,4BAAA,UAAU,EAAE,IAAI;AAChB,4BAAA,IAAI,EAAE,QAAQ;AACd,4BAAA,MAAM,EAAE;AACJ,gCAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE;AACnC,gCAAA,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE;AAC/C,gCAAA,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,kBAAkB,EAAE;AACxD,6BAAA;AACJ,yBAAA;AACJ,qBAAA;AACJ,iBAAA;AACD,gBAAA,WAAW,EAAE;AACT,oBAAA;AACI,wBAAA,IAAI,EAAE,UAAU;AACnB,qBAAA;AACJ,iBAAA;AACJ,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,CAAA,CAAA,EAAI,IAAI,CAAA,oBAAA,CAAsB;AACrC,gBAAA,OAAO,EAAE,oBAAoB;AAC7B,gBAAA,OAAO,EAAE;AACL,oBAAA,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AACvB,oBAAA,MAAM,EAAE;AACJ,wBAAA,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AAC1B,wBAAA,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AAC5B,qBAAA;AACJ,iBAAA;AACD,gBAAA,MAAM,EAAE;AACJ,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,SAAS,EAAE;AACP,wBAAA,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC,MAAM;AACpC,wBAAA,OAAO,EAAE;AACL,4BAAA,aAAa,EAAE,sCAAsC;AACxD,yBAAA;AACJ,qBAAA;AACJ,iBAAA;AACJ,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,CAAA,CAAA,EAAI,IAAI,CAAA,wBAAA,CAA0B;AACzC,gBAAA,OAAO,EAAE,oBAAoB;AAC7B,gBAAA,OAAO,EAAE;AACL,oBAAA,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AACvB,oBAAA,MAAM,EAAE;AACJ,wBAAA,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AAC1B,wBAAA,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AAC5B,qBAAA;AACJ,iBAAA;AACD,gBAAA,MAAM,EAAE;AACJ,oBAAA,QAAQ,EAAE,MAAM;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,WAAW;AACxC,wBAAA,OAAO,EAAE;AACL,4BAAA,MAAM,EAAE,MAAM;AACjB,yBAAA;AACJ,qBAAA;AACJ,iBAAA;AACD,gBAAA,WAAW,EAAE;AACT,oBAAA;AACI,wBAAA,IAAI,EAAE,UAAU;AACnB,qBAAA;AACJ,iBAAA;AACJ,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,CAAA,CAAA,EAAI,IAAI,CAAA,sBAAA,CAAwB;AACvC,gBAAA,OAAO,EAAE,oBAAoB;AAC7B,gBAAA,OAAO,EAAE;AACL,oBAAA,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AACvB,oBAAA,MAAM,EAAE;AACJ,wBAAA,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AAC1B,wBAAA,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AAC5B,qBAAA;AACJ,iBAAA;AACD,gBAAA,MAAM,EAAE;AACJ,oBAAA,QAAQ,EAAE,MAAM;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,WAAW;AACxC,wBAAA,OAAO,EAAE;AACL,4BAAA,MAAM,EAAE,MAAM;AACjB,yBAAA;AACJ,qBAAA;AACJ,iBAAA;AACJ,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,iBAAiB;gBACvB,KAAK,EAAE,CAAA,CAAA,EAAI,IAAI,CAAA,+BAAA,CAAiC;AAChD,gBAAA,OAAO,EAAE,oBAAoB;AAC7B,gBAAA,OAAO,EAAE;AACL,oBAAA,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AACvB,oBAAA,MAAM,EAAE;AACJ,wBAAA,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AAC1B,wBAAA,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AAC5B,qBAAA;AACJ,iBAAA;AACD,gBAAA,MAAM,EAAE;AACJ,oBAAA,QAAQ,EAAE,SAAS;AACnB,oBAAA,SAAS,EAAE;AACP,wBAAA,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,QAAQ;;;;AAIxC,qBAAA;AACJ,iBAAA;AACJ,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,CAAA,CAAA,EAAI,IAAI,CAAA,wBAAA,CAA0B;AACzC,gBAAA,OAAO,EAAE,oBAAoB;AAC7B,gBAAA,MAAM,EAAE;AACJ,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,SAAS,EAAE;AACP,wBAAA,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO;AACvC,qBAAA;AACJ,iBAAA;AACJ,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,mBAAmB;gBACzB,KAAK,EAAE,CAAA,CAAA,EAAI,IAAI,CAAA,+BAAA,CAAiC;AAChD,gBAAA,OAAO,EAAE,oBAAoB;AAC7B,gBAAA,OAAO,EAAE;AACL,oBAAA,MAAM,EAAE;AACJ,wBAAA,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AAC7B,qBAAA;AACJ,iBAAA;AACD,gBAAA,MAAM,EAAE;AACJ,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,SAAS,EAAE;AACP,wBAAA,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO;AACvC,qBAAA;AACJ,iBAAA;AACJ,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,mBAAmB;gBACzB,KAAK,EAAE,CAAA,CAAA,EAAI,IAAI,CAAA,gCAAA,CAAkC;AACjD,gBAAA,OAAO,EAAE,oBAAoB;AAC7B,gBAAA,OAAO,EAAE;AACL,oBAAA,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AAC1B,iBAAA;AACD,gBAAA,MAAM,EAAE;AACJ,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,SAAS,EAAE;AACP,wBAAA,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,WAAW;AACxC,wBAAA,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;AAClC,qBAAA;AACJ,iBAAA;AACJ,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,uBAAuB;gBAC7B,KAAK,EAAE,CAAA,CAAA,EAAI,IAAI,CAAA,oCAAA,CAAsC;AACrD,gBAAA,OAAO,EAAE,oBAAoB;AAC7B,gBAAA,OAAO,EAAE;AACL,oBAAA,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AAC1B,iBAAA;AACD,gBAAA,MAAM,EAAE;AACJ,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,SAAS,EAAE;AACP,wBAAA,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,WAAW;AACxC,wBAAA,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;AAClC,qBAAA;AACJ,iBAAA;AACJ,aAAA;AACD,YAAA;AACI,gBAAA,IAAI,EAAE,sBAAsB;gBAC5B,KAAK,EAAE,CAAA,CAAA,EAAI,IAAI,CAAA,mCAAA,CAAqC;AACpD,gBAAA,OAAO,EAAE,oBAAoB;AAC7B,gBAAA,OAAO,EAAE;AACL,oBAAA,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AAC1B,iBAAA;AACD,gBAAA,MAAM,EAAE;AACJ,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,SAAS,EAAE;AACP,wBAAA,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,WAAW;AACxC,wBAAA,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;AAClC,qBAAA;AACJ,iBAAA;AACJ,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,EAAE;YACL,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;YACjD,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;AACrD,YAAA;AACI,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,OAAO,EAAE;AACL,oBAAA,aAAa,EAAE,sCAAsC;AACrD,oBAAA,MAAM,EAAE,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AAC1E,oBAAA,SAAS,EAAE,UAAU;AACxB,iBAAA;AACJ,aAAA;YACD,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YAC1D,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YAC9D,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YAC7D,EAAE,IAAI,EAAE,WAAW,EAAE;YACrB,EAAE,IAAI,EAAE,SAAS,EAAE;YACnB,EAAE,IAAI,EAAE,iBAAiB,EAAE;AAC9B,SAAA;AACD,QAAA,UAAU,EAAE;AACR,YAAA,MAAM,EAAE;AACJ,gBAAA,MAAM,EAAE;AACJ,oBAAA,QAAQ,EAAE;AACN,wBAAA;AACI,4BAAA,EAAE,EAAE,YAAY;AACnB,yBAAA;AACD,wBAAA;AACI,4BAAA,EAAE,EAAE,oBAAoB;AAC3B,yBAAA;AACJ,qBAAA;AACD,oBAAA,UAAU,EAAE;AACR,wBAAA;AACI,4BAAA,IAAI,EAAE,UAAU;AAChB,4BAAA,MAAM,EAAE;AACJ,gCAAA,SAAS,EAAE;AACP,oCAAA,EAAE,EAAE;AACA,wCAAA,OAAO,EAAE,EAAE;AACd,qCAAA;AACJ,iCAAA;AACJ,6BAAA;AACJ,yBAAA;AACD,wBAAA;AACI,4BAAA,IAAI,EAAE,QAAQ;AACd,4BAAA,MAAM,EAAE;AACJ,gCAAA,SAAS,EAAE;AACP,oCAAA,EAAE,EAAE;AACA,wCAAA,OAAO,EAAE,EAAE;AACd,qCAAA;AACJ,iCAAA;AACJ,6BAAA;AACJ,yBAAA;AACD,wBAAA;AACI,4BAAA,IAAI,EAAE,UAAU;AAChB,4BAAA,MAAM,EAAE;AACJ,gCAAA,SAAS,EAAE;AACP,oCAAA,EAAE,EAAE;AACA,wCAAA,OAAO,EAAE,CAAC;AACb,qCAAA;AACJ,iCAAA;AACJ,6BAAA;AACJ,yBAAA;AACD,wBAAA;AACI,4BAAA,IAAI,EAAE,WAAW;AACjB,4BAAA,MAAM,EAAE;AACJ,gCAAA,SAAS,EAAE;AACP,oCAAA,EAAE,EAAE;AACA,wCAAA,OAAO,EAAE,CAAC;AACb,qCAAA;AACJ,iCAAA;AACJ,6BAAA;AACJ,yBAAA;AACD,wBAAA;AACI,4BAAA,IAAI,EAAE,SAAS;AACf,4BAAA,MAAM,EAAE;AACJ,gCAAA,SAAS,EAAE;AACP,oCAAA,EAAE,EAAE;AACA,wCAAA,OAAO,EAAE,CAAC;AACb,qCAAA;AACJ,iCAAA;AACJ,6BAAA;AACJ,yBAAA;AACD,wBAAA;AACI,4BAAA,IAAI,EAAE,iBAAiB;AACvB,4BAAA,MAAM,EAAE;AACJ,gCAAA,SAAS,EAAE;AACP,oCAAA,EAAE,EAAE;AACA,wCAAA,OAAO,EAAE,EAAE;AACd,qCAAA;AACJ,iCAAA;AACJ,6BAAA;AACJ,yBAAA;AACJ,qBAAA;AACJ,iBAAA;AACD,gBAAA,MAAM,EAAE;AACJ,oBAAA,QAAQ,EAAE;AACN,wBAAA;AACI,4BAAA,EAAE,EAAE,YAAY;AACnB,yBAAA;AACD,wBAAA;AACI,4BAAA,EAAE,EAAE,oBAAoB;AAC3B,yBAAA;AACJ,qBAAA;AACD,oBAAA,UAAU,EAAE;AACR,wBAAA;AACI,4BAAA,IAAI,EAAE,UAAU;AAChB,4BAAA,MAAM,EAAE;AACJ,gCAAA,SAAS,EAAE;AACP,oCAAA,EAAE,EAAE;AACA,wCAAA,OAAO,EAAE,EAAE;AACd,qCAAA;AACJ,iCAAA;AACJ,6BAAA;AACJ,yBAAA;AACD,wBAAA;AACI,4BAAA,IAAI,EAAE,QAAQ;AACd,4BAAA,MAAM,EAAE;AACJ,gCAAA,SAAS,EAAE;AACP,oCAAA,EAAE,EAAE;AACA,wCAAA,OAAO,EAAE,EAAE;AACd,qCAAA;AACJ,iCAAA;AACJ,6BAAA;AACJ,yBAAA;AACD,wBAAA;AACI,4BAAA,IAAI,EAAE,UAAU;AAChB,4BAAA,MAAM,EAAE;AACJ,gCAAA,SAAS,EAAE;AACP,oCAAA,EAAE,EAAE;AACA,wCAAA,OAAO,EAAE,CAAC;AACb,qCAAA;AACJ,iCAAA;AACJ,6BAAA;AACJ,yBAAA;AACD,wBAAA;AACI,4BAAA,IAAI,EAAE,WAAW;AACjB,4BAAA,MAAM,EAAE;AACJ,gCAAA,SAAS,EAAE;AACP,oCAAA,EAAE,EAAE;AACA,wCAAA,OAAO,EAAE,CAAC;AACb,qCAAA;AACJ,iCAAA;AACJ,6BAAA;AACJ,yBAAA;AACD,wBAAA;AACI,4BAAA,IAAI,EAAE,SAAS;AACf,4BAAA,MAAM,EAAE;AACJ,gCAAA,SAAS,EAAE;AACP,oCAAA,EAAE,EAAE;AACA,wCAAA,OAAO,EAAE,CAAC;AACb,qCAAA;AACJ,iCAAA;AACJ,6BAAA;AACJ,yBAAA;AACD,wBAAA;AACI,4BAAA,IAAI,EAAE,iBAAiB;AACvB,4BAAA,MAAM,EAAE;AACJ,gCAAA,SAAS,EAAE;AACP,oCAAA,EAAE,EAAE;AACA,wCAAA,OAAO,EAAE,EAAE;AACd,qCAAA;AACJ,iCAAA;AACJ,6BAAA;AACJ,yBAAA;AACJ,qBAAA;AACJ,iBAAA;AACD,gBAAA,IAAI,EAAE;AACF,oBAAA,OAAO,EAAE;AACL,wBAAA,GAAG,uBAAuB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC7C,wBAAA;AACI,4BAAA,IAAI,EAAE,QAAQ;AACd,4BAAA,KAAK,EAAE,+DAA+D;AACtE,4BAAA,IAAI,EAAE,sBAAsB;AAC5B,4BAAA,OAAO,EAAE;AACL,gCAAA,IAAI,EAAE,mBAAmB;AAC5B,6BAAA;AACD,4BAAA,QAAQ,EAAE,SAAS;4BACnB,IAAI,EAAE,mBAAmB,CAAC,MAAM;4BAChC,KAAK,EAAE,qBAAqB,CAAC,SAAS;AACzC,yBAAA;AACD,wBAAA;AACI,4BAAA,IAAI,EAAE,UAAU;AAChB,4BAAA,KAAK,EAAE,yEAAyE;AAChF,4BAAA,IAAI,EAAE,kBAAkB;AACxB,4BAAA,OAAO,EAAE;AACL,gCAAA,IAAI,EAAE,6BAA6B;AACtC,6BAAA;AACD,4BAAA,QAAQ,EAAE,SAAS;4BACnB,IAAI,EAAE,mBAAmB,CAAC,MAAM;4BAChC,KAAK,EAAE,qBAAqB,CAAC,SAAS;AACzC,yBAAA;AACD,wBAAA;AACI,4BAAA,IAAI,EAAE,sBAAsB;AAC5B,4BAAA,KAAK,EAAE,6EAA6E;AACpF,4BAAA,IAAI,EAAE,wBAAwB;AAC9B,4BAAA,OAAO,EAAE;AACL,gCAAA,IAAI,EAAE,4BAA4B;AACrC,6BAAA;AACD,4BAAA,KAAK,EAAE,SAAS;AAChB,4BAAA,QAAQ,EAAE,SAAS;AACnB,4BAAA,IAAI,EAAE,MAAM;4BACZ,KAAK,EAAE,qBAAqB,CAAC,UAAU;AACvC,4BAAA,MAAM,EACJ,sGAAsG;AAC3G,yBAAA;AACD,wBAAA;AACI,4BAAA,IAAI,EAAE,qBAAqB;AAC3B,4BAAA,KAAK,EAAE,4EAA4E;AACnF,4BAAA,IAAI,EAAE,wBAAwB;AAC9B,4BAAA,OAAO,EAAE;AACL,gCAAA,IAAI,EAAE,2BAA2B;AACpC,6BAAA;AACD,4BAAA,KAAK,EAAE,SAAS;AAChB,4BAAA,QAAQ,EAAE,SAAS;AACnB,4BAAA,IAAI,EAAE,MAAM;4BACZ,KAAK,EAAE,qBAAqB,CAAC,UAAU;AACvC,4BAAA,MAAM,EACJ,sGAAsG;AAC3G,yBAAA;AACJ,qBAAA;AACD,oBAAA,KAAK,EAAE;AACH,wBAAA,kBAAkB,CAAC;4BACf,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;yBAC9C,CAAC;wBACF,eAAe,CACX,aAAa,EACb,CAAA,CAAA,EAAI,IAAI,CAAA,wBAAA,CAA0B,EAClC,IAAI,EACJ;AACI,4BAAA,UAAU,EAAE;AACR,gCAAA;AACI,oCAAA,IAAI,EAAE,mBAAmB;AACzB,oCAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AACxB,oCAAA,KAAK,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC;AACjC,oCAAA,MAAM,EAAE,IAAI;AACf,iCAAA;AACJ,6BAAA;AACD,4BAAA,OAAO,EAAE;gCACL,QAAQ;gCACR,UAAU;gCACV,mBAAmB;gCACnB,uBAAuB;gCACvB,sBAAsB;gCACtB,SAAS;AACZ,6BAAA;4BACD,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;yBACtD,CACJ;AACD,wBAAA;;;AAGI,4BAAA,GAAG,eAAe,CACd,qBAAqB,EACrB,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,EAC1C,IAAI,EACJ,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAClD;AACD,4BAAA,OAAO,EAAE,KAAK;AACjB,yBAAA;AACJ,qBAAA;AACJ,iBAAA;AACD,gBAAA,MAAM,EAAE;AACJ,oBAAA,KAAK,EACH,yGAAyG;AAC3G,oBAAA,WAAW,EAAE,wBAAwB;AACrC,oBAAA,QAAQ,EAAE;AACN,wBAAA,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACpE,wBAAA,EAAE,EAAE,EAAE,oBAAoB,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC/E,qBAAA;AACD,oBAAA,UAAU,EAAE;wBACR,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;wBAC9E,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;wBAC5E,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;wBAC7E,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;wBAC9E,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;wBAC5E,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AACxF,qBAAA;AACD,oBAAA,OAAO,EAAE;AACP,wBAAA;AACE,4BAAA,IAAI,EAAE,qBAAqB;AAC3B,4BAAA,KAAK,EAAE,4EAA4E;AACnF,4BAAA,IAAI,EAAE,sBAAsB;AAC5B,4BAAA,OAAO,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE;AAC9C,4BAAA,QAAQ,EAAE,WAAW;AACrB,4BAAA,IAAI,EAAE,MAAM;4BACZ,KAAK,EAAE,qBAAqB,CAAC,UAAU;AACxC,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,kBAAkB;AACxB,4BAAA,KAAK,EAAE,yEAAyE;AAChF,4BAAA,IAAI,EAAE,4BAA4B;AAClC,4BAAA,OAAO,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE;AAC3C,4BAAA,QAAQ,EAAE,WAAW;AACrB,4BAAA,IAAI,EAAE,MAAM;4BACZ,KAAK,EAAE,qBAAqB,CAAC,UAAU;AACxC,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,mBAAmB;AACzB,4BAAA,KAAK,EAAE,0EAA0E;AACjF,4BAAA,IAAI,EAAE,yBAAyB;AAC/B,4BAAA,OAAO,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE;AAC5C,4BAAA,QAAQ,EAAE,WAAW;AACrB,4BAAA,IAAI,EAAE,MAAM;4BACZ,KAAK,EAAE,qBAAqB,CAAC,UAAU;AACvC,4BAAA,MAAM,EACJ,gGAAgG;AACnG,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,mBAAmB;AACzB,4BAAA,KAAK,EAAE,0EAA0E;AACjF,4BAAA,IAAI,EAAE,wBAAwB;AAC9B,4BAAA,OAAO,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE;AAC5C,4BAAA,QAAQ,EAAE,WAAW;AACrB,4BAAA,IAAI,EAAE,MAAM;4BACZ,KAAK,EAAE,qBAAqB,CAAC,UAAU;AACvC,4BAAA,MAAM,EACJ,gGAAgG;AACnG,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,sBAAsB;AAC5B,4BAAA,KAAK,EAAE,6EAA6E;AACpF,4BAAA,IAAI,EAAE,wBAAwB;AAC9B,4BAAA,OAAO,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE;AAC/C,4BAAA,KAAK,EAAE,SAAS;AAChB,4BAAA,QAAQ,EAAE,SAAS;AACnB,4BAAA,IAAI,EAAE,MAAM;4BACZ,KAAK,EAAE,qBAAqB,CAAC,UAAU;AACvC,4BAAA,MAAM,EACJ,sGAAsG;AACzG,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,qBAAqB;AAC3B,4BAAA,KAAK,EAAE,4EAA4E;AACnF,4BAAA,IAAI,EAAE,wBAAwB;AAC9B,4BAAA,OAAO,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE;AAC9C,4BAAA,KAAK,EAAE,SAAS;AAChB,4BAAA,QAAQ,EAAE,SAAS;AACnB,4BAAA,IAAI,EAAE,MAAM;4BACZ,KAAK,EAAE,qBAAqB,CAAC,UAAU;AACvC,4BAAA,MAAM,EACJ,sGAAsG;AACzG,yBAAA;AACD,wBAAA,GAAG,yBAAyB,EAAE;AAC/B,qBAAA;AACJ,iBAAA;AACJ,aAAA;AACJ,SAAA;AACD,QAAA,eAAe,EAAE;AACb,YAAA;AACI,gBAAA,MAAM,EAAE,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAA,CAAE;AACnF,gBAAA,KAAK,EAAE,CAAA,CAAA,EAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,+DAAA,CAAiE;AAClG,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI;gBAClD,OAAO,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC;AAC9D,gBAAA,UAAU,EAAE;AACR,oBAAA;AACI,wBAAA,IAAI,EAAE,cAAc;AACpB,wBAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;AAC3B,wBAAA,KAAK,EAAE,0BAA0B;AACpC,qBAAA;AACJ,iBAAA;AACD,gBAAA,OAAO,EAAE,CAAC,GAAG,wBAAwB,CAAC,cAAc,CAAC,CAAC;AACtD,gBAAA,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE;AAC7D,aAAA;AACJ,SAAA;KACJ;AAED,IAAA,OAAO,SAAS;AACpB;AAEA;;ACxrBA;;AAEG;;"}
|