@iapps/ng-dhis2-ui 1.1.16 → 1.1.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -2043,7 +2043,7 @@ const FixedPeriodFilter = ({ allowedPeriodTypes, excludedPeriodTypes, currentPer
|
|
|
2043
2043
|
React__default.createElement("div", { className: "leftSection" },
|
|
2044
2044
|
React__default.createElement(SingleSelectField, { label: i18n.t('Period type'), onChange: ({ selected }) => onSelectPeriodType(selected), dense: true, selected: currentPeriodType, disabled: onlyAllowedTypeIsSelected, className: "filterElement", dataTest: `${dataTest}-period-type` }, (allowedPeriodTypes
|
|
2045
2045
|
? getFixedPeriodsOptions().filter((option) => allowedPeriodTypes.some((type) => type === option.id))
|
|
2046
|
-
: filterPeriodTypesById(getFixedPeriodsOptions(), excludedPeriodTypes)).map((option) => (React__default.createElement(SingleSelectOption, { key:
|
|
2046
|
+
: filterPeriodTypesById(getFixedPeriodsOptions(), excludedPeriodTypes)).map((option) => (React__default.createElement(SingleSelectOption, { key: option.id, value: option.id, label: option.name, dataTest: `${dataTest}-period-type-option-${option.id}` }))))),
|
|
2047
2047
|
React__default.createElement("div", { className: "rightSection" },
|
|
2048
2048
|
React__default.createElement(InputField$1, { label: i18n.t('Year'), className: "filterElement", type: "number", placeholder: i18n.t('Select year'), value: currentYear, onChange: ({ value }) => onSelectYear(value), dense: true, dataTest: `${dataTest}-year` })),
|
|
2049
2049
|
React__default.createElement("style", { jsx: true }, `
|
|
@@ -2074,7 +2074,7 @@ FixedPeriodFilter.propTypes = {
|
|
|
2074
2074
|
};
|
|
2075
2075
|
|
|
2076
2076
|
const RelativePeriodFilter = ({ currentFilter, onSelectFilter, dataTest, excludedPeriodTypes, }) => (React__default.createElement("div", { className: "leftSection" },
|
|
2077
|
-
React__default.createElement(SingleSelectField, { label: i18n.t('Period type'), onChange: ({ selected }) => onSelectFilter(selected), dense: true, selected: currentFilter, className: "filterElement", dataTest: dataTest }, filterPeriodTypesById(getRelativePeriodsOptions(), excludedPeriodTypes).map((option) => (React__default.createElement(SingleSelectOption, { key:
|
|
2077
|
+
React__default.createElement(SingleSelectField, { label: i18n.t('Period type'), onChange: ({ selected }) => onSelectFilter(selected), dense: true, selected: currentFilter, className: "filterElement", dataTest: dataTest }, filterPeriodTypesById(getRelativePeriodsOptions(), excludedPeriodTypes).map((option) => (React__default.createElement(SingleSelectOption, { key: option.id, value: option.id, label: option.name, dataTest: `${dataTest}-option-${option.id}` })))),
|
|
2078
2078
|
React__default.createElement("style", { jsx: true }, `
|
|
2079
2079
|
.leftSection {
|
|
2080
2080
|
flex-grow: 1;
|
|
@@ -3141,11 +3141,9 @@ class LineListService {
|
|
|
3141
3141
|
const filterParams = buildFilters(filters);
|
|
3142
3142
|
const dateFilter = startDate && endDate ? `&programStartDate=${startDate}&programEndDate=${endDate}` : '';
|
|
3143
3143
|
const ouModeIdentifier = ouMode ? `&ouMode=${ouMode}` : ``;
|
|
3144
|
-
return this.httpClient.get(`trackedEntityInstances.json?program=${programId}&ou=${orgUnit}${ouModeIdentifier}&page=${page}&pageSize=${pageSize}&fields=trackedEntityInstance,attributes[*,displayInList],enrollments[*]&totalPages=true&${filterParams}${dateFilter}`).pipe(map$1((response) => {
|
|
3145
|
-
|
|
3146
|
-
|
|
3147
|
-
tei.attributes = tei.attributes.filter((attr) => attr.displayInList);
|
|
3148
|
-
});
|
|
3144
|
+
return this.httpClient.get(`trackedEntityInstances.json?program=${programId}&ou=${orgUnit}${ouModeIdentifier}&page=${page}&pageSize=${pageSize}&fields=trackedEntityInstance,attributes[*,displayInList],enrollments[*]&totalPages=true&${filterParams}${dateFilter}&order=created:desc`).pipe(map$1((response) => {
|
|
3145
|
+
//TODO: use the api to to order by desc
|
|
3146
|
+
// response.trackedEntityInstances.reverse();
|
|
3149
3147
|
return response;
|
|
3150
3148
|
}));
|
|
3151
3149
|
}
|
|
@@ -3313,6 +3311,7 @@ class LineListTableComponent extends ReactWrapperModule {
|
|
|
3313
3311
|
this.actionSelected = new EventEmitter();
|
|
3314
3312
|
this.reactStateUpdaters = null;
|
|
3315
3313
|
this.approvalSelected = new EventEmitter();
|
|
3314
|
+
this.isButtonLoading = false;
|
|
3316
3315
|
this.setReactStateUpdaters = (updaters) => {
|
|
3317
3316
|
this.reactStateUpdaters = updaters;
|
|
3318
3317
|
};
|
|
@@ -3334,6 +3333,7 @@ class LineListTableComponent extends ReactWrapperModule {
|
|
|
3334
3333
|
const [startDateState, setStartDateState] = useState(this.startDate);
|
|
3335
3334
|
const [endDateState, setEndDateState] = useState(this.endDate);
|
|
3336
3335
|
const [loading, setLoading] = useState(false);
|
|
3336
|
+
const [isButtonLoading, setIsButtonLoading] = useState(this.isButtonLoading);
|
|
3337
3337
|
// Store updaters in refs for Angular to access
|
|
3338
3338
|
const updateRefs = useRef({
|
|
3339
3339
|
setProgramIdState,
|
|
@@ -3342,6 +3342,7 @@ class LineListTableComponent extends ReactWrapperModule {
|
|
|
3342
3342
|
setAttributeFiltersState,
|
|
3343
3343
|
setStartDateState,
|
|
3344
3344
|
setEndDateState,
|
|
3345
|
+
setIsButtonLoading,
|
|
3345
3346
|
});
|
|
3346
3347
|
useEffect(() => {
|
|
3347
3348
|
this.setReactStateUpdaters?.(updateRefs.current);
|
|
@@ -3452,8 +3453,7 @@ class LineListTableComponent extends ReactWrapperModule {
|
|
|
3452
3453
|
gap: 8,
|
|
3453
3454
|
padding: 8,
|
|
3454
3455
|
marginBottom: 16,
|
|
3455
|
-
} },
|
|
3456
|
-
React__default.createElement(Button$1, { className: "bg-blue-500 text-white px-4 py-2 rounded hover:bg-blue-600", onClick: handleApprovalClick, primary: true }, "Approval"))),
|
|
3456
|
+
} }, this.isButtonLoading ? (React__default.createElement(CircularLoader$1, { small: true })) : (React__default.createElement(Button$1, { className: "bg-blue-500 text-white px-4 py-2 rounded hover:bg-blue-600", onClick: handleApprovalClick, primary: true }, "Approval")))),
|
|
3457
3457
|
loading ? (React__default.createElement("div", { style: {
|
|
3458
3458
|
display: 'flex',
|
|
3459
3459
|
alignItems: 'center',
|
|
@@ -3501,6 +3501,9 @@ class LineListTableComponent extends ReactWrapperModule {
|
|
|
3501
3501
|
if (changes['endDate']) {
|
|
3502
3502
|
this.reactStateUpdaters.setEndDateState(this.endDate);
|
|
3503
3503
|
}
|
|
3504
|
+
if (changes['isButtonLoading']) {
|
|
3505
|
+
this.reactStateUpdaters.setIsButtonLoading(this.isButtonLoading);
|
|
3506
|
+
}
|
|
3504
3507
|
}
|
|
3505
3508
|
}
|
|
3506
3509
|
async ngAfterViewInit() {
|
|
@@ -3511,7 +3514,7 @@ class LineListTableComponent extends ReactWrapperModule {
|
|
|
3511
3514
|
this.render();
|
|
3512
3515
|
}
|
|
3513
3516
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: LineListTableComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
3514
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.8", type: LineListTableComponent, isStandalone: false, selector: "app-line-list", inputs: { programId: "programId", orgUnit: "orgUnit", programStageId: "programStageId", actionOptions: "actionOptions", attributeFilters: "attributeFilters", startDate: "startDate", endDate: "endDate", filters: "filters", ouMode: "ouMode", showApprovalButton: "showApprovalButton" }, outputs: { actionSelected: "actionSelected", approvalSelected: "approvalSelected" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["[data-test=dhis2-uiwidgets-pagination]{display:flex!important;flex-direction:row!important;justify-content:space-between!important;align-items:center!important}\n"] }); }
|
|
3517
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.8", type: LineListTableComponent, isStandalone: false, selector: "app-line-list", inputs: { programId: "programId", orgUnit: "orgUnit", programStageId: "programStageId", actionOptions: "actionOptions", attributeFilters: "attributeFilters", startDate: "startDate", endDate: "endDate", filters: "filters", ouMode: "ouMode", showApprovalButton: "showApprovalButton", isButtonLoading: "isButtonLoading" }, outputs: { actionSelected: "actionSelected", approvalSelected: "approvalSelected" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["[data-test=dhis2-uiwidgets-pagination]{display:flex!important;flex-direction:row!important;justify-content:space-between!important;align-items:center!important}\n"] }); }
|
|
3515
3518
|
}
|
|
3516
3519
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: LineListTableComponent, decorators: [{
|
|
3517
3520
|
type: Component,
|
|
@@ -3540,6 +3543,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.8", ngImpor
|
|
|
3540
3543
|
type: Output
|
|
3541
3544
|
}], approvalSelected: [{
|
|
3542
3545
|
type: Output
|
|
3546
|
+
}], isButtonLoading: [{
|
|
3547
|
+
type: Input
|
|
3543
3548
|
}] } });
|
|
3544
3549
|
|
|
3545
3550
|
class LineListModule {
|
|
@@ -4808,7 +4813,7 @@ class BaseFormFieldComponent extends ReactWrapperModule {
|
|
|
4808
4813
|
});
|
|
4809
4814
|
setValue(event.selected);
|
|
4810
4815
|
setTouched(true);
|
|
4811
|
-
} }, (this.field().options || []).map((option) => (React__default.createElement(SingleSelectOption, { key:
|
|
4816
|
+
} }, (this.field().options || []).map((option) => (React__default.createElement(SingleSelectOption, { key: option.key, label: option.label, value: option.value })))));
|
|
4812
4817
|
case 'multi-dropdown':
|
|
4813
4818
|
return (React__default.createElement(MultiSelectField, { clearText: "Clear", clearable: true, empty: "No data found", filterable: (this.field().options || []).length > 5, filterPlaceholder: "Type to filter options", error: hasError, validationText: validationError, inputWidth: this.fieldConfig()?.inputWidth, label: this.label(), name: this.field().id, required: this.field().required, loadingText: "Loading options", noMatchText: "No options found", onChange: (event) => {
|
|
4814
4819
|
const selectedValue = (event.selected || []).join(',');
|
|
@@ -5689,12 +5694,12 @@ class SelectionFiltersComponent extends ReactWrapperModule {
|
|
|
5689
5694
|
display: 'grid',
|
|
5690
5695
|
gridTemplateColumns: 'repeat(4, 1fr)',
|
|
5691
5696
|
gap: '16px',
|
|
5692
|
-
} }, filters.programAttributesFilters.map((filter, index) => (React__default.createElement("div", { key: index, style: { gridColumn: getAttributeColumnSpan(index) } }, filter.hasOptions && filter.options.length > 0 ? (React__default.createElement(SingleSelectField, { className: "single-select", label: filter.name || 'Select Option', type: filter.valueType, selected: filter.value, onChange: (event) => handleAttributeChange(index, event.selected) }, filter.options.map((option, i) => (React__default.createElement(SingleSelectOption, { key:
|
|
5697
|
+
} }, filters.programAttributesFilters.map((filter, index) => (React__default.createElement("div", { key: index, style: { gridColumn: getAttributeColumnSpan(index) } }, filter.hasOptions && filter.options.length > 0 ? (React__default.createElement(SingleSelectField, { className: "single-select", label: filter.name || 'Select Option', type: filter.valueType, selected: filter.value, onChange: (event) => handleAttributeChange(index, event.selected) }, filter.options.map((option, i) => (React__default.createElement(SingleSelectOption, { key: i, label: option.name, value: option.code }))))) : (React__default.createElement(InputField$1, { className: "input-field", label: filter.name || 'Program name', type: filter.valueType, value: filter.value, onChange: (event) => handleAttributeChange(index, event.value) })))))),
|
|
5693
5698
|
React__default.createElement("div", { style: {
|
|
5694
5699
|
display: 'grid',
|
|
5695
5700
|
gridTemplateColumns: 'repeat(4, 1fr)',
|
|
5696
5701
|
gap: '16px',
|
|
5697
|
-
} }, filters.programStageDataElementFilters.map((filter, index) => (React__default.createElement("div", { key: index, style: { gridColumn: getDataElementColumnSpan(index) } }, filter.hasOptions && filter.options.length > 0 ? (React__default.createElement(SingleSelectField, { className: "single-select", label: filter.name || 'Aggregation type', type: filter.valueType, selected: filter.value, onChange: (event) => handleDataElementChange(index, event.selected) }, filter.options.map((option, i) => (React__default.createElement(SingleSelectOption, { key:
|
|
5702
|
+
} }, filters.programStageDataElementFilters.map((filter, index) => (React__default.createElement("div", { key: index, style: { gridColumn: getDataElementColumnSpan(index) } }, filter.hasOptions && filter.options.length > 0 ? (React__default.createElement(SingleSelectField, { className: "single-select", label: filter.name || 'Aggregation type', type: filter.valueType, selected: filter.value, onChange: (event) => handleDataElementChange(index, event.selected) }, filter.options.map((option, i) => (React__default.createElement(SingleSelectOption, { key: i, label: option.name, value: option.code }))))) : (React__default.createElement(InputField$1, { className: "input-field", type: filter.valueType, label: filter.name || 'Program name', value: filter.value, onChange: (event) => handleDataElementChange(index, event.value) })))))),
|
|
5698
5703
|
React__default.createElement("div", { style: { textAlign: 'right', marginTop: '16px' } },
|
|
5699
5704
|
React__default.createElement(Button$1, { onClick: handleSearch }, "Search"))));
|
|
5700
5705
|
};
|