@aehrc/smart-forms-renderer 1.0.0-alpha.31 → 1.0.0-alpha.32
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/GroupItem/GroupItemView.js +6 -5
- package/lib/components/FormComponents/GroupItem/GroupItemView.js.map +1 -1
- package/lib/components/Renderer/FormBodyPage.d.ts +8 -0
- package/lib/components/Renderer/FormBodyPage.js +41 -0
- package/lib/components/Renderer/FormBodyPage.js.map +1 -0
- package/lib/components/Renderer/FormBodyPageContainer.d.ts +8 -0
- package/lib/components/Renderer/FormBodyPageContainer.js +48 -0
- package/lib/components/Renderer/FormBodyPageContainer.js.map +1 -0
- package/lib/components/Renderer/FormBodySinglePage.d.ts +8 -0
- package/lib/components/Renderer/FormBodySinglePage.js +42 -0
- package/lib/components/Renderer/FormBodySinglePage.js.map +1 -0
- package/lib/components/Renderer/FormTopLevelPage.d.ts +8 -0
- package/lib/components/Renderer/FormTopLevelPage.js +26 -0
- package/lib/components/Renderer/FormTopLevelPage.js.map +1 -0
- package/package.json +1 -1
- package/src/components/FormComponents/GroupItem/GroupItemView.tsx +6 -6
|
@@ -46,11 +46,12 @@ function GroupItemView(props) {
|
|
|
46
46
|
// Merge parent styles with extracted styles (extracted styles take precedence)
|
|
47
47
|
return Object.assign(Object.assign({}, parentStyles), xhtmlStyles);
|
|
48
48
|
}, [parentStyles, xhtmlStyles]);
|
|
49
|
-
const readOnly = useReadOnly(qItem, parentIsReadOnly);
|
|
50
|
-
//
|
|
51
|
-
|
|
52
|
-
const
|
|
53
|
-
if (
|
|
49
|
+
const readOnly = useReadOnly(qItem, parentIsReadOnly, parentRepeatGroupIndex);
|
|
50
|
+
// Render collapsible group item
|
|
51
|
+
// If group item is a repeating instance, do not render group item as collapsible
|
|
52
|
+
const groupCollapsibleValue = getGroupCollapsible(qItem);
|
|
53
|
+
if (groupCollapsibleValue && !isRepeated) {
|
|
54
|
+
const isDefaultOpen = groupCollapsibleValue === 'default-open';
|
|
54
55
|
return (_jsxs(GroupAccordion, { disableGutters: true, defaultExpanded: isDefaultOpen, elevation: groupCardElevation, isRepeated: isRepeated, slotProps: {
|
|
55
56
|
transition: { unmountOnExit: true, timeout: 250 }
|
|
56
57
|
}, style: combinedStyles || undefined, children: [_jsx(AccordionSummary, { expandIcon: _jsx(ExpandMoreIcon, {}), sx: { minHeight: '28px' }, children: _jsx(GroupHeading, { qItem: qItem, readOnly: readOnly, groupCardElevation: groupCardElevation, tabIsMarkedAsComplete: tabIsMarkedAsComplete, pageIsMarkedAsComplete: pageIsMarkedAsComplete, parentStyles: combinedStyles }) }), _jsxs(AccordionDetails, { sx: { pt: 0 }, children: [qItem.text ? _jsx(Divider, { sx: { mb: 1.5, opacity: 0.6 } }) : null, _jsxs(_Fragment, { children: [childQItems.map((qItem, i) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupItemView.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/GroupItem/GroupItemView.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAUtD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,cAAc,MAAM,gCAAgC,CAAC;AAC5D,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,WAAW,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,kBAAkB,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAsB7D,SAAS,aAAa,CAAC,KAAyB;;IAC9C,MAAM,EACJ,KAAK,EACL,WAAW,EACX,cAAc,EACd,UAAU,GAAG,KAAK,EAClB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,IAAI,EACJ,eAAe,EACf,sBAAsB,EACtB,KAAK,EACL,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,qBAAqB,EACrB,YAAY,EACb,GAAG,KAAK,CAAC;IAEV,yFAAyF;IACzF,MAAM,WAAW,GAAG,MAAA,aAAa,CAAC,KAAK,CAAC,0CAAE,MAAM,CAAC;IAEjD,iDAAiD;IACjD,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACxC,IAAI,CAAC,YAAY,IAAI,CAAC,WAAW;YAAE,OAAO,SAAS,CAAC;QACpD,IAAI,YAAY,IAAI,CAAC,WAAW;YAAE,OAAO,YAAY,CAAC;QACtD,IAAI,CAAC,YAAY,IAAI,WAAW;YAAE,OAAO,WAAW,CAAC;QAErD,+EAA+E;QAC/E,uCAAY,YAAY,GAAK,WAAW,EAAG;IAC7C,CAAC,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;IAEhC,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"GroupItemView.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/GroupItem/GroupItemView.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAUtD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,cAAc,MAAM,gCAAgC,CAAC;AAC5D,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,WAAW,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,kBAAkB,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAsB7D,SAAS,aAAa,CAAC,KAAyB;;IAC9C,MAAM,EACJ,KAAK,EACL,WAAW,EACX,cAAc,EACd,UAAU,GAAG,KAAK,EAClB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,IAAI,EACJ,eAAe,EACf,sBAAsB,EACtB,KAAK,EACL,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,qBAAqB,EACrB,YAAY,EACb,GAAG,KAAK,CAAC;IAEV,yFAAyF;IACzF,MAAM,WAAW,GAAG,MAAA,aAAa,CAAC,KAAK,CAAC,0CAAE,MAAM,CAAC;IAEjD,iDAAiD;IACjD,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACxC,IAAI,CAAC,YAAY,IAAI,CAAC,WAAW;YAAE,OAAO,SAAS,CAAC;QACpD,IAAI,YAAY,IAAI,CAAC,WAAW;YAAE,OAAO,YAAY,CAAC;QACtD,IAAI,CAAC,YAAY,IAAI,WAAW;YAAE,OAAO,WAAW,CAAC;QAErD,+EAA+E;QAC/E,uCAAY,YAAY,GAAK,WAAW,EAAG;IAC7C,CAAC,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;IAEhC,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,CAAC,CAAC;IAE9E,gCAAgC;IAChC,iFAAiF;IACjF,MAAM,qBAAqB,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACzD,IAAI,qBAAqB,IAAI,CAAC,UAAU,EAAE,CAAC;QACzC,MAAM,aAAa,GAAG,qBAAqB,KAAK,cAAc,CAAC;QAC/D,OAAO,CACL,MAAC,cAAc,IACb,cAAc,QACd,eAAe,EAAE,aAAa,EAC9B,SAAS,EAAE,kBAAkB,EAC7B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE;gBACT,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE;aAClD,EACD,KAAK,EAAE,cAAc,IAAI,SAAS,aAClC,KAAC,gBAAgB,IAAC,UAAU,EAAE,KAAC,cAAc,KAAG,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,YACzE,KAAC,YAAY,IACX,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,kBAAkB,EAAE,kBAAkB,EACtC,qBAAqB,EAAE,qBAAqB,EAC5C,sBAAsB,EAAE,sBAAsB,EAC9C,YAAY,EAAE,cAAc,GAC5B,GACe,EACnB,MAAC,gBAAgB,IAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,aAC5B,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAC,OAAO,IAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAI,CAAC,CAAC,CAAC,IAAI,EAC/D,8BACG,WAAW,CAAC,GAAG,CAAC,CAAC,KAAwB,EAAE,CAAC,EAAE,EAAE;oCAC/C,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;oCAExC,OAAO,CACL,KAAC,iBAAiB,IAEhB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,kBAAkB,EAAE,kBAAkB,GAAG,CAAC,EAC1C,gBAAgB,EAAE,QAAQ,EAC1B,mBAAmB,EAAE,mBAAmB,EACxC,sBAAsB,EAAE,sBAAsB,EAC9C,cAAc,EAAE,cAAc,EAC9B,qBAAqB,EAAE,qBAAqB,EAC5C,YAAY,EAAE,cAAc,IATvB,KAAK,CAAC,MAAM,CAUjB,CACH,CAAC;gCACJ,CAAC,CAAC,EAGF,KAAC,iBAAiB,IAAC,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,GAAI,EACnE,KAAC,kBAAkB,IAAC,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,GAAI,IACvE,IACc,IACJ,CAClB,CAAC;IACJ,CAAC;IAED,2EAA2E;IAC3E,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,CACL,MAAC,kBAAkB,IACjB,aAAa,EAAE,kBAAkB,EACjC,UAAU,EAAE,UAAU,eACZ,kBAAkB,EAC5B,KAAK,EAAE,cAAc,IAAI,SAAS,aACjC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACnB,8BACE,KAAC,YAAY,IACX,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,qBAAqB,EAAE,qBAAqB,EAC5C,sBAAsB,EAAE,sBAAsB,EAC9C,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,cAAc,GAC5B,EACD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAC,OAAO,IAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAI,CAAC,CAAC,CAAC,IAAI,IACrE,CACJ,EACA,WAAW,CAAC,GAAG,CAAC,CAAC,KAAwB,EAAE,CAAC,EAAE,EAAE;oBAC/C,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;oBAExC,OAAO,CACL,KAAC,iBAAiB,IAEhB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,kBAAkB,EAAE,kBAAkB,GAAG,CAAC,EAC1C,gBAAgB,EAAE,QAAQ,EAC1B,mBAAmB,EAAE,mBAAmB,EACxC,sBAAsB,EAAE,sBAAsB,EAC9C,cAAc,EAAE,cAAc,EAC9B,qBAAqB,EAAE,qBAAqB,EAC5C,YAAY,EAAE,cAAc,IATvB,KAAK,CAAC,MAAM,CAUjB,CACH,CAAC;gBACJ,CAAC,CAAC,EAEF,KAAC,iBAAiB,IAAC,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,GAAI,EACnE,KAAC,kBAAkB,IAAC,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,GAAI,IACrD,CACtB,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,kBAAkB,IACjB,aAAa,EAAE,kBAAkB,EACjC,UAAU,EAAE,UAAU,eACZ,kBAAkB,YAC5B,MAAC,SAAS,IACR,SAAS,EAAE,kBAAkB,EAC7B,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,cAAc,IAAI,SAAS,aACjC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACnB,8BACE,KAAC,YAAY,IACX,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,qBAAqB,EAAE,qBAAqB,EAC5C,sBAAsB,EAAE,sBAAsB,EAC9C,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,cAAc,GAC5B,EACD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAC,OAAO,IAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAI,CAAC,CAAC,CAAC,IAAI,IACrE,CACJ,EACA,WAAW,CAAC,GAAG,CAAC,CAAC,KAAwB,EAAE,CAAC,EAAE,EAAE;oBAC/C,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;oBAExC,OAAO,CACL,KAAC,iBAAiB,IAEhB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,kBAAkB,EAAE,kBAAkB,GAAG,CAAC,EAC1C,gBAAgB,EAAE,QAAQ,EAC1B,mBAAmB,EAAE,mBAAmB,EACxC,sBAAsB,EAAE,sBAAsB,EAC9C,cAAc,EAAE,cAAc,EAC9B,qBAAqB,EAAE,qBAAqB,EAC5C,YAAY,EAAE,cAAc,IATvB,KAAK,CAAC,MAAM,CAUjB,CACH,CAAC;gBACJ,CAAC,CAAC,EAGF,KAAC,iBAAiB,IAAC,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,GAAI,EACnE,KAAC,kBAAkB,IAAC,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,GAAI,IAC9D,GACO,CACtB,CAAC;AACJ,CAAC;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
2
|
+
import type { PropsWithParentIsReadOnlyAttribute, PropsWithQrItemChangeHandler } from '../../interfaces/renderProps.interface';
|
|
3
|
+
interface FormBodyPageProps extends PropsWithQrItemChangeHandler, PropsWithParentIsReadOnlyAttribute {
|
|
4
|
+
topLevelQItem: QuestionnaireItem;
|
|
5
|
+
topLevelQRItem: QuestionnaireResponseItem | null;
|
|
6
|
+
}
|
|
7
|
+
declare function FormBodyPage(props: FormBodyPageProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export default FormBodyPage;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import Grid from '@mui/material/Grid';
|
|
4
|
+
import TabContext from '@mui/lab/TabContext';
|
|
5
|
+
import TabPanel from '@mui/lab/TabPanel';
|
|
6
|
+
import GroupItem from '../FormComponents/GroupItem/GroupItem';
|
|
7
|
+
import { useQuestionnaireStore } from '../../stores';
|
|
8
|
+
import { getQrItemsIndex, mapQItemsIndex } from '../../utils/mapItem';
|
|
9
|
+
import { createEmptyQrGroup, updateQrItemsInGroup } from '../../utils/qrItem';
|
|
10
|
+
function FormBodyPage(props) {
|
|
11
|
+
const { topLevelQItem, topLevelQRItem, parentIsReadOnly, onQrItemChange } = props;
|
|
12
|
+
const pages = useQuestionnaireStore.use.pages();
|
|
13
|
+
const currentPage = useQuestionnaireStore.use.currentPageIndex();
|
|
14
|
+
const indexMap = useMemo(() => mapQItemsIndex(topLevelQItem), [topLevelQItem]);
|
|
15
|
+
const nonNullTopLevelQRItem = topLevelQRItem !== null && topLevelQRItem !== void 0 ? topLevelQRItem : createEmptyQrGroup(topLevelQItem);
|
|
16
|
+
const qItems = topLevelQItem.item;
|
|
17
|
+
const qrItems = nonNullTopLevelQRItem.item;
|
|
18
|
+
function handleQrGroupChange(qrItem) {
|
|
19
|
+
updateQrItemsInGroup(qrItem, null, nonNullTopLevelQRItem, indexMap);
|
|
20
|
+
onQrItemChange(nonNullTopLevelQRItem);
|
|
21
|
+
}
|
|
22
|
+
if (!qItems || !qrItems) {
|
|
23
|
+
return _jsx(_Fragment, { children: "Unable to load form" });
|
|
24
|
+
}
|
|
25
|
+
const qrItemsByIndex = getQrItemsIndex(qItems, qrItems, indexMap);
|
|
26
|
+
return (_jsx(Grid, Object.assign({ container: true, spacing: 1.5 }, { children: _jsx(TabContext, Object.assign({ value: currentPage.toString() }, { children: _jsx(Grid, Object.assign({ item: true, xs: 12, md: 12, lg: 12 }, { children: qItems.map((qItem, i) => {
|
|
27
|
+
var _a, _b;
|
|
28
|
+
const qrItem = qrItemsByIndex[i];
|
|
29
|
+
const isNotRepeatGroup = !Array.isArray(qrItem);
|
|
30
|
+
const isPage = !!pages[qItem.linkId];
|
|
31
|
+
if (!isPage || !isNotRepeatGroup) {
|
|
32
|
+
// Something has gone horribly wrong
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
const isRepeated = (_a = qItem.repeats) !== null && _a !== void 0 ? _a : false;
|
|
36
|
+
const pageIsMarkedAsComplete = (_b = pages[qItem.linkId].isComplete) !== null && _b !== void 0 ? _b : false;
|
|
37
|
+
return (_jsx(TabPanel, Object.assign({ sx: { p: 0 }, value: i.toString(), "data-test": "renderer-page-panel" }, { children: _jsx(GroupItem, { qItem: qItem, qrItem: qrItem !== null && qrItem !== void 0 ? qrItem : null, isRepeated: isRepeated, groupCardElevation: 1, pageIsMarkedAsComplete: pageIsMarkedAsComplete, pages: pages, currentPageIndex: currentPage, parentIsReadOnly: parentIsReadOnly, onQrItemChange: handleQrGroupChange }) }), qItem.linkId));
|
|
38
|
+
}) })) })) })));
|
|
39
|
+
}
|
|
40
|
+
export default FormBodyPage;
|
|
41
|
+
//# sourceMappingURL=FormBodyPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormBodyPage.js","sourceRoot":"","sources":["../../../src/components/Renderer/FormBodyPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
2
|
+
import type { PropsWithParentIsReadOnlyAttribute, PropsWithQrItemChangeHandler } from '../../interfaces/renderProps.interface';
|
|
3
|
+
interface FormBodyPageContainerProps extends PropsWithQrItemChangeHandler, PropsWithParentIsReadOnlyAttribute {
|
|
4
|
+
topLevelQItem: QuestionnaireItem;
|
|
5
|
+
topLevelQRItem: QuestionnaireResponseItem | null;
|
|
6
|
+
}
|
|
7
|
+
declare function FormBodyPageContainer(props: FormBodyPageContainerProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export default FormBodyPageContainer;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import Grid from '@mui/material/Grid';
|
|
4
|
+
import TabContext from '@mui/lab/TabContext';
|
|
5
|
+
import TabPanel from '@mui/lab/TabPanel';
|
|
6
|
+
import GroupItem from '../FormComponents/GroupItem/GroupItem';
|
|
7
|
+
import { useQuestionnaireStore } from '../../stores';
|
|
8
|
+
import { getQrItemsIndex, mapQItemsIndex } from '../../utils/mapItem';
|
|
9
|
+
import { createEmptyQrGroup, updateQrItemsInGroup } from '../../utils/qrItem';
|
|
10
|
+
// TODO add support for header and footer itemControls tomorrow
|
|
11
|
+
/* Using "page" item as a page-container - only preserved for backwards compatibility
|
|
12
|
+
* - The first "page" item in the questionnaire will be considered as a page-container, and all its children will be considered as pages
|
|
13
|
+
* - All other pages will be ignored by the renderer
|
|
14
|
+
* - You can have non-page items in the same level as the page-container to be used as faux headers or footers
|
|
15
|
+
* Note: This will only be used if wholeFormIsPaginated=false
|
|
16
|
+
*/
|
|
17
|
+
function FormBodyPageContainer(props) {
|
|
18
|
+
const { topLevelQItem, topLevelQRItem, parentIsReadOnly, onQrItemChange } = props;
|
|
19
|
+
const pages = useQuestionnaireStore.use.pages();
|
|
20
|
+
const currentPage = useQuestionnaireStore.use.currentPageIndex();
|
|
21
|
+
const indexMap = useMemo(() => mapQItemsIndex(topLevelQItem), [topLevelQItem]);
|
|
22
|
+
const nonNullTopLevelQRItem = topLevelQRItem !== null && topLevelQRItem !== void 0 ? topLevelQRItem : createEmptyQrGroup(topLevelQItem);
|
|
23
|
+
const qItems = topLevelQItem.item;
|
|
24
|
+
const qrItems = nonNullTopLevelQRItem.item;
|
|
25
|
+
function handleQrGroupChange(qrItem) {
|
|
26
|
+
updateQrItemsInGroup(qrItem, null, nonNullTopLevelQRItem, indexMap);
|
|
27
|
+
onQrItemChange(nonNullTopLevelQRItem);
|
|
28
|
+
}
|
|
29
|
+
if (!qItems || !qrItems) {
|
|
30
|
+
return _jsx(_Fragment, { children: "Unable to load form" });
|
|
31
|
+
}
|
|
32
|
+
const qrItemsByIndex = getQrItemsIndex(qItems, qrItems, indexMap);
|
|
33
|
+
return (_jsx(Grid, { container: true, spacing: 1.5, children: _jsx(TabContext, { value: currentPage.toString(), children: _jsx(Grid, { item: true, xs: 12, md: 12, lg: 12, children: qItems.map((qItem, i) => {
|
|
34
|
+
var _a, _b;
|
|
35
|
+
const qrItem = qrItemsByIndex[i];
|
|
36
|
+
const isNotRepeatGroup = !Array.isArray(qrItem);
|
|
37
|
+
const isPage = !!pages[qItem.linkId];
|
|
38
|
+
if (!isPage || !isNotRepeatGroup) {
|
|
39
|
+
// Something has gone horribly wrong
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
const isRepeated = (_a = qItem.repeats) !== null && _a !== void 0 ? _a : false;
|
|
43
|
+
const pageIsMarkedAsComplete = (_b = pages[qItem.linkId].isComplete) !== null && _b !== void 0 ? _b : false;
|
|
44
|
+
return (_jsx(TabPanel, { sx: { p: 0 }, value: i.toString(), "data-test": "renderer-page-panel", children: _jsx(GroupItem, { qItem: qItem, qrItem: qrItem !== null && qrItem !== void 0 ? qrItem : null, isRepeated: isRepeated, groupCardElevation: 1, pageIsMarkedAsComplete: pageIsMarkedAsComplete, pages: pages, currentPageIndex: currentPage, parentIsReadOnly: parentIsReadOnly, onQrItemChange: handleQrGroupChange }) }, qItem.linkId));
|
|
45
|
+
}) }) }) }));
|
|
46
|
+
}
|
|
47
|
+
export default FormBodyPageContainer;
|
|
48
|
+
//# sourceMappingURL=FormBodyPageContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormBodyPageContainer.js","sourceRoot":"","sources":["../../../src/components/Renderer/FormBodyPageContainer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
2
|
+
import type { PropsWithParentIsReadOnlyAttribute, PropsWithQrItemChangeHandler } from '../../interfaces/renderProps.interface';
|
|
3
|
+
interface FormBodySinglePageProps extends PropsWithQrItemChangeHandler, PropsWithParentIsReadOnlyAttribute {
|
|
4
|
+
topLevelQItem: QuestionnaireItem;
|
|
5
|
+
topLevelQRItem: QuestionnaireResponseItem | null;
|
|
6
|
+
}
|
|
7
|
+
declare function FormBodySinglePage(props: FormBodySinglePageProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export default FormBodySinglePage;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import Grid from '@mui/material/Grid';
|
|
4
|
+
import TabContext from '@mui/lab/TabContext';
|
|
5
|
+
import TabPanel from '@mui/lab/TabPanel';
|
|
6
|
+
import GroupItem from '../FormComponents/GroupItem/GroupItem';
|
|
7
|
+
import { useQuestionnaireStore } from '../../stores';
|
|
8
|
+
import { getQrItemsIndex, mapQItemsIndex } from '../../utils/mapItem';
|
|
9
|
+
import { createEmptyQrGroup, updateQrItemsInGroup } from '../../utils/qrItem';
|
|
10
|
+
function FormBodySinglePage(props) {
|
|
11
|
+
const { topLevelQItem, topLevelQRItem, parentIsReadOnly, onQrItemChange } = props;
|
|
12
|
+
const pages = useQuestionnaireStore.use.pages();
|
|
13
|
+
console.log(pages);
|
|
14
|
+
const currentPage = useQuestionnaireStore.use.currentPageIndex();
|
|
15
|
+
const indexMap = useMemo(() => mapQItemsIndex(topLevelQItem), [topLevelQItem]);
|
|
16
|
+
const nonNullTopLevelQRItem = topLevelQRItem !== null && topLevelQRItem !== void 0 ? topLevelQRItem : createEmptyQrGroup(topLevelQItem);
|
|
17
|
+
const qItems = topLevelQItem.item;
|
|
18
|
+
const qrItems = nonNullTopLevelQRItem.item;
|
|
19
|
+
function handleQrGroupChange(qrItem) {
|
|
20
|
+
updateQrItemsInGroup(qrItem, null, nonNullTopLevelQRItem, indexMap);
|
|
21
|
+
onQrItemChange(nonNullTopLevelQRItem);
|
|
22
|
+
}
|
|
23
|
+
if (!qItems || !qrItems) {
|
|
24
|
+
return _jsx(_Fragment, { children: "Unable to load form" });
|
|
25
|
+
}
|
|
26
|
+
const qrItemsByIndex = getQrItemsIndex(qItems, qrItems, indexMap);
|
|
27
|
+
return (_jsx(Grid, Object.assign({ container: true, spacing: 1.5 }, { children: _jsx(TabContext, Object.assign({ value: currentPage.toString() }, { children: _jsx(Grid, Object.assign({ item: true, xs: 12, md: 12, lg: 12 }, { children: qItems.map((qItem, i) => {
|
|
28
|
+
var _a, _b;
|
|
29
|
+
const qrItem = qrItemsByIndex[i];
|
|
30
|
+
const isNotRepeatGroup = !Array.isArray(qrItem);
|
|
31
|
+
const isPage = !!pages[qItem.linkId];
|
|
32
|
+
if (!isPage || !isNotRepeatGroup) {
|
|
33
|
+
// Something has gone horribly wrong
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
const isRepeated = (_a = qItem.repeats) !== null && _a !== void 0 ? _a : false;
|
|
37
|
+
const pageIsMarkedAsComplete = (_b = pages[qItem.linkId].isComplete) !== null && _b !== void 0 ? _b : false;
|
|
38
|
+
return (_jsx(TabPanel, Object.assign({ sx: { p: 0 }, value: i.toString(), "data-test": "renderer-page-panel" }, { children: _jsx(GroupItem, { qItem: qItem, qrItem: qrItem !== null && qrItem !== void 0 ? qrItem : null, isRepeated: isRepeated, groupCardElevation: 1, pageIsMarkedAsComplete: pageIsMarkedAsComplete, pages: pages, currentPageIndex: currentPage, parentIsReadOnly: parentIsReadOnly, onQrItemChange: handleQrGroupChange }) }), qItem.linkId));
|
|
39
|
+
}) })) })) })));
|
|
40
|
+
}
|
|
41
|
+
export default FormBodySinglePage;
|
|
42
|
+
//# sourceMappingURL=FormBodySinglePage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormBodySinglePage.js","sourceRoot":"","sources":["../../../src/components/Renderer/FormBodySinglePage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
2
|
+
import type { PropsWithParentIsReadOnlyAttribute, PropsWithQrItemChangeHandler } from '../../interfaces/renderProps.interface';
|
|
3
|
+
interface FormTopLevelPageProps extends PropsWithQrItemChangeHandler, PropsWithParentIsReadOnlyAttribute {
|
|
4
|
+
topLevelQItems: QuestionnaireItem[];
|
|
5
|
+
topLevelQRItems: (QuestionnaireResponseItem | QuestionnaireResponseItem[] | undefined)[];
|
|
6
|
+
}
|
|
7
|
+
declare function FormTopLevelPage(props: FormTopLevelPageProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export default FormTopLevelPage;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import Grid from '@mui/material/Grid';
|
|
3
|
+
import TabContext from '@mui/lab/TabContext';
|
|
4
|
+
import TabPanel from '@mui/lab/TabPanel';
|
|
5
|
+
import GroupItem from '../FormComponents/GroupItem/GroupItem';
|
|
6
|
+
import { useQuestionnaireStore } from '../../stores';
|
|
7
|
+
function FormTopLevelPage(props) {
|
|
8
|
+
const { topLevelQItems, topLevelQRItems, parentIsReadOnly, onQrItemChange } = props;
|
|
9
|
+
const pages = useQuestionnaireStore.use.pages();
|
|
10
|
+
const currentPage = useQuestionnaireStore.use.currentPageIndex();
|
|
11
|
+
return (_jsx(Grid, Object.assign({ container: true, spacing: 1.5 }, { children: _jsx(TabContext, Object.assign({ value: currentPage.toString() }, { children: _jsx(Grid, Object.assign({ item: true, xs: 12, md: 12, lg: 12 }, { children: topLevelQItems.map((qItem, i) => {
|
|
12
|
+
var _a, _b;
|
|
13
|
+
const qrItem = topLevelQRItems[i];
|
|
14
|
+
const isNotRepeatGroup = !Array.isArray(qrItem);
|
|
15
|
+
const isPage = !!pages[qItem.linkId];
|
|
16
|
+
if (!isPage || !isNotRepeatGroup) {
|
|
17
|
+
// Something has gone horribly wrong
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
const isRepeated = (_a = qItem.repeats) !== null && _a !== void 0 ? _a : false;
|
|
21
|
+
const pageIsMarkedAsComplete = (_b = pages[qItem.linkId].isComplete) !== null && _b !== void 0 ? _b : false;
|
|
22
|
+
return (_jsx(TabPanel, Object.assign({ sx: { p: 0 }, value: i.toString(), "data-test": "renderer-page-panel" }, { children: _jsx(GroupItem, { qItem: qItem, qrItem: qrItem !== null && qrItem !== void 0 ? qrItem : null, isRepeated: isRepeated, groupCardElevation: 1, pageIsMarkedAsComplete: pageIsMarkedAsComplete, pages: pages, currentPageIndex: currentPage, parentIsReadOnly: parentIsReadOnly, onQrItemChange: onQrItemChange }) }), qItem.linkId));
|
|
23
|
+
}) })) })) })));
|
|
24
|
+
}
|
|
25
|
+
export default FormTopLevelPage;
|
|
26
|
+
//# sourceMappingURL=FormTopLevelPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormTopLevelPage.js","sourceRoot":"","sources":["../../../src/components/Renderer/FormTopLevelPage.tsx"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,oBAAoB,CAAC;AAEtC,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAC7C,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AACzC,OAAO,SAAS,MAAM,uCAAuC,CAAC;AAK9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AASrD,SAAS,gBAAgB,CAAC,KAA4B;IACpD,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAEpF,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IAChD,MAAM,WAAW,GAAG,qBAAqB,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAEjE,OAAO,CACL,KAAC,IAAI,kBAAC,SAAS,QAAC,OAAO,EAAE,GAAG,gBAC1B,KAAC,UAAU,kBAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE,gBACvC,KAAC,IAAI,kBAAC,IAAI,QAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,gBAC9B,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;;oBAC/B,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;oBAElC,MAAM,gBAAgB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBAChD,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAErC,IAAI,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE;wBAChC,oCAAoC;wBACpC,OAAO,IAAI,CAAC;qBACb;oBAED,MAAM,UAAU,GAAG,MAAA,KAAK,CAAC,OAAO,mCAAI,KAAK,CAAC;oBAC1C,MAAM,sBAAsB,GAAG,MAAA,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,mCAAI,KAAK,CAAC;oBAEvE,OAAO,CACL,KAAC,QAAQ,kBAEP,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EACZ,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,eACT,qBAAqB,gBAC/B,KAAC,SAAS,IACR,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,IAAI,EACtB,UAAU,EAAE,UAAU,EACtB,kBAAkB,EAAE,CAAC,EACrB,sBAAsB,EAAE,sBAAsB,EAC9C,KAAK,EAAE,KAAK,EACZ,gBAAgB,EAAE,WAAW,EAC7B,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,cAAc,GAC9B,KAdG,KAAK,CAAC,MAAM,CAeR,CACZ,CAAC;gBACJ,CAAC,CAAC,IACG,IACI,IACR,CACR,CAAC;AACJ,CAAC;AAED,eAAe,gBAAgB,CAAC"}
|
package/package.json
CHANGED
|
@@ -96,13 +96,13 @@ function GroupItemView(props: GroupItemViewProps) {
|
|
|
96
96
|
return { ...parentStyles, ...xhtmlStyles };
|
|
97
97
|
}, [parentStyles, xhtmlStyles]);
|
|
98
98
|
|
|
99
|
-
const readOnly = useReadOnly(qItem, parentIsReadOnly);
|
|
99
|
+
const readOnly = useReadOnly(qItem, parentIsReadOnly, parentRepeatGroupIndex);
|
|
100
100
|
|
|
101
|
-
//
|
|
102
|
-
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
|
|
101
|
+
// Render collapsible group item
|
|
102
|
+
// If group item is a repeating instance, do not render group item as collapsible
|
|
103
|
+
const groupCollapsibleValue = getGroupCollapsible(qItem);
|
|
104
|
+
if (groupCollapsibleValue && !isRepeated) {
|
|
105
|
+
const isDefaultOpen = groupCollapsibleValue === 'default-open';
|
|
106
106
|
return (
|
|
107
107
|
<GroupAccordion
|
|
108
108
|
disableGutters
|