@iapps/ng-dhis2-ui 1.2.82 → 1.2.84
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 +131 -265
- package/fesm2022/iapps-ng-dhis2-ui.mjs.map +1 -1
- package/lib/modules/form/components/base-form-field.component.d.ts +5 -4
- package/lib/modules/form/containers/form/form.component.d.ts +10 -9
- package/lib/modules/form/containers/form-field/form-field.component.d.ts +8 -7
- package/lib/modules/form/shared/components/base-form-wrapper.component.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/components/table/tableHeader.d.ts +1 -1
- package/lib/modules/line-list/components/table/tableRow.d.ts +1 -1
- package/lib/modules/line-list/containers/line-list.component.d.ts +1 -1
- package/lib/modules/program-entry-form/program-entry-form.component.d.ts +4 -3
- package/package.json +1 -1
|
@@ -31,7 +31,7 @@ import cx from 'classnames';
|
|
|
31
31
|
import { getNowInCalendar, generateFixedPeriods } from '@dhis2/multi-calendar-dates';
|
|
32
32
|
import { Pager, DataOrderCriteria, DataQueryFilter, DataFilterCondition, ProgramRuleEngine } from '@iapps/d2-web-sdk';
|
|
33
33
|
import { map as map$1 } from 'rxjs/operators';
|
|
34
|
-
import { format, parse as parse$1 } from 'date-fns';
|
|
34
|
+
import { format, parse as parse$1, addDays } from 'date-fns';
|
|
35
35
|
import * as XLSX from 'xlsx';
|
|
36
36
|
import * as i2 from '@angular/forms';
|
|
37
37
|
import { Validators, UntypedFormControl, UntypedFormGroup, FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';
|
|
@@ -3330,7 +3330,6 @@ const FilterToolbar = ({ orgUnitLabel, selectedOrgUnit, setSelectedOrgUnit, setO
|
|
|
3330
3330
|
//date={tempStartDateState || "yyyy-mm-dd"}
|
|
3331
3331
|
clearable: !!tempStartDateState && tempStartDateState !== 'yyyy-mm-dd', date: tempStartDateState || 'yyyy-mm-dd', onDateSelect: (selectedDate) => {
|
|
3332
3332
|
setTempStartDateState(selectedDate.calendarDateString);
|
|
3333
|
-
console.log('selectedDate', selectedDate);
|
|
3334
3333
|
if (selectedDate.calendarDateString === null) {
|
|
3335
3334
|
setStartDateState(selectedDate.calendarDateString);
|
|
3336
3335
|
}
|
|
@@ -3347,7 +3346,6 @@ const FilterToolbar = ({ orgUnitLabel, selectedOrgUnit, setSelectedOrgUnit, setO
|
|
|
3347
3346
|
handleDateSelect(key, selectedDate);
|
|
3348
3347
|
const filteredFilters = dataQueryFiltersState.filter((f) => f.attribute !== key);
|
|
3349
3348
|
if (selectedDate.calendarDateString === null) {
|
|
3350
|
-
console.log('selectedDate', selectedDate);
|
|
3351
3349
|
setDataQueryFiltersState(filteredFilters);
|
|
3352
3350
|
}
|
|
3353
3351
|
} }));
|
|
@@ -3392,36 +3390,7 @@ const FilterToolbar = ({ orgUnitLabel, selectedOrgUnit, setSelectedOrgUnit, setO
|
|
|
3392
3390
|
React__default.createElement(Button$1, { onClick: handleSearch }, "Search"),
|
|
3393
3391
|
React__default.createElement(Button$1, { onClick: () => setShowAllFilters(!showAllFilters) }, showAllFilters ? 'Less Filters' : 'More Filters')))));
|
|
3394
3392
|
|
|
3395
|
-
|
|
3396
|
-
// columns,
|
|
3397
|
-
// data,
|
|
3398
|
-
// }: {
|
|
3399
|
-
// columns: any[];
|
|
3400
|
-
// data: TableRow;
|
|
3401
|
-
// }) => {
|
|
3402
|
-
// const [checked, setChecked] = useState(false);
|
|
3403
|
-
// const handleCheckboxChange = () => {
|
|
3404
|
-
// const newChecked = !checked;
|
|
3405
|
-
// setChecked(newChecked);
|
|
3406
|
-
// console.log('Header checkbox toggled. Checked:', newChecked);
|
|
3407
|
-
// console.log('Row selected:', data);
|
|
3408
|
-
// };
|
|
3409
|
-
// return (
|
|
3410
|
-
// <TableHead>
|
|
3411
|
-
// <DataTableRow>
|
|
3412
|
-
// <DataTableColumnHeader width="48px">
|
|
3413
|
-
// <Checkbox checked={checked} onChange={handleCheckboxChange} />
|
|
3414
|
-
// </DataTableColumnHeader>
|
|
3415
|
-
// {columns.map((col) => (
|
|
3416
|
-
// <DataTableColumnHeader key={col.key}>
|
|
3417
|
-
// {col.label}
|
|
3418
|
-
// </DataTableColumnHeader>
|
|
3419
|
-
// ))}
|
|
3420
|
-
// </DataTableRow>
|
|
3421
|
-
// </TableHead>
|
|
3422
|
-
// );
|
|
3423
|
-
// };
|
|
3424
|
-
const TableHeader = ({ columns, allSelected, onSelectAll, selectable, showActionButtons }) => {
|
|
3393
|
+
const TableHeader = ({ columns, allSelected, onSelectAll, selectable, showActionButtons, }) => {
|
|
3425
3394
|
const handleCheckboxChange = () => {
|
|
3426
3395
|
onSelectAll(!allSelected);
|
|
3427
3396
|
};
|
|
@@ -3592,62 +3561,7 @@ const TableCell = ({ cell, getTextColorFromBackGround, }) => {
|
|
|
3592
3561
|
React__default.createElement("div", { className: "text-sm text-gray-800" }, cell?.value || '-')));
|
|
3593
3562
|
};
|
|
3594
3563
|
|
|
3595
|
-
|
|
3596
|
-
// row,
|
|
3597
|
-
// columns,
|
|
3598
|
-
// getTextColorFromBackGround,
|
|
3599
|
-
// actionOptions,
|
|
3600
|
-
// actionOptionOrientation,
|
|
3601
|
-
// actionSelected,
|
|
3602
|
-
// }: any) => {
|
|
3603
|
-
// const [isChecked, setIsChecked] = useState(false);
|
|
3604
|
-
// const handleCheckBoxChange = () => {
|
|
3605
|
-
// const newState = !isChecked;
|
|
3606
|
-
// setIsChecked(newState);
|
|
3607
|
-
// console.log('Row selected:', row, 'Checked:', newState);
|
|
3608
|
-
// };
|
|
3609
|
-
// return (
|
|
3610
|
-
// <DataTableRow key={row.index.value}>
|
|
3611
|
-
// <DataTableCell width="48px">
|
|
3612
|
-
// <Checkbox
|
|
3613
|
-
// onChange={handleCheckBoxChange}
|
|
3614
|
-
// value="id_1"
|
|
3615
|
-
// checked={isChecked}
|
|
3616
|
-
// />
|
|
3617
|
-
// </DataTableCell>
|
|
3618
|
-
// {columns.map((col: any) => {
|
|
3619
|
-
// if (col.key === 'actions') {
|
|
3620
|
-
// return (
|
|
3621
|
-
// <DataTableCell key={col.key}>
|
|
3622
|
-
// {actionOptions && (
|
|
3623
|
-
// <DataTableActions
|
|
3624
|
-
// actionOptions={actionOptions}
|
|
3625
|
-
// actionOptionOrientation={actionOptionOrientation}
|
|
3626
|
-
// onClick={(option) => {
|
|
3627
|
-
// const data = row['responseData']?.['value'];
|
|
3628
|
-
// if (option.onClick) option.onClick(data);
|
|
3629
|
-
// actionSelected.emit({
|
|
3630
|
-
// action: option.label,
|
|
3631
|
-
// data,
|
|
3632
|
-
// });
|
|
3633
|
-
// }}
|
|
3634
|
-
// />
|
|
3635
|
-
// )}
|
|
3636
|
-
// </DataTableCell>
|
|
3637
|
-
// );
|
|
3638
|
-
// }
|
|
3639
|
-
// return (
|
|
3640
|
-
// <TableCell
|
|
3641
|
-
// key={col.key}
|
|
3642
|
-
// cell={row[col.key]}
|
|
3643
|
-
// getTextColorFromBackGround={getTextColorFromBackGround}
|
|
3644
|
-
// />
|
|
3645
|
-
// );
|
|
3646
|
-
// })}
|
|
3647
|
-
// </DataTableRow>
|
|
3648
|
-
// );
|
|
3649
|
-
// };
|
|
3650
|
-
const TableRow = ({ row, columns, getTextColorFromBackGround, actionOptions, actionOptionOrientation, actionSelected, isChecked, onToggle, selectable, showActionButtons }) => {
|
|
3564
|
+
const TableRow = ({ row, columns, getTextColorFromBackGround, actionOptions, actionOptionOrientation, actionSelected, isChecked, onToggle, selectable, showActionButtons, }) => {
|
|
3651
3565
|
const handleCheckBoxChange = () => {
|
|
3652
3566
|
onToggle(row);
|
|
3653
3567
|
};
|
|
@@ -4015,7 +3929,6 @@ const getEvents = (response, programStageId, pager, metaData) => {
|
|
|
4015
3929
|
return { columns: entityColumns, data: dataElementsData };
|
|
4016
3930
|
};
|
|
4017
3931
|
|
|
4018
|
-
// src/app/line-list-table.component.ts
|
|
4019
3932
|
class LineListTableComponent extends ReactWrapperModule {
|
|
4020
3933
|
constructor() {
|
|
4021
3934
|
super(...arguments);
|
|
@@ -4120,7 +4033,7 @@ class LineListTableComponent extends ReactWrapperModule {
|
|
|
4120
4033
|
}
|
|
4121
4034
|
const isTracker = metaData.programType === 'WITH_REGISTRATION';
|
|
4122
4035
|
const isEvent = metaData.programType === 'WITHOUT_REGISTRATION';
|
|
4123
|
-
const endDate = endDateState ?? new Date()
|
|
4036
|
+
const endDate = endDateState ?? format(addDays(new Date(), 1), 'yyyy-MM-dd');
|
|
4124
4037
|
if (this.programStageId || isEvent) {
|
|
4125
4038
|
setLoading(true);
|
|
4126
4039
|
d2.eventModule.event
|
|
@@ -4409,11 +4322,11 @@ class LineListTableComponent extends ReactWrapperModule {
|
|
|
4409
4322
|
this.render();
|
|
4410
4323
|
}
|
|
4411
4324
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: LineListTableComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
4412
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.8", type: LineListTableComponent, isStandalone: false, selector: "ng-dhis2-ui-line-list", inputs: { programId: "programId", orgUnit: "orgUnit", programStageId: "programStageId", actionOptions: "actionOptions", actionOptionOrientation: "actionOptionOrientation", attributeFilters: "attributeFilters", useOuModeWithOlderDHIS2Instance: "useOuModeWithOlderDHIS2Instance", startDate: "startDate", endDate: "endDate", dataQueryFilters: "dataQueryFilters", ouMode: "ouMode", isButtonLoading: "isButtonLoading", buttonFilter: "buttonFilter", filterRootOrgUnit: "filterRootOrgUnit", showFilters: "showFilters", isOptionSetNameVisible: "isOptionSetNameVisible", allowRowsSelection: "allowRowsSelection", enrollmentStatus: "enrollmentStatus", triggerRefetch: "triggerRefetch", eventStatus: "eventStatus", showActionButtons: "showActionButtons", showEnrollmentDates: "showEnrollmentDates", showDownloadButton: "showDownloadButton" }, outputs: { actionSelected: "actionSelected", rowsSelected: "rowsSelected" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["@charset \"UTF-8\";::ng-deep .custom-input{display:flex!important;gap:4px!important;align-items:center!important;border:1px solid #9fadba!important;border-radius:4px!important;margin:0;padding:0 0 0 8px;background-color:#fff!important}::ng-deep .custom-input div{margin:0!important}::ng-deep .custom-input label{font-size:12px;padding-right:0}::ng-deep .custom-input input{border:none!important;font-size:12px!important;display:flex;align-items:center;padding-left:4px;height:40px;outline:none!important;box-shadow:none!important}::ng-deep .custom-input input:focus{border:none!important;box-shadow:none!important}::ng-deep .custom-input [data-test=calendar-clear-button]{background-color:#f2f2f2!important;color:#870808!important;border-radius:6px!important;padding:4px 10px!important;font-size:0!important}::ng-deep .custom-input [data-test=calendar-clear-button]:before{content:\"\\2715\";font-size:14px;color:#870808}::ng-deep .custom-input [data-test=calendar-clear-button]:hover{background-color:#ddd}::ng-deep .calendar-input-wrapper{position:relative}::ng-deep .calendar-input-wrapper .custom-input{position:relative;width:100%;display:flex;align-items:center}::ng-deep .calendar-input-wrapper [data-test=calendar-clear-button]{right:8px;bottom:14px;margin:auto;display:flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:0!important;background-color:#a0adba!important;border-radius:50%;padding:2px;cursor:pointer}::ng-deep .calendar-input-wrapper [data-test=calendar-clear-button]:before{content:\"\\2715\";font-size:10px;color:#f0f0f0}::ng-deep .calendar-input-wrapper input{padding-right:40px!important;height:40px;line-height:40px;box-sizing:border-box}::ng-deep .custom-input label{color:gray!important;opacity:1}::ng-deep .table-top-toolbar{background-color:var(--colors-grey100)!important;color:var(--colors-grey900)!important}::ng-deep .custom-select-input{display:flex!important;gap:4px!important;align-items:center!important;border:1px solid #9fadba!important;border-radius:4px!important;margin:0;padding:0 0 0 8px;background-color:#fff!important}::ng-deep .custom-select-input div{margin:0!important}::ng-deep .custom-select-input [data-test=dhis2-uiwidgets-singleselectfield-label]{font-size:12px;color:gray!important}::ng-deep .custom-select-input [data-test=dhis2-uicore-select-input]{border:none!important;font-size:12px!important;display:flex;align-items:center;padding-left:4px;height:40px;outline:none!important;box-shadow:none!important}::ng-deep .custom-select-input [data-test=dhis2-uicore-select-input]:focus-within{box-shadow:none!important}::ng-deep .custom-select-input input:focus{border:none!important;box-shadow:none!important}\n"] }); }
|
|
4325
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.8", type: LineListTableComponent, isStandalone: false, selector: "ng-dhis2-ui-line-list", inputs: { programId: "programId", orgUnit: "orgUnit", programStageId: "programStageId", actionOptions: "actionOptions", actionOptionOrientation: "actionOptionOrientation", attributeFilters: "attributeFilters", useOuModeWithOlderDHIS2Instance: "useOuModeWithOlderDHIS2Instance", startDate: "startDate", endDate: "endDate", dataQueryFilters: "dataQueryFilters", ouMode: "ouMode", isButtonLoading: "isButtonLoading", buttonFilter: "buttonFilter", filterRootOrgUnit: "filterRootOrgUnit", showFilters: "showFilters", isOptionSetNameVisible: "isOptionSetNameVisible", allowRowsSelection: "allowRowsSelection", enrollmentStatus: "enrollmentStatus", triggerRefetch: "triggerRefetch", eventStatus: "eventStatus", showActionButtons: "showActionButtons", showEnrollmentDates: "showEnrollmentDates", showDownloadButton: "showDownloadButton" }, outputs: { actionSelected: "actionSelected", rowsSelected: "rowsSelected" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["@charset \"UTF-8\";::ng-deep .custom-input{display:flex!important;gap:4px!important;align-items:center!important;border:1px solid #9fadba!important;border-radius:4px!important;margin:0;padding:0 0 0 8px;background-color:#fff!important}::ng-deep .custom-input div{margin:0!important}::ng-deep .custom-input label{font-size:12px;padding-right:0}::ng-deep .custom-input input{border:none!important;font-size:12px!important;display:flex;align-items:center;padding-left:4px;height:40px;outline:none!important;box-shadow:none!important}::ng-deep .custom-input input:focus{border:none!important;box-shadow:none!important}::ng-deep .custom-input [data-test=calendar-clear-button]{background-color:#f2f2f2!important;color:#870808!important;border-radius:6px!important;padding:4px 10px!important;font-size:0!important}::ng-deep .custom-input [data-test=calendar-clear-button]:before{content:\"\\2715\";font-size:14px;color:#870808}::ng-deep .custom-input [data-test=calendar-clear-button]:hover{background-color:#ddd}::ng-deep .calendar-input-wrapper{position:relative}::ng-deep .calendar-input-wrapper .custom-input{position:relative;width:100%;display:flex;align-items:center;z-index:100}::ng-deep .calendar-input-wrapper [data-test=calendar-clear-button]{right:8px;bottom:14px;margin:auto;display:flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:0!important;background-color:#a0adba!important;border-radius:50%;padding:2px;cursor:pointer}::ng-deep .calendar-input-wrapper [data-test=calendar-clear-button]:before{content:\"\\2715\";font-size:10px;color:#f0f0f0}::ng-deep .calendar-input-wrapper input{padding-right:40px!important;height:40px;line-height:40px;box-sizing:border-box}::ng-deep .custom-input label{color:gray!important;opacity:1}::ng-deep .table-top-toolbar{background-color:var(--colors-grey100)!important;color:var(--colors-grey900)!important}::ng-deep .custom-select-input{display:flex!important;gap:4px!important;align-items:center!important;border:1px solid #9fadba!important;border-radius:4px!important;margin:0;padding:0 0 0 8px;background-color:#fff!important}::ng-deep .custom-select-input div{margin:0!important}::ng-deep .custom-select-input [data-test=dhis2-uiwidgets-singleselectfield-label]{font-size:12px;color:gray!important}::ng-deep .custom-select-input [data-test=dhis2-uicore-select-input]{border:none!important;font-size:12px!important;display:flex;align-items:center;padding-left:4px;height:40px;outline:none!important;box-shadow:none!important}::ng-deep .custom-select-input [data-test=dhis2-uicore-select-input]:focus-within{box-shadow:none!important}::ng-deep .custom-select-input input:focus{border:none!important;box-shadow:none!important}\n"] }); }
|
|
4413
4326
|
}
|
|
4414
4327
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: LineListTableComponent, decorators: [{
|
|
4415
4328
|
type: Component,
|
|
4416
|
-
args: [{ selector: 'ng-dhis2-ui-line-list', template: '<ng-content></ng-content>', standalone: false, styles: ["@charset \"UTF-8\";::ng-deep .custom-input{display:flex!important;gap:4px!important;align-items:center!important;border:1px solid #9fadba!important;border-radius:4px!important;margin:0;padding:0 0 0 8px;background-color:#fff!important}::ng-deep .custom-input div{margin:0!important}::ng-deep .custom-input label{font-size:12px;padding-right:0}::ng-deep .custom-input input{border:none!important;font-size:12px!important;display:flex;align-items:center;padding-left:4px;height:40px;outline:none!important;box-shadow:none!important}::ng-deep .custom-input input:focus{border:none!important;box-shadow:none!important}::ng-deep .custom-input [data-test=calendar-clear-button]{background-color:#f2f2f2!important;color:#870808!important;border-radius:6px!important;padding:4px 10px!important;font-size:0!important}::ng-deep .custom-input [data-test=calendar-clear-button]:before{content:\"\\2715\";font-size:14px;color:#870808}::ng-deep .custom-input [data-test=calendar-clear-button]:hover{background-color:#ddd}::ng-deep .calendar-input-wrapper{position:relative}::ng-deep .calendar-input-wrapper .custom-input{position:relative;width:100%;display:flex;align-items:center}::ng-deep .calendar-input-wrapper [data-test=calendar-clear-button]{right:8px;bottom:14px;margin:auto;display:flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:0!important;background-color:#a0adba!important;border-radius:50%;padding:2px;cursor:pointer}::ng-deep .calendar-input-wrapper [data-test=calendar-clear-button]:before{content:\"\\2715\";font-size:10px;color:#f0f0f0}::ng-deep .calendar-input-wrapper input{padding-right:40px!important;height:40px;line-height:40px;box-sizing:border-box}::ng-deep .custom-input label{color:gray!important;opacity:1}::ng-deep .table-top-toolbar{background-color:var(--colors-grey100)!important;color:var(--colors-grey900)!important}::ng-deep .custom-select-input{display:flex!important;gap:4px!important;align-items:center!important;border:1px solid #9fadba!important;border-radius:4px!important;margin:0;padding:0 0 0 8px;background-color:#fff!important}::ng-deep .custom-select-input div{margin:0!important}::ng-deep .custom-select-input [data-test=dhis2-uiwidgets-singleselectfield-label]{font-size:12px;color:gray!important}::ng-deep .custom-select-input [data-test=dhis2-uicore-select-input]{border:none!important;font-size:12px!important;display:flex;align-items:center;padding-left:4px;height:40px;outline:none!important;box-shadow:none!important}::ng-deep .custom-select-input [data-test=dhis2-uicore-select-input]:focus-within{box-shadow:none!important}::ng-deep .custom-select-input input:focus{border:none!important;box-shadow:none!important}\n"] }]
|
|
4329
|
+
args: [{ selector: 'ng-dhis2-ui-line-list', template: '<ng-content></ng-content>', standalone: false, styles: ["@charset \"UTF-8\";::ng-deep .custom-input{display:flex!important;gap:4px!important;align-items:center!important;border:1px solid #9fadba!important;border-radius:4px!important;margin:0;padding:0 0 0 8px;background-color:#fff!important}::ng-deep .custom-input div{margin:0!important}::ng-deep .custom-input label{font-size:12px;padding-right:0}::ng-deep .custom-input input{border:none!important;font-size:12px!important;display:flex;align-items:center;padding-left:4px;height:40px;outline:none!important;box-shadow:none!important}::ng-deep .custom-input input:focus{border:none!important;box-shadow:none!important}::ng-deep .custom-input [data-test=calendar-clear-button]{background-color:#f2f2f2!important;color:#870808!important;border-radius:6px!important;padding:4px 10px!important;font-size:0!important}::ng-deep .custom-input [data-test=calendar-clear-button]:before{content:\"\\2715\";font-size:14px;color:#870808}::ng-deep .custom-input [data-test=calendar-clear-button]:hover{background-color:#ddd}::ng-deep .calendar-input-wrapper{position:relative}::ng-deep .calendar-input-wrapper .custom-input{position:relative;width:100%;display:flex;align-items:center;z-index:100}::ng-deep .calendar-input-wrapper [data-test=calendar-clear-button]{right:8px;bottom:14px;margin:auto;display:flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:0!important;background-color:#a0adba!important;border-radius:50%;padding:2px;cursor:pointer}::ng-deep .calendar-input-wrapper [data-test=calendar-clear-button]:before{content:\"\\2715\";font-size:10px;color:#f0f0f0}::ng-deep .calendar-input-wrapper input{padding-right:40px!important;height:40px;line-height:40px;box-sizing:border-box}::ng-deep .custom-input label{color:gray!important;opacity:1}::ng-deep .table-top-toolbar{background-color:var(--colors-grey100)!important;color:var(--colors-grey900)!important}::ng-deep .custom-select-input{display:flex!important;gap:4px!important;align-items:center!important;border:1px solid #9fadba!important;border-radius:4px!important;margin:0;padding:0 0 0 8px;background-color:#fff!important}::ng-deep .custom-select-input div{margin:0!important}::ng-deep .custom-select-input [data-test=dhis2-uiwidgets-singleselectfield-label]{font-size:12px;color:gray!important}::ng-deep .custom-select-input [data-test=dhis2-uicore-select-input]{border:none!important;font-size:12px!important;display:flex;align-items:center;padding-left:4px;height:40px;outline:none!important;box-shadow:none!important}::ng-deep .custom-select-input [data-test=dhis2-uicore-select-input]:focus-within{box-shadow:none!important}::ng-deep .custom-select-input input:focus{border:none!important;box-shadow:none!important}\n"] }]
|
|
4417
4330
|
}], propDecorators: { programId: [{
|
|
4418
4331
|
type: Input
|
|
4419
4332
|
}], orgUnit: [{
|
|
@@ -6015,6 +5928,7 @@ class BaseFormFieldComponent extends ReactWrapperModule {
|
|
|
6015
5928
|
this.form = model.required();
|
|
6016
5929
|
this.isValid = input();
|
|
6017
5930
|
this.isValueAssigned = input();
|
|
5931
|
+
this.dataId = input();
|
|
6018
5932
|
this.value = model();
|
|
6019
5933
|
this.value$ = toObservable(this.value);
|
|
6020
5934
|
this.isValueAssigned$ = toObservable(this.isValueAssigned);
|
|
@@ -6036,13 +5950,6 @@ class BaseFormFieldComponent extends ReactWrapperModule {
|
|
|
6036
5950
|
this.component = this.InputField;
|
|
6037
5951
|
this.render();
|
|
6038
5952
|
}
|
|
6039
|
-
ngOnChanges(changes) {
|
|
6040
|
-
if (!(changes['field'] || {})?.firstChange) {
|
|
6041
|
-
this.InputField = this.#getInputField();
|
|
6042
|
-
this.component = this.#getInputField();
|
|
6043
|
-
this.render();
|
|
6044
|
-
}
|
|
6045
|
-
}
|
|
6046
5953
|
#getInputField() {
|
|
6047
5954
|
return () => {
|
|
6048
5955
|
const [value, setValue] = useState(this.form().get(this.field().id)?.value ||
|
|
@@ -6054,19 +5961,25 @@ class BaseFormFieldComponent extends ReactWrapperModule {
|
|
|
6054
5961
|
const [recordExistError, setRecordExistError] = useState();
|
|
6055
5962
|
const [checkingUniqueness, setCheckingUniqueness] = useState();
|
|
6056
5963
|
useEffect(() => {
|
|
6057
|
-
|
|
6058
|
-
|
|
6059
|
-
|
|
6060
|
-
|
|
6061
|
-
|
|
6062
|
-
|
|
6063
|
-
|
|
6064
|
-
|
|
5964
|
+
const isAssignedSubscription = this.isValueAssigned$
|
|
5965
|
+
.pipe(filter((isValueAssigned) => isValueAssigned === true))
|
|
5966
|
+
.subscribe({
|
|
5967
|
+
next: () => {
|
|
5968
|
+
const value = this.form().get(this.field().id)?.value ||
|
|
5969
|
+
this.form().get(this.field().key)?.value;
|
|
5970
|
+
setValue(value);
|
|
5971
|
+
setDisabled(true);
|
|
5972
|
+
checkValueUniqueness();
|
|
5973
|
+
},
|
|
5974
|
+
});
|
|
5975
|
+
return () => {
|
|
5976
|
+
isAssignedSubscription.unsubscribe();
|
|
5977
|
+
};
|
|
5978
|
+
}, []);
|
|
6065
5979
|
// TODO: Review error handling as take() has potential to missed any other updated error information
|
|
6066
5980
|
useEffect(() => {
|
|
6067
5981
|
const fieldErrorSubscription = this.fieldError$
|
|
6068
|
-
.pipe(filter((error) => error !== initialError), take(1)
|
|
6069
|
-
)
|
|
5982
|
+
.pipe(filter((error) => error !== initialError), take(1))
|
|
6070
5983
|
.subscribe({
|
|
6071
5984
|
next: (error) => {
|
|
6072
5985
|
setInitialError(error);
|
|
@@ -6076,7 +5989,6 @@ class BaseFormFieldComponent extends ReactWrapperModule {
|
|
|
6076
5989
|
fieldErrorSubscription.unsubscribe();
|
|
6077
5990
|
};
|
|
6078
5991
|
}, [initialError]); // Add initialError as a dependency to avoid stale closures
|
|
6079
|
-
const onChange = (payload) => setSelected(payload.selected);
|
|
6080
5992
|
const arrayValue = useMemo(() => {
|
|
6081
5993
|
if (value && value.length > 0) {
|
|
6082
5994
|
return value.split(',');
|
|
@@ -6098,24 +6010,26 @@ class BaseFormFieldComponent extends ReactWrapperModule {
|
|
|
6098
6010
|
value,
|
|
6099
6011
|
touched,
|
|
6100
6012
|
});
|
|
6013
|
+
const onValueChange = (value) => {
|
|
6014
|
+
this.ngZone.run(() => {
|
|
6015
|
+
(this.form().get(this.field().id) ||
|
|
6016
|
+
this.form().get(this.field().key))?.setValue(value);
|
|
6017
|
+
this.update.emit({
|
|
6018
|
+
form: this.form(),
|
|
6019
|
+
value,
|
|
6020
|
+
});
|
|
6021
|
+
});
|
|
6022
|
+
setValue(value);
|
|
6023
|
+
setTouched(true);
|
|
6024
|
+
};
|
|
6101
6025
|
const checkValueUniqueness = async () => {
|
|
6102
|
-
if (this.field().unique &&
|
|
6026
|
+
if (this.field().unique && value && value.length > 0 && touched) {
|
|
6103
6027
|
setCheckingUniqueness(true);
|
|
6104
6028
|
setRecordExistError(undefined);
|
|
6105
|
-
const d2 = window.d2Web;
|
|
6106
6029
|
try {
|
|
6107
|
-
const
|
|
6108
|
-
.setTrackedEntityType(this.field().trackedEntityType)
|
|
6109
|
-
.setOuMode('ACCESSIBLE')
|
|
6110
|
-
.setFilters([
|
|
6111
|
-
new DataQueryFilter()
|
|
6112
|
-
.setAttribute(this.field().id)
|
|
6113
|
-
.setCondition(DataFilterCondition.Equal)
|
|
6114
|
-
.setValue(value),
|
|
6115
|
-
])
|
|
6116
|
-
.get())?.data;
|
|
6030
|
+
const isDuplicate = await this.searchForDuplicates(value);
|
|
6117
6031
|
setCheckingUniqueness(false);
|
|
6118
|
-
if (
|
|
6032
|
+
if (isDuplicate) {
|
|
6119
6033
|
const customError = `Record with this ${this.label()} is already registered`;
|
|
6120
6034
|
(this.form().controls[this.field().id] ||
|
|
6121
6035
|
this.form().controls[this.field().key])?.setErrors({
|
|
@@ -6134,34 +6048,13 @@ class BaseFormFieldComponent extends ReactWrapperModule {
|
|
|
6134
6048
|
switch (this.field().controlType) {
|
|
6135
6049
|
case 'textarea':
|
|
6136
6050
|
return (React__default.createElement(TextAreaField, { error: hasError, validationText: validationError, inputWidth: this.fieldConfig()?.inputWidth, required: this.field().required, name: this.field().id, disabled: disabled, label: this.label(), rows: 5, placeholder: this.placeholder(), value: value, onChange: (event) => {
|
|
6137
|
-
|
|
6138
|
-
(this.form().get(this.field().id) ||
|
|
6139
|
-
this.form().get(this.field().key))?.setValue(event.value);
|
|
6140
|
-
this.immediateUpdate.emit({
|
|
6141
|
-
form: this.form(),
|
|
6142
|
-
value: event.value,
|
|
6143
|
-
});
|
|
6144
|
-
});
|
|
6145
|
-
setValue(event.value);
|
|
6146
|
-
setTouched(true);
|
|
6051
|
+
onValueChange(event.value);
|
|
6147
6052
|
}, onBlur: () => {
|
|
6148
6053
|
checkValueUniqueness();
|
|
6149
|
-
this.ngZone.run(() => {
|
|
6150
|
-
this.update.emit({ form: this.form(), value });
|
|
6151
|
-
});
|
|
6152
6054
|
} }));
|
|
6153
6055
|
case 'org-unit':
|
|
6154
6056
|
return (React__default.createElement(OrgUnitFormField, { label: this.label(), key: this.field().id, required: this.field().required, disabled: disabled, onSelectOrgUnit: (selectedOrgUnit) => {
|
|
6155
|
-
|
|
6156
|
-
(this.form().get(this.field().id) ||
|
|
6157
|
-
this.form().get(this.field().key))?.setValue(selectedOrgUnit);
|
|
6158
|
-
this.update.emit({
|
|
6159
|
-
form: this.form(),
|
|
6160
|
-
value: selectedOrgUnit,
|
|
6161
|
-
});
|
|
6162
|
-
});
|
|
6163
|
-
setValue(selectedOrgUnit);
|
|
6164
|
-
setTouched(true);
|
|
6057
|
+
onValueChange(selectedOrgUnit);
|
|
6165
6058
|
}, selected: value }));
|
|
6166
6059
|
case 'transfer':
|
|
6167
6060
|
return (React__default.createElement(Transfer, { filterable: true, filterPlaceholder: "Search", selected: selected, leftHeader: React__default.createElement("div", { style: {
|
|
@@ -6171,91 +6064,37 @@ class BaseFormFieldComponent extends ReactWrapperModule {
|
|
|
6171
6064
|
fontSize: 14,
|
|
6172
6065
|
padding: '8px 4px',
|
|
6173
6066
|
} }, this.field().selectedOptionsLabel), options: this.field().options, onChange: (event) => {
|
|
6174
|
-
|
|
6175
|
-
this.ngZone.run(() => {
|
|
6176
|
-
(this.form().get(this.field().id) ||
|
|
6177
|
-
this.form().get(this.field().key))?.setValue(event.selected);
|
|
6178
|
-
});
|
|
6179
|
-
setValue(event.selected);
|
|
6180
|
-
setTouched(true);
|
|
6181
|
-
this.update.emit({ form: this.form(), value });
|
|
6067
|
+
onValueChange(event.selected);
|
|
6182
6068
|
} }));
|
|
6183
6069
|
case 'checkbox':
|
|
6184
6070
|
return (React__default.createElement(Checkbox, { checked: Boolean(value), error: hasError, label: this.label(), name: this.field().id, disabled: disabled, onChange: (event) => {
|
|
6185
|
-
|
|
6186
|
-
(this.form().get(this.field().id) ||
|
|
6187
|
-
this.form().get(this.field().key))?.setValue(event.checked);
|
|
6188
|
-
});
|
|
6189
|
-
setValue(event.checked);
|
|
6190
|
-
setTouched(true);
|
|
6071
|
+
onValueChange(event.checked);
|
|
6191
6072
|
}, onBlur: () => {
|
|
6192
6073
|
checkValueUniqueness();
|
|
6193
|
-
this.ngZone.run(() => {
|
|
6194
|
-
this.update.emit({ form: this.form(), value });
|
|
6195
|
-
});
|
|
6196
6074
|
} }));
|
|
6197
6075
|
case 'dropdown':
|
|
6198
6076
|
return (React__default.createElement(SingleSelectField, { filterable: (this.field().options || []).length > 5, clearable: true, error: hasError, validationText: validationError, inputWidth: this.fieldConfig()?.inputWidth, disabled: disabled, required: this.field().required, className: "select", label: this.label(), selected: value, onChange: (event) => {
|
|
6199
|
-
|
|
6200
|
-
(this.form().get(this.field().id) ||
|
|
6201
|
-
this.form().get(this.field().key))?.setValue(event.selected);
|
|
6202
|
-
this.update.emit({
|
|
6203
|
-
form: this.form(),
|
|
6204
|
-
value: event.selected,
|
|
6205
|
-
});
|
|
6206
|
-
});
|
|
6207
|
-
setValue(event.selected);
|
|
6208
|
-
setTouched(true);
|
|
6077
|
+
onValueChange(event.selected);
|
|
6209
6078
|
}, onBlur: () => {
|
|
6210
6079
|
checkValueUniqueness();
|
|
6211
6080
|
} }, (this.field().options || []).map((option) => (React__default.createElement(SingleSelectOption, { key: crypto.randomUUID() || option.key, label: option.label, value: option.value })))));
|
|
6212
6081
|
case 'multi-dropdown':
|
|
6213
6082
|
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, disabled: disabled, label: this.label(), required: this.field().required, loadingText: "Loading options", noMatchText: "No options found", onChange: (event) => {
|
|
6214
6083
|
const selectedValue = (event.selected || []).join(',');
|
|
6215
|
-
|
|
6216
|
-
(this.form().get(this.field().id) ||
|
|
6217
|
-
this.form().get(this.field().key))?.setValue(selectedValue);
|
|
6218
|
-
this.update.emit({
|
|
6219
|
-
form: this.form(),
|
|
6220
|
-
value: selectedValue,
|
|
6221
|
-
});
|
|
6222
|
-
});
|
|
6223
|
-
setValue(selectedValue);
|
|
6224
|
-
setTouched(true);
|
|
6084
|
+
onValueChange(selectedValue);
|
|
6225
6085
|
}, onBlur: () => {
|
|
6226
6086
|
checkValueUniqueness();
|
|
6227
6087
|
}, selected: arrayValue }, (this.field().options || []).map((option) => (React__default.createElement(MultiSelectOption, { key: option.key, label: option.label, value: option.value })))));
|
|
6228
6088
|
case 'file':
|
|
6229
6089
|
return (React__default.createElement(React__default.Fragment, null,
|
|
6230
6090
|
React__default.createElement(FileUploadField, { label: this.label(), id: this.field().id, hasError: hasError, required: this.field().required, validationText: validationError, performUpload: true, uploadUrl: 'fileResources', onUploadSuccess: (fileId) => {
|
|
6231
|
-
|
|
6232
|
-
this.form().get(this.field().id) ||
|
|
6233
|
-
this.form().get(this.field().key)?.setValue(fileId);
|
|
6234
|
-
this.update.emit({
|
|
6235
|
-
form: this.form(),
|
|
6236
|
-
value: fileId,
|
|
6237
|
-
});
|
|
6238
|
-
});
|
|
6239
|
-
setValue(fileId);
|
|
6240
|
-
setTouched(true);
|
|
6091
|
+
onValueChange(fileId);
|
|
6241
6092
|
}, extension: this.field()?.extension })));
|
|
6242
6093
|
default:
|
|
6243
6094
|
return (React__default.createElement(InputField$1, { error: hasError, validationText: validationError, type: this.field().type, inputWidth: 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) => {
|
|
6244
|
-
|
|
6245
|
-
(this.form().get(this.field().id) ||
|
|
6246
|
-
this.form().get(this.field().key))?.setValue(event.value);
|
|
6247
|
-
this.immediateUpdate.emit({
|
|
6248
|
-
form: this.form(),
|
|
6249
|
-
value: event.value,
|
|
6250
|
-
});
|
|
6251
|
-
});
|
|
6252
|
-
setValue(event.value);
|
|
6253
|
-
setTouched(true);
|
|
6095
|
+
onValueChange(event.value);
|
|
6254
6096
|
}, onBlur: () => {
|
|
6255
6097
|
checkValueUniqueness();
|
|
6256
|
-
this.ngZone.run(() => {
|
|
6257
|
-
this.update.emit({ form: this.form(), value });
|
|
6258
|
-
});
|
|
6259
6098
|
} }));
|
|
6260
6099
|
}
|
|
6261
6100
|
};
|
|
@@ -6276,8 +6115,44 @@ class BaseFormFieldComponent extends ReactWrapperModule {
|
|
|
6276
6115
|
onChange(event) {
|
|
6277
6116
|
this.value.set(event);
|
|
6278
6117
|
}
|
|
6118
|
+
async searchForDuplicates(value) {
|
|
6119
|
+
const d2 = window.d2Web;
|
|
6120
|
+
if (!value) {
|
|
6121
|
+
return false;
|
|
6122
|
+
}
|
|
6123
|
+
switch (this.field().metaType) {
|
|
6124
|
+
case 'ATTRIBUTE': {
|
|
6125
|
+
const data = (await d2.trackerModule.trackedEntity
|
|
6126
|
+
.setTrackedEntityType(this.field().trackedEntityType)
|
|
6127
|
+
.setOuMode('ACCESSIBLE')
|
|
6128
|
+
.setFilters([
|
|
6129
|
+
new DataQueryFilter()
|
|
6130
|
+
.setAttribute(this.field().id)
|
|
6131
|
+
.setCondition(DataFilterCondition.Equal)
|
|
6132
|
+
.setValue(value),
|
|
6133
|
+
])
|
|
6134
|
+
.get())?.data;
|
|
6135
|
+
return (data?.filter((trackedEntity) => trackedEntity.trackedEntity !== this.dataId())?.length > 0);
|
|
6136
|
+
}
|
|
6137
|
+
case 'DATA_ELEMENT': {
|
|
6138
|
+
const data = (await d2.eventModule.event
|
|
6139
|
+
.setOuMode('ACCESSIBLE')
|
|
6140
|
+
.setFilters([
|
|
6141
|
+
new DataQueryFilter()
|
|
6142
|
+
.setAttribute(this.field().id)
|
|
6143
|
+
.setCondition(DataFilterCondition.Equal)
|
|
6144
|
+
.setValue(value)
|
|
6145
|
+
.setType('DATA_ELEMENT'),
|
|
6146
|
+
])
|
|
6147
|
+
.get())?.data;
|
|
6148
|
+
return (data?.filter((event) => event.event !== this.dataId())?.length > 0);
|
|
6149
|
+
}
|
|
6150
|
+
default:
|
|
6151
|
+
return false;
|
|
6152
|
+
}
|
|
6153
|
+
}
|
|
6279
6154
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: BaseFormFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
6280
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.1.8", type: BaseFormFieldComponent, isStandalone: true, inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, fieldError: { classPropertyName: "fieldError", publicName: "fieldError", isSignal: true, isRequired: false, transformFunction: null }, fieldConfig: { classPropertyName: "fieldConfig", publicName: "fieldConfig", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: true, transformFunction: null }, isValid: { classPropertyName: "isValid", publicName: "isValid", isSignal: true, isRequired: false, transformFunction: null }, isValueAssigned: { classPropertyName: "isValueAssigned", publicName: "isValueAssigned", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { form: "formChange", value: "valueChange", update: "update", immediateUpdate: "immediateUpdate" }, usesInheritance: true,
|
|
6155
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.1.8", type: BaseFormFieldComponent, isStandalone: true, inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, fieldError: { classPropertyName: "fieldError", publicName: "fieldError", isSignal: true, isRequired: false, transformFunction: null }, fieldConfig: { classPropertyName: "fieldConfig", publicName: "fieldConfig", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: true, transformFunction: null }, isValid: { classPropertyName: "isValid", publicName: "isValid", isSignal: true, isRequired: false, transformFunction: null }, isValueAssigned: { classPropertyName: "isValueAssigned", publicName: "isValueAssigned", isSignal: true, isRequired: false, transformFunction: null }, dataId: { classPropertyName: "dataId", publicName: "dataId", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { form: "formChange", value: "valueChange", update: "update", immediateUpdate: "immediateUpdate" }, usesInheritance: true, ngImport: i0 }); }
|
|
6281
6156
|
}
|
|
6282
6157
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: BaseFormFieldComponent, decorators: [{
|
|
6283
6158
|
type: Directive
|
|
@@ -6303,8 +6178,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.8", ngImpor
|
|
|
6303
6178
|
class FormFieldComponent {
|
|
6304
6179
|
constructor() {
|
|
6305
6180
|
this.field = input.required();
|
|
6181
|
+
this.fieldConfig = input.required();
|
|
6182
|
+
this.isCheckBoxButton = input();
|
|
6183
|
+
this.fieldClass = input('');
|
|
6306
6184
|
this.programRuleActions = input([]);
|
|
6307
|
-
this.
|
|
6185
|
+
this.dataEntities = input({});
|
|
6186
|
+
this.minDate = input();
|
|
6187
|
+
this.maxDate = input(new Date());
|
|
6188
|
+
this.dataId = input();
|
|
6308
6189
|
this.color = 'primary';
|
|
6309
6190
|
this.fieldUpdate = new EventEmitter();
|
|
6310
6191
|
this.immediateFieldUpdate = new EventEmitter();
|
|
@@ -6483,24 +6364,12 @@ class FormFieldComponent {
|
|
|
6483
6364
|
this._runtimeOptions = [...options];
|
|
6484
6365
|
}
|
|
6485
6366
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6486
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.8", type: FormFieldComponent, isStandalone: false, selector: "ng-dhis2-ui-form-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, fieldConfig: { classPropertyName: "fieldConfig", publicName: "fieldConfig", isSignal:
|
|
6367
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.8", type: FormFieldComponent, isStandalone: false, selector: "ng-dhis2-ui-form-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, fieldConfig: { classPropertyName: "fieldConfig", publicName: "fieldConfig", isSignal: true, isRequired: true, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: false, isRequired: false, transformFunction: null }, isCheckBoxButton: { classPropertyName: "isCheckBoxButton", publicName: "isCheckBoxButton", isSignal: true, isRequired: false, transformFunction: null }, fieldClass: { classPropertyName: "fieldClass", publicName: "fieldClass", isSignal: true, isRequired: false, transformFunction: null }, programRuleActions: { classPropertyName: "programRuleActions", publicName: "programRuleActions", isSignal: true, isRequired: false, transformFunction: null }, dataEntities: { classPropertyName: "dataEntities", publicName: "dataEntities", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, dataId: { classPropertyName: "dataId", publicName: "dataId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fieldUpdate: "fieldUpdate", immediateFieldUpdate: "immediateFieldUpdate", runtimeOptionChange: "runtimeOptionChange" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"field()\" class=\"form-field-item\">\n <ng-dhis2-ui-form-field-item\n [field]=\"field()\"\n [fieldError]=\"runtimeError()\"\n [isValueAssigned]=\"isValueAssigned()\"\n [fieldConfig]=\"fieldConfig()\"\n [(form)]=\"form\"\n [dataId]=\"dataId()\"\n [value]=\"value()\"\n (update)=\"onValueChange()\"\n (immediateUpdate)=\"onImmediateChange($event)\"\n />\n</div>\n", styles: [".form-field-item{margin-bottom:16px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormFieldItemComponent, selector: "ng-dhis2-ui-form-field-item" }] }); }
|
|
6487
6368
|
}
|
|
6488
6369
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: FormFieldComponent, decorators: [{
|
|
6489
6370
|
type: Component,
|
|
6490
|
-
args: [{ selector: 'ng-dhis2-ui-form-field', standalone: false, template: "<div *ngIf=\"field()\" class=\"form-field-item\">\n <ng-dhis2-ui-form-field-item\n [field]=\"field()\"\n [fieldError]=\"runtimeError()\"\n [isValueAssigned]=\"isValueAssigned()\"\n [fieldConfig]=\"fieldConfig\"\n [(form)]=\"form\"\n [value]=\"value()\"\n (update)=\"onValueChange()\"\n (immediateUpdate)=\"onImmediateChange($event)\"\n />\n</div>\n", styles: [".form-field-item{margin-bottom:16px}\n"] }]
|
|
6491
|
-
}], ctorParameters: () => [], propDecorators: {
|
|
6492
|
-
type: Input
|
|
6493
|
-
}], form: [{
|
|
6494
|
-
type: Input
|
|
6495
|
-
}], isCheckBoxButton: [{
|
|
6496
|
-
type: Input
|
|
6497
|
-
}], fieldClass: [{
|
|
6498
|
-
type: Input
|
|
6499
|
-
}], dataEntities: [{
|
|
6500
|
-
type: Input
|
|
6501
|
-
}], minDate: [{
|
|
6502
|
-
type: Input
|
|
6503
|
-
}], maxDate: [{
|
|
6371
|
+
args: [{ selector: 'ng-dhis2-ui-form-field', standalone: false, template: "<div *ngIf=\"field()\" class=\"form-field-item\">\n <ng-dhis2-ui-form-field-item\n [field]=\"field()\"\n [fieldError]=\"runtimeError()\"\n [isValueAssigned]=\"isValueAssigned()\"\n [fieldConfig]=\"fieldConfig()\"\n [(form)]=\"form\"\n [dataId]=\"dataId()\"\n [value]=\"value()\"\n (update)=\"onValueChange()\"\n (immediateUpdate)=\"onImmediateChange($event)\"\n />\n</div>\n", styles: [".form-field-item{margin-bottom:16px}\n"] }]
|
|
6372
|
+
}], ctorParameters: () => [], propDecorators: { form: [{
|
|
6504
6373
|
type: Input
|
|
6505
6374
|
}], fieldUpdate: [{
|
|
6506
6375
|
type: Output
|
|
@@ -6512,7 +6381,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.8", ngImpor
|
|
|
6512
6381
|
|
|
6513
6382
|
class FormComponent {
|
|
6514
6383
|
get sanitizedFields() {
|
|
6515
|
-
return (this.fields || []).filter((field) => {
|
|
6384
|
+
return (this.fields() || []).filter((field) => {
|
|
6516
6385
|
if (field.hidden) {
|
|
6517
6386
|
return false;
|
|
6518
6387
|
}
|
|
@@ -6534,7 +6403,7 @@ class FormComponent {
|
|
|
6534
6403
|
});
|
|
6535
6404
|
}
|
|
6536
6405
|
get layoutCssClass() {
|
|
6537
|
-
if (!this.isFormHorizontal) {
|
|
6406
|
+
if (!this.isFormHorizontal()) {
|
|
6538
6407
|
return 'col-12';
|
|
6539
6408
|
}
|
|
6540
6409
|
const numberOfFields = this.sanitizedFields.length;
|
|
@@ -6548,11 +6417,20 @@ class FormComponent {
|
|
|
6548
6417
|
}
|
|
6549
6418
|
constructor() {
|
|
6550
6419
|
this.formConfig = input();
|
|
6420
|
+
this.fields = input.required();
|
|
6421
|
+
this.form = input.required();
|
|
6422
|
+
this.isFormHorizontal = input(false);
|
|
6423
|
+
this.showSaveButton = input(false);
|
|
6424
|
+
this.fieldsData = input();
|
|
6425
|
+
this.fieldClass = input('');
|
|
6426
|
+
this.shouldRenderAsCheckBoxesButton = input(false);
|
|
6551
6427
|
this.programRuleActions = input([]);
|
|
6428
|
+
this.dataEntities = input(undefined);
|
|
6429
|
+
this.dataId = input();
|
|
6552
6430
|
this.configuration = computed(() => {
|
|
6553
6431
|
if (!this.formConfig()) {
|
|
6554
6432
|
return new FormConfig({
|
|
6555
|
-
direction: this.isFormHorizontal ? 'horizontal' : 'vertical',
|
|
6433
|
+
direction: this.isFormHorizontal() ? 'horizontal' : 'vertical',
|
|
6556
6434
|
});
|
|
6557
6435
|
}
|
|
6558
6436
|
return this.formConfig();
|
|
@@ -6563,18 +6441,19 @@ class FormComponent {
|
|
|
6563
6441
|
});
|
|
6564
6442
|
}
|
|
6565
6443
|
ngOnChanges(changes) {
|
|
6566
|
-
this.values = this.form.getRawValue();
|
|
6444
|
+
this.values = this.form().getRawValue();
|
|
6567
6445
|
}
|
|
6568
6446
|
#processRules(ruleActions) {
|
|
6569
6447
|
ruleActions.forEach((ruleAction) => {
|
|
6570
6448
|
switch (ruleAction.actionType) {
|
|
6571
6449
|
case 'HIDEFIELD': {
|
|
6572
|
-
const fieldToRemove = this.fields.find((field) => field.id === ruleAction.field);
|
|
6450
|
+
const fieldToRemove = this.fields().find((field) => field.id === ruleAction.field);
|
|
6573
6451
|
if (fieldToRemove) {
|
|
6574
|
-
const
|
|
6452
|
+
const form = this.form();
|
|
6453
|
+
const currentValue = form.get(fieldToRemove.key)?.value;
|
|
6575
6454
|
if (currentValue != null) {
|
|
6576
|
-
|
|
6577
|
-
this.onFieldUpdate(
|
|
6455
|
+
form.get(fieldToRemove.key)?.setValue(null);
|
|
6456
|
+
this.onFieldUpdate(form, fieldToRemove);
|
|
6578
6457
|
}
|
|
6579
6458
|
}
|
|
6580
6459
|
break;
|
|
@@ -6585,24 +6464,24 @@ class FormComponent {
|
|
|
6585
6464
|
});
|
|
6586
6465
|
}
|
|
6587
6466
|
onSubmit() {
|
|
6588
|
-
this.formUpdate.emit(this.form.getRawValue());
|
|
6467
|
+
this.formUpdate.emit(this.form().getRawValue());
|
|
6589
6468
|
}
|
|
6590
6469
|
onFieldUpdate(form, field) {
|
|
6591
|
-
if (!this.showSaveButton && form) {
|
|
6592
|
-
this.formUpdate.emit(new FormValue(this.form, this.fields, field));
|
|
6470
|
+
if (!this.showSaveButton() && form) {
|
|
6471
|
+
this.formUpdate.emit(new FormValue(this.form(), this.fields(), field));
|
|
6593
6472
|
this.values = form.getRawValue();
|
|
6594
6473
|
}
|
|
6595
6474
|
}
|
|
6596
6475
|
onClear() {
|
|
6597
|
-
this.form.reset();
|
|
6476
|
+
this.form().reset();
|
|
6598
6477
|
}
|
|
6599
6478
|
isFormInValid() {
|
|
6600
|
-
return this.form.invalid;
|
|
6479
|
+
return this.form().invalid;
|
|
6601
6480
|
}
|
|
6602
6481
|
onRunTimeOptionUpdate(result) {
|
|
6603
6482
|
if (this.fieldComponents) {
|
|
6604
6483
|
const fieldToUpdate = this.fieldComponents.find((fieldComponent) => fieldComponent?.field()?.dependentField?.id === result?.field?.id);
|
|
6605
|
-
const parentOption = result?.options.find((option) => option.code === this.form?.value[result?.field?.id]);
|
|
6484
|
+
const parentOption = result?.options.find((option) => option.code === this.form()?.value[result?.field?.id]);
|
|
6606
6485
|
fieldToUpdate?.onUpdateRuntimeOptions(parentOption?.options || []);
|
|
6607
6486
|
}
|
|
6608
6487
|
}
|
|
@@ -6610,28 +6489,12 @@ class FormComponent {
|
|
|
6610
6489
|
this.ruleProcessor.destroy();
|
|
6611
6490
|
}
|
|
6612
6491
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: FormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6613
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.8", type: FormComponent, isStandalone: false, selector: "ng-dhis2-ui-form", inputs: { formConfig: { classPropertyName: "formConfig", publicName: "formConfig", isSignal: true, isRequired: false, transformFunction: null }, fields: { classPropertyName: "fields", publicName: "fields", isSignal:
|
|
6492
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.8", type: FormComponent, isStandalone: false, selector: "ng-dhis2-ui-form", inputs: { formConfig: { classPropertyName: "formConfig", publicName: "formConfig", isSignal: true, isRequired: false, transformFunction: null }, fields: { classPropertyName: "fields", publicName: "fields", isSignal: true, isRequired: true, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: true, transformFunction: null }, isFormHorizontal: { classPropertyName: "isFormHorizontal", publicName: "isFormHorizontal", isSignal: true, isRequired: false, transformFunction: null }, showSaveButton: { classPropertyName: "showSaveButton", publicName: "showSaveButton", isSignal: true, isRequired: false, transformFunction: null }, fieldsData: { classPropertyName: "fieldsData", publicName: "fieldsData", isSignal: true, isRequired: false, transformFunction: null }, fieldClass: { classPropertyName: "fieldClass", publicName: "fieldClass", isSignal: true, isRequired: false, transformFunction: null }, shouldRenderAsCheckBoxesButton: { classPropertyName: "shouldRenderAsCheckBoxesButton", publicName: "shouldRenderAsCheckBoxesButton", isSignal: true, isRequired: false, transformFunction: null }, programRuleActions: { classPropertyName: "programRuleActions", publicName: "programRuleActions", isSignal: true, isRequired: false, transformFunction: null }, dataEntities: { classPropertyName: "dataEntities", publicName: "dataEntities", isSignal: true, isRequired: false, transformFunction: null }, dataId: { classPropertyName: "dataId", publicName: "dataId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { formUpdate: "formUpdate" }, viewQueries: [{ propertyName: "fieldComponents", predicate: FormFieldComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<form [formGroup]=\"form()\" class=\"{{ configuration().directionClassName }}\">\n <!-- form name -->\n <div class=\"form-name\">\n <h2>{{ configuration().formName }}</h2>\n </div>\n <div\n *ngFor=\"let field of sanitizedFields\"\n class=\"form-field-{{ configuration().direction }}\"\n >\n <ng-dhis2-ui-form-field\n [field]=\"field\"\n [fieldConfig]=\"configuration().fieldConfig\"\n [form]=\"form()\"\n [fieldClass]=\"fieldClass()\"\n [dataEntities]=\"dataEntities()\"\n [dataId]=\"dataId()\"\n [programRuleActions]=\"programRuleActions()\"\n [isCheckBoxButton]=\"shouldRenderAsCheckBoxesButton()\"\n (fieldUpdate)=\"onFieldUpdate($event, field)\"\n (runtimeOptionChange)=\"onRunTimeOptionUpdate($event)\"\n />\n </div>\n</form>\n", styles: [".form-horizontal{display:flex;flex-wrap:wrap;gap:16px;width:100%}.hidden-field{display:none}.units-and-ranges span{margin-left:1%;font-weight:600}.for-warning{margin-left:8px}.form-field-vertical{margin-bottom:8px}.form-field-horizontal{flex:1;margin-bottom:8px;width:100%}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormFieldComponent, selector: "ng-dhis2-ui-form-field", inputs: ["field", "fieldConfig", "form", "isCheckBoxButton", "fieldClass", "programRuleActions", "dataEntities", "minDate", "maxDate", "dataId"], outputs: ["fieldUpdate", "immediateFieldUpdate", "runtimeOptionChange"] }] }); }
|
|
6614
6493
|
}
|
|
6615
6494
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: FormComponent, decorators: [{
|
|
6616
6495
|
type: Component,
|
|
6617
|
-
args: [{ selector: 'ng-dhis2-ui-form', standalone: false, template: "<form [formGroup]=\"form\" class=\"{{ configuration().directionClassName }}\">\n <!-- form name -->\n <div class=\"form-name\">\n <h2>{{ configuration().formName }}</h2>\n </div>\n <div\n *ngFor=\"let field of sanitizedFields\"\n class=\"form-field-{{ configuration().direction }}\"\n >\n <ng-dhis2-ui-form-field\n [field]=\"field\"\n [fieldConfig]=\"configuration().fieldConfig\"\n [form]=\"form\"\n [fieldClass]=\"fieldClass\"\n [dataEntities]=\"dataEntities\"\n [programRuleActions]=\"programRuleActions()\"\n [isCheckBoxButton]=\"shouldRenderAsCheckBoxesButton\"\n (fieldUpdate)=\"onFieldUpdate($event, field)\"\n (runtimeOptionChange)=\"onRunTimeOptionUpdate($event)\"\n />\n </div>\n</form>\n", styles: [".form-horizontal{display:flex;flex-wrap:wrap;gap:16px;width:100%}.hidden-field{display:none}.units-and-ranges span{margin-left:1%;font-weight:600}.for-warning{margin-left:8px}.form-field-vertical{margin-bottom:8px}.form-field-horizontal{flex:1;margin-bottom:8px;width:100%}\n"] }]
|
|
6618
|
-
}], ctorParameters: () => [], propDecorators: {
|
|
6619
|
-
type: Input
|
|
6620
|
-
}], form: [{
|
|
6621
|
-
type: Input
|
|
6622
|
-
}], isFormHorizontal: [{
|
|
6623
|
-
type: Input
|
|
6624
|
-
}], showSaveButton: [{
|
|
6625
|
-
type: Input
|
|
6626
|
-
}], fieldsData: [{
|
|
6627
|
-
type: Input
|
|
6628
|
-
}], fieldClass: [{
|
|
6629
|
-
type: Input
|
|
6630
|
-
}], shouldRenderAsCheckBoxesButton: [{
|
|
6631
|
-
type: Input
|
|
6632
|
-
}], dataEntities: [{
|
|
6633
|
-
type: Input
|
|
6634
|
-
}], formUpdate: [{
|
|
6496
|
+
args: [{ selector: 'ng-dhis2-ui-form', standalone: false, template: "<form [formGroup]=\"form()\" class=\"{{ configuration().directionClassName }}\">\n <!-- form name -->\n <div class=\"form-name\">\n <h2>{{ configuration().formName }}</h2>\n </div>\n <div\n *ngFor=\"let field of sanitizedFields\"\n class=\"form-field-{{ configuration().direction }}\"\n >\n <ng-dhis2-ui-form-field\n [field]=\"field\"\n [fieldConfig]=\"configuration().fieldConfig\"\n [form]=\"form()\"\n [fieldClass]=\"fieldClass()\"\n [dataEntities]=\"dataEntities()\"\n [dataId]=\"dataId()\"\n [programRuleActions]=\"programRuleActions()\"\n [isCheckBoxButton]=\"shouldRenderAsCheckBoxesButton()\"\n (fieldUpdate)=\"onFieldUpdate($event, field)\"\n (runtimeOptionChange)=\"onRunTimeOptionUpdate($event)\"\n />\n </div>\n</form>\n", styles: [".form-horizontal{display:flex;flex-wrap:wrap;gap:16px;width:100%}.hidden-field{display:none}.units-and-ranges span{margin-left:1%;font-weight:600}.for-warning{margin-left:8px}.form-field-vertical{margin-bottom:8px}.form-field-horizontal{flex:1;margin-bottom:8px;width:100%}\n"] }]
|
|
6497
|
+
}], ctorParameters: () => [], propDecorators: { formUpdate: [{
|
|
6635
6498
|
type: Output
|
|
6636
6499
|
}], fieldComponents: [{
|
|
6637
6500
|
type: ViewChildren,
|
|
@@ -6688,7 +6551,7 @@ class RepeatableFormComponent {
|
|
|
6688
6551
|
};
|
|
6689
6552
|
}
|
|
6690
6553
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: RepeatableFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6691
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.8", type: RepeatableFormComponent, isStandalone: false, selector: "ng-dhis2-ui-repeatable-form", inputs: { formObject: { classPropertyName: "formObject", publicName: "formObject", isSignal: false, isRequired: false, transformFunction: null }, formData: { classPropertyName: "formData", publicName: "formData", isSignal: false, isRequired: false, transformFunction: null }, fieldGroup: { classPropertyName: "fieldGroup", publicName: "fieldGroup", isSignal: true, isRequired: true, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: false, isRequired: false, transformFunction: null }, numberOfRows: { classPropertyName: "numberOfRows", publicName: "numberOfRows", isSignal: false, isRequired: false, transformFunction: null }, programRuleActions: { classPropertyName: "programRuleActions", publicName: "programRuleActions", isSignal: false, isRequired: false, transformFunction: null }, events: { classPropertyName: "events", publicName: "events", isSignal: true, isRequired: false, transformFunction: null }, program: { classPropertyName: "program", publicName: "program", isSignal: false, isRequired: false, transformFunction: null }, programStage: { classPropertyName: "programStage", publicName: "programStage", isSignal: false, isRequired: false, transformFunction: null }, repeatDependentField: { classPropertyName: "repeatDependentField", publicName: "repeatDependentField", isSignal: false, isRequired: false, transformFunction: null }, dataEntities: { classPropertyName: "dataEntities", publicName: "dataEntities", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { events: "eventsChange", repeatableStageUpdate: "repeatableStageUpdate" }, ngImport: i0, template: "<div class=\"form__repeatable-stage-container\">\n <!-- <ng-dhis2-ui-wrapper [component]=\"EventTable()\"></ng-dhis2-ui-wrapper> -->\n @if(showForm()) {\n <div class=\"form__repeatable-stage-form\">\n <ng-dhis2-ui-form\n [fields]=\"fieldGroup().fields || []\"\n [form]=\"eventForm\"\n [programRuleActions]=\"programRuleActions\"\n [dataEntities]=\"{}\"\n [isFormHorizontal]=\"false\"\n (formUpdate)=\"onFormUpdate($event)\"\n >\n </ng-dhis2-ui-form>\n\n <!-- <ng-dhis2-ui-wrapper [component]=\"FormActionButtons\"></ng-dhis2-ui-wrapper> -->\n </div>\n }\n</div>\n", styles: [".form__repeatable-stage-container{margin-top:16px}.form__repeatable-stage-form{border:solid 1px rgb(232,237,242);border-top-style:none;background-color:#fff;padding:16px}\n"], dependencies: [{ kind: "component", type: FormComponent, selector: "ng-dhis2-ui-form", inputs: ["formConfig", "fields", "form", "isFormHorizontal", "showSaveButton", "fieldsData", "fieldClass", "shouldRenderAsCheckBoxesButton", "programRuleActions", "dataEntities"], outputs: ["formUpdate"] }] }); }
|
|
6554
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.8", type: RepeatableFormComponent, isStandalone: false, selector: "ng-dhis2-ui-repeatable-form", inputs: { formObject: { classPropertyName: "formObject", publicName: "formObject", isSignal: false, isRequired: false, transformFunction: null }, formData: { classPropertyName: "formData", publicName: "formData", isSignal: false, isRequired: false, transformFunction: null }, fieldGroup: { classPropertyName: "fieldGroup", publicName: "fieldGroup", isSignal: true, isRequired: true, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: false, isRequired: false, transformFunction: null }, numberOfRows: { classPropertyName: "numberOfRows", publicName: "numberOfRows", isSignal: false, isRequired: false, transformFunction: null }, programRuleActions: { classPropertyName: "programRuleActions", publicName: "programRuleActions", isSignal: false, isRequired: false, transformFunction: null }, events: { classPropertyName: "events", publicName: "events", isSignal: true, isRequired: false, transformFunction: null }, program: { classPropertyName: "program", publicName: "program", isSignal: false, isRequired: false, transformFunction: null }, programStage: { classPropertyName: "programStage", publicName: "programStage", isSignal: false, isRequired: false, transformFunction: null }, repeatDependentField: { classPropertyName: "repeatDependentField", publicName: "repeatDependentField", isSignal: false, isRequired: false, transformFunction: null }, dataEntities: { classPropertyName: "dataEntities", publicName: "dataEntities", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { events: "eventsChange", repeatableStageUpdate: "repeatableStageUpdate" }, ngImport: i0, template: "<div class=\"form__repeatable-stage-container\">\n <!-- <ng-dhis2-ui-wrapper [component]=\"EventTable()\"></ng-dhis2-ui-wrapper> -->\n @if(showForm()) {\n <div class=\"form__repeatable-stage-form\">\n <ng-dhis2-ui-form\n [fields]=\"fieldGroup().fields || []\"\n [form]=\"eventForm\"\n [programRuleActions]=\"programRuleActions\"\n [dataEntities]=\"{}\"\n [isFormHorizontal]=\"false\"\n (formUpdate)=\"onFormUpdate($event)\"\n >\n </ng-dhis2-ui-form>\n\n <!-- <ng-dhis2-ui-wrapper [component]=\"FormActionButtons\"></ng-dhis2-ui-wrapper> -->\n </div>\n }\n</div>\n", styles: [".form__repeatable-stage-container{margin-top:16px}.form__repeatable-stage-form{border:solid 1px rgb(232,237,242);border-top-style:none;background-color:#fff;padding:16px}\n"], dependencies: [{ kind: "component", type: FormComponent, selector: "ng-dhis2-ui-form", inputs: ["formConfig", "fields", "form", "isFormHorizontal", "showSaveButton", "fieldsData", "fieldClass", "shouldRenderAsCheckBoxesButton", "programRuleActions", "dataEntities", "dataId"], outputs: ["formUpdate"] }] }); }
|
|
6692
6555
|
}
|
|
6693
6556
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: RepeatableFormComponent, decorators: [{
|
|
6694
6557
|
type: Component,
|
|
@@ -6812,7 +6675,7 @@ class SectionFormComponent {
|
|
|
6812
6675
|
return valueValidity || repeatableDataValidity;
|
|
6813
6676
|
}
|
|
6814
6677
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: SectionFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6815
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.8", type: SectionFormComponent, isStandalone: false, selector: "ng-dhis2-ui-section-form", inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, formMetaData: { classPropertyName: "formMetaData", publicName: "formMetaData", isSignal: true, isRequired: true, transformFunction: null }, dataValueEntities: { classPropertyName: "dataValueEntities", publicName: "dataValueEntities", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { save: "save", formUpdate: "formUpdate", cancel: "cancel" }, ngImport: i0, template: "<ng-container *ngIf=\"formMetaData()\">\n <ng-container *ngFor=\"let formSection of formMetaData().sections\">\n @if(formSection?.name; as sectionName) {\n <div class=\"form__section-name\">\n {{ sectionName }}\n </div>\n }\n <div class=\"form__section-content\">\n <ng-container *ngIf=\"formSection\">\n <div *ngFor=\"let fieldGroup of formSection?.fieldGroups\">\n <ng-container *ngIf=\"formGroups[fieldGroup.id] as formGroup\">\n <div\n *ngIf=\"fieldGroup.name && !fieldGroup.repeatableStage\"\n class=\"form__field-group-name\"\n >\n {{ fieldGroup?.name }}\n </div>\n <div *ngIf=\"fieldGroup.fields\">\n <!-- Single stage form section -->\n <ng-container *ngIf=\"!fieldGroup.repeatableStage\">\n <ng-dhis2-ui-form\n *ngIf=\"fieldGroup.fields.length > 0\"\n [fields]=\"fieldGroup.fields\"\n [form]=\"formGroup\"\n [dataEntities]=\"dataValueEntities()\"\n [programRuleActions]=\"ruleActions()\"\n [isFormHorizontal]=\"fieldGroup.isFormHorizontal || false\"\n (formUpdate)=\"onFormUpdate($event, fieldGroup.id)\"\n ></ng-dhis2-ui-form>\n </ng-container>\n\n <!-- Repeatable stage form section -->\n <ng-container *ngIf=\"fieldGroup.repeatableStage\">\n @if(fieldGroup.repeatDependentField) {\n\n <ng-container *ngIf=\"fieldGroup.repeatDependentField\">\n <ng-container\n *ngIf=\"{\n numberOfRows:\n dataValueEntities()[fieldGroup.repeatDependentField]\n } as dataParams\"\n >\n <ng-dhis2-ui-repeatable-form\n *ngIf=\"\n dataParams.numberOfRows &&\n dataParams.numberOfRows !== '0'\n \"\n [fieldGroup]=\"fieldGroup\"\n [dataEntities]=\"dataValueEntities()\"\n [form]=\"formGroup\"\n [program]=\"formSection.program || ''\"\n [programStage]=\"fieldGroup.repeatableStage\"\n [programRuleActions]=\"ruleActions()\"\n [numberOfRows]=\"+dataParams.numberOfRows\"\n [repeatDependentField]=\"\n fieldGroup.repeatDependentField || ''\n \"\n [events]=\"dataValueEntities()[fieldGroup.dataKey!]\"\n (repeatableStageUpdate)=\"\n onUpdateRepeatableStage($event, fieldGroup)\n \"\n ></ng-dhis2-ui-repeatable-form\n ></ng-container>\n </ng-container>\n } @else {\n <ng-dhis2-ui-repeatable-form\n [fieldGroup]=\"fieldGroup\"\n [dataEntities]=\"dataValueEntities()\"\n [form]=\"formGroup\"\n [program]=\"formSection.program || ''\"\n [programStage]=\"fieldGroup.repeatableStage\"\n [programRuleActions]=\"ruleActions()\"\n [numberOfRows]=\"1\"\n [repeatDependentField]=\"fieldGroup.repeatDependentField || ''\"\n [events]=\"dataValueEntities()[fieldGroup.dataKey!]\"\n (repeatableStageUpdate)=\"\n onUpdateRepeatableStage($event, fieldGroup)\n \"\n ></ng-dhis2-ui-repeatable-form>\n }\n </ng-container>\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </ng-container>\n</ng-container>\n", styles: [".form__section-name{font-size:16px;font-weight:600;margin-bottom:16px}.form__section-content{margin-bottom:24px}.form__field-group-name{font-size:14px;font-weight:500;padding-bottom:8px;border-bottom:solid 1px rgb(232,237,242);margin-bottom:16px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormComponent, selector: "ng-dhis2-ui-form", inputs: ["formConfig", "fields", "form", "isFormHorizontal", "showSaveButton", "fieldsData", "fieldClass", "shouldRenderAsCheckBoxesButton", "programRuleActions", "dataEntities"], outputs: ["formUpdate"] }, { kind: "component", type: RepeatableFormComponent, selector: "ng-dhis2-ui-repeatable-form", inputs: ["formObject", "formData", "fieldGroup", "form", "numberOfRows", "programRuleActions", "events", "program", "programStage", "repeatDependentField", "dataEntities"], outputs: ["eventsChange", "repeatableStageUpdate"] }] }); }
|
|
6678
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.8", type: SectionFormComponent, isStandalone: false, selector: "ng-dhis2-ui-section-form", inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, formMetaData: { classPropertyName: "formMetaData", publicName: "formMetaData", isSignal: true, isRequired: true, transformFunction: null }, dataValueEntities: { classPropertyName: "dataValueEntities", publicName: "dataValueEntities", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { save: "save", formUpdate: "formUpdate", cancel: "cancel" }, ngImport: i0, template: "<ng-container *ngIf=\"formMetaData()\">\n <ng-container *ngFor=\"let formSection of formMetaData().sections\">\n @if(formSection?.name; as sectionName) {\n <div class=\"form__section-name\">\n {{ sectionName }}\n </div>\n }\n <div class=\"form__section-content\">\n <ng-container *ngIf=\"formSection\">\n <div *ngFor=\"let fieldGroup of formSection?.fieldGroups\">\n <ng-container *ngIf=\"formGroups[fieldGroup.id] as formGroup\">\n <div\n *ngIf=\"fieldGroup.name && !fieldGroup.repeatableStage\"\n class=\"form__field-group-name\"\n >\n {{ fieldGroup?.name }}\n </div>\n <div *ngIf=\"fieldGroup.fields\">\n <!-- Single stage form section -->\n <ng-container *ngIf=\"!fieldGroup.repeatableStage\">\n <ng-dhis2-ui-form\n *ngIf=\"fieldGroup.fields.length > 0\"\n [fields]=\"fieldGroup.fields\"\n [form]=\"formGroup\"\n [dataEntities]=\"dataValueEntities()\"\n [programRuleActions]=\"ruleActions()\"\n [isFormHorizontal]=\"fieldGroup.isFormHorizontal || false\"\n (formUpdate)=\"onFormUpdate($event, fieldGroup.id)\"\n ></ng-dhis2-ui-form>\n </ng-container>\n\n <!-- Repeatable stage form section -->\n <ng-container *ngIf=\"fieldGroup.repeatableStage\">\n @if(fieldGroup.repeatDependentField) {\n\n <ng-container *ngIf=\"fieldGroup.repeatDependentField\">\n <ng-container\n *ngIf=\"{\n numberOfRows:\n dataValueEntities()[fieldGroup.repeatDependentField]\n } as dataParams\"\n >\n <ng-dhis2-ui-repeatable-form\n *ngIf=\"\n dataParams.numberOfRows &&\n dataParams.numberOfRows !== '0'\n \"\n [fieldGroup]=\"fieldGroup\"\n [dataEntities]=\"dataValueEntities()\"\n [form]=\"formGroup\"\n [program]=\"formSection.program || ''\"\n [programStage]=\"fieldGroup.repeatableStage\"\n [programRuleActions]=\"ruleActions()\"\n [numberOfRows]=\"+dataParams.numberOfRows\"\n [repeatDependentField]=\"\n fieldGroup.repeatDependentField || ''\n \"\n [events]=\"dataValueEntities()[fieldGroup.dataKey!]\"\n (repeatableStageUpdate)=\"\n onUpdateRepeatableStage($event, fieldGroup)\n \"\n ></ng-dhis2-ui-repeatable-form\n ></ng-container>\n </ng-container>\n } @else {\n <ng-dhis2-ui-repeatable-form\n [fieldGroup]=\"fieldGroup\"\n [dataEntities]=\"dataValueEntities()\"\n [form]=\"formGroup\"\n [program]=\"formSection.program || ''\"\n [programStage]=\"fieldGroup.repeatableStage\"\n [programRuleActions]=\"ruleActions()\"\n [numberOfRows]=\"1\"\n [repeatDependentField]=\"fieldGroup.repeatDependentField || ''\"\n [events]=\"dataValueEntities()[fieldGroup.dataKey!]\"\n (repeatableStageUpdate)=\"\n onUpdateRepeatableStage($event, fieldGroup)\n \"\n ></ng-dhis2-ui-repeatable-form>\n }\n </ng-container>\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </ng-container>\n</ng-container>\n", styles: [".form__section-name{font-size:16px;font-weight:600;margin-bottom:16px}.form__section-content{margin-bottom:24px}.form__field-group-name{font-size:14px;font-weight:500;padding-bottom:8px;border-bottom:solid 1px rgb(232,237,242);margin-bottom:16px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormComponent, selector: "ng-dhis2-ui-form", inputs: ["formConfig", "fields", "form", "isFormHorizontal", "showSaveButton", "fieldsData", "fieldClass", "shouldRenderAsCheckBoxesButton", "programRuleActions", "dataEntities", "dataId"], outputs: ["formUpdate"] }, { kind: "component", type: RepeatableFormComponent, selector: "ng-dhis2-ui-repeatable-form", inputs: ["formObject", "formData", "fieldGroup", "form", "numberOfRows", "programRuleActions", "events", "program", "programStage", "repeatDependentField", "dataEntities"], outputs: ["eventsChange", "repeatableStageUpdate"] }] }); }
|
|
6816
6679
|
}
|
|
6817
6680
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: SectionFormComponent, decorators: [{
|
|
6818
6681
|
type: Component,
|
|
@@ -6836,6 +6699,7 @@ class BaseFormWrapperComponent {
|
|
|
6836
6699
|
this.fields = input.required();
|
|
6837
6700
|
this.rules = input([]);
|
|
6838
6701
|
this.dataValues = input({});
|
|
6702
|
+
this.dataId = input();
|
|
6839
6703
|
this.ruleActions = signal([]);
|
|
6840
6704
|
this.isFormValid = signal(true);
|
|
6841
6705
|
this.#updatedDataValues = signal({});
|
|
@@ -6867,7 +6731,7 @@ class BaseFormWrapperComponent {
|
|
|
6867
6731
|
this.ruleProcessor.destroy();
|
|
6868
6732
|
}
|
|
6869
6733
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: BaseFormWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
6870
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.1.8", type: BaseFormWrapperComponent, isStandalone: true, inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, fields: { classPropertyName: "fields", publicName: "fields", isSignal: true, isRequired: true, transformFunction: null }, rules: { classPropertyName: "rules", publicName: "rules", isSignal: true, isRequired: false, transformFunction: null }, dataValues: { classPropertyName: "dataValues", publicName: "dataValues", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { formSave: "formSave", formUpdate: "formUpdate", formCancel: "formCancel", formValidityUpdate: "formValidityUpdate" }, ngImport: i0 }); }
|
|
6734
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.1.8", type: BaseFormWrapperComponent, isStandalone: true, inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, fields: { classPropertyName: "fields", publicName: "fields", isSignal: true, isRequired: true, transformFunction: null }, rules: { classPropertyName: "rules", publicName: "rules", isSignal: true, isRequired: false, transformFunction: null }, dataValues: { classPropertyName: "dataValues", publicName: "dataValues", isSignal: true, isRequired: false, transformFunction: null }, dataId: { classPropertyName: "dataId", publicName: "dataId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { formSave: "formSave", formUpdate: "formUpdate", formCancel: "formCancel", formValidityUpdate: "formValidityUpdate" }, ngImport: i0 }); }
|
|
6871
6735
|
}
|
|
6872
6736
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: BaseFormWrapperComponent, decorators: [{
|
|
6873
6737
|
type: Directive
|
|
@@ -6895,16 +6759,15 @@ class FlatFormComponent extends BaseFormWrapperComponent {
|
|
|
6895
6759
|
this.onFormUpdate();
|
|
6896
6760
|
}
|
|
6897
6761
|
onFormUpdate() {
|
|
6898
|
-
console.log('WE ARE UPDATING HERE');
|
|
6899
6762
|
this.updateDataValues(this.formGroup.getRawValue());
|
|
6900
6763
|
this.updateFormValidity(this.formGroup.valid);
|
|
6901
6764
|
}
|
|
6902
6765
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: FlatFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
6903
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.8", type: FlatFormComponent, isStandalone: false, selector: "ng-dhis2-ui-flat-form", usesInheritance: true, ngImport: i0, template: "<ng-dhis2-ui-form\n [fields]=\"fields()\"\n [form]=\"formGroup\"\n [dataEntities]=\"dataValues()\"\n [programRuleActions]=\"ruleActions()\"\n (formUpdate)=\"onFormUpdate()\"\n/>\n", dependencies: [{ kind: "component", type: FormComponent, selector: "ng-dhis2-ui-form", inputs: ["formConfig", "fields", "form", "isFormHorizontal", "showSaveButton", "fieldsData", "fieldClass", "shouldRenderAsCheckBoxesButton", "programRuleActions", "dataEntities"], outputs: ["formUpdate"] }] }); }
|
|
6766
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.8", type: FlatFormComponent, isStandalone: false, selector: "ng-dhis2-ui-flat-form", usesInheritance: true, ngImport: i0, template: "<ng-dhis2-ui-form\n [fields]=\"fields()\"\n [form]=\"formGroup\"\n [dataEntities]=\"dataValues()\"\n [dataId]=\"dataId()\"\n [programRuleActions]=\"ruleActions()\"\n (formUpdate)=\"onFormUpdate()\"\n/>\n", dependencies: [{ kind: "component", type: FormComponent, selector: "ng-dhis2-ui-form", inputs: ["formConfig", "fields", "form", "isFormHorizontal", "showSaveButton", "fieldsData", "fieldClass", "shouldRenderAsCheckBoxesButton", "programRuleActions", "dataEntities", "dataId"], outputs: ["formUpdate"] }] }); }
|
|
6904
6767
|
}
|
|
6905
6768
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: FlatFormComponent, decorators: [{
|
|
6906
6769
|
type: Component,
|
|
6907
|
-
args: [{ selector: 'ng-dhis2-ui-flat-form', standalone: false, template: "<ng-dhis2-ui-form\n [fields]=\"fields()\"\n [form]=\"formGroup\"\n [dataEntities]=\"dataValues()\"\n [programRuleActions]=\"ruleActions()\"\n (formUpdate)=\"onFormUpdate()\"\n/>\n" }]
|
|
6770
|
+
args: [{ selector: 'ng-dhis2-ui-flat-form', standalone: false, template: "<ng-dhis2-ui-form\n [fields]=\"fields()\"\n [form]=\"formGroup\"\n [dataEntities]=\"dataValues()\"\n [dataId]=\"dataId()\"\n [programRuleActions]=\"ruleActions()\"\n (formUpdate)=\"onFormUpdate()\"\n/>\n" }]
|
|
6908
6771
|
}] });
|
|
6909
6772
|
|
|
6910
6773
|
class D2FormModule {
|
|
@@ -7802,6 +7665,9 @@ class ProgramEntryFormModule {
|
|
|
7802
7665
|
this.FormLoader = () => {
|
|
7803
7666
|
return React__default.createElement(CircularLoader$1, { small: true });
|
|
7804
7667
|
};
|
|
7668
|
+
this.dataId = computed(() => {
|
|
7669
|
+
return this.instance()?.trackedEntity || this.instance()?.event;
|
|
7670
|
+
});
|
|
7805
7671
|
this.FormActionButtons = computed(() => {
|
|
7806
7672
|
if (this.config().hideActionButtons) {
|
|
7807
7673
|
return React__default.createElement(React__default.Fragment, null);
|
|
@@ -7956,11 +7822,11 @@ class ProgramEntryFormModule {
|
|
|
7956
7822
|
}
|
|
7957
7823
|
}
|
|
7958
7824
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: ProgramEntryFormModule, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7959
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.8", type: ProgramEntryFormModule, isStandalone: true, selector: "ng-dhis2-ui-program-entry-form", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, trackedEntity: { classPropertyName: "trackedEntity", publicName: "trackedEntity", isSignal: true, isRequired: false, transformFunction: null }, event: { classPropertyName: "event", publicName: "event", isSignal: true, isRequired: false, transformFunction: null }, enrollment: { classPropertyName: "enrollment", publicName: "enrollment", isSignal: true, isRequired: false, transformFunction: null }, orgUnit: { classPropertyName: "orgUnit", publicName: "orgUnit", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { instanceSave: "instanceSave", instanceSaveCompleted: "instanceSaveCompleted", instanceUpdate: "instanceUpdate", formValidityUpdate: "formValidityUpdate", formCancel: "formCancel" }, ngImport: i0, template: "@if (loading()) {\n<div className=\"program-entry__form-loader\">\n <ng-dhis2-ui-wrapper [component]=\"FormLoader\" />\n</div>\n} @else if(metaData()) {\n\n<div>\n <!-- Form content -->\n @switch (config().displayType) {\n\n <!-- Flat display -->\n @case ('FLAT') {\n\n <ng-dhis2-ui-flat-form\n [name]=\"metaData()!.name\"\n [dataValues]=\"instance() || {}\"\n [rules]=\"metaData()!.rules\"\n [fields]=\"metaData()!.formFields\"\n (formUpdate)=\"onFormUpdate($event)\"\n (formValidityUpdate)=\"onValidityUpdate($event)\"\n />\n }\n\n <!-- SECTION display -->\n @case ('SECTION') { Section form }\n\n <!-- CUSTOM FORM -->\n @case ('CUSTOM') { } }\n\n <!-- Action buttons -->\n\n @if(!config().hideActionButtons) {\n <ng-dhis2-ui-wrapper [component]=\"FormActionButtons()\" />\n }\n</div>\n}\n", styles: ["::ng-deep .program-entry__form-loader{padding:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: D2FormModule }, { kind: "component", type: FlatFormComponent, selector: "ng-dhis2-ui-flat-form" }, { kind: "directive", type: ReactWrapperModule, selector: "ng-dhis2-ui-wrapper", inputs: ["props", "component"] }] }); }
|
|
7825
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.8", type: ProgramEntryFormModule, isStandalone: true, selector: "ng-dhis2-ui-program-entry-form", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, trackedEntity: { classPropertyName: "trackedEntity", publicName: "trackedEntity", isSignal: true, isRequired: false, transformFunction: null }, event: { classPropertyName: "event", publicName: "event", isSignal: true, isRequired: false, transformFunction: null }, enrollment: { classPropertyName: "enrollment", publicName: "enrollment", isSignal: true, isRequired: false, transformFunction: null }, orgUnit: { classPropertyName: "orgUnit", publicName: "orgUnit", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { instanceSave: "instanceSave", instanceSaveCompleted: "instanceSaveCompleted", instanceUpdate: "instanceUpdate", formValidityUpdate: "formValidityUpdate", formCancel: "formCancel" }, ngImport: i0, template: "@if (loading()) {\n<div className=\"program-entry__form-loader\">\n <ng-dhis2-ui-wrapper [component]=\"FormLoader\" />\n</div>\n} @else if(metaData()) {\n\n<div>\n <!-- Form content -->\n @switch (config().displayType) {\n\n <!-- Flat display -->\n @case ('FLAT') {\n\n <ng-dhis2-ui-flat-form\n [name]=\"metaData()!.name\"\n [dataValues]=\"instance() || {}\"\n [dataId]=\"dataId()\"\n [rules]=\"metaData()!.rules\"\n [fields]=\"metaData()!.formFields\"\n (formUpdate)=\"onFormUpdate($event)\"\n (formValidityUpdate)=\"onValidityUpdate($event)\"\n />\n }\n\n <!-- SECTION display -->\n @case ('SECTION') { Section form }\n\n <!-- CUSTOM FORM -->\n @case ('CUSTOM') { } }\n\n <!-- Action buttons -->\n\n @if(!config().hideActionButtons) {\n <ng-dhis2-ui-wrapper [component]=\"FormActionButtons()\" />\n }\n</div>\n}\n", styles: ["::ng-deep .program-entry__form-loader{padding:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: D2FormModule }, { kind: "component", type: FlatFormComponent, selector: "ng-dhis2-ui-flat-form" }, { kind: "directive", type: ReactWrapperModule, selector: "ng-dhis2-ui-wrapper", inputs: ["props", "component"] }] }); }
|
|
7960
7826
|
}
|
|
7961
7827
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.8", ngImport: i0, type: ProgramEntryFormModule, decorators: [{
|
|
7962
7828
|
type: Component,
|
|
7963
|
-
args: [{ selector: 'ng-dhis2-ui-program-entry-form', imports: [CommonModule, D2FormModule, ReactWrapperModule], template: "@if (loading()) {\n<div className=\"program-entry__form-loader\">\n <ng-dhis2-ui-wrapper [component]=\"FormLoader\" />\n</div>\n} @else if(metaData()) {\n\n<div>\n <!-- Form content -->\n @switch (config().displayType) {\n\n <!-- Flat display -->\n @case ('FLAT') {\n\n <ng-dhis2-ui-flat-form\n [name]=\"metaData()!.name\"\n [dataValues]=\"instance() || {}\"\n [rules]=\"metaData()!.rules\"\n [fields]=\"metaData()!.formFields\"\n (formUpdate)=\"onFormUpdate($event)\"\n (formValidityUpdate)=\"onValidityUpdate($event)\"\n />\n }\n\n <!-- SECTION display -->\n @case ('SECTION') { Section form }\n\n <!-- CUSTOM FORM -->\n @case ('CUSTOM') { } }\n\n <!-- Action buttons -->\n\n @if(!config().hideActionButtons) {\n <ng-dhis2-ui-wrapper [component]=\"FormActionButtons()\" />\n }\n</div>\n}\n", styles: ["::ng-deep .program-entry__form-loader{padding:8px}\n"] }]
|
|
7829
|
+
args: [{ selector: 'ng-dhis2-ui-program-entry-form', imports: [CommonModule, D2FormModule, ReactWrapperModule], template: "@if (loading()) {\n<div className=\"program-entry__form-loader\">\n <ng-dhis2-ui-wrapper [component]=\"FormLoader\" />\n</div>\n} @else if(metaData()) {\n\n<div>\n <!-- Form content -->\n @switch (config().displayType) {\n\n <!-- Flat display -->\n @case ('FLAT') {\n\n <ng-dhis2-ui-flat-form\n [name]=\"metaData()!.name\"\n [dataValues]=\"instance() || {}\"\n [dataId]=\"dataId()\"\n [rules]=\"metaData()!.rules\"\n [fields]=\"metaData()!.formFields\"\n (formUpdate)=\"onFormUpdate($event)\"\n (formValidityUpdate)=\"onValidityUpdate($event)\"\n />\n }\n\n <!-- SECTION display -->\n @case ('SECTION') { Section form }\n\n <!-- CUSTOM FORM -->\n @case ('CUSTOM') { } }\n\n <!-- Action buttons -->\n\n @if(!config().hideActionButtons) {\n <ng-dhis2-ui-wrapper [component]=\"FormActionButtons()\" />\n }\n</div>\n}\n", styles: ["::ng-deep .program-entry__form-loader{padding:8px}\n"] }]
|
|
7964
7830
|
}], propDecorators: { instanceSave: [{
|
|
7965
7831
|
type: Output
|
|
7966
7832
|
}], instanceSaveCompleted: [{
|