@iapps/ng-dhis2-ui 1.1.14 → 1.1.16
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: option.id, value: option.id, label: option.name, dataTest: `${dataTest}-period-type-option-${option.id}` }))))),
|
|
2046
|
+
: filterPeriodTypesById(getFixedPeriodsOptions(), excludedPeriodTypes)).map((option) => (React__default.createElement(SingleSelectOption, { key: crypto.randomUUID() || 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: option.id, value: option.id, label: option.name, dataTest: `${dataTest}-option-${option.id}` })))),
|
|
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: crypto.randomUUID() || 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;
|
|
@@ -3097,9 +3097,36 @@ const matchesCondition = (eventValue, operator, filterValue) => {
|
|
|
3097
3097
|
return false;
|
|
3098
3098
|
}
|
|
3099
3099
|
};
|
|
3100
|
-
const getFilteredTrackedEntityInstances = (
|
|
3101
|
-
|
|
3102
|
-
|
|
3100
|
+
// export const getFilteredTrackedEntityInstances = (
|
|
3101
|
+
// trackedEntityInstance: TrackedEntityInstance[],
|
|
3102
|
+
// filters: FilterConfig[]
|
|
3103
|
+
// ): TrackedEntityInstance[] => {
|
|
3104
|
+
// return trackedEntityInstance.filter(
|
|
3105
|
+
// (trackedEntityInstance: TrackedEntityInstance) =>
|
|
3106
|
+
// trackedEntityInstance.enrollments.some((enrollment) =>
|
|
3107
|
+
// enrollment.events.some((event) =>
|
|
3108
|
+
// filters.every(
|
|
3109
|
+
// (filter) =>
|
|
3110
|
+
// event.programStage === filter.programStage &&
|
|
3111
|
+
// event.dataValues.some(
|
|
3112
|
+
// (dataValue) =>
|
|
3113
|
+
// dataValue.dataElement === filter.dataElement &&
|
|
3114
|
+
// matchesCondition(
|
|
3115
|
+
// dataValue.value,
|
|
3116
|
+
// filter.operator,
|
|
3117
|
+
// filter.value
|
|
3118
|
+
// )
|
|
3119
|
+
// )
|
|
3120
|
+
// )
|
|
3121
|
+
// )
|
|
3122
|
+
// )
|
|
3123
|
+
// );
|
|
3124
|
+
// };
|
|
3125
|
+
const getFilteredTrackedEntityInstances = (trackedEntityInstances, filters) => {
|
|
3126
|
+
if (!filters.length)
|
|
3127
|
+
return trackedEntityInstances;
|
|
3128
|
+
return trackedEntityInstances.filter((tei) => filters.every((filter) => tei.enrollments?.some((enrollment) => enrollment.events?.some((event) => event.programStage === filter.programStage &&
|
|
3129
|
+
event.dataValues?.some((dataValue) => dataValue.dataElement === filter.dataElement &&
|
|
3103
3130
|
matchesCondition(dataValue.value, filter.operator, filter.value))))));
|
|
3104
3131
|
};
|
|
3105
3132
|
|
|
@@ -4781,7 +4808,7 @@ class BaseFormFieldComponent extends ReactWrapperModule {
|
|
|
4781
4808
|
});
|
|
4782
4809
|
setValue(event.selected);
|
|
4783
4810
|
setTouched(true);
|
|
4784
|
-
} }, (this.field().options || []).map((option) => (React__default.createElement(SingleSelectOption, { key: option.key, label: option.label, value: option.value })))));
|
|
4811
|
+
} }, (this.field().options || []).map((option) => (React__default.createElement(SingleSelectOption, { key: crypto.randomUUID() || option.key, label: option.label, value: option.value })))));
|
|
4785
4812
|
case 'multi-dropdown':
|
|
4786
4813
|
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) => {
|
|
4787
4814
|
const selectedValue = (event.selected || []).join(',');
|
|
@@ -5662,12 +5689,12 @@ class SelectionFiltersComponent extends ReactWrapperModule {
|
|
|
5662
5689
|
display: 'grid',
|
|
5663
5690
|
gridTemplateColumns: 'repeat(4, 1fr)',
|
|
5664
5691
|
gap: '16px',
|
|
5665
|
-
} }, 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) })))))),
|
|
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: crypto.randomUUID() || 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) })))))),
|
|
5666
5693
|
React__default.createElement("div", { style: {
|
|
5667
5694
|
display: 'grid',
|
|
5668
5695
|
gridTemplateColumns: 'repeat(4, 1fr)',
|
|
5669
5696
|
gap: '16px',
|
|
5670
|
-
} }, 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) })))))),
|
|
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: crypto.randomUUID() || 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) })))))),
|
|
5671
5698
|
React__default.createElement("div", { style: { textAlign: 'right', marginTop: '16px' } },
|
|
5672
5699
|
React__default.createElement(Button$1, { onClick: handleSearch }, "Search"))));
|
|
5673
5700
|
};
|
|
@@ -5763,26 +5790,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.8", ngImpor
|
|
|
5763
5790
|
class TrackerFormComponent {
|
|
5764
5791
|
constructor() {
|
|
5765
5792
|
this.program = input.required();
|
|
5793
|
+
this.trackedEntity = input();
|
|
5766
5794
|
this.d2 = window.d2Web;
|
|
5767
5795
|
}
|
|
5768
5796
|
async ngOnInit() {
|
|
5769
5797
|
this.trackerQuery = this.d2.trackerModule.trackedEntity.setProgram(this.program());
|
|
5770
5798
|
const program = await this.trackerQuery.getMetaData();
|
|
5771
|
-
|
|
5799
|
+
this.instance = this.trackedEntity()
|
|
5800
|
+
? (await this.trackerQuery
|
|
5801
|
+
.setTrackedEntity(this.trackedEntity())
|
|
5802
|
+
.get()).data || (await this.trackerQuery.create())
|
|
5803
|
+
: await this.trackerQuery.create();
|
|
5772
5804
|
if (program) {
|
|
5773
5805
|
this.formMetaData = new FormMetaData({
|
|
5774
5806
|
programs: [program],
|
|
5775
5807
|
}).toJson();
|
|
5808
|
+
console.log(this.formMetaData, this.instance.enrollmentDate);
|
|
5776
5809
|
}
|
|
5777
5810
|
}
|
|
5778
5811
|
onSave(event) { }
|
|
5779
5812
|
onCancel() { }
|
|
5780
5813
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: TrackerFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5781
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.8", type: TrackerFormComponent, isStandalone: false, selector: "ng-dhis2-ui-tracker-form", inputs: { program: { classPropertyName: "program", publicName: "program", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "@if(formMetaData) {\n<ng-dhis2-ui-section-form\n [formMetaData]=\"formMetaData\"\n [dataValueEntities]=\"
|
|
5814
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.8", type: TrackerFormComponent, isStandalone: false, selector: "ng-dhis2-ui-tracker-form", inputs: { program: { classPropertyName: "program", publicName: "program", isSignal: true, isRequired: true, transformFunction: null }, trackedEntity: { classPropertyName: "trackedEntity", publicName: "trackedEntity", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if(formMetaData) {\n<ng-dhis2-ui-section-form\n [formMetaData]=\"formMetaData\"\n [dataValueEntities]=\"instance\"\n (save)=\"onSave($event)\"\n (cancel)=\"onCancel()\"\n/>\n}\n", dependencies: [{ kind: "component", type: SectionFormComponent, selector: "ng-dhis2-ui-section-form", inputs: ["loading", "formMetaData", "dataValueEntities"], outputs: ["save", "formUpdate", "cancel"] }] }); }
|
|
5782
5815
|
}
|
|
5783
5816
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: TrackerFormComponent, decorators: [{
|
|
5784
5817
|
type: Component,
|
|
5785
|
-
args: [{ selector: 'ng-dhis2-ui-tracker-form', standalone: false, template: "@if(formMetaData) {\n<ng-dhis2-ui-section-form\n [formMetaData]=\"formMetaData\"\n [dataValueEntities]=\"
|
|
5818
|
+
args: [{ selector: 'ng-dhis2-ui-tracker-form', standalone: false, template: "@if(formMetaData) {\n<ng-dhis2-ui-section-form\n [formMetaData]=\"formMetaData\"\n [dataValueEntities]=\"instance\"\n (save)=\"onSave($event)\"\n (cancel)=\"onCancel()\"\n/>\n}\n" }]
|
|
5786
5819
|
}] });
|
|
5787
5820
|
|
|
5788
5821
|
class TrackerFormModule {
|