@acorex/connectivity 20.6.0-next.11 → 20.6.0-next.12
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/api/index.d.ts
CHANGED
|
@@ -368,77 +368,20 @@ interface AXCReportLayoutDefinition {
|
|
|
368
368
|
};
|
|
369
369
|
isDefault?: boolean;
|
|
370
370
|
}
|
|
371
|
-
declare class
|
|
371
|
+
declare class AXCReportCategoryApiProvider implements AXPReportCategoryProvider {
|
|
372
372
|
private readonly http;
|
|
373
373
|
private readonly configs;
|
|
374
374
|
private readonly baseUrl;
|
|
375
|
-
private categoryDataCache;
|
|
376
|
-
private rootCategoriesCache;
|
|
377
|
-
private pendingRequests;
|
|
378
|
-
private pendingRootCategoriesRequest;
|
|
379
|
-
/**
|
|
380
|
-
* Fetch root categories (no parent). Only root categories without reports and children.
|
|
381
|
-
* Uses cache and pending requests to avoid duplicate API calls.
|
|
382
|
-
*/
|
|
383
|
-
getRootCategories(): Promise<AXCReportCategoryApiItem[]>;
|
|
384
|
-
/**
|
|
385
|
-
* Fetch category data for a given parentId.
|
|
386
|
-
* Returns the parent category with its FolderItems (children) and ReportDefinitionItems (reports).
|
|
387
|
-
* Uses cache to avoid duplicate API calls.
|
|
388
|
-
*/
|
|
389
|
-
getCategoryData(parentId: string): Promise<AXCReportCategoryApiItem | undefined>;
|
|
390
|
-
/**
|
|
391
|
-
* Fetch both child categories and reports for a given parentId.
|
|
392
|
-
* This method ensures only one API call is made and both results are returned.
|
|
393
|
-
*/
|
|
394
|
-
getCategoryChildrenAndReports(parentId: string): Promise<{
|
|
395
|
-
categories: AXCReportCategoryApiItem[];
|
|
396
|
-
reports: AXCReportDefinitionApiItem[];
|
|
397
|
-
}>;
|
|
398
|
-
/**
|
|
399
|
-
* Fetch child categories of a given parent.
|
|
400
|
-
* Uses getCategoryData to get FolderItems (children) from the parent category.
|
|
401
|
-
*/
|
|
402
|
-
getChildCategories(parentId: string): Promise<AXCReportCategoryApiItem[]>;
|
|
403
|
-
/**
|
|
404
|
-
* Fetch report definitions that belong to a specific category.
|
|
405
|
-
* Uses getCategoryData to get ReportDefinitionItems (reports) from the category.
|
|
406
|
-
*/
|
|
407
|
-
getCategoryReports(categoryId: string): Promise<AXCReportDefinitionApiItem[]>;
|
|
408
|
-
/**
|
|
409
|
-
* Fetch a single category by id.
|
|
410
|
-
* First checks cache, then uses getCategoryData if not found in cache.
|
|
411
|
-
*/
|
|
412
|
-
getCategoryById(id: string): Promise<AXCReportCategoryApiItem | undefined>;
|
|
413
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<AXCReportManagementDataService, never>;
|
|
414
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<AXCReportManagementDataService>;
|
|
415
|
-
}
|
|
416
|
-
/**
|
|
417
|
-
* Category provider that uses the shared data service.
|
|
418
|
-
* Both providers use the same dataService instance which ensures proper caching.
|
|
419
|
-
*/
|
|
420
|
-
declare class AXCReportCategoryApiProvider implements AXPReportCategoryProvider {
|
|
421
|
-
private readonly dataService;
|
|
422
375
|
getList(parentId?: string): Promise<AXPReportCategory[]>;
|
|
423
376
|
getById(id: string): Promise<AXPReportCategory | undefined>;
|
|
424
|
-
/**
|
|
425
|
-
* Map API category to report category with optimized count properties
|
|
426
|
-
*
|
|
427
|
-
* Performance: Uses direct counts from API instead of boolean flags
|
|
428
|
-
* - childrenCount: Number of child categories (folderCount)
|
|
429
|
-
* - itemsCount: Number of direct reports (itemCount)
|
|
430
|
-
*/
|
|
431
377
|
private mapApiCategoryToReportCategory;
|
|
432
378
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXCReportCategoryApiProvider, never>;
|
|
433
379
|
static ɵprov: i0.ɵɵInjectableDeclaration<AXCReportCategoryApiProvider>;
|
|
434
380
|
}
|
|
435
|
-
/**
|
|
436
|
-
* Definition provider that uses the shared data service.
|
|
437
|
-
* Both providers use the same dataService instance which ensures proper caching.
|
|
438
|
-
*/
|
|
439
381
|
declare class AXCReportDefinitionApiProvider implements AXPReportDefinitionProvider {
|
|
440
|
-
private readonly dataService;
|
|
441
382
|
private readonly http;
|
|
383
|
+
private readonly configs;
|
|
384
|
+
private readonly baseUrl;
|
|
442
385
|
getList(categoryId: string): Promise<AXPReportDefinition[]>;
|
|
443
386
|
getById(id: string): Promise<AXPReportDefinition | undefined>;
|
|
444
387
|
private mapApiReportDefinitionItemToReportDefinition;
|
|
@@ -446,11 +389,6 @@ declare class AXCReportDefinitionApiProvider implements AXPReportDefinitionProvi
|
|
|
446
389
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXCReportDefinitionApiProvider, never>;
|
|
447
390
|
static ɵprov: i0.ɵɵInjectableDeclaration<AXCReportDefinitionApiProvider>;
|
|
448
391
|
}
|
|
449
|
-
/**
|
|
450
|
-
* Both providers use the same dataService instance (which is a singleton),
|
|
451
|
-
* ensuring they share the same cache and only one API call is made when both
|
|
452
|
-
* getCategories and getReportsByCategoryId are called for the same categoryId.
|
|
453
|
-
*/
|
|
454
392
|
declare const AXC_REPORT_CATEGORY_API_PROVIDER: {
|
|
455
393
|
provide: i0.InjectionToken<_acorex_modules_report_management.AXPReportCategoryProviderToken[]>;
|
|
456
394
|
useClass: typeof AXCReportCategoryApiProvider;
|
|
@@ -462,5 +400,5 @@ declare const AXC_REPORT_DEFINITION_API_PROVIDER: {
|
|
|
462
400
|
multi: boolean;
|
|
463
401
|
};
|
|
464
402
|
|
|
465
|
-
export { APIGoogleStrategy, AXCAPIOidcStrategy, AXCApiEntityStorageService, AXCApiModule, AXCApiUserAvatarProvider, AXCReportCategoryApiProvider, AXCReportDefinitionApiProvider, AXCReportManagementApiModule,
|
|
403
|
+
export { APIGoogleStrategy, AXCAPIOidcStrategy, AXCApiEntityStorageService, AXCApiModule, AXCApiUserAvatarProvider, AXCReportCategoryApiProvider, AXCReportDefinitionApiProvider, AXCReportManagementApiModule, AXCSystemInsightReportCategoryApiProvider, AXCSystemInsightReportDefinitionApiProvider, AXC_REPORT_CATEGORY_API_PROVIDER, AXC_REPORT_DEFINITION_API_PROVIDER, AXC_SYSTEM_INSIGHT_REPORT_CATEGORY_API_PROVIDER, AXC_SYSTEM_INSIGHT_REPORT_DEFINITION_API_PROVIDER, AXMConfigurationService, AXMOidcApplicationLoader, AXMOidcFeatureLoader, AXMOidcPermissionLoader, AXMOidcTenantLoader };
|
|
466
404
|
export type { AXCReportCategoryApiItem, AXCReportCategoryApiResponse, AXCReportDefinitionApiItem, AXCReportDefinitionApiResponse, AXCReportLayoutDefinition, AXCReportParameter, AXCReportParameterGroup, AXPExecuteReportDto, AXPOAuthExternalCredentials, AXPUserPassCredentials, ApplicationConfiguration, Auth, Culture, IAuthenticationDataModel, Language, Localization, NameValue, Resource };
|
|
@@ -831,223 +831,31 @@ class AXCApiUserAvatarProvider {
|
|
|
831
831
|
}
|
|
832
832
|
|
|
833
833
|
//#endregion
|
|
834
|
-
//#region ----
|
|
835
|
-
|
|
836
|
-
// * Converts a widget string to AXPWidgetsList key
|
|
837
|
-
// */
|
|
838
|
-
// function convertWidgetStringToAXPWidgetsListKey(
|
|
839
|
-
// widgetString: string,
|
|
840
|
-
// )
|
|
841
|
-
// :
|
|
842
|
-
// | keyof typeof AXPWidgetsList.Editors
|
|
843
|
-
// | keyof typeof AXPWidgetsList.Layouts
|
|
844
|
-
// | keyof typeof AXPWidgetsList.Actions
|
|
845
|
-
// | keyof typeof AXPWidgetsList.Advanced
|
|
846
|
-
// | keyof typeof AXPWidgetsList.Templates
|
|
847
|
-
// | keyof typeof AXPWidgetsList.Entity
|
|
848
|
-
// | keyof typeof AXPWidgetsList.Theme
|
|
849
|
-
// {
|
|
850
|
-
// console.log('Converting widget string:', widgetString);
|
|
851
|
-
// // Check if the string is in format "AXPWidgetsList.Category.Key"
|
|
852
|
-
// if (widgetString.startsWith('AXPWidgetsList.')) {
|
|
853
|
-
// // Extract the key from "AXPWidgetsList.Editors.DateTimeBox" -> "DateTimeBox"
|
|
854
|
-
// const parts = widgetString.split('.');
|
|
855
|
-
// if (parts.length >= 3) {
|
|
856
|
-
// const key = parts[parts.length - 1]; // Get the last part (key)
|
|
857
|
-
// console.log('Extracted key from AXPWidgetsList format:', key);
|
|
858
|
-
// return key as any;
|
|
859
|
-
// }
|
|
860
|
-
// }
|
|
861
|
-
// // Search through all AXPWidgetsList categories to find matching widget
|
|
862
|
-
// for (const category of Object.values(AXPWidgetsList)) {
|
|
863
|
-
// if (typeof category === 'object') {
|
|
864
|
-
// for (const [key, value] of Object.entries(category)) {
|
|
865
|
-
// if (value === widgetString) {
|
|
866
|
-
// console.log('Found matching widget:', key, 'for value:', value);
|
|
867
|
-
// return key as any; // Return the AXPWidgetsList key (e.g., "DateTimeBox")
|
|
868
|
-
// }
|
|
869
|
-
// }
|
|
870
|
-
// }
|
|
871
|
-
// }
|
|
872
|
-
// console.log('Widget not found in AXPWidgetsList, returning original string:', widgetString);
|
|
873
|
-
// // If not found in AXPWidgetsList, return the original string as fallback
|
|
874
|
-
// return widgetString as any;
|
|
875
|
-
// }
|
|
876
|
-
//#endregion
|
|
877
|
-
//#region ---- Shared Data Service ----
|
|
878
|
-
class AXCReportManagementDataService {
|
|
834
|
+
//#region ---- API Providers ----
|
|
835
|
+
class AXCReportCategoryApiProvider {
|
|
879
836
|
constructor() {
|
|
880
837
|
this.http = inject(HttpClient);
|
|
881
838
|
this.configs = inject(AXP_ROOT_CONFIG_TOKEN);
|
|
882
839
|
this.baseUrl = this.configs.baseUrl;
|
|
883
|
-
// Cache for category data to avoid duplicate API calls
|
|
884
|
-
this.categoryDataCache = new Map();
|
|
885
|
-
this.rootCategoriesCache = null;
|
|
886
|
-
this.pendingRequests = new Map();
|
|
887
|
-
this.pendingRootCategoriesRequest = null;
|
|
888
|
-
}
|
|
889
|
-
//#region ---- Lazy Category/Report Fetching ----
|
|
890
|
-
/**
|
|
891
|
-
* Fetch root categories (no parent). Only root categories without reports and children.
|
|
892
|
-
* Uses cache and pending requests to avoid duplicate API calls.
|
|
893
|
-
*/
|
|
894
|
-
async getRootCategories() {
|
|
895
|
-
// Check if already cached
|
|
896
|
-
if (this.rootCategoriesCache !== null) {
|
|
897
|
-
return this.rootCategoriesCache;
|
|
898
|
-
}
|
|
899
|
-
// Check if there's already a pending request
|
|
900
|
-
if (this.pendingRootCategoriesRequest !== null) {
|
|
901
|
-
return this.pendingRootCategoriesRequest;
|
|
902
|
-
}
|
|
903
|
-
// Create the request and cache it
|
|
904
|
-
const requestPromise = (async () => {
|
|
905
|
-
try {
|
|
906
|
-
const url = `${this.baseUrl}/v1/global/report-management/category`;
|
|
907
|
-
const params = { Skip: 0, Take: 1000 };
|
|
908
|
-
const response = await firstValueFrom(this.http.get(url, { params }));
|
|
909
|
-
const all = response.items ?? [];
|
|
910
|
-
const rootCategories = all.filter((i) => !i.reportCategoryParentId);
|
|
911
|
-
// Cache the result
|
|
912
|
-
this.rootCategoriesCache = rootCategories;
|
|
913
|
-
return rootCategories;
|
|
914
|
-
}
|
|
915
|
-
finally {
|
|
916
|
-
// Remove from pending requests after completion
|
|
917
|
-
this.pendingRootCategoriesRequest = null;
|
|
918
|
-
}
|
|
919
|
-
})();
|
|
920
|
-
this.pendingRootCategoriesRequest = requestPromise;
|
|
921
|
-
return requestPromise;
|
|
922
|
-
}
|
|
923
|
-
/**
|
|
924
|
-
* Fetch category data for a given parentId.
|
|
925
|
-
* Returns the parent category with its FolderItems (children) and ReportDefinitionItems (reports).
|
|
926
|
-
* Uses cache to avoid duplicate API calls.
|
|
927
|
-
*/
|
|
928
|
-
async getCategoryData(parentId) {
|
|
929
|
-
// Check if already cached
|
|
930
|
-
if (this.categoryDataCache.has(parentId)) {
|
|
931
|
-
return this.categoryDataCache.get(parentId);
|
|
932
|
-
}
|
|
933
|
-
// Check if there's already a pending request for this category
|
|
934
|
-
if (this.pendingRequests.has(parentId)) {
|
|
935
|
-
return this.pendingRequests.get(parentId);
|
|
936
|
-
}
|
|
937
|
-
// Create the request and cache it
|
|
938
|
-
const requestPromise = (async () => {
|
|
939
|
-
try {
|
|
940
|
-
const url = `${this.baseUrl}/v1/global/report-management/category/${parentId}`;
|
|
941
|
-
const response = await firstValueFrom(this.http.get(url));
|
|
942
|
-
const categoryData = response.items?.[0];
|
|
943
|
-
// Cache the result
|
|
944
|
-
this.categoryDataCache.set(parentId, categoryData);
|
|
945
|
-
return categoryData;
|
|
946
|
-
}
|
|
947
|
-
catch {
|
|
948
|
-
const undefinedResult = undefined;
|
|
949
|
-
this.categoryDataCache.set(parentId, undefinedResult);
|
|
950
|
-
return undefinedResult;
|
|
951
|
-
}
|
|
952
|
-
finally {
|
|
953
|
-
// Remove from pending requests after completion
|
|
954
|
-
this.pendingRequests.delete(parentId);
|
|
955
|
-
}
|
|
956
|
-
})();
|
|
957
|
-
this.pendingRequests.set(parentId, requestPromise);
|
|
958
|
-
return requestPromise;
|
|
959
|
-
}
|
|
960
|
-
/**
|
|
961
|
-
* Fetch both child categories and reports for a given parentId.
|
|
962
|
-
* This method ensures only one API call is made and both results are returned.
|
|
963
|
-
*/
|
|
964
|
-
async getCategoryChildrenAndReports(parentId) {
|
|
965
|
-
const categoryData = await this.getCategoryData(parentId);
|
|
966
|
-
return {
|
|
967
|
-
categories: categoryData?.folderItems ?? [],
|
|
968
|
-
reports: categoryData?.reportDefinitionItems ?? [],
|
|
969
|
-
};
|
|
970
|
-
}
|
|
971
|
-
/**
|
|
972
|
-
* Fetch child categories of a given parent.
|
|
973
|
-
* Uses getCategoryData to get FolderItems (children) from the parent category.
|
|
974
|
-
*/
|
|
975
|
-
async getChildCategories(parentId) {
|
|
976
|
-
const categoryData = await this.getCategoryData(parentId);
|
|
977
|
-
return categoryData?.folderItems ?? [];
|
|
978
|
-
}
|
|
979
|
-
/**
|
|
980
|
-
* Fetch report definitions that belong to a specific category.
|
|
981
|
-
* Uses getCategoryData to get ReportDefinitionItems (reports) from the category.
|
|
982
|
-
*/
|
|
983
|
-
async getCategoryReports(categoryId) {
|
|
984
|
-
const categoryData = await this.getCategoryData(categoryId);
|
|
985
|
-
return categoryData?.reportDefinitionItems ?? [];
|
|
986
|
-
}
|
|
987
|
-
/**
|
|
988
|
-
* Fetch a single category by id.
|
|
989
|
-
* First checks cache, then uses getCategoryData if not found in cache.
|
|
990
|
-
*/
|
|
991
|
-
async getCategoryById(id) {
|
|
992
|
-
// First check if it's in cache (from previous getCategoryData calls)
|
|
993
|
-
if (this.categoryDataCache.has(id)) {
|
|
994
|
-
return this.categoryDataCache.get(id);
|
|
995
|
-
}
|
|
996
|
-
// Try to get from category data endpoint (which will cache it)
|
|
997
|
-
const categoryData = await this.getCategoryData(id);
|
|
998
|
-
if (categoryData) {
|
|
999
|
-
return categoryData;
|
|
1000
|
-
}
|
|
1001
|
-
// Fallback: search in root categories cache
|
|
1002
|
-
if (this.rootCategoriesCache) {
|
|
1003
|
-
const found = this.rootCategoriesCache.find((c) => c.id === id);
|
|
1004
|
-
if (found) {
|
|
1005
|
-
return found;
|
|
1006
|
-
}
|
|
1007
|
-
}
|
|
1008
|
-
// Last resort: search in all categories (but this should rarely happen)
|
|
1009
|
-
try {
|
|
1010
|
-
const url = `${this.baseUrl}/v1/global/report-management/category`;
|
|
1011
|
-
const params = { Skip: 0, Take: 1000 };
|
|
1012
|
-
const response = await firstValueFrom(this.http.get(url, { params }));
|
|
1013
|
-
const all = response.items ?? [];
|
|
1014
|
-
return all.find((c) => c.id === id);
|
|
1015
|
-
}
|
|
1016
|
-
catch {
|
|
1017
|
-
return undefined;
|
|
1018
|
-
}
|
|
1019
|
-
}
|
|
1020
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXCReportManagementDataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1021
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXCReportManagementDataService }); }
|
|
1022
|
-
}
|
|
1023
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXCReportManagementDataService, decorators: [{
|
|
1024
|
-
type: Injectable
|
|
1025
|
-
}] });
|
|
1026
|
-
//#endregion
|
|
1027
|
-
//#region ---- API Providers ----
|
|
1028
|
-
/**
|
|
1029
|
-
* Category provider that uses the shared data service.
|
|
1030
|
-
* Both providers use the same dataService instance which ensures proper caching.
|
|
1031
|
-
*/
|
|
1032
|
-
class AXCReportCategoryApiProvider {
|
|
1033
|
-
constructor() {
|
|
1034
|
-
this.dataService = inject(AXCReportManagementDataService);
|
|
1035
840
|
}
|
|
1036
841
|
async getList(parentId) {
|
|
1037
842
|
try {
|
|
1038
|
-
|
|
1039
|
-
if (
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
843
|
+
let url;
|
|
844
|
+
if (parentId) {
|
|
845
|
+
url = `${this.baseUrl}/v1/global/report-management/category/${parentId}`;
|
|
846
|
+
const response = await firstValueFrom(this.http.get(url));
|
|
847
|
+
const categoryData = response.items?.[0];
|
|
848
|
+
const filteredItems = categoryData?.folderItems ?? [];
|
|
1043
849
|
return filteredItems.map((item) => this.mapApiCategoryToReportCategory(item));
|
|
1044
850
|
}
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
851
|
+
else {
|
|
852
|
+
url = `${this.baseUrl}/v1/global/report-management/category`;
|
|
853
|
+
const params = { Skip: 0, Take: 1000 };
|
|
854
|
+
const response = await firstValueFrom(this.http.get(url, { params }));
|
|
855
|
+
const all = response.items ?? [];
|
|
856
|
+
const rootCategories = all.filter((i) => !i.reportCategoryParentId);
|
|
857
|
+
return rootCategories.map((item) => this.mapApiCategoryToReportCategory(item));
|
|
858
|
+
}
|
|
1051
859
|
}
|
|
1052
860
|
catch (error) {
|
|
1053
861
|
console.error('Error fetching report categories:', error);
|
|
@@ -1056,9 +864,17 @@ class AXCReportCategoryApiProvider {
|
|
|
1056
864
|
}
|
|
1057
865
|
async getById(id) {
|
|
1058
866
|
try {
|
|
1059
|
-
const
|
|
867
|
+
const url = `${this.baseUrl}/v1/global/report-management/category/${id}`;
|
|
868
|
+
const response = await firstValueFrom(this.http.get(url));
|
|
869
|
+
const apiItem = response.items?.[0];
|
|
1060
870
|
if (!apiItem) {
|
|
1061
|
-
|
|
871
|
+
// Fallback: search in all categories
|
|
872
|
+
const allUrl = `${this.baseUrl}/v1/global/report-management/category`;
|
|
873
|
+
const params = { Skip: 0, Take: 1000 };
|
|
874
|
+
const allResponse = await firstValueFrom(this.http.get(allUrl, { params }));
|
|
875
|
+
const all = allResponse.items ?? [];
|
|
876
|
+
const found = all.find((c) => c.id === id);
|
|
877
|
+
return found ? this.mapApiCategoryToReportCategory(found) : undefined;
|
|
1062
878
|
}
|
|
1063
879
|
return this.mapApiCategoryToReportCategory(apiItem);
|
|
1064
880
|
}
|
|
@@ -1067,21 +883,14 @@ class AXCReportCategoryApiProvider {
|
|
|
1067
883
|
return undefined;
|
|
1068
884
|
}
|
|
1069
885
|
}
|
|
1070
|
-
/**
|
|
1071
|
-
* Map API category to report category with optimized count properties
|
|
1072
|
-
*
|
|
1073
|
-
* Performance: Uses direct counts from API instead of boolean flags
|
|
1074
|
-
* - childrenCount: Number of child categories (folderCount)
|
|
1075
|
-
* - itemsCount: Number of direct reports (itemCount)
|
|
1076
|
-
*/
|
|
1077
886
|
mapApiCategoryToReportCategory(apiItem) {
|
|
1078
887
|
return {
|
|
1079
888
|
id: apiItem.id,
|
|
1080
889
|
title: apiItem.title,
|
|
1081
890
|
description: apiItem.description || undefined,
|
|
1082
891
|
parentId: apiItem.reportCategoryParentId || undefined,
|
|
1083
|
-
childrenCount: apiItem.folderCount ?? 0,
|
|
1084
|
-
itemsCount: apiItem.itemCount ?? 0,
|
|
892
|
+
childrenCount: apiItem.folderCount ?? 0,
|
|
893
|
+
itemsCount: apiItem.itemCount ?? 0,
|
|
1085
894
|
};
|
|
1086
895
|
}
|
|
1087
896
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXCReportCategoryApiProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
@@ -1090,23 +899,31 @@ class AXCReportCategoryApiProvider {
|
|
|
1090
899
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXCReportCategoryApiProvider, decorators: [{
|
|
1091
900
|
type: Injectable
|
|
1092
901
|
}] });
|
|
1093
|
-
/**
|
|
1094
|
-
* Definition provider that uses the shared data service.
|
|
1095
|
-
* Both providers use the same dataService instance which ensures proper caching.
|
|
1096
|
-
*/
|
|
1097
902
|
class AXCReportDefinitionApiProvider {
|
|
1098
903
|
constructor() {
|
|
1099
|
-
this.dataService = inject(AXCReportManagementDataService);
|
|
1100
904
|
this.http = inject(HttpClient);
|
|
905
|
+
this.configs = inject(AXP_ROOT_CONFIG_TOKEN);
|
|
906
|
+
this.baseUrl = this.configs.baseUrl;
|
|
1101
907
|
}
|
|
1102
908
|
async getList(categoryId) {
|
|
1103
909
|
try {
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
const categoryData =
|
|
910
|
+
const url = `${this.baseUrl}/v1/global/report-management/category/${categoryId}`;
|
|
911
|
+
const response = await firstValueFrom(this.http.get(url));
|
|
912
|
+
const categoryData = response.items?.[0];
|
|
1107
913
|
const defs = categoryData?.reportDefinitionItems ?? [];
|
|
1108
|
-
|
|
1109
|
-
|
|
914
|
+
// Fetch full report definitions for each item to get layouts and parameterGroups
|
|
915
|
+
const fullDefinitions = await Promise.all(defs.map(async (item) => {
|
|
916
|
+
try {
|
|
917
|
+
const reportUrl = `${this.baseUrl}/v1/global/report-management/report/${item.id}`;
|
|
918
|
+
const reportResponse = await firstValueFrom(this.http.get(reportUrl));
|
|
919
|
+
return this.mapApiReportDefinitionToReportDefinition(reportResponse);
|
|
920
|
+
}
|
|
921
|
+
catch {
|
|
922
|
+
// Fallback to item mapping if full fetch fails
|
|
923
|
+
return this.mapApiReportDefinitionItemToReportDefinition(item);
|
|
924
|
+
}
|
|
925
|
+
}));
|
|
926
|
+
return fullDefinitions;
|
|
1110
927
|
}
|
|
1111
928
|
catch (error) {
|
|
1112
929
|
console.error('Error fetching report definitions:', error);
|
|
@@ -1115,8 +932,7 @@ class AXCReportDefinitionApiProvider {
|
|
|
1115
932
|
}
|
|
1116
933
|
async getById(id) {
|
|
1117
934
|
try {
|
|
1118
|
-
|
|
1119
|
-
const url = `${this.dataService['baseUrl']}/v1/global/report-management/report/${id}`;
|
|
935
|
+
const url = `${this.baseUrl}/v1/global/report-management/report/${id}`;
|
|
1120
936
|
const response = await firstValueFrom(this.http.get(url));
|
|
1121
937
|
return this.mapApiReportDefinitionToReportDefinition(response);
|
|
1122
938
|
}
|
|
@@ -1131,13 +947,13 @@ class AXCReportDefinitionApiProvider {
|
|
|
1131
947
|
title: apiItem.title,
|
|
1132
948
|
description: apiItem.description || undefined,
|
|
1133
949
|
categoryIds: apiItem.categoryIds,
|
|
1134
|
-
parameterGroups: [],
|
|
1135
|
-
layouts: [],
|
|
1136
|
-
defaultLayoutId: '',
|
|
950
|
+
parameterGroups: [],
|
|
951
|
+
layouts: [],
|
|
952
|
+
defaultLayoutId: '',
|
|
1137
953
|
};
|
|
1138
954
|
}
|
|
1139
955
|
mapApiReportDefinitionToReportDefinition(apiResponse) {
|
|
1140
|
-
|
|
956
|
+
return {
|
|
1141
957
|
id: apiResponse.id,
|
|
1142
958
|
title: apiResponse.title,
|
|
1143
959
|
description: apiResponse.description || undefined,
|
|
@@ -1166,7 +982,6 @@ class AXCReportDefinitionApiProvider {
|
|
|
1166
982
|
})),
|
|
1167
983
|
defaultLayoutId: apiResponse.defaultLayoutId,
|
|
1168
984
|
};
|
|
1169
|
-
return res;
|
|
1170
985
|
}
|
|
1171
986
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXCReportDefinitionApiProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1172
987
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXCReportDefinitionApiProvider }); }
|
|
@@ -1175,13 +990,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
|
|
|
1175
990
|
type: Injectable
|
|
1176
991
|
}] });
|
|
1177
992
|
//#endregion
|
|
1178
|
-
//#endregion
|
|
1179
993
|
//#region ---- Provider Exports ----
|
|
1180
|
-
/**
|
|
1181
|
-
* Both providers use the same dataService instance (which is a singleton),
|
|
1182
|
-
* ensuring they share the same cache and only one API call is made when both
|
|
1183
|
-
* getCategories and getReportsByCategoryId are called for the same categoryId.
|
|
1184
|
-
*/
|
|
1185
994
|
const AXC_REPORT_CATEGORY_API_PROVIDER = {
|
|
1186
995
|
provide: AXP_REPORT_CATEGORY_PROVIDER,
|
|
1187
996
|
useClass: AXCReportCategoryApiProvider,
|
|
@@ -1197,14 +1006,13 @@ class AXCReportManagementApiModule {
|
|
|
1197
1006
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXCReportManagementApiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1198
1007
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.12", ngImport: i0, type: AXCReportManagementApiModule, imports: [AXPRuntimeModule] }); }
|
|
1199
1008
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXCReportManagementApiModule, providers: [
|
|
1200
|
-
AXCReportManagementDataService,
|
|
1201
1009
|
AXC_REPORT_CATEGORY_API_PROVIDER,
|
|
1202
1010
|
AXC_REPORT_DEFINITION_API_PROVIDER,
|
|
1203
1011
|
provideCommandSetups([
|
|
1204
1012
|
{
|
|
1205
1013
|
key: 'ReportManagement.Report:Execute',
|
|
1206
1014
|
command: () => import('./acorex-connectivity-api-execute.command-CQt_HF1B.mjs').then((c) => c.AXCReportExecuteCommand),
|
|
1207
|
-
}
|
|
1015
|
+
}
|
|
1208
1016
|
]),
|
|
1209
1017
|
], imports: [AXPRuntimeModule] }); }
|
|
1210
1018
|
}
|
|
@@ -1215,14 +1023,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
|
|
|
1215
1023
|
exports: [],
|
|
1216
1024
|
declarations: [],
|
|
1217
1025
|
providers: [
|
|
1218
|
-
AXCReportManagementDataService,
|
|
1219
1026
|
AXC_REPORT_CATEGORY_API_PROVIDER,
|
|
1220
1027
|
AXC_REPORT_DEFINITION_API_PROVIDER,
|
|
1221
1028
|
provideCommandSetups([
|
|
1222
1029
|
{
|
|
1223
1030
|
key: 'ReportManagement.Report:Execute',
|
|
1224
1031
|
command: () => import('./acorex-connectivity-api-execute.command-CQt_HF1B.mjs').then((c) => c.AXCReportExecuteCommand),
|
|
1225
|
-
}
|
|
1032
|
+
}
|
|
1226
1033
|
]),
|
|
1227
1034
|
],
|
|
1228
1035
|
}]
|
|
@@ -1684,5 +1491,5 @@ const AXC_SYSTEM_INSIGHT_REPORT_DEFINITION_API_PROVIDER = {
|
|
|
1684
1491
|
* Generated bundle index. Do not edit.
|
|
1685
1492
|
*/
|
|
1686
1493
|
|
|
1687
|
-
export { APIGoogleStrategy, AXCAPIOidcStrategy, AXCApiEntityStorageService, AXCApiModule, AXCApiUserAvatarProvider, AXCReportCategoryApiProvider, AXCReportDefinitionApiProvider, AXCReportManagementApiModule,
|
|
1494
|
+
export { APIGoogleStrategy, AXCAPIOidcStrategy, AXCApiEntityStorageService, AXCApiModule, AXCApiUserAvatarProvider, AXCReportCategoryApiProvider, AXCReportDefinitionApiProvider, AXCReportManagementApiModule, AXCSystemInsightReportCategoryApiProvider, AXCSystemInsightReportDefinitionApiProvider, AXC_REPORT_CATEGORY_API_PROVIDER, AXC_REPORT_DEFINITION_API_PROVIDER, AXC_SYSTEM_INSIGHT_REPORT_CATEGORY_API_PROVIDER, AXC_SYSTEM_INSIGHT_REPORT_DEFINITION_API_PROVIDER, AXMConfigurationService, AXMOidcApplicationLoader, AXMOidcFeatureLoader, AXMOidcPermissionLoader, AXMOidcTenantLoader };
|
|
1688
1495
|
//# sourceMappingURL=acorex-connectivity-api.mjs.map
|