@aehrc/smart-forms-renderer 0.32.0 → 0.32.2
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/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.js +8 -5
- package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.js.map +1 -1
- package/package.json +1 -1
- package/src/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.tsx +9 -5
- package/src/components/FormComponents/DateTimeItem/DateTimeField.tsx +0 -59
- package/src/components/FormComponents/DateTimeItem/DateTimeItem.tsx +0 -106
package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.js
CHANGED
|
@@ -88,20 +88,23 @@ function CustomDateTimeItem(props) {
|
|
|
88
88
|
onQrItemChange(createEmptyQrItem(qItem));
|
|
89
89
|
}
|
|
90
90
|
const { timeIsValid, is24HourNotation } = validateTimeInput(newTimeInput, newPeriodInput);
|
|
91
|
-
if (!validateDateInput(dateInput)
|
|
91
|
+
if (!validateDateInput(dateInput) || !timeIsValid) {
|
|
92
92
|
return;
|
|
93
93
|
}
|
|
94
94
|
updateQRDateTime(dateInput, newTimeInput, newPeriodInput, is24HourNotation);
|
|
95
95
|
}
|
|
96
96
|
function updateQRDateTime(dateInput, timeInput, periodInput, is24HourNotation) {
|
|
97
|
-
let
|
|
97
|
+
let fhirDateTime = '';
|
|
98
98
|
if (timeInput) {
|
|
99
|
-
|
|
99
|
+
fhirDateTime = parseInputDateTimeToFhirDateTime(parseInputDateToFhirDate(dateInput), timeInput, periodInput, is24HourNotation);
|
|
100
100
|
}
|
|
101
101
|
else {
|
|
102
|
-
|
|
102
|
+
fhirDateTime = parseInputDateToFhirDate(dateInput);
|
|
103
103
|
}
|
|
104
|
-
|
|
104
|
+
if (fhirDateTime === 'Invalid Date') {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
onQrItemChange(Object.assign(Object.assign({}, createEmptyQrItem(qItem)), { answer: [{ valueDateTime: fhirDateTime }] }));
|
|
105
108
|
}
|
|
106
109
|
// FIXME entryFormat and displayPrompt, put them beneath the entire component instead of at the date field
|
|
107
110
|
if (isRepeated) {
|
package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomDateTimeItem.js","sourceRoot":"","sources":["../../../../../src/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"CustomDateTimeItem.js","sourceRoot":"","sources":["../../../../../src/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.tsx
CHANGED
|
@@ -130,7 +130,7 @@ function CustomDateTimeItem(props: CustomDateTimeItemProps) {
|
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
const { timeIsValid, is24HourNotation } = validateTimeInput(newTimeInput, newPeriodInput);
|
|
133
|
-
if (!validateDateInput(dateInput)
|
|
133
|
+
if (!validateDateInput(dateInput) || !timeIsValid) {
|
|
134
134
|
return;
|
|
135
135
|
}
|
|
136
136
|
|
|
@@ -143,21 +143,25 @@ function CustomDateTimeItem(props: CustomDateTimeItemProps) {
|
|
|
143
143
|
periodInput: string,
|
|
144
144
|
is24HourNotation: boolean
|
|
145
145
|
) {
|
|
146
|
-
let
|
|
146
|
+
let fhirDateTime = '';
|
|
147
147
|
if (timeInput) {
|
|
148
|
-
|
|
148
|
+
fhirDateTime = parseInputDateTimeToFhirDateTime(
|
|
149
149
|
parseInputDateToFhirDate(dateInput),
|
|
150
150
|
timeInput,
|
|
151
151
|
periodInput,
|
|
152
152
|
is24HourNotation
|
|
153
153
|
);
|
|
154
154
|
} else {
|
|
155
|
-
|
|
155
|
+
fhirDateTime = parseInputDateToFhirDate(dateInput);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
if (fhirDateTime === 'Invalid Date') {
|
|
159
|
+
return;
|
|
156
160
|
}
|
|
157
161
|
|
|
158
162
|
onQrItemChange({
|
|
159
163
|
...createEmptyQrItem(qItem),
|
|
160
|
-
answer: [{ valueDateTime:
|
|
164
|
+
answer: [{ valueDateTime: fhirDateTime }]
|
|
161
165
|
});
|
|
162
166
|
}
|
|
163
167
|
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2024 Commonwealth Scientific and Industrial Research
|
|
3
|
-
* Organisation (CSIRO) ABN 41 687 119 230.
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
* you may not use this file except in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
* See the License for the specific language governing permissions and
|
|
15
|
-
* limitations under the License.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
import React from 'react';
|
|
19
|
-
import type { PropsWithIsTabledAttribute } from '../../../interfaces/renderProps.interface';
|
|
20
|
-
import type { Dayjs } from 'dayjs';
|
|
21
|
-
import { DateTimePicker as MuiDateTimePicker, LocalizationProvider } from '@mui/x-date-pickers';
|
|
22
|
-
import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
|
|
23
|
-
import Box from '@mui/material/Box';
|
|
24
|
-
import { TEXT_FIELD_WIDTH } from '../Textfield.styles';
|
|
25
|
-
|
|
26
|
-
interface DateTimeFieldProps extends PropsWithIsTabledAttribute {
|
|
27
|
-
value: Dayjs | null;
|
|
28
|
-
displayPrompt: string;
|
|
29
|
-
entryFormat: string;
|
|
30
|
-
readOnly: boolean;
|
|
31
|
-
onDateTimeChange: (newValue: Dayjs | null) => unknown;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
function DateTimeField(props: DateTimeFieldProps) {
|
|
35
|
-
const { value, displayPrompt, entryFormat, readOnly, isTabled, onDateTimeChange } = props;
|
|
36
|
-
|
|
37
|
-
return (
|
|
38
|
-
<LocalizationProvider dateAdapter={AdapterDayjs}>
|
|
39
|
-
<Box data-test="q-item-date-time-field">
|
|
40
|
-
<MuiDateTimePicker
|
|
41
|
-
format={entryFormat !== '' ? entryFormat : 'DD/MM/YYYY hh:mm A'}
|
|
42
|
-
value={value}
|
|
43
|
-
disabled={readOnly}
|
|
44
|
-
label={displayPrompt}
|
|
45
|
-
sx={{ maxWidth: !isTabled ? TEXT_FIELD_WIDTH : 3000, minWidth: 160 }}
|
|
46
|
-
onChange={onDateTimeChange}
|
|
47
|
-
slotProps={{
|
|
48
|
-
textField: {
|
|
49
|
-
size: 'small',
|
|
50
|
-
fullWidth: true
|
|
51
|
-
}
|
|
52
|
-
}}
|
|
53
|
-
/>
|
|
54
|
-
</Box>
|
|
55
|
-
</LocalizationProvider>
|
|
56
|
-
);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
export default DateTimeField;
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2024 Commonwealth Scientific and Industrial Research
|
|
3
|
-
* Organisation (CSIRO) ABN 41 687 119 230.
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
* you may not use this file except in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
* See the License for the specific language governing permissions and
|
|
15
|
-
* limitations under the License.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
import React from 'react';
|
|
19
|
-
import type {
|
|
20
|
-
PropsWithIsRepeatedAttribute,
|
|
21
|
-
PropsWithIsTabledAttribute,
|
|
22
|
-
PropsWithParentIsReadOnlyAttribute,
|
|
23
|
-
PropsWithQrItemChangeHandler
|
|
24
|
-
} from '../../../interfaces/renderProps.interface';
|
|
25
|
-
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
26
|
-
import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
|
|
27
|
-
import { createEmptyQrItem } from '../../../utils/qrItem';
|
|
28
|
-
import { FullWidthFormComponentBox } from '../../Box.styles';
|
|
29
|
-
import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
|
|
30
|
-
import DateTimeField from './DateTimeField';
|
|
31
|
-
import type { Dayjs } from 'dayjs';
|
|
32
|
-
import dayjs from 'dayjs';
|
|
33
|
-
import useReadOnly from '../../../hooks/useReadOnly';
|
|
34
|
-
import { useQuestionnaireStore } from '../../../stores';
|
|
35
|
-
|
|
36
|
-
interface DateTimeItemProps
|
|
37
|
-
extends PropsWithQrItemChangeHandler,
|
|
38
|
-
PropsWithIsRepeatedAttribute,
|
|
39
|
-
PropsWithIsTabledAttribute,
|
|
40
|
-
PropsWithParentIsReadOnlyAttribute {
|
|
41
|
-
qItem: QuestionnaireItem;
|
|
42
|
-
qrItem: QuestionnaireResponseItem | null;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
function DateTimeItem(props: DateTimeItemProps) {
|
|
46
|
-
const { qItem, qrItem, isRepeated, isTabled, parentIsReadOnly, onQrItemChange } = props;
|
|
47
|
-
|
|
48
|
-
const onFocusLinkId = useQuestionnaireStore.use.onFocusLinkId();
|
|
49
|
-
|
|
50
|
-
const readOnly = useReadOnly(qItem, parentIsReadOnly);
|
|
51
|
-
const { displayPrompt, entryFormat } = useRenderingExtensions(qItem);
|
|
52
|
-
|
|
53
|
-
// Init input value
|
|
54
|
-
let dateTimeString: string | null = null;
|
|
55
|
-
if (qrItem?.answer) {
|
|
56
|
-
if (qrItem?.answer[0].valueDate) {
|
|
57
|
-
dateTimeString = qrItem.answer[0].valueDate;
|
|
58
|
-
} else if (qrItem?.answer[0].valueDateTime) {
|
|
59
|
-
dateTimeString = qrItem.answer[0].valueDateTime;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
const dateTimeDayJs = dateTimeString ? dayjs(dateTimeString) : null;
|
|
63
|
-
|
|
64
|
-
// Event handlers
|
|
65
|
-
function handleDateTimeChange(newValue: Dayjs | null) {
|
|
66
|
-
const emptyQrItem = createEmptyQrItem(qItem);
|
|
67
|
-
if (newValue) {
|
|
68
|
-
onQrItemChange({ ...emptyQrItem, answer: [{ valueDateTime: newValue.format() }] });
|
|
69
|
-
} else {
|
|
70
|
-
onQrItemChange(emptyQrItem);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
if (isRepeated) {
|
|
75
|
-
return (
|
|
76
|
-
<DateTimeField
|
|
77
|
-
value={dateTimeDayJs}
|
|
78
|
-
displayPrompt={displayPrompt}
|
|
79
|
-
entryFormat={entryFormat}
|
|
80
|
-
readOnly={readOnly}
|
|
81
|
-
onDateTimeChange={handleDateTimeChange}
|
|
82
|
-
isTabled={isTabled}
|
|
83
|
-
/>
|
|
84
|
-
);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
return (
|
|
88
|
-
<FullWidthFormComponentBox
|
|
89
|
-
data-test="q-item-date-time-box"
|
|
90
|
-
data-linkid={qItem.linkId}
|
|
91
|
-
onClick={() => onFocusLinkId(qItem.linkId)}>
|
|
92
|
-
<ItemFieldGrid qItem={qItem} readOnly={readOnly}>
|
|
93
|
-
<DateTimeField
|
|
94
|
-
value={dateTimeDayJs}
|
|
95
|
-
displayPrompt={displayPrompt}
|
|
96
|
-
entryFormat={entryFormat}
|
|
97
|
-
readOnly={readOnly}
|
|
98
|
-
onDateTimeChange={handleDateTimeChange}
|
|
99
|
-
isTabled={isTabled}
|
|
100
|
-
/>
|
|
101
|
-
</ItemFieldGrid>
|
|
102
|
-
</FullWidthFormComponentBox>
|
|
103
|
-
);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
export default DateTimeItem;
|