@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.
Files changed (61) hide show
  1. package/lib/components/FormComponents/GroupItem/GroupAccordion.styles.d.ts +20 -0
  2. package/lib/components/FormComponents/GroupItem/GroupAccordion.styles.js +12 -0
  3. package/lib/components/FormComponents/GroupItem/GroupAccordion.styles.js.map +1 -0
  4. package/lib/components/FormComponents/GroupItem/GroupHeading.js +3 -2
  5. package/lib/components/FormComponents/GroupItem/GroupHeading.js.map +1 -1
  6. package/lib/components/FormComponents/GroupItem/GroupItem.js +2 -15
  7. package/lib/components/FormComponents/GroupItem/GroupItem.js.map +1 -1
  8. package/lib/components/FormComponents/GroupItem/GroupItem.styles.d.ts +1 -1
  9. package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.d.ts +1 -2
  10. package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js +1 -1
  11. package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js.map +1 -1
  12. package/lib/components/FormComponents/GroupItem/GroupItemView.d.ts +16 -0
  13. package/lib/components/FormComponents/GroupItem/GroupItemView.js +62 -0
  14. package/lib/components/FormComponents/GroupItem/GroupItemView.js.map +1 -0
  15. package/lib/components/FormComponents/ItemParts/ItemLabelText.js +20 -6
  16. package/lib/components/FormComponents/ItemParts/ItemLabelText.js.map +1 -1
  17. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js +4 -2
  18. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js.map +1 -1
  19. package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js +2 -37
  20. package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js.map +1 -1
  21. package/lib/components/FormComponents/RepeatGroup/RepeatGroupView.d.ts +20 -0
  22. package/lib/components/FormComponents/RepeatGroup/RepeatGroupView.js +91 -0
  23. package/lib/components/FormComponents/RepeatGroup/RepeatGroupView.js.map +1 -0
  24. package/lib/components/FormComponents/SingleItem/SingleItem.js +13 -4
  25. package/lib/components/FormComponents/SingleItem/SingleItem.js.map +1 -1
  26. package/lib/components/FormComponents/SingleItem/SingleNestedItems.js +11 -7
  27. package/lib/components/FormComponents/SingleItem/SingleNestedItems.js.map +1 -1
  28. package/lib/components/Renderer/FormBodySingleCollapsible.js +5 -4
  29. package/lib/components/Renderer/FormBodySingleCollapsible.js.map +1 -1
  30. package/lib/theme/overrides/Accordion.js +1 -1
  31. package/lib/theme/overrides/Accordion.js.map +1 -1
  32. package/lib/utils/itemControl.d.ts +1 -0
  33. package/lib/utils/itemControl.js +9 -0
  34. package/lib/utils/itemControl.js.map +1 -1
  35. package/lib/utils/qItem.d.ts +2 -0
  36. package/lib/utils/qItem.js +14 -0
  37. package/lib/utils/qItem.js.map +1 -1
  38. package/package.json +3 -2
  39. package/src/components/FormComponents/GroupItem/GroupAccordion.styles.ts +12 -0
  40. package/src/components/FormComponents/GroupItem/GroupHeading.tsx +3 -3
  41. package/src/components/FormComponents/GroupItem/GroupItem.tsx +15 -39
  42. package/src/components/FormComponents/GroupItem/GroupItemSwitcher.tsx +2 -2
  43. package/src/components/FormComponents/GroupItem/GroupItemView.tsx +163 -0
  44. package/src/components/FormComponents/ItemParts/ItemLabelText.tsx +22 -11
  45. package/src/components/FormComponents/ItemParts/ItemLabelWrapper.tsx +8 -1
  46. package/src/components/FormComponents/RepeatGroup/RepeatGroup.tsx +11 -82
  47. package/src/components/FormComponents/RepeatGroup/RepeatGroupView.tsx +202 -0
  48. package/src/components/FormComponents/SingleItem/SingleItem.tsx +40 -11
  49. package/src/components/FormComponents/SingleItem/SingleNestedItems.tsx +24 -19
  50. package/src/components/Renderer/FormBodySingleCollapsible.tsx +7 -9
  51. package/src/stories/assets/questionnaires/QAdvancedControlAppearance.ts +333 -3
  52. package/src/stories/assets/questionnaires/QAdvancedTextApperance.ts +29 -0
  53. package/src/stories/assets/questionnaires/QDisplay.ts +82 -0
  54. package/src/stories/assets/questionnaires/QMbs715Tester.ts +32888 -0
  55. package/src/stories/itemTypes/Display.stories.tsx +11 -1
  56. package/src/stories/sdc/AdvancedControlAppearance.stories.tsx +26 -1
  57. package/src/stories/sdc/AdvancedTextAppearance.stories.tsx +7 -0
  58. package/src/stories/testing/Mbs715Tester.stories.tsx +57 -0
  59. package/src/theme/overrides/Accordion.ts +1 -1
  60. package/src/utils/itemControl.ts +14 -0
  61. package/src/utils/qItem.ts +24 -0
@@ -14,12 +14,15 @@
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
- import React, { useCallback } from 'react';
17
+ import React, { useCallback, useMemo } from 'react';
18
18
  import { useQuestionnaireStore } from '../../../stores';
19
19
  import SingleItemSwitcher from './SingleItemSwitcher';
20
20
  import useHidden from '../../../hooks/useHidden';
21
21
  import useReadOnly from '../../../hooks/useReadOnly';
22
22
  import SingleNestedItems from './SingleNestedItems';
23
+ import { GroupCard } from '../GroupItem/GroupItem.styles';
24
+ import { QGroupContainerBox } from '../../Box.styles';
25
+ import { shouldRenderNestedItems } from '../../../utils/itemControl';
23
26
  /**
24
27
  * Main component to render a repeating, non-group Questionnaire item.
25
28
  * Store and manages the state of multiple instances of SingleItem in a repeating item.
@@ -49,15 +52,21 @@ function SingleItem(props) {
49
52
  const updatedQrItem = qrItem ? Object.assign(Object.assign({}, qrItem), { item: newQrItem.item }) : newQrItem;
50
53
  onQrItemChange(updatedQrItem);
51
54
  }, [qrItem, onQrItemChange]);
52
- const qItemHasNestedItems = !!qItem.item && qItem.item.length > 0;
55
+ const qItemHasNestedItems = useMemo(() => !!qItem.item && qItem.item.length > 0 && shouldRenderNestedItems(qItem), [qItem]);
53
56
  const readOnly = useReadOnly(qItem, parentIsReadOnly);
54
57
  const itemIsHidden = useHidden(qItem, parentRepeatGroupIndex);
55
58
  if (itemIsHidden) {
56
59
  return null;
57
60
  }
61
+ if (qItemHasNestedItems) {
62
+ return (React.createElement(QGroupContainerBox, { cardElevation: groupCardElevation, isRepeated: isRepeated, "data-test": "q-item-group-box" },
63
+ React.createElement(GroupCard, { elevation: groupCardElevation, isRepeated: isRepeated },
64
+ React.createElement(SingleItemSwitcher, { qItem: qItem, qrItem: qrItem, isRepeated: isRepeated, isTabled: isTabled, showMinimalView: showMinimalView, parentIsReadOnly: readOnly, onQrItemChange: handleQrItemChange }),
65
+ qItemHasNestedItems ? (React.createElement(React.Fragment, null,
66
+ React.createElement(SingleNestedItems, { qItem: qItem, qrItem: qrItem, groupCardElevation: groupCardElevation, parentIsReadOnly: readOnly, onQrItemChange: handleQrItemChangeWithNestedItems }))) : null)));
67
+ }
58
68
  return (React.createElement(React.Fragment, null,
59
- React.createElement(SingleItemSwitcher, { qItem: qItem, qrItem: qrItem, isRepeated: isRepeated, isTabled: isTabled, showMinimalView: showMinimalView, parentIsReadOnly: readOnly, onQrItemChange: handleQrItemChange }),
60
- qItemHasNestedItems ? (React.createElement(SingleNestedItems, { qItem: qItem, qrItem: qrItem, groupCardElevation: groupCardElevation, parentIsReadOnly: readOnly, onQrItemChange: handleQrItemChangeWithNestedItems })) : null));
69
+ React.createElement(SingleItemSwitcher, { qItem: qItem, qrItem: qrItem, isRepeated: isRepeated, isTabled: isTabled, showMinimalView: showMinimalView, parentIsReadOnly: readOnly, onQrItemChange: handleQrItemChange })));
61
70
  }
62
71
  export default SingleItem;
63
72
  //# sourceMappingURL=SingleItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SingleItem.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/SingleItem/SingleItem.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAU3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,SAAS,MAAM,0BAA0B,CAAC;AACjD,OAAO,WAAW,MAAM,4BAA4B,CAAC;AACrD,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAcpD;;;;;GAKG;AACH,SAAS,UAAU,CAAC,KAAsB;IACxC,MAAM,EACJ,KAAK,EACL,MAAM,EACN,UAAU,EACV,QAAQ,EACR,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,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,sBAAsB,aAAtB,sBAAsB,cAAtB,sBAAsB,GAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAC5D,CAAC;QAEF,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACnD,cAAc,iCAAM,SAAS,KAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAG,CAAC;SACrD;aAAM;YACL,cAAc,CAAC,SAAS,CAAC,CAAC;SAC3B;IACH,CAAC,EACD;QACE,MAAM;QACN,oBAAoB;QACpB,KAAK,CAAC,MAAM;QACZ,mBAAmB;QACnB,sBAAsB;QACtB,cAAc;KACf,CACF,CAAC;IAEF,MAAM,iCAAiC,GAAG,WAAW,CACnD,CAAC,SAAoC,EAAE,EAAE;QACvC,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,iCAAM,MAAM,KAAE,IAAI,EAAE,SAAS,CAAC,IAAI,IAAG,CAAC,CAAC,SAAS,CAAC;QAC/E,cAAc,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC,EACD,CAAC,MAAM,EAAE,cAAc,CAAC,CACzB,CAAC;IAEF,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAElE,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;IAC9D,IAAI,YAAY,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL;QACE,oBAAC,kBAAkB,IACjB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,QAAQ,EAC1B,cAAc,EAAE,kBAAkB,GAClC;QACD,mBAAmB,CAAC,CAAC,CAAC,CACrB,oBAAC,iBAAiB,IAChB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE,kBAAkB,EACtC,gBAAgB,EAAE,QAAQ,EAC1B,cAAc,EAAE,iCAAiC,GACjD,CACH,CAAC,CAAC,CAAC,IAAI,CACP,CACJ,CAAC;AACJ,CAAC;AAED,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"SingleItem.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/SingleItem/SingleItem.tsx"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ import React, { useMemo } from 'react';
18
18
  import { getQrItemsIndex, mapQItemsIndex } from '../../../utils/mapItem';
19
19
  import GroupItemSwitcher from '../GroupItem/GroupItemSwitcher';
20
20
  import { createEmptyQrGroup, updateQrItemsInGroup } from '../../../utils/qrItem';
21
+ import Box from '@mui/material/Box';
21
22
  function SingleNestedItems(props) {
22
23
  const { qItem, qrItem, groupCardElevation, parentIsReadOnly, onQrItemChange } = props;
23
24
  const qItemsIndexMap = useMemo(() => mapQItemsIndex(qItem), [qItem]);
@@ -39,13 +40,16 @@ function SingleNestedItems(props) {
39
40
  return React.createElement(React.Fragment, null, "Unable to load group, something has gone terribly wrong.");
40
41
  }
41
42
  const qrItemsByIndex = getQrItemsIndex(qItems, qrItems, qItemsIndexMap);
42
- return (React.createElement(React.Fragment, null, qItems.map((qItem, i) => {
43
- const qrItemOrItems = qrItemsByIndex[i];
44
- if (qItem.type === 'display') {
45
- return null;
46
- }
47
- return (React.createElement(GroupItemSwitcher, { key: qItem.linkId, qItem: qItem, qrItemOrItems: qrItemOrItems, groupCardElevation: groupCardElevation, parentIsReadOnly: parentIsReadOnly, onQrItemChange: handleQrItemChange, onQrRepeatGroupChange: handleQrRepeatGroupChange }));
48
- })));
43
+ return (React.createElement(Box, { display: "flex" },
44
+ React.createElement(Box, { ml: 1.5 }),
45
+ React.createElement(Box, { flexGrow: 1 }, qItems.map((qItem, i) => {
46
+ const qrItemOrItems = qrItemsByIndex[i];
47
+ if (qItem.type === 'display') {
48
+ return null;
49
+ }
50
+ return (React.createElement(GroupItemSwitcher, { key: qItem.linkId, qItem: qItem, qrItemOrItems: qrItemOrItems, groupCardElevation: groupCardElevation, parentIsReadOnly: parentIsReadOnly, onQrItemChange: handleQrItemChange, onQrRepeatGroupChange: handleQrRepeatGroupChange }));
51
+ })),
52
+ React.createElement(Box, { mr: 2.25 })));
49
53
  }
50
54
  export default SingleNestedItems;
51
55
  //# sourceMappingURL=SingleNestedItems.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SingleNestedItems.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/SingleItem/SingleNestedItems.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,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,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAejF,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,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,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAExE,OAAO,CACL,0CACG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAwB,EAAE,CAAC,EAAE,EAAE;QAC1C,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAExC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;YAC5B,OAAO,IAAI,CAAC;SACb;QAED,OAAO,CACL,oBAAC,iBAAiB,IAChB,GAAG,EAAE,KAAK,CAAC,MAAM,EACjB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,kBAAkB,EAAE,kBAAkB,EACtC,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,kBAAkB,EAClC,qBAAqB,EAAE,yBAAyB,GAChD,CACH,CAAC;IACJ,CAAC,CAAC,CACD,CACJ,CAAC;AACJ,CAAC;AAED,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"SingleNestedItems.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/SingleItem/SingleNestedItems.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,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,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAMjF,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,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,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAExE,OAAO,CACL,oBAAC,GAAG,IAAC,OAAO,EAAC,MAAM;QACjB,oBAAC,GAAG,IAAC,EAAE,EAAE,GAAG,GAAI;QAChB,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,IACb,MAAM,CAAC,GAAG,CAAC,CAAC,KAAwB,EAAE,CAAC,EAAE,EAAE;YAC1C,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;YAExC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;gBAC5B,OAAO,IAAI,CAAC;aACb;YAED,OAAO,CACL,oBAAC,iBAAiB,IAChB,GAAG,EAAE,KAAK,CAAC,MAAM,EACjB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,kBAAkB,EAAE,kBAAkB,EACtC,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,kBAAkB,EAClC,qBAAqB,EAAE,yBAAyB,GAChD,CACH,CAAC;QACJ,CAAC,CAAC,CACE;QACN,oBAAC,GAAG,IAAC,EAAE,EAAE,IAAI,GAAQ,CACjB,CACP,CAAC;AACJ,CAAC;AAED,eAAe,iBAAiB,CAAC"}
@@ -19,7 +19,6 @@ import Accordion from '@mui/material/Accordion';
19
19
  import AccordionDetails from '@mui/material/AccordionDetails';
20
20
  import AccordionSummary from '@mui/material/AccordionSummary';
21
21
  import Box from '@mui/material/Box';
22
- import Tooltip from '@mui/material/Tooltip';
23
22
  import Typography from '@mui/material/Typography';
24
23
  import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
25
24
  import { getContextDisplays } from '../../utils/tabs';
@@ -30,9 +29,11 @@ const FormBodySingleCollapsible = memo(function FormBodySingleCollapsible(props)
30
29
  const { qItem, index, selectedIndex, onToggleExpand, children } = props;
31
30
  const contextDisplayItems = getContextDisplays(qItem);
32
31
  const collapsibleLabel = (_b = (_a = getShortText(qItem)) !== null && _a !== void 0 ? _a : qItem.text) !== null && _b !== void 0 ? _b : '';
33
- return (React.createElement(Accordion, { expanded: selectedIndex === index, TransitionProps: { unmountOnExit: true, timeout: 250 }, onChange: () => onToggleExpand(index) },
34
- React.createElement(AccordionSummary, { expandIcon: React.createElement(Tooltip, { title: 'Expand' },
35
- React.createElement(ExpandMoreIcon, null)) },
32
+ const isExpanded = selectedIndex === index;
33
+ return (React.createElement(Accordion, { expanded: isExpanded, slotProps: {
34
+ transition: { unmountOnExit: true, timeout: 250 }
35
+ }, onChange: () => onToggleExpand(index) },
36
+ React.createElement(AccordionSummary, { expandIcon: React.createElement(ExpandMoreIcon, null) },
36
37
  React.createElement(Box, { display: "flex", alignItems: "center", justifyContent: "space-between", width: "100%", mr: 3 },
37
38
  React.createElement(Typography, { variant: "subtitle2" }, collapsibleLabel),
38
39
  React.createElement(Box, { display: "flex", columnGap: 0.5 }, contextDisplayItems.map((item) => {
@@ -1 +1 @@
1
- {"version":3,"file":"FormBodySingleCollapsible.js","sourceRoot":"","sources":["../../../src/components/Renderer/FormBodySingleCollapsible.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,SAAS,MAAM,yBAAyB,CAAC;AAChD,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,cAAc,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,kBAAkB,MAAM,gDAAgD,CAAC;AAUhF,MAAM,yBAAyB,GAAG,IAAI,CAAC,SAAS,yBAAyB,CACvE,KAAqC;;IAErC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAExE,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAEtD,MAAM,gBAAgB,GAAG,MAAA,MAAA,YAAY,CAAC,KAAK,CAAC,mCAAI,KAAK,CAAC,IAAI,mCAAI,EAAE,CAAC;IAEjE,OAAO,CACL,oBAAC,SAAS,IACR,QAAQ,EAAE,aAAa,KAAK,KAAK,EACjC,eAAe,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EACtD,QAAQ,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC;QACrC,oBAAC,gBAAgB,IACf,UAAU,EACR,oBAAC,OAAO,IAAC,KAAK,EAAE,QAAQ;gBACtB,oBAAC,cAAc,OAAG,CACV;YAEZ,oBAAC,GAAG,IAAC,OAAO,EAAC,MAAM,EAAC,UAAU,EAAC,QAAQ,EAAC,cAAc,EAAC,eAAe,EAAC,KAAK,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC;gBACvF,oBAAC,UAAU,IAAC,OAAO,EAAC,WAAW,IAAE,gBAAgB,CAAc;gBAC/D,oBAAC,GAAG,IAAC,OAAO,EAAC,MAAM,EAAC,SAAS,EAAE,GAAG,IAC/B,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBAChC,OAAO,oBAAC,kBAAkB,IAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,GAAI,CAAC;gBACrE,CAAC,CAAC,CACE,CACF,CACW;QACnB,oBAAC,gBAAgB,QAAE,QAAQ,CAAoB,CACrC,CACb,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,eAAe,yBAAyB,CAAC"}
1
+ {"version":3,"file":"FormBodySingleCollapsible.js","sourceRoot":"","sources":["../../../src/components/Renderer/FormBodySingleCollapsible.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,SAAS,MAAM,yBAAyB,CAAC;AAChD,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,cAAc,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,kBAAkB,MAAM,gDAAgD,CAAC;AAUhF,MAAM,yBAAyB,GAAG,IAAI,CAAC,SAAS,yBAAyB,CACvE,KAAqC;;IAErC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAExE,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAEtD,MAAM,gBAAgB,GAAG,MAAA,MAAA,YAAY,CAAC,KAAK,CAAC,mCAAI,KAAK,CAAC,IAAI,mCAAI,EAAE,CAAC;IAEjE,MAAM,UAAU,GAAG,aAAa,KAAK,KAAK,CAAC;IAE3C,OAAO,CACL,oBAAC,SAAS,IACR,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE;YACT,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE;SAClD,EACD,QAAQ,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC;QACrC,oBAAC,gBAAgB,IAAC,UAAU,EAAE,oBAAC,cAAc,OAAG;YAC9C,oBAAC,GAAG,IAAC,OAAO,EAAC,MAAM,EAAC,UAAU,EAAC,QAAQ,EAAC,cAAc,EAAC,eAAe,EAAC,KAAK,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC;gBACvF,oBAAC,UAAU,IAAC,OAAO,EAAC,WAAW,IAAE,gBAAgB,CAAc;gBAC/D,oBAAC,GAAG,IAAC,OAAO,EAAC,MAAM,EAAC,SAAS,EAAE,GAAG,IAC/B,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBAChC,OAAO,oBAAC,kBAAkB,IAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,GAAI,CAAC;gBACrE,CAAC,CAAC,CACE,CACF,CACW;QACnB,oBAAC,gBAAgB,QAAE,QAAQ,CAAoB,CACrC,CACb,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,eAAe,yBAAyB,CAAC"}
@@ -19,7 +19,7 @@ export default function Accordion(theme) {
19
19
  MuiAccordion: {
20
20
  styleOverrides: {
21
21
  root: {
22
- boxShadow: theme.customShadows.z1,
22
+ boxShadow: theme.customShadows.card,
23
23
  borderRadius: Number(theme.shape.borderRadius) * 2,
24
24
  '&:before': {
25
25
  display: 'none'
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.js","sourceRoot":"","sources":["../../../src/theme/overrides/Accordion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,KAAY;IAC5C,OAAO;QACL,YAAY,EAAE;YACZ,cAAc,EAAE;gBACd,IAAI,EAAE;oBACJ,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,EAAE;oBACjC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC;oBAClD,UAAU,EAAE;wBACV,OAAO,EAAE,MAAM;qBAChB;iBACF;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"Accordion.js","sourceRoot":"","sources":["../../../src/theme/overrides/Accordion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,KAAY;IAC5C,OAAO;QACL,YAAY,EAAE;YACZ,cAAc,EAAE;gBACd,IAAI,EAAE;oBACJ,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,IAAI;oBACnC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC;oBAClD,UAAU,EAAE;wBACV,OAAO,EAAE,MAAM;qBAChB;iBACF;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { Extension, QuestionnaireItem } from 'fhir/r4';
2
2
  import type { RegexValidation } from '../interfaces/regex.interface';
3
+ export declare function shouldRenderNestedItems(qItem: QuestionnaireItem): boolean;
3
4
  /**
4
5
  * Check if the extension has an itemControl code equal to the given itemControlCode
5
6
  *
@@ -15,6 +15,15 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  import { structuredDataCapture } from 'fhir-sdc-helpers';
18
+ function hasItemControl(qItem) {
19
+ var _a;
20
+ return !!((_a = qItem.extension) === null || _a === void 0 ? void 0 : _a.some((extension) => extension.url === 'http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl'));
21
+ }
22
+ // If all nested items are of type display and have itemControl, then they should not be rendered
23
+ export function shouldRenderNestedItems(qItem) {
24
+ var _a;
25
+ return !((_a = qItem.item) === null || _a === void 0 ? void 0 : _a.every((childItem) => childItem.type === 'display' && hasItemControl(childItem)));
26
+ }
18
27
  /**
19
28
  * Check if the extension has an itemControl code equal to the given itemControlCode
20
29
  *
@@ -1 +1 @@
1
- {"version":3,"file":"itemControl.js","sourceRoot":"","sources":["../../src/utils/itemControl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"itemControl.js","sourceRoot":"","sources":["../../src/utils/itemControl.ts"],"names":[],"mappings":"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"}
@@ -18,4 +18,6 @@ export declare function isRepeatItemAndNotCheckbox(qItem: QuestionnaireItem): bo
18
18
  export declare function getXHtmlStringFromQuestionnaire(questionnaire: Questionnaire): string | null;
19
19
  export declare function getLinkIdTypeTuples(questionnaire: Questionnaire): [string, string][];
20
20
  export declare function getLinkIdTypeTuplesFromItemRecursive(qItem: QuestionnaireItem): [string, string][];
21
+ export type CollapsibleType = 'default-open' | 'default-closed';
22
+ export declare function getGroupCollapsible(qItem: QuestionnaireItem): CollapsibleType | null;
21
23
  export {};
@@ -84,4 +84,18 @@ export function getLinkIdTypeTuplesFromItemRecursive(qItem) {
84
84
  }
85
85
  return linkIds;
86
86
  }
87
+ function valueCodeIsCollapsibleType(valueCode) {
88
+ return valueCode === 'default-open' || valueCode === 'default-closed';
89
+ }
90
+ export function getGroupCollapsible(qItem) {
91
+ var _a;
92
+ const collapsibleExtension = (_a = qItem.extension) === null || _a === void 0 ? void 0 : _a.find((ext) => ext.url === 'http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-collapsible');
93
+ if (collapsibleExtension) {
94
+ if (collapsibleExtension.valueCode &&
95
+ valueCodeIsCollapsibleType(collapsibleExtension.valueCode)) {
96
+ return collapsibleExtension.valueCode;
97
+ }
98
+ }
99
+ return null;
100
+ }
87
101
  //# sourceMappingURL=qItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"qItem.js","sourceRoot":"","sources":["../../src/utils/qItem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"qItem.js","sourceRoot":"","sources":["../../src/utils/qItem.ts"],"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": "0.33.0",
3
+ "version": "0.34.0",
4
4
  "description": "FHIR Structured Data Captured (SDC) rendering engine for Smart Forms",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -27,7 +27,7 @@
27
27
  },
28
28
  "homepage": "https://github.com/aehrc/smart-forms#readme",
29
29
  "dependencies": {
30
- "@aehrc/sdc-populate": "^2.1.0",
30
+ "@aehrc/sdc-populate": "^2.2.0",
31
31
  "@iconify/react": "^4.1.1",
32
32
  "dayjs": "^1.11.10",
33
33
  "deep-diff": "^1.0.2",
@@ -42,6 +42,7 @@
42
42
  "react-dnd": "^16.0.1",
43
43
  "react-dnd-html5-backend": "^16.0.1",
44
44
  "react-markdown": "^8.0.7",
45
+ "style-to-object": "^1.0.6",
45
46
  "zustand": "^4.5.2"
46
47
  },
47
48
  "peerDependencies": {
@@ -0,0 +1,12 @@
1
+ import { styled } from '@mui/material/styles';
2
+ import Accordion from '@mui/material/Accordion';
3
+
4
+ export const GroupAccordion = styled(Accordion, {
5
+ shouldForwardProp: (prop) => prop !== 'elevation' && prop !== 'isRepeated'
6
+ })<{ elevation: number; isRepeated: boolean }>(({ elevation, isRepeated }) => ({
7
+ paddingTop: '8px',
8
+ paddingBottom: '4px',
9
+ paddingLeft: elevation === 1 ? '10px' : '8px',
10
+ paddingRight: elevation === 1 ? '10px' : '8px',
11
+ marginBottom: isRepeated ? 0 : '28px'
12
+ }));
@@ -44,15 +44,15 @@ const GroupHeading = memo(function GroupHeading(props: GroupHeadingProps) {
44
44
 
45
45
  return (
46
46
  <>
47
- <Box display="flex" alignItems="center" justifyContent="space-between">
47
+ <Box display="flex" alignItems="center" width="100%">
48
48
  <Typography
49
49
  variant="h6"
50
50
  fontSize={isTabHeading ? 16 : 15}
51
51
  color={readOnly && !isTabHeading ? 'text.secondary' : 'text.primary'}>
52
52
  <ItemLabelText qItem={qItem} />
53
53
  </Typography>
54
-
55
- <Box display="flex" columnGap={0.5}>
54
+ <Box flexGrow={1} />
55
+ <Box display="flex" columnGap={0.5} mx={1}>
56
56
  {contextDisplayItems.map((item) => {
57
57
  return <ContextDisplayItem key={item.linkId} displayItem={item} />;
58
58
  })}
@@ -19,7 +19,6 @@ import React, { useMemo } from 'react';
19
19
  import { getQrItemsIndex, mapQItemsIndex } from '../../../utils/mapItem';
20
20
  import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
21
21
  import { createEmptyQrGroup, updateQrItemsInGroup } from '../../../utils/qrItem';
22
- import { QGroupContainerBox } from '../../Box.styles';
23
22
  import type {
24
23
  PropsWithIsRepeatedAttribute,
25
24
  PropsWithParentIsReadOnlyAttribute,
@@ -29,11 +28,7 @@ import type {
29
28
  import type { QrRepeatGroup } from '../../../interfaces/repeatGroup.interface';
30
29
  import useHidden from '../../../hooks/useHidden';
31
30
  import type { Tabs } from '../../../interfaces/tab.interface';
32
- import GroupHeading from './GroupHeading';
33
- import { GroupCard } from './GroupItem.styles';
34
- import TabButtonsWrapper from './TabButtonsWrapper';
35
- import GroupItemSwitcher from './GroupItemSwitcher';
36
- import useReadOnly from '../../../hooks/useReadOnly';
31
+ import GroupItemView from './GroupItemView';
37
32
 
38
33
  interface GroupItemProps
39
34
  extends PropsWithQrItemChangeHandler,
@@ -65,7 +60,6 @@ function GroupItem(props: GroupItemProps) {
65
60
 
66
61
  const qItemsIndexMap = useMemo(() => mapQItemsIndex(qItem), [qItem]);
67
62
 
68
- const readOnly = useReadOnly(qItem, parentIsReadOnly);
69
63
  const itemIsHidden = useHidden(qItem, parentRepeatGroupIndex);
70
64
  if (itemIsHidden) {
71
65
  return null;
@@ -96,39 +90,21 @@ function GroupItem(props: GroupItemProps) {
96
90
  const qrItemsByIndex = getQrItemsIndex(qItems, qrItems, qItemsIndexMap);
97
91
 
98
92
  return (
99
- <QGroupContainerBox
100
- cardElevation={groupCardElevation}
93
+ <GroupItemView
94
+ qItem={qItem}
95
+ childQItems={qItems}
96
+ qrItemsByIndex={qrItemsByIndex}
101
97
  isRepeated={isRepeated}
102
- data-test="q-item-group-box">
103
- <GroupCard elevation={groupCardElevation} isRepeated={isRepeated}>
104
- <GroupHeading
105
- qItem={qItem}
106
- readOnly={readOnly}
107
- tabIsMarkedAsComplete={tabIsMarkedAsComplete}
108
- isRepeated={isRepeated}
109
- />
110
- {qItems.map((qItem: QuestionnaireItem, i) => {
111
- const qrItemOrItems = qrItemsByIndex[i];
112
-
113
- return (
114
- <GroupItemSwitcher
115
- key={qItem.linkId}
116
- qItem={qItem}
117
- qrItemOrItems={qrItemOrItems}
118
- groupCardElevation={groupCardElevation}
119
- parentIsReadOnly={readOnly}
120
- parentIsRepeatGroup={parentIsRepeatGroup}
121
- parentRepeatGroupIndex={parentRepeatGroupIndex}
122
- onQrItemChange={handleQrItemChange}
123
- onQrRepeatGroupChange={handleQrRepeatGroupChange}
124
- />
125
- );
126
- })}
127
-
128
- {/* Next tab button at the end of each tab group */}
129
- <TabButtonsWrapper currentTabIndex={currentTabIndex} tabs={tabs} />
130
- </GroupCard>
131
- </QGroupContainerBox>
98
+ groupCardElevation={groupCardElevation}
99
+ tabIsMarkedAsComplete={tabIsMarkedAsComplete}
100
+ tabs={tabs}
101
+ currentTabIndex={currentTabIndex}
102
+ parentIsReadOnly={parentIsReadOnly}
103
+ parentIsRepeatGroup={parentIsRepeatGroup}
104
+ parentRepeatGroupIndex={parentRepeatGroupIndex}
105
+ onQrItemChange={handleQrItemChange}
106
+ onQrRepeatGroupChange={handleQrRepeatGroupChange}
107
+ />
132
108
  );
133
109
  }
134
110
 
@@ -18,10 +18,10 @@
18
18
  import React from 'react';
19
19
  import type {
20
20
  PropsWithParentIsReadOnlyAttribute,
21
+ PropsWithParentIsRepeatGroupAttribute,
21
22
  PropsWithQrItemChangeHandler,
22
23
  PropsWithQrRepeatGroupChangeHandler
23
24
  } from '../../../interfaces/renderProps.interface';
24
- import type { PropsWithParentIsRepeatGroupAttribute } from '../../../interfaces/renderProps.interface';
25
25
  import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
26
26
  import { isRepeatItemAndNotCheckbox, isSpecificItemControl } from '../../../utils';
27
27
  import GroupTable from '../Tables/GroupTable';
@@ -101,7 +101,7 @@ function GroupItemSwitcher(props: GroupItemSwitcherProps) {
101
101
  <GridGroup
102
102
  qItem={qItem}
103
103
  qrItem={qrItem ?? null}
104
- groupCardElevation={groupCardElevation}
104
+ groupCardElevation={groupCardElevation + 1}
105
105
  parentIsReadOnly={parentIsReadOnly}
106
106
  onQrItemChange={onQrItemChange}
107
107
  />
@@ -0,0 +1,163 @@
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
+
18
+ import React from 'react';
19
+ import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
20
+ import { QGroupContainerBox } from '../../Box.styles';
21
+ import type {
22
+ PropsWithIsRepeatedAttribute,
23
+ PropsWithParentIsReadOnlyAttribute,
24
+ PropsWithParentIsRepeatGroupAttribute,
25
+ PropsWithQrItemChangeHandler
26
+ } from '../../../interfaces/renderProps.interface';
27
+ import { PropsWithQrRepeatGroupChangeHandler } from '../../../interfaces/renderProps.interface';
28
+ import type { Tabs } from '../../../interfaces/tab.interface';
29
+ import GroupHeading from './GroupHeading';
30
+ import { GroupCard } from './GroupItem.styles';
31
+ import TabButtonsWrapper from './TabButtonsWrapper';
32
+ import GroupItemSwitcher from './GroupItemSwitcher';
33
+ import AccordionSummary from '@mui/material/AccordionSummary';
34
+ import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
35
+ import AccordionDetails from '@mui/material/AccordionDetails';
36
+ import Divider from '@mui/material/Divider';
37
+ import { getGroupCollapsible } from '../../../utils/qItem';
38
+ import useReadOnly from '../../../hooks/useReadOnly';
39
+ import { GroupAccordion } from './GroupAccordion.styles';
40
+
41
+ interface GroupItemViewProps
42
+ extends PropsWithQrItemChangeHandler,
43
+ PropsWithQrRepeatGroupChangeHandler,
44
+ PropsWithIsRepeatedAttribute,
45
+ PropsWithParentIsReadOnlyAttribute,
46
+ PropsWithParentIsRepeatGroupAttribute {
47
+ qItem: QuestionnaireItem;
48
+ childQItems: QuestionnaireItem[];
49
+ qrItemsByIndex: (QuestionnaireResponseItem | QuestionnaireResponseItem[] | undefined)[];
50
+ groupCardElevation: number;
51
+ tabIsMarkedAsComplete?: boolean;
52
+ tabs?: Tabs;
53
+ currentTabIndex?: number;
54
+ }
55
+
56
+ function GroupItemView(props: GroupItemViewProps) {
57
+ const {
58
+ qItem,
59
+ childQItems,
60
+ qrItemsByIndex,
61
+ isRepeated,
62
+ groupCardElevation,
63
+ tabIsMarkedAsComplete,
64
+ tabs,
65
+ currentTabIndex,
66
+ parentIsReadOnly,
67
+ parentIsRepeatGroup,
68
+ parentRepeatGroupIndex,
69
+ onQrItemChange,
70
+ onQrRepeatGroupChange
71
+ } = props;
72
+
73
+ const readOnly = useReadOnly(qItem, parentIsReadOnly);
74
+
75
+ // Render collapsible group item
76
+ // If group item is a repeating instance, do not render group item as collapsible
77
+ const groupIsCollapsible = getGroupCollapsible(qItem);
78
+ if (groupIsCollapsible && !isRepeated) {
79
+ const isDefaultOpen = groupIsCollapsible === 'default-open';
80
+ return (
81
+ <GroupAccordion
82
+ disableGutters
83
+ defaultExpanded={isDefaultOpen}
84
+ elevation={groupCardElevation}
85
+ isRepeated={isRepeated}
86
+ slotProps={{
87
+ transition: { unmountOnExit: true, timeout: 250 }
88
+ }}>
89
+ <AccordionSummary expandIcon={<ExpandMoreIcon />} sx={{ minHeight: '28px' }}>
90
+ <GroupHeading
91
+ qItem={qItem}
92
+ readOnly={readOnly}
93
+ tabIsMarkedAsComplete={tabIsMarkedAsComplete}
94
+ isRepeated={isRepeated}
95
+ />
96
+ </AccordionSummary>
97
+ <AccordionDetails sx={{ pt: 0 }}>
98
+ {qItem.text ? <Divider sx={{ mb: 1.5 }} light /> : null}
99
+ <>
100
+ {childQItems.map((qItem: QuestionnaireItem, i) => {
101
+ const qrItemOrItems = qrItemsByIndex[i];
102
+
103
+ return (
104
+ <GroupItemSwitcher
105
+ key={qItem.linkId}
106
+ qItem={qItem}
107
+ qrItemOrItems={qrItemOrItems}
108
+ groupCardElevation={groupCardElevation}
109
+ parentIsReadOnly={readOnly}
110
+ parentIsRepeatGroup={parentIsRepeatGroup}
111
+ parentRepeatGroupIndex={parentRepeatGroupIndex}
112
+ onQrItemChange={onQrItemChange}
113
+ onQrRepeatGroupChange={onQrRepeatGroupChange}
114
+ />
115
+ );
116
+ })}
117
+
118
+ {/* Next tab button at the end of each tab group */}
119
+ <TabButtonsWrapper currentTabIndex={currentTabIndex} tabs={tabs} />
120
+ </>
121
+ </AccordionDetails>
122
+ </GroupAccordion>
123
+ );
124
+ }
125
+
126
+ return (
127
+ <QGroupContainerBox
128
+ cardElevation={groupCardElevation}
129
+ isRepeated={isRepeated}
130
+ data-test="q-item-group-box">
131
+ <GroupCard elevation={groupCardElevation} isRepeated={isRepeated}>
132
+ <GroupHeading
133
+ qItem={qItem}
134
+ readOnly={readOnly}
135
+ tabIsMarkedAsComplete={tabIsMarkedAsComplete}
136
+ isRepeated={isRepeated}
137
+ />
138
+ {childQItems.map((qItem: QuestionnaireItem, i) => {
139
+ const qrItemOrItems = qrItemsByIndex[i];
140
+
141
+ return (
142
+ <GroupItemSwitcher
143
+ key={qItem.linkId}
144
+ qItem={qItem}
145
+ qrItemOrItems={qrItemOrItems}
146
+ groupCardElevation={groupCardElevation}
147
+ parentIsReadOnly={readOnly}
148
+ parentIsRepeatGroup={parentIsRepeatGroup}
149
+ parentRepeatGroupIndex={parentRepeatGroupIndex}
150
+ onQrItemChange={onQrItemChange}
151
+ onQrRepeatGroupChange={onQrRepeatGroupChange}
152
+ />
153
+ );
154
+ })}
155
+
156
+ {/* Next tab button at the end of each tab group */}
157
+ <TabButtonsWrapper currentTabIndex={currentTabIndex} tabs={tabs} />
158
+ </GroupCard>
159
+ </QGroupContainerBox>
160
+ );
161
+ }
162
+
163
+ export default GroupItemView;