@aehrc/smart-forms-renderer 0.33.0 → 0.34.0
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/GroupAccordion.styles.d.ts +20 -0
- package/lib/components/FormComponents/GroupItem/GroupAccordion.styles.js +12 -0
- package/lib/components/FormComponents/GroupItem/GroupAccordion.styles.js.map +1 -0
- package/lib/components/FormComponents/GroupItem/GroupHeading.js +3 -2
- package/lib/components/FormComponents/GroupItem/GroupHeading.js.map +1 -1
- package/lib/components/FormComponents/GroupItem/GroupItem.js +2 -15
- package/lib/components/FormComponents/GroupItem/GroupItem.js.map +1 -1
- package/lib/components/FormComponents/GroupItem/GroupItem.styles.d.ts +1 -1
- package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.d.ts +1 -2
- package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js +1 -1
- package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js.map +1 -1
- package/lib/components/FormComponents/GroupItem/GroupItemView.d.ts +16 -0
- package/lib/components/FormComponents/GroupItem/GroupItemView.js +62 -0
- package/lib/components/FormComponents/GroupItem/GroupItemView.js.map +1 -0
- package/lib/components/FormComponents/ItemParts/ItemLabelText.js +20 -6
- package/lib/components/FormComponents/ItemParts/ItemLabelText.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js +4 -2
- package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js.map +1 -1
- package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js +2 -37
- package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js.map +1 -1
- package/lib/components/FormComponents/RepeatGroup/RepeatGroupView.d.ts +20 -0
- package/lib/components/FormComponents/RepeatGroup/RepeatGroupView.js +91 -0
- package/lib/components/FormComponents/RepeatGroup/RepeatGroupView.js.map +1 -0
- package/lib/components/FormComponents/SingleItem/SingleItem.js +13 -4
- package/lib/components/FormComponents/SingleItem/SingleItem.js.map +1 -1
- package/lib/components/FormComponents/SingleItem/SingleNestedItems.js +11 -7
- package/lib/components/FormComponents/SingleItem/SingleNestedItems.js.map +1 -1
- package/lib/components/Renderer/FormBodySingleCollapsible.js +5 -4
- package/lib/components/Renderer/FormBodySingleCollapsible.js.map +1 -1
- package/lib/theme/overrides/Accordion.js +1 -1
- package/lib/theme/overrides/Accordion.js.map +1 -1
- package/lib/utils/itemControl.d.ts +1 -0
- package/lib/utils/itemControl.js +9 -0
- package/lib/utils/itemControl.js.map +1 -1
- package/lib/utils/qItem.d.ts +2 -0
- package/lib/utils/qItem.js +14 -0
- package/lib/utils/qItem.js.map +1 -1
- package/package.json +3 -2
- package/src/components/FormComponents/GroupItem/GroupAccordion.styles.ts +12 -0
- package/src/components/FormComponents/GroupItem/GroupHeading.tsx +3 -3
- package/src/components/FormComponents/GroupItem/GroupItem.tsx +15 -39
- package/src/components/FormComponents/GroupItem/GroupItemSwitcher.tsx +2 -2
- package/src/components/FormComponents/GroupItem/GroupItemView.tsx +163 -0
- package/src/components/FormComponents/ItemParts/ItemLabelText.tsx +22 -11
- package/src/components/FormComponents/ItemParts/ItemLabelWrapper.tsx +8 -1
- package/src/components/FormComponents/RepeatGroup/RepeatGroup.tsx +11 -82
- package/src/components/FormComponents/RepeatGroup/RepeatGroupView.tsx +202 -0
- package/src/components/FormComponents/SingleItem/SingleItem.tsx +40 -11
- package/src/components/FormComponents/SingleItem/SingleNestedItems.tsx +24 -19
- package/src/components/Renderer/FormBodySingleCollapsible.tsx +7 -9
- package/src/stories/assets/questionnaires/QAdvancedControlAppearance.ts +333 -3
- package/src/stories/assets/questionnaires/QAdvancedTextApperance.ts +29 -0
- package/src/stories/assets/questionnaires/QDisplay.ts +82 -0
- package/src/stories/assets/questionnaires/QMbs715Tester.ts +32888 -0
- package/src/stories/itemTypes/Display.stories.tsx +11 -1
- package/src/stories/sdc/AdvancedControlAppearance.stories.tsx +26 -1
- package/src/stories/sdc/AdvancedTextAppearance.stories.tsx +7 -0
- package/src/stories/testing/Mbs715Tester.stories.tsx +57 -0
- package/src/theme/overrides/Accordion.ts +1 -1
- package/src/utils/itemControl.ts +14 -0
- package/src/utils/qItem.ts +24 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const GroupAccordion: import("@emotion/styled").StyledComponent<{
|
|
3
|
+
children: NonNullable<import("react").ReactNode>;
|
|
4
|
+
classes?: Partial<import("@mui/material/Accordion").AccordionClasses> | undefined;
|
|
5
|
+
defaultExpanded?: boolean | undefined;
|
|
6
|
+
disabled?: boolean | undefined;
|
|
7
|
+
disableGutters?: boolean | undefined;
|
|
8
|
+
expanded?: boolean | undefined;
|
|
9
|
+
onChange?: ((event: import("react").SyntheticEvent<Element, Event>, expanded: boolean) => void) | undefined;
|
|
10
|
+
sx?: import("@mui/material/styles").SxProps<import("@mui/material/styles").Theme> | undefined;
|
|
11
|
+
TransitionComponent?: import("react").JSXElementConstructor<import("@mui/material/transitions").TransitionProps & {
|
|
12
|
+
children?: import("react").ReactElement<any, any> | undefined;
|
|
13
|
+
}> | undefined;
|
|
14
|
+
TransitionProps?: import("@mui/material/transitions").TransitionProps | undefined;
|
|
15
|
+
} & import("@mui/material/Accordion").AccordionSlotsAndSlotProps & Omit<import("@mui/material").PaperOwnProps, "onChange" | "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
16
|
+
ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
17
|
+
}, "disabled" | "children" | "onChange" | "sx" | "elevation" | keyof import("@mui/material/OverridableComponent").CommonProps | "variant" | "square" | "expanded" | "disableGutters" | "defaultExpanded" | "TransitionComponent" | "TransitionProps" | keyof import("@mui/material/Accordion").AccordionSlotsAndSlotProps> & import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme> & {
|
|
18
|
+
elevation: number;
|
|
19
|
+
isRepeated: boolean;
|
|
20
|
+
}, {}, {}>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { styled } from '@mui/material/styles';
|
|
2
|
+
import Accordion from '@mui/material/Accordion';
|
|
3
|
+
export const GroupAccordion = styled(Accordion, {
|
|
4
|
+
shouldForwardProp: (prop) => prop !== 'elevation' && prop !== 'isRepeated'
|
|
5
|
+
})(({ elevation, isRepeated }) => ({
|
|
6
|
+
paddingTop: '8px',
|
|
7
|
+
paddingBottom: '4px',
|
|
8
|
+
paddingLeft: elevation === 1 ? '10px' : '8px',
|
|
9
|
+
paddingRight: elevation === 1 ? '10px' : '8px',
|
|
10
|
+
marginBottom: isRepeated ? 0 : '28px'
|
|
11
|
+
}));
|
|
12
|
+
//# sourceMappingURL=GroupAccordion.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GroupAccordion.styles.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/GroupItem/GroupAccordion.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,SAAS,MAAM,yBAAyB,CAAC;AAEhD,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,EAAE;IAC9C,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,YAAY;CAC3E,CAAC,CAA6C,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7E,UAAU,EAAE,KAAK;IACjB,aAAa,EAAE,KAAK;IACpB,WAAW,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;IAC7C,YAAY,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;IAC9C,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;CACtC,CAAC,CAAC,CAAC"}
|
|
@@ -29,10 +29,11 @@ const GroupHeading = memo(function GroupHeading(props) {
|
|
|
29
29
|
}
|
|
30
30
|
const isTabHeading = tabIsMarkedAsComplete !== undefined;
|
|
31
31
|
return (React.createElement(React.Fragment, null,
|
|
32
|
-
React.createElement(Box, { display: "flex", alignItems: "center",
|
|
32
|
+
React.createElement(Box, { display: "flex", alignItems: "center", width: "100%" },
|
|
33
33
|
React.createElement(Typography, { variant: "h6", fontSize: isTabHeading ? 16 : 15, color: readOnly && !isTabHeading ? 'text.secondary' : 'text.primary' },
|
|
34
34
|
React.createElement(ItemLabelText, { qItem: qItem })),
|
|
35
|
-
React.createElement(Box, {
|
|
35
|
+
React.createElement(Box, { flexGrow: 1 }),
|
|
36
|
+
React.createElement(Box, { display: "flex", columnGap: 0.5, mx: 1 }, contextDisplayItems.map((item) => {
|
|
36
37
|
return React.createElement(ContextDisplayItem, { key: item.linkId, displayItem: item });
|
|
37
38
|
}))),
|
|
38
39
|
qItem.text ? React.createElement(Divider, { sx: { mt: 1, mb: 1.5 }, light: true }) : null));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupHeading.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/GroupItem/GroupHeading.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAGlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,kBAAkB,MAAM,iCAAiC,CAAC;AACjE,OAAO,aAAa,MAAM,4BAA4B,CAAC;AAQvD,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,YAAY,CAAC,KAAwB;IACtE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,qBAAqB,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAErE,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAEtD,IAAI,UAAU,EAAE;QACd,OAAO,IAAI,CAAC;KACb;IAED,MAAM,YAAY,GAAG,qBAAqB,KAAK,SAAS,CAAC;IAEzD,OAAO,CACL;QACE,oBAAC,GAAG,IAAC,OAAO,EAAC,MAAM,EAAC,UAAU,EAAC,QAAQ,EAAC,
|
|
1
|
+
{"version":3,"file":"GroupHeading.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/GroupItem/GroupHeading.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAGlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,kBAAkB,MAAM,iCAAiC,CAAC;AACjE,OAAO,aAAa,MAAM,4BAA4B,CAAC;AAQvD,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,YAAY,CAAC,KAAwB;IACtE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,qBAAqB,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAErE,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAEtD,IAAI,UAAU,EAAE;QACd,OAAO,IAAI,CAAC;KACb;IAED,MAAM,YAAY,GAAG,qBAAqB,KAAK,SAAS,CAAC;IAEzD,OAAO,CACL;QACE,oBAAC,GAAG,IAAC,OAAO,EAAC,MAAM,EAAC,UAAU,EAAC,QAAQ,EAAC,KAAK,EAAC,MAAM;YAClD,oBAAC,UAAU,IACT,OAAO,EAAC,IAAI,EACZ,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAChC,KAAK,EAAE,QAAQ,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,cAAc;gBACpE,oBAAC,aAAa,IAAC,KAAK,EAAE,KAAK,GAAI,CACpB;YACb,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,GAAI;YACpB,oBAAC,GAAG,IAAC,OAAO,EAAC,MAAM,EAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,IACtC,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAChC,OAAO,oBAAC,kBAAkB,IAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,GAAI,CAAC;YACrE,CAAC,CAAC,CACE,CACF;QACL,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAC,OAAO,IAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,SAAG,CAAC,CAAC,CAAC,IAAI,CAC7D,CACJ,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,eAAe,YAAY,CAAC"}
|
|
@@ -17,17 +17,11 @@
|
|
|
17
17
|
import React, { useMemo } from 'react';
|
|
18
18
|
import { getQrItemsIndex, mapQItemsIndex } from '../../../utils/mapItem';
|
|
19
19
|
import { createEmptyQrGroup, updateQrItemsInGroup } from '../../../utils/qrItem';
|
|
20
|
-
import { QGroupContainerBox } from '../../Box.styles';
|
|
21
20
|
import useHidden from '../../../hooks/useHidden';
|
|
22
|
-
import
|
|
23
|
-
import { GroupCard } from './GroupItem.styles';
|
|
24
|
-
import TabButtonsWrapper from './TabButtonsWrapper';
|
|
25
|
-
import GroupItemSwitcher from './GroupItemSwitcher';
|
|
26
|
-
import useReadOnly from '../../../hooks/useReadOnly';
|
|
21
|
+
import GroupItemView from './GroupItemView';
|
|
27
22
|
function GroupItem(props) {
|
|
28
23
|
const { qItem, qrItem, isRepeated, groupCardElevation, tabIsMarkedAsComplete, tabs, currentTabIndex, parentIsReadOnly, parentIsRepeatGroup, parentRepeatGroupIndex, onQrItemChange } = props;
|
|
29
24
|
const qItemsIndexMap = useMemo(() => mapQItemsIndex(qItem), [qItem]);
|
|
30
|
-
const readOnly = useReadOnly(qItem, parentIsReadOnly);
|
|
31
25
|
const itemIsHidden = useHidden(qItem, parentRepeatGroupIndex);
|
|
32
26
|
if (itemIsHidden) {
|
|
33
27
|
return null;
|
|
@@ -51,14 +45,7 @@ function GroupItem(props) {
|
|
|
51
45
|
}
|
|
52
46
|
// If an item has multiple answers, it is a repeat group
|
|
53
47
|
const qrItemsByIndex = getQrItemsIndex(qItems, qrItems, qItemsIndexMap);
|
|
54
|
-
return (React.createElement(
|
|
55
|
-
React.createElement(GroupCard, { elevation: groupCardElevation, isRepeated: isRepeated },
|
|
56
|
-
React.createElement(GroupHeading, { qItem: qItem, readOnly: readOnly, tabIsMarkedAsComplete: tabIsMarkedAsComplete, isRepeated: isRepeated }),
|
|
57
|
-
qItems.map((qItem, i) => {
|
|
58
|
-
const qrItemOrItems = qrItemsByIndex[i];
|
|
59
|
-
return (React.createElement(GroupItemSwitcher, { key: qItem.linkId, qItem: qItem, qrItemOrItems: qrItemOrItems, groupCardElevation: groupCardElevation, parentIsReadOnly: readOnly, parentIsRepeatGroup: parentIsRepeatGroup, parentRepeatGroupIndex: parentRepeatGroupIndex, onQrItemChange: handleQrItemChange, onQrRepeatGroupChange: handleQrRepeatGroupChange }));
|
|
60
|
-
}),
|
|
61
|
-
React.createElement(TabButtonsWrapper, { currentTabIndex: currentTabIndex, tabs: tabs }))));
|
|
48
|
+
return (React.createElement(GroupItemView, { qItem: qItem, childQItems: qItems, qrItemsByIndex: qrItemsByIndex, isRepeated: isRepeated, groupCardElevation: groupCardElevation, tabIsMarkedAsComplete: tabIsMarkedAsComplete, tabs: tabs, currentTabIndex: currentTabIndex, parentIsReadOnly: parentIsReadOnly, parentIsRepeatGroup: parentIsRepeatGroup, parentRepeatGroupIndex: parentRepeatGroupIndex, onQrItemChange: handleQrItemChange, onQrRepeatGroupChange: handleQrRepeatGroupChange }));
|
|
62
49
|
}
|
|
63
50
|
export default GroupItem;
|
|
64
51
|
//# sourceMappingURL=GroupItem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupItem.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/GroupItem/GroupItem.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAEzE,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"GroupItem.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/GroupItem/GroupItem.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAEzE,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAQjF,OAAO,SAAS,MAAM,0BAA0B,CAAC;AAEjD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAe5C,SAAS,SAAS,CAAC,KAAqB;IACtC,MAAM,EACJ,KAAK,EACL,MAAM,EACN,UAAU,EACV,kBAAkB,EAClB,qBAAqB,EACrB,IAAI,EACJ,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACf,GAAG,KAAK,CAAC;IAEV,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAErE,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;IAC9D,IAAI,YAAY,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;IAC1B,MAAM,OAAO,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC3E,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAE7B,iBAAiB;IACjB,SAAS,kBAAkB,CAAC,SAAoC;QAC9D,MAAM,cAAc,qBAAmC,OAAO,CAAE,CAAC;QACjE,oBAAoB,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;QACtE,cAAc,CAAC,cAAc,CAAC,CAAC;IACjC,CAAC;IAED,SAAS,yBAAyB,CAAC,aAA4B;QAC7D,MAAM,cAAc,qBAAmC,OAAO,CAAE,CAAC;QACjE,oBAAoB,CAAC,IAAI,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;QAC1E,cAAc,CAAC,cAAc,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE;QACvB,OAAO,qGAA6D,CAAC;KACtE;IAED,wDAAwD;IACxD,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAExE,OAAO,CACL,oBAAC,aAAa,IACZ,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,UAAU,EACtB,kBAAkB,EAAE,kBAAkB,EACtC,qBAAqB,EAAE,qBAAqB,EAC5C,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,EAAE,mBAAmB,EACxC,sBAAsB,EAAE,sBAAsB,EAC9C,cAAc,EAAE,kBAAkB,EAClC,qBAAqB,EAAE,yBAAyB,GAChD,CACH,CAAC;AACJ,CAAC;AAED,eAAe,SAAS,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
export declare const GroupCard: import("@emotion/styled").StyledComponent<import("@mui/material/Card").CardOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
3
3
|
ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
4
|
-
}, "style" | "children" | "className" | "sx" | "classes" | "
|
|
4
|
+
}, "style" | "children" | "className" | "sx" | "classes" | "elevation" | "variant" | "square" | "raised"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme> & {
|
|
5
5
|
elevation: number;
|
|
6
6
|
isRepeated: boolean;
|
|
7
7
|
}, {}, {}>;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { PropsWithParentIsReadOnlyAttribute, PropsWithQrItemChangeHandler, PropsWithQrRepeatGroupChangeHandler } from '../../../interfaces/renderProps.interface';
|
|
3
|
-
import type { PropsWithParentIsRepeatGroupAttribute } from '../../../interfaces/renderProps.interface';
|
|
2
|
+
import type { PropsWithParentIsReadOnlyAttribute, PropsWithParentIsRepeatGroupAttribute, PropsWithQrItemChangeHandler, PropsWithQrRepeatGroupChangeHandler } from '../../../interfaces/renderProps.interface';
|
|
4
3
|
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
5
4
|
interface GroupItemSwitcherProps extends PropsWithQrItemChangeHandler, PropsWithQrRepeatGroupChangeHandler, PropsWithParentIsReadOnlyAttribute, PropsWithParentIsRepeatGroupAttribute {
|
|
6
5
|
qItem: QuestionnaireItem;
|
|
@@ -47,7 +47,7 @@ function GroupItemSwitcher(props) {
|
|
|
47
47
|
const qrItem = qrItemOrItems;
|
|
48
48
|
const itemIsGrid = isSpecificItemControl(qItem, 'grid');
|
|
49
49
|
if (itemIsGrid) {
|
|
50
|
-
return (React.createElement(GridGroup, { qItem: qItem, qrItem: qrItem !== null && qrItem !== void 0 ? qrItem : null, groupCardElevation: groupCardElevation, parentIsReadOnly: parentIsReadOnly, onQrItemChange: onQrItemChange }));
|
|
50
|
+
return (React.createElement(GridGroup, { qItem: qItem, qrItem: qrItem !== null && qrItem !== void 0 ? qrItem : null, groupCardElevation: groupCardElevation + 1, parentIsReadOnly: parentIsReadOnly, onQrItemChange: onQrItemChange }));
|
|
51
51
|
}
|
|
52
52
|
const itemRepeatsAndIsNotCheckbox = isRepeatItemAndNotCheckbox(qItem);
|
|
53
53
|
if (itemRepeatsAndIsNotCheckbox) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupItemSwitcher.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/GroupItem/GroupItemSwitcher.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,UAAU,MAAM,sBAAsB,CAAC;AAC9C,OAAO,WAAW,MAAM,4BAA4B,CAAC;AACrD,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,SAAS,MAAM,0BAA0B,CAAC;AACjD,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAY/C,SAAS,iBAAiB,CAAC,KAA6B;IACtD,MAAM,EACJ,KAAK,EACL,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,qBAAqB,EACtB,GAAG,KAAK,CAAC;IAEV,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;IAC9D,IAAI,YAAY,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IAED,gCAAgC;IAChC,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACxD,IAAI,kBAAkB,EAAE;QACtB,MAAM,OAAO,GAAG,aAAa,CAAC;QAE9B,mEAAmE;QACnE,8EAA8E;QAC9E,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;YAC5C,OAAO,sEAA8B,CAAC;SACvC;QAED,IAAI,qBAAqB,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE;YAC1C,OAAO,CACL,oBAAC,UAAU,IACT,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,kBAAkB,EAAE,kBAAkB,GAAG,CAAC,EAC1C,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,qBAAqB,GAC5C,CACH,CAAC;SACH;QAED,OAAO,CACL,oBAAC,WAAW,IACV,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,kBAAkB,EAAE,kBAAkB,GAAG,CAAC,EAC1C,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,qBAAqB,GAC5C,CACH,CAAC;KACH;IAED,8BAA8B;IAC9B,MAAM,MAAM,GAAG,aAAa,CAAC;IAC7B,MAAM,UAAU,GAAG,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACxD,IAAI,UAAU,EAAE;QACd,OAAO,CACL,oBAAC,SAAS,IACR,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,IAAI,EACtB,kBAAkB,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"GroupItemSwitcher.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/GroupItem/GroupItemSwitcher.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
3
|
+
import type { PropsWithIsRepeatedAttribute, PropsWithParentIsReadOnlyAttribute, PropsWithParentIsRepeatGroupAttribute, PropsWithQrItemChangeHandler } from '../../../interfaces/renderProps.interface';
|
|
4
|
+
import { PropsWithQrRepeatGroupChangeHandler } from '../../../interfaces/renderProps.interface';
|
|
5
|
+
import type { Tabs } from '../../../interfaces/tab.interface';
|
|
6
|
+
interface GroupItemViewProps extends PropsWithQrItemChangeHandler, PropsWithQrRepeatGroupChangeHandler, PropsWithIsRepeatedAttribute, PropsWithParentIsReadOnlyAttribute, PropsWithParentIsRepeatGroupAttribute {
|
|
7
|
+
qItem: QuestionnaireItem;
|
|
8
|
+
childQItems: QuestionnaireItem[];
|
|
9
|
+
qrItemsByIndex: (QuestionnaireResponseItem | QuestionnaireResponseItem[] | undefined)[];
|
|
10
|
+
groupCardElevation: number;
|
|
11
|
+
tabIsMarkedAsComplete?: boolean;
|
|
12
|
+
tabs?: Tabs;
|
|
13
|
+
currentTabIndex?: number;
|
|
14
|
+
}
|
|
15
|
+
declare function GroupItemView(props: GroupItemViewProps): React.JSX.Element;
|
|
16
|
+
export default GroupItemView;
|
|
@@ -0,0 +1,62 @@
|
|
|
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 React from 'react';
|
|
18
|
+
import { QGroupContainerBox } from '../../Box.styles';
|
|
19
|
+
import GroupHeading from './GroupHeading';
|
|
20
|
+
import { GroupCard } from './GroupItem.styles';
|
|
21
|
+
import TabButtonsWrapper from './TabButtonsWrapper';
|
|
22
|
+
import GroupItemSwitcher from './GroupItemSwitcher';
|
|
23
|
+
import AccordionSummary from '@mui/material/AccordionSummary';
|
|
24
|
+
import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
|
|
25
|
+
import AccordionDetails from '@mui/material/AccordionDetails';
|
|
26
|
+
import Divider from '@mui/material/Divider';
|
|
27
|
+
import { getGroupCollapsible } from '../../../utils/qItem';
|
|
28
|
+
import useReadOnly from '../../../hooks/useReadOnly';
|
|
29
|
+
import { GroupAccordion } from './GroupAccordion.styles';
|
|
30
|
+
function GroupItemView(props) {
|
|
31
|
+
const { qItem, childQItems, qrItemsByIndex, isRepeated, groupCardElevation, tabIsMarkedAsComplete, tabs, currentTabIndex, parentIsReadOnly, parentIsRepeatGroup, parentRepeatGroupIndex, onQrItemChange, onQrRepeatGroupChange } = props;
|
|
32
|
+
const readOnly = useReadOnly(qItem, parentIsReadOnly);
|
|
33
|
+
// Render collapsible group item
|
|
34
|
+
// If group item is a repeating instance, do not render group item as collapsible
|
|
35
|
+
const groupIsCollapsible = getGroupCollapsible(qItem);
|
|
36
|
+
if (groupIsCollapsible && !isRepeated) {
|
|
37
|
+
const isDefaultOpen = groupIsCollapsible === 'default-open';
|
|
38
|
+
return (React.createElement(GroupAccordion, { disableGutters: true, defaultExpanded: isDefaultOpen, elevation: groupCardElevation, isRepeated: isRepeated, slotProps: {
|
|
39
|
+
transition: { unmountOnExit: true, timeout: 250 }
|
|
40
|
+
} },
|
|
41
|
+
React.createElement(AccordionSummary, { expandIcon: React.createElement(ExpandMoreIcon, null), sx: { minHeight: '28px' } },
|
|
42
|
+
React.createElement(GroupHeading, { qItem: qItem, readOnly: readOnly, tabIsMarkedAsComplete: tabIsMarkedAsComplete, isRepeated: isRepeated })),
|
|
43
|
+
React.createElement(AccordionDetails, { sx: { pt: 0 } },
|
|
44
|
+
qItem.text ? React.createElement(Divider, { sx: { mb: 1.5 }, light: true }) : null,
|
|
45
|
+
React.createElement(React.Fragment, null,
|
|
46
|
+
childQItems.map((qItem, i) => {
|
|
47
|
+
const qrItemOrItems = qrItemsByIndex[i];
|
|
48
|
+
return (React.createElement(GroupItemSwitcher, { key: qItem.linkId, qItem: qItem, qrItemOrItems: qrItemOrItems, groupCardElevation: groupCardElevation, parentIsReadOnly: readOnly, parentIsRepeatGroup: parentIsRepeatGroup, parentRepeatGroupIndex: parentRepeatGroupIndex, onQrItemChange: onQrItemChange, onQrRepeatGroupChange: onQrRepeatGroupChange }));
|
|
49
|
+
}),
|
|
50
|
+
React.createElement(TabButtonsWrapper, { currentTabIndex: currentTabIndex, tabs: tabs })))));
|
|
51
|
+
}
|
|
52
|
+
return (React.createElement(QGroupContainerBox, { cardElevation: groupCardElevation, isRepeated: isRepeated, "data-test": "q-item-group-box" },
|
|
53
|
+
React.createElement(GroupCard, { elevation: groupCardElevation, isRepeated: isRepeated },
|
|
54
|
+
React.createElement(GroupHeading, { qItem: qItem, readOnly: readOnly, tabIsMarkedAsComplete: tabIsMarkedAsComplete, isRepeated: isRepeated }),
|
|
55
|
+
childQItems.map((qItem, i) => {
|
|
56
|
+
const qrItemOrItems = qrItemsByIndex[i];
|
|
57
|
+
return (React.createElement(GroupItemSwitcher, { key: qItem.linkId, qItem: qItem, qrItemOrItems: qrItemOrItems, groupCardElevation: groupCardElevation, parentIsReadOnly: readOnly, parentIsRepeatGroup: parentIsRepeatGroup, parentRepeatGroupIndex: parentRepeatGroupIndex, onQrItemChange: onQrItemChange, onQrRepeatGroupChange: onQrRepeatGroupChange }));
|
|
58
|
+
}),
|
|
59
|
+
React.createElement(TabButtonsWrapper, { currentTabIndex: currentTabIndex, tabs: tabs }))));
|
|
60
|
+
}
|
|
61
|
+
export default GroupItemView;
|
|
62
|
+
//# sourceMappingURL=GroupItemView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GroupItemView.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/GroupItem/GroupItemView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -16,22 +16,26 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import React, { memo } from 'react';
|
|
18
18
|
import { getMarkdownString, getXHtmlString } from '../../../utils/itemControl';
|
|
19
|
-
import
|
|
19
|
+
import { default as htmlParse } from 'html-react-parser';
|
|
20
20
|
import Box from '@mui/material/Box';
|
|
21
21
|
import ReactMarkdown from 'react-markdown';
|
|
22
22
|
import Typography from '@mui/material/Typography';
|
|
23
23
|
import useDisplayCqfAndCalculatedExpression from '../../../hooks/useDisplayCqfAndCalculatedExpression';
|
|
24
|
+
import { structuredDataCapture } from 'fhir-sdc-helpers';
|
|
25
|
+
import { default as styleParse } from 'style-to-js';
|
|
24
26
|
const ItemLabelText = memo(function ItemLabelText(props) {
|
|
27
|
+
var _a, _b;
|
|
25
28
|
const { qItem, readOnly } = props;
|
|
29
|
+
let labelText = (_a = qItem.text) !== null && _a !== void 0 ? _a : '';
|
|
26
30
|
// Use calculatedExpressionString if available
|
|
27
|
-
const calculatedExpressionString = useDisplayCqfAndCalculatedExpression(qItem);
|
|
31
|
+
const calculatedExpressionString = (_b = useDisplayCqfAndCalculatedExpression(qItem)) !== null && _b !== void 0 ? _b : '';
|
|
28
32
|
if (calculatedExpressionString) {
|
|
29
|
-
|
|
33
|
+
labelText = calculatedExpressionString;
|
|
30
34
|
}
|
|
31
35
|
// parse xHTML if found
|
|
32
36
|
const xHtmlString = getXHtmlString(qItem);
|
|
33
37
|
if (xHtmlString) {
|
|
34
|
-
return React.createElement(Box, null,
|
|
38
|
+
return React.createElement(Box, null, htmlParse(xHtmlString));
|
|
35
39
|
}
|
|
36
40
|
// parse markdown if found
|
|
37
41
|
const markdownString = getMarkdownString(qItem);
|
|
@@ -39,11 +43,21 @@ const ItemLabelText = memo(function ItemLabelText(props) {
|
|
|
39
43
|
return (React.createElement(Box, null,
|
|
40
44
|
React.createElement(ReactMarkdown, null, markdownString)));
|
|
41
45
|
}
|
|
46
|
+
// labelText is empty, return null
|
|
47
|
+
if (!labelText) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
// parse styles if found
|
|
51
|
+
const stylesString = structuredDataCapture.getStyle(qItem._text);
|
|
52
|
+
if (stylesString) {
|
|
53
|
+
const styles = styleParse(stylesString);
|
|
54
|
+
return React.createElement("div", { style: styles }, labelText);
|
|
55
|
+
}
|
|
42
56
|
if (qItem.type === 'group') {
|
|
43
|
-
return React.createElement(React.Fragment, null,
|
|
57
|
+
return React.createElement(React.Fragment, null, labelText);
|
|
44
58
|
}
|
|
45
59
|
// parse regular text
|
|
46
|
-
return (React.createElement(Typography, { color: readOnly ? 'text.disabled' : 'text.primary', sx: { mt: 0.25 } },
|
|
60
|
+
return (React.createElement(Typography, { color: readOnly ? 'text.disabled' : 'text.primary', sx: { mt: 0.25 } }, labelText));
|
|
47
61
|
});
|
|
48
62
|
export default ItemLabelText;
|
|
49
63
|
//# sourceMappingURL=ItemLabelText.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemLabelText.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ItemParts/ItemLabelText.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,
|
|
1
|
+
{"version":3,"file":"ItemLabelText.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ItemParts/ItemLabelText.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,aAAa,MAAM,gBAAgB,CAAC;AAC3C,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,oCAAoC,MAAM,qDAAqD,CAAC;AACvG,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC;AAOpD,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,aAAa,CAAC,KAAyB;;IACzE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAElC,IAAI,SAAS,GAAG,MAAA,KAAK,CAAC,IAAI,mCAAI,EAAE,CAAC;IAEjC,8CAA8C;IAC9C,MAAM,0BAA0B,GAAG,MAAA,oCAAoC,CAAC,KAAK,CAAC,mCAAI,EAAE,CAAC;IACrF,IAAI,0BAA0B,EAAE;QAC9B,SAAS,GAAG,0BAA0B,CAAC;KACxC;IAED,uBAAuB;IACvB,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,WAAW,EAAE;QACf,OAAO,oBAAC,GAAG,QAAE,SAAS,CAAC,WAAW,CAAC,CAAO,CAAC;KAC5C;IAED,0BAA0B;IAC1B,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,cAAc,EAAE;QAClB,OAAO,CACL,oBAAC,GAAG;YACF,oBAAC,aAAa,QAAE,cAAc,CAAiB,CAC3C,CACP,CAAC;KACH;IAED,kCAAkC;IAClC,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,CAAC;KACb;IAED,wBAAwB;IACxB,MAAM,YAAY,GAAG,qBAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjE,IAAI,YAAY,EAAE;QAChB,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;QACxC,OAAO,6BAAK,KAAK,EAAE,MAAM,IAAG,SAAS,CAAO,CAAC;KAC9C;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;QAC1B,OAAO,0CAAG,SAAS,CAAI,CAAC;KACzB;IAED,qBAAqB;IACrB,OAAO,CACL,oBAAC,UAAU,IAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAC7E,SAAS,CACC,CACd,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,eAAe,aAAa,CAAC"}
|
|
@@ -22,6 +22,7 @@ import ItemLabelText from './ItemLabelText';
|
|
|
22
22
|
import Tooltip from '@mui/material/Tooltip';
|
|
23
23
|
import Typography from '@mui/material/Typography';
|
|
24
24
|
import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
|
|
25
|
+
import Iconify from '../../Iconify/Iconify';
|
|
25
26
|
function ItemLabelWrapper(props) {
|
|
26
27
|
const { qItem, readOnly } = props;
|
|
27
28
|
const { required, displayFlyover } = useRenderingExtensions(qItem);
|
|
@@ -40,9 +41,10 @@ function ItemLabelWrapper(props) {
|
|
|
40
41
|
}
|
|
41
42
|
} },
|
|
42
43
|
React.createElement("span", null,
|
|
43
|
-
React.createElement(Box, { display: "flex", columnGap: 0.4, justifyContent: "space-between" },
|
|
44
|
+
React.createElement(Box, { display: "flex", columnGap: 0.4, justifyContent: "space-between", alignItems: "center" },
|
|
44
45
|
required ? (React.createElement(Typography, { color: "red", sx: { ml: -1.15 } }, "*")) : null,
|
|
45
|
-
React.createElement(ItemLabelText, { qItem: qItem, readOnly: readOnly })
|
|
46
|
+
React.createElement(ItemLabelText, { qItem: qItem, readOnly: readOnly }),
|
|
47
|
+
displayFlyover !== '' ? (React.createElement(Iconify, { icon: "mdi:information-outline", sx: { height: 16, width: 16, mt: 0.25, ml: 0.25, color: 'text.secondary' } })) : null))),
|
|
46
48
|
React.createElement(Box, { display: "flex", columnGap: 0.5 }, contextDisplayItems.map((item) => {
|
|
47
49
|
return React.createElement(ContextDisplayItem, { key: item.linkId, displayItem: item });
|
|
48
50
|
}))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemLabelWrapper.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ItemParts/ItemLabelWrapper.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,sBAAsB,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"ItemLabelWrapper.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ItemParts/ItemLabelWrapper.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,sBAAsB,MAAM,uCAAuC,CAAC;AAC3E,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAO5C,SAAS,gBAAgB,CAAC,KAAwB;IAChD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAElC,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACnE,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAEtD,OAAO,CACL,oBAAC,GAAG,IAAC,OAAO,EAAC,MAAM,EAAC,UAAU,EAAC,QAAQ,EAAC,cAAc,EAAC,eAAe;QACpE,oBAAC,OAAO,IACN,KAAK,EAAE,cAAc,EACrB,SAAS,EAAC,KAAK,EACf,SAAS,EAAE;gBACT,MAAM,EAAE;oBACN,SAAS,EAAE;wBACT;4BACE,IAAI,EAAE,QAAQ;4BACd,OAAO,EAAE;gCACP,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;6BAChB;yBACF;qBACF;iBACF;aACF;YACD;gBACE,oBAAC,GAAG,IAAC,OAAO,EAAC,MAAM,EAAC,SAAS,EAAE,GAAG,EAAE,cAAc,EAAC,eAAe,EAAC,UAAU,EAAC,QAAQ;oBACnF,QAAQ,CAAC,CAAC,CAAC,CACV,oBAAC,UAAU,IAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,QAE5B,CACd,CAAC,CAAC,CAAC,IAAI;oBACR,oBAAC,aAAa,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAI;oBAClD,cAAc,KAAK,EAAE,CAAC,CAAC,CAAC,CACvB,oBAAC,OAAO,IACN,IAAI,EAAC,yBAAyB,EAC9B,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAC1E,CACH,CAAC,CAAC,CAAC,IAAI,CACJ,CACD,CACC;QAEV,oBAAC,GAAG,IAAC,OAAO,EAAC,MAAM,EAAC,SAAS,EAAE,GAAG,IAC/B,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAChC,OAAO,oBAAC,kBAAkB,IAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,GAAI,CAAC;QACrE,CAAC,CAAC,CACE,CACF,CACP,CAAC;AACJ,CAAC;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -16,21 +16,11 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import React from 'react';
|
|
18
18
|
import useInitialiseRepeatGroups from '../../../hooks/useInitialiseRepeatGroups';
|
|
19
|
-
import { QGroupContainerBox } from '../../Box.styles';
|
|
20
|
-
import Card from '@mui/material/Card';
|
|
21
|
-
import Collapse from '@mui/material/Collapse';
|
|
22
|
-
import Divider from '@mui/material/Divider';
|
|
23
|
-
import { TransitionGroup } from 'react-transition-group';
|
|
24
|
-
import { createEmptyQrItem } from '../../../utils/qrItem';
|
|
25
19
|
import { nanoid } from 'nanoid';
|
|
26
|
-
import RepeatGroupItem from './RepeatGroupItem';
|
|
27
|
-
import AddItemButton from './AddItemButton';
|
|
28
|
-
import LabelWrapper from '../ItemParts/ItemLabelWrapper';
|
|
29
20
|
import cloneDeep from 'lodash.clonedeep';
|
|
30
|
-
import useReadOnly from '../../../hooks/useReadOnly';
|
|
31
|
-
import Typography from '@mui/material/Typography';
|
|
32
21
|
import { useQuestionnaireStore } from '../../../stores';
|
|
33
22
|
import useRepeatGroups from '../../../hooks/useRepeatGroups';
|
|
23
|
+
import RepeatGroupView from './RepeatGroupView';
|
|
34
24
|
/**
|
|
35
25
|
* Main component to render a repeating, group Questionnaire item.
|
|
36
26
|
* Store and manages the state of multiple instances of GroupItem in a repeating group.
|
|
@@ -40,7 +30,6 @@ import useRepeatGroups from '../../../hooks/useRepeatGroups';
|
|
|
40
30
|
function RepeatGroup(props) {
|
|
41
31
|
const { qItem, qrItems, groupCardElevation, showMinimalView, parentIsReadOnly, onQrRepeatGroupChange } = props;
|
|
42
32
|
const mutateRepeatEnableWhenItems = useQuestionnaireStore.use.mutateRepeatEnableWhenItems();
|
|
43
|
-
const readOnly = useReadOnly(qItem, parentIsReadOnly);
|
|
44
33
|
const initialRepeatGroups = useInitialiseRepeatGroups(qItem, qrItems);
|
|
45
34
|
const [repeatGroups, setRepeatGroups] = useRepeatGroups(initialRepeatGroups);
|
|
46
35
|
function handleAnswerChange(newQrItem, index) {
|
|
@@ -80,31 +69,7 @@ function RepeatGroup(props) {
|
|
|
80
69
|
}
|
|
81
70
|
]);
|
|
82
71
|
}
|
|
83
|
-
|
|
84
|
-
return (React.createElement(QGroupContainerBox, { key: qItem.linkId, cardElevation: groupCardElevation, isRepeated: true },
|
|
85
|
-
React.createElement(Card, { elevation: groupCardElevation, sx: { p: 2 } }, repeatGroups.map(({ nanoId, qrItem: nullableQrItem }, index) => {
|
|
86
|
-
const answeredQrItem = createEmptyQrItem(qItem);
|
|
87
|
-
if (nullableQrItem) {
|
|
88
|
-
answeredQrItem.item = nullableQrItem.item;
|
|
89
|
-
}
|
|
90
|
-
return (React.createElement(RepeatGroupItem, { key: nanoId, qItem: qItem, repeatGroupIndex: index, answeredQrItem: answeredQrItem, nullableQrItem: nullableQrItem, numOfRepeatGroups: repeatGroups.length, groupCardElevation: groupCardElevation + 1, showMinimalView: showMinimalView, parentIsReadOnly: parentIsReadOnly, onDeleteItem: () => handleDeleteItem(index), onQrItemChange: (newQrItem) => handleAnswerChange(newQrItem, index) }));
|
|
91
|
-
}))));
|
|
92
|
-
}
|
|
93
|
-
return (React.createElement(QGroupContainerBox, { key: qItem.linkId, cardElevation: groupCardElevation, isRepeated: true },
|
|
94
|
-
React.createElement(Card, { elevation: groupCardElevation, sx: { p: 3, py: 2.5, mb: 3.5 } },
|
|
95
|
-
qItem.text ? (React.createElement(React.Fragment, null,
|
|
96
|
-
React.createElement(Typography, { variant: "h6", color: readOnly ? 'text.secondary' : 'text.primary' },
|
|
97
|
-
React.createElement(LabelWrapper, { qItem: qItem, readOnly: readOnly })),
|
|
98
|
-
React.createElement(Divider, { sx: { mt: 1, mb: 1.5 }, light: true }))) : null,
|
|
99
|
-
React.createElement(TransitionGroup, null, repeatGroups.map(({ nanoId, qrItem: nullableQrItem }, index) => {
|
|
100
|
-
const answeredQrItem = createEmptyQrItem(qItem);
|
|
101
|
-
if (nullableQrItem) {
|
|
102
|
-
answeredQrItem.item = nullableQrItem.item;
|
|
103
|
-
}
|
|
104
|
-
return (React.createElement(Collapse, { key: nanoId, timeout: 200 },
|
|
105
|
-
React.createElement(RepeatGroupItem, { qItem: qItem, repeatGroupIndex: index, answeredQrItem: answeredQrItem, nullableQrItem: nullableQrItem, numOfRepeatGroups: repeatGroups.length, groupCardElevation: groupCardElevation + 1, parentIsReadOnly: parentIsReadOnly, onDeleteItem: () => handleDeleteItem(index), onQrItemChange: (newQrItem) => handleAnswerChange(newQrItem, index) })));
|
|
106
|
-
})),
|
|
107
|
-
React.createElement(AddItemButton, { repeatGroups: repeatGroups, readOnly: readOnly, onAddItem: handleAddItem }))));
|
|
72
|
+
return (React.createElement(RepeatGroupView, { qItem: qItem, repeatGroups: repeatGroups, groupCardElevation: groupCardElevation, showMinimalView: showMinimalView, parentIsReadOnly: parentIsReadOnly, onAnswerChange: handleAnswerChange, onAddItem: handleAddItem, onDeleteItem: handleDeleteItem }));
|
|
108
73
|
}
|
|
109
74
|
export default RepeatGroup;
|
|
110
75
|
//# sourceMappingURL=RepeatGroup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RepeatGroup.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/RepeatGroup/RepeatGroup.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,yBAAyB,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"RepeatGroup.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/RepeatGroup/RepeatGroup.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { PropsWithParentIsReadOnlyAttribute, PropsWithParentIsRepeatGroupAttribute, PropsWithShowMinimalViewAttribute } from '../../../interfaces/renderProps.interface';
|
|
3
|
+
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
4
|
+
import type { RepeatGroupSingle } from '../../../interfaces/repeatGroup.interface';
|
|
5
|
+
interface RepeatGroupViewProps extends PropsWithShowMinimalViewAttribute, PropsWithParentIsReadOnlyAttribute, PropsWithParentIsRepeatGroupAttribute {
|
|
6
|
+
qItem: QuestionnaireItem;
|
|
7
|
+
repeatGroups: RepeatGroupSingle[];
|
|
8
|
+
groupCardElevation: number;
|
|
9
|
+
onAnswerChange: (newQrItem: QuestionnaireResponseItem, index: number) => void;
|
|
10
|
+
onAddItem: () => void;
|
|
11
|
+
onDeleteItem: (index: number) => void;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Main component to render a repeating, group Questionnaire item.
|
|
15
|
+
* Store and manages the state of multiple instances of GroupItem in a repeating group.
|
|
16
|
+
*
|
|
17
|
+
* @author Sean Fong
|
|
18
|
+
*/
|
|
19
|
+
declare function RepeatGroupView(props: RepeatGroupViewProps): React.JSX.Element;
|
|
20
|
+
export default RepeatGroupView;
|
|
@@ -0,0 +1,91 @@
|
|
|
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 React from 'react';
|
|
18
|
+
import { QGroupContainerBox } from '../../Box.styles';
|
|
19
|
+
import Card from '@mui/material/Card';
|
|
20
|
+
import Collapse from '@mui/material/Collapse';
|
|
21
|
+
import Divider from '@mui/material/Divider';
|
|
22
|
+
import { TransitionGroup } from 'react-transition-group';
|
|
23
|
+
import { createEmptyQrItem } from '../../../utils/qrItem';
|
|
24
|
+
import RepeatGroupItem from './RepeatGroupItem';
|
|
25
|
+
import AddItemButton from './AddItemButton';
|
|
26
|
+
import LabelWrapper from '../ItemParts/ItemLabelWrapper';
|
|
27
|
+
import Typography from '@mui/material/Typography';
|
|
28
|
+
import useReadOnly from '../../../hooks/useReadOnly';
|
|
29
|
+
import { getGroupCollapsible } from '../../../utils/qItem';
|
|
30
|
+
import { GroupAccordion } from '../GroupItem/GroupAccordion.styles';
|
|
31
|
+
import AccordionSummary from '@mui/material/AccordionSummary';
|
|
32
|
+
import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
|
|
33
|
+
import AccordionDetails from '@mui/material/AccordionDetails';
|
|
34
|
+
/**
|
|
35
|
+
* Main component to render a repeating, group Questionnaire item.
|
|
36
|
+
* Store and manages the state of multiple instances of GroupItem in a repeating group.
|
|
37
|
+
*
|
|
38
|
+
* @author Sean Fong
|
|
39
|
+
*/
|
|
40
|
+
function RepeatGroupView(props) {
|
|
41
|
+
const { qItem, repeatGroups, groupCardElevation, showMinimalView, parentIsReadOnly, onAnswerChange, onAddItem, onDeleteItem } = props;
|
|
42
|
+
const readOnly = useReadOnly(qItem, parentIsReadOnly);
|
|
43
|
+
if (showMinimalView) {
|
|
44
|
+
return (React.createElement(QGroupContainerBox, { key: qItem.linkId, cardElevation: groupCardElevation, isRepeated: true },
|
|
45
|
+
React.createElement(Card, { elevation: groupCardElevation, sx: { p: 2 } }, repeatGroups.map(({ nanoId, qrItem: nullableQrItem }, index) => {
|
|
46
|
+
const answeredQrItem = createEmptyQrItem(qItem);
|
|
47
|
+
if (nullableQrItem) {
|
|
48
|
+
answeredQrItem.item = nullableQrItem.item;
|
|
49
|
+
}
|
|
50
|
+
return (React.createElement(RepeatGroupItem, { key: nanoId, qItem: qItem, repeatGroupIndex: index, answeredQrItem: answeredQrItem, nullableQrItem: nullableQrItem, numOfRepeatGroups: repeatGroups.length, groupCardElevation: groupCardElevation + 1, showMinimalView: showMinimalView, parentIsReadOnly: parentIsReadOnly, onDeleteItem: () => onDeleteItem(index), onQrItemChange: (newQrItem) => onAnswerChange(newQrItem, index) }));
|
|
51
|
+
}))));
|
|
52
|
+
}
|
|
53
|
+
const groupIsCollapsible = getGroupCollapsible(qItem);
|
|
54
|
+
if (groupIsCollapsible) {
|
|
55
|
+
const isDefaultOpen = groupIsCollapsible === 'default-open';
|
|
56
|
+
return (React.createElement(GroupAccordion, { disableGutters: true, defaultExpanded: isDefaultOpen, elevation: groupCardElevation, isRepeated: true, slotProps: {
|
|
57
|
+
transition: { unmountOnExit: true, timeout: 250 }
|
|
58
|
+
} },
|
|
59
|
+
React.createElement(AccordionSummary, { expandIcon: React.createElement(ExpandMoreIcon, null), sx: { minHeight: '28px' } }, qItem.text ? (React.createElement(React.Fragment, null,
|
|
60
|
+
React.createElement(Typography, { variant: "h6", color: readOnly ? 'text.secondary' : 'text.primary' },
|
|
61
|
+
React.createElement(LabelWrapper, { qItem: qItem, readOnly: readOnly })))) : null),
|
|
62
|
+
React.createElement(AccordionDetails, { sx: { pt: 0 } },
|
|
63
|
+
qItem.text ? React.createElement(Divider, { sx: { mb: 1.5 }, light: true }) : null,
|
|
64
|
+
React.createElement(TransitionGroup, null, repeatGroups.map(({ nanoId, qrItem: nullableQrItem }, index) => {
|
|
65
|
+
const answeredQrItem = createEmptyQrItem(qItem);
|
|
66
|
+
if (nullableQrItem) {
|
|
67
|
+
answeredQrItem.item = nullableQrItem.item;
|
|
68
|
+
}
|
|
69
|
+
return (React.createElement(Collapse, { key: nanoId, timeout: 200 },
|
|
70
|
+
React.createElement(RepeatGroupItem, { qItem: qItem, repeatGroupIndex: index, answeredQrItem: answeredQrItem, nullableQrItem: nullableQrItem, numOfRepeatGroups: repeatGroups.length, groupCardElevation: groupCardElevation + 1, parentIsReadOnly: parentIsReadOnly, onDeleteItem: () => onDeleteItem(index), onQrItemChange: (newQrItem) => onAnswerChange(newQrItem, index) })));
|
|
71
|
+
})),
|
|
72
|
+
React.createElement(AddItemButton, { repeatGroups: repeatGroups, readOnly: readOnly, onAddItem: onAddItem }))));
|
|
73
|
+
}
|
|
74
|
+
return (React.createElement(QGroupContainerBox, { key: qItem.linkId, cardElevation: groupCardElevation, isRepeated: true },
|
|
75
|
+
React.createElement(Card, { elevation: groupCardElevation, sx: { p: 3, py: 2.5, mb: 3.5 } },
|
|
76
|
+
qItem.text ? (React.createElement(React.Fragment, null,
|
|
77
|
+
React.createElement(Typography, { variant: "h6", color: readOnly ? 'text.secondary' : 'text.primary' },
|
|
78
|
+
React.createElement(LabelWrapper, { qItem: qItem, readOnly: readOnly })),
|
|
79
|
+
React.createElement(Divider, { sx: { mt: 1, mb: 1.5 }, light: true }))) : null,
|
|
80
|
+
React.createElement(TransitionGroup, null, repeatGroups.map(({ nanoId, qrItem: nullableQrItem }, index) => {
|
|
81
|
+
const answeredQrItem = createEmptyQrItem(qItem);
|
|
82
|
+
if (nullableQrItem) {
|
|
83
|
+
answeredQrItem.item = nullableQrItem.item;
|
|
84
|
+
}
|
|
85
|
+
return (React.createElement(Collapse, { key: nanoId, timeout: 200 },
|
|
86
|
+
React.createElement(RepeatGroupItem, { qItem: qItem, repeatGroupIndex: index, answeredQrItem: answeredQrItem, nullableQrItem: nullableQrItem, numOfRepeatGroups: repeatGroups.length, groupCardElevation: groupCardElevation + 1, parentIsReadOnly: parentIsReadOnly, onDeleteItem: () => onDeleteItem(index), onQrItemChange: (newQrItem) => onAnswerChange(newQrItem, index) })));
|
|
87
|
+
})),
|
|
88
|
+
React.createElement(AddItemButton, { repeatGroups: repeatGroups, readOnly: readOnly, onAddItem: onAddItem }))));
|
|
89
|
+
}
|
|
90
|
+
export default RepeatGroupView;
|
|
91
|
+
//# sourceMappingURL=RepeatGroupView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RepeatGroupView.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/RepeatGroup/RepeatGroupView.tsx"],"names":[],"mappings":"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"}
|