@aehrc/smart-forms-renderer 0.40.0 → 0.40.1

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.
Files changed (71) hide show
  1. package/lib/components/FormComponents/ItemParts/ItemFieldGrid.js +6 -2
  2. package/lib/components/FormComponents/ItemParts/ItemFieldGrid.js.map +1 -1
  3. package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js +2 -2
  4. package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js.map +1 -1
  5. package/lib/components/FormComponents/RepeatItem/RepeatItem.js +5 -5
  6. package/lib/components/FormComponents/RepeatItem/RepeatItem.js.map +1 -1
  7. package/lib/components/FormComponents/Tables/GroupTable.js +3 -3
  8. package/lib/components/FormComponents/Tables/GroupTable.js.map +1 -1
  9. package/lib/components/Renderer/FormTopLevelItem.js +12 -1
  10. package/lib/components/Renderer/FormTopLevelItem.js.map +1 -1
  11. package/lib/hooks/useDateValidation.js +2 -2
  12. package/lib/hooks/useDateValidation.js.map +1 -1
  13. package/lib/hooks/useGroupTableRows.d.ts +1 -1
  14. package/lib/hooks/useGroupTableRows.js +2 -2
  15. package/lib/hooks/useGroupTableRows.js.map +1 -1
  16. package/lib/hooks/useInitialiseGroupTable.d.ts +1 -1
  17. package/lib/hooks/useInitialiseGroupTable.js +5 -5
  18. package/lib/hooks/useInitialiseGroupTable.js.map +1 -1
  19. package/lib/hooks/useInitialiseRepeatAnswers.d.ts +1 -1
  20. package/lib/hooks/useInitialiseRepeatAnswers.js +9 -12
  21. package/lib/hooks/useInitialiseRepeatAnswers.js.map +1 -1
  22. package/lib/hooks/useInitialiseRepeatGroups.js +4 -4
  23. package/lib/hooks/useInitialiseRepeatGroups.js.map +1 -1
  24. package/lib/utils/manageForm.js +2 -1
  25. package/lib/utils/manageForm.js.map +1 -1
  26. package/lib/utils/repeatId.d.ts +2 -0
  27. package/lib/utils/repeatId.js +25 -0
  28. package/lib/utils/repeatId.js.map +1 -0
  29. package/package.json +1 -1
  30. package/src/components/FormComponents/ItemParts/ItemFieldGrid.tsx +8 -2
  31. package/src/components/FormComponents/RepeatGroup/RepeatGroup.tsx +2 -2
  32. package/src/components/FormComponents/RepeatItem/RepeatItem.tsx +7 -5
  33. package/src/components/FormComponents/Tables/GroupTable.tsx +6 -3
  34. package/src/components/Renderer/FormTopLevelItem.tsx +31 -1
  35. package/src/hooks/useDateValidation.tsx +2 -2
  36. package/src/hooks/useGroupTableRows.ts +2 -2
  37. package/src/hooks/useInitialiseGroupTable.ts +8 -5
  38. package/src/hooks/useInitialiseRepeatAnswers.ts +9 -12
  39. package/src/hooks/useInitialiseRepeatGroups.ts +4 -4
  40. package/src/stories/assets/questionnaires/QIdRemoverDebugger.ts +161 -0
  41. package/src/stories/storybookWrappers/IdRemoverButtonForStorybook.tsx +54 -0
  42. package/src/stories/storybookWrappers/IdRemoverDebuggerWrapperForStorybook.tsx +81 -0
  43. package/src/stories/testing/IdRemoverDebuggerWrapper.stories.tsx +39 -0
  44. package/src/tests/extractObservation.test.ts +2 -5
  45. package/src/utils/manageForm.ts +2 -1
  46. package/src/utils/repeatId.ts +27 -0
  47. package/CHANGELOG.md +0 -43
  48. package/lib/hooks/useRepeatAnswers.d.ts +0 -4
  49. package/lib/hooks/useRepeatAnswers.js +0 -34
  50. package/lib/hooks/useRepeatAnswers.js.map +0 -1
  51. package/lib/interfaces/repeatItem.interface.d.ts +0 -5
  52. package/lib/interfaces/repeatItem.interface.js +0 -2
  53. package/lib/interfaces/repeatItem.interface.js.map +0 -1
  54. package/lib/utils/answerExpression.d.ts +0 -18
  55. package/lib/utils/answerExpression.js +0 -133
  56. package/lib/utils/answerExpression.js.map +0 -1
  57. package/lib/utils/dynamicValueSet.d.ts +0 -5
  58. package/lib/utils/dynamicValueSet.js +0 -96
  59. package/lib/utils/dynamicValueSet.js.map +0 -1
  60. package/lib/utils/fhirpathAsyncUtils/fhirpath-async.d.ts +0 -14
  61. package/lib/utils/fhirpathAsyncUtils/fhirpath-async.js +0 -639
  62. package/lib/utils/fhirpathAsyncUtils/fhirpath-async.js.map +0 -1
  63. package/lib/utils/fhirpathAsyncUtils/outcome-utils.d.ts +0 -3
  64. package/lib/utils/fhirpathAsyncUtils/outcome-utils.js +0 -41
  65. package/lib/utils/fhirpathAsyncUtils/outcome-utils.js.map +0 -1
  66. package/lib/utils/questionnaireStoreUtils/extractPreferredTerminologyServerUrls.d.ts +0 -3
  67. package/lib/utils/questionnaireStoreUtils/extractPreferredTerminologyServerUrls.js +0 -34
  68. package/lib/utils/questionnaireStoreUtils/extractPreferredTerminologyServerUrls.js.map +0 -1
  69. package/lib/utils/updateQr.d.ts +0 -9
  70. package/lib/utils/updateQr.js +0 -55
  71. 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, xs: 4 },
27
+ React.createElement(Grid, { item: true, md: 4, xs: 12 },
27
28
  React.createElement(LabelWrapper, { qItem: qItem, readOnly: readOnly })),
28
- React.createElement(Grid, { item: true, xs: 8 },
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;AAQ3E,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;YACd,oBAAC,YAAY,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAC7C;QACP,oBAAC,IAAI,IAAC,IAAI,QAAC,EAAE,EAAE,CAAC;YACb,QAAQ;YACT,oBAAC,mBAAmB,IAAC,mBAAmB,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAChF,CACF,CACR,CAAC;AACJ,CAAC;AAED,eAAe,aAAa,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.
@@ -64,7 +64,7 @@ function RepeatGroup(props) {
64
64
  setRepeatGroups([
65
65
  ...repeatGroups,
66
66
  {
67
- nanoId: nanoid(),
67
+ nanoId: 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":"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"}
1
+ {"version":3,"file":"RepeatGroup.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/RepeatGroup/RepeatGroup.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: nanoid() }];
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 : nanoid(), qItem: qItem, qrItem: repeatAnswerQrItem, answer: answer, numOfRepeatAnswers: repeatAnswers.length, groupCardElevation: groupCardElevation, parentIsReadOnly: parentIsReadOnly, showMinimalView: showMinimalView, onDeleteAnswer: () => handleDeleteItem(index), onQrItemChange: (newQrItem) => handleAnswerChange(newQrItem, index) }));
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 : nanoid(), timeout: 200 },
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":"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"}
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]);
@@ -78,7 +78,7 @@ function GroupTable(props) {
78
78
  setSelectedIds(updatedSelectedIds);
79
79
  }
80
80
  function handleAddRow() {
81
- const newRowNanoId = nanoid();
81
+ const newRowNanoId = generateNewRepeatId(qItem.linkId);
82
82
  setTableRows([
83
83
  ...tableRows,
84
84
  {
@@ -1 +1 @@
1
- {"version":3,"file":"GroupTable.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/Tables/GroupTable.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GroupTable.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/Tables/GroupTable.tsx"],"names":[],"mappings":"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"}
@@ -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,10 @@ 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(RepeatItem, { key: topLevelQItem.linkId, qItem: topLevelQItem, qrItem: topLevelQRItem, groupCardElevation: 1, parentIsReadOnly: readOnly, onQrItemChange: onQrItemChange }));
81
+ }
71
82
  return (React.createElement(Box, { mt: 1 },
72
83
  React.createElement(SingleItem, { key: topLevelQItem.linkId, qItem: topLevelQItem, qrItem: topLevelQRItem, isRepeated: false, isTabled: false, groupCardElevation: 1, parentIsReadOnly: readOnly, onQrItemChange: onQrItemChange })));
73
84
  }
@@ -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;AACpD,OAAO,UAAU,MAAM,qCAAqC,CAAC;AAU7D,SAAS,gBAAgB,CAAC,KAA4B;IACpD,MAAM,EACJ,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACtB,GAAG,KAAK,CAAC;IAEV,MAAM,kBAAkB,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IACzD,MAAM,gBAAgB,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAErD,MAAM,mBAAmB,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;IAClD,MAAM,iBAAiB,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;IAEvD,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAE3C,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,KAAK,OAAO,CAAC;IAEnD,MAAM,QAAQ,GAAG,WAAW,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;IAC9C,IAAI,YAAY,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IAED,yFAAyF;IACzF,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAChE,IAAI,kBAAkB,EAAE;QACtB,OAAO,CACL,oBAAC,iBAAiB,IAChB,KAAK,EAAE,aAAa,EACpB,aAAa,EAAE,qBAAqB,EACpC,kBAAkB,EAAE,CAAC,EACrB,gBAAgB,EAAE,QAAQ,EAC1B,cAAc,EAAE,cAAc,EAC9B,qBAAqB,EAAE,qBAAqB,GAC5C,CACH,CAAC;KACH;IAED,0CAA0C;IAC1C,MAAM,cAAc,GAAG,qBAAqB,CAAC;IAE7C,qDAAqD;IACrD,IAAI,gBAAgB,IAAI,kBAAkB,EAAE;QAC1C,IAAI,QAAQ,EAAE;YACZ,OAAO,CACL,oBAAC,cAAc,IACb,GAAG,EAAE,aAAa,CAAC,MAAM,EACzB,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,QAAQ,EAC1B,cAAc,EAAE,cAAc,GAC9B,CACH,CAAC;SACH;QAED,OAAO,CACL,oBAAC,mBAAmB,IAClB,GAAG,EAAE,aAAa,CAAC,MAAM,EACzB,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,QAAQ,EAC1B,cAAc,EAAE,cAAc,GAC9B,CACH,CAAC;KACH;IAED,IAAI,iBAAiB,IAAI,mBAAmB,EAAE;QAC5C,OAAO,CACL,oBAAC,YAAY,IACX,GAAG,EAAE,aAAa,CAAC,MAAM,EACzB,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,QAAQ,EAC1B,cAAc,EAAE,cAAc,GAC9B,CACH,CAAC;KACH;IAED,yDAAyD;IACzD,IAAI,WAAW,EAAE;QACf,wEAAwE;QACxE,IAAI,qBAAqB,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE;YAClD,OAAO,CACL,oBAAC,UAAU,IACT,GAAG,EAAE,aAAa,CAAC,MAAM,EACzB,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,EAC/C,kBAAkB,EAAE,CAAC,EACrB,UAAU,EAAE,KAAK,EACjB,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,qBAAqB,GAC5C,CACH,CAAC;SACH;QAED,OAAO,CACL,oBAAC,SAAS,IACR,GAAG,EAAE,aAAa,CAAC,MAAM,EACzB,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,cAAc,EACtB,kBAAkB,EAAE,CAAC,EACrB,UAAU,EAAE,KAAK,EACjB,gBAAgB,EAAE,QAAQ,EAC1B,cAAc,EAAE,cAAc,GAC9B,CACH,CAAC;KACH;IAED,gDAAgD;IAChD,OAAO,CACL,oBAAC,GAAG,IAAC,EAAE,EAAE,CAAC;QACR,oBAAC,UAAU,IACT,GAAG,EAAE,aAAa,CAAC,MAAM,EACzB,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,KAAK,EACjB,QAAQ,EAAE,KAAK,EACf,kBAAkB,EAAE,CAAC,EACrB,gBAAgB,EAAE,QAAQ,EAC1B,cAAc,EAAE,cAAc,GAC9B,CACE,CACP,CAAC;AACJ,CAAC;AAED,eAAe,gBAAgB,CAAC"}
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,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,UAAU,MAAM,qCAAqC,CAAC;AAC7D,OAAO,UAAU,MAAM,yCAAyC,CAAC;AACjE,OAAO,SAAS,MAAM,uCAAuC,CAAC;AAU9D,SAAS,gBAAgB,CAAC,KAA4B;IACpD,MAAM,EACJ,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACtB,GAAG,KAAK,CAAC;IAEV,MAAM,kBAAkB,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IACzD,MAAM,gBAAgB,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAErD,MAAM,mBAAmB,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;IAClD,MAAM,iBAAiB,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;IAEvD,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAE3C,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,KAAK,OAAO,CAAC;IAEnD,MAAM,QAAQ,GAAG,WAAW,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;IAC9C,IAAI,YAAY,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IAED,yFAAyF;IACzF,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAChE,IAAI,kBAAkB,EAAE;QACtB,OAAO,CACL,oBAAC,iBAAiB,IAChB,KAAK,EAAE,aAAa,EACpB,aAAa,EAAE,qBAAqB,EACpC,kBAAkB,EAAE,CAAC,EACrB,gBAAgB,EAAE,QAAQ,EAC1B,cAAc,EAAE,cAAc,EAC9B,qBAAqB,EAAE,qBAAqB,GAC5C,CACH,CAAC;KACH;IAED,0CAA0C;IAC1C,MAAM,cAAc,GAAG,qBAAqB,CAAC;IAE7C,qDAAqD;IACrD,IAAI,gBAAgB,IAAI,kBAAkB,EAAE;QAC1C,IAAI,QAAQ,EAAE;YACZ,OAAO,CACL,oBAAC,cAAc,IACb,GAAG,EAAE,aAAa,CAAC,MAAM,EACzB,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,QAAQ,EAC1B,cAAc,EAAE,cAAc,GAC9B,CACH,CAAC;SACH;QAED,OAAO,CACL,oBAAC,mBAAmB,IAClB,GAAG,EAAE,aAAa,CAAC,MAAM,EACzB,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,QAAQ,EAC1B,cAAc,EAAE,cAAc,GAC9B,CACH,CAAC;KACH;IAED,IAAI,iBAAiB,IAAI,mBAAmB,EAAE;QAC5C,OAAO,CACL,oBAAC,YAAY,IACX,GAAG,EAAE,aAAa,CAAC,MAAM,EACzB,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,QAAQ,EAC1B,cAAc,EAAE,cAAc,GAC9B,CACH,CAAC;KACH;IAED,yDAAyD;IACzD,IAAI,WAAW,EAAE;QACf,iBAAiB;QACjB,MAAM,UAAU,GAAG,qBAAqB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAChE,IAAI,UAAU,EAAE;YACd,OAAO,CACL,oBAAC,SAAS,IACR,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,cAAc,EACtB,kBAAkB,EAAE,CAAC,EACrB,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,cAAc,GAC9B,CACH,CAAC;SACH;QAED,wEAAwE;QACxE,IAAI,qBAAqB,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE;YAClD,OAAO,CACL,oBAAC,UAAU,IACT,GAAG,EAAE,aAAa,CAAC,MAAM,EACzB,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,EAC/C,kBAAkB,EAAE,CAAC,EACrB,UAAU,EAAE,KAAK,EACjB,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,qBAAqB,GAC5C,CACH,CAAC;SACH;QAED,OAAO,CACL,oBAAC,SAAS,IACR,GAAG,EAAE,aAAa,CAAC,MAAM,EACzB,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,cAAc,EACtB,kBAAkB,EAAE,CAAC,EACrB,UAAU,EAAE,KAAK,EACjB,gBAAgB,EAAE,QAAQ,EAC1B,cAAc,EAAE,cAAc,GAC9B,CACH,CAAC;KACH;IAED,gDAAgD;IAChD,MAAM,2BAA2B,GAAG,0BAA0B,CAAC,aAAa,CAAC,CAAC;IAC9E,IAAI,2BAA2B,EAAE;QAC/B,OAAO,CACL,oBAAC,UAAU,IACT,GAAG,EAAE,aAAa,CAAC,MAAM,EACzB,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,cAAc,EACtB,kBAAkB,EAAE,CAAC,EACrB,gBAAgB,EAAE,QAAQ,EAC1B,cAAc,EAAE,cAAc,GAC9B,CACH,CAAC;KACH;IAED,OAAO,CACL,oBAAC,GAAG,IAAC,EAAE,EAAE,CAAC;QACR,oBAAC,UAAU,IACT,GAAG,EAAE,aAAa,CAAC,MAAM,EACzB,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,KAAK,EACjB,QAAQ,EAAE,KAAK,EACf,kBAAkB,EAAE,CAAC,EACrB,gBAAgB,EAAE,QAAQ,EAC1B,cAAc,EAAE,cAAc,GAC9B,CACE,CACP,CAAC;AACJ,CAAC;AAED,eAAe,gBAAgB,CAAC"}
@@ -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 null;
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;YAC9C,OAAO,IAAI,CAAC;SACb;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
+ {"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,8 +16,8 @@
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
22
  const [selectedIds, setSelectedIds] = useState(initialisedGroupTableRows.map((row) => row.nanoId));
23
23
  return { tableRows, selectedIds, setTableRows, setSelectedIds };
@@ -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;IAC7D,MAAM,yBAAyB,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAEnE,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,MAAM,CAAC,CACnD,CAAC;IAEF,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;AAClE,CAAC;AAED,eAAe,iBAAiB,CAAC"}
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,MAAM,CAAC,CACnD,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,18 +14,18 @@
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
- import { nanoid } from 'nanoid';
18
- function useInitialiseGroupTable(qrItems) {
17
+ import { generateExistingRepeatId, generateNewRepeatId } from '../utils/repeatId';
18
+ function useInitialiseGroupTable(linkId, qrItems) {
19
19
  let initialGroupTableRows = [
20
20
  {
21
- nanoId: nanoid(),
21
+ nanoId: generateNewRepeatId(linkId),
22
22
  qrItem: null
23
23
  }
24
24
  ];
25
25
  if (qrItems.length > 0) {
26
- initialGroupTableRows = qrItems.map((qrItem) => {
26
+ initialGroupTableRows = qrItems.map((qrItem, index) => {
27
27
  return {
28
- nanoId: nanoid(),
28
+ nanoId: generateExistingRepeatId(linkId, index),
29
29
  qrItem
30
30
  };
31
31
  });
@@ -1 +1 @@
1
- {"version":3,"file":"useInitialiseGroupTable.js","sourceRoot":"","sources":["../../src/hooks/useInitialiseGroupTable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,SAAS,uBAAuB,CAAC,OAAoC;IACnE,IAAI,qBAAqB,GAAyB;QAChD;YACE,MAAM,EAAE,MAAM,EAAE;YAChB,MAAM,EAAE,IAAI;SACb;KACF,CAAC;IAEF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACtB,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC7C,OAAO;gBACL,MAAM,EAAE,MAAM,EAAE;gBAChB,MAAM;aACP,CAAC;QACJ,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAED,eAAe,uBAAuB,CAAC"}
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,qBAAqB,GAAyB;QAChD;YACE,MAAM,EAAE,mBAAmB,CAAC,MAAM,CAAC;YACnC,MAAM,EAAE,IAAI;SACb;KACF,CAAC;IAEF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACtB,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACpD,OAAO;gBACL,MAAM,EAAE,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC;gBAC/C,MAAM;aACP,CAAC;QACJ,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,qBAAqB,CAAC;AAC/B,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;
@@ -14,21 +14,18 @@
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
- import { nanoid } from 'nanoid';
18
17
  import { useMemo } from 'react';
19
- function useInitialiseRepeatAnswers(qrItem) {
18
+ import { generateExistingRepeatId, generateNewRepeatId } from '../utils/repeatId';
19
+ function useInitialiseRepeatAnswers(linkId, qrItem) {
20
20
  return useMemo(() => {
21
- let initialRepeatAnswers = [{ id: nanoid() }];
22
- if (qrItem === null || qrItem === void 0 ? void 0 : qrItem.answer) {
23
- initialRepeatAnswers = qrItem.answer.map((answer) => {
24
- if (!answer.id) {
25
- answer.id = nanoid();
26
- }
27
- return answer;
28
- });
21
+ if (!(qrItem === null || qrItem === void 0 ? void 0 : qrItem.answer)) {
22
+ return [{ id: generateNewRepeatId(linkId) }];
29
23
  }
30
- return initialRepeatAnswers;
31
- }, [qrItem]);
24
+ return qrItem.answer.map((answer, index) => {
25
+ var _a;
26
+ return (Object.assign(Object.assign({}, answer), { id: (_a = answer.id) !== null && _a !== void 0 ? _a : generateExistingRepeatId(linkId, index) }));
27
+ });
28
+ }, [linkId, qrItem]);
32
29
  }
33
30
  export default useInitialiseRepeatAnswers;
34
31
  //# sourceMappingURL=useInitialiseRepeatAnswers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useInitialiseRepeatAnswers.js","sourceRoot":"","sources":["../../src/hooks/useInitialiseRepeatAnswers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,SAAS,0BAA0B,CACjC,MAAwC;IAExC,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,IAAI,oBAAoB,GAA+C,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAE1F,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,EAAE;YAClB,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBAClD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;oBACd,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;iBACtB;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC,CAAC;SACJ;QAED,OAAO,oBAAoB,CAAC;IAC9B,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACf,CAAC;AAED,eAAe,0BAA0B,CAAC"}
1
+ {"version":3,"file":"useInitialiseRepeatAnswers.js","sourceRoot":"","sources":["../../src/hooks/useInitialiseRepeatAnswers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAElF,SAAS,0BAA0B,CACjC,MAAc,EACd,MAAwC;IAExC,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAA,EAAE;YACnB,OAAO,CAAC,EAAE,EAAE,EAAE,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SAC9C;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;;YAAC,OAAA,iCACvC,MAAM,KACT,EAAE,EAAE,MAAA,MAAM,CAAC,EAAE,mCAAI,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,IACxD,CAAA;SAAA,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AACvB,CAAC;AAED,eAAe,0BAA0B,CAAC"}
@@ -14,20 +14,20 @@
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
- import { nanoid } from 'nanoid';
18
17
  import { useMemo } from 'react';
18
+ import { generateExistingRepeatId, generateNewRepeatId } from '../utils/repeatId';
19
19
  function useInitialiseRepeatGroups(qItem, qrItems) {
20
20
  return useMemo(() => {
21
21
  let initialRepeatGroupAnswers = [
22
22
  {
23
- nanoId: nanoid(),
23
+ nanoId: generateNewRepeatId(qItem.linkId),
24
24
  qrItem: null
25
25
  }
26
26
  ];
27
27
  if (qrItems.length > 0) {
28
- initialRepeatGroupAnswers = qrItems.map((qrItem) => {
28
+ initialRepeatGroupAnswers = qrItems.map((qrItem, index) => {
29
29
  return {
30
- nanoId: nanoid(),
30
+ nanoId: generateExistingRepeatId(qItem.linkId, index),
31
31
  qrItem
32
32
  };
33
33
  });
@@ -1 +1 @@
1
- {"version":3,"file":"useInitialiseRepeatGroups.js","sourceRoot":"","sources":["../../src/hooks/useInitialiseRepeatGroups.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,SAAS,yBAAyB,CAChC,KAAwB,EACxB,OAAoC;IAEpC,OAAO,OAAO,CACZ,GAAG,EAAE;QACH,IAAI,yBAAyB,GAAwB;YACnD;gBACE,MAAM,EAAE,MAAM,EAAE;gBAChB,MAAM,EAAE,IAAI;aACb;SACF,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,yBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBACjD,OAAO;oBACL,MAAM,EAAE,MAAM,EAAE;oBAChB,MAAM;iBACP,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;QACD,OAAO,yBAAyB,CAAC;IACnC,CAAC;IACD,8CAA8C;IAC9C,uDAAuD;IACvD,CAAC,KAAK,EAAE,OAAO,CAAC,CACjB,CAAC;AACJ,CAAC;AAED,eAAe,yBAAyB,CAAC"}
1
+ {"version":3,"file":"useInitialiseRepeatGroups.js","sourceRoot":"","sources":["../../src/hooks/useInitialiseRepeatGroups.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAElF,SAAS,yBAAyB,CAChC,KAAwB,EACxB,OAAoC;IAEpC,OAAO,OAAO,CACZ,GAAG,EAAE;QACH,IAAI,yBAAyB,GAAwB;YACnD;gBACE,MAAM,EAAE,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC;gBACzC,MAAM,EAAE,IAAI;aACb;SACF,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,yBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBACxD,OAAO;oBACL,MAAM,EAAE,wBAAwB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC;oBACrD,MAAM;iBACP,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;QACD,OAAO,yBAAyB,CAAC;IACnC,CAAC;IACD,8CAA8C;IAC9C,uDAAuD;IACvD,CAAC,KAAK,EAAE,OAAO,CAAC,CACjB,CAAC;AACJ,CAAC;AAED,eAAe,yBAAyB,CAAC"}
@@ -11,6 +11,7 @@ import { questionnaireResponseStore, questionnaireStore, smartConfigStore, termi
11
11
  import { initialiseQuestionnaireResponse } from './initialise';
12
12
  import { removeEmptyAnswers } from './removeEmptyAnswers';
13
13
  import { readEncounter, readPatient, readUser } from '../api/smartClient';
14
+ import cloneDeep from 'lodash.clonedeep';
14
15
  /**
15
16
  * Build the form with an initial Questionnaire and an optional filled QuestionnaireResponse.
16
17
  * If a QuestionnaireResponse is not provided, an empty QuestionnaireResponse is set as the initial QuestionnaireResponse.
@@ -85,7 +86,7 @@ export function initialiseFhirClient(fhirClient) {
85
86
  * @author Sean Fong
86
87
  */
87
88
  export function getResponse() {
88
- return questionnaireResponseStore.getState().updatableResponse;
89
+ return cloneDeep(questionnaireResponseStore.getState().updatableResponse);
89
90
  }
90
91
  /**
91
92
  * Remove all empty/hidden answers from the filled QuestionnaireResponse.
@@ -1 +1 @@
1
- {"version":3,"file":"manageForm.js","sourceRoot":"","sources":["../../src/utils/manageForm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manageForm.js","sourceRoot":"","sources":["../../src/utils/manageForm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function generateNewRepeatId(linkId: string): string;
2
+ export declare function generateExistingRepeatId(linkId: string, index: number): string;
@@ -0,0 +1,25 @@
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
+ import { nanoid } from 'nanoid';
18
+ export function generateNewRepeatId(linkId) {
19
+ return `${linkId}-${nanoid()}`;
20
+ }
21
+ export function generateExistingRepeatId(linkId, index) {
22
+ const paddedIndex = index.toString().padStart(6, '0');
23
+ return `${linkId}-${paddedIndex}`;
24
+ }
25
+ //# sourceMappingURL=repeatId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repeatId.js","sourceRoot":"","sources":["../../src/utils/repeatId.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,OAAO,GAAG,MAAM,IAAI,MAAM,EAAE,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAAc,EAAE,KAAa;IACpE,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtD,OAAO,GAAG,MAAM,IAAI,WAAW,EAAE,CAAC;AACpC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aehrc/smart-forms-renderer",
3
- "version": "0.40.0",
3
+ "version": "0.40.1",
4
4
  "description": "FHIR Structured Data Captured (SDC) rendering engine for Smart Forms",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -22,6 +22,7 @@ import type { QuestionnaireItem } from 'fhir/r4';
22
22
  import DisplayInstructions from '../DisplayItem/DisplayInstructions';
23
23
  import LabelWrapper from './ItemLabelWrapper';
24
24
  import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
25
+ import Box from '@mui/material/Box';
25
26
 
26
27
  interface ItemFieldGridProps {
27
28
  children: ReactNode;
@@ -36,10 +37,15 @@ function ItemFieldGrid(props: ItemFieldGridProps) {
36
37
 
37
38
  return (
38
39
  <Grid container columnSpacing={4}>
39
- <Grid item xs={4}>
40
+ <Grid item md={4} xs={12}>
40
41
  <LabelWrapper qItem={qItem} readOnly={readOnly} />
41
42
  </Grid>
42
- <Grid item xs={8}>
43
+ <Box
44
+ sx={{
45
+ my: { xs: 1.5, md: 0 } // Adds padding for `xs` breakpoint and removes it for `md` and up
46
+ }}
47
+ />
48
+ <Grid item md={8} xs={12}>
43
49
  {children}
44
50
  <DisplayInstructions displayInstructions={displayInstructions} readOnly={readOnly} />
45
51
  </Grid>
@@ -24,11 +24,11 @@ import type {
24
24
  } from '../../../interfaces/renderProps.interface';
25
25
  import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
26
26
  import useInitialiseRepeatGroups from '../../../hooks/useInitialiseRepeatGroups';
27
- import { nanoid } from 'nanoid';
28
27
  import cloneDeep from 'lodash.clonedeep';
29
28
  import { useQuestionnaireStore } from '../../../stores';
30
29
  import useRepeatGroups from '../../../hooks/useRepeatGroups';
31
30
  import RepeatGroupView from './RepeatGroupView';
31
+ import { generateNewRepeatId } from '../../../utils/repeatId';
32
32
 
33
33
  interface RepeatGroupProps
34
34
  extends PropsWithQrRepeatGroupChangeHandler,
@@ -104,7 +104,7 @@ function RepeatGroup(props: RepeatGroupProps) {
104
104
  setRepeatGroups([
105
105
  ...repeatGroups,
106
106
  {
107
- nanoId: nanoid(),
107
+ nanoId: generateNewRepeatId(qItem.linkId),
108
108
  qrItem: null
109
109
  }
110
110
  ]);
@@ -22,7 +22,6 @@ import type {
22
22
  PropsWithShowMinimalViewAttribute
23
23
  } from '../../../interfaces/renderProps.interface';
24
24
  import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
25
- import { nanoid } from 'nanoid';
26
25
  import { createEmptyQrItem } from '../../../utils/qrItem';
27
26
  import { FullWidthFormComponentBox } from '../../Box.styles';
28
27
  import AddItemButton from './AddItemButton';
@@ -33,6 +32,7 @@ import useInitialiseRepeatAnswers from '../../../hooks/useInitialiseRepeatAnswer
33
32
  import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
34
33
  import useReadOnly from '../../../hooks/useReadOnly';
35
34
  import { useQuestionnaireStore } from '../../../stores';
35
+ import { generateExistingRepeatId, generateNewRepeatId } from '../../../utils/repeatId';
36
36
 
37
37
  interface RepeatItemProps
38
38
  extends PropsWithQrItemChangeHandler,
@@ -56,7 +56,7 @@ function RepeatItem(props: RepeatItemProps) {
56
56
 
57
57
  const readOnly = useReadOnly(qItem, parentIsReadOnly);
58
58
 
59
- const repeatAnswers = useInitialiseRepeatAnswers(qrItem);
59
+ const repeatAnswers = useInitialiseRepeatAnswers(qItem.linkId, qrItem);
60
60
 
61
61
  // Event Handlers
62
62
  function handleAnswerChange(newQrItem: QuestionnaireResponseItem, index: number) {
@@ -81,7 +81,7 @@ function RepeatItem(props: RepeatItemProps) {
81
81
  }
82
82
 
83
83
  function handleAddItem() {
84
- const updatedRepeatAnswers = [...repeatAnswers, { id: nanoid() }];
84
+ const updatedRepeatAnswers = [...repeatAnswers, { id: generateNewRepeatId(qItem.linkId) }];
85
85
 
86
86
  onQrItemChange({
87
87
  ...createEmptyQrItem(qItem, undefined),
@@ -100,7 +100,7 @@ function RepeatItem(props: RepeatItemProps) {
100
100
 
101
101
  return (
102
102
  <RepeatField
103
- key={answer?.id ?? nanoid()}
103
+ key={answer?.id ?? generateExistingRepeatId(qItem.linkId, index)}
104
104
  qItem={qItem}
105
105
  qrItem={repeatAnswerQrItem}
106
106
  answer={answer}
@@ -131,7 +131,9 @@ function RepeatItem(props: RepeatItemProps) {
131
131
  }
132
132
 
133
133
  return (
134
- <Collapse key={answer?.id ?? nanoid()} timeout={200}>
134
+ <Collapse
135
+ key={answer?.id ?? generateExistingRepeatId(qItem.linkId, index)}
136
+ timeout={200}>
135
137
  <RepeatField
136
138
  qItem={qItem}
137
139
  qrItem={repeatAnswerQrItem}