@aehrc/smart-forms-renderer 1.2.0 → 1.2.2

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 (135) hide show
  1. package/lib/components/FormComponents/ItemParts/FadingCheckIcon.d.ts +7 -0
  2. package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js +26 -0
  3. package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js.map +1 -0
  4. package/lib/components/FormComponents/ItemParts/ItemLabelText.d.ts +8 -0
  5. package/lib/components/FormComponents/ItemParts/ItemLabelText.js +63 -0
  6. package/lib/components/FormComponents/ItemParts/ItemLabelText.js.map +1 -0
  7. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.d.ts +8 -0
  8. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js +53 -0
  9. package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js.map +1 -0
  10. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js +4 -3
  11. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js.map +1 -1
  12. package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.d.ts +10 -0
  13. package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js +30 -0
  14. package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js.map +1 -0
  15. package/lib/components/FormComponents/SingleItem/SingleItem.js +15 -2
  16. package/lib/components/FormComponents/SingleItem/SingleItem.js.map +1 -1
  17. package/lib/components/FormComponents/SingleItem/SingleNestedItems.js +8 -8
  18. package/lib/components/FormComponents/SingleItem/SingleNestedItems.js.map +1 -1
  19. package/lib/components/Iconify/Iconify.d.ts +10 -0
  20. package/lib/components/Iconify/Iconify.js +26 -0
  21. package/lib/components/Iconify/Iconify.js.map +1 -0
  22. package/lib/components/Renderer/FormBodyPage.d.ts +9 -0
  23. package/lib/components/Renderer/FormBodyPage.js +43 -0
  24. package/lib/components/Renderer/FormBodyPage.js.map +1 -0
  25. package/lib/components/Renderer/FormTitle.d.ts +7 -0
  26. package/lib/components/Renderer/FormTitle.js +30 -0
  27. package/lib/components/Renderer/FormTitle.js.map +1 -0
  28. package/lib/components/Renderer/FormTopLevelPage.d.ts +9 -0
  29. package/lib/components/Renderer/FormTopLevelPage.js +29 -0
  30. package/lib/components/Renderer/FormTopLevelPage.js.map +1 -0
  31. package/lib/components/Tabs/FormBodyTabListWrapper.js +1 -1
  32. package/lib/components/Tabs/FormBodyTabListWrapper.js.map +1 -1
  33. package/lib/hooks/useBooleanCalculatedExpression.d.ts +12 -0
  34. package/lib/hooks/useBooleanCalculatedExpression.js +53 -0
  35. package/lib/hooks/useBooleanCalculatedExpression.js.map +1 -0
  36. package/lib/hooks/useDecimalCalculatedExpression.d.ts +13 -0
  37. package/lib/hooks/useDecimalCalculatedExpression.js +59 -0
  38. package/lib/hooks/useDecimalCalculatedExpression.js.map +1 -0
  39. package/lib/hooks/useIntegerCalculatedExpression.d.ts +12 -0
  40. package/lib/hooks/useIntegerCalculatedExpression.js +56 -0
  41. package/lib/hooks/useIntegerCalculatedExpression.js.map +1 -0
  42. package/lib/hooks/useQuantityCalculatedExpression.d.ts +14 -0
  43. package/lib/hooks/useQuantityCalculatedExpression.js +107 -0
  44. package/lib/hooks/useQuantityCalculatedExpression.js.map +1 -0
  45. package/lib/hooks/useStringCalculatedExpression.d.ts +12 -0
  46. package/lib/hooks/useStringCalculatedExpression.js +58 -0
  47. package/lib/hooks/useStringCalculatedExpression.js.map +1 -0
  48. package/lib/stores/rendererConfigStore.d.ts +1 -1
  49. package/lib/stories/storybookWrappers/InitialiseFormWrapperForStorybook.d.ts +3 -2
  50. package/lib/stories/storybookWrappers/InitialiseFormWrapperForStorybook.js +27 -6
  51. package/lib/stories/storybookWrappers/InitialiseFormWrapperForStorybook.js.map +1 -1
  52. package/lib/stories/storybookWrappers/index.js +1 -1
  53. package/lib/theme/Theme.d.ts +44 -0
  54. package/lib/theme/Theme.js +43 -0
  55. package/lib/theme/Theme.js.map +1 -0
  56. package/lib/theme/customGlobalStyles.d.ts +2 -0
  57. package/lib/theme/customGlobalStyles.js +61 -0
  58. package/lib/theme/customGlobalStyles.js.map +1 -0
  59. package/lib/theme/overrides/Accordion.d.ts +14 -0
  60. package/lib/theme/overrides/Accordion.js +32 -0
  61. package/lib/theme/overrides/Accordion.js.map +1 -0
  62. package/lib/theme/overrides/Autocomplete.d.ts +10 -0
  63. package/lib/theme/overrides/Autocomplete.js +28 -0
  64. package/lib/theme/overrides/Autocomplete.js.map +1 -0
  65. package/lib/theme/overrides/Button.d.ts +33 -0
  66. package/lib/theme/overrides/Button.js +52 -0
  67. package/lib/theme/overrides/Button.js.map +1 -0
  68. package/lib/theme/overrides/Card.d.ts +35 -0
  69. package/lib/theme/overrides/Card.js +49 -0
  70. package/lib/theme/overrides/Card.js.map +1 -0
  71. package/lib/theme/overrides/Input.d.ts +64 -0
  72. package/lib/theme/overrides/Input.js +81 -0
  73. package/lib/theme/overrides/Input.js.map +1 -0
  74. package/lib/theme/overrides/Overrides.d.ts +3 -0
  75. package/lib/theme/overrides/Overrides.js +29 -0
  76. package/lib/theme/overrides/Overrides.js.map +1 -0
  77. package/lib/theme/overrides/Paper.d.ts +12 -0
  78. package/lib/theme/overrides/Paper.js +31 -0
  79. package/lib/theme/overrides/Paper.js.map +1 -0
  80. package/lib/theme/overrides/SpeedDial.d.ts +16 -0
  81. package/lib/theme/overrides/SpeedDial.js +34 -0
  82. package/lib/theme/overrides/SpeedDial.js.map +1 -0
  83. package/lib/theme/overrides/Table.d.ts +12 -0
  84. package/lib/theme/overrides/Table.js +30 -0
  85. package/lib/theme/overrides/Table.js.map +1 -0
  86. package/lib/theme/palette.d.ts +27 -0
  87. package/lib/theme/palette.js +63 -0
  88. package/lib/theme/palette.js.map +1 -0
  89. package/lib/theme/shadows.d.ts +2 -0
  90. package/lib/theme/shadows.js +52 -0
  91. package/lib/theme/shadows.js.map +1 -0
  92. package/lib/utils/calculatedExpression.js +11 -0
  93. package/lib/utils/calculatedExpression.js.map +1 -1
  94. package/lib/utils/dayjsExtend.d.ts +1 -0
  95. package/lib/utils/dayjsExtend.js +22 -0
  96. package/lib/utils/dayjsExtend.js.map +1 -0
  97. package/lib/utils/initialise.js +8 -1
  98. package/lib/utils/initialise.js.map +1 -1
  99. package/lib/utils/itemControl.d.ts +103 -0
  100. package/lib/utils/itemControl.js +350 -0
  101. package/lib/utils/itemControl.js.map +1 -0
  102. package/lib/utils/mapItem.d.ts +1 -1
  103. package/lib/utils/mapItem.js +2 -0
  104. package/lib/utils/mapItem.js.map +1 -1
  105. package/lib/utils/qrItem.d.ts +13 -0
  106. package/lib/utils/qrItem.js +76 -0
  107. package/lib/utils/qrItem.js.map +1 -1
  108. package/lib/utils/questionnaireStoreUtils/addAdditionalVariables.d.ts +2 -0
  109. package/lib/utils/questionnaireStoreUtils/addAdditionalVariables.js +43 -0
  110. package/lib/utils/questionnaireStoreUtils/addAdditionalVariables.js.map +1 -0
  111. package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.d.ts +3 -0
  112. package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js +101 -0
  113. package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js.map +1 -0
  114. package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.js +4 -2
  115. package/lib/utils/questionnaireStoreUtils/extractOtherExtensions.js.map +1 -1
  116. package/lib/utils/validateQuestionnaire.d.ts +66 -0
  117. package/lib/utils/validateQuestionnaire.js +559 -0
  118. package/lib/utils/validateQuestionnaire.js.map +1 -0
  119. package/package.json +1 -1
  120. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.tsx +4 -3
  121. package/src/components/FormComponents/SingleItem/SingleItem.tsx +16 -2
  122. package/src/components/FormComponents/SingleItem/SingleNestedItems.tsx +8 -9
  123. package/src/components/Tabs/FormBodyTabListWrapper.tsx +1 -1
  124. package/src/stores/rendererConfigStore.ts +1 -1
  125. package/src/utils/calculatedExpression.ts +11 -0
  126. package/src/utils/initialise.ts +8 -1
  127. package/src/utils/mapItem.ts +3 -1
  128. package/src/utils/qrItem.ts +91 -0
  129. package/src/utils/questionnaireStoreUtils/extractOtherExtensions.ts +4 -2
  130. package/lib/interfaces/itemPath.interface.d.ts +0 -31
  131. package/lib/interfaces/itemPath.interface.js +0 -2
  132. package/lib/interfaces/itemPath.interface.js.map +0 -1
  133. package/lib/utils/itemPath.d.ts +0 -57
  134. package/lib/utils/itemPath.js +0 -75
  135. package/lib/utils/itemPath.js.map +0 -1
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ interface FadingCheckIconProps {
3
+ fadeIn: boolean;
4
+ disabled: boolean;
5
+ }
6
+ declare function FadingCheckIcon(props: FadingCheckIconProps): React.JSX.Element;
7
+ export default FadingCheckIcon;
@@ -0,0 +1,26 @@
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 Fade from '@mui/material/Fade';
19
+ import SyncIcon from '@mui/icons-material/Sync';
20
+ function FadingCheckIcon(props) {
21
+ const { fadeIn, disabled } = props;
22
+ return (React.createElement(Fade, { in: fadeIn, timeout: { enter: 100, exit: 300 } },
23
+ React.createElement(SyncIcon, { color: "success", fontSize: "small", sx: Object.assign({}, (disabled ? { color: 'text.disabled' } : null)) })));
24
+ }
25
+ export default FadingCheckIcon;
26
+ //# sourceMappingURL=FadingCheckIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FadingCheckIcon.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ItemParts/FadingCheckIcon.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,oBAAoB,CAAC;AACtC,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAOhD,SAAS,eAAe,CAAC,KAA2B;IAClD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAEnC,OAAO,CACL,oBAAC,IAAI,IAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE;QAClD,oBAAC,QAAQ,IACP,KAAK,EAAC,SAAS,EACf,QAAQ,EAAC,OAAO,EAChB,EAAE,oBAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IACvD,CACG,CACR,CAAC;AACJ,CAAC;AAED,eAAe,eAAe,CAAC"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import type { QuestionnaireItem } from 'fhir/r4';
3
+ interface ItemLabelTextProps {
4
+ qItem: QuestionnaireItem;
5
+ readOnly?: boolean;
6
+ }
7
+ declare const ItemLabelText: React.NamedExoticComponent<ItemLabelTextProps>;
8
+ export default ItemLabelText;
@@ -0,0 +1,63 @@
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, { memo } from 'react';
18
+ import { getMarkdownString, getXHtmlString } from '../../../utils/itemControl';
19
+ import { default as htmlParse } from 'html-react-parser';
20
+ import Box from '@mui/material/Box';
21
+ import ReactMarkdown from 'react-markdown';
22
+ import Typography from '@mui/material/Typography';
23
+ import useDisplayCqfAndCalculatedExpression from '../../../hooks/useDisplayCqfAndCalculatedExpression';
24
+ import { structuredDataCapture } from 'fhir-sdc-helpers';
25
+ import { default as styleParse } from 'style-to-js';
26
+ const ItemLabelText = memo(function ItemLabelText(props) {
27
+ var _a, _b;
28
+ const { qItem, readOnly } = props;
29
+ let labelText = (_a = qItem.text) !== null && _a !== void 0 ? _a : '';
30
+ // Use calculatedExpressionString if available
31
+ const calculatedExpressionString = (_b = useDisplayCqfAndCalculatedExpression(qItem)) !== null && _b !== void 0 ? _b : '';
32
+ if (calculatedExpressionString) {
33
+ labelText = calculatedExpressionString;
34
+ }
35
+ // parse xHTML if found
36
+ const xHtmlString = getXHtmlString(qItem);
37
+ if (xHtmlString) {
38
+ return React.createElement(Box, null, htmlParse(xHtmlString));
39
+ }
40
+ // parse markdown if found
41
+ const markdownString = getMarkdownString(qItem);
42
+ if (markdownString) {
43
+ return (React.createElement(Box, null,
44
+ React.createElement(ReactMarkdown, null, markdownString)));
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
+ }
56
+ if (qItem.type === 'group') {
57
+ return React.createElement(React.Fragment, null, labelText);
58
+ }
59
+ // parse regular text
60
+ return (React.createElement(Typography, { color: readOnly ? 'text.disabled' : 'text.primary', sx: { mt: 0.25 } }, labelText));
61
+ });
62
+ export default ItemLabelText;
63
+ //# sourceMappingURL=ItemLabelText.js.map
@@ -0,0 +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,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,CAAC;QAC/B,SAAS,GAAG,0BAA0B,CAAC;IACzC,CAAC;IAED,uBAAuB;IACvB,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,oBAAC,GAAG,QAAE,SAAS,CAAC,WAAW,CAAC,CAAO,CAAC;IAC7C,CAAC;IAED,0BAA0B;IAC1B,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,CACL,oBAAC,GAAG;YACF,oBAAC,aAAa,QAAE,cAAc,CAAiB,CAC3C,CACP,CAAC;IACJ,CAAC;IAED,kCAAkC;IAClC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wBAAwB;IACxB,MAAM,YAAY,GAAG,qBAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjE,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;QACxC,OAAO,6BAAK,KAAK,EAAE,MAAM,IAAG,SAAS,CAAO,CAAC;IAC/C,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,0CAAG,SAAS,CAAI,CAAC;IAC1B,CAAC;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"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import type { QuestionnaireItem } from 'fhir/r4';
3
+ interface LabelWrapperProps {
4
+ qItem: QuestionnaireItem;
5
+ readOnly: boolean;
6
+ }
7
+ declare function ItemLabelWrapper(props: LabelWrapperProps): React.JSX.Element;
8
+ export default ItemLabelWrapper;
@@ -0,0 +1,53 @@
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 Box from '@mui/material/Box';
19
+ import ContextDisplayItem from './ContextDisplayItem';
20
+ import { getContextDisplays } from '../../../utils/tabs';
21
+ import ItemLabelText from './ItemLabelText';
22
+ import Tooltip from '@mui/material/Tooltip';
23
+ import Typography from '@mui/material/Typography';
24
+ import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
25
+ import Iconify from '../../Iconify/Iconify';
26
+ function ItemLabelWrapper(props) {
27
+ const { qItem, readOnly } = props;
28
+ const { required, displayFlyover } = useRenderingExtensions(qItem);
29
+ const contextDisplayItems = getContextDisplays(qItem);
30
+ return (React.createElement(Box, { display: "flex", alignItems: "center", justifyContent: "space-between" },
31
+ React.createElement(Tooltip, { title: displayFlyover, placement: "top", slotProps: {
32
+ popper: {
33
+ modifiers: [
34
+ {
35
+ name: 'offset',
36
+ options: {
37
+ offset: [0, -8]
38
+ }
39
+ }
40
+ ]
41
+ }
42
+ } },
43
+ React.createElement("span", null,
44
+ React.createElement(Box, { display: "flex", columnGap: 0.4, justifyContent: "space-between", alignItems: "center" },
45
+ required ? (React.createElement(Typography, { color: "red", sx: { ml: -1.15 } }, "*")) : null,
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))),
48
+ React.createElement(Box, { display: "flex", columnGap: 0.5 }, contextDisplayItems.map((item) => {
49
+ return React.createElement(ContextDisplayItem, { key: item.linkId, displayItem: item });
50
+ }))));
51
+ }
52
+ export default ItemLabelWrapper;
53
+ //# sourceMappingURL=ItemLabelWrapper.js.map
@@ -0,0 +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;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"}
@@ -77,6 +77,7 @@ function OpenChoiceAutocompleteItem(props) {
77
77
  // Event handlers
78
78
  // Handler function which handles both input change and selection change
79
79
  function handleValueChange(newValue, reason) {
80
+ // When the reason is selectOption this function gets called twice. One for the string value and one for the selected option. So we need to make sure we ignore the string value on selectOption
80
81
  // If the reason is reset, then don't change value. Otherwise you will end up with looped setState calls
81
82
  if (reason === 'reset') {
82
83
  return;
@@ -89,7 +90,7 @@ function OpenChoiceAutocompleteItem(props) {
89
90
  setInput('');
90
91
  newValue = '';
91
92
  }
92
- if (typeof newValue === 'string') {
93
+ if (typeof newValue === 'string' && reason === 'input') {
93
94
  if (newValue !== '') {
94
95
  // Check if the newValue is in the options, first check options.display, then check options.code
95
96
  const foundOption = options.find((option) => {
@@ -117,8 +118,8 @@ function OpenChoiceAutocompleteItem(props) {
117
118
  onQrItemChange(createEmptyQrItem(qItem, answerKey));
118
119
  }
119
120
  }
120
- else {
121
- // For coding selection, update immediately (no debounce)
121
+ else if (typeof newValue === 'object' && reason === 'selectOption') {
122
+ // For coding selection, update immediately (no debounce) i.e reason should be selectOption
122
123
  onQrItemChange({
123
124
  ...createEmptyQrItem(qItem, answerKey),
124
125
  answer: [{ id: answerKey, valueCoding: newValue }]
@@ -1 +1 @@
1
- {"version":3,"file":"OpenChoiceAutocompleteItem.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OpenChoiceAutocompleteItem.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import type { QuestionnaireResponseItem } from 'fhir/r4';
3
+ interface DeleteItemButtonProps {
4
+ nullableQrItem: QuestionnaireResponseItem | null;
5
+ numOfRepeatGroups: number;
6
+ readOnly: boolean;
7
+ onDeleteItem: () => void;
8
+ }
9
+ declare function DeleteItemButton(props: DeleteItemButtonProps): React.JSX.Element;
10
+ export default DeleteItemButton;
@@ -0,0 +1,30 @@
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 { RepeatDeleteTooltip } from '../RepeatItem/RepeatItem.styles';
19
+ import IconButton from '@mui/material/IconButton';
20
+ import RemoveCircleOutlineIcon from '@mui/icons-material/RemoveCircleOutline';
21
+ function DeleteItemButton(props) {
22
+ const { nullableQrItem, numOfRepeatGroups, readOnly, onDeleteItem } = props;
23
+ const isDisabled = nullableQrItem === null || numOfRepeatGroups === 1 || readOnly;
24
+ return (React.createElement(RepeatDeleteTooltip, { className: "repeat-group-delete", title: "Remove item" },
25
+ React.createElement("span", null,
26
+ React.createElement(IconButton, { size: "small", color: "error", disabled: isDisabled, onClick: onDeleteItem },
27
+ React.createElement(RemoveCircleOutlineIcon, null)))));
28
+ }
29
+ export default DeleteItemButton;
30
+ //# sourceMappingURL=DeleteItemButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeleteItemButton.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/RepeatGroup/DeleteItemButton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,uBAAuB,MAAM,yCAAyC,CAAC;AAU9E,SAAS,gBAAgB,CAAC,KAA4B;IACpD,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IAE5E,MAAM,UAAU,GAAG,cAAc,KAAK,IAAI,IAAI,iBAAiB,KAAK,CAAC,IAAI,QAAQ,CAAC;IAElF,OAAO,CACL,oBAAC,mBAAmB,IAAC,SAAS,EAAC,qBAAqB,EAAC,KAAK,EAAC,aAAa;QACtE;YACE,oBAAC,UAAU,IAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,OAAO,EAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY;gBAChF,oBAAC,uBAAuB,OAAG,CAChB,CACR,CACa,CACvB,CAAC;AACJ,CAAC;AAED,eAAe,gBAAgB,CAAC"}
@@ -32,7 +32,20 @@ function SingleItem(props) {
32
32
  const updateEnableWhenItem = useQuestionnaireStore.use.updateEnableWhenItem();
33
33
  const handleQrItemChange = useCallback((newQrItem) => {
34
34
  updateEnableWhenItem(qItem.linkId, newQrItem.answer, parentIsRepeatGroup ? (parentRepeatGroupIndex ?? null) : null);
35
- if (qrItem && qrItem.item && qrItem.item.length > 0) {
35
+ if (qItem && qrItem?.answer && qrItem.answer.length > 0) {
36
+ // Find the matching answer in qrItem by id
37
+ const matchingAnswer = qrItem.answer.find((ans) => ans.id === newQrItem.answer?.[0]?.id);
38
+ // Create updated newQrItem with the nested items from the matching answer
39
+ const updatedQrItem = {
40
+ ...newQrItem,
41
+ answer: newQrItem.answer?.map((ans) => ({
42
+ ...ans,
43
+ ...(matchingAnswer?.item && { item: matchingAnswer.item })
44
+ }))
45
+ };
46
+ onQrItemChange(updatedQrItem);
47
+ }
48
+ else if (qrItem && qrItem.item && qrItem.item.length > 0) {
36
49
  onQrItemChange({ ...newQrItem, item: qrItem.item });
37
50
  }
38
51
  else {
@@ -47,7 +60,7 @@ function SingleItem(props) {
47
60
  onQrItemChange
48
61
  ]);
49
62
  const handleQrItemChangeWithNestedItems = useCallback((newQrItem) => {
50
- const updatedQrItem = qrItem ? { ...qrItem, item: newQrItem.item } : newQrItem;
63
+ const updatedQrItem = qrItem ? { ...qrItem, answer: newQrItem.answer } : newQrItem;
51
64
  onQrItemChange(updatedQrItem);
52
65
  }, [qrItem, onQrItemChange]);
53
66
  const itemHasNestedItems = useMemo(() => !!qItem.item && qItem.item.length > 0 && shouldRenderNestedItems(qItem), [qItem]);
@@ -1 +1 @@
1
- {"version":3,"file":"SingleItem.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/SingleItem/SingleItem.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAc,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAWpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,SAAS,MAAM,0BAA0B,CAAC;AACjD,OAAO,WAAW,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAe9C;;;;;GAKG;AACH,SAAS,UAAU,CAAC,KAAsB;IACxC,MAAM,EACJ,KAAK,EACL,MAAM,EACN,UAAU,GAAG,KAAK,EAClB,QAAQ,GAAG,KAAK,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,YAAY,EACZ,cAAc,EACf,GAAG,KAAK,CAAC;IAEV,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC;IAE9E,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,SAAoC,EAAE,EAAE;QACvC,oBAAoB,CAClB,KAAK,CAAC,MAAM,EACZ,SAAS,CAAC,MAAM,EAChB,mBAAmB,CAAC,CAAC,CAAC,CAAC,sBAAsB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAC9D,CAAC;QAEF,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,cAAc,CAAC,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC;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,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/E,cAAc,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC,EACD,CAAC,MAAM,EAAE,cAAc,CAAC,CACzB,CAAC;IAEF,MAAM,kBAAkB,GAAG,OAAO,CAChC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,uBAAuB,CAAC,KAAK,CAAC,EAC7E,CAAC,KAAK,CAAC,CACR,CAAC;IAEF,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,CAAC,CAAC;IAC9E,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;IAE9D,OAAO,CACL,KAAC,cAAc,IACb,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,kBAAkB,EACtC,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,kBAAkB,EAAE,kBAAkB,EACtC,gBAAgB,EAAE,QAAQ,EAC1B,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,kBAAkB,EAClC,6BAA6B,EAAE,iCAAiC,GAChE,CACH,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,29 +18,29 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
18
18
  import { useMemo } from 'react';
19
19
  import { getQrItemsIndex, mapQItemsIndex } from '../../../utils/mapItem';
20
20
  import GroupItemSwitcher from '../GroupItem/GroupItemSwitcher';
21
- import { createEmptyQrGroup, updateQrItemsInGroup } from '../../../utils/qrItem';
21
+ import { createEmptyRepeatNestedItems, updateQrNestedItems } from '../../../utils/qrItem';
22
22
  import Box from '@mui/material/Box';
23
23
  function SingleNestedItems(props) {
24
24
  const { qItem, qrItem, groupCardElevation, parentIsReadOnly, onQrItemChange } = props;
25
25
  const qItemsIndexMap = useMemo(() => mapQItemsIndex(qItem), [qItem]);
26
26
  const qItems = qItem.item;
27
- const qrGroup = qrItem && qrItem.item ? qrItem : createEmptyQrGroup(qItem);
28
- const qrItems = qrGroup.item;
27
+ const qrGroup = qrItem && qrItem.answer ? qrItem : createEmptyRepeatNestedItems(qItem);
28
+ const qrAnswers = qrGroup.answer;
29
29
  // Event Handlers
30
30
  function handleQrItemChange(newQrItem) {
31
31
  const updatedQrGroup = { ...qrGroup };
32
- updateQrItemsInGroup(newQrItem, null, updatedQrGroup, qItemsIndexMap);
32
+ updateQrNestedItems(newQrItem, updatedQrGroup, qItemsIndexMap);
33
33
  onQrItemChange(updatedQrGroup);
34
34
  }
35
- function handleQrRepeatGroupChange(qrRepeatGroup) {
35
+ function handleQrRepeatGroupChange() {
36
36
  const updatedQrGroup = { ...qrGroup };
37
- updateQrItemsInGroup(null, qrRepeatGroup, updatedQrGroup, qItemsIndexMap);
37
+ updateQrNestedItems(null, updatedQrGroup, qItemsIndexMap);
38
38
  onQrItemChange(updatedQrGroup);
39
39
  }
40
- if (!qItems || !qrItems) {
40
+ if (!qItems || !qrAnswers) {
41
41
  return _jsx(_Fragment, { children: "Unable to load group, something has gone terribly wrong." });
42
42
  }
43
- const qrItemsByIndex = getQrItemsIndex(qItems, qrItems, qItemsIndexMap);
43
+ const qrItemsByIndex = getQrItemsIndex(qItems, qrAnswers[0]?.item, qItemsIndexMap);
44
44
  // TODO - Add support for horizontal "row" layout
45
45
  return (_jsxs(Box, { display: "flex", children: [_jsx(Box, { ml: 1.5 }), _jsx(Box, { flexGrow: 1, children: qItems.map((qItem, i) => {
46
46
  const qrItemOrItems = qrItemsByIndex[i];
@@ -1 +1 @@
1
- {"version":3,"file":"SingleNestedItems.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/SingleItem/SingleNestedItems.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,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,GAA8B,EAAE,GAAG,OAAO,EAAE,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,GAA8B,EAAE,GAAG,OAAO,EAAE,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,CAAC;QACxB,OAAO,yFAA6D,CAAC;IACvE,CAAC;IAED,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAExE,iDAAiD;IACjD,OAAO,CACL,MAAC,GAAG,IAAC,OAAO,EAAC,MAAM,aACjB,KAAC,GAAG,IAAC,EAAE,EAAE,GAAG,GAAI,EAChB,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,YACb,MAAM,CAAC,GAAG,CAAC,CAAC,KAAwB,EAAE,CAAC,EAAE,EAAE;oBAC1C,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;oBAExC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;wBAC7B,OAAO,IAAI,CAAC;oBACd,CAAC;oBAED,OAAO,CACL,KAAC,iBAAiB,IAEhB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,kBAAkB,EAAE,kBAAkB,GAAG,CAAC,EAC1C,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,kBAAkB,EAClC,qBAAqB,EAAE,yBAAyB,IAN3C,KAAK,CAAC,MAAM,CAOjB,CACH,CAAC;gBACJ,CAAC,CAAC,GACE,EACN,KAAC,GAAG,IAAC,EAAE,EAAE,IAAI,GAAQ,IACjB,CACP,CAAC;AACJ,CAAC;AAED,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"SingleNestedItems.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/SingleItem/SingleNestedItems.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,4BAA4B,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAK1F,OAAO,GAAG,MAAM,mBAAmB,CAAC;AAUpC,SAAS,iBAAiB,CAAC,KAA6B;IACtD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAEtF,MAAM,cAAc,GAA2B,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAE7F,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;IAC1B,MAAM,OAAO,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC;IACvF,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjC,iBAAiB;IACjB,SAAS,kBAAkB,CAAC,SAAoC;QAC9D,MAAM,cAAc,GAA8B,EAAE,GAAG,OAAO,EAAE,CAAC;QACjE,mBAAmB,CAAC,SAAS,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;QAC/D,cAAc,CAAC,cAAc,CAAC,CAAC;IACjC,CAAC;IAED,SAAS,yBAAyB;QAChC,MAAM,cAAc,GAA8B,EAAE,GAAG,OAAO,EAAE,CAAC;QACjE,mBAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;QAC1D,cAAc,CAAC,cAAc,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAC1B,OAAO,yFAA6D,CAAC;IACvE,CAAC;IAED,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IAEnF,iDAAiD;IACjD,OAAO,CACL,MAAC,GAAG,IAAC,OAAO,EAAC,MAAM,aACjB,KAAC,GAAG,IAAC,EAAE,EAAE,GAAG,GAAI,EAChB,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,YACb,MAAM,CAAC,GAAG,CAAC,CAAC,KAAwB,EAAE,CAAC,EAAE,EAAE;oBAC1C,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;oBAExC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;wBAC7B,OAAO,IAAI,CAAC;oBACd,CAAC;oBAED,OAAO,CACL,KAAC,iBAAiB,IAEhB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,kBAAkB,EAAE,kBAAkB,GAAG,CAAC,EAC1C,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,kBAAkB,EAClC,qBAAqB,EAAE,yBAAyB,IAN3C,KAAK,CAAC,MAAM,CAOjB,CACH,CAAC;gBACJ,CAAC,CAAC,GACE,EACN,KAAC,GAAG,IAAC,EAAE,EAAE,IAAI,GAAQ,IACjB,CACP,CAAC;AACJ,CAAC;AAED,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import type { SxProps, Theme } from '@mui/material/styles';
3
+ interface IconifyProps {
4
+ icon: string;
5
+ width?: number;
6
+ height?: number;
7
+ sx?: SxProps<Theme>;
8
+ }
9
+ declare const Iconify: React.NamedExoticComponent<IconifyProps & React.RefAttributes<unknown>>;
10
+ export default Iconify;
@@ -0,0 +1,26 @@
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, { forwardRef, memo } from 'react';
18
+ import { Icon } from '@iconify/react';
19
+ import Box from '@mui/material/Box';
20
+ const Iconify = memo(forwardRef(function Iconify(props, ref) {
21
+ // eslint-disable-next-line react/prop-types
22
+ const { icon, width = 20, height = 20, sx } = props;
23
+ return React.createElement(Box, { ref: ref, component: Icon, icon: icon, sx: Object.assign({ width, height }, sx) });
24
+ }));
25
+ export default Iconify;
26
+ //# sourceMappingURL=Iconify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Iconify.js","sourceRoot":"","sources":["../../../src/components/Iconify/Iconify.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,OAAO,GAAG,MAAM,mBAAmB,CAAC;AASpC,MAAM,OAAO,GAAG,IAAI,CAClB,UAAU,CAAC,SAAS,OAAO,CAAC,KAAmB,EAAE,GAAG;IAClD,4CAA4C;IAC5C,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;IACpD,OAAO,oBAAC,GAAG,IAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,kBAAI,KAAK,EAAE,MAAM,IAAK,EAAE,IAAM,CAAC;AACtF,CAAC,CAAC,CACH,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
3
+ import type { PropsWithParentIsReadOnlyAttribute, PropsWithQrItemChangeHandler } from '../../interfaces/renderProps.interface';
4
+ interface FormBodyPageProps extends PropsWithQrItemChangeHandler, PropsWithParentIsReadOnlyAttribute {
5
+ topLevelQItem: QuestionnaireItem;
6
+ topLevelQRItem: QuestionnaireResponseItem | null;
7
+ }
8
+ declare function FormBodyPage(props: FormBodyPageProps): React.JSX.Element;
9
+ export default FormBodyPage;
@@ -0,0 +1,43 @@
1
+ import React, { useMemo } from 'react';
2
+ import Grid from '@mui/material/Grid';
3
+ import TabContext from '@mui/lab/TabContext';
4
+ import TabPanel from '@mui/lab/TabPanel';
5
+ import GroupItem from '../FormComponents/GroupItem/GroupItem';
6
+ import { useQuestionnaireStore } from '../../stores';
7
+ import { getQrItemsIndex, mapQItemsIndex } from '../../utils/mapItem';
8
+ import { createEmptyQrGroup, updateQrItemsInGroup } from '../../utils/qrItem';
9
+ function FormBodyPage(props) {
10
+ const { topLevelQItem, topLevelQRItem, parentIsReadOnly, onQrItemChange } = props;
11
+ const pages = useQuestionnaireStore.use.pages();
12
+ const currentPage = useQuestionnaireStore.use.currentPageIndex();
13
+ const indexMap = useMemo(() => mapQItemsIndex(topLevelQItem), [topLevelQItem]);
14
+ const nonNullTopLevelQRItem = topLevelQRItem !== null && topLevelQRItem !== void 0 ? topLevelQRItem : createEmptyQrGroup(topLevelQItem);
15
+ const qItems = topLevelQItem.item;
16
+ const qrItems = nonNullTopLevelQRItem.item;
17
+ function handleQrGroupChange(qrItem) {
18
+ updateQrItemsInGroup(qrItem, null, nonNullTopLevelQRItem, indexMap);
19
+ onQrItemChange(nonNullTopLevelQRItem);
20
+ }
21
+ if (!qItems || !qrItems) {
22
+ return React.createElement(React.Fragment, null, "Unable to load form");
23
+ }
24
+ const qrItemsByIndex = getQrItemsIndex(qItems, qrItems, indexMap);
25
+ return (React.createElement(Grid, { container: true, spacing: 1.5 },
26
+ React.createElement(TabContext, { value: currentPage.toString() },
27
+ React.createElement(Grid, { item: true, xs: 12, md: 12, lg: 12 }, qItems.map((qItem, i) => {
28
+ var _a, _b;
29
+ const qrItem = qrItemsByIndex[i];
30
+ const isNotRepeatGroup = !Array.isArray(qrItem);
31
+ const isPage = !!pages[qItem.linkId];
32
+ if (!isPage || !isNotRepeatGroup) {
33
+ // Something has gone horribly wrong
34
+ return null;
35
+ }
36
+ const isRepeated = (_a = qItem.repeats) !== null && _a !== void 0 ? _a : false;
37
+ const pageIsMarkedAsComplete = (_b = pages[qItem.linkId].isComplete) !== null && _b !== void 0 ? _b : false;
38
+ return (React.createElement(TabPanel, { key: qItem.linkId, sx: { p: 0 }, value: i.toString(), "data-test": "renderer-page-panel" },
39
+ React.createElement(GroupItem, { qItem: qItem, qrItem: qrItem !== null && qrItem !== void 0 ? qrItem : null, isRepeated: isRepeated, groupCardElevation: 1, pageIsMarkedAsComplete: pageIsMarkedAsComplete, pages: pages, currentPageIndex: currentPage, parentIsReadOnly: parentIsReadOnly, onQrItemChange: handleQrGroupChange })));
40
+ })))));
41
+ }
42
+ export default FormBodyPage;
43
+ //# sourceMappingURL=FormBodyPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormBodyPage.js","sourceRoot":"","sources":["../../../src/components/Renderer/FormBodyPage.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { Questionnaire } from 'fhir/r4';
3
+ interface FormTitleProps {
4
+ questionnaire: Questionnaire;
5
+ }
6
+ declare const FormTitle: React.NamedExoticComponent<FormTitleProps>;
7
+ export default FormTitle;
@@ -0,0 +1,30 @@
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, { memo } from 'react';
18
+ import parse from 'html-react-parser';
19
+ import { getXHtmlStringFromQuestionnaire } from '../../utils/qItem';
20
+ import { FormTitleWrapper } from '../Box.styles';
21
+ import Typography from '@mui/material/Typography';
22
+ const FormTitle = memo(function FormTitle(props) {
23
+ const { questionnaire } = props;
24
+ const xHtmlString = getXHtmlStringFromQuestionnaire(questionnaire);
25
+ const formTitle = xHtmlString ? parse(xHtmlString) : questionnaire.title;
26
+ return (React.createElement(FormTitleWrapper, null,
27
+ React.createElement(Typography, { variant: "h3", "data-test": "form-heading" }, formTitle)));
28
+ });
29
+ export default FormTitle;
30
+ //# sourceMappingURL=FormTitle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormTitle.js","sourceRoot":"","sources":["../../../src/components/Renderer/FormTitle.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,KAAK,MAAM,mBAAmB,CAAC;AACtC,OAAO,EAAE,+BAA+B,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAMlD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,SAAS,CAAC,KAAqB;IAC7D,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IAEhC,MAAM,WAAW,GAAG,+BAA+B,CAAC,aAAa,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC;IAEzE,OAAO,CACL,oBAAC,gBAAgB;QACf,oBAAC,UAAU,IAAC,OAAO,EAAC,IAAI,eAAW,cAAc,IAC9C,SAAS,CACC,CACI,CACpB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,eAAe,SAAS,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
3
+ import type { PropsWithParentIsReadOnlyAttribute, PropsWithQrItemChangeHandler } from '../../interfaces/renderProps.interface';
4
+ interface FormTopLevelPageProps extends PropsWithQrItemChangeHandler, PropsWithParentIsReadOnlyAttribute {
5
+ topLevelQItems: QuestionnaireItem[];
6
+ topLevelQRItems: (QuestionnaireResponseItem | QuestionnaireResponseItem[] | undefined)[];
7
+ }
8
+ declare function FormTopLevelPage(props: FormTopLevelPageProps): React.JSX.Element;
9
+ export default FormTopLevelPage;
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import Grid from '@mui/material/Grid';
3
+ import TabContext from '@mui/lab/TabContext';
4
+ import TabPanel from '@mui/lab/TabPanel';
5
+ import GroupItem from '../FormComponents/GroupItem/GroupItem';
6
+ import { useQuestionnaireStore } from '../../stores';
7
+ function FormTopLevelPage(props) {
8
+ const { topLevelQItems, topLevelQRItems, parentIsReadOnly, onQrItemChange } = props;
9
+ const pages = useQuestionnaireStore.use.pages();
10
+ const currentPage = useQuestionnaireStore.use.currentPageIndex();
11
+ return (React.createElement(Grid, { container: true, spacing: 1.5 },
12
+ React.createElement(TabContext, { value: currentPage.toString() },
13
+ React.createElement(Grid, { item: true, xs: 12, md: 12, lg: 12 }, topLevelQItems.map((qItem, i) => {
14
+ var _a, _b;
15
+ const qrItem = topLevelQRItems[i];
16
+ const isNotRepeatGroup = !Array.isArray(qrItem);
17
+ const isPage = !!pages[qItem.linkId];
18
+ if (!isPage || !isNotRepeatGroup) {
19
+ // Something has gone horribly wrong
20
+ return null;
21
+ }
22
+ const isRepeated = (_a = qItem.repeats) !== null && _a !== void 0 ? _a : false;
23
+ const pageIsMarkedAsComplete = (_b = pages[qItem.linkId].isComplete) !== null && _b !== void 0 ? _b : false;
24
+ return (React.createElement(TabPanel, { key: qItem.linkId, sx: { p: 0 }, value: i.toString(), "data-test": "renderer-page-panel" },
25
+ React.createElement(GroupItem, { qItem: qItem, qrItem: qrItem !== null && qrItem !== void 0 ? qrItem : null, isRepeated: isRepeated, groupCardElevation: 1, pageIsMarkedAsComplete: pageIsMarkedAsComplete, pages: pages, currentPageIndex: currentPage, parentIsReadOnly: parentIsReadOnly, onQrItemChange: onQrItemChange })));
26
+ })))));
27
+ }
28
+ export default FormTopLevelPage;
29
+ //# sourceMappingURL=FormTopLevelPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormTopLevelPage.js","sourceRoot":"","sources":["../../../src/components/Renderer/FormTopLevelPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,oBAAoB,CAAC;AAEtC,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAC7C,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AACzC,OAAO,SAAS,MAAM,uCAAuC,CAAC;AAK9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AASrD,SAAS,gBAAgB,CAAC,KAA4B;IACpD,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAEpF,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IAChD,MAAM,WAAW,GAAG,qBAAqB,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAEjE,OAAO,CACL,oBAAC,IAAI,IAAC,SAAS,QAAC,OAAO,EAAE,GAAG;QAC1B,oBAAC,UAAU,IAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE;YACvC,oBAAC,IAAI,IAAC,IAAI,QAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAC9B,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;;gBAC/B,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;gBAElC,MAAM,gBAAgB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAChD,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAErC,IAAI,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACjC,oCAAoC;oBACpC,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,MAAM,UAAU,GAAG,MAAA,KAAK,CAAC,OAAO,mCAAI,KAAK,CAAC;gBAC1C,MAAM,sBAAsB,GAAG,MAAA,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,mCAAI,KAAK,CAAC;gBAEvE,OAAO,CACL,oBAAC,QAAQ,IACP,GAAG,EAAE,KAAK,CAAC,MAAM,EACjB,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EACZ,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,eACT,qBAAqB;oBAC/B,oBAAC,SAAS,IACR,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,IAAI,EACtB,UAAU,EAAE,UAAU,EACtB,kBAAkB,EAAE,CAAC,EACrB,sBAAsB,EAAE,sBAAsB,EAC9C,KAAK,EAAE,KAAK,EACZ,gBAAgB,EAAE,WAAW,EAC7B,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,cAAc,GAC9B,CACO,CACZ,CAAC;YACJ,CAAC,CAAC,CACG,CACI,CACR,CACR,CAAC;AACJ,CAAC;AAED,eAAe,gBAAgB,CAAC"}
@@ -27,7 +27,7 @@ const FormBodyTabListWrapper = memo(function FormBodyTabListWrapper(props) {
27
27
  const { topLevelItems, currentTabIndex, tabs } = props;
28
28
  const [completedTabsExpanded, setCompletedTabsExpanded] = useState(true);
29
29
  const { allContextDisplayItems, completedDisplayItemExists } = useContextDisplayItems(topLevelItems);
30
- return (_jsx(Card, { sx: { p: 0.75, mb: 2 }, children: _jsx(Box, { sx: { flexGrow: 1 }, children: _jsx("aside", { "aria-label": "Questionaire tab items", children: _jsxs(PrimarySelectableList, { dense: true, disablePadding: true, sx: { mb: 0.5, mt: completedDisplayItemExists ? 0 : 0.5 }, "data-test": "renderer-tab-list", children: [completedDisplayItemExists ? (_jsxs(_Fragment, { children: [_jsx(ShowCompletedTabsSection, { completedTabsExpanded: completedTabsExpanded, setCompletedTabsExpanded: setCompletedTabsExpanded }), _jsx(Divider, { sx: { mx: 1, opacity: 0.6 } })] })) : null, _jsx(FormBodyTabList, { topLevelItems: topLevelItems, currentTabIndex: currentTabIndex, tabs: tabs, completedTabsCollapsed: !completedTabsExpanded, allContextDisplayItems: allContextDisplayItems })] }) }) }) }));
30
+ return (_jsx(Card, { sx: { p: 0.75, mb: 2 }, children: _jsx(Box, { sx: { flexGrow: 1 }, children: _jsx("aside", { "aria-label": "Form sections", children: _jsxs(PrimarySelectableList, { dense: true, disablePadding: true, sx: { mb: 0.5, mt: completedDisplayItemExists ? 0 : 0.5 }, "data-test": "renderer-tab-list", children: [completedDisplayItemExists ? (_jsxs(_Fragment, { children: [_jsx(ShowCompletedTabsSection, { completedTabsExpanded: completedTabsExpanded, setCompletedTabsExpanded: setCompletedTabsExpanded }), _jsx(Divider, { sx: { mx: 1, opacity: 0.6 } })] })) : null, _jsx(FormBodyTabList, { topLevelItems: topLevelItems, currentTabIndex: currentTabIndex, tabs: tabs, completedTabsCollapsed: !completedTabsExpanded, allContextDisplayItems: allContextDisplayItems })] }) }) }) }));
31
31
  });
32
32
  export default FormBodyTabListWrapper;
33
33
  //# sourceMappingURL=FormBodyTabListWrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormBodyTabListWrapper.js","sourceRoot":"","sources":["../../../src/components/Tabs/FormBodyTabListWrapper.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,IAAI,MAAM,oBAAoB,CAAC;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAGxD,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,sBAAsB,MAAM,oCAAoC,CAAC;AAQxE,MAAM,sBAAsB,GAAG,IAAI,CAAC,SAAS,sBAAsB,CACjE,KAAkC;IAElC,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAEvD,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEzE,MAAM,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,GAC1D,sBAAsB,CAAC,aAAa,CAAC,CAAC;IAExC,OAAO,CACL,KAAC,IAAI,IAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,YAC1B,KAAC,GAAG,IAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,YACtB,8BAAkB,wBAAwB,YACxC,MAAC,qBAAqB,IACpB,KAAK,QACL,cAAc,QACd,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,eAC/C,mBAAmB,aAC5B,0BAA0B,CAAC,CAAC,CAAC,CAC5B,8BACE,KAAC,wBAAwB,IACvB,qBAAqB,EAAE,qBAAqB,EAC5C,wBAAwB,EAAE,wBAAwB,GAClD,EACF,KAAC,OAAO,IAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,GAAI,IACvC,CACJ,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,eAAe,IACd,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE,IAAI,EACV,sBAAsB,EAAE,CAAC,qBAAqB,EAC9C,sBAAsB,EAAE,sBAAsB,GAC9C,IACoB,GAClB,GACJ,GACD,CACR,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"FormBodyTabListWrapper.js","sourceRoot":"","sources":["../../../src/components/Tabs/FormBodyTabListWrapper.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,IAAI,MAAM,oBAAoB,CAAC;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAGxD,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,sBAAsB,MAAM,oCAAoC,CAAC;AAQxE,MAAM,sBAAsB,GAAG,IAAI,CAAC,SAAS,sBAAsB,CACjE,KAAkC;IAElC,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAEvD,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEzE,MAAM,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,GAC1D,sBAAsB,CAAC,aAAa,CAAC,CAAC;IAExC,OAAO,CACL,KAAC,IAAI,IAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,YAC1B,KAAC,GAAG,IAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,YACtB,8BAAkB,eAAe,YAC/B,MAAC,qBAAqB,IACpB,KAAK,QACL,cAAc,QACd,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,eAC/C,mBAAmB,aAC5B,0BAA0B,CAAC,CAAC,CAAC,CAC5B,8BACE,KAAC,wBAAwB,IACvB,qBAAqB,EAAE,qBAAqB,EAC5C,wBAAwB,EAAE,wBAAwB,GAClD,EACF,KAAC,OAAO,IAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,GAAI,IACvC,CACJ,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,eAAe,IACd,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE,IAAI,EACV,sBAAsB,EAAE,CAAC,qBAAqB,EAC9C,sBAAsB,EAAE,sBAAsB,GAC9C,IACoB,GAClB,GACJ,GACD,CACR,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,eAAe,sBAAsB,CAAC"}