@aehrc/smart-forms-renderer 1.3.0 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/FormComponents/GroupItem/GroupAccordion.d.ts +10 -0
- package/lib/components/FormComponents/GroupItem/GroupAccordion.js +71 -0
- package/lib/components/FormComponents/GroupItem/GroupAccordion.js.map +1 -0
- package/lib/components/FormComponents/GroupItem/GroupAccordion.styles.d.ts +1 -1
- package/lib/components/FormComponents/GroupItem/GroupAccordion.styles.js +1 -1
- package/lib/components/FormComponents/GroupItem/GroupAccordion.styles.js.map +1 -1
- package/lib/components/FormComponents/GroupItem/GroupItemView.js +1 -1
- package/lib/components/FormComponents/GroupItem/GroupItemView.js.map +1 -1
- package/lib/components/FormComponents/RepeatGroup/RepeatGroupView.js +1 -1
- package/lib/components/FormComponents/RepeatGroup/RepeatGroupView.js.map +1 -1
- package/lib/components/FormComponents/Tables/GroupTableView.js +1 -1
- package/lib/components/FormComponents/Tables/GroupTableView.js.map +1 -1
- package/lib/components/Renderer/FormBodySingleCollapsible.js +1 -1
- package/lib/components/Renderer/FormBodySingleCollapsible.js.map +1 -1
- package/lib/components/Renderer/FormBodyTabbed.js +38 -6
- package/lib/components/Renderer/FormBodyTabbed.js.map +1 -1
- package/lib/components/Tabs/FormBodyTabListWrapper.d.ts +1 -0
- package/lib/components/Tabs/FormBodyTabListWrapper.js +2 -2
- package/lib/components/Tabs/FormBodyTabListWrapper.js.map +1 -1
- package/lib/hooks/index.d.ts +1 -0
- package/lib/hooks/index.js +2 -0
- package/lib/hooks/index.js.map +1 -1
- package/package.json +3 -3
- package/src/components/FormComponents/GroupItem/GroupAccordion.styles.ts +1 -1
- package/src/components/FormComponents/GroupItem/GroupAccordion.tsx +93 -0
- package/src/components/FormComponents/GroupItem/GroupItemView.tsx +1 -1
- package/src/components/FormComponents/RepeatGroup/RepeatGroupView.tsx +1 -1
- package/src/components/FormComponents/Tables/GroupTableView.tsx +1 -1
- package/src/components/Renderer/FormBodySingleCollapsible.tsx +1 -1
- package/src/components/Renderer/FormBodyTabbed.tsx +48 -7
- package/src/components/Tabs/FormBodyTabListWrapper.tsx +3 -2
- package/src/hooks/index.ts +3 -0
- package/lib/components/FormComponents/ItemParts/FadingCheckIcon.d.ts +0 -7
- package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js +0 -26
- package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js.map +0 -1
- package/lib/components/FormComponents/ItemParts/ItemLabelText.d.ts +0 -8
- package/lib/components/FormComponents/ItemParts/ItemLabelText.js +0 -63
- package/lib/components/FormComponents/ItemParts/ItemLabelText.js.map +0 -1
- package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.d.ts +0 -8
- package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js +0 -53
- package/lib/components/FormComponents/ItemParts/ItemLabelWrapper.js.map +0 -1
- package/lib/components/FormComponents/ItemParts/ItemTextSwitcher copy.d.ts +0 -7
- package/lib/components/FormComponents/ItemParts/ItemTextSwitcher copy.js +0 -39
- package/lib/components/FormComponents/ItemParts/ItemTextSwitcher copy.js.map +0 -1
- package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.d.ts +0 -10
- package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js +0 -30
- package/lib/components/FormComponents/RepeatGroup/DeleteItemButton.js.map +0 -1
- package/lib/components/Iconify/Iconify.d.ts +0 -10
- package/lib/components/Iconify/Iconify.js +0 -26
- package/lib/components/Iconify/Iconify.js.map +0 -1
- package/lib/components/Renderer/FormBodyPage.d.ts +0 -9
- package/lib/components/Renderer/FormBodyPage.js +0 -43
- package/lib/components/Renderer/FormBodyPage.js.map +0 -1
- package/lib/components/Renderer/FormTitle.d.ts +0 -7
- package/lib/components/Renderer/FormTitle.js +0 -30
- package/lib/components/Renderer/FormTitle.js.map +0 -1
- package/lib/components/Renderer/FormTopLevelPage.d.ts +0 -9
- package/lib/components/Renderer/FormTopLevelPage.js +0 -29
- package/lib/components/Renderer/FormTopLevelPage.js.map +0 -1
- package/lib/hooks/useBooleanCalculatedExpression.d.ts +0 -12
- package/lib/hooks/useBooleanCalculatedExpression.js +0 -52
- package/lib/hooks/useBooleanCalculatedExpression.js.map +0 -1
- package/lib/hooks/useCalculatedExpressionAnimating.d.ts +0 -1
- package/lib/hooks/useCalculatedExpressionAnimating.js +0 -18
- package/lib/hooks/useCalculatedExpressionAnimating.js.map +0 -1
- package/lib/hooks/useDecimalCalculatedExpression.d.ts +0 -13
- package/lib/hooks/useDecimalCalculatedExpression.js +0 -58
- package/lib/hooks/useDecimalCalculatedExpression.js.map +0 -1
- package/lib/hooks/useInitialiseGroupTable.d.ts +0 -4
- package/lib/hooks/useInitialiseGroupTable.js +0 -36
- package/lib/hooks/useInitialiseGroupTable.js.map +0 -1
- package/lib/hooks/useIntegerCalculatedExpression.d.ts +0 -12
- package/lib/hooks/useIntegerCalculatedExpression.js +0 -55
- package/lib/hooks/useIntegerCalculatedExpression.js.map +0 -1
- package/lib/hooks/useNumberInput.d.ts +0 -3
- package/lib/hooks/useNumberInput.js +0 -31
- package/lib/hooks/useNumberInput.js.map +0 -1
- package/lib/hooks/useRepeatAnswers.d.ts +0 -4
- package/lib/hooks/useRepeatAnswers.js +0 -34
- package/lib/hooks/useRepeatAnswers.js.map +0 -1
- package/lib/hooks/useRepeatGroups.d.ts +0 -4
- package/lib/hooks/useRepeatGroups.js +0 -34
- package/lib/hooks/useRepeatGroups.js.map +0 -1
- package/lib/hooks/useShowFeedback.d.ts +0 -11
- package/lib/hooks/useShowFeedback.js +0 -33
- package/lib/hooks/useShowFeedback.js.map +0 -1
- package/lib/hooks/useStringCalculatedExpression.d.ts +0 -14
- package/lib/hooks/useStringCalculatedExpression.js +0 -69
- package/lib/hooks/useStringCalculatedExpression.js.map +0 -1
- package/lib/hooks/useStringInput.d.ts +0 -3
- package/lib/hooks/useStringInput.js +0 -31
- package/lib/hooks/useStringInput.js.map +0 -1
- package/lib/interfaces/itemPath.interface.d.ts +0 -31
- package/lib/interfaces/itemPath.interface.js +0 -2
- package/lib/interfaces/itemPath.interface.js.map +0 -1
- package/lib/interfaces/repeatItem.interface.d.ts +0 -5
- package/lib/interfaces/repeatItem.interface.js +0 -2
- package/lib/interfaces/repeatItem.interface.js.map +0 -1
- package/lib/stores/rendererStylingStore.d.ts +0 -144
- package/lib/stores/rendererStylingStore.js +0 -68
- package/lib/stores/rendererStylingStore.js.map +0 -1
- package/lib/stories/storybookWrappers/InitialiseFormWrapperForStorybook.d.ts +0 -30
- package/lib/stories/storybookWrappers/InitialiseFormWrapperForStorybook.js +0 -46
- package/lib/stories/storybookWrappers/InitialiseFormWrapperForStorybook.js.map +0 -1
- package/lib/stories/storybookWrappers/index.d.ts +0 -2
- package/lib/stories/storybookWrappers/index.js +0 -18
- package/lib/stories/storybookWrappers/index.js.map +0 -1
- package/lib/stories/testUtils.d.ts +0 -23
- package/lib/stories/testUtils.js +0 -249
- package/lib/stories/testUtils.js.map +0 -1
- package/lib/theme/Theme.d.ts +0 -44
- package/lib/theme/Theme.js +0 -45
- package/lib/theme/Theme.js.map +0 -1
- package/lib/theme/customGlobalStyles.d.ts +0 -2
- package/lib/theme/customGlobalStyles.js +0 -61
- package/lib/theme/customGlobalStyles.js.map +0 -1
- package/lib/theme/overrides/Accordion.d.ts +0 -14
- package/lib/theme/overrides/Accordion.js +0 -32
- package/lib/theme/overrides/Accordion.js.map +0 -1
- package/lib/theme/overrides/Autocomplete.d.ts +0 -10
- package/lib/theme/overrides/Autocomplete.js +0 -28
- package/lib/theme/overrides/Autocomplete.js.map +0 -1
- package/lib/theme/overrides/Button.d.ts +0 -33
- package/lib/theme/overrides/Button.js +0 -52
- package/lib/theme/overrides/Button.js.map +0 -1
- package/lib/theme/overrides/Card.d.ts +0 -35
- package/lib/theme/overrides/Card.js +0 -49
- package/lib/theme/overrides/Card.js.map +0 -1
- package/lib/theme/overrides/Input.d.ts +0 -64
- package/lib/theme/overrides/Input.js +0 -81
- package/lib/theme/overrides/Input.js.map +0 -1
- package/lib/theme/overrides/Overrides.d.ts +0 -3
- package/lib/theme/overrides/Overrides.js +0 -29
- package/lib/theme/overrides/Overrides.js.map +0 -1
- package/lib/theme/overrides/Paper.d.ts +0 -12
- package/lib/theme/overrides/Paper.js +0 -31
- package/lib/theme/overrides/Paper.js.map +0 -1
- package/lib/theme/overrides/SpeedDial.d.ts +0 -16
- package/lib/theme/overrides/SpeedDial.js +0 -34
- package/lib/theme/overrides/SpeedDial.js.map +0 -1
- package/lib/theme/overrides/Table.d.ts +0 -12
- package/lib/theme/overrides/Table.js +0 -30
- package/lib/theme/overrides/Table.js.map +0 -1
- package/lib/theme/palette.d.ts +0 -27
- package/lib/theme/palette.js +0 -67
- package/lib/theme/palette.js.map +0 -1
- package/lib/theme/shadows.d.ts +0 -2
- package/lib/theme/shadows.js +0 -52
- package/lib/theme/shadows.js.map +0 -1
- package/lib/utils/answerExpression.d.ts +0 -18
- package/lib/utils/answerExpression.js +0 -133
- package/lib/utils/answerExpression.js.map +0 -1
- package/lib/utils/dayjsExtend.d.ts +0 -1
- package/lib/utils/dayjsExtend.js +0 -22
- package/lib/utils/dayjsExtend.js.map +0 -1
- package/lib/utils/dynamicValueSet.d.ts +0 -5
- package/lib/utils/dynamicValueSet.js +0 -96
- package/lib/utils/dynamicValueSet.js.map +0 -1
- package/lib/utils/fhirpathAsyncUtils/fhirpath-async.d.ts +0 -14
- package/lib/utils/fhirpathAsyncUtils/fhirpath-async.js +0 -639
- package/lib/utils/fhirpathAsyncUtils/fhirpath-async.js.map +0 -1
- package/lib/utils/fhirpathAsyncUtils/outcome-utils.d.ts +0 -3
- package/lib/utils/fhirpathAsyncUtils/outcome-utils.js +0 -41
- package/lib/utils/fhirpathAsyncUtils/outcome-utils.js.map +0 -1
- package/lib/utils/itemControl.d.ts +0 -97
- package/lib/utils/itemControl.js +0 -336
- package/lib/utils/itemControl.js.map +0 -1
- package/lib/utils/itemPath.d.ts +0 -57
- package/lib/utils/itemPath.js +0 -75
- package/lib/utils/itemPath.js.map +0 -1
- package/lib/utils/questionnaireStoreUtils/addAdditionalVariables.d.ts +0 -2
- package/lib/utils/questionnaireStoreUtils/addAdditionalVariables.js +0 -43
- package/lib/utils/questionnaireStoreUtils/addAdditionalVariables.js.map +0 -1
- package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.d.ts +0 -3
- package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js +0 -101
- package/lib/utils/questionnaireStoreUtils/createQuestionaireModel.js.map +0 -1
- package/lib/utils/validateQuestionnaire.d.ts +0 -66
- package/lib/utils/validateQuestionnaire.js +0 -559
- package/lib/utils/validateQuestionnaire.js.map +0 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { AccordionProps } from '@mui/material/Accordion';
|
|
2
|
+
interface GroupAccordionProps extends Omit<AccordionProps, 'elevation'> {
|
|
3
|
+
elevation: number;
|
|
4
|
+
defaultExpanded?: boolean;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* GroupAccordion component.
|
|
8
|
+
*/
|
|
9
|
+
export declare function GroupAccordion(props: GroupAccordionProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export default GroupAccordion;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2025 Commonwealth Scientific and Industrial Research
|
|
4
|
+
* Organisation (CSIRO) ABN 41 687 119 230.
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
* you may not use this file except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*/
|
|
18
|
+
import { useCallback, useState, useRef } from 'react';
|
|
19
|
+
import { StyledGroupAccordion } from './GroupAccordion.styles';
|
|
20
|
+
// Matches the MUI Accordion transition timeout used in GroupItemView/RepeatGroupView
|
|
21
|
+
const TRANSITION_DURATION_MS = 300;
|
|
22
|
+
/**
|
|
23
|
+
* Walk up the DOM to find the nearest element that actually scrolls.
|
|
24
|
+
* The page may not scroll on window — e.g. the smart-forms-app uses a styled
|
|
25
|
+
* `Main` div with `overflow: auto` as the scroll container.
|
|
26
|
+
*/
|
|
27
|
+
function findScrollContainer(el) {
|
|
28
|
+
let node = el.parentElement;
|
|
29
|
+
while (node) {
|
|
30
|
+
const { overflow, overflowY } = window.getComputedStyle(node);
|
|
31
|
+
if (overflow === 'auto' ||
|
|
32
|
+
overflow === 'scroll' ||
|
|
33
|
+
overflowY === 'auto' ||
|
|
34
|
+
overflowY === 'scroll') {
|
|
35
|
+
return node;
|
|
36
|
+
}
|
|
37
|
+
node = node.parentElement;
|
|
38
|
+
}
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* GroupAccordion component.
|
|
43
|
+
*/
|
|
44
|
+
export function GroupAccordion(props) {
|
|
45
|
+
const { defaultExpanded = false, onChange, children, ...rest } = props;
|
|
46
|
+
const [expanded, setExpanded] = useState(defaultExpanded);
|
|
47
|
+
const accordionRef = useRef(null);
|
|
48
|
+
const handleChange = useCallback((event, isExpanded) => {
|
|
49
|
+
// When the accordion expands, its content is mounted into the DOM (unmountOnExit).
|
|
50
|
+
// The browser's CSS scroll anchoring then adjusts the nearest scrollable ancestor's
|
|
51
|
+
// scrollTop every animation frame to keep anchor elements below the accordion in
|
|
52
|
+
// place — visually making the accordion header appear to jump upward.
|
|
53
|
+
//
|
|
54
|
+
// Fix: temporarily opt the scroll container out of scroll anchoring for the
|
|
55
|
+
// duration of the transition, then restore it.
|
|
56
|
+
const scrollContainer = accordionRef.current
|
|
57
|
+
? findScrollContainer(accordionRef.current)
|
|
58
|
+
: null;
|
|
59
|
+
if (scrollContainer) {
|
|
60
|
+
scrollContainer.style.overflowAnchor = 'none';
|
|
61
|
+
setTimeout(() => {
|
|
62
|
+
scrollContainer.style.overflowAnchor = '';
|
|
63
|
+
}, TRANSITION_DURATION_MS);
|
|
64
|
+
}
|
|
65
|
+
setExpanded(isExpanded);
|
|
66
|
+
onChange?.(event, isExpanded);
|
|
67
|
+
}, [onChange]);
|
|
68
|
+
return (_jsx(StyledGroupAccordion, { ref: accordionRef, expanded: expanded, onChange: handleChange, ...rest, children: children }));
|
|
69
|
+
}
|
|
70
|
+
export default GroupAccordion;
|
|
71
|
+
//# sourceMappingURL=GroupAccordion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GroupAccordion.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/GroupItem/GroupAccordion.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,qFAAqF;AACrF,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAEnC;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,EAAe;IAC1C,IAAI,IAAI,GAAuB,EAAE,CAAC,aAAa,CAAC;IAChD,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC9D,IACE,QAAQ,KAAK,MAAM;YACnB,QAAQ,KAAK,QAAQ;YACrB,SAAS,KAAK,MAAM;YACpB,SAAS,KAAK,QAAQ,EACtB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAOD;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAA0B;IACvD,MAAM,EAAE,eAAe,GAAG,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAEvE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAElD,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,KAA2B,EAAE,UAAmB,EAAE,EAAE;QACnD,mFAAmF;QACnF,oFAAoF;QACpF,iFAAiF;QACjF,sEAAsE;QACtE,EAAE;QACF,4EAA4E;QAC5E,+CAA+C;QAC/C,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO;YAC1C,CAAC,CAAC,mBAAmB,CAAC,YAAY,CAAC,OAAO,CAAC;YAC3C,CAAC,CAAC,IAAI,CAAC;QACT,IAAI,eAAe,EAAE,CAAC;YACpB,eAAe,CAAC,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC;YAC9C,UAAU,CAAC,GAAG,EAAE;gBACd,eAAe,CAAC,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC;YAC5C,CAAC,EAAE,sBAAsB,CAAC,CAAC;QAC7B,CAAC;QAED,WAAW,CAAC,UAAU,CAAC,CAAC;QACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAChC,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,OAAO,CACL,KAAC,oBAAoB,IAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,KAAM,IAAI,YAC1F,QAAQ,GACY,CACxB,CAAC;AACJ,CAAC;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const
|
|
1
|
+
export declare const StyledGroupAccordion: import("@emotion/styled").StyledComponent<{
|
|
2
2
|
children: NonNullable<React.ReactNode>;
|
|
3
3
|
classes?: Partial<import("@mui/material/Accordion").AccordionClasses>;
|
|
4
4
|
defaultExpanded?: boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { styled } from '@mui/material/styles';
|
|
2
2
|
import Accordion from '@mui/material/Accordion';
|
|
3
|
-
export const
|
|
3
|
+
export const StyledGroupAccordion = styled(Accordion, {
|
|
4
4
|
shouldForwardProp: (prop) => prop !== 'elevation'
|
|
5
5
|
})(({ elevation }) => ({
|
|
6
6
|
paddingTop: '8px',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupAccordion.styles.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/GroupItem/GroupAccordion.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,SAAS,MAAM,yBAAyB,CAAC;AAEhD,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"GroupAccordion.styles.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/GroupItem/GroupAccordion.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,SAAS,MAAM,yBAAyB,CAAC;AAEhD,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,SAAS,EAAE;IACpD,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,WAAW;CAClD,CAAC,CAAwB,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5C,UAAU,EAAE,KAAK;IACjB,aAAa,EAAE,KAAK;IACpB,WAAW,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;IAC7C,YAAY,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;IAC9C,YAAY,EAAE,MAAM;CACrB,CAAC,CAAC,CAAC"}
|
|
@@ -27,10 +27,10 @@ import AccordionDetails from '@mui/material/AccordionDetails';
|
|
|
27
27
|
import Divider from '@mui/material/Divider';
|
|
28
28
|
import { getGroupCollapsible } from '../../../utils/qItem';
|
|
29
29
|
import useReadOnly from '../../../hooks/useReadOnly';
|
|
30
|
-
import { GroupAccordion } from './GroupAccordion.styles';
|
|
31
30
|
import PageButtonsWrapper from './PageButtonWrapper';
|
|
32
31
|
import { useParseXhtml } from '../../../hooks/useParseXhtml';
|
|
33
32
|
import { getItemTextToDisplay } from '../../../utils/itemTextToDisplay';
|
|
33
|
+
import GroupAccordion from './GroupAccordion';
|
|
34
34
|
function GroupItemView(props) {
|
|
35
35
|
const { qItem, childQItems, qrItemsByIndex, isRepeated = false, groupCardElevation, disableCardView, tabIsMarkedAsComplete, tabs, currentTabIndex, pageIsMarkedAsComplete, pages, currentPageIndex, parentIsReadOnly, parentIsRepeatGroup, parentRepeatGroupIndex, parentStyles, onQrItemChange, onQrRepeatGroupChange } = props;
|
|
36
36
|
// If XHTML has styles, pass them to the GroupItemView so it cna be applied down the tree
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupItemView.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/GroupItem/GroupItemView.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAWtD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,cAAc,MAAM,gCAAgC,CAAC;AAC5D,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,WAAW,MAAM,4BAA4B,CAAC;AACrD,OAAO,
|
|
1
|
+
{"version":3,"file":"GroupItemView.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/GroupItem/GroupItemView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -9,13 +9,13 @@ import RepeatGroupItem from './RepeatGroupItem';
|
|
|
9
9
|
import AddItemButton from './AddItemButton';
|
|
10
10
|
import useReadOnly from '../../../hooks/useReadOnly';
|
|
11
11
|
import { getGroupCollapsible } from '../../../utils/qItem';
|
|
12
|
-
import { GroupAccordion } from '../GroupItem/GroupAccordion.styles';
|
|
13
12
|
import AccordionSummary from '@mui/material/AccordionSummary';
|
|
14
13
|
import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
|
|
15
14
|
import AccordionDetails from '@mui/material/AccordionDetails';
|
|
16
15
|
import GroupHeading from '../GroupItem/GroupHeading';
|
|
17
16
|
import { getItemTextToDisplay } from '../../../utils/itemTextToDisplay';
|
|
18
17
|
import { isGroupAddItemButtonHidden } from '../../../utils/extensions';
|
|
18
|
+
import GroupAccordion from '../GroupItem/GroupAccordion';
|
|
19
19
|
/**
|
|
20
20
|
* Main component to render a repeating, group Questionnaire item.
|
|
21
21
|
* Store and manages the state of multiple instances of GroupItem in a repeating group.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RepeatGroupView.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/RepeatGroup/RepeatGroupView.tsx"],"names":[],"mappings":";AAwBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,IAAI,MAAM,oBAAoB,CAAC;AACtC,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,OAAO,WAAW,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,
|
|
1
|
+
{"version":3,"file":"RepeatGroupView.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/RepeatGroup/RepeatGroupView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,6 @@ import AddRowButton from './AddRowButton';
|
|
|
12
12
|
import GroupTableBody from './GroupTableBody';
|
|
13
13
|
import { useQuestionnaireStore, useRendererConfigStore } from '../../../stores';
|
|
14
14
|
import { getGroupCollapsible } from '../../../utils/qItem';
|
|
15
|
-
import { GroupAccordion } from '../GroupItem/GroupAccordion.styles';
|
|
16
15
|
import AccordionSummary from '@mui/material/AccordionSummary';
|
|
17
16
|
import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
|
|
18
17
|
import AccordionDetails from '@mui/material/AccordionDetails';
|
|
@@ -21,6 +20,7 @@ import { StandardCheckbox } from '../../Checkbox.styles';
|
|
|
21
20
|
import { Box } from '@mui/material';
|
|
22
21
|
import { getItemTextToDisplay } from '../../../utils/itemTextToDisplay';
|
|
23
22
|
import { isGroupAddItemButtonHidden } from '../../../utils/extensions';
|
|
23
|
+
import GroupAccordion from '../GroupItem/GroupAccordion';
|
|
24
24
|
function GroupTableView(props) {
|
|
25
25
|
const { qItem, qItemsIndexMap, groupCardElevation, isRepeated, readOnly, tableRows, selectedIds, visibleItemLabels, calculatedColumnWidths, parentIsReadOnly, parentStyles, onAddRow, onRowChange, onRemoveRow, onSelectRow, onSelectAll, onReorderRows } = props;
|
|
26
26
|
const onFocusLinkId = useQuestionnaireStore.use.onFocusLinkId();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupTableView.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/Tables/GroupTableView.tsx"],"names":[],"mappings":";AAkBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,KAAK,MAAM,qBAAqB,CAAC;AACxC,OAAO,KAAK,MAAM,qBAAqB,CAAC;AACxC,OAAO,SAAS,MAAM,yBAAyB,CAAC;AAChD,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,SAAS,MAAM,yBAAyB,CAAC;AAChD,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAQ1C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,
|
|
1
|
+
{"version":3,"file":"GroupTableView.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/Tables/GroupTableView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ const FormBodySingleCollapsible = memo(function FormBodySingleCollapsible(props)
|
|
|
17
17
|
const isExpanded = selectedIndex === index;
|
|
18
18
|
return (_jsxs(Accordion, { expanded: isExpanded, slotProps: {
|
|
19
19
|
transition: { unmountOnExit: true, timeout: 250 }
|
|
20
|
-
}, "data-linkid": qItem.linkId, "data-label": qItem.text, "data-test": "renderer-accordion", onChange: () => onToggleExpand(index), children: [_jsx(AccordionSummary, { expandIcon: _jsx(ExpandMoreIcon, {}), children: _jsxs(Box, { display: "flex", alignItems: "center", justifyContent: "space-between", width: "100%", mr: 3, children: [_jsx(Typography, { children: collapsibleLabel }), _jsx(Box, { display: "flex", columnGap: 0.5, children: contextDisplayItems.map((item) => {
|
|
20
|
+
}, "data-linkid": qItem.linkId, "data-label": qItem.text, "data-test": "renderer-accordion", onChange: () => onToggleExpand(index), children: [_jsx(AccordionSummary, { expandIcon: _jsx(ExpandMoreIcon, {}), children: _jsxs(Box, { display: "flex", alignItems: "center", justifyContent: "space-between", width: "100%", mr: 3, children: [_jsx(Typography, { component: "h2", children: collapsibleLabel }), _jsx(Box, { display: "flex", columnGap: 0.5, children: contextDisplayItems.map((item) => {
|
|
21
21
|
return _jsx(ContextDisplayItem, { displayItem: item }, item.linkId);
|
|
22
22
|
}) })] }) }), _jsx(AccordionDetails, { children: _jsx(_Fragment, { children: children }) })] }));
|
|
23
23
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormBodySingleCollapsible.js","sourceRoot":"","sources":["../../../src/components/Renderer/FormBodySingleCollapsible.tsx"],"names":[],"mappings":";AAkBA,OAAc,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,wBAAwB,CAAC;AACtD,OAAO,kBAAkB,MAAM,gDAAgD,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAUrE,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,YAAY,CAAC,KAAK,CAAC,IAAI,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAElF,MAAM,UAAU,GAAG,aAAa,KAAK,KAAK,CAAC;IAE3C,OAAO,CACL,MAAC,SAAS,IACR,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE;YACT,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE;SAClD,iBACY,KAAK,CAAC,MAAM,gBACb,KAAK,CAAC,IAAI,eACZ,oBAAoB,EAC9B,QAAQ,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,aACrC,KAAC,gBAAgB,IAAC,UAAU,EAAE,KAAC,cAAc,KAAG,YAC9C,MAAC,GAAG,IAAC,OAAO,EAAC,MAAM,EAAC,UAAU,EAAC,QAAQ,EAAC,cAAc,EAAC,eAAe,EAAC,KAAK,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,aACvF,KAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"FormBodySingleCollapsible.js","sourceRoot":"","sources":["../../../src/components/Renderer/FormBodySingleCollapsible.tsx"],"names":[],"mappings":";AAkBA,OAAc,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,wBAAwB,CAAC;AACtD,OAAO,kBAAkB,MAAM,gDAAgD,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAUrE,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,YAAY,CAAC,KAAK,CAAC,IAAI,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAElF,MAAM,UAAU,GAAG,aAAa,KAAK,KAAK,CAAC;IAE3C,OAAO,CACL,MAAC,SAAS,IACR,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE;YACT,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE;SAClD,iBACY,KAAK,CAAC,MAAM,gBACb,KAAK,CAAC,IAAI,eACZ,oBAAoB,EAC9B,QAAQ,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,aACrC,KAAC,gBAAgB,IAAC,UAAU,EAAE,KAAC,cAAc,KAAG,YAC9C,MAAC,GAAG,IAAC,OAAO,EAAC,MAAM,EAAC,UAAU,EAAC,QAAQ,EAAC,cAAc,EAAC,eAAe,EAAC,KAAK,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,aACvF,KAAC,UAAU,IAAC,SAAS,EAAC,IAAI,YAAE,gBAAgB,GAAc,EAC1D,KAAC,GAAG,IAAC,OAAO,EAAC,MAAM,EAAC,SAAS,EAAE,GAAG,YAC/B,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,GACW,EACnB,KAAC,gBAAgB,cACf,4BAAG,QAAQ,GAAI,GACE,IACT,CACb,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,eAAe,yBAAyB,CAAC"}
|
|
@@ -15,7 +15,7 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
|
|
|
15
15
|
* See the License for the specific language governing permissions and
|
|
16
16
|
* limitations under the License.
|
|
17
17
|
*/
|
|
18
|
-
import { useMemo } from 'react';
|
|
18
|
+
import { useEffect, useMemo, useRef, useState } from 'react';
|
|
19
19
|
import { Grid } from '@mui/material';
|
|
20
20
|
import TabContext from '@mui/lab/TabContext';
|
|
21
21
|
import TabPanel from '@mui/lab/TabPanel';
|
|
@@ -30,6 +30,40 @@ function FormBodyTabbed(props) {
|
|
|
30
30
|
const currentTab = useQuestionnaireStore.use.currentTabIndex();
|
|
31
31
|
const tabListWidthOrResponsive = useRendererConfigStore.use.tabListWidthOrResponsive();
|
|
32
32
|
const tabListStickyTop = useRendererConfigStore.use.tabListStickyTop() ?? 0;
|
|
33
|
+
const tabListGridRef = useRef(null);
|
|
34
|
+
const [tabListMaxHeight, setTabListMaxHeight] = useState();
|
|
35
|
+
useEffect(() => {
|
|
36
|
+
const el = tabListGridRef.current;
|
|
37
|
+
if (!el)
|
|
38
|
+
return;
|
|
39
|
+
// Walk up the DOM to find the nearest scrollable ancestor (the element that
|
|
40
|
+
// position:sticky sticks relative to). Measure available height directly from
|
|
41
|
+
// the DOM rather than using hardcoded offsets, so it works regardless of what
|
|
42
|
+
// containers the renderer is embedded in.
|
|
43
|
+
const getScrollContainer = (element) => {
|
|
44
|
+
let parent = element.parentElement;
|
|
45
|
+
while (parent && parent !== document.documentElement) {
|
|
46
|
+
const { overflow, overflowY } = getComputedStyle(parent);
|
|
47
|
+
if (/auto|scroll/.test(overflow) || /auto|scroll/.test(overflowY))
|
|
48
|
+
return parent;
|
|
49
|
+
parent = parent.parentElement;
|
|
50
|
+
}
|
|
51
|
+
return null;
|
|
52
|
+
};
|
|
53
|
+
const scrollContainer = getScrollContainer(el);
|
|
54
|
+
const update = () => {
|
|
55
|
+
const containerBottom = scrollContainer
|
|
56
|
+
? scrollContainer.getBoundingClientRect().bottom
|
|
57
|
+
: window.innerHeight;
|
|
58
|
+
const elTop = el.getBoundingClientRect().top;
|
|
59
|
+
setTabListMaxHeight(`${Math.max(containerBottom - elTop, 0) - 16}px`);
|
|
60
|
+
};
|
|
61
|
+
update();
|
|
62
|
+
window.addEventListener('resize', update, { passive: true });
|
|
63
|
+
return () => {
|
|
64
|
+
window.removeEventListener('resize', update);
|
|
65
|
+
};
|
|
66
|
+
}, []);
|
|
33
67
|
const indexMap = useMemo(() => mapQItemsIndex(topLevelQItem), [topLevelQItem]);
|
|
34
68
|
const nonNullTopLevelQRItem = topLevelQRItem ?? createEmptyQrGroup(topLevelQItem);
|
|
35
69
|
const qItems = topLevelQItem.item;
|
|
@@ -54,8 +88,7 @@ function FormBodyTabbed(props) {
|
|
|
54
88
|
flexShrink: 0,
|
|
55
89
|
position: 'sticky',
|
|
56
90
|
top: tabListStickyTop,
|
|
57
|
-
alignSelf: 'flex-start'
|
|
58
|
-
maxHeight: `calc(100vh - ${tabListStickyTop}px)`
|
|
91
|
+
alignSelf: 'flex-start'
|
|
59
92
|
}
|
|
60
93
|
}
|
|
61
94
|
: {
|
|
@@ -63,14 +96,13 @@ function FormBodyTabbed(props) {
|
|
|
63
96
|
sx: {
|
|
64
97
|
position: 'sticky',
|
|
65
98
|
top: tabListStickyTop,
|
|
66
|
-
alignSelf: 'flex-start'
|
|
67
|
-
maxHeight: `calc(100vh - ${tabListStickyTop}px)`
|
|
99
|
+
alignSelf: 'flex-start'
|
|
68
100
|
}
|
|
69
101
|
};
|
|
70
102
|
const qItemTabPanelProps = typeof tabListWidthOrResponsive === 'number'
|
|
71
103
|
? { sx: { flexGrow: 1 } }
|
|
72
104
|
: { size: { ...tabListWidthOrResponsive.tabContentBreakpoints } };
|
|
73
|
-
return (_jsx(Grid, { container: true, spacing: 1.5, sx: { flexWrap: 'nowrap' }, children: _jsxs(TabContext, { value: currentTab.toString(), children: [_jsx(Grid, { ...tabListWrapperProps, children: _jsx(FormBodyTabListWrapper, { topLevelItems: qItems, currentTabIndex: currentTab, tabs: tabs }) }), _jsx(Grid, { ...qItemTabPanelProps, children: qItems.map((qItem, i) => {
|
|
105
|
+
return (_jsx(Grid, { container: true, spacing: 1.5, sx: { flexWrap: 'nowrap' }, children: _jsxs(TabContext, { value: currentTab.toString(), children: [_jsx(Grid, { ref: tabListGridRef, ...tabListWrapperProps, children: _jsx(FormBodyTabListWrapper, { topLevelItems: qItems, currentTabIndex: currentTab, tabs: tabs, maxHeight: tabListMaxHeight }) }), _jsx(Grid, { ...qItemTabPanelProps, children: qItems.map((qItem, i) => {
|
|
74
106
|
const qrItem = qrItemsByIndex[i];
|
|
75
107
|
const isNotRepeatGroup = !Array.isArray(qrItem);
|
|
76
108
|
const isTab = !!tabs[qItem.linkId];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormBodyTabbed.js","sourceRoot":"","sources":["../../../src/components/Renderer/FormBodyTabbed.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"FormBodyTabbed.js","sourceRoot":"","sources":["../../../src/components/Renderer/FormBodyTabbed.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ interface FormBodyTabListWrapperProps {
|
|
|
5
5
|
topLevelItems: QuestionnaireItem[];
|
|
6
6
|
currentTabIndex: number;
|
|
7
7
|
tabs: Tabs;
|
|
8
|
+
maxHeight?: string | number;
|
|
8
9
|
}
|
|
9
10
|
declare const FormBodyTabListWrapper: React.NamedExoticComponent<FormBodyTabListWrapperProps>;
|
|
10
11
|
export default FormBodyTabListWrapper;
|
|
@@ -24,10 +24,10 @@ import FormBodyTabList from './FormBodyTabList';
|
|
|
24
24
|
import ShowCompletedTabsSection from './ShowCompletedTabsSection';
|
|
25
25
|
import useContextDisplayItems from '../../hooks/useContextDisplayItems';
|
|
26
26
|
const FormBodyTabListWrapper = memo(function FormBodyTabListWrapper(props) {
|
|
27
|
-
const { topLevelItems, currentTabIndex, tabs } = props;
|
|
27
|
+
const { topLevelItems, currentTabIndex, tabs, maxHeight } = 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": "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 })] }) }) }) }));
|
|
30
|
+
return (_jsx(Card, { sx: { p: 0.75, mb: 2, ...(maxHeight ? { maxHeight, overflowY: 'auto' } : {}) }, 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;
|
|
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;AASxE,MAAM,sBAAsB,GAAG,IAAI,CAAC,SAAS,sBAAsB,CACjE,KAAkC;IAElC,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAElE,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,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,YAClF,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"}
|
package/lib/hooks/index.d.ts
CHANGED
|
@@ -8,3 +8,4 @@ export { default as useValueSetCodings } from './useValueSetCodings';
|
|
|
8
8
|
export { default as useDisplayCqfAndCalculatedExpression } from './useDisplayCqfAndCalculatedExpression';
|
|
9
9
|
export { default as useResponsive } from './useResponsive';
|
|
10
10
|
export type { UseResponsiveProps } from './useResponsive';
|
|
11
|
+
export { useFocusTabHeading } from './useFocusTabHeading';
|
package/lib/hooks/index.js
CHANGED
|
@@ -9,4 +9,6 @@ export { default as useValueSetCodings } from './useValueSetCodings';
|
|
|
9
9
|
export { default as useDisplayCqfAndCalculatedExpression } from './useDisplayCqfAndCalculatedExpression';
|
|
10
10
|
// Responsiveness-related hooks
|
|
11
11
|
export { default as useResponsive } from './useResponsive';
|
|
12
|
+
// Focus management hooks
|
|
13
|
+
export { useFocusTabHeading } from './useFocusTabHeading';
|
|
12
14
|
//# sourceMappingURL=index.js.map
|
package/lib/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAErE,gDAAgD;AAChD,OAAO,EAAE,OAAO,IAAI,oCAAoC,EAAE,MAAM,wCAAwC,CAAC;AAEzG,+BAA+B;AAC/B,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAErE,gDAAgD;AAChD,OAAO,EAAE,OAAO,IAAI,oCAAoC,EAAE,MAAM,wCAAwC,CAAC;AAEzG,+BAA+B;AAC/B,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAG3D,yBAAyB;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aehrc/smart-forms-renderer",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"description": "FHIR Structured Data Captured (SDC) rendering engine for Smart Forms",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
},
|
|
29
29
|
"homepage": "https://github.com/aehrc/smart-forms#readme",
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@aehrc/sdc-populate": "^4.
|
|
31
|
+
"@aehrc/sdc-populate": "^4.7.0",
|
|
32
32
|
"@aehrc/sdc-template-extract": "^1.0.15",
|
|
33
33
|
"@emotion/react": "^11.14.0",
|
|
34
34
|
"@emotion/styled": "^11.14.1",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"fast-equals": "^5.2.2",
|
|
46
46
|
"fhir-sdc-helpers": "^0.1.0",
|
|
47
47
|
"fhirclient": "^2.6.3",
|
|
48
|
-
"fhirpath": "
|
|
48
|
+
"fhirpath": "^4.5.0",
|
|
49
49
|
"html-react-parser": "4.2.10",
|
|
50
50
|
"js-base64": "^3.7.8",
|
|
51
51
|
"lodash.debounce": "^4.0.8",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { styled } from '@mui/material/styles';
|
|
2
2
|
import Accordion from '@mui/material/Accordion';
|
|
3
3
|
|
|
4
|
-
export const
|
|
4
|
+
export const StyledGroupAccordion = styled(Accordion, {
|
|
5
5
|
shouldForwardProp: (prop) => prop !== 'elevation'
|
|
6
6
|
})<{ elevation: number }>(({ elevation }) => ({
|
|
7
7
|
paddingTop: '8px',
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 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, { useCallback, useState, useRef } from 'react';
|
|
19
|
+
import type { AccordionProps } from '@mui/material/Accordion';
|
|
20
|
+
import { StyledGroupAccordion } from './GroupAccordion.styles';
|
|
21
|
+
|
|
22
|
+
// Matches the MUI Accordion transition timeout used in GroupItemView/RepeatGroupView
|
|
23
|
+
const TRANSITION_DURATION_MS = 300;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Walk up the DOM to find the nearest element that actually scrolls.
|
|
27
|
+
* The page may not scroll on window — e.g. the smart-forms-app uses a styled
|
|
28
|
+
* `Main` div with `overflow: auto` as the scroll container.
|
|
29
|
+
*/
|
|
30
|
+
function findScrollContainer(el: HTMLElement): HTMLElement | null {
|
|
31
|
+
let node: HTMLElement | null = el.parentElement;
|
|
32
|
+
while (node) {
|
|
33
|
+
const { overflow, overflowY } = window.getComputedStyle(node);
|
|
34
|
+
if (
|
|
35
|
+
overflow === 'auto' ||
|
|
36
|
+
overflow === 'scroll' ||
|
|
37
|
+
overflowY === 'auto' ||
|
|
38
|
+
overflowY === 'scroll'
|
|
39
|
+
) {
|
|
40
|
+
return node;
|
|
41
|
+
}
|
|
42
|
+
node = node.parentElement;
|
|
43
|
+
}
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
interface GroupAccordionProps extends Omit<AccordionProps, 'elevation'> {
|
|
48
|
+
elevation: number;
|
|
49
|
+
defaultExpanded?: boolean;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* GroupAccordion component.
|
|
54
|
+
*/
|
|
55
|
+
export function GroupAccordion(props: GroupAccordionProps) {
|
|
56
|
+
const { defaultExpanded = false, onChange, children, ...rest } = props;
|
|
57
|
+
|
|
58
|
+
const [expanded, setExpanded] = useState(defaultExpanded);
|
|
59
|
+
const accordionRef = useRef<HTMLDivElement>(null);
|
|
60
|
+
|
|
61
|
+
const handleChange = useCallback(
|
|
62
|
+
(event: React.SyntheticEvent, isExpanded: boolean) => {
|
|
63
|
+
// When the accordion expands, its content is mounted into the DOM (unmountOnExit).
|
|
64
|
+
// The browser's CSS scroll anchoring then adjusts the nearest scrollable ancestor's
|
|
65
|
+
// scrollTop every animation frame to keep anchor elements below the accordion in
|
|
66
|
+
// place — visually making the accordion header appear to jump upward.
|
|
67
|
+
//
|
|
68
|
+
// Fix: temporarily opt the scroll container out of scroll anchoring for the
|
|
69
|
+
// duration of the transition, then restore it.
|
|
70
|
+
const scrollContainer = accordionRef.current
|
|
71
|
+
? findScrollContainer(accordionRef.current)
|
|
72
|
+
: null;
|
|
73
|
+
if (scrollContainer) {
|
|
74
|
+
scrollContainer.style.overflowAnchor = 'none';
|
|
75
|
+
setTimeout(() => {
|
|
76
|
+
scrollContainer.style.overflowAnchor = '';
|
|
77
|
+
}, TRANSITION_DURATION_MS);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
setExpanded(isExpanded);
|
|
81
|
+
onChange?.(event, isExpanded);
|
|
82
|
+
},
|
|
83
|
+
[onChange]
|
|
84
|
+
);
|
|
85
|
+
|
|
86
|
+
return (
|
|
87
|
+
<StyledGroupAccordion ref={accordionRef} expanded={expanded} onChange={handleChange} {...rest}>
|
|
88
|
+
{children}
|
|
89
|
+
</StyledGroupAccordion>
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export default GroupAccordion;
|
|
@@ -38,10 +38,10 @@ import AccordionDetails from '@mui/material/AccordionDetails';
|
|
|
38
38
|
import Divider from '@mui/material/Divider';
|
|
39
39
|
import { getGroupCollapsible } from '../../../utils/qItem';
|
|
40
40
|
import useReadOnly from '../../../hooks/useReadOnly';
|
|
41
|
-
import { GroupAccordion } from './GroupAccordion.styles';
|
|
42
41
|
import PageButtonsWrapper from './PageButtonWrapper';
|
|
43
42
|
import { useParseXhtml } from '../../../hooks/useParseXhtml';
|
|
44
43
|
import { getItemTextToDisplay } from '../../../utils/itemTextToDisplay';
|
|
44
|
+
import GroupAccordion from './GroupAccordion';
|
|
45
45
|
|
|
46
46
|
interface GroupItemViewProps
|
|
47
47
|
extends PropsWithQrItemChangeHandler,
|
|
@@ -33,13 +33,13 @@ import AddItemButton from './AddItemButton';
|
|
|
33
33
|
import type { RepeatGroupSingleModel } from '../../../interfaces/repeatGroup.interface';
|
|
34
34
|
import useReadOnly from '../../../hooks/useReadOnly';
|
|
35
35
|
import { getGroupCollapsible } from '../../../utils/qItem';
|
|
36
|
-
import { GroupAccordion } from '../GroupItem/GroupAccordion.styles';
|
|
37
36
|
import AccordionSummary from '@mui/material/AccordionSummary';
|
|
38
37
|
import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
|
|
39
38
|
import AccordionDetails from '@mui/material/AccordionDetails';
|
|
40
39
|
import GroupHeading from '../GroupItem/GroupHeading';
|
|
41
40
|
import { getItemTextToDisplay } from '../../../utils/itemTextToDisplay';
|
|
42
41
|
import { isGroupAddItemButtonHidden } from '../../../utils/extensions';
|
|
42
|
+
import GroupAccordion from '../GroupItem/GroupAccordion';
|
|
43
43
|
|
|
44
44
|
interface RepeatGroupViewProps
|
|
45
45
|
extends PropsWithParentIsReadOnlyAttribute,
|
|
@@ -36,7 +36,6 @@ import type { GroupTableRowModel } from '../../../interfaces/groupTable.interfac
|
|
|
36
36
|
import GroupTableBody from './GroupTableBody';
|
|
37
37
|
import { useQuestionnaireStore, useRendererConfigStore } from '../../../stores';
|
|
38
38
|
import { getGroupCollapsible } from '../../../utils/qItem';
|
|
39
|
-
import { GroupAccordion } from '../GroupItem/GroupAccordion.styles';
|
|
40
39
|
import AccordionSummary from '@mui/material/AccordionSummary';
|
|
41
40
|
import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
|
|
42
41
|
import AccordionDetails from '@mui/material/AccordionDetails';
|
|
@@ -45,6 +44,7 @@ import { StandardCheckbox } from '../../Checkbox.styles';
|
|
|
45
44
|
import { Box } from '@mui/material';
|
|
46
45
|
import { getItemTextToDisplay } from '../../../utils/itemTextToDisplay';
|
|
47
46
|
import { isGroupAddItemButtonHidden } from '../../../utils/extensions';
|
|
47
|
+
import GroupAccordion from '../GroupItem/GroupAccordion';
|
|
48
48
|
|
|
49
49
|
interface GroupTableViewProps
|
|
50
50
|
extends PropsWithIsRepeatedAttribute,
|
|
@@ -60,7 +60,7 @@ const FormBodySingleCollapsible = memo(function FormBodySingleCollapsible(
|
|
|
60
60
|
onChange={() => onToggleExpand(index)}>
|
|
61
61
|
<AccordionSummary expandIcon={<ExpandMoreIcon />}>
|
|
62
62
|
<Box display="flex" alignItems="center" justifyContent="space-between" width="100%" mr={3}>
|
|
63
|
-
<Typography>{collapsibleLabel}</Typography>
|
|
63
|
+
<Typography component="h2">{collapsibleLabel}</Typography>
|
|
64
64
|
<Box display="flex" columnGap={0.5}>
|
|
65
65
|
{contextDisplayItems.map((item) => {
|
|
66
66
|
return <ContextDisplayItem key={item.linkId} displayItem={item} />;
|