@iapps/ng-dhis2-ui 1.1.66 → 1.1.68
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/iapps-ng-dhis2-ui.mjs +148 -31
- package/fesm2022/iapps-ng-dhis2-ui.mjs.map +1 -1
- package/lib/modules/form/utils/field-type.util.d.ts +1 -1
- package/lib/modules/form/utils/field.util.d.ts +1 -1
- package/lib/modules/line-list/models/line-list.models.d.ts +31 -4
- package/lib/modules/line-list/utils/line-list-utils.d.ts +2 -2
- package/package.json +1 -1
|
@@ -3446,31 +3446,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.8", ngImpor
|
|
|
3446
3446
|
type: Injectable
|
|
3447
3447
|
}], ctorParameters: () => [{ type: i1.NgxDhis2HttpClientService }] });
|
|
3448
3448
|
|
|
3449
|
-
const getProgramStageData = (
|
|
3450
|
-
|
|
3451
|
-
|
|
3452
|
-
|
|
3453
|
-
|
|
3454
|
-
|
|
3455
|
-
|
|
3456
|
-
|
|
3457
|
-
|
|
3458
|
-
|
|
3459
|
-
|
|
3460
|
-
|
|
3461
|
-
|
|
3462
|
-
|
|
3463
|
-
|
|
3464
|
-
|
|
3465
|
-
|
|
3466
|
-
|
|
3467
|
-
|
|
3468
|
-
|
|
3469
|
-
|
|
3470
|
-
|
|
3471
|
-
|
|
3472
|
-
|
|
3473
|
-
}
|
|
3449
|
+
// export const getProgramStageData = (
|
|
3450
|
+
// response: LineListResponse,
|
|
3451
|
+
// programStageId: string,
|
|
3452
|
+
// pager: any,
|
|
3453
|
+
// isOptionSetNameVisible: boolean
|
|
3454
|
+
// ): { columns: ColumnDefinition[]; data: TableRow[] } => {
|
|
3455
|
+
// const events = (response.data as EventsResponse).events;
|
|
3456
|
+
// const allDataElements = new Set<string>();
|
|
3457
|
+
// events.forEach((event: any) => {
|
|
3458
|
+
// event.dataValues.forEach((dv: any) => allDataElements.add(dv.dataElement));
|
|
3459
|
+
// });
|
|
3460
|
+
// const stageFromMetaData = response.metadata.programStages.find(
|
|
3461
|
+
// (stage: any) => stage.id === programStageId
|
|
3462
|
+
// );
|
|
3463
|
+
// if (!stageFromMetaData) {
|
|
3464
|
+
// throw new Error(`Program stage with ID ${programStageId} not found`);
|
|
3465
|
+
// }
|
|
3466
|
+
// const entityColumns = Array.from(allDataElements).map(
|
|
3467
|
+
// (dataElementId: string) => ({
|
|
3468
|
+
// label:
|
|
3469
|
+
// stageFromMetaData.programStageDataElements.find(
|
|
3470
|
+
// (psde: any) => psde.dataElement.id === dataElementId
|
|
3471
|
+
// )?.dataElement.name || dataElementId,
|
|
3472
|
+
// key: dataElementId,
|
|
3473
|
+
// })
|
|
3474
|
+
// );
|
|
3475
|
+
// const dataElementsData: TableRow[] = events.map((event: any, idx: number) => {
|
|
3476
|
+
// const row: TableRow = {
|
|
3477
|
+
// event: event.event,
|
|
3478
|
+
// index: (pager.page - 1) * pager.pageSize + idx + 1,
|
|
3479
|
+
// };
|
|
3480
|
+
// allDataElements.forEach(
|
|
3481
|
+
// (dataElementId: string) => (row[dataElementId] = '')
|
|
3482
|
+
// );
|
|
3483
|
+
// if (isOptionSetNameVisible) {
|
|
3484
|
+
// event.dataValues.forEach((dv: any) => (row[dv.dataElement] = dv.value));
|
|
3485
|
+
// } else {
|
|
3486
|
+
// event.dataValues.forEach((dv: any) => (row[dv.dataElement] = dv.value));
|
|
3487
|
+
// }
|
|
3488
|
+
// return row;
|
|
3489
|
+
// });
|
|
3490
|
+
// return { columns: entityColumns, data: dataElementsData };
|
|
3491
|
+
// };
|
|
3474
3492
|
// export const getTrackedEntityData = (
|
|
3475
3493
|
// response: LineListResponse,
|
|
3476
3494
|
// programId: string,
|
|
@@ -3603,6 +3621,44 @@ const getProgramStageData = (response, programStageId, pager) => {
|
|
|
3603
3621
|
// filteredEntityColumns: filteredEntityColumns,
|
|
3604
3622
|
// };
|
|
3605
3623
|
// };
|
|
3624
|
+
const getProgramStageData = (response, programStageId, pager, isOptionSetNameVisible) => {
|
|
3625
|
+
const events = response.data.events;
|
|
3626
|
+
const allDataElements = new Set();
|
|
3627
|
+
events.forEach((event) => {
|
|
3628
|
+
event.dataValues.forEach((dv) => allDataElements.add(dv.dataElement));
|
|
3629
|
+
});
|
|
3630
|
+
const stageFromMetaData = response.metadata.programStages.find((stage) => stage.id === programStageId);
|
|
3631
|
+
if (!stageFromMetaData) {
|
|
3632
|
+
throw new Error(`Program stage with ID ${programStageId} not found`);
|
|
3633
|
+
}
|
|
3634
|
+
const entityColumns = Array.from(allDataElements).map((dataElementId) => {
|
|
3635
|
+
const dataElementMeta = stageFromMetaData.programStageDataElements.find((psde) => psde.dataElement.id === dataElementId);
|
|
3636
|
+
return {
|
|
3637
|
+
label: dataElementMeta?.dataElement.name || dataElementId,
|
|
3638
|
+
key: dataElementId,
|
|
3639
|
+
};
|
|
3640
|
+
});
|
|
3641
|
+
const dataElementsData = events.map((event, idx) => {
|
|
3642
|
+
const row = {
|
|
3643
|
+
event: event.event,
|
|
3644
|
+
index: (pager.page - 1) * pager.pageSize + idx + 1,
|
|
3645
|
+
};
|
|
3646
|
+
allDataElements.forEach((dataElementId) => (row[dataElementId] = ''));
|
|
3647
|
+
event.dataValues.forEach((dv) => {
|
|
3648
|
+
const dataElementMeta = stageFromMetaData.programStageDataElements.find((psde) => psde.dataElement.id === dv.dataElement);
|
|
3649
|
+
if (isOptionSetNameVisible && dataElementMeta?.dataElement.optionSet) {
|
|
3650
|
+
const optionSet = dataElementMeta.dataElement.optionSet;
|
|
3651
|
+
const matchingOption = optionSet.options.find((option) => option.code === dv.value);
|
|
3652
|
+
row[dv.dataElement] = matchingOption ? matchingOption.name : dv.value;
|
|
3653
|
+
}
|
|
3654
|
+
else {
|
|
3655
|
+
row[dv.dataElement] = dv.value;
|
|
3656
|
+
}
|
|
3657
|
+
});
|
|
3658
|
+
return row;
|
|
3659
|
+
});
|
|
3660
|
+
return { columns: entityColumns, data: dataElementsData };
|
|
3661
|
+
};
|
|
3606
3662
|
const getTrackedEntityData = (response, programId, pager, isOptionSetNameVisible, filters) => {
|
|
3607
3663
|
let teis = response.data?.trackedEntities ??
|
|
3608
3664
|
response.data?.instances ??
|
|
@@ -3702,7 +3758,47 @@ const getTrackedEntityData = (response, programId, pager, isOptionSetNameVisible
|
|
|
3702
3758
|
filteredEntityColumns: filteredEntityColumns,
|
|
3703
3759
|
};
|
|
3704
3760
|
};
|
|
3705
|
-
const getEventData = (
|
|
3761
|
+
// export const getEventData = (
|
|
3762
|
+
// response: LineListResponse,
|
|
3763
|
+
// pager: any,
|
|
3764
|
+
// isOptionSetNameVisible: boolean
|
|
3765
|
+
// ): { columns: ColumnDefinition[]; data: TableRow[] } => {
|
|
3766
|
+
// const events = (response.data as EventsResponse).events;
|
|
3767
|
+
// const uniqueDataElements = new Set<string>();
|
|
3768
|
+
// events?.forEach((event: any) => {
|
|
3769
|
+
// event?.dataValues.forEach((dv: any) =>
|
|
3770
|
+
// uniqueDataElements.add(dv.dataElement)
|
|
3771
|
+
// );
|
|
3772
|
+
// });
|
|
3773
|
+
// const entityColumns = Array.from(uniqueDataElements).map(
|
|
3774
|
+
// (dataElement: string) => ({
|
|
3775
|
+
// label:
|
|
3776
|
+
// response.metadata.programStages[0].programStageDataElements.find(
|
|
3777
|
+
// (psde: any) => psde.dataElement.id === dataElement
|
|
3778
|
+
// )?.dataElement.name || dataElement,
|
|
3779
|
+
// key: dataElement,
|
|
3780
|
+
// })
|
|
3781
|
+
// );
|
|
3782
|
+
// const dataElementsData = events.map((event: any, idx: number) => {
|
|
3783
|
+
// const row: TableRow = {
|
|
3784
|
+
// event: event.event,
|
|
3785
|
+
// index: (pager.page - 1) * pager.pageSize + idx + 1,
|
|
3786
|
+
// };
|
|
3787
|
+
// uniqueDataElements.forEach(
|
|
3788
|
+
// (dataElement: string) => (row[dataElement] = '')
|
|
3789
|
+
// );
|
|
3790
|
+
// event.dataValues.forEach((dv: any) => {
|
|
3791
|
+
// if (isOptionSetNameVisible) {
|
|
3792
|
+
// return (row[dv.dataElement] = dv.value)
|
|
3793
|
+
// } else {
|
|
3794
|
+
// return (row[dv.dataElement] = dv.value)
|
|
3795
|
+
// }
|
|
3796
|
+
// });
|
|
3797
|
+
// return row;
|
|
3798
|
+
// });
|
|
3799
|
+
// return { columns: entityColumns, data: dataElementsData };
|
|
3800
|
+
// };
|
|
3801
|
+
const getEventData = (response, pager, isOptionSetNameVisible) => {
|
|
3706
3802
|
const events = response.data.events;
|
|
3707
3803
|
const uniqueDataElements = new Set();
|
|
3708
3804
|
events?.forEach((event) => {
|
|
@@ -3718,7 +3814,28 @@ const getEventData = (response, pager) => {
|
|
|
3718
3814
|
index: (pager.page - 1) * pager.pageSize + idx + 1,
|
|
3719
3815
|
};
|
|
3720
3816
|
uniqueDataElements.forEach((dataElement) => (row[dataElement] = ''));
|
|
3721
|
-
event.dataValues.forEach((dv) =>
|
|
3817
|
+
event.dataValues.forEach((dv) => {
|
|
3818
|
+
if (isOptionSetNameVisible && dv.optionSetValue) {
|
|
3819
|
+
const dataElementMetadata = response.metadata.programStages
|
|
3820
|
+
.flatMap((programStage) => programStage.programStageDataElements)
|
|
3821
|
+
.find((psde) => psde.dataElement.id === dv.dataElement)?.dataElement.optionSet;
|
|
3822
|
+
if (dataElementMetadata && dataElementMetadata.options) {
|
|
3823
|
+
const matchingOption = dataElementMetadata.options.find((option) => option.code === dv.value);
|
|
3824
|
+
if (matchingOption) {
|
|
3825
|
+
row[dv.dataElement] = matchingOption.name;
|
|
3826
|
+
}
|
|
3827
|
+
else {
|
|
3828
|
+
row[dv.dataElement] = dv.value;
|
|
3829
|
+
}
|
|
3830
|
+
}
|
|
3831
|
+
else {
|
|
3832
|
+
row[dv.dataElement] = dv.value;
|
|
3833
|
+
}
|
|
3834
|
+
}
|
|
3835
|
+
else {
|
|
3836
|
+
row[dv.dataElement] = dv.value;
|
|
3837
|
+
}
|
|
3838
|
+
});
|
|
3722
3839
|
return row;
|
|
3723
3840
|
});
|
|
3724
3841
|
return { columns: entityColumns, data: dataElementsData };
|
|
@@ -3974,7 +4091,7 @@ class LineListTableComponent extends ReactWrapperModule {
|
|
|
3974
4091
|
setStartDateState,
|
|
3975
4092
|
setEndDateState,
|
|
3976
4093
|
setIsButtonLoading,
|
|
3977
|
-
setOptionSetNameVisible
|
|
4094
|
+
setOptionSetNameVisible,
|
|
3978
4095
|
});
|
|
3979
4096
|
useEffect(() => {
|
|
3980
4097
|
this.setReactStateUpdaters?.(updateRefs.current);
|
|
@@ -3990,7 +4107,7 @@ class LineListTableComponent extends ReactWrapperModule {
|
|
|
3990
4107
|
let filteredDataColumns = [];
|
|
3991
4108
|
if (this.programStageId) {
|
|
3992
4109
|
responsePager = response.data.pager;
|
|
3993
|
-
const { columns, data } = getProgramStageData(response, this.programStageId, pager);
|
|
4110
|
+
const { columns, data } = getProgramStageData(response, this.programStageId, pager, this.isOptionSetNameVisible);
|
|
3994
4111
|
entityColumns = columns;
|
|
3995
4112
|
entityData = data;
|
|
3996
4113
|
}
|
|
@@ -4028,7 +4145,7 @@ class LineListTableComponent extends ReactWrapperModule {
|
|
|
4028
4145
|
}
|
|
4029
4146
|
else {
|
|
4030
4147
|
responsePager = response.data.pager;
|
|
4031
|
-
const { columns, data } = getEventData(response, pager);
|
|
4148
|
+
const { columns, data } = getEventData(response, pager, this.isOptionSetNameVisible);
|
|
4032
4149
|
entityColumns = columns;
|
|
4033
4150
|
entityData = data;
|
|
4034
4151
|
}
|
|
@@ -4047,7 +4164,7 @@ class LineListTableComponent extends ReactWrapperModule {
|
|
|
4047
4164
|
endDateState,
|
|
4048
4165
|
pager.page,
|
|
4049
4166
|
pager.pageSize,
|
|
4050
|
-
isOptionSetNameVisibleState
|
|
4167
|
+
isOptionSetNameVisibleState,
|
|
4051
4168
|
]);
|
|
4052
4169
|
const getDropdownOptions = (row) => {
|
|
4053
4170
|
return (this.actionOptions || []).map((option) => ({
|