@acorex/connectivity 21.0.0-next.3 → 21.0.0-next.7
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-connectivity-mock-get-application-versions-chart-data.query-C3eQfF0A.mjs +115 -0
- package/fesm2022/acorex-connectivity-mock-get-application-versions-chart-data.query-C3eQfF0A.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-mock-get-application-versions-timeline.query-CLzDz9ob.mjs +163 -0
- package/fesm2022/acorex-connectivity-mock-get-application-versions-timeline.query-CLzDz9ob.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-mock-get-product-chart-data.query-DDVVFeYN.mjs +97 -0
- package/fesm2022/acorex-connectivity-mock-get-product-chart-data.query-DDVVFeYN.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-mock-get-product-list.query-ChtYlSTt.mjs +157 -0
- package/fesm2022/acorex-connectivity-mock-get-product-list.query-ChtYlSTt.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-mock-get-subscriptions-chart-data.query-HxX_bCT8.mjs +56 -0
- package/fesm2022/acorex-connectivity-mock-get-subscriptions-chart-data.query-HxX_bCT8.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-mock-get-subscriptions-timeline.query-dp08JqLP.mjs +168 -0
- package/fesm2022/acorex-connectivity-mock-get-subscriptions-timeline.query-dp08JqLP.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-mock-get-tenant-application-access.query-IATTXcAV.mjs +180 -0
- package/fesm2022/acorex-connectivity-mock-get-tenant-application-access.query-IATTXcAV.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-mock-get-tenant-registration-chart-data.query-DlXi4Rcg.mjs +56 -0
- package/fesm2022/acorex-connectivity-mock-get-tenant-registration-chart-data.query-DlXi4Rcg.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-mock-get-tenant-registration-timeline.query-hskw8Ioa.mjs +216 -0
- package/fesm2022/acorex-connectivity-mock-get-tenant-registration-timeline.query-hskw8Ioa.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-mock-get-tenant-user-distribution.query-Bs5U5tze.mjs +134 -0
- package/fesm2022/acorex-connectivity-mock-get-tenant-user-distribution.query-Bs5U5tze.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-mock.mjs +10595 -11891
- package/fesm2022/acorex-connectivity-mock.mjs.map +1 -1
- package/mock/index.d.ts +80 -279
- package/package.json +2 -2
package/fesm2022/acorex-connectivity-mock-get-tenant-registration-timeline.query-hskw8Ioa.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-connectivity-mock-get-tenant-registration-timeline.query-hskw8Ioa.mjs","sources":["../tmp-esm2022/mock/lib/tenant-management/reports/get-tenant-registration-timeline.query.js"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { RootConfig as TenantRootConfig } from '@acorex/modules/tenant-management';\nimport { RootConfig as SubscriptionRootConfig } from '@acorex/modules/subscription-management';\nimport { RootConfig as ApplicationRootConfig } from '@acorex/modules/application-management';\nimport * as i0 from \"@angular/core\";\n//#endregion\nexport class GetTenantRegistrationTimelineQuery {\n constructor() {\n this.entityService = inject(AXPEntityService);\n this.tenantService = this.entityService\n .withEntity(`${TenantRootConfig.module.name}.${TenantRootConfig.entities.tenant.name}`)\n .data();\n this.tenantUserService = this.entityService\n .withEntity(`${TenantRootConfig.module.name}.${TenantRootConfig.entities.tenantUser.name}`)\n .data();\n this.subscriptionService = this.entityService\n .withEntity(`${SubscriptionRootConfig.module.name}.${SubscriptionRootConfig.entities.subscription.name}`)\n .data();\n this.planItemService = this.entityService\n .withEntity(`${SubscriptionRootConfig.module.name}.${SubscriptionRootConfig.entities.subscriptionPlanItem.name}`)\n .data();\n this.applicationService = this.entityService\n .withEntity(`${ApplicationRootConfig.module.name}.${ApplicationRootConfig.entities.application.name}`)\n .data();\n }\n async fetch(input) {\n // Get all tenants\n const tenantsResult = await this.tenantService.query({\n skip: 0,\n take: 10000,\n filter: input.filters && input.filters.length > 0\n ? {\n logic: input.logic || 'and',\n filters: input.filters.filter((f) => f.field !== 'dateRange'),\n }\n : undefined,\n });\n let tenants = tenantsResult.items.filter((t) => t.registrationDate);\n // Apply date range filter if provided\n if (input.filters) {\n for (const filter of input.filters) {\n if (filter.field === 'dateRange' && filter.value) {\n tenants = this.applyDateRangeFilter(tenants, filter.value);\n }\n }\n }\n // Get all tenant users for counting\n const tenantUsersResult = await this.tenantUserService.query({\n skip: 0,\n take: 10000,\n });\n const tenantUsers = tenantUsersResult.items;\n // Get all subscriptions for counting\n const subscriptionsResult = await this.subscriptionService.query({\n skip: 0,\n take: 10000,\n });\n const subscriptions = subscriptionsResult.items.filter((s) => s.subscriberType === 'Tenant');\n // Get all plan items and applications for application counting\n const planItemsResult = await this.planItemService.query({\n skip: 0,\n take: 10000,\n });\n const planItems = planItemsResult.items;\n const applicationsResult = await this.applicationService.query({\n skip: 0,\n take: 10000,\n });\n const applications = applicationsResult.items;\n // Get application counts for tenants\n const applicationCounts = await this.getApplicationCountsForTenants(tenants.map((t) => t.id), subscriptions, planItems, applications);\n // Build results\n const results = [];\n for (const tenant of tenants) {\n if (!tenant.registrationDate)\n continue;\n const registrationDate = new Date(tenant.registrationDate);\n // Extract time period info\n const year = registrationDate.getFullYear();\n const month = registrationDate.getMonth() + 1;\n const monthName = registrationDate.toLocaleString('en-US', { month: 'long' });\n const quarter = Math.ceil(month / 3);\n const quarterName = `Q${quarter}`;\n // Count users for this tenant\n const userCount = tenantUsers.filter((tu) => tu.tenantId === tenant.id).length;\n // Count subscriptions for this tenant\n const subscriptionCount = subscriptions.filter((s) => s.subscriberId === tenant.id).length;\n // Get application count\n const applicationCount = applicationCounts.get(tenant.id) || 0;\n results.push({\n tenantId: tenant.id,\n tenantName: tenant.title,\n registrationDate: registrationDate,\n registrationDateStr: registrationDate.toISOString(),\n status: tenant.statusId || 'Unknown',\n country: tenant.country?.title,\n userCount: userCount,\n applicationCount: applicationCount,\n subscriptionCount: subscriptionCount,\n month: monthName,\n monthNumber: month,\n quarter: quarterName,\n year: year,\n });\n }\n // Apply sorting if provided\n if (input.sort && input.sort.length > 0) {\n results.sort((a, b) => {\n for (const sortField of input.sort) {\n const field = sortField.field;\n const aValue = a[field];\n const bValue = b[field];\n const dir = sortField.dir === 'asc' ? 1 : -1;\n if (aValue === undefined && bValue === undefined)\n continue;\n if (aValue === undefined)\n return 1 * dir;\n if (bValue === undefined)\n return -1 * dir;\n // Handle date comparison\n if (field === 'registrationDate') {\n const aDate = a.registrationDate.getTime();\n const bDate = b.registrationDate.getTime();\n if (aDate < bDate)\n return -1 * dir;\n if (aDate > bDate)\n return 1 * dir;\n continue;\n }\n if (aValue < bValue)\n return -1 * dir;\n if (aValue > bValue)\n return 1 * dir;\n }\n return 0;\n });\n }\n else {\n // Default sort by registration date descending (newest first)\n results.sort((a, b) => {\n return b.registrationDate.getTime() - a.registrationDate.getTime();\n });\n }\n // Apply pagination\n const skip = input.skip || 0;\n const take = input.take || 10;\n const total = results.length;\n const items = results.slice(skip, skip + take);\n return {\n items,\n total,\n };\n }\n //#region ---- Helper Methods ----\n /**\n * Get application counts for tenants\n */\n async getApplicationCountsForTenants(tenantIds, subscriptions, planItems, applications) {\n const counts = new Map();\n for (const tenantId of tenantIds) {\n const tenantSubscriptions = subscriptions.filter((s) => s.subscriberId === tenantId);\n // Get unique applications through subscriptions → plans → plan items → editions → applications\n const applicationSet = new Set();\n for (const subscription of tenantSubscriptions) {\n if (!subscription.planId)\n continue;\n // Get plan items for this plan\n const planPlanItems = planItems.filter((pi) => pi.planId === subscription.planId);\n for (const planItem of planPlanItems) {\n if (!planItem.editionId)\n continue;\n // Find applications that have this edition\n for (const application of applications) {\n if (application.editionIds && application.editionIds.includes(planItem.editionId)) {\n applicationSet.add(application.id);\n }\n }\n }\n }\n counts.set(tenantId, applicationSet.size);\n }\n return counts;\n }\n //#endregion\n //#region ---- Custom Filter Handlers ----\n /**\n * Apply date range filter to tenants\n */\n applyDateRangeFilter(tenants, dateRange) {\n if (!dateRange || !dateRange.start || !dateRange.end) {\n return tenants;\n }\n const startDate = new Date(dateRange.start);\n const endDate = new Date(dateRange.end);\n endDate.setHours(23, 59, 59, 999);\n return tenants.filter((tenant) => {\n if (!tenant.registrationDate)\n return false;\n const regDate = new Date(tenant.registrationDate);\n return regDate >= startDate && regDate <= endDate;\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: GetTenantRegistrationTimelineQuery, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: GetTenantRegistrationTimelineQuery, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: GetTenantRegistrationTimelineQuery, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXRlbmFudC1yZWdpc3RyYXRpb24tdGltZWxpbmUucXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nvbm5lY3Rpdml0eS9tb2NrL3NyYy9saWIvdGVuYW50LW1hbmFnZW1lbnQvcmVwb3J0cy9nZXQtdGVuYW50LXJlZ2lzdHJhdGlvbi10aW1lbGluZS5xdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQU1sRSxPQUFPLEVBQUUsVUFBVSxJQUFJLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkYsT0FBTyxFQUFFLFVBQVUsSUFBSSxzQkFBc0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxVQUFVLElBQUkscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7QUFxQzdGLFlBQVk7QUFLWixNQUFNLE9BQU8sa0NBQWtDO0lBSC9DO1FBTW1CLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDbEQsa0JBQWEsR0FBRyxJQUFJLENBQUMsYUFBYTthQUN2QyxVQUFVLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDdEYsSUFBSSxFQUFnRCxDQUFDO1FBQ2hELHNCQUFpQixHQUFHLElBQUksQ0FBQyxhQUFhO2FBQzNDLFVBQVUsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUMxRixJQUFJLEVBQW9ELENBQUM7UUFDcEQsd0JBQW1CLEdBQUcsSUFBSSxDQUFDLGFBQWE7YUFDN0MsVUFBVSxDQUFDLEdBQUcsc0JBQXNCLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3hHLElBQUksRUFBNEQsQ0FBQztRQUM1RCxvQkFBZSxHQUFHLElBQUksQ0FBQyxhQUFhO2FBQ3pDLFVBQVUsQ0FBQyxHQUFHLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksc0JBQXNCLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDO2FBQ2hILElBQUksRUFBb0UsQ0FBQztRQUNwRSx1QkFBa0IsR0FBRyxJQUFJLENBQUMsYUFBYTthQUM1QyxVQUFVLENBQUMsR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDckcsSUFBSSxFQUEwRCxDQUFDO0tBMk5uRTtJQXpOQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQThDO1FBQ3hELGtCQUFrQjtRQUNsQixNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO1lBQ25ELElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxFQUFFLEtBQUs7WUFDWCxNQUFNLEVBQ0osS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDO2dCQUN2QyxDQUFDLENBQUU7b0JBQ0MsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSztvQkFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLFdBQVcsQ0FBQztpQkFDdEQ7Z0JBQ1gsQ0FBQyxDQUFDLFNBQVM7U0FDaEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxPQUFPLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRXBFLHNDQUFzQztRQUN0QyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQixLQUFLLE1BQU0sTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDbkMsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLFdBQVcsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ2pELE9BQU8sR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDN0QsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsb0NBQW9DO1FBQ3BDLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDO1lBQzNELElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxFQUFFLEtBQUs7U0FDWixDQUFDLENBQUM7UUFDSCxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7UUFFNUMscUNBQXFDO1FBQ3JDLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDO1lBQy9ELElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxFQUFFLEtBQUs7U0FDWixDQUFDLENBQUM7UUFDSCxNQUFNLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxLQUFLLFFBQVEsQ0FBQyxDQUFDO1FBRTdGLCtEQUErRDtRQUMvRCxNQUFNLGVBQWUsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDO1lBQ3ZELElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxFQUFFLEtBQUs7U0FDWixDQUFDLENBQUM7UUFDSCxNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDO1FBRXhDLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDO1lBQzdELElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxFQUFFLEtBQUs7U0FDWixDQUFDLENBQUM7UUFDSCxNQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7UUFFOUMscUNBQXFDO1FBQ3JDLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxJQUFJLENBQUMsOEJBQThCLENBQ2pFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDeEIsYUFBYSxFQUNiLFNBQVMsRUFDVCxZQUFZLENBQ2IsQ0FBQztRQUVGLGdCQUFnQjtRQUNoQixNQUFNLE9BQU8sR0FBdUMsRUFBRSxDQUFDO1FBRXZELEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0I7Z0JBQUUsU0FBUztZQUV2QyxNQUFNLGdCQUFnQixHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBRTNELDJCQUEyQjtZQUMzQixNQUFNLElBQUksR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM1QyxNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDOUMsTUFBTSxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQzlFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLE1BQU0sV0FBVyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7WUFFbEMsOEJBQThCO1lBQzlCLE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUUvRSxzQ0FBc0M7WUFDdEMsTUFBTSxpQkFBaUIsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxLQUFLLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFFM0Ysd0JBQXdCO1lBQ3hCLE1BQU0sZ0JBQWdCLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFL0QsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDWCxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUU7Z0JBQ25CLFVBQVUsRUFBRSxNQUFNLENBQUMsS0FBSztnQkFDeEIsZ0JBQWdCLEVBQUUsZ0JBQWdCO2dCQUNsQyxtQkFBbUIsRUFBRSxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUU7Z0JBQ25ELE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxJQUFJLFNBQVM7Z0JBQ3BDLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLEtBQUs7Z0JBQzlCLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixnQkFBZ0IsRUFBRSxnQkFBZ0I7Z0JBQ2xDLGlCQUFpQixFQUFFLGlCQUFpQjtnQkFDcEMsS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLFdBQVcsRUFBRSxLQUFLO2dCQUNsQixPQUFPLEVBQUUsV0FBVztnQkFDcEIsSUFBSSxFQUFFLElBQUk7YUFDWCxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsNEJBQTRCO1FBQzVCLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4QyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNwQixLQUFLLE1BQU0sU0FBUyxJQUFJLEtBQUssQ0FBQyxJQUFLLEVBQUUsQ0FBQztvQkFDcEMsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLEtBQStDLENBQUM7b0JBQ3hFLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDeEIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUN4QixNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFFN0MsSUFBSSxNQUFNLEtBQUssU0FBUyxJQUFJLE1BQU0sS0FBSyxTQUFTO3dCQUFFLFNBQVM7b0JBQzNELElBQUksTUFBTSxLQUFLLFNBQVM7d0JBQUUsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDO29CQUN6QyxJQUFJLE1BQU0sS0FBSyxTQUFTO3dCQUFFLE9BQU8sQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO29CQUUxQyx5QkFBeUI7b0JBQ3pCLElBQUksS0FBSyxLQUFLLGtCQUFrQixFQUFFLENBQUM7d0JBQ2pDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQzt3QkFDM0MsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDO3dCQUMzQyxJQUFJLEtBQUssR0FBRyxLQUFLOzRCQUFFLE9BQU8sQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO3dCQUNuQyxJQUFJLEtBQUssR0FBRyxLQUFLOzRCQUFFLE9BQU8sQ0FBQyxHQUFHLEdBQUcsQ0FBQzt3QkFDbEMsU0FBUztvQkFDWCxDQUFDO29CQUVELElBQUksTUFBTSxHQUFHLE1BQU07d0JBQUUsT0FBTyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7b0JBQ3JDLElBQUksTUFBTSxHQUFHLE1BQU07d0JBQUUsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDO2dCQUN0QyxDQUFDO2dCQUNELE9BQU8sQ0FBQyxDQUFDO1lBQ1gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLDhEQUE4RDtZQUM5RCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNwQixPQUFPLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckUsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsbUJBQW1CO1FBQ25CLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQzdCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzlCLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDN0IsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBRS9DLE9BQU87WUFDTCxLQUFLO1lBQ0wsS0FBSztTQUNOLENBQUM7SUFDSixDQUFDO0lBRUQsc0NBQXNDO0lBRXRDOztPQUVHO0lBQ0ssS0FBSyxDQUFDLDhCQUE4QixDQUMxQyxTQUFtQixFQUNuQixhQUFpRSxFQUNqRSxTQUFxRSxFQUNyRSxZQUE4RDtRQUU5RCxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztRQUV6QyxLQUFLLE1BQU0sUUFBUSxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sbUJBQW1CLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksS0FBSyxRQUFRLENBQUMsQ0FBQztZQUVyRiwrRkFBK0Y7WUFDL0YsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztZQUV6QyxLQUFLLE1BQU0sWUFBWSxJQUFJLG1CQUFtQixFQUFFLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTTtvQkFBRSxTQUFTO2dCQUVuQywrQkFBK0I7Z0JBQy9CLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUVsRixLQUFLLE1BQU0sUUFBUSxJQUFJLGFBQWEsRUFBRSxDQUFDO29CQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVM7d0JBQUUsU0FBUztvQkFFbEMsMkNBQTJDO29CQUMzQyxLQUFLLE1BQU0sV0FBVyxJQUFJLFlBQVksRUFBRSxDQUFDO3dCQUN2QyxJQUFJLFdBQVcsQ0FBQyxVQUFVLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7NEJBQ2xGLGNBQWMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUNyQyxDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7WUFFRCxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxZQUFZO0lBRVosOENBQThDO0lBRTlDOztPQUVHO0lBQ0ssb0JBQW9CLENBQzFCLE9BQStDLEVBQy9DLFNBQWM7UUFFZCxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNyRCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLE1BQU0sT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRWxDLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1lBQzNDLE1BQU0sT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ2xELE9BQU8sT0FBTyxJQUFJLFNBQVMsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0ExT1Usa0NBQWtDO21IQUFsQyxrQ0FBa0MsY0FGakMsTUFBTTs7NEZBRVAsa0NBQWtDO2tCQUg5QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQUXVlcnkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3J1bnRpbWUnO1xuaW1wb3J0IHsgQVhQRW50aXR5U2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2VudGl0eSc7XG5pbXBvcnQgeyBBWE1UZW5hbnRNYW5hZ2VtZW50VGVuYW50RW50aXR5TW9kZWwgfSBmcm9tICdAYWNvcmV4L21vZHVsZXMvdGVuYW50LW1hbmFnZW1lbnQnO1xuaW1wb3J0IHsgQVhNVGVuYW50TWFuYWdlbWVudFRlbmFudFVzZXJFbnRpdHlNb2RlbCB9IGZyb20gJ0BhY29yZXgvbW9kdWxlcy90ZW5hbnQtbWFuYWdlbWVudCc7XG5pbXBvcnQgeyBBWE1TdWJzY3JpcHRpb25NYW5hZ2VtZW50U3Vic2NyaXB0aW9uRW50aXR5TW9kZWwgfSBmcm9tICdAYWNvcmV4L21vZHVsZXMvc3Vic2NyaXB0aW9uLW1hbmFnZW1lbnQnO1xuaW1wb3J0IHsgQVhNU3Vic2NyaXB0aW9uTWFuYWdlbWVudFN1YnNjcmlwdGlvblBsYW5JdGVtRW50aXR5TW9kZWwgfSBmcm9tICdAYWNvcmV4L21vZHVsZXMvc3Vic2NyaXB0aW9uLW1hbmFnZW1lbnQnO1xuaW1wb3J0IHsgQVhNQXBwbGljYXRpb25NYW5hZ2VtZW50QXBwbGljYXRpb25FbnRpdHlNb2RlbCB9IGZyb20gJ0BhY29yZXgvbW9kdWxlcy9hcHBsaWNhdGlvbi1tYW5hZ2VtZW50JztcbmltcG9ydCB7IFJvb3RDb25maWcgYXMgVGVuYW50Um9vdENvbmZpZyB9IGZyb20gJ0BhY29yZXgvbW9kdWxlcy90ZW5hbnQtbWFuYWdlbWVudCc7XG5pbXBvcnQgeyBSb290Q29uZmlnIGFzIFN1YnNjcmlwdGlvblJvb3RDb25maWcgfSBmcm9tICdAYWNvcmV4L21vZHVsZXMvc3Vic2NyaXB0aW9uLW1hbmFnZW1lbnQnO1xuaW1wb3J0IHsgUm9vdENvbmZpZyBhcyBBcHBsaWNhdGlvblJvb3RDb25maWcgfSBmcm9tICdAYWNvcmV4L21vZHVsZXMvYXBwbGljYXRpb24tbWFuYWdlbWVudCc7XG5cbi8vI3JlZ2lvbiAtLS0tICAgUXVlcnkgSW5wdXQvT3V0cHV0IFR5cGVzICAgLS0tLVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldFRlbmFudFJlZ2lzdHJhdGlvblRpbWVsaW5lUXVlcnlJbnB1dCB7XG4gIHNraXA/OiBudW1iZXI7XG4gIHRha2U/OiBudW1iZXI7XG4gIHNvcnQ/OiBBcnJheTx7IGZpZWxkOiBzdHJpbmc7IGRpcjogJ2FzYycgfCAnZGVzYycgfT47XG4gIGZpbHRlcnM/OiBBcnJheTx7XG4gICAgZmllbGQ6IHN0cmluZztcbiAgICBvcGVyYXRvcjogeyB0eXBlOiBzdHJpbmcgfTtcbiAgICB2YWx1ZTogYW55O1xuICB9PjtcbiAgbG9naWM/OiAnYW5kJyB8ICdvcic7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVuYW50UmVnaXN0cmF0aW9uVGltZWxpbmVSZXN1bHQge1xuICB0ZW5hbnRJZDogc3RyaW5nO1xuICB0ZW5hbnROYW1lOiBzdHJpbmc7XG4gIHJlZ2lzdHJhdGlvbkRhdGU6IERhdGU7XG4gIHJlZ2lzdHJhdGlvbkRhdGVTdHI6IHN0cmluZztcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIGNvdW50cnk/OiBzdHJpbmc7XG4gIHVzZXJDb3VudDogbnVtYmVyO1xuICBhcHBsaWNhdGlvbkNvdW50OiBudW1iZXI7XG4gIHN1YnNjcmlwdGlvbkNvdW50OiBudW1iZXI7XG4gIG1vbnRoOiBzdHJpbmc7XG4gIG1vbnRoTnVtYmVyOiBudW1iZXI7XG4gIHF1YXJ0ZXI6IHN0cmluZztcbiAgeWVhcjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldFRlbmFudFJlZ2lzdHJhdGlvblRpbWVsaW5lUXVlcnlSZXN1bHQge1xuICBpdGVtczogVGVuYW50UmVnaXN0cmF0aW9uVGltZWxpbmVSZXN1bHRbXTtcbiAgdG90YWw6IG51bWJlcjtcbn1cblxuLy8jZW5kcmVnaW9uXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBHZXRUZW5hbnRSZWdpc3RyYXRpb25UaW1lbGluZVF1ZXJ5XG4gIGltcGxlbWVudHMgQVhQUXVlcnk8R2V0VGVuYW50UmVnaXN0cmF0aW9uVGltZWxpbmVRdWVyeUlucHV0LCBHZXRUZW5hbnRSZWdpc3RyYXRpb25UaW1lbGluZVF1ZXJ5UmVzdWx0Plxue1xuICBwcml2YXRlIHJlYWRvbmx5IGVudGl0eVNlcnZpY2UgPSBpbmplY3QoQVhQRW50aXR5U2VydmljZSk7XG4gIHByaXZhdGUgdGVuYW50U2VydmljZSA9IHRoaXMuZW50aXR5U2VydmljZVxuICAgIC53aXRoRW50aXR5KGAke1RlbmFudFJvb3RDb25maWcubW9kdWxlLm5hbWV9LiR7VGVuYW50Um9vdENvbmZpZy5lbnRpdGllcy50ZW5hbnQubmFtZX1gKVxuICAgIC5kYXRhPHN0cmluZywgQVhNVGVuYW50TWFuYWdlbWVudFRlbmFudEVudGl0eU1vZGVsPigpO1xuICBwcml2YXRlIHRlbmFudFVzZXJTZXJ2aWNlID0gdGhpcy5lbnRpdHlTZXJ2aWNlXG4gICAgLndpdGhFbnRpdHkoYCR7VGVuYW50Um9vdENvbmZpZy5tb2R1bGUubmFtZX0uJHtUZW5hbnRSb290Q29uZmlnLmVudGl0aWVzLnRlbmFudFVzZXIubmFtZX1gKVxuICAgIC5kYXRhPHN0cmluZywgQVhNVGVuYW50TWFuYWdlbWVudFRlbmFudFVzZXJFbnRpdHlNb2RlbD4oKTtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25TZXJ2aWNlID0gdGhpcy5lbnRpdHlTZXJ2aWNlXG4gICAgLndpdGhFbnRpdHkoYCR7U3Vic2NyaXB0aW9uUm9vdENvbmZpZy5tb2R1bGUubmFtZX0uJHtTdWJzY3JpcHRpb25Sb290Q29uZmlnLmVudGl0aWVzLnN1YnNjcmlwdGlvbi5uYW1lfWApXG4gICAgLmRhdGE8c3RyaW5nLCBBWE1TdWJzY3JpcHRpb25NYW5hZ2VtZW50U3Vic2NyaXB0aW9uRW50aXR5TW9kZWw+KCk7XG4gIHByaXZhdGUgcGxhbkl0ZW1TZXJ2aWNlID0gdGhpcy5lbnRpdHlTZXJ2aWNlXG4gICAgLndpdGhFbnRpdHkoYCR7U3Vic2NyaXB0aW9uUm9vdENvbmZpZy5tb2R1bGUubmFtZX0uJHtTdWJzY3JpcHRpb25Sb290Q29uZmlnLmVudGl0aWVzLnN1YnNjcmlwdGlvblBsYW5JdGVtLm5hbWV9YClcbiAgICAuZGF0YTxzdHJpbmcsIEFYTVN1YnNjcmlwdGlvbk1hbmFnZW1lbnRTdWJzY3JpcHRpb25QbGFuSXRlbUVudGl0eU1vZGVsPigpO1xuICBwcml2YXRlIGFwcGxpY2F0aW9uU2VydmljZSA9IHRoaXMuZW50aXR5U2VydmljZVxuICAgIC53aXRoRW50aXR5KGAke0FwcGxpY2F0aW9uUm9vdENvbmZpZy5tb2R1bGUubmFtZX0uJHtBcHBsaWNhdGlvblJvb3RDb25maWcuZW50aXRpZXMuYXBwbGljYXRpb24ubmFtZX1gKVxuICAgIC5kYXRhPHN0cmluZywgQVhNQXBwbGljYXRpb25NYW5hZ2VtZW50QXBwbGljYXRpb25FbnRpdHlNb2RlbD4oKTtcblxuICBhc3luYyBmZXRjaChpbnB1dDogR2V0VGVuYW50UmVnaXN0cmF0aW9uVGltZWxpbmVRdWVyeUlucHV0KTogUHJvbWlzZTxHZXRUZW5hbnRSZWdpc3RyYXRpb25UaW1lbGluZVF1ZXJ5UmVzdWx0PiB7XG4gICAgLy8gR2V0IGFsbCB0ZW5hbnRzXG4gICAgY29uc3QgdGVuYW50c1Jlc3VsdCA9IGF3YWl0IHRoaXMudGVuYW50U2VydmljZS5xdWVyeSh7XG4gICAgICBza2lwOiAwLFxuICAgICAgdGFrZTogMTAwMDAsXG4gICAgICBmaWx0ZXI6XG4gICAgICAgIGlucHV0LmZpbHRlcnMgJiYgaW5wdXQuZmlsdGVycy5sZW5ndGggPiAwXG4gICAgICAgICAgPyAoe1xuICAgICAgICAgICAgICBsb2dpYzogaW5wdXQubG9naWMgfHwgJ2FuZCcsXG4gICAgICAgICAgICAgIGZpbHRlcnM6IGlucHV0LmZpbHRlcnMuZmlsdGVyKChmKSA9PiBmLmZpZWxkICE9PSAnZGF0ZVJhbmdlJyksXG4gICAgICAgICAgICB9IGFzIGFueSlcbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9KTtcblxuICAgIGxldCB0ZW5hbnRzID0gdGVuYW50c1Jlc3VsdC5pdGVtcy5maWx0ZXIoKHQpID0+IHQucmVnaXN0cmF0aW9uRGF0ZSk7XG5cbiAgICAvLyBBcHBseSBkYXRlIHJhbmdlIGZpbHRlciBpZiBwcm92aWRlZFxuICAgIGlmIChpbnB1dC5maWx0ZXJzKSB7XG4gICAgICBmb3IgKGNvbnN0IGZpbHRlciBvZiBpbnB1dC5maWx0ZXJzKSB7XG4gICAgICAgIGlmIChmaWx0ZXIuZmllbGQgPT09ICdkYXRlUmFuZ2UnICYmIGZpbHRlci52YWx1ZSkge1xuICAgICAgICAgIHRlbmFudHMgPSB0aGlzLmFwcGx5RGF0ZVJhbmdlRmlsdGVyKHRlbmFudHMsIGZpbHRlci52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBHZXQgYWxsIHRlbmFudCB1c2VycyBmb3IgY291bnRpbmdcbiAgICBjb25zdCB0ZW5hbnRVc2Vyc1Jlc3VsdCA9IGF3YWl0IHRoaXMudGVuYW50VXNlclNlcnZpY2UucXVlcnkoe1xuICAgICAgc2tpcDogMCxcbiAgICAgIHRha2U6IDEwMDAwLFxuICAgIH0pO1xuICAgIGNvbnN0IHRlbmFudFVzZXJzID0gdGVuYW50VXNlcnNSZXN1bHQuaXRlbXM7XG5cbiAgICAvLyBHZXQgYWxsIHN1YnNjcmlwdGlvbnMgZm9yIGNvdW50aW5nXG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uc1Jlc3VsdCA9IGF3YWl0IHRoaXMuc3Vic2NyaXB0aW9uU2VydmljZS5xdWVyeSh7XG4gICAgICBza2lwOiAwLFxuICAgICAgdGFrZTogMTAwMDAsXG4gICAgfSk7XG4gICAgY29uc3Qgc3Vic2NyaXB0aW9ucyA9IHN1YnNjcmlwdGlvbnNSZXN1bHQuaXRlbXMuZmlsdGVyKChzKSA9PiBzLnN1YnNjcmliZXJUeXBlID09PSAnVGVuYW50Jyk7XG5cbiAgICAvLyBHZXQgYWxsIHBsYW4gaXRlbXMgYW5kIGFwcGxpY2F0aW9ucyBmb3IgYXBwbGljYXRpb24gY291bnRpbmdcbiAgICBjb25zdCBwbGFuSXRlbXNSZXN1bHQgPSBhd2FpdCB0aGlzLnBsYW5JdGVtU2VydmljZS5xdWVyeSh7XG4gICAgICBza2lwOiAwLFxuICAgICAgdGFrZTogMTAwMDAsXG4gICAgfSk7XG4gICAgY29uc3QgcGxhbkl0ZW1zID0gcGxhbkl0ZW1zUmVzdWx0Lml0ZW1zO1xuXG4gICAgY29uc3QgYXBwbGljYXRpb25zUmVzdWx0ID0gYXdhaXQgdGhpcy5hcHBsaWNhdGlvblNlcnZpY2UucXVlcnkoe1xuICAgICAgc2tpcDogMCxcbiAgICAgIHRha2U6IDEwMDAwLFxuICAgIH0pO1xuICAgIGNvbnN0IGFwcGxpY2F0aW9ucyA9IGFwcGxpY2F0aW9uc1Jlc3VsdC5pdGVtcztcblxuICAgIC8vIEdldCBhcHBsaWNhdGlvbiBjb3VudHMgZm9yIHRlbmFudHNcbiAgICBjb25zdCBhcHBsaWNhdGlvbkNvdW50cyA9IGF3YWl0IHRoaXMuZ2V0QXBwbGljYXRpb25Db3VudHNGb3JUZW5hbnRzKFxuICAgICAgdGVuYW50cy5tYXAoKHQpID0+IHQuaWQpLFxuICAgICAgc3Vic2NyaXB0aW9ucyxcbiAgICAgIHBsYW5JdGVtcyxcbiAgICAgIGFwcGxpY2F0aW9uc1xuICAgICk7XG5cbiAgICAvLyBCdWlsZCByZXN1bHRzXG4gICAgY29uc3QgcmVzdWx0czogVGVuYW50UmVnaXN0cmF0aW9uVGltZWxpbmVSZXN1bHRbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCB0ZW5hbnQgb2YgdGVuYW50cykge1xuICAgICAgaWYgKCF0ZW5hbnQucmVnaXN0cmF0aW9uRGF0ZSkgY29udGludWU7XG5cbiAgICAgIGNvbnN0IHJlZ2lzdHJhdGlvbkRhdGUgPSBuZXcgRGF0ZSh0ZW5hbnQucmVnaXN0cmF0aW9uRGF0ZSk7XG5cbiAgICAgIC8vIEV4dHJhY3QgdGltZSBwZXJpb2QgaW5mb1xuICAgICAgY29uc3QgeWVhciA9IHJlZ2lzdHJhdGlvbkRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICAgIGNvbnN0IG1vbnRoID0gcmVnaXN0cmF0aW9uRGF0ZS5nZXRNb250aCgpICsgMTtcbiAgICAgIGNvbnN0IG1vbnRoTmFtZSA9IHJlZ2lzdHJhdGlvbkRhdGUudG9Mb2NhbGVTdHJpbmcoJ2VuLVVTJywgeyBtb250aDogJ2xvbmcnIH0pO1xuICAgICAgY29uc3QgcXVhcnRlciA9IE1hdGguY2VpbChtb250aCAvIDMpO1xuICAgICAgY29uc3QgcXVhcnRlck5hbWUgPSBgUSR7cXVhcnRlcn1gO1xuXG4gICAgICAvLyBDb3VudCB1c2VycyBmb3IgdGhpcyB0ZW5hbnRcbiAgICAgIGNvbnN0IHVzZXJDb3VudCA9IHRlbmFudFVzZXJzLmZpbHRlcigodHUpID0+IHR1LnRlbmFudElkID09PSB0ZW5hbnQuaWQpLmxlbmd0aDtcblxuICAgICAgLy8gQ291bnQgc3Vic2NyaXB0aW9ucyBmb3IgdGhpcyB0ZW5hbnRcbiAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbkNvdW50ID0gc3Vic2NyaXB0aW9ucy5maWx0ZXIoKHMpID0+IHMuc3Vic2NyaWJlcklkID09PSB0ZW5hbnQuaWQpLmxlbmd0aDtcblxuICAgICAgLy8gR2V0IGFwcGxpY2F0aW9uIGNvdW50XG4gICAgICBjb25zdCBhcHBsaWNhdGlvbkNvdW50ID0gYXBwbGljYXRpb25Db3VudHMuZ2V0KHRlbmFudC5pZCkgfHwgMDtcblxuICAgICAgcmVzdWx0cy5wdXNoKHtcbiAgICAgICAgdGVuYW50SWQ6IHRlbmFudC5pZCxcbiAgICAgICAgdGVuYW50TmFtZTogdGVuYW50LnRpdGxlLFxuICAgICAgICByZWdpc3RyYXRpb25EYXRlOiByZWdpc3RyYXRpb25EYXRlLFxuICAgICAgICByZWdpc3RyYXRpb25EYXRlU3RyOiByZWdpc3RyYXRpb25EYXRlLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIHN0YXR1czogdGVuYW50LnN0YXR1c0lkIHx8ICdVbmtub3duJyxcbiAgICAgICAgY291bnRyeTogdGVuYW50LmNvdW50cnk/LnRpdGxlLFxuICAgICAgICB1c2VyQ291bnQ6IHVzZXJDb3VudCxcbiAgICAgICAgYXBwbGljYXRpb25Db3VudDogYXBwbGljYXRpb25Db3VudCxcbiAgICAgICAgc3Vic2NyaXB0aW9uQ291bnQ6IHN1YnNjcmlwdGlvbkNvdW50LFxuICAgICAgICBtb250aDogbW9udGhOYW1lLFxuICAgICAgICBtb250aE51bWJlcjogbW9udGgsXG4gICAgICAgIHF1YXJ0ZXI6IHF1YXJ0ZXJOYW1lLFxuICAgICAgICB5ZWFyOiB5ZWFyLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gQXBwbHkgc29ydGluZyBpZiBwcm92aWRlZFxuICAgIGlmIChpbnB1dC5zb3J0ICYmIGlucHV0LnNvcnQubGVuZ3RoID4gMCkge1xuICAgICAgcmVzdWx0cy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3Qgc29ydEZpZWxkIG9mIGlucHV0LnNvcnQhKSB7XG4gICAgICAgICAgY29uc3QgZmllbGQgPSBzb3J0RmllbGQuZmllbGQgYXMga2V5b2YgVGVuYW50UmVnaXN0cmF0aW9uVGltZWxpbmVSZXN1bHQ7XG4gICAgICAgICAgY29uc3QgYVZhbHVlID0gYVtmaWVsZF07XG4gICAgICAgICAgY29uc3QgYlZhbHVlID0gYltmaWVsZF07XG4gICAgICAgICAgY29uc3QgZGlyID0gc29ydEZpZWxkLmRpciA9PT0gJ2FzYycgPyAxIDogLTE7XG5cbiAgICAgICAgICBpZiAoYVZhbHVlID09PSB1bmRlZmluZWQgJiYgYlZhbHVlID09PSB1bmRlZmluZWQpIGNvbnRpbnVlO1xuICAgICAgICAgIGlmIChhVmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIDEgKiBkaXI7XG4gICAgICAgICAgaWYgKGJWYWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gLTEgKiBkaXI7XG5cbiAgICAgICAgICAvLyBIYW5kbGUgZGF0ZSBjb21wYXJpc29uXG4gICAgICAgICAgaWYgKGZpZWxkID09PSAncmVnaXN0cmF0aW9uRGF0ZScpIHtcbiAgICAgICAgICAgIGNvbnN0IGFEYXRlID0gYS5yZWdpc3RyYXRpb25EYXRlLmdldFRpbWUoKTtcbiAgICAgICAgICAgIGNvbnN0IGJEYXRlID0gYi5yZWdpc3RyYXRpb25EYXRlLmdldFRpbWUoKTtcbiAgICAgICAgICAgIGlmIChhRGF0ZSA8IGJEYXRlKSByZXR1cm4gLTEgKiBkaXI7XG4gICAgICAgICAgICBpZiAoYURhdGUgPiBiRGF0ZSkgcmV0dXJuIDEgKiBkaXI7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoYVZhbHVlIDwgYlZhbHVlKSByZXR1cm4gLTEgKiBkaXI7XG4gICAgICAgICAgaWYgKGFWYWx1ZSA+IGJWYWx1ZSkgcmV0dXJuIDEgKiBkaXI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRGVmYXVsdCBzb3J0IGJ5IHJlZ2lzdHJhdGlvbiBkYXRlIGRlc2NlbmRpbmcgKG5ld2VzdCBmaXJzdClcbiAgICAgIHJlc3VsdHMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICByZXR1cm4gYi5yZWdpc3RyYXRpb25EYXRlLmdldFRpbWUoKSAtIGEucmVnaXN0cmF0aW9uRGF0ZS5nZXRUaW1lKCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBBcHBseSBwYWdpbmF0aW9uXG4gICAgY29uc3Qgc2tpcCA9IGlucHV0LnNraXAgfHwgMDtcbiAgICBjb25zdCB0YWtlID0gaW5wdXQudGFrZSB8fCAxMDtcbiAgICBjb25zdCB0b3RhbCA9IHJlc3VsdHMubGVuZ3RoO1xuICAgIGNvbnN0IGl0ZW1zID0gcmVzdWx0cy5zbGljZShza2lwLCBza2lwICsgdGFrZSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaXRlbXMsXG4gICAgICB0b3RhbCxcbiAgICB9O1xuICB9XG5cbiAgLy8jcmVnaW9uIC0tLS0gICBIZWxwZXIgTWV0aG9kcyAgIC0tLS1cblxuICAvKipcbiAgICogR2V0IGFwcGxpY2F0aW9uIGNvdW50cyBmb3IgdGVuYW50c1xuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBnZXRBcHBsaWNhdGlvbkNvdW50c0ZvclRlbmFudHMoXG4gICAgdGVuYW50SWRzOiBzdHJpbmdbXSxcbiAgICBzdWJzY3JpcHRpb25zOiBBWE1TdWJzY3JpcHRpb25NYW5hZ2VtZW50U3Vic2NyaXB0aW9uRW50aXR5TW9kZWxbXSxcbiAgICBwbGFuSXRlbXM6IEFYTVN1YnNjcmlwdGlvbk1hbmFnZW1lbnRTdWJzY3JpcHRpb25QbGFuSXRlbUVudGl0eU1vZGVsW10sXG4gICAgYXBwbGljYXRpb25zOiBBWE1BcHBsaWNhdGlvbk1hbmFnZW1lbnRBcHBsaWNhdGlvbkVudGl0eU1vZGVsW11cbiAgKTogUHJvbWlzZTxNYXA8c3RyaW5nLCBudW1iZXI+PiB7XG4gICAgY29uc3QgY291bnRzID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcblxuICAgIGZvciAoY29uc3QgdGVuYW50SWQgb2YgdGVuYW50SWRzKSB7XG4gICAgICBjb25zdCB0ZW5hbnRTdWJzY3JpcHRpb25zID0gc3Vic2NyaXB0aW9ucy5maWx0ZXIoKHMpID0+IHMuc3Vic2NyaWJlcklkID09PSB0ZW5hbnRJZCk7XG5cbiAgICAgIC8vIEdldCB1bmlxdWUgYXBwbGljYXRpb25zIHRocm91Z2ggc3Vic2NyaXB0aW9ucyDihpIgcGxhbnMg4oaSIHBsYW4gaXRlbXMg4oaSIGVkaXRpb25zIOKGkiBhcHBsaWNhdGlvbnNcbiAgICAgIGNvbnN0IGFwcGxpY2F0aW9uU2V0ID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIHRlbmFudFN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgaWYgKCFzdWJzY3JpcHRpb24ucGxhbklkKSBjb250aW51ZTtcblxuICAgICAgICAvLyBHZXQgcGxhbiBpdGVtcyBmb3IgdGhpcyBwbGFuXG4gICAgICAgIGNvbnN0IHBsYW5QbGFuSXRlbXMgPSBwbGFuSXRlbXMuZmlsdGVyKChwaSkgPT4gcGkucGxhbklkID09PSBzdWJzY3JpcHRpb24ucGxhbklkKTtcblxuICAgICAgICBmb3IgKGNvbnN0IHBsYW5JdGVtIG9mIHBsYW5QbGFuSXRlbXMpIHtcbiAgICAgICAgICBpZiAoIXBsYW5JdGVtLmVkaXRpb25JZCkgY29udGludWU7XG5cbiAgICAgICAgICAvLyBGaW5kIGFwcGxpY2F0aW9ucyB0aGF0IGhhdmUgdGhpcyBlZGl0aW9uXG4gICAgICAgICAgZm9yIChjb25zdCBhcHBsaWNhdGlvbiBvZiBhcHBsaWNhdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChhcHBsaWNhdGlvbi5lZGl0aW9uSWRzICYmIGFwcGxpY2F0aW9uLmVkaXRpb25JZHMuaW5jbHVkZXMocGxhbkl0ZW0uZWRpdGlvbklkKSkge1xuICAgICAgICAgICAgICBhcHBsaWNhdGlvblNldC5hZGQoYXBwbGljYXRpb24uaWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb3VudHMuc2V0KHRlbmFudElkLCBhcHBsaWNhdGlvblNldC5zaXplKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY291bnRzO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBDdXN0b20gRmlsdGVyIEhhbmRsZXJzICAgLS0tLVxuXG4gIC8qKlxuICAgKiBBcHBseSBkYXRlIHJhbmdlIGZpbHRlciB0byB0ZW5hbnRzXG4gICAqL1xuICBwcml2YXRlIGFwcGx5RGF0ZVJhbmdlRmlsdGVyKFxuICAgIHRlbmFudHM6IEFYTVRlbmFudE1hbmFnZW1lbnRUZW5hbnRFbnRpdHlNb2RlbFtdLFxuICAgIGRhdGVSYW5nZTogYW55XG4gICk6IEFYTVRlbmFudE1hbmFnZW1lbnRUZW5hbnRFbnRpdHlNb2RlbFtdIHtcbiAgICBpZiAoIWRhdGVSYW5nZSB8fCAhZGF0ZVJhbmdlLnN0YXJ0IHx8ICFkYXRlUmFuZ2UuZW5kKSB7XG4gICAgICByZXR1cm4gdGVuYW50cztcbiAgICB9XG5cbiAgICBjb25zdCBzdGFydERhdGUgPSBuZXcgRGF0ZShkYXRlUmFuZ2Uuc3RhcnQpO1xuICAgIGNvbnN0IGVuZERhdGUgPSBuZXcgRGF0ZShkYXRlUmFuZ2UuZW5kKTtcbiAgICBlbmREYXRlLnNldEhvdXJzKDIzLCA1OSwgNTksIDk5OSk7XG5cbiAgICByZXR1cm4gdGVuYW50cy5maWx0ZXIoKHRlbmFudCkgPT4ge1xuICAgICAgaWYgKCF0ZW5hbnQucmVnaXN0cmF0aW9uRGF0ZSkgcmV0dXJuIGZhbHNlO1xuICAgICAgY29uc3QgcmVnRGF0ZSA9IG5ldyBEYXRlKHRlbmFudC5yZWdpc3RyYXRpb25EYXRlKTtcbiAgICAgIHJldHVybiByZWdEYXRlID49IHN0YXJ0RGF0ZSAmJiByZWdEYXRlIDw9IGVuZERhdGU7XG4gICAgfSk7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cbn1cblxuIl19"],"names":["TenantRootConfig","SubscriptionRootConfig","ApplicationRootConfig"],"mappings":"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"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, Injectable } from '@angular/core';
|
|
3
|
+
import { AXPEntityService } from '@acorex/platform/layout/entity';
|
|
4
|
+
import { AXPSystemStatusType } from '@acorex/platform/common';
|
|
5
|
+
import { RootConfig } from '@acorex/modules/tenant-management';
|
|
6
|
+
|
|
7
|
+
//#endregion
|
|
8
|
+
class GetTenantUserDistributionQuery {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.entityService = inject(AXPEntityService);
|
|
11
|
+
this.tenantService = this.entityService
|
|
12
|
+
.withEntity(`${RootConfig.module.name}.${RootConfig.entities.tenant.name}`)
|
|
13
|
+
.data();
|
|
14
|
+
this.tenantUserService = this.entityService
|
|
15
|
+
.withEntity(`${RootConfig.module.name}.${RootConfig.entities.tenantUser.name}`)
|
|
16
|
+
.data();
|
|
17
|
+
}
|
|
18
|
+
async fetch(input) {
|
|
19
|
+
// Get all tenants
|
|
20
|
+
const tenantsResult = await this.tenantService.query({
|
|
21
|
+
skip: 0,
|
|
22
|
+
take: 10000,
|
|
23
|
+
filter: input.filters && input.filters.length > 0
|
|
24
|
+
? {
|
|
25
|
+
logic: input.logic || 'and',
|
|
26
|
+
filters: input.filters.filter((f) => f.field !== 'dateRange'),
|
|
27
|
+
}
|
|
28
|
+
: undefined,
|
|
29
|
+
});
|
|
30
|
+
let tenants = tenantsResult.items;
|
|
31
|
+
// Apply date range filter if provided
|
|
32
|
+
if (input.filters) {
|
|
33
|
+
for (const filter of input.filters) {
|
|
34
|
+
if (filter.field === 'dateRange' && filter.value) {
|
|
35
|
+
tenants = this.applyDateRangeFilter(tenants, filter.value);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
// Get all tenant users
|
|
40
|
+
const tenantUsersResult = await this.tenantUserService.query({
|
|
41
|
+
skip: 0,
|
|
42
|
+
take: 10000,
|
|
43
|
+
});
|
|
44
|
+
const tenantUsers = tenantUsersResult.items;
|
|
45
|
+
// Build results for each tenant
|
|
46
|
+
const results = [];
|
|
47
|
+
for (const tenant of tenants) {
|
|
48
|
+
// Get tenant's users
|
|
49
|
+
const tenantUsersList = tenantUsers.filter((tu) => tu.tenantId === tenant.id);
|
|
50
|
+
// Count active and inactive users
|
|
51
|
+
const activeUsers = tenantUsersList.filter((tu) => tu.statusId === AXPSystemStatusType.Active);
|
|
52
|
+
const inactiveUsers = tenantUsersList.filter((tu) => tu.statusId !== AXPSystemStatusType.Active);
|
|
53
|
+
// Calculate utilization percentage
|
|
54
|
+
const maxUsers = tenant.maxUsers;
|
|
55
|
+
const utilizationPercent = maxUsers && maxUsers > 0 ? Math.round((tenantUsersList.length / maxUsers) * 100) : 0;
|
|
56
|
+
results.push({
|
|
57
|
+
tenantId: tenant.id,
|
|
58
|
+
tenantName: tenant.title,
|
|
59
|
+
tenantStatus: tenant.statusId || 'Unknown',
|
|
60
|
+
totalUsersCount: tenantUsersList.length,
|
|
61
|
+
activeUsersCount: activeUsers.length,
|
|
62
|
+
inactiveUsersCount: inactiveUsers.length,
|
|
63
|
+
maxUsers: maxUsers,
|
|
64
|
+
utilizationPercent: utilizationPercent,
|
|
65
|
+
registrationDate: tenant.registrationDate,
|
|
66
|
+
registrationDateStr: tenant.registrationDate?.toISOString(),
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
// Apply sorting if provided
|
|
70
|
+
if (input.sort && input.sort.length > 0) {
|
|
71
|
+
results.sort((a, b) => {
|
|
72
|
+
for (const sortField of input.sort) {
|
|
73
|
+
const field = sortField.field;
|
|
74
|
+
const aValue = a[field];
|
|
75
|
+
const bValue = b[field];
|
|
76
|
+
const dir = sortField.dir === 'asc' ? 1 : -1;
|
|
77
|
+
if (aValue === undefined && bValue === undefined)
|
|
78
|
+
continue;
|
|
79
|
+
if (aValue === undefined)
|
|
80
|
+
return 1 * dir;
|
|
81
|
+
if (bValue === undefined)
|
|
82
|
+
return -1 * dir;
|
|
83
|
+
if (aValue < bValue)
|
|
84
|
+
return -1 * dir;
|
|
85
|
+
if (aValue > bValue)
|
|
86
|
+
return 1 * dir;
|
|
87
|
+
}
|
|
88
|
+
return 0;
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
// Default sort by tenant name
|
|
93
|
+
results.sort((a, b) => a.tenantName.localeCompare(b.tenantName));
|
|
94
|
+
}
|
|
95
|
+
// Apply pagination
|
|
96
|
+
const skip = input.skip || 0;
|
|
97
|
+
const take = input.take || 10;
|
|
98
|
+
const total = results.length;
|
|
99
|
+
const items = results.slice(skip, skip + take);
|
|
100
|
+
return {
|
|
101
|
+
items,
|
|
102
|
+
total,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
//#region ---- Custom Filter Handlers ----
|
|
106
|
+
/**
|
|
107
|
+
* Apply date range filter to tenants
|
|
108
|
+
*/
|
|
109
|
+
applyDateRangeFilter(tenants, dateRange) {
|
|
110
|
+
if (!dateRange || !dateRange.start || !dateRange.end) {
|
|
111
|
+
return tenants;
|
|
112
|
+
}
|
|
113
|
+
const startDate = new Date(dateRange.start);
|
|
114
|
+
const endDate = new Date(dateRange.end);
|
|
115
|
+
endDate.setHours(23, 59, 59, 999);
|
|
116
|
+
return tenants.filter((tenant) => {
|
|
117
|
+
if (!tenant.registrationDate)
|
|
118
|
+
return false;
|
|
119
|
+
const regDate = new Date(tenant.registrationDate);
|
|
120
|
+
return regDate >= startDate && regDate <= endDate;
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: GetTenantUserDistributionQuery, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
124
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: GetTenantUserDistributionQuery, providedIn: 'root' }); }
|
|
125
|
+
}
|
|
126
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: GetTenantUserDistributionQuery, decorators: [{
|
|
127
|
+
type: Injectable,
|
|
128
|
+
args: [{
|
|
129
|
+
providedIn: 'root',
|
|
130
|
+
}]
|
|
131
|
+
}] });
|
|
132
|
+
|
|
133
|
+
export { GetTenantUserDistributionQuery };
|
|
134
|
+
//# sourceMappingURL=acorex-connectivity-mock-get-tenant-user-distribution.query-Bs5U5tze.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-connectivity-mock-get-tenant-user-distribution.query-Bs5U5tze.mjs","sources":["../tmp-esm2022/mock/lib/tenant-management/reports/get-tenant-user-distribution.query.js"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { AXPSystemStatusType } from '@acorex/platform/common';\nimport { RootConfig as TenantRootConfig } from '@acorex/modules/tenant-management';\nimport * as i0 from \"@angular/core\";\n//#endregion\nexport class GetTenantUserDistributionQuery {\n constructor() {\n this.entityService = inject(AXPEntityService);\n this.tenantService = this.entityService\n .withEntity(`${TenantRootConfig.module.name}.${TenantRootConfig.entities.tenant.name}`)\n .data();\n this.tenantUserService = this.entityService\n .withEntity(`${TenantRootConfig.module.name}.${TenantRootConfig.entities.tenantUser.name}`)\n .data();\n }\n async fetch(input) {\n // Get all tenants\n const tenantsResult = await this.tenantService.query({\n skip: 0,\n take: 10000,\n filter: input.filters && input.filters.length > 0\n ? {\n logic: input.logic || 'and',\n filters: input.filters.filter((f) => f.field !== 'dateRange'),\n }\n : undefined,\n });\n let tenants = tenantsResult.items;\n // Apply date range filter if provided\n if (input.filters) {\n for (const filter of input.filters) {\n if (filter.field === 'dateRange' && filter.value) {\n tenants = this.applyDateRangeFilter(tenants, filter.value);\n }\n }\n }\n // Get all tenant users\n const tenantUsersResult = await this.tenantUserService.query({\n skip: 0,\n take: 10000,\n });\n const tenantUsers = tenantUsersResult.items;\n // Build results for each tenant\n const results = [];\n for (const tenant of tenants) {\n // Get tenant's users\n const tenantUsersList = tenantUsers.filter((tu) => tu.tenantId === tenant.id);\n // Count active and inactive users\n const activeUsers = tenantUsersList.filter((tu) => tu.statusId === AXPSystemStatusType.Active);\n const inactiveUsers = tenantUsersList.filter((tu) => tu.statusId !== AXPSystemStatusType.Active);\n // Calculate utilization percentage\n const maxUsers = tenant.maxUsers;\n const utilizationPercent = maxUsers && maxUsers > 0 ? Math.round((tenantUsersList.length / maxUsers) * 100) : 0;\n results.push({\n tenantId: tenant.id,\n tenantName: tenant.title,\n tenantStatus: tenant.statusId || 'Unknown',\n totalUsersCount: tenantUsersList.length,\n activeUsersCount: activeUsers.length,\n inactiveUsersCount: inactiveUsers.length,\n maxUsers: maxUsers,\n utilizationPercent: utilizationPercent,\n registrationDate: tenant.registrationDate,\n registrationDateStr: tenant.registrationDate?.toISOString(),\n });\n }\n // Apply sorting if provided\n if (input.sort && input.sort.length > 0) {\n results.sort((a, b) => {\n for (const sortField of input.sort) {\n const field = sortField.field;\n const aValue = a[field];\n const bValue = b[field];\n const dir = sortField.dir === 'asc' ? 1 : -1;\n if (aValue === undefined && bValue === undefined)\n continue;\n if (aValue === undefined)\n return 1 * dir;\n if (bValue === undefined)\n return -1 * dir;\n if (aValue < bValue)\n return -1 * dir;\n if (aValue > bValue)\n return 1 * dir;\n }\n return 0;\n });\n }\n else {\n // Default sort by tenant name\n results.sort((a, b) => a.tenantName.localeCompare(b.tenantName));\n }\n // Apply pagination\n const skip = input.skip || 0;\n const take = input.take || 10;\n const total = results.length;\n const items = results.slice(skip, skip + take);\n return {\n items,\n total,\n };\n }\n //#region ---- Custom Filter Handlers ----\n /**\n * Apply date range filter to tenants\n */\n applyDateRangeFilter(tenants, dateRange) {\n if (!dateRange || !dateRange.start || !dateRange.end) {\n return tenants;\n }\n const startDate = new Date(dateRange.start);\n const endDate = new Date(dateRange.end);\n endDate.setHours(23, 59, 59, 999);\n return tenants.filter((tenant) => {\n if (!tenant.registrationDate)\n return false;\n const regDate = new Date(tenant.registrationDate);\n return regDate >= startDate && regDate <= endDate;\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: GetTenantUserDistributionQuery, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: GetTenantUserDistributionQuery, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: GetTenantUserDistributionQuery, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXRlbmFudC11c2VyLWRpc3RyaWJ1dGlvbi5xdWVyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29ubmVjdGl2aXR5L21vY2svc3JjL2xpYi90ZW5hbnQtbWFuYWdlbWVudC9yZXBvcnRzL2dldC10ZW5hbnQtdXNlci1kaXN0cmlidXRpb24ucXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsSUFBSSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQWtDbkYsWUFBWTtBQUtaLE1BQU0sT0FBTyw4QkFBOEI7SUFIM0M7UUFNbUIsa0JBQWEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRCxrQkFBYSxHQUFHLElBQUksQ0FBQyxhQUFhO2FBQ3ZDLFVBQVUsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUN0RixJQUFJLEVBQWdELENBQUM7UUFDaEQsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLGFBQWE7YUFDM0MsVUFBVSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQzFGLElBQUksRUFBb0QsQ0FBQztLQWdJN0Q7SUE5SEMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUEwQztRQUNwRCxrQkFBa0I7UUFDbEIsTUFBTSxhQUFhLEdBQUcsTUFBTSxJ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LElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ2xELE9BQU8sT0FBTyxJQUFJLFNBQVMsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0F0SVUsOEJBQThCO21IQUE5Qiw4QkFBOEIsY0FGN0IsTUFBTTs7NEZBRVAsOEJBQThCO2tCQUgxQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQUXVlcnkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3J1bnRpbWUnO1xuaW1wb3J0IHsgQVhQRW50aXR5U2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2VudGl0eSc7XG5pbXBvcnQgeyBBWE1UZW5hbnRNYW5hZ2VtZW50VGVuYW50RW50aXR5TW9kZWwgfSBmcm9tICdAYWNvcmV4L21vZHVsZXMvdGVuYW50LW1hbmFnZW1lbnQnO1xuaW1wb3J0IHsgQVhNVGVuYW50TWFuYWdlbWVudFRlbmFudFVzZXJFbnRpdHlNb2RlbCB9IGZyb20gJ0BhY29yZXgvbW9kdWxlcy90ZW5hbnQtbWFuYWdlbWVudCc7XG5pbXBvcnQgeyBBWFBTeXN0ZW1TdGF0dXNUeXBlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgUm9vdENvbmZpZyBhcyBUZW5hbnRSb290Q29uZmlnIH0gZnJvbSAnQGFjb3JleC9tb2R1bGVzL3RlbmFudC1tYW5hZ2VtZW50JztcblxuLy8jcmVnaW9uIC0tLS0gICBRdWVyeSBJbnB1dC9PdXRwdXQgVHlwZXMgICAtLS0tXG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0VGVuYW50VXNlckRpc3RyaWJ1dGlvblF1ZXJ5SW5wdXQge1xuICBza2lwPzogbnVtYmVyO1xuICB0YWtlPzogbnVtYmVyO1xuICBzb3J0PzogQXJyYXk8eyBmaWVsZDogc3RyaW5nOyBkaXI6ICdhc2MnIHwgJ2Rlc2MnIH0+O1xuICBmaWx0ZXJzPzogQXJyYXk8e1xuICAgIGZpZWxkOiBzdHJpbmc7XG4gICAgb3BlcmF0b3I6IHsgdHlwZTogc3RyaW5nIH07XG4gICAgdmFsdWU6IGFueTtcbiAgfT47XG4gIGxvZ2ljPzogJ2FuZCcgfCAnb3InO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlbmFudFVzZXJEaXN0cmlidXRpb25SZXN1bHQge1xuICB0ZW5hbnRJZDogc3RyaW5nO1xuICB0ZW5hbnROYW1lOiBzdHJpbmc7XG4gIHRlbmFudFN0YXR1czogc3RyaW5nO1xuICB0b3RhbFVzZXJzQ291bnQ6IG51bWJlcjtcbiAgYWN0aXZlVXNlcnNDb3VudDogbnVtYmVyO1xuICBpbmFjdGl2ZVVzZXJzQ291bnQ6IG51bWJlcjtcbiAgbWF4VXNlcnM/OiBudW1iZXI7XG4gIHV0aWxpemF0aW9uUGVyY2VudDogbnVtYmVyO1xuICByZWdpc3RyYXRpb25EYXRlPzogRGF0ZTtcbiAgcmVnaXN0cmF0aW9uRGF0ZVN0cj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRUZW5hbnRVc2VyRGlzdHJpYnV0aW9uUXVlcnlSZXN1bHQge1xuICBpdGVtczogVGVuYW50VXNlckRpc3RyaWJ1dGlvblJlc3VsdFtdO1xuICB0b3RhbDogbnVtYmVyO1xufVxuXG4vLyNlbmRyZWdpb25cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEdldFRlbmFudFVzZXJEaXN0cmlidXRpb25RdWVyeVxuICBpbXBsZW1lbnRzIEFYUFF1ZXJ5PEdldFRlbmFudFVzZXJEaXN0cmlidXRpb25RdWVyeUlucHV0LCBHZXRUZW5hbnRVc2VyRGlzdHJpYnV0aW9uUXVlcnlSZXN1bHQ+XG57XG4gIHByaXZhdGUgcmVhZG9ubHkgZW50aXR5U2VydmljZSA9IGluamVjdChBWFBFbnRpdHlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSB0ZW5hbnRTZXJ2aWNlID0gdGhpcy5lbnRpdHlTZXJ2aWNlXG4gICAgLndpdGhFbnRpdHkoYCR7VGVuYW50Um9vdENvbmZpZy5tb2R1bGUubmFtZX0uJHtUZW5hbnRSb290Q29uZmlnLmVudGl0aWVzLnRlbmFudC5uYW1lfWApXG4gICAgLmRhdGE8c3RyaW5nLCBBWE1UZW5hbnRNYW5hZ2VtZW50VGVuYW50RW50aXR5TW9kZWw+KCk7XG4gIHByaXZhdGUgdGVuYW50VXNlclNlcnZpY2UgPSB0aGlzLmVudGl0eVNlcnZpY2VcbiAgICAud2l0aEVudGl0eShgJHtUZW5hbnRSb290Q29uZmlnLm1vZHVsZS5uYW1lfS4ke1RlbmFudFJvb3RDb25maWcuZW50aXRpZXMudGVuYW50VXNlci5uYW1lfWApXG4gICAgLmRhdGE8c3RyaW5nLCBBWE1UZW5hbnRNYW5hZ2VtZW50VGVuYW50VXNlckVudGl0eU1vZGVsPigpO1xuXG4gIGFzeW5jIGZldGNoKGlucHV0OiBHZXRUZW5hbnRVc2VyRGlzdHJpYnV0aW9uUXVlcnlJbnB1dCk6IFByb21pc2U8R2V0VGVuYW50VXNlckRpc3RyaWJ1dGlvblF1ZXJ5UmVzdWx0PiB7XG4gICAgLy8gR2V0IGFsbCB0ZW5hbnRzXG4gICAgY29uc3QgdGVuYW50c1Jlc3VsdCA9IGF3YWl0IHRoaXMudGVuYW50U2VydmljZS5xdWVyeSh7XG4gICAgICBza2lwOiAwLFxuICAgICAgdGFrZTogMTAwMDAsXG4gICAgICBmaWx0ZXI6XG4gICAgICAgIGlucHV0LmZpbHRlcnMgJiYgaW5wdXQuZmlsdGVycy5sZW5ndGggPiAwXG4gICAgICAgICAgPyAoe1xuICAgICAgICAgICAgICBsb2dpYzogaW5wdXQubG9naWMgfHwgJ2FuZCcsXG4gICAgICAgICAgICAgIGZpbHRlcnM6IGlucHV0LmZpbHRlcnMuZmlsdGVyKChmKSA9PiBmLmZpZWxkICE9PSAnZGF0ZVJhbmdlJyksXG4gICAgICAgICAgICB9IGFzIGFueSlcbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9KTtcblxuICAgIGxldCB0ZW5hbnRzID0gdGVuYW50c1Jlc3VsdC5pdGVtcztcblxuICAgIC8vIEFwcGx5IGRhdGUgcmFuZ2UgZmlsdGVyIGlmIHByb3ZpZGVkXG4gICAgaWYgKGlucHV0LmZpbHRlcnMpIHtcbiAgICAgIGZvciAoY29uc3QgZmlsdGVyIG9mIGlucHV0LmZpbHRlcnMpIHtcbiAgICAgICAgaWYgKGZpbHRlci5maWVsZCA9PT0gJ2RhdGVSYW5nZScgJiYgZmlsdGVyLnZhbHVlKSB7XG4gICAgICAgICAgdGVuYW50cyA9IHRoaXMuYXBwbHlEYXRlUmFuZ2VGaWx0ZXIodGVuYW50cywgZmlsdGVyLnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEdldCBhbGwgdGVuYW50IHVzZXJzXG4gICAgY29uc3QgdGVuYW50VXNlcnNSZXN1bHQgPSBhd2FpdCB0aGlzLnRlbmFudFVzZXJTZXJ2aWNlLnF1ZXJ5KHtcbiAgICAgIHNraXA6IDAsXG4gICAgICB0YWtlOiAxMDAwMCxcbiAgICB9KTtcbiAgICBjb25zdCB0ZW5hbnRVc2VycyA9IHRlbmFudFVzZXJzUmVzdWx0Lml0ZW1zO1xuXG4gICAgLy8gQnVpbGQgcmVzdWx0cyBmb3IgZWFjaCB0ZW5hbnRcbiAgICBjb25zdCByZXN1bHRzOiBUZW5hbnRVc2VyRGlzdHJpYnV0aW9uUmVzdWx0W10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgdGVuYW50IG9mIHRlbmFudHMpIHtcbiAgICAgIC8vIEdldCB0ZW5hbnQncyB1c2Vyc1xuICAgICAgY29uc3QgdGVuYW50VXNlcnNMaXN0ID0gdGVuYW50VXNlcnMuZmlsdGVyKCh0dSkgPT4gdHUudGVuYW50SWQgPT09IHRlbmFudC5pZCk7XG5cbiAgICAgIC8vIENvdW50IGFjdGl2ZSBhbmQgaW5hY3RpdmUgdXNlcnNcbiAgICAgIGNvbnN0IGFjdGl2ZVVzZXJzID0gdGVuYW50VXNlcnNMaXN0LmZpbHRlcihcbiAgICAgICAgKHR1KSA9PiB0dS5zdGF0dXNJZCA9PT0gQVhQU3lzdGVtU3RhdHVzVHlwZS5BY3RpdmVcbiAgICAgICk7XG4gICAgICBjb25zdCBpbmFjdGl2ZVVzZXJzID0gdGVuYW50VXNlcnNMaXN0LmZpbHRlcihcbiAgICAgICAgKHR1KSA9PiB0dS5zdGF0dXNJZCAhPT0gQVhQU3lzdGVtU3RhdHVzVHlwZS5BY3RpdmVcbiAgICAgICk7XG5cbiAgICAgIC8vIENhbGN1bGF0ZSB1dGlsaXphdGlvbiBwZXJjZW50YWdlXG4gICAgICBjb25zdCBtYXhVc2VycyA9IHRlbmFudC5tYXhVc2VycztcbiAgICAgIGNvbnN0IHV0aWxpemF0aW9uUGVyY2VudCA9XG4gICAgICAgIG1heFVzZXJzICYmIG1heFVzZXJzID4gMCA/IE1hdGgucm91bmQoKHRlbmFudFVzZXJzTGlzdC5sZW5ndGggLyBtYXhVc2VycykgKiAxMDApIDogMDtcblxuICAgICAgcmVzdWx0cy5wdXNoKHtcbiAgICAgICAgdGVuYW50SWQ6IHRlbmFudC5pZCxcbiAgICAgICAgdGVuYW50TmFtZTogdGVuYW50LnRpdGxlLFxuICAgICAgICB0ZW5hbnRTdGF0dXM6IHRlbmFudC5zdGF0dXNJZCB8fCAnVW5rbm93bicsXG4gICAgICAgIHRvdGFsVXNlcnNDb3VudDogdGVuYW50VXNlcnNMaXN0Lmxlbmd0aCxcbiAgICAgICAgYWN0aXZlVXNlcnNDb3VudDogYWN0aXZlVXNlcnMubGVuZ3RoLFxuICAgICAgICBpbmFjdGl2ZVVzZXJzQ291bnQ6IGluYWN0aXZlVXNlcnMubGVuZ3RoLFxuICAgICAgICBtYXhVc2VyczogbWF4VXNlcnMsXG4gICAgICAgIHV0aWxpemF0aW9uUGVyY2VudDogdXRpbGl6YXRpb25QZXJjZW50LFxuICAgICAgICByZWdpc3RyYXRpb25EYXRlOiB0ZW5hbnQucmVnaXN0cmF0aW9uRGF0ZSxcbiAgICAgICAgcmVnaXN0cmF0aW9uRGF0ZVN0cjogdGVuYW50LnJlZ2lzdHJhdGlvbkRhdGU/LnRvSVNPU3RyaW5nKCksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBBcHBseSBzb3J0aW5nIGlmIHByb3ZpZGVkXG4gICAgaWYgKGlucHV0LnNvcnQgJiYgaW5wdXQuc29ydC5sZW5ndGggPiAwKSB7XG4gICAgICByZXN1bHRzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBzb3J0RmllbGQgb2YgaW5wdXQuc29ydCEpIHtcbiAgICAgICAgICBjb25zdCBmaWVsZCA9IHNvcnRGaWVsZC5maWVsZCBhcyBrZXlvZiBUZW5hbnRVc2VyRGlzdHJpYnV0aW9uUmVzdWx0O1xuICAgICAgICAgIGNvbnN0IGFWYWx1ZSA9IGFbZmllbGRdO1xuICAgICAgICAgIGNvbnN0IGJWYWx1ZSA9IGJbZmllbGRdO1xuICAgICAgICAgIGNvbnN0IGRpciA9IHNvcnRGaWVsZC5kaXIgPT09ICdhc2MnID8gMSA6IC0xO1xuXG4gICAgICAgICAgaWYgKGFWYWx1ZSA9PT0gdW5kZWZpbmVkICYmIGJWYWx1ZSA9PT0gdW5kZWZpbmVkKSBjb250aW51ZTtcbiAgICAgICAgICBpZiAoYVZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybiAxICogZGlyO1xuICAgICAgICAgIGlmIChiVmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIC0xICogZGlyO1xuXG4gICAgICAgICAgaWYgKGFWYWx1ZSA8IGJWYWx1ZSkgcmV0dXJuIC0xICogZGlyO1xuICAgICAgICAgIGlmIChhVmFsdWUgPiBiVmFsdWUpIHJldHVybiAxICogZGlyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIERlZmF1bHQgc29ydCBieSB0ZW5hbnQgbmFtZVxuICAgICAgcmVzdWx0cy5zb3J0KChhLCBiKSA9PiBhLnRlbmFudE5hbWUubG9jYWxlQ29tcGFyZShiLnRlbmFudE5hbWUpKTtcbiAgICB9XG5cbiAgICAvLyBBcHBseSBwYWdpbmF0aW9uXG4gICAgY29uc3Qgc2tpcCA9IGlucHV0LnNraXAgfHwgMDtcbiAgICBjb25zdCB0YWtlID0gaW5wdXQudGFrZSB8fCAxMDtcbiAgICBjb25zdCB0b3RhbCA9IHJlc3VsdHMubGVuZ3RoO1xuICAgIGNvbnN0IGl0ZW1zID0gcmVzdWx0cy5zbGljZShza2lwLCBza2lwICsgdGFrZSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaXRlbXMsXG4gICAgICB0b3RhbCxcbiAgICB9O1xuICB9XG5cbiAgLy8jcmVnaW9uIC0tLS0gICBDdXN0b20gRmlsdGVyIEhhbmRsZXJzICAgLS0tLVxuXG4gIC8qKlxuICAgKiBBcHBseSBkYXRlIHJhbmdlIGZpbHRlciB0byB0ZW5hbnRzXG4gICAqL1xuICBwcml2YXRlIGFwcGx5RGF0ZVJhbmdlRmlsdGVyKFxuICAgIHRlbmFudHM6IEFYTVRlbmFudE1hbmFnZW1lbnRUZW5hbnRFbnRpdHlNb2RlbFtdLFxuICAgIGRhdGVSYW5nZTogYW55XG4gICk6IEFYTVRlbmFudE1hbmFnZW1lbnRUZW5hbnRFbnRpdHlNb2RlbFtdIHtcbiAgICBpZiAoIWRhdGVSYW5nZSB8fCAhZGF0ZVJhbmdlLnN0YXJ0IHx8ICFkYXRlUmFuZ2UuZW5kKSB7XG4gICAgICByZXR1cm4gdGVuYW50cztcbiAgICB9XG5cbiAgICBjb25zdCBzdGFydERhdGUgPSBuZXcgRGF0ZShkYXRlUmFuZ2Uuc3RhcnQpO1xuICAgIGNvbnN0IGVuZERhdGUgPSBuZXcgRGF0ZShkYXRlUmFuZ2UuZW5kKTtcbiAgICBlbmREYXRlLnNldEhvdXJzKDIzLCA1OSwgNTksIDk5OSk7XG5cbiAgICByZXR1cm4gdGVuYW50cy5maWx0ZXIoKHRlbmFudCkgPT4ge1xuICAgICAgaWYgKCF0ZW5hbnQucmVnaXN0cmF0aW9uRGF0ZSkgcmV0dXJuIGZhbHNlO1xuICAgICAgY29uc3QgcmVnRGF0ZSA9IG5ldyBEYXRlKHRlbmFudC5yZWdpc3RyYXRpb25EYXRlKTtcbiAgICAgIHJldHVybiByZWdEYXRlID49IHN0YXJ0RGF0ZSAmJiByZWdEYXRlIDw9IGVuZERhdGU7XG4gICAgfSk7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cbn1cblxuIl19"],"names":["TenantRootConfig"],"mappings":"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"}
|