@openmrs/esm-form-engine-lib 2.1.0-pre.1384 → 2.1.0-pre.1390
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/package.json
CHANGED
@@ -80,60 +80,58 @@ const DateField: React.FC<FormFieldInputProps> = ({ field, value: dateValue, err
|
|
80
80
|
/>
|
81
81
|
) : (
|
82
82
|
!field.isHidden && (
|
83
|
-
|
84
|
-
|
85
|
-
{
|
86
|
-
<
|
87
|
-
<
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
<
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
)}
|
83
|
+
<div className={styles.datetime}>
|
84
|
+
{(field.datePickerFormat === 'calendar' || field.datePickerFormat === 'both') && (
|
85
|
+
<div className={styles.datePickerSpacing}>
|
86
|
+
<Layer>
|
87
|
+
<OpenmrsDatePicker
|
88
|
+
id={field.id}
|
89
|
+
onChange={onDateChange}
|
90
|
+
labelText={
|
91
|
+
<span className={styles.datePickerLabel}>
|
92
|
+
<FieldLabel field={field} />
|
93
|
+
</span>
|
94
|
+
}
|
95
|
+
isDisabled={field.isDisabled}
|
96
|
+
isReadOnly={isTrue(field.readonly)}
|
97
|
+
isRequired={field.isRequired ?? false}
|
98
|
+
isInvalid={errors.length > 0}
|
99
|
+
invalidText={errors[0]?.message}
|
100
|
+
value={dateValue}
|
101
|
+
/>
|
102
|
+
</Layer>
|
103
|
+
{warnings.length > 0 ? <div className={styles.datePickerWarn}>{warnings[0]?.message}</div> : null}
|
104
|
+
</div>
|
105
|
+
)}
|
107
106
|
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
</>
|
107
|
+
{field.datePickerFormat === 'both' || field.datePickerFormat === 'timer' ? (
|
108
|
+
<div>
|
109
|
+
<Layer>
|
110
|
+
<TimePicker
|
111
|
+
className={classNames(styles.boldedLabel, styles.timeInput)}
|
112
|
+
id={field.id}
|
113
|
+
labelText={timePickerLabel}
|
114
|
+
placeholder="HH:MM"
|
115
|
+
pattern="(1[012]|[1-9]):[0-5][0-9])$"
|
116
|
+
type="time"
|
117
|
+
disabled={field.datePickerFormat === 'timer' ? field.isDisabled : !dateValue ? true : false}
|
118
|
+
invalid={errors.length > 0}
|
119
|
+
invalidText={errors[0]?.message}
|
120
|
+
warning={warnings.length > 0}
|
121
|
+
warningText={warnings[0]?.message}
|
122
|
+
value={
|
123
|
+
time
|
124
|
+
? time
|
125
|
+
: dateValue instanceof Date
|
126
|
+
? dateValue.toLocaleDateString(window.navigator.language)
|
127
|
+
: dateValue
|
128
|
+
}
|
129
|
+
onChange={onTimeChange}
|
130
|
+
/>
|
131
|
+
</Layer>
|
132
|
+
</div>
|
133
|
+
) : null}
|
134
|
+
</div>
|
137
135
|
)
|
138
136
|
);
|
139
137
|
};
|
@@ -44,30 +44,32 @@ const NumberField: React.FC<FormFieldInputProps> = ({ field, value, errors, warn
|
|
44
44
|
/>
|
45
45
|
</div>
|
46
46
|
) : (
|
47
|
-
|
48
|
-
<
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
47
|
+
!field.isHidden && (
|
48
|
+
<Layer>
|
49
|
+
<NumberInput
|
50
|
+
id={field.id}
|
51
|
+
invalid={errors.length > 0}
|
52
|
+
invalidText={errors[0]?.message}
|
53
|
+
label={<FieldLabel field={field} />}
|
54
|
+
max={Number(field.questionOptions.max) || undefined}
|
55
|
+
min={Number(field.questionOptions.min) || undefined}
|
56
|
+
name={field.id}
|
57
|
+
value={field.value ?? ''}
|
58
|
+
onChange={handleChange}
|
59
|
+
onBlur={onBlur}
|
60
|
+
allowEmpty={true}
|
61
|
+
size="lg"
|
62
|
+
hideSteppers={true}
|
63
|
+
onWheel={(e) => e.target.blur()}
|
64
|
+
disabled={field.isDisabled}
|
65
|
+
readOnly={field.readonly}
|
66
|
+
className={classNames(styles.controlWidthConstrained, styles.boldedLabel)}
|
67
|
+
warn={warnings.length > 0}
|
68
|
+
warnText={warnings[0]?.message}
|
69
|
+
step={0.01}
|
70
|
+
/>
|
71
|
+
</Layer>
|
72
|
+
)
|
71
73
|
);
|
72
74
|
};
|
73
75
|
|
@@ -37,27 +37,25 @@ const TextField: React.FC<FormFieldInputProps> = ({ field, value, errors, warnin
|
|
37
37
|
/>
|
38
38
|
) : (
|
39
39
|
!field.isHidden && (
|
40
|
-
|
41
|
-
<
|
42
|
-
<
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
</div>
|
60
|
-
</>
|
40
|
+
<div className={styles.boldedLabel}>
|
41
|
+
<Layer>
|
42
|
+
<TextInput
|
43
|
+
id={field.id}
|
44
|
+
labelText={<FieldLabel field={field} />}
|
45
|
+
onChange={setFieldValue}
|
46
|
+
onBlur={onBlur}
|
47
|
+
name={field.id}
|
48
|
+
value={value}
|
49
|
+
disabled={field.isDisabled}
|
50
|
+
readOnly={isTrue(field.readonly)}
|
51
|
+
invalid={errors.length > 0}
|
52
|
+
invalidText={errors[0]?.message}
|
53
|
+
warn={warnings.length > 0}
|
54
|
+
warnText={warnings.length > 0 ? warnings[0].message : undefined}
|
55
|
+
maxLength={field.questionOptions.max || TextInput.maxLength}
|
56
|
+
/>
|
57
|
+
</Layer>
|
58
|
+
</div>
|
61
59
|
)
|
62
60
|
);
|
63
61
|
};
|
@@ -83,7 +83,7 @@ export const FormFactoryProvider: React.FC<FormFactoryProviderProps> = ({
|
|
83
83
|
const registerForm = useCallback((formId: string, context: FormContextProps) => {
|
84
84
|
if (!rootForm.current) {
|
85
85
|
rootForm.current = context;
|
86
|
-
} else {
|
86
|
+
} else if (rootForm.current.formJson.name !== formId) {
|
87
87
|
subForms.current[formId] = context;
|
88
88
|
}
|
89
89
|
}, []);
|