@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.
@@ -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 = (response, programStageId, pager) => {
3450
- const events = response.data.events;
3451
- const allDataElements = new Set();
3452
- events.forEach((event) => {
3453
- event.dataValues.forEach((dv) => allDataElements.add(dv.dataElement));
3454
- });
3455
- const stageFromMetaData = response.metadata.programStages.find((stage) => stage.id === programStageId);
3456
- if (!stageFromMetaData) {
3457
- throw new Error(`Program stage with ID ${programStageId} not found`);
3458
- }
3459
- const entityColumns = Array.from(allDataElements).map((dataElementId) => ({
3460
- label: stageFromMetaData.programStageDataElements.find((psde) => psde.dataElement.id === dataElementId)?.dataElement.name || dataElementId,
3461
- key: dataElementId,
3462
- }));
3463
- const dataElementsData = events.map((event, idx) => {
3464
- const row = {
3465
- event: event.event,
3466
- index: (pager.page - 1) * pager.pageSize + idx + 1,
3467
- };
3468
- allDataElements.forEach((dataElementId) => (row[dataElementId] = ''));
3469
- event.dataValues.forEach((dv) => (row[dv.dataElement] = dv.value));
3470
- return row;
3471
- });
3472
- return { columns: entityColumns, data: dataElementsData };
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 = (response, pager) => {
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) => (row[dv.dataElement] = dv.value));
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) => ({