@aehrc/smart-forms-renderer 1.2.7 → 1.2.8

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.
@@ -36,7 +36,7 @@ const GroupHeading = memo(function GroupHeading(props) {
36
36
  // Get text color from parent styles if available
37
37
  const textColor = parentStyles?.color ||
38
38
  (readOnly && (!isTabHeading || !isPageHeading) ? 'text.secondary' : 'text.primary');
39
- return (_jsx(_Fragment, { children: _jsxs(Box, { display: "flex", alignItems: "center", width: "100%", children: [_jsxs(Box, { position: "relative", display: "flex", flexGrow: 1, alignItems: "center", children: [required && requiredIndicatorPosition === 'start' ? (_jsx(RequiredAsterisk, { sx: { position: 'absolute', top: 0, left: -8 }, children: "*" })) : null, _jsxs(Typography, { component: getHeadingTag(groupCardElevation), variant: "groupHeading", color: textColor, display: "flex", alignItems: "center", sx: { flexGrow: 1, ...(parentStyles || {}) }, children: [_jsx(ItemTextSwitcher, { qItem: qItem }), required && requiredIndicatorPosition === 'end' ? (_jsx(RequiredAsterisk, { readOnly: readOnly, variant: "groupHeading", children: "*" })) : null, displayFlyover !== '' ? (_jsx(Typography, { component: "span", sx: { ml: 0.75 }, children: _jsx(FlyoverItem, { displayFlyover: displayFlyover, readOnly: readOnly }) })) : null] })] }), _jsx(Box, { display: "flex", columnGap: 0.5, children: contextDisplayItems.map((item) => {
39
+ return (_jsx(_Fragment, { children: _jsxs(Box, { display: "flex", alignItems: "center", width: "100%", children: [_jsx(Box, { position: "relative", display: "flex", flexGrow: 1, alignItems: "center", children: _jsxs(Typography, { component: getHeadingTag(groupCardElevation), variant: "groupHeading", color: textColor, display: "flex", alignItems: "center", sx: { flexGrow: 1, ...(parentStyles || {}) }, children: [required && requiredIndicatorPosition === 'start' ? (_jsx(RequiredAsterisk, { sx: { position: 'absolute', top: 0, left: -8 }, children: "*" })) : null, _jsx(ItemTextSwitcher, { qItem: qItem }), required && requiredIndicatorPosition === 'end' ? (_jsx(RequiredAsterisk, { readOnly: readOnly, variant: "groupHeading", children: "*" })) : null, displayFlyover !== '' ? (_jsx(Typography, { component: "span", sx: { ml: 0.75 }, children: _jsx(FlyoverItem, { displayFlyover: displayFlyover, readOnly: readOnly }) })) : null] }) }), _jsx(Box, { display: "flex", columnGap: 0.5, children: contextDisplayItems.map((item) => {
40
40
  return _jsx(ContextDisplayItem, { displayItem: item }, item.linkId);
41
41
  }) })] }) }));
42
42
  });
@@ -1 +1 @@
1
- {"version":3,"file":"GroupHeading.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/GroupItem/GroupHeading.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GroupHeading.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/GroupItem/GroupHeading.tsx"],"names":[],"mappings":"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"}
@@ -24,10 +24,15 @@ import { useQuestionnaireStore, useRendererConfigStore } from '../../stores';
24
24
  import ContextDisplayItem from '../FormComponents/ItemParts/ContextDisplayItem';
25
25
  import { useFocusTabHeading } from '../../hooks/useFocusTabHeading';
26
26
  import useDisplayCqfAndCalculatedExpression from '../../hooks/useDisplayCqfAndCalculatedExpression';
27
+ import RequiredAsterisk from '../FormComponents/ItemParts/RequiredAsterisk';
28
+ import useRenderingExtensions from '../../hooks/useRenderingExtensions';
27
29
  const FormBodySingleTab = memo(function FormBodySingleTab(props) {
28
30
  const { qItem, contextDisplayItems, selected, tabLabel, listIndex } = props;
29
31
  const switchTab = useQuestionnaireStore.use.switchTab();
30
32
  const disableHeadingFocusOnTabSwitch = useRendererConfigStore.use.disableHeadingFocusOnTabSwitch();
33
+ const requiredIndicatorPosition = useRendererConfigStore.use.requiredIndicatorPosition();
34
+ const { required } = useRenderingExtensions(qItem);
35
+ const readOnly = qItem.readOnly ?? false;
31
36
  const focusHeading = useFocusTabHeading();
32
37
  // Get aria-label text if available
33
38
  const itemTextAriaLabel = useDisplayCqfAndCalculatedExpression(qItem, 'item._text.aria-label') ?? undefined;
@@ -41,7 +46,7 @@ const FormBodySingleTab = memo(function FormBodySingleTab(props) {
41
46
  }, 100); // Small delay to ensure panel is rendered
42
47
  }
43
48
  }
44
- return (_jsx(_Fragment, { children: _jsx(ListItemButton, { selected: selected, sx: { my: 0.1, minHeight: '36px' }, onClick: handleTabClick, children: _jsx(ListItemText, { primary: _jsxs(Box, { display: "flex", alignItems: "center", justifyContent: "space-between", children: [_jsx(Typography, { id: `tab-${listIndex}`, component: "span", fontWeight: 600, fontSize: "0.8125rem", "aria-label": itemTextAriaLabel, children: tabLabel }), _jsx(Box, { display: "flex", minHeight: 24, minWidth: 24, ml: 1, children: contextDisplayItems.map((item) => {
49
+ return (_jsx(_Fragment, { children: _jsx(ListItemButton, { selected: selected, sx: { my: 0.1, minHeight: '36px' }, onClick: handleTabClick, children: _jsx(ListItemText, { primary: _jsxs(Box, { display: "flex", alignItems: "center", justifyContent: "space-between", children: [_jsxs(Box, { display: "flex", gap: 0.25, children: [required && requiredIndicatorPosition === 'start' ? (_jsx(RequiredAsterisk, { children: "*" })) : null, _jsx(Typography, { id: `tab-${listIndex}`, component: "span", fontWeight: 600, fontSize: "0.8125rem", "aria-label": itemTextAriaLabel, children: tabLabel }), required && requiredIndicatorPosition === 'end' ? (_jsx(RequiredAsterisk, { readOnly: readOnly, variant: "groupHeading", children: "*" })) : null] }), _jsx(Box, { display: "flex", minHeight: 24, minWidth: 24, ml: 1, children: contextDisplayItems.map((item) => {
45
50
  return _jsx(ContextDisplayItem, { displayItem: item }, item.linkId);
46
51
  }) })] }) }) }) }));
47
52
  });
@@ -1 +1 @@
1
- {"version":3,"file":"FormBodySingleTab.js","sourceRoot":"","sources":["../../../src/components/Tabs/FormBodySingleTab.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAc,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE7E,OAAO,kBAAkB,MAAM,gDAAgD,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,oCAAoC,MAAM,kDAAkD,CAAC;AAUpG,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,iBAAiB,CAAC,KAA6B;IACrF,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAE5E,MAAM,SAAS,GAAG,qBAAqB,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;IACxD,MAAM,8BAA8B,GAClC,sBAAsB,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC;IAE9D,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;IAE1C,mCAAmC;IACnC,MAAM,iBAAiB,GACrB,oCAAoC,CAAC,KAAK,EAAE,uBAAuB,CAAC,IAAI,SAAS,CAAC;IAEpF,SAAS,cAAc;QACrB,SAAS,CAAC,SAAS,CAAC,CAAC;QACrB,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEtB,+DAA+D;QAC/D,IAAI,CAAC,8BAA8B,EAAE,CAAC;YACpC,UAAU,CAAC,GAAG,EAAE;gBACd,YAAY,CAAC,YAAY,SAAS,EAAE,CAAC,CAAC;YACxC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,0CAA0C;QACrD,CAAC;IACH,CAAC;IAED,OAAO,CACL,4BACE,KAAC,cAAc,IACb,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,EAClC,OAAO,EAAE,cAAc,YACvB,KAAC,YAAY,IACX,OAAO,EACL,MAAC,GAAG,IAAC,OAAO,EAAC,MAAM,EAAC,UAAU,EAAC,QAAQ,EAAC,cAAc,EAAC,eAAe,aACpE,KAAC,UAAU,IACT,EAAE,EAAE,OAAO,SAAS,EAAE,EACtB,SAAS,EAAC,MAAM,EAChB,UAAU,EAAE,GAAG,EACf,QAAQ,EAAC,WAAW,gBACR,iBAAiB,YAC5B,QAAQ,GACE,EACb,KAAC,GAAG,IAAC,OAAO,EAAC,MAAM,EAAC,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,YACnD,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gCAChC,OAAO,KAAC,kBAAkB,IAAmB,WAAW,EAAE,IAAI,IAA9B,IAAI,CAAC,MAAM,CAAuB,CAAC;4BACrE,CAAC,CAAC,GACE,IACF,GAER,GACa,GAChB,CACJ,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"FormBodySingleTab.js","sourceRoot":"","sources":["../../../src/components/Tabs/FormBodySingleTab.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aehrc/smart-forms-renderer",
3
- "version": "1.2.7",
3
+ "version": "1.2.8",
4
4
  "description": "FHIR Structured Data Captured (SDC) rendering engine for Smart Forms",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -64,15 +64,6 @@ const GroupHeading = memo(function GroupHeading(props: GroupHeadingProps) {
64
64
  <>
65
65
  <Box display="flex" alignItems="center" width="100%">
66
66
  <Box position="relative" display="flex" flexGrow={1} alignItems="center">
67
- {/* Required asterisk position is in front of text */}
68
- {required && requiredIndicatorPosition === 'start' ? (
69
- <RequiredAsterisk
70
- sx={{ position: 'absolute', top: 0, left: -8 }} // Adjust top and left values as needed
71
- >
72
- *
73
- </RequiredAsterisk>
74
- ) : null}
75
-
76
67
  {/* Group Heading typography */}
77
68
  {/* flexGrow: 1 is important if xhtml and markdown rendering has width: 100% */}
78
69
  <Typography
@@ -82,6 +73,14 @@ const GroupHeading = memo(function GroupHeading(props: GroupHeadingProps) {
82
73
  display="flex"
83
74
  alignItems="center"
84
75
  sx={{ flexGrow: 1, ...(parentStyles || {}) }}>
76
+ {/* Required asterisk position is in front of text */}
77
+ {required && requiredIndicatorPosition === 'start' ? (
78
+ <RequiredAsterisk
79
+ sx={{ position: 'absolute', top: 0, left: -8 }} // Adjust top and left values as needed
80
+ >
81
+ *
82
+ </RequiredAsterisk>
83
+ ) : null}
85
84
  <ItemTextSwitcher qItem={qItem} />
86
85
 
87
86
  {/* Required asterisk position is behind text */}
@@ -25,6 +25,8 @@ import type { QuestionnaireItem } from 'fhir/r4';
25
25
  import ContextDisplayItem from '../FormComponents/ItemParts/ContextDisplayItem';
26
26
  import { useFocusTabHeading } from '../../hooks/useFocusTabHeading';
27
27
  import useDisplayCqfAndCalculatedExpression from '../../hooks/useDisplayCqfAndCalculatedExpression';
28
+ import RequiredAsterisk from '../FormComponents/ItemParts/RequiredAsterisk';
29
+ import useRenderingExtensions from '../../hooks/useRenderingExtensions';
28
30
 
29
31
  interface FormBodySingleTabProps {
30
32
  qItem: QuestionnaireItem;
@@ -40,6 +42,10 @@ const FormBodySingleTab = memo(function FormBodySingleTab(props: FormBodySingleT
40
42
  const switchTab = useQuestionnaireStore.use.switchTab();
41
43
  const disableHeadingFocusOnTabSwitch =
42
44
  useRendererConfigStore.use.disableHeadingFocusOnTabSwitch();
45
+ const requiredIndicatorPosition = useRendererConfigStore.use.requiredIndicatorPosition();
46
+
47
+ const { required } = useRenderingExtensions(qItem);
48
+ const readOnly = qItem.readOnly ?? false;
43
49
 
44
50
  const focusHeading = useFocusTabHeading();
45
51
 
@@ -68,14 +74,28 @@ const FormBodySingleTab = memo(function FormBodySingleTab(props: FormBodySingleT
68
74
  <ListItemText
69
75
  primary={
70
76
  <Box display="flex" alignItems="center" justifyContent="space-between">
71
- <Typography
72
- id={`tab-${listIndex}`}
73
- component="span"
74
- fontWeight={600}
75
- fontSize="0.8125rem"
76
- aria-label={itemTextAriaLabel}>
77
- {tabLabel}
78
- </Typography>
77
+ <Box display="flex" gap={0.25}>
78
+ {/* Required asterisk position is in front of text */}
79
+ {required && requiredIndicatorPosition === 'start' ? (
80
+ <RequiredAsterisk>*</RequiredAsterisk>
81
+ ) : null}
82
+ <Typography
83
+ id={`tab-${listIndex}`}
84
+ component="span"
85
+ fontWeight={600}
86
+ fontSize="0.8125rem"
87
+ aria-label={itemTextAriaLabel}>
88
+ {tabLabel}
89
+ </Typography>
90
+
91
+ {/* Required asterisk position is behind text */}
92
+ {required && requiredIndicatorPosition === 'end' ? (
93
+ <RequiredAsterisk readOnly={readOnly} variant="groupHeading">
94
+ *
95
+ </RequiredAsterisk>
96
+ ) : null}
97
+ </Box>
98
+
79
99
  <Box display="flex" minHeight={24} minWidth={24} ml={1}>
80
100
  {contextDisplayItems.map((item) => {
81
101
  return <ContextDisplayItem key={item.linkId} displayItem={item} />;