@iapps/ng-dhis2-ui 1.2.71 → 1.2.72
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 +17 -3
- package/fesm2022/iapps-ng-dhis2-ui.mjs.map +1 -1
- package/lib/modules/form/components/file-upload-field.component.d.ts +2 -0
- package/lib/modules/form/interfaces/form-field-extension.interface.d.ts +5 -0
- package/lib/modules/form/interfaces/form-field.interface.d.ts +2 -0
- package/lib/modules/form/interfaces/index.d.ts +1 -0
- package/lib/modules/form/models/form-field-group.model.d.ts +2 -0
- package/lib/modules/form/models/form-field.model.d.ts +2 -1
- package/lib/modules/form/models/form-metadata-section.model.d.ts +2 -1
- package/lib/modules/form/models/form-metadata.model.d.ts +2 -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/containers/line-list.component.d.ts +1 -1
- package/lib/modules/program-entry-form/models/program-entry-form.config.d.ts +3 -0
- package/lib/modules/program-entry-form/program-entry-form.component.d.ts +4 -4
- package/package.json +1 -1
|
@@ -4734,6 +4734,7 @@ class FormField {
|
|
|
4734
4734
|
this.selectedOptionsLabel =
|
|
4735
4735
|
options.availableOptionsLabel ?? 'Selected options';
|
|
4736
4736
|
this.allowFutureDate = options.allowFutureDate;
|
|
4737
|
+
this.extension = options.extension;
|
|
4737
4738
|
}
|
|
4738
4739
|
setMax(field) {
|
|
4739
4740
|
if (field.controlType !== 'date') {
|
|
@@ -5189,6 +5190,7 @@ class FormFieldGroup {
|
|
|
5189
5190
|
const hasOptions = (options?.length > 0 ||
|
|
5190
5191
|
dependentField !== undefined ||
|
|
5191
5192
|
fieldMetaData['hasOptions']);
|
|
5193
|
+
const extension = this.params.formFieldExtensions?.find((fieldExtension) => fieldExtension?.id === field.id);
|
|
5192
5194
|
return new FormField({
|
|
5193
5195
|
...(fieldMetaData || {}),
|
|
5194
5196
|
...field,
|
|
@@ -5216,6 +5218,7 @@ class FormFieldGroup {
|
|
|
5216
5218
|
controlType: FieldUtil.getFieldControlType(fieldMetaData['valueType'], hasOptions),
|
|
5217
5219
|
metaType: fieldMetaData['metaType'],
|
|
5218
5220
|
stepId: fieldMetaData['stepId'],
|
|
5221
|
+
extension,
|
|
5219
5222
|
});
|
|
5220
5223
|
})
|
|
5221
5224
|
.filter((field) => field);
|
|
@@ -5356,6 +5359,7 @@ class FormMetadataSection {
|
|
|
5356
5359
|
formFieldGroup,
|
|
5357
5360
|
fieldMetaData: [...this.attributes, ...this.dataElements],
|
|
5358
5361
|
locale: this.params.locale,
|
|
5362
|
+
formFieldExtensions: this.params.formFieldExtensions,
|
|
5359
5363
|
}).toJson();
|
|
5360
5364
|
});
|
|
5361
5365
|
}
|
|
@@ -5387,6 +5391,7 @@ class FormMetaData {
|
|
|
5387
5391
|
section,
|
|
5388
5392
|
program,
|
|
5389
5393
|
locale: this.params.locale,
|
|
5394
|
+
formFieldExtensions: this.params.formFieldExtensions,
|
|
5390
5395
|
}).toJson();
|
|
5391
5396
|
})
|
|
5392
5397
|
.filter((section) => section !== null);
|
|
@@ -5700,10 +5705,11 @@ class FormValue {
|
|
|
5700
5705
|
// Use of this source code is governed by a BSD-style
|
|
5701
5706
|
// license that can be found in the LICENSE file.
|
|
5702
5707
|
const FileUploadField = (props) => {
|
|
5703
|
-
const { label, id, uploadUrl, performUpload, validationText, required, hasError, onChange, onUploadSuccess, } = props;
|
|
5708
|
+
const { label, id, uploadUrl, performUpload, validationText, required, hasError, onChange, onUploadSuccess, extension } = props;
|
|
5704
5709
|
const d2 = window?.d2Web;
|
|
5705
5710
|
const [file, setFile] = useState(null);
|
|
5706
5711
|
const [uploading, setUploading] = useState();
|
|
5712
|
+
const [validationError, setValidationError] = useState(null);
|
|
5707
5713
|
const valid = useMemo(() => {
|
|
5708
5714
|
if (isUndefined(hasError)) {
|
|
5709
5715
|
return undefined;
|
|
@@ -5729,8 +5735,14 @@ const FileUploadField = (props) => {
|
|
|
5729
5735
|
}
|
|
5730
5736
|
}
|
|
5731
5737
|
};
|
|
5732
|
-
return (React__default.createElement(FileInputField, { accept:
|
|
5738
|
+
return (React__default.createElement(FileInputField, { accept: extension?.accept?.join(','), buttonLabel: "Upload a file", label: label, name: id, required: required, error: !!validationError, validationText: validationError || validationText, onChange: (event) => {
|
|
5733
5739
|
const fileItem = (event?.files || [])[0];
|
|
5740
|
+
setValidationError(null);
|
|
5741
|
+
if (extension?.sizeLimit && fileItem.size > extension?.sizeLimit) {
|
|
5742
|
+
setValidationError(`File size must not exceed ${extension.sizeLimit / (1024 * 1024)}MB`);
|
|
5743
|
+
setFile(null);
|
|
5744
|
+
return;
|
|
5745
|
+
}
|
|
5734
5746
|
setFile(fileItem);
|
|
5735
5747
|
if (performUpload) {
|
|
5736
5748
|
uploadFile(fileItem);
|
|
@@ -6157,7 +6169,7 @@ class BaseFormFieldComponent extends ReactWrapperModule {
|
|
|
6157
6169
|
});
|
|
6158
6170
|
setValue(fileId);
|
|
6159
6171
|
setTouched(true);
|
|
6160
|
-
} })));
|
|
6172
|
+
}, extension: this.field()?.extension })));
|
|
6161
6173
|
default:
|
|
6162
6174
|
return (React__default.createElement(InputField$1, { error: hasError, validationText: validationError, type: this.field().type, inputWidth: this.fieldConfig()?.inputWidth, required: this.field().required, name: this.field().id, label: this.label(), min: this.field().min?.toString(), max: this.field().max?.toString(), placeholder: this.placeholder(), value: value, readOnly: disabled, onChange: (event) => {
|
|
6163
6175
|
this.ngZone.run(() => {
|
|
@@ -7467,6 +7479,7 @@ class ProgramEntryFormFieldUtil {
|
|
|
7467
7479
|
.map((field) => {
|
|
7468
7480
|
const options = FieldDropdown.getDropdownOptions(field);
|
|
7469
7481
|
const hasOptions = options?.length > 0;
|
|
7482
|
+
const extension = this.config.formFieldExtensions?.find((fieldExtension) => fieldExtension?.id === field.id);
|
|
7470
7483
|
return new FormField({
|
|
7471
7484
|
...field,
|
|
7472
7485
|
id: field.id,
|
|
@@ -7482,6 +7495,7 @@ class ProgramEntryFormFieldUtil {
|
|
|
7482
7495
|
controlType: FieldUtil.getFieldControlType(field.valueType, hasOptions),
|
|
7483
7496
|
metaType: field.metaType,
|
|
7484
7497
|
stepId: field.stepId,
|
|
7498
|
+
extension,
|
|
7485
7499
|
});
|
|
7486
7500
|
})
|
|
7487
7501
|
.sort((a, b) => a.order ?? 0 - (b.order ?? 0));
|