@aehrc/smart-forms-renderer 1.0.0-alpha.86 → 1.0.0-alpha.87

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.
@@ -25,10 +25,11 @@ import TableContainer from '@mui/material/TableContainer';
25
25
  import { mapQItemsIndex } from '../../../utils/mapItem';
26
26
  import GridTable from './GridTable';
27
27
  import useReadOnly from '../../../hooks/useReadOnly';
28
- import { useQuestionnaireStore } from '../../../stores';
28
+ import { useQuestionnaireStore, useRendererStylingStore } from '../../../stores';
29
29
  import GroupHeading from '../GroupItem/GroupHeading';
30
30
  import { structuredDataCapture } from 'fhir-sdc-helpers';
31
31
  import { getItemTextToDisplay } from '../../../utils/itemTextToDisplay';
32
+ import { isItemHidden } from '../../../utils/qItem';
32
33
  /**
33
34
  * Main component to render a Group Grid (grid) Questionnaire item.
34
35
  * @see {@link https://hl7.org/fhir/extensions/CodeSystem-questionnaire-item-control.html}
@@ -37,22 +38,36 @@ import { getItemTextToDisplay } from '../../../utils/itemTextToDisplay';
37
38
  */
38
39
  function GridGroup(props) {
39
40
  const { qItem, qrItem, itemPath, groupCardElevation, parentIsReadOnly, parentStyles, onQrItemChange } = props;
41
+ const enableWhenIsActivated = useQuestionnaireStore.use.enableWhenIsActivated();
42
+ const enableWhenItems = useQuestionnaireStore.use.enableWhenItems();
43
+ const enableWhenExpressions = useQuestionnaireStore.use.enableWhenExpressions();
44
+ const enableWhenAsReadOnly = useRendererStylingStore.use.enableWhenAsReadOnly();
40
45
  const onFocusLinkId = useQuestionnaireStore.use.onFocusLinkId();
41
46
  const qRowItems = qItem.item;
42
47
  const qrGroup = qrItem && qrItem.item ? qrItem : createEmptyQrGroup(qItem);
43
48
  const qrRowItems = qrGroup.item;
44
49
  const qItemsIndexMap = useMemo(() => mapQItemsIndex(qItem), [qItem]);
50
+ // Prepare visible first-row items. we use useMemo because we are using it inside useMemo later.
51
+ const firstRowItems = useMemo(() => { var _a, _b; return (_b = (_a = qRowItems === null || qRowItems === void 0 ? void 0 : qRowItems[0]) === null || _a === void 0 ? void 0 : _a.item) !== null && _b !== void 0 ? _b : []; }, [qRowItems]);
52
+ // Get the items and ignore hidden columns as they are automatically added to the columnHeaders as empty space.
53
+ const visibleColumnItems = useMemo(() => firstRowItems === null || firstRowItems === void 0 ? void 0 : firstRowItems.filter((item) => !isItemHidden(item, enableWhenIsActivated, enableWhenItems, enableWhenExpressions, enableWhenAsReadOnly)), [
54
+ enableWhenAsReadOnly,
55
+ enableWhenExpressions,
56
+ enableWhenIsActivated,
57
+ enableWhenItems,
58
+ firstRowItems
59
+ ]);
45
60
  // Get column headers from first row item.text
46
61
  const columnHeaders = useMemo(() => {
47
- var _a, _b;
48
- return (_b = (_a = qRowItems === null || qRowItems === void 0 ? void 0 : qRowItems[0].item) === null || _a === void 0 ? void 0 : _a.map((firstItem) => {
62
+ var _a;
63
+ return (_a = visibleColumnItems.map((firstItem) => {
49
64
  var _a, _b;
50
65
  return ({
51
66
  label: (_a = getItemTextToDisplay(firstItem)) !== null && _a !== void 0 ? _a : ' ',
52
67
  styleString: (_b = structuredDataCapture.getStyle(firstItem._text)) !== null && _b !== void 0 ? _b : null
53
68
  });
54
- })) !== null && _b !== void 0 ? _b : [];
55
- }, [qRowItems]);
69
+ })) !== null && _a !== void 0 ? _a : [];
70
+ }, [visibleColumnItems]);
56
71
  const readOnly = useReadOnly(qItem, parentIsReadOnly);
57
72
  const itemIsHidden = useHidden(qItem);
58
73
  if (itemIsHidden) {
@@ -1 +1 @@
1
- {"version":3,"file":"GridGroup.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/GridGroup/GridGroup.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAQvC,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,SAAS,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,KAAK,MAAM,qBAAqB,CAAC;AACxC,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,WAAW,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,YAAY,MAAM,2BAA2B,CAAC;AAErD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAYxE;;;;;GAKG;AACH,SAAS,SAAS,CAAC,KAAqB;IACtC,MAAM,EACJ,KAAK,EACL,MAAM,EACN,QAAQ,EACR,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACf,GAAG,KAAK,CAAC;IAEV,MAAM,aAAa,GAAG,qBAAqB,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAEhE,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;IAC7B,MAAM,OAAO,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAEhC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAErE,8CAA8C;IAC9C,MAAM,aAAa,GAGb,OAAO,CACX,GAAG,EAAE;;QACH,OAAA,MAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAG,CAAC,EAAE,IAAI,0CAAE,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;;YAAC,OAAA,CAAC;gBACvC,KAAK,EAAE,MAAA,oBAAoB,CAAC,SAAS,CAAC,mCAAI,GAAG;gBAC7C,WAAW,EAAE,MAAA,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,mCAAI,IAAI;aACrE,CAAC,CAAA;SAAA,CAAC,mCAAI,EAAE,CAAA;KAAA,EACX,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;QAC9B,OAAO,yFAA6D,CAAC;IACvE,CAAC;IAED,yCAAyC;IACzC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iBAAiB;IACjB,SAAS,eAAe,CAAC,SAAoC,EAAE,cAAyB;QACtF,MAAM,cAAc,qBAAmC,OAAO,CAAE,CAAC;QACjE,oBAAoB,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;QACtE,cAAc,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;IACjD,CAAC;IAED,iCAAiC;IACjC,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAEtD,OAAO,CACL,MAAC,kBAAkB,IACjB,aAAa,EAAE,kBAAkB,EACjC,UAAU,EAAE,KAAK,EACjB,EAAE,EAAE,CAAC,iBACQ,KAAK,CAAC,MAAM,EACzB,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,EAC1C,KAAK,EAAE,YAAY,IAAI,SAAS,aAC/B,iBAAiB,CAAC,CAAC,CAAC,CACnB,8BACE,KAAC,YAAY,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,kBAAkB,GAAI,EAC1F,KAAC,OAAO,IAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,GAAI,IACvC,CACJ,CAAC,CAAC,CAAC,IAAI,EAER,KAAC,cAAc,IAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,kBAAkB,YAC7D,KAAC,SAAS,IACR,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,UAAU,EACnB,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,QAAQ,EAC1B,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,eAAe,GAC/B,GACa,IACE,CACtB,CAAC;AACJ,CAAC;AAED,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"GridGroup.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/GridGroup/GridGroup.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,6 @@
1
+ /**
2
+ * Always use this with the TextField `fullWidth` prop to ensure proper layout and alignment.
3
+ */
1
4
  export declare const StandardTextField: import("@emotion/styled").StyledComponent<{
2
5
  variant?: import("@mui/material/TextField").TextFieldVariants | undefined;
3
6
  } & Omit<import("@mui/material/TextField").FilledTextFieldProps | import("@mui/material/TextField").OutlinedTextFieldProps | import("@mui/material/TextField").StandardTextFieldProps, "variant"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme> & {
@@ -15,8 +15,10 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  import { styled } from '@mui/material/styles';
18
- import TextField from '@mui/material/TextField'; // Always use this accompanied by the TextField prop fullWidth
19
- // Always use this accompanied by the TextField prop fullWidth
18
+ import TextField from '@mui/material/TextField';
19
+ /**
20
+ * Always use this with the TextField `fullWidth` prop to ensure proper layout and alignment.
21
+ */
20
22
  export const StandardTextField = styled(TextField, {
21
23
  shouldForwardProp: (prop) => prop !== 'isTabled' && prop !== 'textFieldWidth'
22
24
  })(({ isTabled, textFieldWidth }) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"Textfield.styles.js","sourceRoot":"","sources":["../../../src/components/FormComponents/Textfield.styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,SAAS,MAAM,yBAAyB,CAAC,CAAC,8DAA8D;AAE/G,8DAA8D;AAC9D,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,SAAS,EAAE;IACjD,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,gBAAgB;CAC9E,CAAC,CAAgD,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;IACnF,iGAAiG;IACjG,8FAA8F;IAC9F,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI;IAC3C,QAAQ,EAAE,GAAG;IACb,sBAAsB,EAAE;QACtB,OAAO,EAAE,CAAC;KACX;IACD,gCAAgC,EAAE;QAChC,OAAO,EAAE,YAAY,EAAE,0BAA0B;QACjD,UAAU,EAAE,OAAO;KACpB;IACD,iEAAiE;IACjE,uCAAuC,EAAE;QACvC,MAAM,EAAE,SAAS;QACjB,uBAAuB,EAAE;YACvB,MAAM,EAAE,SAAS;SAClB;KACF;IACD,0BAA0B,EAAE;QAC1B,YAAY,EAAE,CAAC,CAAC,6BAA6B;KAC9C;IACD,qCAAqC,EAAE;QACrC,6GAA6G;QAC7G,UAAU,EAAE,QAAQ;KACrB;IACD,kEAAkE,EAAE;QAClE,UAAU,EAAE,SAAS;KACtB;IACD,wEAAwE,EAAE;QACxE,UAAU,EAAE,SAAS;KACtB;CACF,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"Textfield.styles.js","sourceRoot":"","sources":["../../../src/components/FormComponents/Textfield.styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,SAAS,MAAM,yBAAyB,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,SAAS,EAAE;IACjD,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,gBAAgB;CAC9E,CAAC,CAAgD,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;IACnF,iGAAiG;IACjG,8FAA8F;IAC9F,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI;IAC3C,QAAQ,EAAE,GAAG;IACb,sBAAsB,EAAE;QACtB,OAAO,EAAE,CAAC;KACX;IACD,gCAAgC,EAAE;QAChC,OAAO,EAAE,YAAY,EAAE,0BAA0B;QACjD,UAAU,EAAE,OAAO;KACpB;IACD,iEAAiE;IACjE,uCAAuC,EAAE;QACvC,MAAM,EAAE,SAAS;QACjB,uBAAuB,EAAE;YACvB,MAAM,EAAE,SAAS;SAClB;KACF;IACD,0BAA0B,EAAE;QAC1B,YAAY,EAAE,CAAC,CAAC,6BAA6B;KAC9C;IACD,qCAAqC,EAAE;QACrC,6GAA6G;QAC7G,UAAU,EAAE,QAAQ;KACrB;IACD,kEAAkE,EAAE;QAClE,UAAU,EAAE,SAAS;KACtB;IACD,wEAAwE,EAAE;QACxE,UAAU,EAAE,SAAS;KACtB;CACF,CAAC,CAAC,CAAC"}
@@ -30,7 +30,7 @@ import { extractPages } from './extractPages';
30
30
  import { extractContainedValueSets } from './extractContainedValueSets';
31
31
  import { extractOtherExtensions } from './extractOtherExtensions';
32
32
  import { resolveValueSets } from './resolveValueSets';
33
- import { getLinkIdPartialItemMap, getLinkIdPreferredTerminologyServerTuples } from '../qItem';
33
+ import { getLinkIdPreferredTerminologyServerTuples, getLinkIdTypeTuples } from '../qItem';
34
34
  import { addDisplayToAnswerOptions, addDisplayToCacheCodings } from './addDisplayToCodings';
35
35
  import { extractTargetConstraints } from './extractTargetConstraint';
36
36
  export function createQuestionnaireModel(questionnaire, terminologyServerUrl) {
@@ -38,7 +38,7 @@ export function createQuestionnaireModel(questionnaire, terminologyServerUrl) {
38
38
  if (!questionnaire.item) {
39
39
  return createEmptyModel();
40
40
  }
41
- const itemMap = getLinkIdPartialItemMap(questionnaire);
41
+ const itemTypes = Object.fromEntries(getLinkIdTypeTuples(questionnaire));
42
42
  const itemPreferredTerminologyServers = Object.fromEntries(getLinkIdPreferredTerminologyServerTuples(questionnaire));
43
43
  const tabs = extractTabs(questionnaire);
44
44
  const pages = extractPages(questionnaire);
@@ -68,7 +68,7 @@ export function createQuestionnaireModel(questionnaire, terminologyServerUrl) {
68
68
  // In answerOptions, add display values to codings lacking them
69
69
  const completeAnswerOptions = yield addDisplayToAnswerOptions(answerOptions, terminologyServerUrl);
70
70
  return {
71
- itemMap,
71
+ itemTypes,
72
72
  itemPreferredTerminologyServers,
73
73
  tabs,
74
74
  pages,
@@ -91,7 +91,7 @@ export function createQuestionnaireModel(questionnaire, terminologyServerUrl) {
91
91
  }
92
92
  function createEmptyModel() {
93
93
  return {
94
- itemMap: {},
94
+ itemTypes: {},
95
95
  itemPreferredTerminologyServers: {},
96
96
  tabs: {},
97
97
  pages: {},
@@ -1 +1 @@
1
- {"version":3,"file":"createQuestionaireModel.js","sourceRoot":"","sources":["../../../src/utils/questionnaireStoreUtils/createQuestionaireModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createQuestionaireModel.js","sourceRoot":"","sources":["../../../src/utils/questionnaireStoreUtils/createQuestionaireModel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;;;;;;;;;;AAOH,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,kCAAkC,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,yCAAyC,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC1F,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAE5F,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAErE,MAAM,UAAgB,wBAAwB,CAC5C,aAA4B,EAC5B,oBAA4B;;QAE5B,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YACxB,OAAO,gBAAgB,EAAE,CAAC;QAC5B,CAAC;QAED,MAAM,SAAS,GAA2B,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC;QACjG,MAAM,+BAA+B,GAA2B,MAAM,CAAC,WAAW,CAChF,yCAAyC,CAAC,aAAa,CAAC,CACzD,CAAC;QACF,MAAM,IAAI,GAAS,WAAW,CAAC,aAAa,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAU,YAAY,CAAC,aAAa,CAAC,CAAC;QAEjD,MAAM,cAAc,GAAkC,qBAAqB,CAAC,aAAa,CAAC,CAAC;QAC3F,MAAM,iBAAiB,GACrB,wBAAwB,CAAC,aAAa,CAAC,CAAC;QAE1C,IAAI,SAAS,GAAc,kCAAkC,CAAC,aAAa,CAAC,CAAC;QAE7E,kFAAkF;QAClF,4GAA4G;QAC5G,2IAA2I;QAC3I,oHAAoH;QACpH,sEAAsE;QAEtE,MAAM,+BAA+B,GAAG,yBAAyB,CAC/D,aAAa,EACb,oBAAoB,CACrB,CAAC;QACF,IAAI,gBAAgB,GAAG,+BAA+B,CAAC,gBAAgB,CAAC;QACxE,IAAI,kBAAkB,GAAG,+BAA+B,CAAC,kBAAkB,CAAC;QAC5E,IAAI,qBAAqB,GAAG,+BAA+B,CAAC,qBAAqB,CAAC;QAElF,MAAM,4BAA4B,GAAG,MAAM,sBAAsB,CAC/D,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,+BAA+B,EAC/B,oBAAoB,CACrB,CAAC;QAEF,MAAM,EACJ,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,8BAA8B,EAC/B,GAAG,4BAA4B,CAAC;QACjC,SAAS,GAAG,4BAA4B,CAAC,SAAS,CAAC;QACnD,gBAAgB,GAAG,4BAA4B,CAAC,gBAAgB,CAAC;QACjE,kBAAkB,GAAG,4BAA4B,CAAC,kBAAkB,CAAC;QACrE,qBAAqB,GAAG,4BAA4B,CAAC,qBAAqB,CAAC;QAE3E,MAAM,sBAAsB,GAAG,MAAM,gBAAgB,CACnD,SAAS,EACT,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,CACrB,CAAC;QAEF,SAAS,GAAG,sBAAsB,CAAC,SAAS,CAAC;QAC7C,qBAAqB,GAAG,sBAAsB,CAAC,qBAAqB,CAAC;QAErE,kEAAkE;QAClE,qBAAqB,GAAG,MAAM,wBAAwB,CACpD,qBAAqB,EACrB,oBAAoB,CACrB,CAAC;QAEF,+DAA+D;QAC/D,MAAM,qBAAqB,GAAG,MAAM,yBAAyB,CAC3D,aAAa,EACb,oBAAoB,CACrB,CAAC;QAEF,OAAO;YACL,SAAS;YACT,+BAA+B;YAC/B,IAAI;YACJ,KAAK;YACL,SAAS;YACT,cAAc;YACd,iBAAiB;YACjB,eAAe;YACf,qBAAqB;YACrB,qBAAqB;YACrB,kBAAkB;YAClB,iBAAiB;YACjB,aAAa,EAAE,qBAAqB;YACpC,8BAA8B,EAAE,8BAA8B;YAC9D,kBAAkB;YAClB,qBAAqB;YACrB,eAAe,EAAE,EAAE;YACnB,wBAAwB,EAAE,EAAE;SAC7B,CAAC;IACJ,CAAC;CAAA;AAED,SAAS,gBAAgB;IACvB,OAAO;QACL,SAAS,EAAE,EAAE;QACb,+BAA+B,EAAE,EAAE;QACnC,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE;QAC7D,cAAc,EAAE,EAAE;QAClB,iBAAiB,EAAE,EAAE;QACrB,qBAAqB,EAAE,EAAE;QACzB,kBAAkB,EAAE,EAAE;QACtB,qBAAqB,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE;QACvE,iBAAiB,EAAE,EAAE;QACrB,aAAa,EAAE,EAAE;QACjB,8BAA8B,EAAE,EAAE;QAClC,eAAe,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;QACrD,kBAAkB,EAAE,EAAE;QACtB,qBAAqB,EAAE,EAAE;QACzB,eAAe,EAAE,EAAE;QACnB,wBAAwB,EAAE,EAAE;KAC7B,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aehrc/smart-forms-renderer",
3
- "version": "1.0.0-alpha.86",
3
+ "version": "1.0.0-alpha.87",
4
4
  "description": "FHIR Structured Data Captured (SDC) rendering engine for Smart Forms",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -32,11 +32,12 @@ import TableContainer from '@mui/material/TableContainer';
32
32
  import { mapQItemsIndex } from '../../../utils/mapItem';
33
33
  import GridTable from './GridTable';
34
34
  import useReadOnly from '../../../hooks/useReadOnly';
35
- import { useQuestionnaireStore } from '../../../stores';
35
+ import { useQuestionnaireStore, useRendererStylingStore } from '../../../stores';
36
36
  import GroupHeading from '../GroupItem/GroupHeading';
37
37
  import type { ItemPath } from '../../../interfaces/itemPath.interface';
38
38
  import { structuredDataCapture } from 'fhir-sdc-helpers';
39
39
  import { getItemTextToDisplay } from '../../../utils/itemTextToDisplay';
40
+ import { isItemHidden } from '../../../utils/qItem';
40
41
 
41
42
  interface GridGroupProps
42
43
  extends PropsWithQrItemChangeHandler,
@@ -65,6 +66,11 @@ function GridGroup(props: GridGroupProps) {
65
66
  onQrItemChange
66
67
  } = props;
67
68
 
69
+ const enableWhenIsActivated = useQuestionnaireStore.use.enableWhenIsActivated();
70
+ const enableWhenItems = useQuestionnaireStore.use.enableWhenItems();
71
+ const enableWhenExpressions = useQuestionnaireStore.use.enableWhenExpressions();
72
+ const enableWhenAsReadOnly = useRendererStylingStore.use.enableWhenAsReadOnly();
73
+
68
74
  const onFocusLinkId = useQuestionnaireStore.use.onFocusLinkId();
69
75
 
70
76
  const qRowItems = qItem.item;
@@ -73,17 +79,42 @@ function GridGroup(props: GridGroupProps) {
73
79
 
74
80
  const qItemsIndexMap = useMemo(() => mapQItemsIndex(qItem), [qItem]);
75
81
 
82
+ // Prepare visible first-row items. we use useMemo because we are using it inside useMemo later.
83
+ const firstRowItems: QuestionnaireItem[] = useMemo(() => qRowItems?.[0]?.item ?? [], [qRowItems]);
84
+
85
+ // Get the items and ignore hidden columns as they are automatically added to the columnHeaders as empty space.
86
+ const visibleColumnItems: QuestionnaireItem[] = useMemo(
87
+ () =>
88
+ firstRowItems?.filter(
89
+ (item) =>
90
+ !isItemHidden(
91
+ item,
92
+ enableWhenIsActivated,
93
+ enableWhenItems,
94
+ enableWhenExpressions,
95
+ enableWhenAsReadOnly
96
+ )
97
+ ),
98
+ [
99
+ enableWhenAsReadOnly,
100
+ enableWhenExpressions,
101
+ enableWhenIsActivated,
102
+ enableWhenItems,
103
+ firstRowItems
104
+ ]
105
+ );
106
+
76
107
  // Get column headers from first row item.text
77
108
  const columnHeaders: {
78
109
  label: string;
79
110
  styleString: string | null;
80
111
  }[] = useMemo(
81
112
  () =>
82
- qRowItems?.[0].item?.map((firstItem) => ({
113
+ visibleColumnItems.map((firstItem) => ({
83
114
  label: getItemTextToDisplay(firstItem) ?? ' ',
84
115
  styleString: structuredDataCapture.getStyle(firstItem._text) ?? null
85
116
  })) ?? [],
86
- [qRowItems]
117
+ [visibleColumnItems]
87
118
  );
88
119
 
89
120
  const readOnly = useReadOnly(qItem, parentIsReadOnly);
@@ -16,9 +16,11 @@
16
16
  */
17
17
 
18
18
  import { styled } from '@mui/material/styles';
19
- import TextField from '@mui/material/TextField'; // Always use this accompanied by the TextField prop fullWidth
19
+ import TextField from '@mui/material/TextField';
20
20
 
21
- // Always use this accompanied by the TextField prop fullWidth
21
+ /**
22
+ * Always use this with the TextField `fullWidth` prop to ensure proper layout and alignment.
23
+ */
22
24
  export const StandardTextField = styled(TextField, {
23
25
  shouldForwardProp: (prop) => prop !== 'isTabled' && prop !== 'textFieldWidth'
24
26
  })<{ isTabled: boolean; textFieldWidth: number }>(({ isTabled, textFieldWidth }) => ({