@aehrc/smart-forms-renderer 0.40.0 → 0.40.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/ItemParts/ItemFieldGrid.js +6 -2
- package/lib/components/FormComponents/ItemParts/ItemFieldGrid.js.map +1 -1
- package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js +3 -3
- package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js.map +1 -1
- package/lib/components/FormComponents/RepeatGroup/RepeatGroupView.js +6 -6
- package/lib/components/FormComponents/RepeatGroup/RepeatGroupView.js.map +1 -1
- package/lib/components/FormComponents/RepeatItem/RepeatItem.js +5 -5
- package/lib/components/FormComponents/RepeatItem/RepeatItem.js.map +1 -1
- package/lib/components/FormComponents/Tables/GroupTable.js +10 -10
- package/lib/components/FormComponents/Tables/GroupTable.js.map +1 -1
- package/lib/components/FormComponents/Tables/GroupTableBody.d.ts +1 -1
- package/lib/components/FormComponents/Tables/GroupTableBody.js +3 -3
- package/lib/components/FormComponents/Tables/GroupTableBody.js.map +1 -1
- package/lib/components/FormComponents/Tables/GroupTableRow.d.ts +1 -1
- package/lib/components/FormComponents/Tables/GroupTableRow.js +4 -4
- package/lib/components/FormComponents/Tables/GroupTableRow.js.map +1 -1
- package/lib/components/FormComponents/Tables/GroupTableView.d.ts +1 -1
- package/lib/components/Renderer/FormTopLevelItem.js +13 -1
- package/lib/components/Renderer/FormTopLevelItem.js.map +1 -1
- package/lib/hooks/useDateValidation.js +2 -2
- package/lib/hooks/useDateValidation.js.map +1 -1
- package/lib/hooks/useGroupTableRows.d.ts +1 -1
- package/lib/hooks/useGroupTableRows.js +3 -3
- package/lib/hooks/useGroupTableRows.js.map +1 -1
- package/lib/hooks/useInitialiseGroupTable.d.ts +1 -1
- package/lib/hooks/useInitialiseGroupTable.js +10 -16
- package/lib/hooks/useInitialiseGroupTable.js.map +1 -1
- package/lib/hooks/useInitialiseRepeatAnswers.d.ts +1 -1
- package/lib/hooks/useInitialiseRepeatAnswers.js +9 -12
- package/lib/hooks/useInitialiseRepeatAnswers.js.map +1 -1
- package/lib/hooks/useInitialiseRepeatGroups.d.ts +2 -2
- package/lib/hooks/useInitialiseRepeatGroups.js +11 -20
- package/lib/hooks/useInitialiseRepeatGroups.js.map +1 -1
- package/lib/hooks/useRepeatGroups.js +6 -2
- package/lib/hooks/useRepeatGroups.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/interfaces/groupTable.interface.d.ts +1 -1
- package/lib/interfaces/repeatGroup.interface.d.ts +1 -1
- package/lib/theme/palette.js +0 -4
- package/lib/theme/palette.js.map +1 -1
- package/lib/utils/groupTable.js +1 -1
- package/lib/utils/groupTable.js.map +1 -1
- package/lib/utils/index.d.ts +1 -1
- package/lib/utils/index.js +1 -1
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/manageForm.d.ts +7 -0
- package/lib/utils/manageForm.js +15 -1
- package/lib/utils/manageForm.js.map +1 -1
- package/lib/utils/repeatId.d.ts +4 -0
- package/lib/utils/repeatId.js +93 -0
- package/lib/utils/repeatId.js.map +1 -0
- package/package.json +1 -1
- package/src/components/FormComponents/ItemParts/ItemFieldGrid.tsx +8 -2
- package/src/components/FormComponents/RepeatGroup/RepeatGroup.tsx +3 -3
- package/src/components/FormComponents/RepeatGroup/RepeatGroupView.tsx +6 -6
- package/src/components/FormComponents/RepeatItem/RepeatItem.tsx +7 -5
- package/src/components/FormComponents/Tables/GroupTable.tsx +13 -10
- package/src/components/FormComponents/Tables/GroupTableBody.tsx +5 -5
- package/src/components/FormComponents/Tables/GroupTableRow.tsx +5 -5
- package/src/components/FormComponents/Tables/GroupTableView.tsx +1 -1
- package/src/components/Renderer/FormTopLevelItem.tsx +33 -1
- package/src/hooks/useDateValidation.tsx +2 -2
- package/src/hooks/useGroupTableRows.ts +3 -3
- package/src/hooks/useInitialiseGroupTable.ts +13 -17
- package/src/hooks/useInitialiseRepeatAnswers.ts +9 -12
- package/src/hooks/useInitialiseRepeatGroups.ts +14 -25
- package/src/hooks/useRepeatGroups.ts +8 -4
- package/src/index.ts +1 -0
- package/src/interfaces/groupTable.interface.ts +1 -1
- package/src/interfaces/repeatGroup.interface.ts +1 -1
- package/src/stories/assets/questionnaires/QIdRemoverDebugger.ts +161 -0
- package/src/stories/storybookWrappers/BuildFormButtonForStorybook.tsx +1 -1
- package/src/stories/storybookWrappers/IdRemoverButtonForStorybook.tsx +51 -0
- package/src/stories/storybookWrappers/IdRemoverDebuggerWrapperForStorybook.tsx +84 -0
- package/src/stories/testing/IdRemoverDebuggerWrapper.stories.tsx +39 -0
- package/src/tests/extractObservation.test.ts +2 -5
- package/src/theme/palette.ts +0 -4
- package/src/utils/groupTable.ts +1 -1
- package/src/utils/index.ts +7 -1
- package/src/utils/manageForm.ts +28 -1
- package/src/utils/repeatId.ts +123 -0
- package/CHANGELOG.md +0 -43
- package/lib/hooks/useRepeatAnswers.d.ts +0 -4
- package/lib/hooks/useRepeatAnswers.js +0 -34
- package/lib/hooks/useRepeatAnswers.js.map +0 -1
- package/lib/interfaces/repeatItem.interface.d.ts +0 -5
- package/lib/interfaces/repeatItem.interface.js +0 -2
- package/lib/interfaces/repeatItem.interface.js.map +0 -1
- package/lib/utils/answerExpression.d.ts +0 -18
- package/lib/utils/answerExpression.js +0 -133
- package/lib/utils/answerExpression.js.map +0 -1
- package/lib/utils/dynamicValueSet.d.ts +0 -5
- package/lib/utils/dynamicValueSet.js +0 -96
- package/lib/utils/dynamicValueSet.js.map +0 -1
- package/lib/utils/fhirpathAsyncUtils/fhirpath-async.d.ts +0 -14
- package/lib/utils/fhirpathAsyncUtils/fhirpath-async.js +0 -639
- package/lib/utils/fhirpathAsyncUtils/fhirpath-async.js.map +0 -1
- package/lib/utils/fhirpathAsyncUtils/outcome-utils.d.ts +0 -3
- package/lib/utils/fhirpathAsyncUtils/outcome-utils.js +0 -41
- package/lib/utils/fhirpathAsyncUtils/outcome-utils.js.map +0 -1
- package/lib/utils/questionnaireStoreUtils/extractPreferredTerminologyServerUrls.d.ts +0 -3
- package/lib/utils/questionnaireStoreUtils/extractPreferredTerminologyServerUrls.js +0 -34
- package/lib/utils/questionnaireStoreUtils/extractPreferredTerminologyServerUrls.js.map +0 -1
- package/lib/utils/updateQr.d.ts +0 -9
- package/lib/utils/updateQr.js +0 -55
- package/lib/utils/updateQr.js.map +0 -1
|
@@ -19,13 +19,17 @@ import Grid from '@mui/material/Grid';
|
|
|
19
19
|
import DisplayInstructions from '../DisplayItem/DisplayInstructions';
|
|
20
20
|
import LabelWrapper from './ItemLabelWrapper';
|
|
21
21
|
import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
|
|
22
|
+
import Box from '@mui/material/Box';
|
|
22
23
|
function ItemFieldGrid(props) {
|
|
23
24
|
const { children, qItem, readOnly } = props;
|
|
24
25
|
const { displayInstructions } = useRenderingExtensions(qItem);
|
|
25
26
|
return (React.createElement(Grid, { container: true, columnSpacing: 4 },
|
|
26
|
-
React.createElement(Grid, { item: true,
|
|
27
|
+
React.createElement(Grid, { item: true, md: 4, xs: 12 },
|
|
27
28
|
React.createElement(LabelWrapper, { qItem: qItem, readOnly: readOnly })),
|
|
28
|
-
React.createElement(
|
|
29
|
+
React.createElement(Box, { sx: {
|
|
30
|
+
my: { xs: 1.5, md: 0 } // Adds padding for `xs` breakpoint and removes it for `md` and up
|
|
31
|
+
} }),
|
|
32
|
+
React.createElement(Grid, { item: true, md: 8, xs: 12 },
|
|
29
33
|
children,
|
|
30
34
|
React.createElement(DisplayInstructions, { displayInstructions: displayInstructions, readOnly: readOnly }))));
|
|
31
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemFieldGrid.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ItemParts/ItemFieldGrid.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,oBAAoB,CAAC;AAEtC,OAAO,mBAAmB,MAAM,oCAAoC,CAAC;AACrE,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C,OAAO,sBAAsB,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"ItemFieldGrid.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ItemParts/ItemFieldGrid.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,oBAAoB,CAAC;AAEtC,OAAO,mBAAmB,MAAM,oCAAoC,CAAC;AACrE,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C,OAAO,sBAAsB,MAAM,uCAAuC,CAAC;AAC3E,OAAO,GAAG,MAAM,mBAAmB,CAAC;AAQpC,SAAS,aAAa,CAAC,KAAyB;IAC9C,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAE5C,MAAM,EAAE,mBAAmB,EAAE,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAE9D,OAAO,CACL,oBAAC,IAAI,IAAC,SAAS,QAAC,aAAa,EAAE,CAAC;QAC9B,oBAAC,IAAI,IAAC,IAAI,QAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;YACtB,oBAAC,YAAY,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAC7C;QACP,oBAAC,GAAG,IACF,EAAE,EAAE;gBACF,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,kEAAkE;aAC1F,GACD;QACF,oBAAC,IAAI,IAAC,IAAI,QAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;YACrB,QAAQ;YACT,oBAAC,mBAAmB,IAAC,mBAAmB,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAChF,CACF,CACR,CAAC;AACJ,CAAC;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -16,11 +16,11 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import React from 'react';
|
|
18
18
|
import useInitialiseRepeatGroups from '../../../hooks/useInitialiseRepeatGroups';
|
|
19
|
-
import { nanoid } from 'nanoid';
|
|
20
19
|
import cloneDeep from 'lodash.clonedeep';
|
|
21
20
|
import { useQuestionnaireStore } from '../../../stores';
|
|
22
21
|
import useRepeatGroups from '../../../hooks/useRepeatGroups';
|
|
23
22
|
import RepeatGroupView from './RepeatGroupView';
|
|
23
|
+
import { generateNewRepeatId } from '../../../utils/repeatId';
|
|
24
24
|
/**
|
|
25
25
|
* Main component to render a repeating, group Questionnaire item.
|
|
26
26
|
* Store and manages the state of multiple instances of GroupItem in a repeating group.
|
|
@@ -30,7 +30,7 @@ import RepeatGroupView from './RepeatGroupView';
|
|
|
30
30
|
function RepeatGroup(props) {
|
|
31
31
|
const { qItem, qrItems, groupCardElevation, showMinimalView, parentIsReadOnly, onQrRepeatGroupChange } = props;
|
|
32
32
|
const mutateRepeatEnableWhenItems = useQuestionnaireStore.use.mutateRepeatEnableWhenItems();
|
|
33
|
-
const initialRepeatGroups = useInitialiseRepeatGroups(qItem, qrItems);
|
|
33
|
+
const initialRepeatGroups = useInitialiseRepeatGroups(qItem.linkId, qrItems);
|
|
34
34
|
const [repeatGroups, setRepeatGroups] = useRepeatGroups(initialRepeatGroups);
|
|
35
35
|
function handleAnswerChange(newQrItem, index) {
|
|
36
36
|
const updatedRepeatGroups = [...repeatGroups];
|
|
@@ -64,7 +64,7 @@ function RepeatGroup(props) {
|
|
|
64
64
|
setRepeatGroups([
|
|
65
65
|
...repeatGroups,
|
|
66
66
|
{
|
|
67
|
-
|
|
67
|
+
id: generateNewRepeatId(qItem.linkId),
|
|
68
68
|
qrItem: null
|
|
69
69
|
}
|
|
70
70
|
]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RepeatGroup.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/RepeatGroup/RepeatGroup.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,yBAAyB,MAAM,0CAA0C,CAAC;AACjF,OAAO,
|
|
1
|
+
{"version":3,"file":"RepeatGroup.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/RepeatGroup/RepeatGroup.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,yBAAyB,MAAM,0CAA0C,CAAC;AACjF,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,eAAe,MAAM,gCAAgC,CAAC;AAC7D,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAY9D;;;;;GAKG;AACH,SAAS,WAAW,CAAC,KAAuB;IAC1C,MAAM,EACJ,KAAK,EACL,OAAO,EACP,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACtB,GAAG,KAAK,CAAC;IAEV,MAAM,2BAA2B,GAAG,qBAAqB,CAAC,GAAG,CAAC,2BAA2B,EAAE,CAAC;IAE5F,MAAM,mBAAmB,GAAG,yBAAyB,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE7E,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAC;IAE7E,SAAS,kBAAkB,CAAC,SAAoC,EAAE,KAAa;QAC7E,MAAM,mBAAmB,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;QAE9C,IAAI,SAAS,CAAC,IAAI,EAAE;YAClB,mBAAmB,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG;gBAClC,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,IAAI,EAAE,SAAS,CAAC,IAAI;aACrB,CAAC;SACH;QAED,eAAe,CAAC,mBAAmB,CAAC,CAAC;QACrC,qBAAqB,CAAC;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CACnD,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAC1D;SACF,CAAC,CAAC;IACL,CAAC;IAED,SAAS,gBAAgB,CAAC,KAAa;QACrC,MAAM,mBAAmB,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;QAC9C,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAErC,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC;QAC7C,2BAA2B,CAAC,KAAK,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QAEtE,eAAe,CAAC,mBAAmB,CAAC,CAAC;QACrC,qBAAqB,CAAC;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CACnD,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAC1D;SACF,CAAC,CAAC;IACL,CAAC;IAED,SAAS,aAAa;QACpB,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC;QAC7C,2BAA2B,CAAC,KAAK,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;QACnE,eAAe,CAAC;YACd,GAAG,YAAY;YACf;gBACE,EAAE,EAAE,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC;gBACrC,MAAM,EAAE,IAAI;aACb;SACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CACL,oBAAC,eAAe,IACd,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,kBAAkB,EACtC,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,kBAAkB,EAClC,SAAS,EAAE,aAAa,EACxB,YAAY,EAAE,gBAAgB,GAC9B,CACH,CAAC;AACJ,CAAC;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -42,12 +42,12 @@ function RepeatGroupView(props) {
|
|
|
42
42
|
const readOnly = useReadOnly(qItem, parentIsReadOnly);
|
|
43
43
|
if (showMinimalView) {
|
|
44
44
|
return (React.createElement(QGroupContainerBox, { key: qItem.linkId, cardElevation: groupCardElevation, isRepeated: true },
|
|
45
|
-
React.createElement(Card, { elevation: groupCardElevation, sx: { p: 2 } }, repeatGroups.map(({
|
|
45
|
+
React.createElement(Card, { elevation: groupCardElevation, sx: { p: 2 } }, repeatGroups.map(({ id, qrItem: nullableQrItem }, index) => {
|
|
46
46
|
const answeredQrItem = createEmptyQrItem(qItem, undefined);
|
|
47
47
|
if (nullableQrItem) {
|
|
48
48
|
answeredQrItem.item = nullableQrItem.item;
|
|
49
49
|
}
|
|
50
|
-
return (React.createElement(RepeatGroupItem, { key:
|
|
50
|
+
return (React.createElement(RepeatGroupItem, { key: id, qItem: qItem, repeatGroupIndex: index, answeredQrItem: answeredQrItem, nullableQrItem: nullableQrItem, numOfRepeatGroups: repeatGroups.length, groupCardElevation: groupCardElevation + 1, showMinimalView: showMinimalView, parentIsReadOnly: parentIsReadOnly, onDeleteItem: () => onDeleteItem(index), onQrItemChange: (newQrItem) => onAnswerChange(newQrItem, index) }));
|
|
51
51
|
}))));
|
|
52
52
|
}
|
|
53
53
|
const groupCollapsibleValue = getGroupCollapsible(qItem);
|
|
@@ -61,12 +61,12 @@ function RepeatGroupView(props) {
|
|
|
61
61
|
React.createElement(LabelWrapper, { qItem: qItem, readOnly: readOnly })))) : null),
|
|
62
62
|
React.createElement(AccordionDetails, { sx: { pt: 0 } },
|
|
63
63
|
qItem.text ? React.createElement(Divider, { sx: { mb: 1.5 }, light: true }) : null,
|
|
64
|
-
React.createElement(TransitionGroup, null, repeatGroups.map(({
|
|
64
|
+
React.createElement(TransitionGroup, null, repeatGroups.map(({ id, qrItem: nullableQrItem }, index) => {
|
|
65
65
|
const answeredQrItem = createEmptyQrItem(qItem, undefined);
|
|
66
66
|
if (nullableQrItem) {
|
|
67
67
|
answeredQrItem.item = nullableQrItem.item;
|
|
68
68
|
}
|
|
69
|
-
return (React.createElement(Collapse, { key:
|
|
69
|
+
return (React.createElement(Collapse, { key: id, timeout: 200 },
|
|
70
70
|
React.createElement(RepeatGroupItem, { qItem: qItem, repeatGroupIndex: index, answeredQrItem: answeredQrItem, nullableQrItem: nullableQrItem, numOfRepeatGroups: repeatGroups.length, groupCardElevation: groupCardElevation + 1, parentIsReadOnly: parentIsReadOnly, onDeleteItem: () => onDeleteItem(index), onQrItemChange: (newQrItem) => onAnswerChange(newQrItem, index) })));
|
|
71
71
|
})),
|
|
72
72
|
React.createElement(AddItemButton, { repeatGroups: repeatGroups, readOnly: readOnly, onAddItem: onAddItem }))));
|
|
@@ -77,12 +77,12 @@ function RepeatGroupView(props) {
|
|
|
77
77
|
React.createElement(Typography, { variant: "h6", color: readOnly ? 'text.secondary' : 'text.primary' },
|
|
78
78
|
React.createElement(LabelWrapper, { qItem: qItem, readOnly: readOnly })),
|
|
79
79
|
React.createElement(Divider, { sx: { mt: 1, mb: 1.5 }, light: true }))) : null,
|
|
80
|
-
React.createElement(TransitionGroup, null, repeatGroups.map(({
|
|
80
|
+
React.createElement(TransitionGroup, null, repeatGroups.map(({ id, qrItem: nullableQrItem }, index) => {
|
|
81
81
|
const answeredQrItem = createEmptyQrItem(qItem, undefined);
|
|
82
82
|
if (nullableQrItem) {
|
|
83
83
|
answeredQrItem.item = nullableQrItem.item;
|
|
84
84
|
}
|
|
85
|
-
return (React.createElement(Collapse, { key:
|
|
85
|
+
return (React.createElement(Collapse, { key: id, timeout: 200 },
|
|
86
86
|
React.createElement(RepeatGroupItem, { qItem: qItem, repeatGroupIndex: index, answeredQrItem: answeredQrItem, nullableQrItem: nullableQrItem, numOfRepeatGroups: repeatGroups.length, groupCardElevation: groupCardElevation + 1, parentIsReadOnly: parentIsReadOnly, onDeleteItem: () => onDeleteItem(index), onQrItemChange: (newQrItem) => onAnswerChange(newQrItem, index) })));
|
|
87
87
|
})),
|
|
88
88
|
React.createElement(AddItemButton, { repeatGroups: repeatGroups, readOnly: readOnly, onAddItem: onAddItem }))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RepeatGroupView.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/RepeatGroup/RepeatGroupView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,IAAI,MAAM,oBAAoB,CAAC;AACtC,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,YAAY,MAAM,+BAA+B,CAAC;AACzD,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAElD,OAAO,WAAW,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,cAAc,MAAM,gCAAgC,CAAC;AAC5D,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAc9D;;;;;GAKG;AACH,SAAS,eAAe,CAAC,KAA2B;IAClD,MAAM,EACJ,KAAK,EACL,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,YAAY,EACb,GAAG,KAAK,CAAC;IAEV,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IAEtD,IAAI,eAAe,EAAE;QACnB,OAAO,CACL,oBAAC,kBAAkB,IAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI;YACxF,oBAAC,IAAI,IAAC,SAAS,EAAE,kBAAkB,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAC9C,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"RepeatGroupView.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/RepeatGroup/RepeatGroupView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
import React from 'react';
|
|
18
|
-
import { nanoid } from 'nanoid';
|
|
19
18
|
import { createEmptyQrItem } from '../../../utils/qrItem';
|
|
20
19
|
import { FullWidthFormComponentBox } from '../../Box.styles';
|
|
21
20
|
import AddItemButton from './AddItemButton';
|
|
@@ -26,6 +25,7 @@ import useInitialiseRepeatAnswers from '../../../hooks/useInitialiseRepeatAnswer
|
|
|
26
25
|
import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
|
|
27
26
|
import useReadOnly from '../../../hooks/useReadOnly';
|
|
28
27
|
import { useQuestionnaireStore } from '../../../stores';
|
|
28
|
+
import { generateExistingRepeatId, generateNewRepeatId } from '../../../utils/repeatId';
|
|
29
29
|
/**
|
|
30
30
|
* Main component to render a repeating, non-group Questionnaire item.
|
|
31
31
|
*
|
|
@@ -35,7 +35,7 @@ function RepeatItem(props) {
|
|
|
35
35
|
const { qItem, qrItem, groupCardElevation, showMinimalView, parentIsReadOnly, onQrItemChange } = props;
|
|
36
36
|
const onFocusLinkId = useQuestionnaireStore.use.onFocusLinkId();
|
|
37
37
|
const readOnly = useReadOnly(qItem, parentIsReadOnly);
|
|
38
|
-
const repeatAnswers = useInitialiseRepeatAnswers(qrItem);
|
|
38
|
+
const repeatAnswers = useInitialiseRepeatAnswers(qItem.linkId, qrItem);
|
|
39
39
|
// Event Handlers
|
|
40
40
|
function handleAnswerChange(newQrItem, index) {
|
|
41
41
|
const updatedRepeatAnswers = [...repeatAnswers];
|
|
@@ -48,7 +48,7 @@ function RepeatItem(props) {
|
|
|
48
48
|
onQrItemChange(Object.assign(Object.assign({}, createEmptyQrItem(qItem, undefined)), { answer: updatedRepeatAnswers.flatMap((repeatAnswer) => (repeatAnswer ? [repeatAnswer] : [])) }));
|
|
49
49
|
}
|
|
50
50
|
function handleAddItem() {
|
|
51
|
-
const updatedRepeatAnswers = [...repeatAnswers, { id:
|
|
51
|
+
const updatedRepeatAnswers = [...repeatAnswers, { id: generateNewRepeatId(qItem.linkId) }];
|
|
52
52
|
onQrItemChange(Object.assign(Object.assign({}, createEmptyQrItem(qItem, undefined)), { answer: updatedRepeatAnswers.flatMap((repeatAnswer) => (repeatAnswer ? [repeatAnswer] : [])) }));
|
|
53
53
|
}
|
|
54
54
|
if (showMinimalView) {
|
|
@@ -58,7 +58,7 @@ function RepeatItem(props) {
|
|
|
58
58
|
if (answer) {
|
|
59
59
|
repeatAnswerQrItem.answer = [answer];
|
|
60
60
|
}
|
|
61
|
-
return (React.createElement(RepeatField, { key: (_a = answer === null || answer === void 0 ? void 0 : answer.id) !== null && _a !== void 0 ? _a :
|
|
61
|
+
return (React.createElement(RepeatField, { key: (_a = answer === null || answer === void 0 ? void 0 : answer.id) !== null && _a !== void 0 ? _a : generateExistingRepeatId(qItem.linkId, index), qItem: qItem, qrItem: repeatAnswerQrItem, answer: answer, numOfRepeatAnswers: repeatAnswers.length, groupCardElevation: groupCardElevation, parentIsReadOnly: parentIsReadOnly, showMinimalView: showMinimalView, onDeleteAnswer: () => handleDeleteItem(index), onQrItemChange: (newQrItem) => handleAnswerChange(newQrItem, index) }));
|
|
62
62
|
})));
|
|
63
63
|
}
|
|
64
64
|
return (React.createElement(FullWidthFormComponentBox, { "data-test": "q-item-repeat-box", "data-linkid": qItem.linkId, onClick: () => onFocusLinkId(qItem.linkId) },
|
|
@@ -69,7 +69,7 @@ function RepeatItem(props) {
|
|
|
69
69
|
if (answer) {
|
|
70
70
|
repeatAnswerQrItem.answer = [answer];
|
|
71
71
|
}
|
|
72
|
-
return (React.createElement(Collapse, { key: (_a = answer === null || answer === void 0 ? void 0 : answer.id) !== null && _a !== void 0 ? _a :
|
|
72
|
+
return (React.createElement(Collapse, { key: (_a = answer === null || answer === void 0 ? void 0 : answer.id) !== null && _a !== void 0 ? _a : generateExistingRepeatId(qItem.linkId, index), timeout: 200 },
|
|
73
73
|
React.createElement(RepeatField, { qItem: qItem, qrItem: repeatAnswerQrItem, answer: answer, numOfRepeatAnswers: repeatAnswers.length, groupCardElevation: groupCardElevation, parentIsReadOnly: parentIsReadOnly, showMinimalView: showMinimalView, onDeleteAnswer: () => handleDeleteItem(index), onQrItemChange: (newQrItem) => handleAnswerChange(newQrItem, index) })));
|
|
74
74
|
}))),
|
|
75
75
|
React.createElement(AddItemButton, { repeatAnswers: repeatAnswers, readOnly: readOnly, onAddItem: handleAddItem })));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RepeatItem.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/RepeatItem/RepeatItem.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"RepeatItem.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/RepeatItem/RepeatItem.tsx"],"names":[],"mappings":"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"}
|
|
@@ -25,12 +25,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
25
25
|
};
|
|
26
26
|
import React, { useMemo } from 'react';
|
|
27
27
|
import { mapQItemsIndex } from '../../../utils/mapItem';
|
|
28
|
-
import { nanoid } from 'nanoid';
|
|
29
28
|
import useReadOnly from '../../../hooks/useReadOnly';
|
|
30
29
|
import GroupTableView from './GroupTableView';
|
|
31
30
|
import { getGroupTableItemsToUpdate } from '../../../utils/groupTable';
|
|
32
31
|
import useGroupTableRows from '../../../hooks/useGroupTableRows';
|
|
33
32
|
import { flushSync } from 'react-dom';
|
|
33
|
+
import { generateNewRepeatId } from '../../../utils/repeatId';
|
|
34
34
|
/**
|
|
35
35
|
* Main component to render a Group Table (gtable) Questionnaire item.
|
|
36
36
|
* @see {@link https://hl7.org/fhir/extensions/CodeSystem-questionnaire-item-control.html}
|
|
@@ -40,7 +40,7 @@ import { flushSync } from 'react-dom';
|
|
|
40
40
|
function GroupTable(props) {
|
|
41
41
|
const { qItem, qrItems, groupCardElevation, isRepeated, showMinimalView, parentIsReadOnly, onQrRepeatGroupChange } = props;
|
|
42
42
|
const readOnly = useReadOnly(qItem, parentIsReadOnly);
|
|
43
|
-
const { tableRows, selectedIds, setTableRows, setSelectedIds } = useGroupTableRows(qrItems);
|
|
43
|
+
const { tableRows, selectedIds, setTableRows, setSelectedIds } = useGroupTableRows(qItem.linkId, qrItems);
|
|
44
44
|
// Generate item labels as table headers
|
|
45
45
|
const qItems = qItem.item;
|
|
46
46
|
const itemLabels = useMemo(() => { var _a; return (_a = qItems === null || qItems === void 0 ? void 0 : qItems.map((item) => { var _a; return (_a = item.text) !== null && _a !== void 0 ? _a : ''; })) !== null && _a !== void 0 ? _a : []; }, [qItems]);
|
|
@@ -68,7 +68,7 @@ function GroupTable(props) {
|
|
|
68
68
|
function handleRemoveRow(index) {
|
|
69
69
|
const updatedTableRows = [...tableRows];
|
|
70
70
|
const rowToRemove = updatedTableRows[index];
|
|
71
|
-
const updatedSelectedIds = selectedIds.filter((id) => id !== rowToRemove.
|
|
71
|
+
const updatedSelectedIds = selectedIds.filter((id) => id !== rowToRemove.id);
|
|
72
72
|
updatedTableRows.splice(index, 1);
|
|
73
73
|
setTableRows(updatedTableRows);
|
|
74
74
|
onQrRepeatGroupChange({
|
|
@@ -78,30 +78,30 @@ function GroupTable(props) {
|
|
|
78
78
|
setSelectedIds(updatedSelectedIds);
|
|
79
79
|
}
|
|
80
80
|
function handleAddRow() {
|
|
81
|
-
const
|
|
81
|
+
const newRowId = generateNewRepeatId(qItem.linkId);
|
|
82
82
|
setTableRows([
|
|
83
83
|
...tableRows,
|
|
84
84
|
{
|
|
85
|
-
|
|
85
|
+
id: newRowId,
|
|
86
86
|
qrItem: null
|
|
87
87
|
}
|
|
88
88
|
]);
|
|
89
|
-
setSelectedIds([...selectedIds,
|
|
89
|
+
setSelectedIds([...selectedIds, newRowId]);
|
|
90
90
|
}
|
|
91
91
|
function handleSelectAll() {
|
|
92
92
|
// deselect all if all are selected, otherwise select all
|
|
93
|
-
const updatedTableIds = selectedIds.length === tableRows.length ? [] : tableRows.map((tableRow) => tableRow.
|
|
93
|
+
const updatedTableIds = selectedIds.length === tableRows.length ? [] : tableRows.map((tableRow) => tableRow.id);
|
|
94
94
|
setSelectedIds(updatedTableIds);
|
|
95
95
|
onQrRepeatGroupChange({
|
|
96
96
|
linkId: qItem.linkId,
|
|
97
97
|
qrItems: getGroupTableItemsToUpdate(tableRows, updatedTableIds)
|
|
98
98
|
});
|
|
99
99
|
}
|
|
100
|
-
function handleSelectRow(
|
|
100
|
+
function handleSelectRow(rowId) {
|
|
101
101
|
const updatedSelectedIds = [...selectedIds];
|
|
102
|
-
const index = updatedSelectedIds.indexOf(
|
|
102
|
+
const index = updatedSelectedIds.indexOf(rowId);
|
|
103
103
|
if (index === -1) {
|
|
104
|
-
updatedSelectedIds.push(
|
|
104
|
+
updatedSelectedIds.push(rowId);
|
|
105
105
|
}
|
|
106
106
|
else {
|
|
107
107
|
updatedSelectedIds.splice(index, 1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupTable.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/Tables/GroupTable.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;;;;;;;;;;AAEH,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAOxD,OAAO,
|
|
1
|
+
{"version":3,"file":"GroupTable.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/Tables/GroupTable.tsx"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ interface GroupTableBodyProps extends PropsWithIsRepeatedAttribute, PropsWithPar
|
|
|
10
10
|
qItemsIndexMap: Record<string, number>;
|
|
11
11
|
onRowChange: (newQrRow: QuestionnaireResponseItem, index: number) => void;
|
|
12
12
|
onRemoveRow: (index: number) => void;
|
|
13
|
-
onSelectRow: (
|
|
13
|
+
onSelectRow: (rowId: string) => void;
|
|
14
14
|
onReorderRows: (newTableRows: GroupTableRowModel[]) => void;
|
|
15
15
|
}
|
|
16
16
|
declare function GroupTableBody(props: GroupTableBodyProps): React.JSX.Element;
|
|
@@ -34,13 +34,13 @@ function GroupTableBody(props) {
|
|
|
34
34
|
}
|
|
35
35
|
return (React.createElement(DragDropContext, { onDragEnd: onDragEnd },
|
|
36
36
|
React.createElement(Droppable, { droppableId: "gtable_rows", direction: "vertical" }, (droppableProvided, snapshot) => (React.createElement(TableBody, Object.assign({ ref: droppableProvided.innerRef }, droppableProvided.droppableProps),
|
|
37
|
-
tableRows.map(({
|
|
38
|
-
const itemIsSelected = selectedIds.indexOf(
|
|
37
|
+
tableRows.map(({ id, qrItem: nullableQrItem }, index) => {
|
|
38
|
+
const itemIsSelected = selectedIds.indexOf(id) !== -1;
|
|
39
39
|
const answeredQrItem = createEmptyQrItem(tableQItem, undefined);
|
|
40
40
|
if (nullableQrItem) {
|
|
41
41
|
answeredQrItem.item = nullableQrItem.item;
|
|
42
42
|
}
|
|
43
|
-
return (React.createElement(GroupTableRow, { key:
|
|
43
|
+
return (React.createElement(GroupTableRow, { key: id, index: index, rowId: id, tableQItem: tableQItem, answeredQrItem: answeredQrItem, nullableQrItem: nullableQrItem, readOnly: readOnly, isRepeated: isRepeated, hoverDisabled: snapshot.isDraggingOver, tableRows: tableRows, itemIsSelected: itemIsSelected, selectedIds: selectedIds, qItemsIndexMap: qItemsIndexMap, showMinimalView: showMinimalView, parentIsReadOnly: parentIsReadOnly, onRowChange: onRowChange, onRemoveRow: onRemoveRow, onSelectRow: onSelectRow }));
|
|
44
44
|
}),
|
|
45
45
|
droppableProvided.placeholder)))));
|
|
46
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupTableBody.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/Tables/GroupTableBody.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAQ1D,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,SAAS,MAAM,yBAAyB,CAAC;AAiBhD,SAAS,cAAc,CAAC,KAA0B;IAChD,MAAM,EACJ,UAAU,EACV,QAAQ,EACR,SAAS,EACT,WAAW,EACX,cAAc,EACd,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,WAAW,EACX,aAAa,EACd,GAAG,KAAK,CAAC;IAEV,SAAS,SAAS,CAAC,MAAkB;QACnC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YACvB,OAAO;SACR;QAED,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;YACpD,OAAO;SACR;QAED,MAAM,aAAa,GAAG,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAE5F,aAAa,CAAC,aAAa,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,CACL,oBAAC,eAAe,IAAC,SAAS,EAAE,SAAS;QACnC,oBAAC,SAAS,IAAC,WAAW,EAAC,aAAa,EAAC,SAAS,EAAC,UAAU,IACtD,CAAC,iBAAiB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAChC,oBAAC,SAAS,kBAAC,GAAG,EAAE,iBAAiB,CAAC,QAAQ,IAAM,iBAAiB,CAAC,cAAc;YAC7E,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"GroupTableBody.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/Tables/GroupTableBody.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAQ1D,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,SAAS,MAAM,yBAAyB,CAAC;AAiBhD,SAAS,cAAc,CAAC,KAA0B;IAChD,MAAM,EACJ,UAAU,EACV,QAAQ,EACR,SAAS,EACT,WAAW,EACX,cAAc,EACd,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,WAAW,EACX,aAAa,EACd,GAAG,KAAK,CAAC;IAEV,SAAS,SAAS,CAAC,MAAkB;QACnC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YACvB,OAAO;SACR;QAED,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;YACpD,OAAO;SACR;QAED,MAAM,aAAa,GAAG,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAE5F,aAAa,CAAC,aAAa,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,CACL,oBAAC,eAAe,IAAC,SAAS,EAAE,SAAS;QACnC,oBAAC,SAAS,IAAC,WAAW,EAAC,aAAa,EAAC,SAAS,EAAC,UAAU,IACtD,CAAC,iBAAiB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAChC,oBAAC,SAAS,kBAAC,GAAG,EAAE,iBAAiB,CAAC,QAAQ,IAAM,iBAAiB,CAAC,cAAc;YAC7E,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,EAAE;gBACvD,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtD,MAAM,cAAc,GAAG,iBAAiB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;gBAChE,IAAI,cAAc,EAAE;oBAClB,cAAc,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC;iBAC3C;gBAED,OAAO,CACL,oBAAC,aAAa,IACZ,GAAG,EAAE,EAAE,EACP,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,EAAE,EACT,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,QAAQ,CAAC,cAAc,EACtC,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,GACxB,CACH,CAAC;YACJ,CAAC,CAAC;YACD,iBAAiB,CAAC,WAAW,CACpB,CACb,CACS,CACI,CACnB,CAAC;AACJ,CAAC;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -4,7 +4,7 @@ import type { PropsWithIsRepeatedAttribute, PropsWithParentIsReadOnlyAttribute,
|
|
|
4
4
|
import type { TableRowProps } from '@mui/material/TableRow';
|
|
5
5
|
import type { GroupTableRowModel } from '../../../interfaces/groupTable.interface';
|
|
6
6
|
interface GroupTableRowProps extends PropsWithIsRepeatedAttribute, PropsWithShowMinimalViewAttribute, PropsWithParentIsReadOnlyAttribute, TableRowProps {
|
|
7
|
-
|
|
7
|
+
rowId: string;
|
|
8
8
|
index: number;
|
|
9
9
|
tableQItem: QuestionnaireItem;
|
|
10
10
|
answeredQrItem: QuestionnaireResponseItem;
|
|
@@ -25,14 +25,14 @@ import Box from '@mui/material/Box';
|
|
|
25
25
|
import { Draggable } from 'react-beautiful-dnd';
|
|
26
26
|
import { StyledGroupTableRow } from './Table.styles';
|
|
27
27
|
function GroupTableRow(props) {
|
|
28
|
-
const {
|
|
28
|
+
const { rowId, index, tableQItem, answeredQrItem, nullableQrItem, readOnly, isRepeated, hoverDisabled, tableRows, itemIsSelected, qItemsIndexMap, showMinimalView, parentIsReadOnly, onRowChange, onRemoveRow, onSelectRow } = props;
|
|
29
29
|
if (isRepeated) {
|
|
30
|
-
return (React.createElement(Draggable, { draggableId:
|
|
30
|
+
return (React.createElement(Draggable, { draggableId: rowId, index: index }, (draggableProvided, snapshot) => (React.createElement(StyledGroupTableRow, Object.assign({ itemIsDragged: snapshot.isDragging, itemIsSelected: itemIsSelected, hoverDisabled: hoverDisabled, hover: !hoverDisabled, ref: draggableProvided.innerRef }, draggableProvided.draggableProps),
|
|
31
31
|
showMinimalView || !isRepeated ? (React.createElement(TableCell, { padding: "checkbox" })) : (React.createElement(React.Fragment, null,
|
|
32
32
|
React.createElement(TableCell, { padding: "none" },
|
|
33
33
|
React.createElement(Box, Object.assign({ display: "flex", alignItems: "center", justifyContent: "center" }, (readOnly ? {} : draggableProvided.dragHandleProps)),
|
|
34
34
|
React.createElement(DragIndicator, { fontSize: "small", sx: { color: readOnly ? 'text.disabled' : 'inherit' } }))),
|
|
35
|
-
React.createElement(SelectRowButton, { isSelected: itemIsSelected, readOnly: readOnly, onSelectItem: () => onSelectRow(
|
|
35
|
+
React.createElement(SelectRowButton, { isSelected: itemIsSelected, readOnly: readOnly, onSelectItem: () => onSelectRow(rowId) }))),
|
|
36
36
|
React.createElement(GroupTableRowCells, { qItem: tableQItem, qrItem: answeredQrItem, qItemsIndexMap: qItemsIndexMap, parentIsReadOnly: parentIsReadOnly, onQrItemChange: (newQrGroup) => onRowChange(newQrGroup, index) }),
|
|
37
37
|
showMinimalView || !isRepeated ? (React.createElement(TableCell, { padding: "checkbox" })) : (React.createElement(RemoveRowButton, { nullableQrItem: nullableQrItem, numOfRows: tableRows.length, readOnly: readOnly, onRemoveItem: () => onRemoveRow(index) }))))));
|
|
38
38
|
}
|
|
@@ -41,7 +41,7 @@ function GroupTableRow(props) {
|
|
|
41
41
|
React.createElement(TableCell, { padding: "none" },
|
|
42
42
|
React.createElement(Box, { display: "flex", alignItems: "center", justifyContent: "center" },
|
|
43
43
|
React.createElement(DragIndicator, { fontSize: "small", sx: { color: readOnly ? 'text.disabled' : 'inherit' } }))),
|
|
44
|
-
React.createElement(SelectRowButton, { isSelected: itemIsSelected, readOnly: readOnly, onSelectItem: () => onSelectRow(
|
|
44
|
+
React.createElement(SelectRowButton, { isSelected: itemIsSelected, readOnly: readOnly, onSelectItem: () => onSelectRow(rowId) }))),
|
|
45
45
|
React.createElement(GroupTableRowCells, { qItem: tableQItem, qrItem: answeredQrItem, qItemsIndexMap: qItemsIndexMap, parentIsReadOnly: parentIsReadOnly, onQrItemChange: (newQrGroup) => onRowChange(newQrGroup, index) }),
|
|
46
46
|
showMinimalView || !isRepeated ? (React.createElement(TableCell, { padding: "checkbox" })) : (React.createElement(RemoveRowButton, { nullableQrItem: nullableQrItem, numOfRows: tableRows.length, readOnly: readOnly, onRemoveItem: () => onRemoveRow(index) }))));
|
|
47
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupTableRow.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/Tables/GroupTableRow.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,OAAO,aAAa,MAAM,mCAAmC,CAAC;AAC9D,OAAO,SAAS,MAAM,yBAAyB,CAAC;AAChD,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAwBrD,SAAS,aAAa,CAAC,KAAyB;IAC9C,MAAM,EACJ,
|
|
1
|
+
{"version":3,"file":"GroupTableRow.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/Tables/GroupTableRow.tsx"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ interface GroupTableViewProps extends PropsWithIsRepeatedAttribute, PropsWithSho
|
|
|
13
13
|
onAddRow: () => void;
|
|
14
14
|
onRowChange: (newQrRow: QuestionnaireResponseItem, index: number) => void;
|
|
15
15
|
onRemoveRow: (index: number) => void;
|
|
16
|
-
onSelectRow: (
|
|
16
|
+
onSelectRow: (rowId: string) => void;
|
|
17
17
|
onSelectAll: () => void;
|
|
18
18
|
onReorderRows: (newTableRows: GroupTableRowModel[]) => void;
|
|
19
19
|
}
|
|
@@ -27,8 +27,10 @@ import useHidden from '../../hooks/useHidden';
|
|
|
27
27
|
import GroupItemSwitcher from '../FormComponents/GroupItem/GroupItemSwitcher';
|
|
28
28
|
import useReadOnly from '../../hooks/useReadOnly';
|
|
29
29
|
import Box from '@mui/material/Box';
|
|
30
|
-
import { isSpecificItemControl } from '../../utils';
|
|
30
|
+
import { isRepeatItemAndNotCheckbox, isSpecificItemControl } from '../../utils';
|
|
31
31
|
import GroupTable from '../FormComponents/Tables/GroupTable';
|
|
32
|
+
import RepeatItem from '../FormComponents/RepeatItem/RepeatItem';
|
|
33
|
+
import GridGroup from '../FormComponents/GridGroup/GridGroup';
|
|
32
34
|
function FormTopLevelItem(props) {
|
|
33
35
|
const { topLevelQItem, topLevelQRItemOrItems, parentIsReadOnly, onQrItemChange, onQrRepeatGroupChange } = props;
|
|
34
36
|
const itemIsTabContainer = isTabContainer(topLevelQItem);
|
|
@@ -61,6 +63,11 @@ function FormTopLevelItem(props) {
|
|
|
61
63
|
}
|
|
62
64
|
// If form is untabbed, it is rendered as a regular group
|
|
63
65
|
if (itemIsGroup) {
|
|
66
|
+
// Item is 'grid'
|
|
67
|
+
const itemIsGrid = isSpecificItemControl(topLevelQItem, 'grid');
|
|
68
|
+
if (itemIsGrid) {
|
|
69
|
+
return (React.createElement(GridGroup, { qItem: topLevelQItem, qrItem: topLevelQRItem, groupCardElevation: 1, parentIsReadOnly: parentIsReadOnly, onQrItemChange: onQrItemChange }));
|
|
70
|
+
}
|
|
64
71
|
// GroupTable "gtable" can be rendered with either repeats:true or false
|
|
65
72
|
if (isSpecificItemControl(topLevelQItem, 'gtable')) {
|
|
66
73
|
return (React.createElement(GroupTable, { key: topLevelQItem.linkId, qItem: topLevelQItem, qrItems: topLevelQRItem ? [topLevelQRItem] : [], groupCardElevation: 1, isRepeated: false, parentIsReadOnly: parentIsReadOnly, onQrRepeatGroupChange: onQrRepeatGroupChange }));
|
|
@@ -68,6 +75,11 @@ function FormTopLevelItem(props) {
|
|
|
68
75
|
return (React.createElement(GroupItem, { key: topLevelQItem.linkId, qItem: topLevelQItem, qrItem: topLevelQRItem, groupCardElevation: 1, isRepeated: false, parentIsReadOnly: readOnly, onQrItemChange: onQrItemChange }));
|
|
69
76
|
}
|
|
70
77
|
// Otherwise, it is rendered as a non-group item
|
|
78
|
+
const itemRepeatsAndIsNotCheckbox = isRepeatItemAndNotCheckbox(topLevelQItem);
|
|
79
|
+
if (itemRepeatsAndIsNotCheckbox) {
|
|
80
|
+
return (React.createElement(Box, { mt: 1 },
|
|
81
|
+
React.createElement(RepeatItem, { key: topLevelQItem.linkId, qItem: topLevelQItem, qrItem: topLevelQRItem, groupCardElevation: 1, parentIsReadOnly: readOnly, onQrItemChange: onQrItemChange })));
|
|
82
|
+
}
|
|
71
83
|
return (React.createElement(Box, { mt: 1 },
|
|
72
84
|
React.createElement(SingleItem, { key: topLevelQItem.linkId, qItem: topLevelQItem, qrItem: topLevelQRItem, isRepeated: false, isTabled: false, groupCardElevation: 1, parentIsReadOnly: readOnly, onQrItemChange: onQrItemChange })));
|
|
73
85
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormTopLevelItem.js","sourceRoot":"","sources":["../../../src/components/Renderer/FormTopLevelItem.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,SAAS,MAAM,uCAAuC,CAAC;AAC9D,OAAO,UAAU,MAAM,yCAAyC,CAAC;AAMjE,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,aAAa,MAAM,2BAA2B,CAAC;AACtD,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,iBAAiB,MAAM,+CAA+C,CAAC;AAC9E,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAClD,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"FormTopLevelItem.js","sourceRoot":"","sources":["../../../src/components/Renderer/FormTopLevelItem.tsx"],"names":[],"mappings":"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"}
|
|
@@ -41,8 +41,8 @@ function useDateValidation(input, parseFail = false) {
|
|
|
41
41
|
return 'Input does not match the formats MM/YYYY or DD/MM/YYYY.';
|
|
42
42
|
}
|
|
43
43
|
const matches = input.split('/');
|
|
44
|
-
if (validateTwoMatches(matches[0], matches[1])) {
|
|
45
|
-
return
|
|
44
|
+
if (!validateTwoMatches(matches[0], matches[1])) {
|
|
45
|
+
return 'Input is an invalid date.';
|
|
46
46
|
}
|
|
47
47
|
return null;
|
|
48
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDateValidation.js","sourceRoot":"","sources":["../../src/hooks/useDateValidation.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,4DAA4D,CAAC;AACpE,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,SAAS,iBAAiB,CAAC,KAAa,EAAE,YAAqB,KAAK;IAClE,IAAI,KAAK,KAAK,EAAE,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACvB,OAAO,qEAAqE,CAAC;KAC9E;IAED,MAAM,eAAe,GAAG,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAEvD,IAAI,eAAe,KAAK,CAAC,EAAE;QACzB,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QACpD,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE;YAC/B,OAAO,6CAA6C,CAAC;SACtD;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;YAC7D,OAAO,2BAA2B,CAAC;SACpC;QAED,OAAO,IAAI,CAAC;KACb;IAED,IAAI,eAAe,KAAK,CAAC,EAAE;QACzB,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE;YAC7B,OAAO,yDAAyD,CAAC;SAClE;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEjC,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"useDateValidation.js","sourceRoot":"","sources":["../../src/hooks/useDateValidation.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,4DAA4D,CAAC;AACpE,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,SAAS,iBAAiB,CAAC,KAAa,EAAE,YAAqB,KAAK;IAClE,IAAI,KAAK,KAAK,EAAE,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACvB,OAAO,qEAAqE,CAAC;KAC9E;IAED,MAAM,eAAe,GAAG,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAEvD,IAAI,eAAe,KAAK,CAAC,EAAE;QACzB,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QACpD,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE;YAC/B,OAAO,6CAA6C,CAAC;SACtD;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;YAC7D,OAAO,2BAA2B,CAAC;SACpC;QAED,OAAO,IAAI,CAAC;KACb;IAED,IAAI,eAAe,KAAK,CAAC,EAAE;QACzB,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE;YAC7B,OAAO,yDAAyD,CAAC;SAClE;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEjC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;YAC/C,OAAO,2BAA2B,CAAC;SACpC;QAED,OAAO,IAAI,CAAC;KACb;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1C,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE;YAC1B,OAAO,IAAI,CAAC;SACb;KACF;IAED,IAAI,SAAS,EAAE;QACb,OAAO,2BAA2B,CAAC;KACpC;IAED,OAAO,uCAAuC,CAAC;AACjD,CAAC;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import type { QuestionnaireResponseItem } from 'fhir/r4';
|
|
3
|
-
declare function useGroupTableRows(qrItems: QuestionnaireResponseItem[]): {
|
|
3
|
+
declare function useGroupTableRows(linkId: string, qrItems: QuestionnaireResponseItem[]): {
|
|
4
4
|
tableRows: import("../interfaces/groupTable.interface").GroupTableRowModel[];
|
|
5
5
|
selectedIds: string[];
|
|
6
6
|
setTableRows: import("react").Dispatch<import("react").SetStateAction<import("../interfaces/groupTable.interface").GroupTableRowModel[]>>;
|
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import { useState } from 'react';
|
|
18
18
|
import useInitialiseGroupTable from './useInitialiseGroupTable';
|
|
19
|
-
function useGroupTableRows(qrItems) {
|
|
20
|
-
const initialisedGroupTableRows = useInitialiseGroupTable(qrItems);
|
|
19
|
+
function useGroupTableRows(linkId, qrItems) {
|
|
20
|
+
const initialisedGroupTableRows = useInitialiseGroupTable(linkId, qrItems);
|
|
21
21
|
const [tableRows, setTableRows] = useState(initialisedGroupTableRows);
|
|
22
|
-
const [selectedIds, setSelectedIds] = useState(initialisedGroupTableRows.map((row) => row.
|
|
22
|
+
const [selectedIds, setSelectedIds] = useState(initialisedGroupTableRows.map((row) => row.id));
|
|
23
23
|
return { tableRows, selectedIds, setTableRows, setSelectedIds };
|
|
24
24
|
}
|
|
25
25
|
export default useGroupTableRows;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGroupTableRows.js","sourceRoot":"","sources":["../../src/hooks/useGroupTableRows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAGhE,SAAS,iBAAiB,CAAC,OAAoC;
|
|
1
|
+
{"version":3,"file":"useGroupTableRows.js","sourceRoot":"","sources":["../../src/hooks/useGroupTableRows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAGhE,SAAS,iBAAiB,CAAC,MAAc,EAAE,OAAoC;IAC7E,MAAM,yBAAyB,GAAG,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE3E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,yBAAyB,CAAC,CAAC;IACtE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAC5C,yBAAyB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAC/C,CAAC;IAEF,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;AAClE,CAAC;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { QuestionnaireResponseItem } from 'fhir/r4';
|
|
2
2
|
import type { GroupTableRowModel } from '../interfaces/groupTable.interface';
|
|
3
|
-
declare function useInitialiseGroupTable(qrItems: QuestionnaireResponseItem[]): GroupTableRowModel[];
|
|
3
|
+
declare function useInitialiseGroupTable(linkId: string, qrItems: QuestionnaireResponseItem[]): GroupTableRowModel[];
|
|
4
4
|
export default useInitialiseGroupTable;
|
|
@@ -14,23 +14,17 @@
|
|
|
14
14
|
* See the License for the specific language governing permissions and
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
|
-
import {
|
|
18
|
-
function useInitialiseGroupTable(qrItems) {
|
|
19
|
-
|
|
20
|
-
{
|
|
21
|
-
nanoId: nanoid(),
|
|
22
|
-
qrItem: null
|
|
23
|
-
}
|
|
24
|
-
];
|
|
25
|
-
if (qrItems.length > 0) {
|
|
26
|
-
initialGroupTableRows = qrItems.map((qrItem) => {
|
|
27
|
-
return {
|
|
28
|
-
nanoId: nanoid(),
|
|
29
|
-
qrItem
|
|
30
|
-
};
|
|
31
|
-
});
|
|
17
|
+
import { generateExistingRepeatId, generateNewRepeatId } from '../utils/repeatId';
|
|
18
|
+
function useInitialiseGroupTable(linkId, qrItems) {
|
|
19
|
+
if (qrItems.length === 0) {
|
|
20
|
+
return [{ id: generateNewRepeatId(linkId), qrItem: null }];
|
|
32
21
|
}
|
|
33
|
-
return
|
|
22
|
+
return qrItems.map((qrItem, index) => {
|
|
23
|
+
return {
|
|
24
|
+
id: generateExistingRepeatId(linkId, index),
|
|
25
|
+
qrItem
|
|
26
|
+
};
|
|
27
|
+
});
|
|
34
28
|
}
|
|
35
29
|
export default useInitialiseGroupTable;
|
|
36
30
|
//# sourceMappingURL=useInitialiseGroupTable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInitialiseGroupTable.js","sourceRoot":"","sources":["../../src/hooks/useInitialiseGroupTable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"useInitialiseGroupTable.js","sourceRoot":"","sources":["../../src/hooks/useInitialiseGroupTable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAElF,SAAS,uBAAuB,CAC9B,MAAc,EACd,OAAoC;IAEpC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,CAAC,EAAE,EAAE,EAAE,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;KAC5D;IAED,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QACnC,OAAO;YACL,EAAE,EAAE,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC;YAC3C,MAAM;SACP,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,eAAe,uBAAuB,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { QuestionnaireResponseItem, QuestionnaireResponseItemAnswer } from 'fhir/r4';
|
|
2
|
-
declare function useInitialiseRepeatAnswers(qrItem: QuestionnaireResponseItem | null): (QuestionnaireResponseItemAnswer | null)[];
|
|
2
|
+
declare function useInitialiseRepeatAnswers(linkId: string, qrItem: QuestionnaireResponseItem | null): (QuestionnaireResponseItemAnswer | null)[];
|
|
3
3
|
export default useInitialiseRepeatAnswers;
|