@aehrc/smart-forms-renderer 1.2.1 → 1.2.3
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/SingleItem/SingleItem.js +15 -2
- package/lib/components/FormComponents/SingleItem/SingleItem.js.map +1 -1
- package/lib/components/FormComponents/SingleItem/SingleNestedItems.js +8 -8
- package/lib/components/FormComponents/SingleItem/SingleNestedItems.js.map +1 -1
- package/lib/hooks/useCalculatedExpressionUpdated.js +3 -1
- package/lib/hooks/useCalculatedExpressionUpdated.js.map +1 -1
- package/lib/utils/initialise.js +8 -1
- package/lib/utils/initialise.js.map +1 -1
- package/lib/utils/mapItem.d.ts +1 -1
- package/lib/utils/mapItem.js +2 -0
- package/lib/utils/mapItem.js.map +1 -1
- package/lib/utils/qrItem.d.ts +13 -0
- package/lib/utils/qrItem.js +76 -0
- package/lib/utils/qrItem.js.map +1 -1
- package/package.json +1 -1
- package/src/components/FormComponents/SingleItem/SingleItem.tsx +16 -2
- package/src/components/FormComponents/SingleItem/SingleNestedItems.tsx +8 -9
- package/src/hooks/useCalculatedExpressionUpdated.ts +3 -1
- package/src/utils/initialise.ts +8 -1
- package/src/utils/mapItem.ts +3 -1
- package/src/utils/qrItem.ts +91 -0
- package/lib/interfaces/itemPath.interface.d.ts +0 -31
- package/lib/interfaces/itemPath.interface.js +0 -2
- package/lib/interfaces/itemPath.interface.js.map +0 -1
- package/lib/stories/storybookWrappers/InitialiseFormWrapperForStorybook.d.ts +0 -30
- package/lib/stories/storybookWrappers/InitialiseFormWrapperForStorybook.js +0 -46
- package/lib/stories/storybookWrappers/InitialiseFormWrapperForStorybook.js.map +0 -1
- package/lib/stories/storybookWrappers/index.d.ts +0 -2
- package/lib/stories/storybookWrappers/index.js +0 -18
- package/lib/stories/storybookWrappers/index.js.map +0 -1
- package/lib/utils/itemPath.d.ts +0 -57
- package/lib/utils/itemPath.js +0 -75
- package/lib/utils/itemPath.js.map +0 -1
|
@@ -32,7 +32,20 @@ function SingleItem(props) {
|
|
|
32
32
|
const updateEnableWhenItem = useQuestionnaireStore.use.updateEnableWhenItem();
|
|
33
33
|
const handleQrItemChange = useCallback((newQrItem) => {
|
|
34
34
|
updateEnableWhenItem(qItem.linkId, newQrItem.answer, parentIsRepeatGroup ? (parentRepeatGroupIndex ?? null) : null);
|
|
35
|
-
if (
|
|
35
|
+
if (qItem && qrItem?.answer && qrItem.answer.length > 0) {
|
|
36
|
+
// Find the matching answer in qrItem by id
|
|
37
|
+
const matchingAnswer = qrItem.answer.find((ans) => ans.id === newQrItem.answer?.[0]?.id);
|
|
38
|
+
// Create updated newQrItem with the nested items from the matching answer
|
|
39
|
+
const updatedQrItem = {
|
|
40
|
+
...newQrItem,
|
|
41
|
+
answer: newQrItem.answer?.map((ans) => ({
|
|
42
|
+
...ans,
|
|
43
|
+
...(matchingAnswer?.item && { item: matchingAnswer.item })
|
|
44
|
+
}))
|
|
45
|
+
};
|
|
46
|
+
onQrItemChange(updatedQrItem);
|
|
47
|
+
}
|
|
48
|
+
else if (qrItem && qrItem.item && qrItem.item.length > 0) {
|
|
36
49
|
onQrItemChange({ ...newQrItem, item: qrItem.item });
|
|
37
50
|
}
|
|
38
51
|
else {
|
|
@@ -47,7 +60,7 @@ function SingleItem(props) {
|
|
|
47
60
|
onQrItemChange
|
|
48
61
|
]);
|
|
49
62
|
const handleQrItemChangeWithNestedItems = useCallback((newQrItem) => {
|
|
50
|
-
const updatedQrItem = qrItem ? { ...qrItem,
|
|
63
|
+
const updatedQrItem = qrItem ? { ...qrItem, answer: newQrItem.answer } : newQrItem;
|
|
51
64
|
onQrItemChange(updatedQrItem);
|
|
52
65
|
}, [qrItem, onQrItemChange]);
|
|
53
66
|
const itemHasNestedItems = useMemo(() => !!qItem.item && qItem.item.length > 0 && shouldRenderNestedItems(qItem), [qItem]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SingleItem.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/SingleItem/SingleItem.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAc,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAWpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,SAAS,MAAM,0BAA0B,CAAC;AACjD,OAAO,WAAW,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAe9C;;;;;GAKG;AACH,SAAS,UAAU,CAAC,KAAsB;IACxC,MAAM,EACJ,KAAK,EACL,MAAM,EACN,UAAU,GAAG,KAAK,EAClB,QAAQ,GAAG,KAAK,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,YAAY,EACZ,cAAc,EACf,GAAG,KAAK,CAAC;IAEV,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC;IAE9E,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,SAAoC,EAAE,EAAE;QACvC,oBAAoB,CAClB,KAAK,CAAC,MAAM,EACZ,SAAS,CAAC,MAAM,EAChB,mBAAmB,CAAC,CAAC,CAAC,CAAC,sBAAsB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAC9D,CAAC;QAEF,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"SingleItem.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/SingleItem/SingleItem.tsx"],"names":[],"mappings":"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"}
|
|
@@ -18,29 +18,29 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
|
|
|
18
18
|
import { useMemo } from 'react';
|
|
19
19
|
import { getQrItemsIndex, mapQItemsIndex } from '../../../utils/mapItem';
|
|
20
20
|
import GroupItemSwitcher from '../GroupItem/GroupItemSwitcher';
|
|
21
|
-
import {
|
|
21
|
+
import { createEmptyRepeatNestedItems, updateQrNestedItems } from '../../../utils/qrItem';
|
|
22
22
|
import Box from '@mui/material/Box';
|
|
23
23
|
function SingleNestedItems(props) {
|
|
24
24
|
const { qItem, qrItem, groupCardElevation, parentIsReadOnly, onQrItemChange } = props;
|
|
25
25
|
const qItemsIndexMap = useMemo(() => mapQItemsIndex(qItem), [qItem]);
|
|
26
26
|
const qItems = qItem.item;
|
|
27
|
-
const qrGroup = qrItem && qrItem.
|
|
28
|
-
const
|
|
27
|
+
const qrGroup = qrItem && qrItem.answer ? qrItem : createEmptyRepeatNestedItems(qItem);
|
|
28
|
+
const qrAnswers = qrGroup.answer;
|
|
29
29
|
// Event Handlers
|
|
30
30
|
function handleQrItemChange(newQrItem) {
|
|
31
31
|
const updatedQrGroup = { ...qrGroup };
|
|
32
|
-
|
|
32
|
+
updateQrNestedItems(newQrItem, updatedQrGroup, qItemsIndexMap);
|
|
33
33
|
onQrItemChange(updatedQrGroup);
|
|
34
34
|
}
|
|
35
|
-
function handleQrRepeatGroupChange(
|
|
35
|
+
function handleQrRepeatGroupChange() {
|
|
36
36
|
const updatedQrGroup = { ...qrGroup };
|
|
37
|
-
|
|
37
|
+
updateQrNestedItems(null, updatedQrGroup, qItemsIndexMap);
|
|
38
38
|
onQrItemChange(updatedQrGroup);
|
|
39
39
|
}
|
|
40
|
-
if (!qItems || !
|
|
40
|
+
if (!qItems || !qrAnswers) {
|
|
41
41
|
return _jsx(_Fragment, { children: "Unable to load group, something has gone terribly wrong." });
|
|
42
42
|
}
|
|
43
|
-
const qrItemsByIndex = getQrItemsIndex(qItems,
|
|
43
|
+
const qrItemsByIndex = getQrItemsIndex(qItems, qrAnswers[0]?.item, qItemsIndexMap);
|
|
44
44
|
// TODO - Add support for horizontal "row" layout
|
|
45
45
|
return (_jsxs(Box, { display: "flex", children: [_jsx(Box, { ml: 1.5 }), _jsx(Box, { flexGrow: 1, children: qItems.map((qItem, i) => {
|
|
46
46
|
const qrItemOrItems = qrItemsByIndex[i];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SingleNestedItems.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/SingleItem/SingleNestedItems.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"SingleNestedItems.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/SingleItem/SingleNestedItems.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,4BAA4B,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAK1F,OAAO,GAAG,MAAM,mBAAmB,CAAC;AAUpC,SAAS,iBAAiB,CAAC,KAA6B;IACtD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAEtF,MAAM,cAAc,GAA2B,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAE7F,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;IAC1B,MAAM,OAAO,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC;IACvF,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjC,iBAAiB;IACjB,SAAS,kBAAkB,CAAC,SAAoC;QAC9D,MAAM,cAAc,GAA8B,EAAE,GAAG,OAAO,EAAE,CAAC;QACjE,mBAAmB,CAAC,SAAS,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;QAC/D,cAAc,CAAC,cAAc,CAAC,CAAC;IACjC,CAAC;IAED,SAAS,yBAAyB;QAChC,MAAM,cAAc,GAA8B,EAAE,GAAG,OAAO,EAAE,CAAC;QACjE,mBAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;QAC1D,cAAc,CAAC,cAAc,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAC1B,OAAO,yFAA6D,CAAC;IACvE,CAAC;IAED,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IAEnF,iDAAiD;IACjD,OAAO,CACL,MAAC,GAAG,IAAC,OAAO,EAAC,MAAM,aACjB,KAAC,GAAG,IAAC,EAAE,EAAE,GAAG,GAAI,EAChB,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,YACb,MAAM,CAAC,GAAG,CAAC,CAAC,KAAwB,EAAE,CAAC,EAAE,EAAE;oBAC1C,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;oBAExC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;wBAC7B,OAAO,IAAI,CAAC;oBACd,CAAC;oBAED,OAAO,CACL,KAAC,iBAAiB,IAEhB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,kBAAkB,EAAE,kBAAkB,GAAG,CAAC,EAC1C,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,kBAAkB,EAClC,qBAAqB,EAAE,yBAAyB,IAN3C,KAAK,CAAC,MAAM,CAOjB,CACH,CAAC;gBACJ,CAAC,CAAC,GACE,EACN,KAAC,GAAG,IAAC,EAAE,EAAE,IAAI,GAAQ,IACjB,CACP,CAAC;AACJ,CAAC;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -8,9 +8,11 @@ import { useEffect, useRef, useState } from 'react';
|
|
|
8
8
|
export function useCalculatedExpressionUpdated(answerKey) {
|
|
9
9
|
const [animating, setAnimating] = useState(false);
|
|
10
10
|
const previousAnswerKey = useRef(null);
|
|
11
|
+
const mounted = useRef(false);
|
|
11
12
|
useEffect(() => {
|
|
12
13
|
// Skip the first render — just store the current key
|
|
13
|
-
if (
|
|
14
|
+
if (!mounted.current) {
|
|
15
|
+
mounted.current = true;
|
|
14
16
|
previousAnswerKey.current = answerKey ?? null;
|
|
15
17
|
return;
|
|
16
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCalculatedExpressionUpdated.js","sourceRoot":"","sources":["../../src/hooks/useCalculatedExpressionUpdated.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAAC,SAA6B;IAC1E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,iBAAiB,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"useCalculatedExpressionUpdated.js","sourceRoot":"","sources":["../../src/hooks/useCalculatedExpressionUpdated.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAAC,SAA6B;IAC1E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,iBAAiB,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAE9B,SAAS,CAAC,GAAG,EAAE;QACb,qDAAqD;QACrD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YACvB,iBAAiB,CAAC,OAAO,GAAG,SAAS,IAAI,IAAI,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,2DAA2D;QAC3D,IACE,SAAS;YACT,SAAS,KAAK,iBAAiB,CAAC,OAAO;YACvC,kJAAkJ;YAClJ,SAAS,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAC1C,CAAC;YACD,iBAAiB,CAAC,OAAO,GAAG,SAAS,CAAC;YACtC,YAAY,CAAC,IAAI,CAAC,CAAC;YAEnB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAEzD,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/lib/utils/initialise.js
CHANGED
|
@@ -117,7 +117,14 @@ function readInitialValuesRecursive(qItem, qrItemOrItems) {
|
|
|
117
117
|
text: qItem.text
|
|
118
118
|
};
|
|
119
119
|
}
|
|
120
|
-
|
|
120
|
+
if (qItem.item && qItem.type !== 'group') {
|
|
121
|
+
qrItem.answer?.forEach((answer) => {
|
|
122
|
+
answer.item = initialValues.map((obj) => ({ ...obj }));
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
qrItem.item = initialValues.map((obj) => ({ ...obj }));
|
|
127
|
+
}
|
|
121
128
|
}
|
|
122
129
|
return qrItem ? [qrItem] : null;
|
|
123
130
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialise.js","sourceRoot":"","sources":["../../src/utils/initialise.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"initialise.js","sourceRoot":"","sources":["../../src/utils/initialise.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/mapItem.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import type { Questionnaire, QuestionnaireItem, QuestionnaireResponseItem } from
|
|
|
9
9
|
*
|
|
10
10
|
* @author Sean Fong
|
|
11
11
|
*/
|
|
12
|
-
export declare function getQrItemsIndex(qItems: QuestionnaireItem[], qrItems: QuestionnaireResponseItem[], qItemsIndexMap: Record<string, number>): (QuestionnaireResponseItem | QuestionnaireResponseItem[] | undefined)[];
|
|
12
|
+
export declare function getQrItemsIndex(qItems: QuestionnaireItem[], qrItems: QuestionnaireResponseItem[] | undefined, qItemsIndexMap: Record<string, number>): (QuestionnaireResponseItem | QuestionnaireResponseItem[] | undefined)[];
|
|
13
13
|
/**
|
|
14
14
|
* Generate a dictionary of QuestionnaireItems linkIds mapped to their respective array indexes `<linkId, QItemIndex>`
|
|
15
15
|
* i.e. `{ ee2589d5: 0, f9aaa187: 1, 88cab112: 2 }`
|
package/lib/utils/mapItem.js
CHANGED
|
@@ -28,6 +28,8 @@ import { isRepeatItemAndNotCheckbox } from './qItem';
|
|
|
28
28
|
export function getQrItemsIndex(qItems, qrItems, qItemsIndexMap) {
|
|
29
29
|
// Generate a <linkId, QrItem OR QrItems> dictionary
|
|
30
30
|
const qrItemsCollected = {};
|
|
31
|
+
if (!qrItems)
|
|
32
|
+
return [];
|
|
31
33
|
for (const qrItem of qrItems) {
|
|
32
34
|
const linkId = qrItem.linkId;
|
|
33
35
|
// If item already exists, it has multiple qrItems and is therefore a repeat group
|
package/lib/utils/mapItem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapItem.js","sourceRoot":"","sources":["../../src/utils/mapItem.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAErD;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAC7B,MAA2B,EAC3B,
|
|
1
|
+
{"version":3,"file":"mapItem.js","sourceRoot":"","sources":["../../src/utils/mapItem.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAErD;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAC7B,MAA2B,EAC3B,OAAgD,EAChD,cAAsC;IAEtC,oDAAoD;IACpD,MAAM,gBAAgB,GACpB,EAAE,CAAC;IAEL,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAE7B,kFAAkF;QAClF,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,IAAI,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAE3C,8EAA8E;YAC9E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChC,WAAW,GAAG,CAAC,WAAW,CAAC,CAAC;YAC9B,CAAC;YAED,6BAA6B;YAC7B,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzB,gBAAgB,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YAE1C,8FAA8F;YAC9F,MAAM,aAAa,GACjB,0BAA0B,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;YAExF,gBAAgB,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,6GAA6G;IAC7G,0DAA0D;IAC1D,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,OAAoE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACjF,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACrD,iFAAiF;QACjF,IAAI,0BAA0B,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAChE,OAAO,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,EACD,EAAE,CACH,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,oBAAuD;IAEvD,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,6CAA6C;IAC7C,OAAO,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAA+B,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE;QACnF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,OAAO,OAAO,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC"}
|
package/lib/utils/qrItem.d.ts
CHANGED
|
@@ -14,6 +14,12 @@ export declare function removeNoAnswerQrItem(qrItem: QuestionnaireResponseItem):
|
|
|
14
14
|
* @author Sean Fong
|
|
15
15
|
*/
|
|
16
16
|
export declare function createEmptyQrGroup(qItem: QuestionnaireItem): QuestionnaireResponseItem;
|
|
17
|
+
/**
|
|
18
|
+
* Create an empty repeat qrItem from a given repeat qItem
|
|
19
|
+
*
|
|
20
|
+
* @author Clinton Gillespie
|
|
21
|
+
*/
|
|
22
|
+
export declare function createEmptyRepeatNestedItems(qItem: QuestionnaireItem): QuestionnaireResponseItem;
|
|
17
23
|
/**
|
|
18
24
|
* Create an empty qrItem from a given qItem, optionally with an answer key
|
|
19
25
|
*
|
|
@@ -27,3 +33,10 @@ export declare function createEmptyQrItem(qItem: QuestionnaireItem, answerKey: s
|
|
|
27
33
|
* @author Sean Fong
|
|
28
34
|
*/
|
|
29
35
|
export declare function updateQrItemsInGroup(newQrItem: QuestionnaireResponseItem | null, newQrRepeatGroup: QrRepeatGroup | null, questionnaireResponseOrQrItem: QuestionnaireResponseItem | QuestionnaireResponse, qItemsIndexMap: Record<string, number>): void;
|
|
36
|
+
/**
|
|
37
|
+
* Updates the QuestionnaireResponseItem group by adding/removing a new/modified child QuestionnaireResponseItem into/from a qrGroup
|
|
38
|
+
* Specifically handles nested repeat items where each item has an answer array rather than nested items
|
|
39
|
+
*
|
|
40
|
+
* @author Sean Fong
|
|
41
|
+
*/
|
|
42
|
+
export declare function updateQrNestedItems(newQrItem: QuestionnaireResponseItem | null, questionnaireResponseOrQrItem: QuestionnaireResponseItem, qItemsIndexMap: Record<string, number>): void;
|
package/lib/utils/qrItem.js
CHANGED
|
@@ -54,6 +54,19 @@ export function createEmptyQrGroup(qItem) {
|
|
|
54
54
|
item: []
|
|
55
55
|
};
|
|
56
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* Create an empty repeat qrItem from a given repeat qItem
|
|
59
|
+
*
|
|
60
|
+
* @author Clinton Gillespie
|
|
61
|
+
*/
|
|
62
|
+
export function createEmptyRepeatNestedItems(qItem) {
|
|
63
|
+
return {
|
|
64
|
+
linkId: qItem.linkId,
|
|
65
|
+
text: qItem.text,
|
|
66
|
+
answer: [],
|
|
67
|
+
item: []
|
|
68
|
+
};
|
|
69
|
+
}
|
|
57
70
|
/**
|
|
58
71
|
* Create an empty qrItem from a given qItem, optionally with an answer key
|
|
59
72
|
*
|
|
@@ -186,4 +199,67 @@ export function updateQrItemsInGroup(newQrItem, newQrRepeatGroup, questionnaireR
|
|
|
186
199
|
}
|
|
187
200
|
}
|
|
188
201
|
}
|
|
202
|
+
/**
|
|
203
|
+
* Updates the QuestionnaireResponseItem group by adding/removing a new/modified child QuestionnaireResponseItem into/from a qrGroup
|
|
204
|
+
* Specifically handles nested repeat items where each item has an answer array rather than nested items
|
|
205
|
+
*
|
|
206
|
+
* @author Sean Fong
|
|
207
|
+
*/
|
|
208
|
+
export function updateQrNestedItems(newQrItem, questionnaireResponseOrQrItem, qItemsIndexMap) {
|
|
209
|
+
if (!newQrItem)
|
|
210
|
+
return;
|
|
211
|
+
if (!questionnaireResponseOrQrItem.answer) {
|
|
212
|
+
questionnaireResponseOrQrItem.answer = [];
|
|
213
|
+
}
|
|
214
|
+
let qrAnswerItems = questionnaireResponseOrQrItem.answer;
|
|
215
|
+
if (!qrAnswerItems) {
|
|
216
|
+
qrAnswerItems = [];
|
|
217
|
+
}
|
|
218
|
+
if (newQrItem && newQrItem.linkId in qItemsIndexMap) {
|
|
219
|
+
if (qrAnswerItems.length === 0) {
|
|
220
|
+
// Only add if the item has answers (nested items use answer array, not item array)
|
|
221
|
+
if (newQrItem.answer?.length) {
|
|
222
|
+
qrAnswerItems.push({ item: [newQrItem] });
|
|
223
|
+
}
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
// Find the index where newQrItem should be inserted based on qItemsIndexMap
|
|
228
|
+
const newItemSequenceIndex = qItemsIndexMap[newQrItem.linkId];
|
|
229
|
+
// Find the last answer object (group) that exists
|
|
230
|
+
const lastAnswerGroup = qrAnswerItems[qrAnswerItems.length - 1];
|
|
231
|
+
// If no answer group exists yet, create one
|
|
232
|
+
if (!lastAnswerGroup) {
|
|
233
|
+
const newGroup = {
|
|
234
|
+
item: [newQrItem]
|
|
235
|
+
};
|
|
236
|
+
qrAnswerItems.push(newGroup);
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
// If the last answer group doesn't have an item array, create one
|
|
240
|
+
if (!lastAnswerGroup.item) {
|
|
241
|
+
lastAnswerGroup.item = [newQrItem];
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
// Check if newQrItem already exists in the last group's item array
|
|
245
|
+
const existingItemIndex = lastAnswerGroup.item.findIndex((item) => item.linkId === newQrItem.linkId);
|
|
246
|
+
if (existingItemIndex !== -1) {
|
|
247
|
+
// Item exists - overwrite it
|
|
248
|
+
lastAnswerGroup.item[existingItemIndex] = newQrItem;
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
// Item doesn't exist - find correct position to insert based on sequence
|
|
252
|
+
let insertIndex = lastAnswerGroup.item.length;
|
|
253
|
+
for (let i = 0; i < lastAnswerGroup.item.length; i++) {
|
|
254
|
+
const currentItemSequenceIndex = qItemsIndexMap[lastAnswerGroup.item[i].linkId];
|
|
255
|
+
if (newItemSequenceIndex < currentItemSequenceIndex) {
|
|
256
|
+
insertIndex = i;
|
|
257
|
+
break;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
// Insert at the correct position
|
|
261
|
+
lastAnswerGroup.item.splice(insertIndex, 0, newQrItem);
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
189
265
|
//# sourceMappingURL=qrItem.js.map
|
package/lib/utils/qrItem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qrItem.js","sourceRoot":"","sources":["../../src/utils/qrItem.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"qrItem.js","sourceRoot":"","sources":["../../src/utils/qrItem.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -76,7 +76,21 @@ function SingleItem(props: SingleItemProps) {
|
|
|
76
76
|
parentIsRepeatGroup ? (parentRepeatGroupIndex ?? null) : null
|
|
77
77
|
);
|
|
78
78
|
|
|
79
|
-
if (
|
|
79
|
+
if (qItem && qrItem?.answer && qrItem.answer.length > 0) {
|
|
80
|
+
// Find the matching answer in qrItem by id
|
|
81
|
+
const matchingAnswer = qrItem.answer.find((ans) => ans.id === newQrItem.answer?.[0]?.id);
|
|
82
|
+
|
|
83
|
+
// Create updated newQrItem with the nested items from the matching answer
|
|
84
|
+
const updatedQrItem = {
|
|
85
|
+
...newQrItem,
|
|
86
|
+
answer: newQrItem.answer?.map((ans) => ({
|
|
87
|
+
...ans,
|
|
88
|
+
...(matchingAnswer?.item && { item: matchingAnswer.item })
|
|
89
|
+
}))
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
onQrItemChange(updatedQrItem);
|
|
93
|
+
} else if (qrItem && qrItem.item && qrItem.item.length > 0) {
|
|
80
94
|
onQrItemChange({ ...newQrItem, item: qrItem.item });
|
|
81
95
|
} else {
|
|
82
96
|
onQrItemChange(newQrItem);
|
|
@@ -94,7 +108,7 @@ function SingleItem(props: SingleItemProps) {
|
|
|
94
108
|
|
|
95
109
|
const handleQrItemChangeWithNestedItems = useCallback(
|
|
96
110
|
(newQrItem: QuestionnaireResponseItem) => {
|
|
97
|
-
const updatedQrItem = qrItem ? { ...qrItem,
|
|
111
|
+
const updatedQrItem = qrItem ? { ...qrItem, answer: newQrItem.answer } : newQrItem;
|
|
98
112
|
onQrItemChange(updatedQrItem);
|
|
99
113
|
},
|
|
100
114
|
[qrItem, onQrItemChange]
|
|
@@ -19,12 +19,11 @@ import React, { useMemo } from 'react';
|
|
|
19
19
|
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
20
20
|
import { getQrItemsIndex, mapQItemsIndex } from '../../../utils/mapItem';
|
|
21
21
|
import GroupItemSwitcher from '../GroupItem/GroupItemSwitcher';
|
|
22
|
-
import {
|
|
22
|
+
import { createEmptyRepeatNestedItems, updateQrNestedItems } from '../../../utils/qrItem';
|
|
23
23
|
import type {
|
|
24
24
|
PropsWithParentIsReadOnlyAttribute,
|
|
25
25
|
PropsWithQrItemChangeHandler
|
|
26
26
|
} from '../../../interfaces/renderProps.interface';
|
|
27
|
-
import type { QrRepeatGroup } from '../../../interfaces/repeatGroup.interface';
|
|
28
27
|
import Box from '@mui/material/Box';
|
|
29
28
|
|
|
30
29
|
interface SingleNestedItemsProps
|
|
@@ -41,27 +40,27 @@ function SingleNestedItems(props: SingleNestedItemsProps) {
|
|
|
41
40
|
const qItemsIndexMap: Record<string, number> = useMemo(() => mapQItemsIndex(qItem), [qItem]);
|
|
42
41
|
|
|
43
42
|
const qItems = qItem.item;
|
|
44
|
-
const qrGroup = qrItem && qrItem.
|
|
45
|
-
const
|
|
43
|
+
const qrGroup = qrItem && qrItem.answer ? qrItem : createEmptyRepeatNestedItems(qItem);
|
|
44
|
+
const qrAnswers = qrGroup.answer;
|
|
46
45
|
|
|
47
46
|
// Event Handlers
|
|
48
47
|
function handleQrItemChange(newQrItem: QuestionnaireResponseItem) {
|
|
49
48
|
const updatedQrGroup: QuestionnaireResponseItem = { ...qrGroup };
|
|
50
|
-
|
|
49
|
+
updateQrNestedItems(newQrItem, updatedQrGroup, qItemsIndexMap);
|
|
51
50
|
onQrItemChange(updatedQrGroup);
|
|
52
51
|
}
|
|
53
52
|
|
|
54
|
-
function handleQrRepeatGroupChange(
|
|
53
|
+
function handleQrRepeatGroupChange() {
|
|
55
54
|
const updatedQrGroup: QuestionnaireResponseItem = { ...qrGroup };
|
|
56
|
-
|
|
55
|
+
updateQrNestedItems(null, updatedQrGroup, qItemsIndexMap);
|
|
57
56
|
onQrItemChange(updatedQrGroup);
|
|
58
57
|
}
|
|
59
58
|
|
|
60
|
-
if (!qItems || !
|
|
59
|
+
if (!qItems || !qrAnswers) {
|
|
61
60
|
return <>Unable to load group, something has gone terribly wrong.</>;
|
|
62
61
|
}
|
|
63
62
|
|
|
64
|
-
const qrItemsByIndex = getQrItemsIndex(qItems,
|
|
63
|
+
const qrItemsByIndex = getQrItemsIndex(qItems, qrAnswers[0]?.item, qItemsIndexMap);
|
|
65
64
|
|
|
66
65
|
// TODO - Add support for horizontal "row" layout
|
|
67
66
|
return (
|
|
@@ -9,10 +9,12 @@ import { useEffect, useRef, useState } from 'react';
|
|
|
9
9
|
export function useCalculatedExpressionUpdated(answerKey: string | undefined): boolean {
|
|
10
10
|
const [animating, setAnimating] = useState(false);
|
|
11
11
|
const previousAnswerKey = useRef<string | null>(null);
|
|
12
|
+
const mounted = useRef(false);
|
|
12
13
|
|
|
13
14
|
useEffect(() => {
|
|
14
15
|
// Skip the first render — just store the current key
|
|
15
|
-
if (
|
|
16
|
+
if (!mounted.current) {
|
|
17
|
+
mounted.current = true;
|
|
16
18
|
previousAnswerKey.current = answerKey ?? null;
|
|
17
19
|
return;
|
|
18
20
|
}
|
package/src/utils/initialise.ts
CHANGED
|
@@ -168,7 +168,14 @@ function readInitialValuesRecursive(
|
|
|
168
168
|
text: qItem.text
|
|
169
169
|
};
|
|
170
170
|
}
|
|
171
|
-
|
|
171
|
+
|
|
172
|
+
if (qItem.item && qItem.type !== 'group') {
|
|
173
|
+
qrItem.answer?.forEach((answer) => {
|
|
174
|
+
answer.item = initialValues.map((obj) => ({ ...obj }));
|
|
175
|
+
});
|
|
176
|
+
} else {
|
|
177
|
+
qrItem.item = initialValues.map((obj) => ({ ...obj }));
|
|
178
|
+
}
|
|
172
179
|
}
|
|
173
180
|
|
|
174
181
|
return qrItem ? [qrItem] : null;
|
package/src/utils/mapItem.ts
CHANGED
|
@@ -30,12 +30,14 @@ import { isRepeatItemAndNotCheckbox } from './qItem';
|
|
|
30
30
|
*/
|
|
31
31
|
export function getQrItemsIndex(
|
|
32
32
|
qItems: QuestionnaireItem[],
|
|
33
|
-
qrItems: QuestionnaireResponseItem[],
|
|
33
|
+
qrItems: QuestionnaireResponseItem[] | undefined,
|
|
34
34
|
qItemsIndexMap: Record<string, number>
|
|
35
35
|
): (QuestionnaireResponseItem | QuestionnaireResponseItem[] | undefined)[] {
|
|
36
36
|
// Generate a <linkId, QrItem OR QrItems> dictionary
|
|
37
37
|
const qrItemsCollected: Record<string, QuestionnaireResponseItem | QuestionnaireResponseItem[]> =
|
|
38
38
|
{};
|
|
39
|
+
|
|
40
|
+
if (!qrItems) return [];
|
|
39
41
|
for (const qrItem of qrItems) {
|
|
40
42
|
const linkId = qrItem.linkId;
|
|
41
43
|
|
package/src/utils/qrItem.ts
CHANGED
|
@@ -67,6 +67,20 @@ export function createEmptyQrGroup(qItem: QuestionnaireItem): QuestionnaireRespo
|
|
|
67
67
|
};
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
+
/**
|
|
71
|
+
* Create an empty repeat qrItem from a given repeat qItem
|
|
72
|
+
*
|
|
73
|
+
* @author Clinton Gillespie
|
|
74
|
+
*/
|
|
75
|
+
export function createEmptyRepeatNestedItems(qItem: QuestionnaireItem): QuestionnaireResponseItem {
|
|
76
|
+
return {
|
|
77
|
+
linkId: qItem.linkId,
|
|
78
|
+
text: qItem.text,
|
|
79
|
+
answer: [],
|
|
80
|
+
item: []
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
|
|
70
84
|
/**
|
|
71
85
|
* Create an empty qrItem from a given qItem, optionally with an answer key
|
|
72
86
|
*
|
|
@@ -221,3 +235,80 @@ export function updateQrItemsInGroup(
|
|
|
221
235
|
}
|
|
222
236
|
}
|
|
223
237
|
}
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* Updates the QuestionnaireResponseItem group by adding/removing a new/modified child QuestionnaireResponseItem into/from a qrGroup
|
|
241
|
+
* Specifically handles nested repeat items where each item has an answer array rather than nested items
|
|
242
|
+
*
|
|
243
|
+
* @author Sean Fong
|
|
244
|
+
*/
|
|
245
|
+
export function updateQrNestedItems(
|
|
246
|
+
newQrItem: QuestionnaireResponseItem | null,
|
|
247
|
+
questionnaireResponseOrQrItem: QuestionnaireResponseItem,
|
|
248
|
+
qItemsIndexMap: Record<string, number>
|
|
249
|
+
): void {
|
|
250
|
+
if (!newQrItem) return;
|
|
251
|
+
if (!questionnaireResponseOrQrItem.answer) {
|
|
252
|
+
questionnaireResponseOrQrItem.answer = [];
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
let qrAnswerItems = questionnaireResponseOrQrItem.answer;
|
|
256
|
+
if (!qrAnswerItems) {
|
|
257
|
+
qrAnswerItems = [];
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
if (newQrItem && newQrItem.linkId in qItemsIndexMap) {
|
|
261
|
+
if (qrAnswerItems.length === 0) {
|
|
262
|
+
// Only add if the item has answers (nested items use answer array, not item array)
|
|
263
|
+
if (newQrItem.answer?.length) {
|
|
264
|
+
qrAnswerItems.push({ item: [newQrItem] });
|
|
265
|
+
}
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
// Find the index where newQrItem should be inserted based on qItemsIndexMap
|
|
271
|
+
const newItemSequenceIndex = qItemsIndexMap[newQrItem.linkId];
|
|
272
|
+
|
|
273
|
+
// Find the last answer object (group) that exists
|
|
274
|
+
const lastAnswerGroup = qrAnswerItems[qrAnswerItems.length - 1];
|
|
275
|
+
|
|
276
|
+
// If no answer group exists yet, create one
|
|
277
|
+
if (!lastAnswerGroup) {
|
|
278
|
+
const newGroup = {
|
|
279
|
+
item: [newQrItem]
|
|
280
|
+
};
|
|
281
|
+
qrAnswerItems.push(newGroup);
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
// If the last answer group doesn't have an item array, create one
|
|
286
|
+
if (!lastAnswerGroup.item) {
|
|
287
|
+
lastAnswerGroup.item = [newQrItem];
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
// Check if newQrItem already exists in the last group's item array
|
|
292
|
+
const existingItemIndex = lastAnswerGroup.item.findIndex(
|
|
293
|
+
(item) => item.linkId === newQrItem.linkId
|
|
294
|
+
);
|
|
295
|
+
|
|
296
|
+
if (existingItemIndex !== -1) {
|
|
297
|
+
// Item exists - overwrite it
|
|
298
|
+
lastAnswerGroup.item[existingItemIndex] = newQrItem;
|
|
299
|
+
} else {
|
|
300
|
+
// Item doesn't exist - find correct position to insert based on sequence
|
|
301
|
+
let insertIndex = lastAnswerGroup.item.length;
|
|
302
|
+
|
|
303
|
+
for (let i = 0; i < lastAnswerGroup.item.length; i++) {
|
|
304
|
+
const currentItemSequenceIndex = qItemsIndexMap[lastAnswerGroup.item[i].linkId];
|
|
305
|
+
if (newItemSequenceIndex < currentItemSequenceIndex) {
|
|
306
|
+
insertIndex = i;
|
|
307
|
+
break;
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
// Insert at the correct position
|
|
311
|
+
lastAnswerGroup.item.splice(insertIndex, 0, newQrItem);
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Represents a single step in the path to an item within a nested QuestionnaireResponse.
|
|
3
|
-
* Each step is identified by its `linkId`, and optionally a `repeatIndex` if the item
|
|
4
|
-
* occurs within a repeating group.
|
|
5
|
-
*/
|
|
6
|
-
export interface ItemPathSegment {
|
|
7
|
-
/** The `linkId` of the QuestionnaireResponseItem at this path segment. */
|
|
8
|
-
linkId: string;
|
|
9
|
-
/**
|
|
10
|
-
* The index of the repeated item if this segment occurs within a repeating group.
|
|
11
|
-
* Omitted if the item is not part of a repeating group.
|
|
12
|
-
*/
|
|
13
|
-
repeatIndex?: number;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Represents a full path from the root of a QuestionnaireResponse to a deeply nested item.
|
|
17
|
-
* Each segment corresponds to one level of the item hierarchy.
|
|
18
|
-
*
|
|
19
|
-
* Example:
|
|
20
|
-
* [
|
|
21
|
-
* { linkId: 'sectionA' },
|
|
22
|
-
* { linkId: 'groupB', repeatIndex: 1 },
|
|
23
|
-
* { linkId: 'questionC' }
|
|
24
|
-
* ]
|
|
25
|
-
*
|
|
26
|
-
* This path navigates through `sectionA`, into the second instance of `groupB`,
|
|
27
|
-
* and finally to `questionC`.
|
|
28
|
-
*
|
|
29
|
-
* @author Sean Fong
|
|
30
|
-
*/
|
|
31
|
-
export type ItemPath = ItemPathSegment[];
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"itemPath.interface.js","sourceRoot":"","sources":["../../src/interfaces/itemPath.interface.ts"],"names":[],"mappings":""}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import type { Questionnaire, QuestionnaireResponse } from 'fhir/r4';
|
|
2
|
-
import type Client from 'fhirclient/lib/Client';
|
|
3
|
-
export interface InitialiseFormWrapperProps {
|
|
4
|
-
questionnaire: Questionnaire;
|
|
5
|
-
questionnaireResponse?: QuestionnaireResponse;
|
|
6
|
-
readOnly?: boolean;
|
|
7
|
-
terminologyServerUrl?: string;
|
|
8
|
-
additionalContext?: Record<string, any>;
|
|
9
|
-
fhirClient?: Client;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* This is a one-to-one replacement for the SmartFormsRenderer for demo purposes.
|
|
13
|
-
* Instead of using this React component, define your own wrapper component that uses the BaseRenderer directly.
|
|
14
|
-
* Things to note:
|
|
15
|
-
* - It is required to wrap the BaseRenderer with the QueryClientProvider to make requests.
|
|
16
|
-
* - You can wrap the BaseRenderer with the RendererThemeProvider to apply the default renderer theme used in Smart Forms. Optionally, you can define your own ThemeProvider https://mui.com/material-ui/customization/theming/.
|
|
17
|
-
* - Make your buildForm() call in a button click or other event handler. Alternatively, you can use the useInitialiseForm hook to initialise the form.
|
|
18
|
-
* - Make your own initialiseFhirClient() call in a button click or other event handler. Alternatively, you can use the useInitialiseForm hook to initialise the form.
|
|
19
|
-
* - The initialised FHIRClient is only used for further FHIR calls. It does not provide pre-population capabilities.
|
|
20
|
-
*
|
|
21
|
-
* For button click usage examples of buildForm(), see:
|
|
22
|
-
* - https://github.com/aehrc/smart-forms/blob/main/packages/smart-forms-renderer/src/stories/storybookWrappers/BuildFormButtonTesterWrapperForStorybook.tsx
|
|
23
|
-
* - https://github.com/aehrc/smart-forms/blob/main/packages/smart-forms-renderer/src/stories/storybookWrappers/BuildFormButtonForStorybook.tsx
|
|
24
|
-
* - https://github.com/aehrc/smart-forms/blob/main/packages/smart-forms-renderer/src/stories/storybookWrappers/PrePopWrapperForStorybook.tsx
|
|
25
|
-
* - https://github.com/aehrc/smart-forms/blob/main/packages/smart-forms-renderer/src/stories/storybookWrappers/PrePopButtonForStorybook.tsx
|
|
26
|
-
*
|
|
27
|
-
* @author Sean Fong
|
|
28
|
-
*/
|
|
29
|
-
declare function InitialiseFormWrapperForStorybook(props: InitialiseFormWrapperProps): import("react/jsx-runtime").JSX.Element;
|
|
30
|
-
export default InitialiseFormWrapperForStorybook;
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { BaseRenderer } from '../../components';
|
|
3
|
-
import { QueryClientProvider } from '@tanstack/react-query';
|
|
4
|
-
import useRendererQueryClient from '../../hooks/useRendererQueryClient';
|
|
5
|
-
import useInitialiseForm from '../../hooks/useInitialiseForm';
|
|
6
|
-
import Box from '@mui/material/Box';
|
|
7
|
-
import CircularProgress from '@mui/material/CircularProgress';
|
|
8
|
-
import Typography from '@mui/material/Typography';
|
|
9
|
-
import RendererThemeProvider from '../../theme/RendererThemeProvider';
|
|
10
|
-
/**
|
|
11
|
-
* This is a one-to-one replacement for the SmartFormsRenderer for demo purposes.
|
|
12
|
-
* Instead of using this React component, define your own wrapper component that uses the BaseRenderer directly.
|
|
13
|
-
* Things to note:
|
|
14
|
-
* - It is required to wrap the BaseRenderer with the QueryClientProvider to make requests.
|
|
15
|
-
* - You can wrap the BaseRenderer with the RendererThemeProvider to apply the default renderer theme used in Smart Forms. Optionally, you can define your own ThemeProvider https://mui.com/material-ui/customization/theming/.
|
|
16
|
-
* - Make your buildForm() call in a button click or other event handler. Alternatively, you can use the useInitialiseForm hook to initialise the form.
|
|
17
|
-
* - Make your own initialiseFhirClient() call in a button click or other event handler. Alternatively, you can use the useInitialiseForm hook to initialise the form.
|
|
18
|
-
* - The initialised FHIRClient is only used for further FHIR calls. It does not provide pre-population capabilities.
|
|
19
|
-
*
|
|
20
|
-
* For button click usage examples of buildForm(), see:
|
|
21
|
-
* - https://github.com/aehrc/smart-forms/blob/main/packages/smart-forms-renderer/src/stories/storybookWrappers/BuildFormButtonTesterWrapperForStorybook.tsx
|
|
22
|
-
* - https://github.com/aehrc/smart-forms/blob/main/packages/smart-forms-renderer/src/stories/storybookWrappers/BuildFormButtonForStorybook.tsx
|
|
23
|
-
* - https://github.com/aehrc/smart-forms/blob/main/packages/smart-forms-renderer/src/stories/storybookWrappers/PrePopWrapperForStorybook.tsx
|
|
24
|
-
* - https://github.com/aehrc/smart-forms/blob/main/packages/smart-forms-renderer/src/stories/storybookWrappers/PrePopButtonForStorybook.tsx
|
|
25
|
-
*
|
|
26
|
-
* @author Sean Fong
|
|
27
|
-
*/
|
|
28
|
-
function InitialiseFormWrapperForStorybook(props) {
|
|
29
|
-
const { questionnaire, questionnaireResponse, readOnly, terminologyServerUrl, additionalContext, fhirClient } = props;
|
|
30
|
-
// The renderer requires a @tanstack/react-query QueryClientProvider to make requests
|
|
31
|
-
const queryClient = useRendererQueryClient();
|
|
32
|
-
/**
|
|
33
|
-
* The useInitialiseForm hook provides initialisation logic for the form
|
|
34
|
-
* Alternatively (and recommended to do so), you can initialise your form via a button click or other event handler.
|
|
35
|
-
*
|
|
36
|
-
* @see {@link https://github.com/aehrc/smart-forms/blob/main/packages/smart-forms-renderer/src/stories/BuildFormButtonForStorybook.tsx} for button click usage examples.
|
|
37
|
-
*/
|
|
38
|
-
const isInitialising = useInitialiseForm(questionnaire, questionnaireResponse, readOnly, terminologyServerUrl, additionalContext, fhirClient);
|
|
39
|
-
// Free feel to customise your loading animation here
|
|
40
|
-
if (isInitialising) {
|
|
41
|
-
return (_jsxs(Box, { display: "flex", alignItems: "center", columnGap: 2, children: [_jsx(CircularProgress, {}), _jsx(Typography, { children: "Loading questionnaire..." })] }));
|
|
42
|
-
}
|
|
43
|
-
return (_jsx(RendererThemeProvider, { children: _jsx(QueryClientProvider, { client: queryClient, children: _jsx(BaseRenderer, {}) }) }));
|
|
44
|
-
}
|
|
45
|
-
export default InitialiseFormWrapperForStorybook;
|
|
46
|
-
//# sourceMappingURL=InitialiseFormWrapperForStorybook.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InitialiseFormWrapperForStorybook.js","sourceRoot":"","sources":["../../../src/stories/storybookWrappers/InitialiseFormWrapperForStorybook.tsx"],"names":[],"mappings":";AAoBA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,sBAAsB,MAAM,oCAAoC,CAAC;AAExE,OAAO,iBAAiB,MAAM,+BAA+B,CAAC;AAC9D,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,qBAAqB,MAAM,mCAAmC,CAAC;AAWtE;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAS,iCAAiC,CAAC,KAAiC;IAC1E,MAAM,EACJ,aAAa,EACb,qBAAqB,EACrB,QAAQ,EACR,oBAAoB,EACpB,iBAAiB,EACjB,UAAU,EACX,GAAG,KAAK,CAAC;IAEV,qFAAqF;IACrF,MAAM,WAAW,GAAG,sBAAsB,EAAE,CAAC;IAE7C;;;;;OAKG;IACH,MAAM,cAAc,GAAG,iBAAiB,CACtC,aAAa,EACb,qBAAqB,EACrB,QAAQ,EACR,oBAAoB,EACpB,iBAAiB,EACjB,UAAU,CACX,CAAC;IAEF,qDAAqD;IACrD,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,CACL,MAAC,GAAG,IAAC,OAAO,EAAC,MAAM,EAAC,UAAU,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aAClD,KAAC,gBAAgB,KAAG,EACpB,KAAC,UAAU,2CAAsC,IAC7C,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,qBAAqB,cACpB,KAAC,mBAAmB,IAAC,MAAM,EAAE,WAAW,YACtC,KAAC,YAAY,KAAG,GACI,GACA,CACzB,CAAC;AACJ,CAAC;AAED,eAAe,iCAAiC,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2025 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
|
-
export { default as InitialiseFormWrapperForStorybook } from './InitialiseFormWrapperForStorybook';
|
|
18
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/stories/storybookWrappers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,OAAO,IAAI,iCAAiC,EAAE,MAAM,qCAAqC,CAAC"}
|
package/lib/utils/itemPath.d.ts
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import type { ItemPath } from '../interfaces/itemPath.interface';
|
|
2
|
-
/**
|
|
3
|
-
* Creates an `ItemPath` containing a single segment for the given `linkId`.
|
|
4
|
-
* This is useful when you want to construct a path to a specific item without referencing its ancestry,
|
|
5
|
-
* such as when working with top-level items or when only the item's identity is relevant.
|
|
6
|
-
*
|
|
7
|
-
* @param linkId - The `linkId` of the item.
|
|
8
|
-
* @param repeatIndex - (Optional) If the item is part of a repeating group, specify its index.
|
|
9
|
-
* @returns An `ItemPath` containing one segment.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```ts
|
|
13
|
-
* const path = createSingleItemPath('question-1');
|
|
14
|
-
* // Output: [{ linkId: 'question-1' }]
|
|
15
|
-
*
|
|
16
|
-
* const pathWithRepeat = createSingleItemPath('question-1', 2);
|
|
17
|
-
* // Output: [{ linkId: 'question-1', repeatIndex: 2 }]
|
|
18
|
-
* ```
|
|
19
|
-
*/
|
|
20
|
-
export declare function createSingleItemPath(linkId: string, repeatIndex?: number): ItemPath;
|
|
21
|
-
/**
|
|
22
|
-
* Creates a new `ItemPath` by extending the given path with a new segment for the provided `linkId`.
|
|
23
|
-
* This version does NOT include a `repeatIndex`. If repeat handling is needed,
|
|
24
|
-
* use `appendRepeatIndexToLastSegment` after extending.
|
|
25
|
-
*
|
|
26
|
-
* @param currentPath - The existing item path.
|
|
27
|
-
* @param linkId - The `linkId` to use in the new path segment.
|
|
28
|
-
* @returns A new `ItemPath` with the added segment.
|
|
29
|
-
*/
|
|
30
|
-
export declare function extendItemPath(currentPath: linkId: string): ItemPath;
|
|
31
|
-
/**
|
|
32
|
-
* Returns a new `ItemPath` with a `repeatIndex` applied to the last segment.
|
|
33
|
-
* Useful for denoting which repetition of a group is being accessed.
|
|
34
|
-
*
|
|
35
|
-
* @param path - The item path to modify.
|
|
36
|
-
* @param repeatIndex - The index to assign to the final segment.
|
|
37
|
-
* @returns A new `ItemPath` with the last segment modified to include `repeatIndex`.
|
|
38
|
-
*
|
|
39
|
-
* @example
|
|
40
|
-
* const basePath = [{ linkId: 'groupA' }, { linkId: 'groupB' }];
|
|
41
|
-
* appendRepeatIndexToLastSegment(basePath, 2);
|
|
42
|
-
* // → [{ linkId: 'groupA' }, { linkId: 'groupB', repeatIndex: 2 }]
|
|
43
|
-
*/
|
|
44
|
-
export declare function appendRepeatIndexToLastSegment(path: repeatIndex: number): ItemPath;
|
|
45
|
-
/**
|
|
46
|
-
* Converts an `ItemPath` to a FHIRPath-compatible string.
|
|
47
|
-
*
|
|
48
|
-
* For example, the path:
|
|
49
|
-
* [
|
|
50
|
-
* { linkId: 'groupA' },
|
|
51
|
-
* { linkId: 'repeatingGroup', repeatIndex: 1 },
|
|
52
|
-
* { linkId: 'questionB' }
|
|
53
|
-
* ]
|
|
54
|
-
*
|
|
55
|
-
* Returns: "item.where(linkId='groupA').item.where(linkId='repeatingGroup')[1].item.where(linkId='questionB')"
|
|
56
|
-
*/
|
|
57
|
-
export declare function itemPathToFhirPathString(path: ItemPath): string;
|
package/lib/utils/itemPath.js
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Creates an `ItemPath` containing a single segment for the given `linkId`.
|
|
3
|
-
* This is useful when you want to construct a path to a specific item without referencing its ancestry,
|
|
4
|
-
* such as when working with top-level items or when only the item's identity is relevant.
|
|
5
|
-
*
|
|
6
|
-
* @param linkId - The `linkId` of the item.
|
|
7
|
-
* @param repeatIndex - (Optional) If the item is part of a repeating group, specify its index.
|
|
8
|
-
* @returns An `ItemPath` containing one segment.
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* ```ts
|
|
12
|
-
* const path = createSingleItemPath('question-1');
|
|
13
|
-
* // Output: [{ linkId: 'question-1' }]
|
|
14
|
-
*
|
|
15
|
-
* const pathWithRepeat = createSingleItemPath('question-1', 2);
|
|
16
|
-
* // Output: [{ linkId: 'question-1', repeatIndex: 2 }]
|
|
17
|
-
* ```
|
|
18
|
-
*/
|
|
19
|
-
export function createSingleItemPath(linkId, repeatIndex) {
|
|
20
|
-
return repeatIndex !== undefined ? [{ linkId, repeatIndex }] : [{ linkId }];
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Creates a new `ItemPath` by extending the given path with a new segment for the provided `linkId`.
|
|
24
|
-
* This version does NOT include a `repeatIndex`. If repeat handling is needed,
|
|
25
|
-
* use `appendRepeatIndexToLastSegment` after extending.
|
|
26
|
-
*
|
|
27
|
-
* @param currentPath - The existing item path.
|
|
28
|
-
* @param linkId - The `linkId` to use in the new path segment.
|
|
29
|
-
* @returns A new `ItemPath` with the added segment.
|
|
30
|
-
*/
|
|
31
|
-
export function extendItemPath(currentPath, linkId) {
|
|
32
|
-
return [...currentPath, { linkId }];
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Returns a new `ItemPath` with a `repeatIndex` applied to the last segment.
|
|
36
|
-
* Useful for denoting which repetition of a group is being accessed.
|
|
37
|
-
*
|
|
38
|
-
* @param path - The item path to modify.
|
|
39
|
-
* @param repeatIndex - The index to assign to the final segment.
|
|
40
|
-
* @returns A new `ItemPath` with the last segment modified to include `repeatIndex`.
|
|
41
|
-
*
|
|
42
|
-
* @example
|
|
43
|
-
* const basePath = [{ linkId: 'groupA' }, { linkId: 'groupB' }];
|
|
44
|
-
* appendRepeatIndexToLastSegment(basePath, 2);
|
|
45
|
-
* // → [{ linkId: 'groupA' }, { linkId: 'groupB', repeatIndex: 2 }]
|
|
46
|
-
*/
|
|
47
|
-
export function appendRepeatIndexToLastSegment(path, repeatIndex) {
|
|
48
|
-
if (path.length === 0)
|
|
49
|
-
return [];
|
|
50
|
-
const newPath = [...path];
|
|
51
|
-
newPath[path.length - 1] = Object.assign(Object.assign({}, newPath[path.length - 1]), { repeatIndex });
|
|
52
|
-
return newPath;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Converts an `ItemPath` to a FHIRPath-compatible string.
|
|
56
|
-
*
|
|
57
|
-
* For example, the path:
|
|
58
|
-
* [
|
|
59
|
-
* { linkId: 'groupA' },
|
|
60
|
-
* { linkId: 'repeatingGroup', repeatIndex: 1 },
|
|
61
|
-
* { linkId: 'questionB' }
|
|
62
|
-
* ]
|
|
63
|
-
*
|
|
64
|
-
* Returns: "item.where(linkId='groupA').item.where(linkId='repeatingGroup')[1].item.where(linkId='questionB')"
|
|
65
|
-
*/
|
|
66
|
-
export function itemPathToFhirPathString(path) {
|
|
67
|
-
return path
|
|
68
|
-
.map((segment, index) => {
|
|
69
|
-
const base = `where(linkId='${segment.linkId}')`;
|
|
70
|
-
const repeat = segment.repeatIndex !== undefined ? `[${segment.repeatIndex}]` : '';
|
|
71
|
-
return (index === 0 ? 'item.' : '') + base + repeat;
|
|
72
|
-
})
|
|
73
|
-
.join('.item.');
|
|
74
|
-
}
|
|
75
|
-
//# sourceMappingURL=itemPath.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"itemPath.js","sourceRoot":"","sources":["../../src/utils/itemPath.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc,EAAE,WAAoB;IACvE,OAAO,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,WAAqB,EAAE,MAAc;IAClE,OAAO,CAAC,GAAG,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,8BAA8B,CAAC,IAAc,EAAE,WAAmB;IAChF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEjC,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1B,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,mCAAQ,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAE,WAAW,GAAE,CAAC;IACxE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAc;IACrD,OAAO,IAAI;SACR,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,iBAAiB,OAAO,CAAC,MAAM,IAAI,CAAC;QACjD,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC;IACtD,CAAC,CAAC;SACD,IAAI,CAAC,QAAQ,CAAC,CAAC;AACpB,CAAC"}
|