@acorex-platform/module-tenant-management-client 0.0.21 → 0.0.24
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.
|
@@ -7,7 +7,7 @@ import * as i0 from '@angular/core';
|
|
|
7
7
|
import { Injectable, inject, NgModule } from '@angular/core';
|
|
8
8
|
import { AXPStatusProvider, AXPSystemStatusType, systemStatusToDefinition } from '@acorex-platform/framework-shared/core';
|
|
9
9
|
import { AXPCommonPermissionGroupKeys, AXPCommonMenuKeys } from '@acorex-platform/module-common-client/contracts';
|
|
10
|
-
import { AXM_TENANT_CONTEXT_DEFINITIONS } from '@acorex-platform/module-tenant-management-contracts';
|
|
10
|
+
import { AXM_TENANT_CONTEXT_DEFINITIONS } from '@acorex-platform/module-tenant-management-client/contracts';
|
|
11
11
|
|
|
12
12
|
//#region ---- Imports ----
|
|
13
13
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-module-tenant-management-client.mjs","sources":["../../../../libs/modules/tenant-management/client/src/lib/manifest.ts","../../../../libs/modules/tenant-management/client/src/lib/features/tenant-status.provider.ts","../../../../libs/modules/tenant-management/client/src/lib/middlewares/tenant-user-account-holder.middleware.ts","../../../../libs/modules/tenant-management/client/src/lib/middlewares/index.ts","../../../../libs/modules/tenant-management/client/src/lib/feature-definition.provider.ts","../../../../libs/modules/tenant-management/client/src/lib/permission-definition.provider.ts","../../../../libs/modules/tenant-management/client/src/lib/menu.provider.ts","../../../../libs/modules/tenant-management/client/src/lib/setting.provider.ts","../../../../libs/modules/tenant-management/client/src/lib/search-command.provider.ts","../../../../libs/modules/tenant-management/client/src/lib/context-definition.provider.ts","../../../../libs/modules/tenant-management/client/src/lib/tenant-management.module.ts","../../../../libs/modules/tenant-management/client/src/acorex-platform-module-tenant-management-client.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex-platform/framework-client/core';\nimport { RootConfig } from '@acorex-platform/module-tenant-management-client/contracts';\n\n//#endregion\n\n//#region ---- Manifest Definition ----\n\n/**\n * Tenant Management Module Manifest.\n * Defines module metadata, features, and provider references.\n */\nexport const TenantManagementManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n type: 'platform',\n domain: 'platform',\n required: true,\n\n // Module dependencies (optional)\n};\n\n//#endregion\n\n","//#region ---- Imports ----\n\nimport { AXPStatusProvider, AXPStatusTransition, AXPSystemStatusType, systemStatusToDefinition } from '@acorex-platform/framework-shared/core';\n\n//#endregion\n\n//#region ---- Tenant Status Provider ----\n\n/**\n * Tenant status provider defining lifecycle states for tenants.\n * Used by the status plugin to manage tenant status transitions and metadata.\n */\nexport class AXMTenantStatusProvider extends AXPStatusProvider {\n readonly key = 'tenant-management.status.tenant';\n\n readonly defaultStatus = AXPSystemStatusType.Active;\n\n readonly statuses = [\n systemStatusToDefinition(AXPSystemStatusType.Active, {\n title: '@tenant-management:tenants.states.active',\n generateView: true,\n }),\n systemStatusToDefinition(AXPSystemStatusType.Inactive, {\n title: '@tenant-management:tenants.states.inactive',\n generateView: true,\n }),\n systemStatusToDefinition(AXPSystemStatusType.Suspended, {\n title: '@tenant-management:tenants.states.suspended',\n generateView: true,\n }),\n systemStatusToDefinition(AXPSystemStatusType.Pending, {\n title: '@tenant-management:tenants.states.pending',\n generateView: true,\n }),\n ];\n\n readonly transitions: AXPStatusTransition[] = [\n {\n from: AXPSystemStatusType.Pending,\n to: AXPSystemStatusType.Active,\n title: '@tenant-management:tenants.transitions.activate',\n },\n {\n from: AXPSystemStatusType.Active,\n to: AXPSystemStatusType.Inactive,\n title: '@tenant-management:tenants.transitions.deactivate',\n },\n {\n from: AXPSystemStatusType.Active,\n to: AXPSystemStatusType.Suspended,\n title: '@tenant-management:tenants.transitions.suspend',\n },\n {\n from: AXPSystemStatusType.Suspended,\n to: AXPSystemStatusType.Active,\n title: '@tenant-management:tenants.transitions.resume',\n },\n {\n from: AXPSystemStatusType.Inactive,\n to: AXPSystemStatusType.Active,\n title: '@tenant-management:tenants.transitions.activate',\n },\n ];\n}\n\n//#endregion\n\n","//#region ---- Imports ----\n\nimport { inject } from '@angular/core';\nimport {\n AXPEntityStorageMiddleware,\n AXPMiddlewareAbortError,\n} from '@acorex-platform/framework-client/layout/entity';\nimport { RootConfig } from '@acorex-platform/module-tenant-management-client/contracts';\n\n//#endregion\n\n//#region ---- Tenant User Account Holder Middleware ----\n\n/**\n * Tenant User Account Holder Enforcement Middleware\n *\n * Enforces business rules for the isAccountHolder flag:\n * 1. CREATE: Prevents manual creation with isAccountHolder=true (must use TransferOwnership command)\n * 2. UPDATE:\n * - Prevents deactivating account holder\n * - Prevents manually toggling isAccountHolder flag\n * 3. DELETE: Prevents deleting account holder\n *\n * Runs on: TenantUser entity operations\n */\nexport const tenantUserAccountHolderMiddleware: AXPEntityStorageMiddleware = {\n target: {\n ops: ['create', 'update', 'delete'],\n order: 10, // Early enforcement before other business logic\n },\n\n execute: async (ctx, next) => {\n const entityFullName = `${RootConfig.module.name}.${RootConfig.entities.tenantUser.name}`;\n\n // Only apply to TenantUser entity\n if (ctx.entityName !== entityFullName) {\n await next();\n return;\n }\n\n const backend = ctx.entities;\n\n //#region ---- CREATE Operation ----\n\n if (ctx.op === 'create') {\n // Rule 1: Cannot manually create account holder\n // Must use TransferOwnership command instead\n if (ctx.data?.isAccountHolder === true) {\n throw new AXPMiddlewareAbortError(\n 'Cannot manually create tenant user as account holder. Use Transfer Ownership command.',\n {\n status: 400,\n code: 'TENANT_USER_ACCOUNT_HOLDER_MANUAL_CREATE',\n details: {\n entity: ctx.entityName,\n field: 'isAccountHolder',\n },\n }\n );\n }\n\n // Ensure isAccountHolder is explicitly set to false for new users\n if (ctx.data) {\n ctx.data.isAccountHolder = false;\n }\n }\n\n //#endregion\n\n //#region ---- UPDATE Operation ----\n\n if (ctx.op === 'update') {\n // Load existing record to check current state\n let existing: any;\n try {\n existing = await backend.getOne(ctx.entityName, ctx.id);\n } catch (error) {\n // If record doesn't exist, let it fail naturally in next()\n await next();\n return;\n }\n\n // Rule 2: Cannot manually toggle isAccountHolder flag\n if (\n ctx.data?.isAccountHolder !== undefined &&\n ctx.data.isAccountHolder !== existing.isAccountHolder\n ) {\n throw new AXPMiddlewareAbortError(\n 'Cannot manually change account holder status. Use Transfer Ownership command.',\n {\n status: 400,\n code: 'TENANT_USER_ACCOUNT_HOLDER_MANUAL_TOGGLE',\n details: {\n entity: ctx.entityName,\n id: ctx.id,\n currentValue: existing.isAccountHolder,\n attemptedValue: ctx.data.isAccountHolder,\n },\n }\n );\n }\n\n // Rule 3: Cannot deactivate account holder\n if (existing.isAccountHolder === true) {\n // Check if trying to deactivate (status change to inactive/disabled)\n if (ctx.data?.statusId && ctx.data.statusId !== 'active') {\n throw new AXPMiddlewareAbortError(\n 'Cannot deactivate account holder. Transfer ownership to another user first.',\n {\n status: 400,\n code: 'TENANT_USER_ACCOUNT_HOLDER_DEACTIVATE',\n details: {\n entity: ctx.entityName,\n id: ctx.id,\n tenantId: existing.tenantId,\n userId: existing.userId,\n },\n }\n );\n }\n\n // Prevent end date before current date for account holder\n if (ctx.data?.endDate) {\n const endDate = new Date(ctx.data.endDate);\n const now = new Date();\n if (endDate < now) {\n throw new AXPMiddlewareAbortError(\n 'Cannot set past end date for account holder. Transfer ownership first.',\n {\n status: 400,\n code: 'TENANT_USER_ACCOUNT_HOLDER_END_DATE',\n details: {\n entity: ctx.entityName,\n id: ctx.id,\n endDate: ctx.data.endDate,\n },\n }\n );\n }\n }\n }\n }\n\n //#endregion\n\n //#region ---- DELETE Operation ----\n\n if (ctx.op === 'delete') {\n // Load existing record to check if it's an account holder\n let existing: any;\n try {\n existing = await backend.getOne(ctx.entityName, ctx.id);\n } catch (error) {\n // If record doesn't exist, let it fail naturally in next()\n await next();\n return;\n }\n\n // Rule 4: Cannot delete account holder\n if (existing?.isAccountHolder === true) {\n throw new AXPMiddlewareAbortError(\n 'Cannot delete account holder. Transfer ownership to another user first.',\n {\n status: 400,\n code: 'TENANT_USER_ACCOUNT_HOLDER_DELETE',\n details: {\n entity: ctx.entityName,\n id: ctx.id,\n tenantId: existing.tenantId,\n userId: existing.userId,\n },\n }\n );\n }\n }\n\n //#endregion\n\n // Execute the operation if all validations passed\n await next();\n },\n};\n\n//#endregion\n\n","//#region ---- Middleware Exports ----\n\nexport { tenantUserAccountHolderMiddleware } from './tenant-user-account-holder.middleware';\n\n//#endregion\n\n","//#region ---- Imports ----\n\nimport {\n AXPFeatureDefinitionProvider,\n AXPFeatureDefinitionProviderContext,\n} from '@acorex-platform/framework-client/core';\n\n//#endregion\n\n//#region ---- Feature Definition Provider ----\n\n/**\n * Tenant Management Feature Definition Provider.\n * Provides feature definitions for the Tenant Management module.\n */\nexport class AXMTenantManagementFeatureDefinitionProvider implements AXPFeatureDefinitionProvider {\n async provide(context: AXPFeatureDefinitionProviderContext): Promise<void> {\n // Management feature removed - module name is used directly as feature key\n }\n}\n\n//#endregion\n\n","//#region ---- Imports ----\n\nimport {\n AXPPermissionDefinitionProvider,\n AXPPermissionDefinitionProviderContext,\n} from '@acorex-platform/framework-client/auth';\nimport {\n AXPCommonPermissionGroupKeys\n} from '@acorex-platform/module-common-client/contracts';\nimport {\n AXPApplicationsPlatformPermissionKeys\n} from '@acorex-platform/module-tenant-management-client/contracts';\n\nimport { Injectable } from '@angular/core';\n\n//#endregion\n\n//#region ---- Permission Definition Provider ----\n\n/**\n * Registers MaintainTenants under Applications & Platform.\n */\n@Injectable()\nexport class AXMTenantManagementPermissionDefinitionProvider implements AXPPermissionDefinitionProvider {\n async define(context: AXPPermissionDefinitionProviderContext): Promise<void> {\n const keys = AXPApplicationsPlatformPermissionKeys;\n const groups = AXPCommonPermissionGroupKeys;\n const P = '@common:applications-platform.permissions';\n const G = '@common:permission-groups';\n\n context.addGroup(groups.ApplicationsPlatform.Root, `${G}.applications-platform.title`, `${G}.applications-platform.description`, { order: 110 });\n\n context\n .addGroup(\n groups.ApplicationsPlatform.TenancyShell,\n `${G}.applications-platform-tenancy-shell.title`,\n `${G}.applications-platform-tenancy-shell.description`,\n { parent: groups.ApplicationsPlatform.Root, order: 20 },\n )\n .addPermission(keys.MaintainTenants, `${P}.maintain-tenants.title`, `${P}.maintain-tenants.description`, {\n modules: ['TenantManagement'],\n requiredFeatures: ['TenantManagement'],\n })\n .endPermission()\n .endGroup();\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPCommonMenuKeys } from '@acorex-platform/module-common-client/contracts';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex-platform/framework-client/common';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { inject } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/module-tenant-management-client/contracts';\nimport { AXMTenantManagementMenuKeys } from '@acorex-platform/module-tenant-management-client/contracts';\nimport { AXPApplicationsPlatformPermissionKeys } from '@acorex-platform/module-tenant-management-client/contracts';\n\n//#endregion\n\n//#region ---- Menu Provider ----\n\nexport class AXMTenantManagementModuleMenuProvider implements AXPMenuProvider {\n private readonly entityService = inject(AXPEntityService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const module = RootConfig.module;\n\n context.find(AXPCommonMenuKeys.Platform).addItems([\n {\n name: AXMTenantManagementMenuKeys.Tenants,\n text: `@${RootConfig.config.i18n}:tenants.entities.tenant.plural`,\n path: this.entityService.createPath(module.name, RootConfig.entities.tenant.name),\n icon: RootConfig.entities.tenant.icon,\n priority: 4,\n policy: {\n features: [module.name],\n permissions: [AXPApplicationsPlatformPermissionKeys.MaintainTenants],\n },\n },\n { name: `${AXMTenantManagementMenuKeys.Root}:divider`, text: '', type: 'break', priority: 5 },\n ]);\n }\n}\n\n//#endregion\n","import { AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '@acorex-platform/framework-client/common';\nimport { RootConfig } from '@acorex-platform/module-tenant-management-client/contracts';\n\nconst I18N = `@${RootConfig.config.i18n}:tenants.settings.tenant`;\n\nexport class AXMTenantSettingProvider implements AXPSettingDefinitionProvider {\n async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n context\n .addGroup(\n 'tenant',\n `${I18N}.group.nav-title`,\n `${I18N}.group.description`,\n RootConfig.module.icon,\n `${I18N}.group.title`,\n 25,\n )\n .addSection('general', `${I18N}.sections.general.title`, `${I18N}.sections.general.description`)\n // TODO: Add tenant-specific settings here when needed\n .endSection()\n .endGroup();\n }\n}\n","//#region ---- Imports ----\n\nimport { AXPSearchCommandProvider, createEntitySearchCommand } from '@acorex-platform/framework-client/common';\nimport { RootConfig } from '@acorex-platform/module-tenant-management-client/contracts';\n\n//#endregion\n\n//#region ---- Search Command Provider ----\n\nexport class AXMTenantSearchCommandProvider extends AXPSearchCommandProvider {\n commands = [\n createEntitySearchCommand({\n id: 'create-tenant',\n entityKey: `${RootConfig.module.name}.${RootConfig.entities.tenant.name}`,\n entityInfo: { name: RootConfig.entities.tenant.name, module: RootConfig.module.name, title: RootConfig.entities.tenant.title },\n titleKey: `@${RootConfig.config.i18n}:tenants.actions.create-tenant.title`,\n descriptionKey: `@${RootConfig.config.i18n}:tenants.actions.create-tenant.description`,\n icon: RootConfig.entities.tenant.icon,\n }),\n ];\n}\n\n//#endregion\n\n","import { Injectable } from '@angular/core';\nimport type { AXPContextDefinition, AXPContextDefinitionProvider } from '@acorex-platform/framework-client/core';\nimport { AXM_TENANT_CONTEXT_DEFINITIONS } from '@acorex-platform/module-tenant-management-contracts';\n\n//#region ---- Tenant context definitions ----\n\n@Injectable()\nexport class AXMTenantManagementContextDefinitionProvider implements AXPContextDefinitionProvider {\n async items(): Promise<AXPContextDefinition[]> {\n return AXM_TENANT_CONTEXT_DEFINITIONS;\n }\n}\n\n//#endregion\n","import { AXP_ENTITY_STORAGE_MIDDLEWARE } from '@acorex-platform/framework-client/layout/entity';\nimport { AXP_CONTEXT_DEFINITION_PROVIDER, AXP_FEATURE_DEFINITION_PROVIDER, AXP_MODULE_MANIFEST_PROVIDER } from '@acorex-platform/framework-client/core';\nimport { TenantManagementManifest } from './manifest';\nimport { AXP_STATUS_PROVIDERS, AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER, AXP_SEARCH_PROVIDER } from '@acorex-platform/framework-client/common';\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';\nimport { NgModule } from '@angular/core';\nimport { AXMTenantStatusProvider } from './features/tenant-status.provider';\nimport { tenantUserAccountHolderMiddleware } from './middlewares';\nimport { AXMTenantManagementFeatureDefinitionProvider } from './feature-definition.provider';\nimport { AXMTenantManagementPermissionDefinitionProvider } from './permission-definition.provider';\nimport { AXMTenantManagementModuleMenuProvider } from './menu.provider';\n\nimport { AXMTenantSettingProvider } from './setting.provider';\nimport { AXMTenantSearchCommandProvider } from './search-command.provider';\nimport { AXMTenantManagementContextDefinitionProvider } from './context-definition.provider';\n// Entity Modules\n\n@NgModule({\n imports: [\n // Entity Modules\n ],\n exports: [],\n declarations: [],\n providers: [\n // Module-specific providers (not part of manifest system)\n {\n provide: AXP_STATUS_PROVIDERS,\n useClass: AXMTenantStatusProvider,\n multi: true,\n },\n {\n provide: AXP_ENTITY_STORAGE_MIDDLEWARE,\n useValue: tenantUserAccountHolderMiddleware,\n multi: true,\n },\n // Module Manifest Provider\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: TenantManagementManifest,\n multi: true,\n },\n // Provider references (now using tokens)\n {\n provide: AXP_FEATURE_DEFINITION_PROVIDER,\n useClass: AXMTenantManagementFeatureDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n useClass: AXMTenantManagementPermissionDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMTenantManagementModuleMenuProvider,\n multi: true,\n },\n \n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXMTenantSettingProvider,\n multi: true,\n },\n {\n provide: AXP_SEARCH_PROVIDER,\n useClass: AXMTenantSearchCommandProvider,\n multi: true,\n },\n {\n provide: AXP_CONTEXT_DEFINITION_PROVIDER,\n useClass: AXMTenantManagementContextDefinitionProvider,\n multi: true,\n },\n ],\n})\nexport class AXMTenantManagementModule {\n constructor() { }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-tenant-management-client.mjs","sources":["../../../../libs/modules/tenant-management/client/src/lib/manifest.ts","../../../../libs/modules/tenant-management/client/src/lib/features/tenant-status.provider.ts","../../../../libs/modules/tenant-management/client/src/lib/middlewares/tenant-user-account-holder.middleware.ts","../../../../libs/modules/tenant-management/client/src/lib/middlewares/index.ts","../../../../libs/modules/tenant-management/client/src/lib/feature-definition.provider.ts","../../../../libs/modules/tenant-management/client/src/lib/permission-definition.provider.ts","../../../../libs/modules/tenant-management/client/src/lib/menu.provider.ts","../../../../libs/modules/tenant-management/client/src/lib/setting.provider.ts","../../../../libs/modules/tenant-management/client/src/lib/search-command.provider.ts","../../../../libs/modules/tenant-management/client/src/lib/context-definition.provider.ts","../../../../libs/modules/tenant-management/client/src/lib/tenant-management.module.ts","../../../../libs/modules/tenant-management/client/src/acorex-platform-module-tenant-management-client.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex-platform/framework-client/core';\nimport { RootConfig } from '@acorex-platform/module-tenant-management-client/contracts';\n\n//#endregion\n\n//#region ---- Manifest Definition ----\n\n/**\n * Tenant Management Module Manifest.\n * Defines module metadata, features, and provider references.\n */\nexport const TenantManagementManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n type: 'platform',\n domain: 'platform',\n required: true,\n\n // Module dependencies (optional)\n};\n\n//#endregion\n\n","//#region ---- Imports ----\n\nimport { AXPStatusProvider, AXPStatusTransition, AXPSystemStatusType, systemStatusToDefinition } from '@acorex-platform/framework-shared/core';\n\n//#endregion\n\n//#region ---- Tenant Status Provider ----\n\n/**\n * Tenant status provider defining lifecycle states for tenants.\n * Used by the status plugin to manage tenant status transitions and metadata.\n */\nexport class AXMTenantStatusProvider extends AXPStatusProvider {\n readonly key = 'tenant-management.status.tenant';\n\n readonly defaultStatus = AXPSystemStatusType.Active;\n\n readonly statuses = [\n systemStatusToDefinition(AXPSystemStatusType.Active, {\n title: '@tenant-management:tenants.states.active',\n generateView: true,\n }),\n systemStatusToDefinition(AXPSystemStatusType.Inactive, {\n title: '@tenant-management:tenants.states.inactive',\n generateView: true,\n }),\n systemStatusToDefinition(AXPSystemStatusType.Suspended, {\n title: '@tenant-management:tenants.states.suspended',\n generateView: true,\n }),\n systemStatusToDefinition(AXPSystemStatusType.Pending, {\n title: '@tenant-management:tenants.states.pending',\n generateView: true,\n }),\n ];\n\n readonly transitions: AXPStatusTransition[] = [\n {\n from: AXPSystemStatusType.Pending,\n to: AXPSystemStatusType.Active,\n title: '@tenant-management:tenants.transitions.activate',\n },\n {\n from: AXPSystemStatusType.Active,\n to: AXPSystemStatusType.Inactive,\n title: '@tenant-management:tenants.transitions.deactivate',\n },\n {\n from: AXPSystemStatusType.Active,\n to: AXPSystemStatusType.Suspended,\n title: '@tenant-management:tenants.transitions.suspend',\n },\n {\n from: AXPSystemStatusType.Suspended,\n to: AXPSystemStatusType.Active,\n title: '@tenant-management:tenants.transitions.resume',\n },\n {\n from: AXPSystemStatusType.Inactive,\n to: AXPSystemStatusType.Active,\n title: '@tenant-management:tenants.transitions.activate',\n },\n ];\n}\n\n//#endregion\n\n","//#region ---- Imports ----\n\nimport { inject } from '@angular/core';\nimport {\n AXPEntityStorageMiddleware,\n AXPMiddlewareAbortError,\n} from '@acorex-platform/framework-client/layout/entity';\nimport { RootConfig } from '@acorex-platform/module-tenant-management-client/contracts';\n\n//#endregion\n\n//#region ---- Tenant User Account Holder Middleware ----\n\n/**\n * Tenant User Account Holder Enforcement Middleware\n *\n * Enforces business rules for the isAccountHolder flag:\n * 1. CREATE: Prevents manual creation with isAccountHolder=true (must use TransferOwnership command)\n * 2. UPDATE:\n * - Prevents deactivating account holder\n * - Prevents manually toggling isAccountHolder flag\n * 3. DELETE: Prevents deleting account holder\n *\n * Runs on: TenantUser entity operations\n */\nexport const tenantUserAccountHolderMiddleware: AXPEntityStorageMiddleware = {\n target: {\n ops: ['create', 'update', 'delete'],\n order: 10, // Early enforcement before other business logic\n },\n\n execute: async (ctx, next) => {\n const entityFullName = `${RootConfig.module.name}.${RootConfig.entities.tenantUser.name}`;\n\n // Only apply to TenantUser entity\n if (ctx.entityName !== entityFullName) {\n await next();\n return;\n }\n\n const backend = ctx.entities;\n\n //#region ---- CREATE Operation ----\n\n if (ctx.op === 'create') {\n // Rule 1: Cannot manually create account holder\n // Must use TransferOwnership command instead\n if (ctx.data?.isAccountHolder === true) {\n throw new AXPMiddlewareAbortError(\n 'Cannot manually create tenant user as account holder. Use Transfer Ownership command.',\n {\n status: 400,\n code: 'TENANT_USER_ACCOUNT_HOLDER_MANUAL_CREATE',\n details: {\n entity: ctx.entityName,\n field: 'isAccountHolder',\n },\n }\n );\n }\n\n // Ensure isAccountHolder is explicitly set to false for new users\n if (ctx.data) {\n ctx.data.isAccountHolder = false;\n }\n }\n\n //#endregion\n\n //#region ---- UPDATE Operation ----\n\n if (ctx.op === 'update') {\n // Load existing record to check current state\n let existing: any;\n try {\n existing = await backend.getOne(ctx.entityName, ctx.id);\n } catch (error) {\n // If record doesn't exist, let it fail naturally in next()\n await next();\n return;\n }\n\n // Rule 2: Cannot manually toggle isAccountHolder flag\n if (\n ctx.data?.isAccountHolder !== undefined &&\n ctx.data.isAccountHolder !== existing.isAccountHolder\n ) {\n throw new AXPMiddlewareAbortError(\n 'Cannot manually change account holder status. Use Transfer Ownership command.',\n {\n status: 400,\n code: 'TENANT_USER_ACCOUNT_HOLDER_MANUAL_TOGGLE',\n details: {\n entity: ctx.entityName,\n id: ctx.id,\n currentValue: existing.isAccountHolder,\n attemptedValue: ctx.data.isAccountHolder,\n },\n }\n );\n }\n\n // Rule 3: Cannot deactivate account holder\n if (existing.isAccountHolder === true) {\n // Check if trying to deactivate (status change to inactive/disabled)\n if (ctx.data?.statusId && ctx.data.statusId !== 'active') {\n throw new AXPMiddlewareAbortError(\n 'Cannot deactivate account holder. Transfer ownership to another user first.',\n {\n status: 400,\n code: 'TENANT_USER_ACCOUNT_HOLDER_DEACTIVATE',\n details: {\n entity: ctx.entityName,\n id: ctx.id,\n tenantId: existing.tenantId,\n userId: existing.userId,\n },\n }\n );\n }\n\n // Prevent end date before current date for account holder\n if (ctx.data?.endDate) {\n const endDate = new Date(ctx.data.endDate);\n const now = new Date();\n if (endDate < now) {\n throw new AXPMiddlewareAbortError(\n 'Cannot set past end date for account holder. Transfer ownership first.',\n {\n status: 400,\n code: 'TENANT_USER_ACCOUNT_HOLDER_END_DATE',\n details: {\n entity: ctx.entityName,\n id: ctx.id,\n endDate: ctx.data.endDate,\n },\n }\n );\n }\n }\n }\n }\n\n //#endregion\n\n //#region ---- DELETE Operation ----\n\n if (ctx.op === 'delete') {\n // Load existing record to check if it's an account holder\n let existing: any;\n try {\n existing = await backend.getOne(ctx.entityName, ctx.id);\n } catch (error) {\n // If record doesn't exist, let it fail naturally in next()\n await next();\n return;\n }\n\n // Rule 4: Cannot delete account holder\n if (existing?.isAccountHolder === true) {\n throw new AXPMiddlewareAbortError(\n 'Cannot delete account holder. Transfer ownership to another user first.',\n {\n status: 400,\n code: 'TENANT_USER_ACCOUNT_HOLDER_DELETE',\n details: {\n entity: ctx.entityName,\n id: ctx.id,\n tenantId: existing.tenantId,\n userId: existing.userId,\n },\n }\n );\n }\n }\n\n //#endregion\n\n // Execute the operation if all validations passed\n await next();\n },\n};\n\n//#endregion\n\n","//#region ---- Middleware Exports ----\n\nexport { tenantUserAccountHolderMiddleware } from './tenant-user-account-holder.middleware';\n\n//#endregion\n\n","//#region ---- Imports ----\n\nimport {\n AXPFeatureDefinitionProvider,\n AXPFeatureDefinitionProviderContext,\n} from '@acorex-platform/framework-client/core';\n\n//#endregion\n\n//#region ---- Feature Definition Provider ----\n\n/**\n * Tenant Management Feature Definition Provider.\n * Provides feature definitions for the Tenant Management module.\n */\nexport class AXMTenantManagementFeatureDefinitionProvider implements AXPFeatureDefinitionProvider {\n async provide(context: AXPFeatureDefinitionProviderContext): Promise<void> {\n // Management feature removed - module name is used directly as feature key\n }\n}\n\n//#endregion\n\n","//#region ---- Imports ----\n\nimport {\n AXPPermissionDefinitionProvider,\n AXPPermissionDefinitionProviderContext,\n} from '@acorex-platform/framework-client/auth';\nimport {\n AXPCommonPermissionGroupKeys\n} from '@acorex-platform/module-common-client/contracts';\nimport {\n AXPApplicationsPlatformPermissionKeys\n} from '@acorex-platform/module-tenant-management-client/contracts';\n\nimport { Injectable } from '@angular/core';\n\n//#endregion\n\n//#region ---- Permission Definition Provider ----\n\n/**\n * Registers MaintainTenants under Applications & Platform.\n */\n@Injectable()\nexport class AXMTenantManagementPermissionDefinitionProvider implements AXPPermissionDefinitionProvider {\n async define(context: AXPPermissionDefinitionProviderContext): Promise<void> {\n const keys = AXPApplicationsPlatformPermissionKeys;\n const groups = AXPCommonPermissionGroupKeys;\n const P = '@common:applications-platform.permissions';\n const G = '@common:permission-groups';\n\n context.addGroup(groups.ApplicationsPlatform.Root, `${G}.applications-platform.title`, `${G}.applications-platform.description`, { order: 110 });\n\n context\n .addGroup(\n groups.ApplicationsPlatform.TenancyShell,\n `${G}.applications-platform-tenancy-shell.title`,\n `${G}.applications-platform-tenancy-shell.description`,\n { parent: groups.ApplicationsPlatform.Root, order: 20 },\n )\n .addPermission(keys.MaintainTenants, `${P}.maintain-tenants.title`, `${P}.maintain-tenants.description`, {\n modules: ['TenantManagement'],\n requiredFeatures: ['TenantManagement'],\n })\n .endPermission()\n .endGroup();\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPCommonMenuKeys } from '@acorex-platform/module-common-client/contracts';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex-platform/framework-client/common';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { inject } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/module-tenant-management-client/contracts';\nimport { AXMTenantManagementMenuKeys } from '@acorex-platform/module-tenant-management-client/contracts';\nimport { AXPApplicationsPlatformPermissionKeys } from '@acorex-platform/module-tenant-management-client/contracts';\n\n//#endregion\n\n//#region ---- Menu Provider ----\n\nexport class AXMTenantManagementModuleMenuProvider implements AXPMenuProvider {\n private readonly entityService = inject(AXPEntityService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const module = RootConfig.module;\n\n context.find(AXPCommonMenuKeys.Platform).addItems([\n {\n name: AXMTenantManagementMenuKeys.Tenants,\n text: `@${RootConfig.config.i18n}:tenants.entities.tenant.plural`,\n path: this.entityService.createPath(module.name, RootConfig.entities.tenant.name),\n icon: RootConfig.entities.tenant.icon,\n priority: 4,\n policy: {\n features: [module.name],\n permissions: [AXPApplicationsPlatformPermissionKeys.MaintainTenants],\n },\n },\n { name: `${AXMTenantManagementMenuKeys.Root}:divider`, text: '', type: 'break', priority: 5 },\n ]);\n }\n}\n\n//#endregion\n","import { AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '@acorex-platform/framework-client/common';\nimport { RootConfig } from '@acorex-platform/module-tenant-management-client/contracts';\n\nconst I18N = `@${RootConfig.config.i18n}:tenants.settings.tenant`;\n\nexport class AXMTenantSettingProvider implements AXPSettingDefinitionProvider {\n async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n context\n .addGroup(\n 'tenant',\n `${I18N}.group.nav-title`,\n `${I18N}.group.description`,\n RootConfig.module.icon,\n `${I18N}.group.title`,\n 25,\n )\n .addSection('general', `${I18N}.sections.general.title`, `${I18N}.sections.general.description`)\n // TODO: Add tenant-specific settings here when needed\n .endSection()\n .endGroup();\n }\n}\n","//#region ---- Imports ----\n\nimport { AXPSearchCommandProvider, createEntitySearchCommand } from '@acorex-platform/framework-client/common';\nimport { RootConfig } from '@acorex-platform/module-tenant-management-client/contracts';\n\n//#endregion\n\n//#region ---- Search Command Provider ----\n\nexport class AXMTenantSearchCommandProvider extends AXPSearchCommandProvider {\n commands = [\n createEntitySearchCommand({\n id: 'create-tenant',\n entityKey: `${RootConfig.module.name}.${RootConfig.entities.tenant.name}`,\n entityInfo: { name: RootConfig.entities.tenant.name, module: RootConfig.module.name, title: RootConfig.entities.tenant.title },\n titleKey: `@${RootConfig.config.i18n}:tenants.actions.create-tenant.title`,\n descriptionKey: `@${RootConfig.config.i18n}:tenants.actions.create-tenant.description`,\n icon: RootConfig.entities.tenant.icon,\n }),\n ];\n}\n\n//#endregion\n\n","import { Injectable } from '@angular/core';\nimport type { AXPContextDefinition, AXPContextDefinitionProvider } from '@acorex-platform/framework-client/core';\nimport { AXM_TENANT_CONTEXT_DEFINITIONS } from '@acorex-platform/module-tenant-management-client/contracts';\n\n//#region ---- Tenant context definitions ----\n\n@Injectable()\nexport class AXMTenantManagementContextDefinitionProvider implements AXPContextDefinitionProvider {\n async items(): Promise<AXPContextDefinition[]> {\n return AXM_TENANT_CONTEXT_DEFINITIONS;\n }\n}\n\n//#endregion\n","import { AXP_ENTITY_STORAGE_MIDDLEWARE } from '@acorex-platform/framework-client/layout/entity';\nimport { AXP_CONTEXT_DEFINITION_PROVIDER, AXP_FEATURE_DEFINITION_PROVIDER, AXP_MODULE_MANIFEST_PROVIDER } from '@acorex-platform/framework-client/core';\nimport { TenantManagementManifest } from './manifest';\nimport { AXP_STATUS_PROVIDERS, AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER, AXP_SEARCH_PROVIDER } from '@acorex-platform/framework-client/common';\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';\nimport { NgModule } from '@angular/core';\nimport { AXMTenantStatusProvider } from './features/tenant-status.provider';\nimport { tenantUserAccountHolderMiddleware } from './middlewares';\nimport { AXMTenantManagementFeatureDefinitionProvider } from './feature-definition.provider';\nimport { AXMTenantManagementPermissionDefinitionProvider } from './permission-definition.provider';\nimport { AXMTenantManagementModuleMenuProvider } from './menu.provider';\n\nimport { AXMTenantSettingProvider } from './setting.provider';\nimport { AXMTenantSearchCommandProvider } from './search-command.provider';\nimport { AXMTenantManagementContextDefinitionProvider } from './context-definition.provider';\n// Entity Modules\n\n@NgModule({\n imports: [\n // Entity Modules\n ],\n exports: [],\n declarations: [],\n providers: [\n // Module-specific providers (not part of manifest system)\n {\n provide: AXP_STATUS_PROVIDERS,\n useClass: AXMTenantStatusProvider,\n multi: true,\n },\n {\n provide: AXP_ENTITY_STORAGE_MIDDLEWARE,\n useValue: tenantUserAccountHolderMiddleware,\n multi: true,\n },\n // Module Manifest Provider\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: TenantManagementManifest,\n multi: true,\n },\n // Provider references (now using tokens)\n {\n provide: AXP_FEATURE_DEFINITION_PROVIDER,\n useClass: AXMTenantManagementFeatureDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n useClass: AXMTenantManagementPermissionDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMTenantManagementModuleMenuProvider,\n multi: true,\n },\n \n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXMTenantSettingProvider,\n multi: true,\n },\n {\n provide: AXP_SEARCH_PROVIDER,\n useClass: AXMTenantSearchCommandProvider,\n multi: true,\n },\n {\n provide: AXP_CONTEXT_DEFINITION_PROVIDER,\n useClass: AXMTenantManagementContextDefinitionProvider,\n multi: true,\n },\n ],\n})\nexport class AXMTenantManagementModule {\n constructor() { }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;AAAA;AAKA;AAEA;AAEA;;;AAGG;AACI,MAAM,wBAAwB,GAAsB;AACzD,IAAA,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAC5B,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK;AAC9B,IAAA,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAC5B,IAAA,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAC5B,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,MAAM,EAAE,UAAU;AAClB,IAAA,QAAQ,EAAE,IAAI;;CAGf;AAED;;AC1BA;AAIA;AAEA;AAEA;;;AAGG;AACG,MAAO,uBAAwB,SAAQ,iBAAiB,CAAA;AAA9D,IAAA,WAAA,GAAA;;QACa,IAAA,CAAA,GAAG,GAAG,iCAAiC;AAEvC,QAAA,IAAA,CAAA,aAAa,GAAG,mBAAmB,CAAC,MAAM;AAE1C,QAAA,IAAA,CAAA,QAAQ,GAAG;AAChB,YAAA,wBAAwB,CAAC,mBAAmB,CAAC,MAAM,EAAE;AACjD,gBAAA,KAAK,EAAE,0CAA0C;AACjD,gBAAA,YAAY,EAAE,IAAI;aACrB,CAAC;AACF,YAAA,wBAAwB,CAAC,mBAAmB,CAAC,QAAQ,EAAE;AACnD,gBAAA,KAAK,EAAE,4CAA4C;AACnD,gBAAA,YAAY,EAAE,IAAI;aACrB,CAAC;AACF,YAAA,wBAAwB,CAAC,mBAAmB,CAAC,SAAS,EAAE;AACpD,gBAAA,KAAK,EAAE,6CAA6C;AACpD,gBAAA,YAAY,EAAE,IAAI;aACrB,CAAC;AACF,YAAA,wBAAwB,CAAC,mBAAmB,CAAC,OAAO,EAAE;AAClD,gBAAA,KAAK,EAAE,2CAA2C;AAClD,gBAAA,YAAY,EAAE,IAAI;aACrB,CAAC;SACL;AAEQ,QAAA,IAAA,CAAA,WAAW,GAA0B;AAC1C,YAAA;gBACI,IAAI,EAAE,mBAAmB,CAAC,OAAO;gBACjC,EAAE,EAAE,mBAAmB,CAAC,MAAM;AAC9B,gBAAA,KAAK,EAAE,iDAAiD;AAC3D,aAAA;AACD,YAAA;gBACI,IAAI,EAAE,mBAAmB,CAAC,MAAM;gBAChC,EAAE,EAAE,mBAAmB,CAAC,QAAQ;AAChC,gBAAA,KAAK,EAAE,mDAAmD;AAC7D,aAAA;AACD,YAAA;gBACI,IAAI,EAAE,mBAAmB,CAAC,MAAM;gBAChC,EAAE,EAAE,mBAAmB,CAAC,SAAS;AACjC,gBAAA,KAAK,EAAE,gDAAgD;AAC1D,aAAA;AACD,YAAA;gBACI,IAAI,EAAE,mBAAmB,CAAC,SAAS;gBACnC,EAAE,EAAE,mBAAmB,CAAC,MAAM;AAC9B,gBAAA,KAAK,EAAE,+CAA+C;AACzD,aAAA;AACD,YAAA;gBACI,IAAI,EAAE,mBAAmB,CAAC,QAAQ;gBAClC,EAAE,EAAE,mBAAmB,CAAC,MAAM;AAC9B,gBAAA,KAAK,EAAE,iDAAiD;AAC3D,aAAA;SACJ;IACL;AAAC;AAED;;ACjEA;AASA;AAEA;AAEA;;;;;;;;;;;AAWG;AACI,MAAM,iCAAiC,GAA+B;AAC3E,IAAA,MAAM,EAAE;AACN,QAAA,GAAG,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;QACnC,KAAK,EAAE,EAAE;AACV,KAAA;AAED,IAAA,OAAO,EAAE,OAAO,GAAG,EAAE,IAAI,KAAI;AAC3B,QAAA,MAAM,cAAc,GAAG,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE;;AAGzF,QAAA,IAAI,GAAG,CAAC,UAAU,KAAK,cAAc,EAAE;YACrC,MAAM,IAAI,EAAE;YACZ;QACF;AAEA,QAAA,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ;;AAI5B,QAAA,IAAI,GAAG,CAAC,EAAE,KAAK,QAAQ,EAAE;;;YAGvB,IAAI,GAAG,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,EAAE;AACtC,gBAAA,MAAM,IAAI,uBAAuB,CAC/B,uFAAuF,EACvF;AACE,oBAAA,MAAM,EAAE,GAAG;AACX,oBAAA,IAAI,EAAE,0CAA0C;AAChD,oBAAA,OAAO,EAAE;wBACP,MAAM,EAAE,GAAG,CAAC,UAAU;AACtB,wBAAA,KAAK,EAAE,iBAAiB;AACzB,qBAAA;AACF,iBAAA,CACF;YACH;;AAGA,YAAA,IAAI,GAAG,CAAC,IAAI,EAAE;AACZ,gBAAA,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,KAAK;YAClC;QACF;;;AAMA,QAAA,IAAI,GAAG,CAAC,EAAE,KAAK,QAAQ,EAAE;;AAEvB,YAAA,IAAI,QAAa;AACjB,YAAA,IAAI;AACF,gBAAA,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC;YACzD;YAAE,OAAO,KAAK,EAAE;;gBAEd,MAAM,IAAI,EAAE;gBACZ;YACF;;AAGA,YAAA,IACE,GAAG,CAAC,IAAI,EAAE,eAAe,KAAK,SAAS;gBACvC,GAAG,CAAC,IAAI,CAAC,eAAe,KAAK,QAAQ,CAAC,eAAe,EACrD;AACA,gBAAA,MAAM,IAAI,uBAAuB,CAC/B,+EAA+E,EAC/E;AACE,oBAAA,MAAM,EAAE,GAAG;AACX,oBAAA,IAAI,EAAE,0CAA0C;AAChD,oBAAA,OAAO,EAAE;wBACP,MAAM,EAAE,GAAG,CAAC,UAAU;wBACtB,EAAE,EAAE,GAAG,CAAC,EAAE;wBACV,YAAY,EAAE,QAAQ,CAAC,eAAe;AACtC,wBAAA,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,eAAe;AACzC,qBAAA;AACF,iBAAA,CACF;YACH;;AAGA,YAAA,IAAI,QAAQ,CAAC,eAAe,KAAK,IAAI,EAAE;;AAErC,gBAAA,IAAI,GAAG,CAAC,IAAI,EAAE,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACxD,oBAAA,MAAM,IAAI,uBAAuB,CAC/B,6EAA6E,EAC7E;AACE,wBAAA,MAAM,EAAE,GAAG;AACX,wBAAA,IAAI,EAAE,uCAAuC;AAC7C,wBAAA,OAAO,EAAE;4BACP,MAAM,EAAE,GAAG,CAAC,UAAU;4BACtB,EAAE,EAAE,GAAG,CAAC,EAAE;4BACV,QAAQ,EAAE,QAAQ,CAAC,QAAQ;4BAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;AACxB,yBAAA;AACF,qBAAA,CACF;gBACH;;AAGA,gBAAA,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE;oBACrB,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AAC1C,oBAAA,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE;AACtB,oBAAA,IAAI,OAAO,GAAG,GAAG,EAAE;AACjB,wBAAA,MAAM,IAAI,uBAAuB,CAC/B,wEAAwE,EACxE;AACE,4BAAA,MAAM,EAAE,GAAG;AACX,4BAAA,IAAI,EAAE,qCAAqC;AAC3C,4BAAA,OAAO,EAAE;gCACP,MAAM,EAAE,GAAG,CAAC,UAAU;gCACtB,EAAE,EAAE,GAAG,CAAC,EAAE;AACV,gCAAA,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO;AAC1B,6BAAA;AACF,yBAAA,CACF;oBACH;gBACF;YACF;QACF;;;AAMA,QAAA,IAAI,GAAG,CAAC,EAAE,KAAK,QAAQ,EAAE;;AAEvB,YAAA,IAAI,QAAa;AACjB,YAAA,IAAI;AACF,gBAAA,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC;YACzD;YAAE,OAAO,KAAK,EAAE;;gBAEd,MAAM,IAAI,EAAE;gBACZ;YACF;;AAGA,YAAA,IAAI,QAAQ,EAAE,eAAe,KAAK,IAAI,EAAE;AACtC,gBAAA,MAAM,IAAI,uBAAuB,CAC/B,yEAAyE,EACzE;AACE,oBAAA,MAAM,EAAE,GAAG;AACX,oBAAA,IAAI,EAAE,mCAAmC;AACzC,oBAAA,OAAO,EAAE;wBACP,MAAM,EAAE,GAAG,CAAC,UAAU;wBACtB,EAAE,EAAE,GAAG,CAAC,EAAE;wBACV,QAAQ,EAAE,QAAQ,CAAC,QAAQ;wBAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;AACxB,qBAAA;AACF,iBAAA,CACF;YACH;QACF;;;QAKA,MAAM,IAAI,EAAE;IACd,CAAC;CACF;AAED;;ACvLA;AAIA;;ACJA;AAOA;AAEA;AAEA;;;AAGG;MACU,4CAA4C,CAAA;IACrD,MAAM,OAAO,CAAC,OAA4C,EAAA;;IAE1D;AACH;AAED;;ACNA;AAEA;AAEA;;AAEG;MAEU,+CAA+C,CAAA;IAC1D,MAAM,MAAM,CAAC,OAA+C,EAAA;QAC1D,MAAM,IAAI,GAAG,qCAAqC;QAClD,MAAM,MAAM,GAAG,4BAA4B;QAC3C,MAAM,CAAC,GAAG,2CAA2C;QACrD,MAAM,CAAC,GAAG,2BAA2B;QAErC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAA,EAAG,CAAC,8BAA8B,EAAE,CAAA,EAAG,CAAC,CAAA,kCAAA,CAAoC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QAEhJ;AACG,aAAA,QAAQ,CACP,MAAM,CAAC,oBAAoB,CAAC,YAAY,EACxC,CAAA,EAAG,CAAC,CAAA,0CAAA,CAA4C,EAChD,CAAA,EAAG,CAAC,CAAA,gDAAA,CAAkD,EACtD,EAAE,MAAM,EAAE,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;AAExD,aAAA,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,CAAA,EAAG,CAAC,CAAA,uBAAA,CAAyB,EAAE,CAAA,EAAG,CAAC,CAAA,6BAAA,CAA+B,EAAE;YACvG,OAAO,EAAE,CAAC,kBAAkB,CAAC;YAC7B,gBAAgB,EAAE,CAAC,kBAAkB,CAAC;SACvC;AACA,aAAA,aAAa;AACb,aAAA,QAAQ,EAAE;IACf;8GAtBW,+CAA+C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA/C,+CAA+C,EAAA,CAAA,CAAA;;2FAA/C,+CAA+C,EAAA,UAAA,EAAA,CAAA;kBAD3D;;;ACtBD;AAUA;AAEA;MAEa,qCAAqC,CAAA;AAAlD,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAoB3D;IAlBE,MAAM,OAAO,CAAC,OAA+B,EAAA;AAC3C,QAAA,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM;QAEhC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;AAChD,YAAA;gBACE,IAAI,EAAE,2BAA2B,CAAC,OAAO;AACzC,gBAAA,IAAI,EAAE,CAAA,CAAA,EAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,+BAAA,CAAiC;AACjE,gBAAA,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;AACjF,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI;AACrC,gBAAA,QAAQ,EAAE,CAAC;AACX,gBAAA,MAAM,EAAE;AACN,oBAAA,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;AACvB,oBAAA,WAAW,EAAE,CAAC,qCAAqC,CAAC,eAAe,CAAC;AACrE,iBAAA;AACF,aAAA;AACD,YAAA,EAAE,IAAI,EAAE,CAAA,EAAG,2BAA2B,CAAC,IAAI,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE;AAC9F,SAAA,CAAC;IACJ;AACD;AAED;;AClCA,MAAM,IAAI,GAAG,CAAA,CAAA,EAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,wBAAA,CAA0B;MAEpD,wBAAwB,CAAA;IACnC,MAAM,OAAO,CAAC,OAA4C,EAAA;QACxD;aACG,QAAQ,CACP,QAAQ,EACR,CAAA,EAAG,IAAI,CAAA,gBAAA,CAAkB,EACzB,CAAA,EAAG,IAAI,CAAA,kBAAA,CAAoB,EAC3B,UAAU,CAAC,MAAM,CAAC,IAAI,EACtB,GAAG,IAAI,CAAA,YAAA,CAAc,EACrB,EAAE;aAEH,UAAU,CAAC,SAAS,EAAE,CAAA,EAAG,IAAI,yBAAyB,EAAE,CAAA,EAAG,IAAI,CAAA,6BAAA,CAA+B;;AAE9F,aAAA,UAAU;AACV,aAAA,QAAQ,EAAE;IACf;AACD;;ACrBD;AAKA;AAEA;AAEM,MAAO,8BAA+B,SAAQ,wBAAwB,CAAA;AAA5E,IAAA,WAAA,GAAA;;AACE,QAAA,IAAA,CAAA,QAAQ,GAAG;AACT,YAAA,yBAAyB,CAAC;AACxB,gBAAA,EAAE,EAAE,eAAe;AACnB,gBAAA,SAAS,EAAE,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAA,CAAE;AACzE,gBAAA,UAAU,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE;AAC9H,gBAAA,QAAQ,EAAE,CAAA,CAAA,EAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,oCAAA,CAAsC;AAC1E,gBAAA,cAAc,EAAE,CAAA,CAAA,EAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,0CAAA,CAA4C;AACtF,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI;aACtC,CAAC;SACH;IACH;AAAC;AAED;;AClBA;MAGa,4CAA4C,CAAA;AACvD,IAAA,MAAM,KAAK,GAAA;AACT,QAAA,OAAO,8BAA8B;IACvC;8GAHW,4CAA4C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA5C,4CAA4C,EAAA,CAAA,CAAA;;2FAA5C,4CAA4C,EAAA,UAAA,EAAA,CAAA;kBADxD;;;ACSD;MA4Da,yBAAyB,CAAA;AACpC,IAAA,WAAA,GAAA,EAAgB;8GADL,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAzB,yBAAyB,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,EAAA,SAAA,EApDzB;;AAET,YAAA;AACE,gBAAA,OAAO,EAAE,oBAAoB;AAC7B,gBAAA,QAAQ,EAAE,uBAAuB;AACjC,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,6BAA6B;AACtC,gBAAA,QAAQ,EAAE,iCAAiC;AAC3C,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;;AAED,YAAA;AACE,gBAAA,OAAO,EAAE,4BAA4B;AACrC,gBAAA,QAAQ,EAAE,wBAAwB;AAClC,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;;AAED,YAAA;AACE,gBAAA,OAAO,EAAE,+BAA+B;AACxC,gBAAA,QAAQ,EAAE,4CAA4C;AACtD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,kCAAkC;AAC3C,gBAAA,QAAQ,EAAE,+CAA+C;AACzD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,QAAQ,EAAE,qCAAqC;AAC/C,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AAED,YAAA;AACE,gBAAA,OAAO,EAAE,+BAA+B;AACxC,gBAAA,QAAQ,EAAE,wBAAwB;AAClC,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,mBAAmB;AAC5B,gBAAA,QAAQ,EAAE,8BAA8B;AACxC,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,+BAA+B;AACxC,gBAAA,QAAQ,EAAE,4CAA4C;AACtD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,CAAA,CAAA;;2FAEU,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBA1DrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;;AAER,qBAAA;AACD,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,SAAS,EAAE;;AAET,wBAAA;AACE,4BAAA,OAAO,EAAE,oBAAoB;AAC7B,4BAAA,QAAQ,EAAE,uBAAuB;AACjC,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,6BAA6B;AACtC,4BAAA,QAAQ,EAAE,iCAAiC;AAC3C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;;AAED,wBAAA;AACE,4BAAA,OAAO,EAAE,4BAA4B;AACrC,4BAAA,QAAQ,EAAE,wBAAwB;AAClC,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;;AAED,wBAAA;AACE,4BAAA,OAAO,EAAE,+BAA+B;AACxC,4BAAA,QAAQ,EAAE,4CAA4C;AACtD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,kCAAkC;AAC3C,4BAAA,QAAQ,EAAE,+CAA+C;AACzD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,QAAQ,EAAE,qCAAqC;AAC/C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AAED,wBAAA;AACE,4BAAA,OAAO,EAAE,+BAA+B;AACxC,4BAAA,QAAQ,EAAE,wBAAwB;AAClC,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,mBAAmB;AAC5B,4BAAA,QAAQ,EAAE,8BAA8B;AACxC,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,+BAA+B;AACxC,4BAAA,QAAQ,EAAE,4CAA4C;AACtD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA;AACF,iBAAA;;;AC1ED;;AAEG;;;;"}
|