@aehrc/smart-forms-renderer 0.27.0 → 0.27.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 (48) hide show
  1. package/lib/components/FormComponents/BooleanItem/BooleanField.js +3 -4
  2. package/lib/components/FormComponents/BooleanItem/BooleanField.js.map +1 -1
  3. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.js +2 -3
  4. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.js.map +1 -1
  5. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.js +2 -3
  6. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.js.map +1 -1
  7. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.js +1 -1
  8. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.js.map +1 -1
  9. package/lib/components/FormComponents/DecimalItem/DecimalField.js +1 -1
  10. package/lib/components/FormComponents/DecimalItem/DecimalField.js.map +1 -1
  11. package/lib/components/FormComponents/IntegerItem/IntegerField.js +1 -1
  12. package/lib/components/FormComponents/IntegerItem/IntegerField.js.map +1 -1
  13. package/lib/components/FormComponents/ItemParts/FadingCheckIcon.d.ts +1 -0
  14. package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js +2 -2
  15. package/lib/components/FormComponents/ItemParts/FadingCheckIcon.js.map +1 -1
  16. package/lib/components/FormComponents/ItemParts/RadioOptionList.d.ts +8 -0
  17. package/lib/components/FormComponents/ItemParts/RadioOptionList.js +36 -0
  18. package/lib/components/FormComponents/ItemParts/RadioOptionList.js.map +1 -0
  19. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetFields.d.ts +18 -0
  20. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetFields.js +48 -0
  21. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetFields.js.map +1 -0
  22. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.d.ts +9 -0
  23. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.js +93 -0
  24. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.js.map +1 -0
  25. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxFields.d.ts +2 -0
  26. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxFields.js +20 -4
  27. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxFields.js.map +1 -1
  28. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetFields.d.ts +16 -0
  29. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetFields.js +48 -0
  30. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetFields.js.map +1 -0
  31. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.d.ts +9 -0
  32. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.js +95 -0
  33. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.js.map +1 -0
  34. package/lib/components/FormComponents/StringItem/StringField.js +1 -1
  35. package/lib/components/FormComponents/StringItem/StringField.js.map +1 -1
  36. package/lib/components/FormComponents/TextItem/TextField.js +1 -1
  37. package/lib/components/FormComponents/TextItem/TextField.js.map +1 -1
  38. package/lib/hooks/useOpenLabel.d.ts +1 -0
  39. package/package.json +1 -1
  40. package/src/components/FormComponents/BooleanItem/BooleanField.tsx +3 -6
  41. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.tsx +2 -6
  42. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.tsx +2 -6
  43. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.tsx +1 -1
  44. package/src/components/FormComponents/DecimalItem/DecimalField.tsx +1 -1
  45. package/src/components/FormComponents/IntegerItem/IntegerField.tsx +1 -1
  46. package/src/components/FormComponents/ItemParts/FadingCheckIcon.tsx +7 -2
  47. package/src/components/FormComponents/StringItem/StringField.tsx +1 -1
  48. package/src/components/FormComponents/TextItem/TextField.tsx +1 -1
@@ -15,7 +15,6 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  import React, { memo } from 'react';
18
- import { TEXT_FIELD_WIDTH } from '../Textfield.styles';
19
18
  import Box from '@mui/material/Box';
20
19
  import Button from '@mui/material/Button';
21
20
  import { grey } from '@mui/material/colors';
@@ -32,18 +31,18 @@ const BooleanField = memo(function BooleanField(props) {
32
31
  // defaults to horizontal, only set to vertical if explicitly set
33
32
  const orientation = (_a = getChoiceOrientation(qItem)) !== null && _a !== void 0 ? _a : ChoiceItemOrientation.Horizontal;
34
33
  const selection = valueBoolean === undefined ? null : valueBoolean.toString();
35
- return (React.createElement(Box, { display: "flex", alignItems: "center", sx: { maxWidth: !isTabled ? TEXT_FIELD_WIDTH : 3000, minWidth: 160 } },
34
+ return (React.createElement(Box, { display: "flex", alignItems: "center" },
36
35
  React.createElement(StyledRadioGroup, { row: orientation === ChoiceItemOrientation.Horizontal, name: qItem.text, id: qItem.id, onChange: (e) => onCheckedChange(e.target.value), value: selection },
37
36
  React.createElement(ChoiceRadioSingle, { value: "true", label: "Yes", readOnly: readOnly }),
38
37
  React.createElement(ChoiceRadioSingle, { value: "false", label: "No", readOnly: readOnly })),
39
38
  React.createElement(Box, { flexGrow: 1 }),
40
- React.createElement(FadingCheckIcon, { fadeIn: calcExpUpdated }),
39
+ React.createElement(FadingCheckIcon, { fadeIn: calcExpUpdated, disabled: readOnly }),
41
40
  React.createElement(Fade, { in: valueBoolean !== undefined, timeout: 100 },
42
41
  React.createElement(Tooltip, { title: "Set question as unanswered" },
43
42
  React.createElement(Button, { sx: {
44
43
  color: grey['500'],
45
44
  '&:hover': { backgroundColor: grey['200'] }
46
- }, onClick: onClear }, "Clear")))));
45
+ }, disabled: readOnly, onClick: onClear }, "Clear")))));
47
46
  });
48
47
  export default BooleanField;
49
48
  //# sourceMappingURL=BooleanField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BooleanField.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/BooleanItem/BooleanField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,IAAI,MAAM,oBAAoB,CAAC;AACtC,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAW3D,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,YAAY,CAAC,KAAwB;;IACtE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,GACzF,KAAK,CAAC;IAER,iEAAiE;IACjE,MAAM,WAAW,GAAG,MAAA,oBAAoB,CAAC,KAAK,CAAC,mCAAI,qBAAqB,CAAC,UAAU,CAAC;IAEpF,MAAM,SAAS,GAAG,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;IAE9E,OAAO,CACL,oBAAC,GAAG,IACF,OAAO,EAAC,MAAM,EACd,UAAU,EAAC,QAAQ,EACnB,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE;QACpE,oBAAC,gBAAgB,IACf,GAAG,EAAE,WAAW,KAAK,qBAAqB,CAAC,UAAU,EACrD,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAChD,KAAK,EAAE,SAAS;YAChB,oBAAC,iBAAiB,IAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,KAAK,EAAC,QAAQ,EAAE,QAAQ,GAAI;YAClE,oBAAC,iBAAiB,IAAC,KAAK,EAAC,OAAO,EAAC,KAAK,EAAC,IAAI,EAAC,QAAQ,EAAE,QAAQ,GAAI,CACjD;QAEnB,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,GAAI;QAEpB,oBAAC,eAAe,IAAC,MAAM,EAAE,cAAc,GAAI;QAC3C,oBAAC,IAAI,IAAC,EAAE,EAAE,YAAY,KAAK,SAAS,EAAE,OAAO,EAAE,GAAG;YAChD,oBAAC,OAAO,IAAC,KAAK,EAAC,4BAA4B;gBACzC,oBAAC,MAAM,IACL,EAAE,EAAE;wBACF,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC;wBAClB,SAAS,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;qBAC5C,EACD,OAAO,EAAE,OAAO,YAET,CACD,CACL,CACH,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"BooleanField.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/BooleanItem/BooleanField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,IAAI,MAAM,oBAAoB,CAAC;AACtC,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAW3D,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,YAAY,CAAC,KAAwB;;IACtE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,GACzF,KAAK,CAAC;IAER,iEAAiE;IACjE,MAAM,WAAW,GAAG,MAAA,oBAAoB,CAAC,KAAK,CAAC,mCAAI,qBAAqB,CAAC,UAAU,CAAC;IAEpF,MAAM,SAAS,GAAG,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;IAE9E,OAAO,CACL,oBAAC,GAAG,IAAC,OAAO,EAAC,MAAM,EAAC,UAAU,EAAC,QAAQ;QACrC,oBAAC,gBAAgB,IACf,GAAG,EAAE,WAAW,KAAK,qBAAqB,CAAC,UAAU,EACrD,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAChD,KAAK,EAAE,SAAS;YAChB,oBAAC,iBAAiB,IAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,KAAK,EAAC,QAAQ,EAAE,QAAQ,GAAI;YAClE,oBAAC,iBAAiB,IAAC,KAAK,EAAC,OAAO,EAAC,KAAK,EAAC,IAAI,EAAC,QAAQ,EAAE,QAAQ,GAAI,CACjD;QAEnB,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,GAAI;QAEpB,oBAAC,eAAe,IAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,GAAI;QAC/D,oBAAC,IAAI,IAAC,EAAE,EAAE,YAAY,KAAK,SAAS,EAAE,OAAO,EAAE,GAAG;YAChD,oBAAC,OAAO,IAAC,KAAK,EAAC,4BAA4B;gBACzC,oBAAC,MAAM,IACL,EAAE,EAAE;wBACF,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC;wBAClB,SAAS,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;qBAC5C,EACD,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,YAET,CACD,CACL,CACH,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,eAAe,YAAY,CAAC"}
@@ -19,18 +19,17 @@ import { ChoiceItemOrientation } from '../../../interfaces/choice.enum';
19
19
  import RadioAnswerOptionButtons from '../ItemParts/RadioAnswerOptionButtons';
20
20
  import { StyledRadioGroup } from '../Item.styles';
21
21
  import { getChoiceOrientation } from '../../../utils/choice';
22
- import { TEXT_FIELD_WIDTH } from '../Textfield.styles';
23
22
  import Box from '@mui/material/Box';
24
23
  import FadingCheckIcon from '../ItemParts/FadingCheckIcon';
25
24
  function ChoiceRadioAnswerOptionFields(props) {
26
25
  var _a;
27
26
  const { qItem, valueRadio, readOnly, calcExpUpdated, isTabled, onCheckedChange } = props;
28
27
  const orientation = (_a = getChoiceOrientation(qItem)) !== null && _a !== void 0 ? _a : ChoiceItemOrientation.Vertical;
29
- return (React.createElement(Box, { display: "flex", alignItems: "center", sx: { maxWidth: !isTabled ? TEXT_FIELD_WIDTH : 3000, minWidth: 160 } },
28
+ return (React.createElement(Box, { display: "flex", alignItems: "center" },
30
29
  React.createElement(StyledRadioGroup, { row: orientation === ChoiceItemOrientation.Horizontal, name: qItem.text, id: qItem.id, onChange: (e) => onCheckedChange(e.target.value), value: valueRadio, "data-test": "q-item-radio-group" },
31
30
  React.createElement(RadioAnswerOptionButtons, { qItem: qItem, readOnly: readOnly })),
32
31
  React.createElement(Box, { flexGrow: 1 }),
33
- React.createElement(FadingCheckIcon, { fadeIn: calcExpUpdated })));
32
+ React.createElement(FadingCheckIcon, { fadeIn: calcExpUpdated, disabled: readOnly })));
34
33
  }
35
34
  export default ChoiceRadioAnswerOptionFields;
36
35
  //# sourceMappingURL=ChoiceRadioAnswerOptionFields.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChoiceRadioAnswerOptionFields.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,OAAO,wBAAwB,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAU3D,SAAS,6BAA6B,CAAC,KAAyC;;IAC9E,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IAEzF,MAAM,WAAW,GAAG,MAAA,oBAAoB,CAAC,KAAK,CAAC,mCAAI,qBAAqB,CAAC,QAAQ,CAAC;IAElF,OAAO,CACL,oBAAC,GAAG,IACF,OAAO,EAAC,MAAM,EACd,UAAU,EAAC,QAAQ,EACnB,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE;QACpE,oBAAC,gBAAgB,IACf,GAAG,EAAE,WAAW,KAAK,qBAAqB,CAAC,UAAU,EACrD,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAChD,KAAK,EAAE,UAAU,eACP,oBAAoB;YAC9B,oBAAC,wBAAwB,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAC7C;QAEnB,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,GAAI;QAEpB,oBAAC,eAAe,IAAC,MAAM,EAAE,cAAc,GAAI,CACvC,CACP,CAAC;AACJ,CAAC;AAED,eAAe,6BAA6B,CAAC"}
1
+ {"version":3,"file":"ChoiceRadioAnswerOptionFields.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,OAAO,wBAAwB,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAU3D,SAAS,6BAA6B,CAAC,KAAyC;;IAC9E,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IAEzF,MAAM,WAAW,GAAG,MAAA,oBAAoB,CAAC,KAAK,CAAC,mCAAI,qBAAqB,CAAC,QAAQ,CAAC;IAElF,OAAO,CACL,oBAAC,GAAG,IAAC,OAAO,EAAC,MAAM,EAAC,UAAU,EAAC,QAAQ;QACrC,oBAAC,gBAAgB,IACf,GAAG,EAAE,WAAW,KAAK,qBAAqB,CAAC,UAAU,EACrD,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAChD,KAAK,EAAE,UAAU,eACP,oBAAoB;YAC9B,oBAAC,wBAAwB,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAC7C;QAEnB,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,GAAI;QAEpB,oBAAC,eAAe,IAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAC3D,CACP,CAAC;AACJ,CAAC;AAED,eAAe,6BAA6B,CAAC"}
@@ -22,7 +22,6 @@ import { StyledRadioGroup } from '../Item.styles';
22
22
  import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline';
23
23
  import { StyledAlert } from '../../Alert.styles';
24
24
  import { getChoiceOrientation } from '../../../utils/choice';
25
- import { TEXT_FIELD_WIDTH } from '../Textfield.styles';
26
25
  import FadingCheckIcon from '../ItemParts/FadingCheckIcon';
27
26
  import Box from '@mui/material/Box';
28
27
  function ChoiceRadioAnswerValueSetFields(props) {
@@ -30,13 +29,13 @@ function ChoiceRadioAnswerValueSetFields(props) {
30
29
  const { qItem, codings, valueRadio, readOnly, calcExpUpdated, terminologyError, isTabled, onCheckedChange } = props;
31
30
  const orientation = (_a = getChoiceOrientation(qItem)) !== null && _a !== void 0 ? _a : ChoiceItemOrientation.Vertical;
32
31
  if (codings.length > 0) {
33
- return (React.createElement(Box, { display: "flex", alignItems: "center", sx: { maxWidth: !isTabled ? TEXT_FIELD_WIDTH : 3000, minWidth: 160 } },
32
+ return (React.createElement(Box, { display: "flex", alignItems: "center" },
34
33
  React.createElement(StyledRadioGroup, { row: orientation === ChoiceItemOrientation.Horizontal, name: qItem.text, id: qItem.id, onChange: (e) => onCheckedChange(e.target.value), value: valueRadio !== null && valueRadio !== void 0 ? valueRadio : null }, codings.map((coding) => {
35
34
  var _a, _b, _c;
36
35
  return (React.createElement(ChoiceRadioSingle, { key: (_a = coding.code) !== null && _a !== void 0 ? _a : '', value: (_b = coding.code) !== null && _b !== void 0 ? _b : '', label: (_c = coding.display) !== null && _c !== void 0 ? _c : `${coding.code}`, readOnly: readOnly }));
37
36
  })),
38
37
  React.createElement(Box, { flexGrow: 1 }),
39
- React.createElement(FadingCheckIcon, { fadeIn: calcExpUpdated })));
38
+ React.createElement(FadingCheckIcon, { fadeIn: calcExpUpdated, disabled: readOnly })));
40
39
  }
41
40
  if (terminologyError.error) {
42
41
  return (React.createElement(StyledAlert, { color: "error" },
@@ -1 +1 @@
1
- {"version":3,"file":"ChoiceRadioAnswerValueSetFields.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChoiceRadioAnswerValueSetFields.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,gBAAgB,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAE3D,OAAO,GAAG,MAAM,mBAAmB,CAAC;AAYpC,SAAS,+BAA+B,CAAC,KAA2C;;IAClF,MAAM,EACJ,KAAK,EACL,OAAO,EACP,UAAU,EACV,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,eAAe,EAChB,GAAG,KAAK,CAAC;IAEV,MAAM,WAAW,GAAG,MAAA,oBAAoB,CAAC,KAAK,CAAC,mCAAI,qBAAqB,CAAC,QAAQ,CAAC;IAElF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACtB,OAAO,CACL,oBAAC,GAAG,IAAC,OAAO,EAAC,MAAM,EAAC,UAAU,EAAC,QAAQ;YACrC,oBAAC,gBAAgB,IACf,GAAG,EAAE,WAAW,KAAK,qBAAqB,CAAC,UAAU,EACrD,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAChD,KAAK,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,IAAI,IACxB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAc,EAAE,EAAE;;gBAC9B,OAAO,CACL,oBAAC,iBAAiB,IAChB,GAAG,EAAE,MAAA,MAAM,CAAC,IAAI,mCAAI,EAAE,EACtB,KAAK,EAAE,MAAA,MAAM,CAAC,IAAI,mCAAI,EAAE,EACxB,KAAK,EAAE,MAAA,MAAM,CAAC,OAAO,mCAAI,GAAG,MAAM,CAAC,IAAI,EAAE,EACzC,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAC;YACJ,CAAC,CAAC,CACe;YACnB,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,GAAI;YAEpB,oBAAC,eAAe,IAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAC3D,CACP,CAAC;KACH;IAED,IAAI,gBAAgB,CAAC,KAAK,EAAE;QAC1B,OAAO,CACL,oBAAC,WAAW,IAAC,KAAK,EAAC,OAAO;YACxB,oBAAC,gBAAgB,IAAC,KAAK,EAAC,OAAO,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAI;YACpD,oBAAC,UAAU,IAAC,OAAO,EAAC,WAAW;;gBACuC,GAAG;gBACtE,gBAAgB,CAAC,cAAc,CACrB,CACD,CACf,CAAC;KACH;IAED,OAAO,CACL,oBAAC,WAAW,IAAC,KAAK,EAAC,OAAO;QACxB,oBAAC,gBAAgB,IAAC,KAAK,EAAC,OAAO,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAI;QACpD,oBAAC,UAAU,IAAC,OAAO,EAAC,WAAW,uEAElB,CACD,CACf,CAAC;AACJ,CAAC;AAED,eAAe,+BAA+B,CAAC"}
@@ -28,7 +28,7 @@ function ChoiceSelectAnswerValueSetFields(props) {
28
28
  if (codings.length > 0) {
29
29
  return (React.createElement(Autocomplete, { id: qItem.id, options: codings, getOptionLabel: (option) => { var _a; return (_a = option.display) !== null && _a !== void 0 ? _a : `${option.code}`; }, value: valueCoding !== null && valueCoding !== void 0 ? valueCoding : null, onChange: (_, newValue) => onSelectChange(newValue), openOnFocus: true, autoHighlight: true, sx: { maxWidth: !isTabled ? TEXT_FIELD_WIDTH : 3000, minWidth: 160, flexGrow: 1 }, size: "small", disabled: readOnly, renderInput: (params) => (React.createElement(StandardTextField, Object.assign({ isTabled: isTabled, label: displayPrompt, placeholder: entryFormat }, params, { InputProps: Object.assign(Object.assign({}, params.InputProps), { endAdornment: (React.createElement(React.Fragment, null,
30
30
  params.InputProps.endAdornment,
31
- React.createElement(FadingCheckIcon, { fadeIn: calcExpUpdated }),
31
+ React.createElement(FadingCheckIcon, { fadeIn: calcExpUpdated, disabled: readOnly }),
32
32
  displayUnit)) }), "data-test": "q-item-choice-dropdown-answer-value-set-field" }))) }));
33
33
  }
34
34
  if (terminologyError.error) {
@@ -1 +1 @@
1
- {"version":3,"file":"ChoiceSelectAnswerValueSetFields.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,gBAAgB,MAAM,kCAAkC,CAAC;AAChE,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAElD,OAAO,sBAAsB,MAAM,uCAAuC,CAAC;AAG3E,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAY3D,SAAS,gCAAgC,CAAC,KAA4C;IACpF,MAAM,EACJ,KAAK,EACL,OAAO,EACP,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,cAAc,EACf,GAAG,KAAK,CAAC;IAEV,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAElF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACtB,OAAO,CACL,oBAAC,YAAY,IACX,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,WAAC,OAAA,MAAA,MAAM,CAAC,OAAO,mCAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA,EAAA,EAC9D,KAAK,EAAE,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,IAAI,EAC1B,QAAQ,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,EACnD,WAAW,QACX,aAAa,QACb,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,EACjF,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CACvB,oBAAC,iBAAiB,kBAChB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,WAAW,IACpB,MAAM,IACV,UAAU,kCACL,MAAM,CAAC,UAAU,KACpB,YAAY,EAAE,CACZ;wBACG,MAAM,CAAC,UAAU,CAAC,YAAY;wBAC/B,oBAAC,eAAe,IAAC,MAAM,EAAE,cAAc,GAAI;wBAC1C,WAAW,CACX,CACJ,kBAEO,+CAA+C,IACzD,CACH,GACD,CACH,CAAC;KACH;IAED,IAAI,gBAAgB,CAAC,KAAK,EAAE;QAC1B,OAAO,CACL,oBAAC,WAAW,IAAC,KAAK,EAAC,OAAO;YACxB,oBAAC,gBAAgB,IAAC,KAAK,EAAC,OAAO,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAI;YACpD,oBAAC,UAAU,IAAC,OAAO,EAAC,WAAW;;gBACuC,GAAG;gBACtE,gBAAgB,CAAC,cAAc,CACrB,CACD,CACf,CAAC;KACH;IAED,OAAO,CACL,oBAAC,WAAW,IAAC,KAAK,EAAC,OAAO;QACxB,oBAAC,gBAAgB,IAAC,KAAK,EAAC,OAAO,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAI;QACpD,oBAAC,UAAU,IAAC,OAAO,EAAC,WAAW,uEAElB,CACD,CACf,CAAC;AACJ,CAAC;AAED,eAAe,gCAAgC,CAAC"}
1
+ {"version":3,"file":"ChoiceSelectAnswerValueSetFields.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,gBAAgB,MAAM,kCAAkC,CAAC;AAChE,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAElD,OAAO,sBAAsB,MAAM,uCAAuC,CAAC;AAG3E,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAY3D,SAAS,gCAAgC,CAAC,KAA4C;IACpF,MAAM,EACJ,KAAK,EACL,OAAO,EACP,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,cAAc,EACf,GAAG,KAAK,CAAC;IAEV,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAElF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACtB,OAAO,CACL,oBAAC,YAAY,IACX,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,WAAC,OAAA,MAAA,MAAM,CAAC,OAAO,mCAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA,EAAA,EAC9D,KAAK,EAAE,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,IAAI,EAC1B,QAAQ,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,EACnD,WAAW,QACX,aAAa,QACb,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,EACjF,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CACvB,oBAAC,iBAAiB,kBAChB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,WAAW,IACpB,MAAM,IACV,UAAU,kCACL,MAAM,CAAC,UAAU,KACpB,YAAY,EAAE,CACZ;wBACG,MAAM,CAAC,UAAU,CAAC,YAAY;wBAC/B,oBAAC,eAAe,IAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,GAAI;wBAC9D,WAAW,CACX,CACJ,kBAEO,+CAA+C,IACzD,CACH,GACD,CACH,CAAC;KACH;IAED,IAAI,gBAAgB,CAAC,KAAK,EAAE;QAC1B,OAAO,CACL,oBAAC,WAAW,IAAC,KAAK,EAAC,OAAO;YACxB,oBAAC,gBAAgB,IAAC,KAAK,EAAC,OAAO,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAI;YACpD,oBAAC,UAAU,IAAC,OAAO,EAAC,WAAW;;gBACuC,GAAG;gBACtE,gBAAgB,CAAC,cAAc,CACrB,CACD,CACf,CAAC;KACH;IAED,OAAO,CACL,oBAAC,WAAW,IAAC,KAAK,EAAC,OAAO;QACxB,oBAAC,gBAAgB,IAAC,KAAK,EAAC,OAAO,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAI;QACpD,oBAAC,UAAU,IAAC,OAAO,EAAC,WAAW,uEAElB,CACD,CACf,CAAC;AACJ,CAAC;AAED,eAAe,gCAAgC,CAAC"}
@@ -22,7 +22,7 @@ function DecimalField(props) {
22
22
  const { linkId, input, feedback, displayPrompt, displayUnit, entryFormat, readOnly, calcExpUpdated, isTabled, onInputChange } = props;
23
23
  return (React.createElement(StandardTextField, { id: linkId, value: input, error: !!feedback, onChange: (event) => onInputChange(event.target.value), disabled: readOnly, label: displayPrompt, placeholder: entryFormat === '' ? '0.0' : entryFormat, fullWidth: true, isTabled: isTabled, size: "small", inputProps: { inputMode: 'numeric', pattern: '[0-9]*' }, InputProps: {
24
24
  endAdornment: (React.createElement(InputAdornment, { position: 'end' },
25
- React.createElement(FadingCheckIcon, { fadeIn: calcExpUpdated }),
25
+ React.createElement(FadingCheckIcon, { fadeIn: calcExpUpdated, disabled: readOnly }),
26
26
  displayUnit))
27
27
  }, helperText: feedback, "data-test": "q-item-decimal-field" }));
28
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DecimalField.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/DecimalItem/DecimalField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAexD,SAAS,YAAY,CAAC,KAAwB;IAC5C,MAAM,EACJ,MAAM,EACN,KAAK,EACL,QAAQ,EACR,aAAa,EACb,WAAW,EACX,WAAW,EACX,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,aAAa,EACd,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,oBAAC,iBAAiB,IAChB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,CAAC,CAAC,QAAQ,EACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACtD,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,EACrD,SAAS,QACT,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,OAAO,EACZ,UAAU,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EACvD,UAAU,EAAE;YACV,YAAY,EAAE,CACZ,oBAAC,cAAc,IAAC,QAAQ,EAAE,KAAK;gBAC7B,oBAAC,eAAe,IAAC,MAAM,EAAE,cAAc,GAAI;gBAC1C,WAAW,CACG,CAClB;SACF,EACD,UAAU,EAAE,QAAQ,eACV,sBAAsB,GAChC,CACH,CAAC;AACJ,CAAC;AAED,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"DecimalField.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/DecimalItem/DecimalField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAexD,SAAS,YAAY,CAAC,KAAwB;IAC5C,MAAM,EACJ,MAAM,EACN,KAAK,EACL,QAAQ,EACR,aAAa,EACb,WAAW,EACX,WAAW,EACX,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,aAAa,EACd,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,oBAAC,iBAAiB,IAChB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,CAAC,CAAC,QAAQ,EACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACtD,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,EACrD,SAAS,QACT,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,OAAO,EACZ,UAAU,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EACvD,UAAU,EAAE;YACV,YAAY,EAAE,CACZ,oBAAC,cAAc,IAAC,QAAQ,EAAE,KAAK;gBAC7B,oBAAC,eAAe,IAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,GAAI;gBAC9D,WAAW,CACG,CAClB;SACF,EACD,UAAU,EAAE,QAAQ,eACV,sBAAsB,GAChC,CACH,CAAC;AACJ,CAAC;AAED,eAAe,YAAY,CAAC"}
@@ -22,7 +22,7 @@ function IntegerField(props) {
22
22
  const { linkId, input, feedback, displayPrompt, displayUnit, entryFormat, readOnly, calcExpUpdated, isTabled, onInputChange } = props;
23
23
  return (React.createElement(StandardTextField, { id: linkId, value: input, error: !!feedback, helperText: feedback, onChange: (event) => onInputChange(event.target.value), disabled: readOnly, label: displayPrompt, placeholder: entryFormat === '' ? '0' : entryFormat, fullWidth: true, isTabled: isTabled, size: "small", inputProps: { inputMode: 'numeric', pattern: '[0-9]*' }, InputProps: {
24
24
  endAdornment: (React.createElement(InputAdornment, { position: 'end' },
25
- React.createElement(FadingCheckIcon, { fadeIn: calcExpUpdated }),
25
+ React.createElement(FadingCheckIcon, { fadeIn: calcExpUpdated, disabled: readOnly }),
26
26
  displayUnit))
27
27
  }, "data-test": "q-item-integer-field" }));
28
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"IntegerField.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/IntegerItem/IntegerField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAc3D,SAAS,YAAY,CAAC,KAAwB;IAC5C,MAAM,EACJ,MAAM,EACN,KAAK,EACL,QAAQ,EACR,aAAa,EACb,WAAW,EACX,WAAW,EACX,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,aAAa,EACd,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,oBAAC,iBAAiB,IAChB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,CAAC,CAAC,QAAQ,EACjB,UAAU,EAAE,QAAQ,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACtD,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EACnD,SAAS,QACT,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,OAAO,EACZ,UAAU,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EACvD,UAAU,EAAE;YACV,YAAY,EAAE,CACZ,oBAAC,cAAc,IAAC,QAAQ,EAAE,KAAK;gBAC7B,oBAAC,eAAe,IAAC,MAAM,EAAE,cAAc,GAAI;gBAC1C,WAAW,CACG,CAClB;SACF,eACS,sBAAsB,GAChC,CACH,CAAC;AACJ,CAAC;AAED,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"IntegerField.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/IntegerItem/IntegerField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAc3D,SAAS,YAAY,CAAC,KAAwB;IAC5C,MAAM,EACJ,MAAM,EACN,KAAK,EACL,QAAQ,EACR,aAAa,EACb,WAAW,EACX,WAAW,EACX,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,aAAa,EACd,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,oBAAC,iBAAiB,IAChB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,CAAC,CAAC,QAAQ,EACjB,UAAU,EAAE,QAAQ,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACtD,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EACnD,SAAS,QACT,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,OAAO,EACZ,UAAU,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EACvD,UAAU,EAAE;YACV,YAAY,EAAE,CACZ,oBAAC,cAAc,IAAC,QAAQ,EAAE,KAAK;gBAC7B,oBAAC,eAAe,IAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,GAAI;gBAC9D,WAAW,CACG,CAClB;SACF,eACS,sBAAsB,GAChC,CACH,CAAC;AACJ,CAAC;AAED,eAAe,YAAY,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  interface FadingCheckIconProps {
3
3
  fadeIn: boolean;
4
+ disabled: boolean;
4
5
  }
5
6
  declare function FadingCheckIcon(props: FadingCheckIconProps): React.JSX.Element;
6
7
  export default FadingCheckIcon;
@@ -18,9 +18,9 @@ import React from 'react';
18
18
  import Fade from '@mui/material/Fade';
19
19
  import SyncIcon from '@mui/icons-material/Sync';
20
20
  function FadingCheckIcon(props) {
21
- const { fadeIn } = props;
21
+ const { fadeIn, disabled } = props;
22
22
  return (React.createElement(Fade, { in: fadeIn, timeout: { enter: 100, exit: 300 } },
23
- React.createElement(SyncIcon, { color: "success", fontSize: "small" })));
23
+ React.createElement(SyncIcon, { color: "success", fontSize: "small", sx: Object.assign({}, (disabled ? { color: 'text.disabled' } : null)) })));
24
24
  }
25
25
  export default FadingCheckIcon;
26
26
  //# sourceMappingURL=FadingCheckIcon.js.map
@@ -1 +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;AAMhD,SAAS,eAAe,CAAC,KAA2B;IAClD,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEzB,OAAO,CACL,oBAAC,IAAI,IAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE;QAClD,oBAAC,QAAQ,IAAC,KAAK,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,GAAG,CACxC,CACR,CAAC;AACJ,CAAC;AAED,eAAe,eAAe,CAAC"}
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 { QuestionnaireItemAnswerOption } from 'fhir/r4';
3
+ interface RadioOptionListProps {
4
+ options: QuestionnaireItemAnswerOption[];
5
+ readOnly: boolean;
6
+ }
7
+ declare function RadioOptionList(props: RadioOptionListProps): React.JSX.Element;
8
+ export default RadioOptionList;
@@ -0,0 +1,36 @@
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 ChoiceRadioSingle from '../ChoiceItems/ChoiceRadioSingle';
19
+ function RadioOptionList(props) {
20
+ const { options, readOnly } = props;
21
+ return (React.createElement(React.Fragment, null, options.map((option) => {
22
+ var _a, _b, _c;
23
+ if (option['valueCoding']) {
24
+ return (React.createElement(ChoiceRadioSingle, { key: (_a = option.valueCoding.code) !== null && _a !== void 0 ? _a : '', value: (_b = option.valueCoding.code) !== null && _b !== void 0 ? _b : '', label: (_c = option.valueCoding.display) !== null && _c !== void 0 ? _c : `${option.valueCoding.code}`, readOnly: readOnly }));
25
+ }
26
+ if (option['valueString']) {
27
+ return (React.createElement(ChoiceRadioSingle, { key: option.valueString, value: option.valueString, label: option.valueString, readOnly: readOnly }));
28
+ }
29
+ if (option['valueInteger']) {
30
+ return (React.createElement(ChoiceRadioSingle, { key: option.valueInteger, value: option.valueInteger.toString(), label: option.valueInteger.toString(), readOnly: readOnly }));
31
+ }
32
+ return null;
33
+ })));
34
+ }
35
+ export default RadioOptionList;
36
+ //# sourceMappingURL=RadioOptionList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioOptionList.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ItemParts/RadioOptionList.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AAQjE,SAAS,eAAe,CAAC,KAA2B;IAClD,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAEpC,OAAO,CACL,0CACG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;;QACtB,IAAI,MAAM,CAAC,aAAa,CAAC,EAAE;YACzB,OAAO,CACL,oBAAC,iBAAiB,IAChB,GAAG,EAAE,MAAA,MAAM,CAAC,WAAW,CAAC,IAAI,mCAAI,EAAE,EAClC,KAAK,EAAE,MAAA,MAAM,CAAC,WAAW,CAAC,IAAI,mCAAI,EAAE,EACpC,KAAK,EAAE,MAAA,MAAM,CAAC,WAAW,CAAC,OAAO,mCAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,EACjE,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAC;SACH;QAED,IAAI,MAAM,CAAC,aAAa,CAAC,EAAE;YACzB,OAAO,CACL,oBAAC,iBAAiB,IAChB,GAAG,EAAE,MAAM,CAAC,WAAW,EACvB,KAAK,EAAE,MAAM,CAAC,WAAW,EACzB,KAAK,EAAE,MAAM,CAAC,WAAW,EACzB,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAC;SACH;QAED,IAAI,MAAM,CAAC,cAAc,CAAC,EAAE;YAC1B,OAAO,CACL,oBAAC,iBAAiB,IAChB,GAAG,EAAE,MAAM,CAAC,YAAY,EACxB,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,EACrC,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,EACrC,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAC;SACH;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CACD,CACJ,CAAC;AACJ,CAAC;AAED,eAAe,eAAe,CAAC"}
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import type { QuestionnaireItem, QuestionnaireItemAnswerOption, QuestionnaireResponseItemAnswer } from 'fhir/r4';
3
+ import type { TerminologyError } from '../../../hooks/useValueSetCodings';
4
+ interface OpenChoiceCheckboxFieldsProps {
5
+ qItem: QuestionnaireItem;
6
+ options: QuestionnaireItemAnswerOption[];
7
+ answers: QuestionnaireResponseItemAnswer[];
8
+ openLabelText: string | null;
9
+ openLabelValue: string;
10
+ openLabelChecked: boolean;
11
+ readOnly: boolean;
12
+ terminologyError: TerminologyError;
13
+ onOptionChange: (changedOptionValue: string) => void;
14
+ onOpenLabelCheckedChange: (checked: boolean) => void;
15
+ onOpenLabelInputChange: (input: string) => void;
16
+ }
17
+ declare function OpenChoiceCheckboxAnswerValueSetFields(props: OpenChoiceCheckboxFieldsProps): React.JSX.Element;
18
+ export default OpenChoiceCheckboxAnswerValueSetFields;
@@ -0,0 +1,48 @@
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 { ChoiceItemOrientation } from '../../../interfaces/choice.enum';
19
+ import CheckboxSingleWithOpenLabel from '../ItemParts/CheckboxSingleWithOpenLabel';
20
+ import { getChoiceOrientation } from '../../../utils/choice';
21
+ import { StyledFormGroup } from '../Item.styles';
22
+ import CheckboxOptionList from '../ChoiceItems/CheckboxOptionList';
23
+ import { StyledAlert } from '../../Alert.styles';
24
+ import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline';
25
+ import Typography from '@mui/material/Typography';
26
+ function OpenChoiceCheckboxAnswerValueSetFields(props) {
27
+ var _a;
28
+ const { qItem, options, answers, openLabelText, openLabelValue, openLabelChecked, readOnly, terminologyError, onOptionChange, onOpenLabelCheckedChange, onOpenLabelInputChange } = props;
29
+ const orientation = (_a = getChoiceOrientation(qItem)) !== null && _a !== void 0 ? _a : ChoiceItemOrientation.Vertical;
30
+ if (options.length > 0) {
31
+ return (React.createElement(StyledFormGroup, { row: orientation === ChoiceItemOrientation.Horizontal },
32
+ React.createElement(CheckboxOptionList, { options: options, answers: answers, readOnly: readOnly, onCheckedChange: onOptionChange }),
33
+ openLabelText !== null ? (React.createElement(CheckboxSingleWithOpenLabel, { value: openLabelValue, label: openLabelText, isChecked: openLabelChecked, onCheckedChange: onOpenLabelCheckedChange, onInputChange: onOpenLabelInputChange })) : null));
34
+ }
35
+ if (terminologyError.error) {
36
+ return (React.createElement(StyledAlert, { color: "error" },
37
+ React.createElement(ErrorOutlineIcon, { color: "error", sx: { pr: 0.75 } }),
38
+ React.createElement(Typography, { variant: "subtitle2" },
39
+ "There was an error fetching options from the terminology server for",
40
+ ' ',
41
+ terminologyError.answerValueSet)));
42
+ }
43
+ return (React.createElement(StyledAlert, { color: "error" },
44
+ React.createElement(ErrorOutlineIcon, { color: "error", sx: { pr: 0.75 } }),
45
+ React.createElement(Typography, { variant: "subtitle2" }, "Unable to fetch options from the questionnaire or launch context")));
46
+ }
47
+ export default OpenChoiceCheckboxAnswerValueSetFields;
48
+ //# sourceMappingURL=OpenChoiceCheckboxAnswerValueSetFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenChoiceCheckboxAnswerValueSetFields.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetFields.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,2BAA2B,MAAM,0CAA0C,CAAC;AAMnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,kBAAkB,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,gBAAgB,MAAM,kCAAkC,CAAC;AAChE,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAiBlD,SAAS,sCAAsC,CAAC,KAAoC;;IAClF,MAAM,EACJ,KAAK,EACL,OAAO,EACP,OAAO,EACP,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACxB,sBAAsB,EACvB,GAAG,KAAK,CAAC;IAEV,MAAM,WAAW,GAAG,MAAA,oBAAoB,CAAC,KAAK,CAAC,mCAAI,qBAAqB,CAAC,QAAQ,CAAC;IAElF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACtB,OAAO,CACL,oBAAC,eAAe,IAAC,GAAG,EAAE,WAAW,KAAK,qBAAqB,CAAC,UAAU;YACpE,oBAAC,kBAAkB,IACjB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,cAAc,GAC/B;YAED,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,CACxB,oBAAC,2BAA2B,IAC1B,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,gBAAgB,EAC3B,eAAe,EAAE,wBAAwB,EACzC,aAAa,EAAE,sBAAsB,GACrC,CACH,CAAC,CAAC,CAAC,IAAI,CACQ,CACnB,CAAC;KACH;IAED,IAAI,gBAAgB,CAAC,KAAK,EAAE;QAC1B,OAAO,CACL,oBAAC,WAAW,IAAC,KAAK,EAAC,OAAO;YACxB,oBAAC,gBAAgB,IAAC,KAAK,EAAC,OAAO,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAI;YACpD,oBAAC,UAAU,IAAC,OAAO,EAAC,WAAW;;gBACuC,GAAG;gBACtE,gBAAgB,CAAC,cAAc,CACrB,CACD,CACf,CAAC;KACH;IAED,OAAO,CACL,oBAAC,WAAW,IAAC,KAAK,EAAC,OAAO;QACxB,oBAAC,gBAAgB,IAAC,KAAK,EAAC,OAAO,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAI;QACpD,oBAAC,UAAU,IAAC,OAAO,EAAC,WAAW,uEAElB,CACD,CACf,CAAC;AACJ,CAAC;AAED,eAAe,sCAAsC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
3
+ import type { PropsWithIsRepeatedAttribute, PropsWithParentIsReadOnlyAttribute, PropsWithQrItemChangeHandler, PropsWithShowMinimalViewAttribute } from '../../../interfaces/renderProps.interface';
4
+ interface OpenChoiceCheckboxAnswerValueSetItemProps extends PropsWithQrItemChangeHandler, PropsWithIsRepeatedAttribute, PropsWithShowMinimalViewAttribute, PropsWithParentIsReadOnlyAttribute {
5
+ qItem: QuestionnaireItem;
6
+ qrItem: QuestionnaireResponseItem | null;
7
+ }
8
+ declare function OpenChoiceCheckboxAnswerValueSetItem(props: OpenChoiceCheckboxAnswerValueSetItemProps): React.JSX.Element;
9
+ export default OpenChoiceCheckboxAnswerValueSetItem;
@@ -0,0 +1,93 @@
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, { useCallback, useMemo } from 'react';
18
+ import { createEmptyQrItem } from '../../../utils/qrItem';
19
+ import { getOpenLabelText } from '../../../utils/itemControl';
20
+ import { updateOpenLabelAnswer } from '../../../utils/openChoice';
21
+ import { FullWidthFormComponentBox } from '../../Box.styles';
22
+ import debounce from 'lodash.debounce';
23
+ import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
24
+ import { DEBOUNCE_DURATION } from '../../../utils/debounce';
25
+ import DisplayInstructions from '../DisplayItem/DisplayInstructions';
26
+ import OpenChoiceCheckboxAnswerValueSetFields from './OpenChoiceCheckboxAnswerValueSetFields';
27
+ import useReadOnly from '../../../hooks/useReadOnly';
28
+ import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
29
+ import { useQuestionnaireStore } from '../../../stores';
30
+ import useOpenLabel from '../../../hooks/useOpenLabel';
31
+ import { convertCodingsToAnswerOptions, updateChoiceCheckboxAnswers } from '../../../utils/choice';
32
+ import useValueSetCodings from '../../../hooks/useValueSetCodings';
33
+ function OpenChoiceCheckboxAnswerValueSetItem(props) {
34
+ var _a;
35
+ const { qItem, qrItem, isRepeated, showMinimalView = false, parentIsReadOnly, onQrItemChange } = props;
36
+ const onFocusLinkId = useQuestionnaireStore.use.onFocusLinkId();
37
+ // Init input value
38
+ const qrOpenChoiceCheckbox = qrItem !== null && qrItem !== void 0 ? qrItem : createEmptyQrItem(qItem);
39
+ const answers = (_a = qrOpenChoiceCheckbox.answer) !== null && _a !== void 0 ? _a : [];
40
+ const readOnly = useReadOnly(qItem, parentIsReadOnly);
41
+ const { displayInstructions } = useRenderingExtensions(qItem);
42
+ const openLabelText = getOpenLabelText(qItem);
43
+ // Get codings/options from valueSet
44
+ const { codings, terminologyError } = useValueSetCodings(qItem);
45
+ const options = useMemo(() => convertCodingsToAnswerOptions(codings), [codings]);
46
+ const { openLabelValue, setOpenLabelValue, openLabelChecked, setOpenLabelChecked } = useOpenLabel(options, answers);
47
+ // Event handlers
48
+ // One of the options is changed
49
+ // Processing is similar to a choice checkbox
50
+ function handleOptionChange(changedOptionValue) {
51
+ if (options.length === 0) {
52
+ onQrItemChange(createEmptyQrItem(qItem));
53
+ return;
54
+ }
55
+ // Process as a choice checkbox
56
+ const updatedQrItem = updateChoiceCheckboxAnswers(changedOptionValue, answers, options, qrOpenChoiceCheckbox, isRepeated);
57
+ if (updatedQrItem) {
58
+ onQrItemChange(updatedQrItem);
59
+ }
60
+ // If single-selection, uncheck open label
61
+ if (!isRepeated) {
62
+ setOpenLabelChecked(false);
63
+ }
64
+ }
65
+ function handleOpenLabelChange(openLabelChecked, changedOpenLabelValue) {
66
+ const updatedQrItem = updateOpenLabelAnswer(openLabelChecked, changedOpenLabelValue, answers, options, qrOpenChoiceCheckbox, isRepeated);
67
+ if (updatedQrItem) {
68
+ onQrItemChange(updatedQrItem);
69
+ }
70
+ }
71
+ function handleOpenLabelCheckedChange(checked) {
72
+ handleOpenLabelChange(checked, openLabelValue);
73
+ setOpenLabelChecked(checked);
74
+ }
75
+ function handleOpenLabelInputChange(newValue) {
76
+ updateOpenLabelValueWithDebounce(newValue);
77
+ setOpenLabelValue(newValue);
78
+ }
79
+ // eslint-disable-next-line react-hooks/exhaustive-deps
80
+ const updateOpenLabelValueWithDebounce = useCallback(debounce((input) => {
81
+ handleOpenLabelChange(openLabelChecked, input);
82
+ }, DEBOUNCE_DURATION), [handleOpenLabelChange]); // Dependencies are tested, debounce is causing eslint to not recognise dependencies
83
+ if (showMinimalView) {
84
+ return (React.createElement(React.Fragment, null,
85
+ React.createElement(OpenChoiceCheckboxAnswerValueSetFields, { qItem: qItem, options: options, answers: answers, openLabelText: openLabelText, openLabelValue: openLabelValue, openLabelChecked: openLabelChecked, readOnly: readOnly, terminologyError: terminologyError, onOptionChange: handleOptionChange, onOpenLabelCheckedChange: handleOpenLabelCheckedChange, onOpenLabelInputChange: handleOpenLabelInputChange }),
86
+ React.createElement(DisplayInstructions, { displayInstructions: displayInstructions, readOnly: readOnly })));
87
+ }
88
+ return (React.createElement(FullWidthFormComponentBox, { "data-test": "q-item-open-choice-checkbox-answer-option-box", "data-linkid": qItem.linkId, onClick: () => onFocusLinkId(qItem.linkId) },
89
+ React.createElement(ItemFieldGrid, { qItem: qItem, readOnly: readOnly },
90
+ React.createElement(OpenChoiceCheckboxAnswerValueSetFields, { qItem: qItem, options: options, answers: answers, openLabelText: openLabelText, openLabelValue: openLabelValue, openLabelChecked: openLabelChecked, readOnly: readOnly, terminologyError: terminologyError, onOptionChange: handleOptionChange, onOpenLabelCheckedChange: handleOpenLabelCheckedChange, onOpenLabelInputChange: handleOpenLabelInputChange }))));
91
+ }
92
+ export default OpenChoiceCheckboxAnswerValueSetItem;
93
+ //# sourceMappingURL=OpenChoiceCheckboxAnswerValueSetItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenChoiceCheckboxAnswerValueSetItem.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerValueSetItem.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { QuestionnaireItem, QuestionnaireItemAnswerOption, QuestionnaireResponseItemAnswer } from 'fhir/r4';
3
+ import { TerminologyError } from '../../../hooks/useValueSetCodings';
3
4
  interface OpenChoiceCheckboxFieldsProps {
4
5
  qItem: QuestionnaireItem;
5
6
  options: QuestionnaireItemAnswerOption[];
@@ -8,6 +9,7 @@ interface OpenChoiceCheckboxFieldsProps {
8
9
  openLabelValue: string;
9
10
  openLabelChecked: boolean;
10
11
  readOnly: boolean;
12
+ terminologyError: TerminologyError;
11
13
  onOptionChange: (changedOptionValue: string) => void;
12
14
  onOpenLabelCheckedChange: (checked: boolean) => void;
13
15
  onOpenLabelInputChange: (input: string) => void;
@@ -20,13 +20,29 @@ import CheckboxSingleWithOpenLabel from '../ItemParts/CheckboxSingleWithOpenLabe
20
20
  import { getChoiceOrientation } from '../../../utils/choice';
21
21
  import { StyledFormGroup } from '../Item.styles';
22
22
  import CheckboxOptionList from '../ChoiceItems/CheckboxOptionList';
23
+ import { StyledAlert } from '../../Alert.styles';
24
+ import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline';
25
+ import Typography from '@mui/material/Typography';
23
26
  function OpenChoiceCheckboxFields(props) {
24
27
  var _a;
25
- const { qItem, options, answers, openLabelText, openLabelValue, openLabelChecked, readOnly, onOptionChange, onOpenLabelCheckedChange, onOpenLabelInputChange } = props;
28
+ const { qItem, options, answers, openLabelText, openLabelValue, openLabelChecked, readOnly, terminologyError, onOptionChange, onOpenLabelCheckedChange, onOpenLabelInputChange } = props;
26
29
  const orientation = (_a = getChoiceOrientation(qItem)) !== null && _a !== void 0 ? _a : ChoiceItemOrientation.Vertical;
27
- return (React.createElement(StyledFormGroup, { row: orientation === ChoiceItemOrientation.Horizontal },
28
- React.createElement(CheckboxOptionList, { options: options, answers: answers, readOnly: readOnly, onCheckedChange: onOptionChange }),
29
- openLabelText !== null ? (React.createElement(CheckboxSingleWithOpenLabel, { value: openLabelValue, label: openLabelText, isChecked: openLabelChecked, onCheckedChange: onOpenLabelCheckedChange, onInputChange: onOpenLabelInputChange })) : null));
30
+ if (options.length > 0) {
31
+ return (React.createElement(StyledFormGroup, { row: orientation === ChoiceItemOrientation.Horizontal },
32
+ React.createElement(CheckboxOptionList, { options: options, answers: answers, readOnly: readOnly, onCheckedChange: onOptionChange }),
33
+ openLabelText !== null ? (React.createElement(CheckboxSingleWithOpenLabel, { value: openLabelValue, label: openLabelText, isChecked: openLabelChecked, onCheckedChange: onOpenLabelCheckedChange, onInputChange: onOpenLabelInputChange })) : null));
34
+ }
35
+ if (terminologyError.error) {
36
+ return (React.createElement(StyledAlert, { color: "error" },
37
+ React.createElement(ErrorOutlineIcon, { color: "error", sx: { pr: 0.75 } }),
38
+ React.createElement(Typography, { variant: "subtitle2" },
39
+ "There was an error fetching options from the terminology server for",
40
+ ' ',
41
+ terminologyError.answerValueSet)));
42
+ }
43
+ return (React.createElement(StyledAlert, { color: "error" },
44
+ React.createElement(ErrorOutlineIcon, { color: "error", sx: { pr: 0.75 } }),
45
+ React.createElement(Typography, { variant: "subtitle2" }, "Unable to fetch options from the questionnaire or launch context")));
30
46
  }
31
47
  export default OpenChoiceCheckboxFields;
32
48
  //# sourceMappingURL=OpenChoiceCheckboxFields.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpenChoiceCheckboxFields.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxFields.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,2BAA2B,MAAM,0CAA0C,CAAC;AAMnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,kBAAkB,MAAM,mCAAmC,CAAC;AAenE,SAAS,wBAAwB,CAAC,KAAoC;;IACpE,MAAM,EACJ,KAAK,EACL,OAAO,EACP,OAAO,EACP,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,cAAc,EACd,wBAAwB,EACxB,sBAAsB,EACvB,GAAG,KAAK,CAAC;IAEV,MAAM,WAAW,GAAG,MAAA,oBAAoB,CAAC,KAAK,CAAC,mCAAI,qBAAqB,CAAC,QAAQ,CAAC;IAElF,OAAO,CACL,oBAAC,eAAe,IAAC,GAAG,EAAE,WAAW,KAAK,qBAAqB,CAAC,UAAU;QACpE,oBAAC,kBAAkB,IACjB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,cAAc,GAC/B;QAED,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,CACxB,oBAAC,2BAA2B,IAC1B,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,gBAAgB,EAC3B,eAAe,EAAE,wBAAwB,EACzC,aAAa,EAAE,sBAAsB,GACrC,CACH,CAAC,CAAC,CAAC,IAAI,CACQ,CACnB,CAAC;AACJ,CAAC;AAED,eAAe,wBAAwB,CAAC"}
1
+ {"version":3,"file":"OpenChoiceCheckboxFields.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxFields.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,2BAA2B,MAAM,0CAA0C,CAAC;AAMnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,kBAAkB,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,gBAAgB,MAAM,kCAAkC,CAAC;AAChE,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAiBlD,SAAS,wBAAwB,CAAC,KAAoC;;IACpE,MAAM,EACJ,KAAK,EACL,OAAO,EACP,OAAO,EACP,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACxB,sBAAsB,EACvB,GAAG,KAAK,CAAC;IAEV,MAAM,WAAW,GAAG,MAAA,oBAAoB,CAAC,KAAK,CAAC,mCAAI,qBAAqB,CAAC,QAAQ,CAAC;IAElF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACtB,OAAO,CACL,oBAAC,eAAe,IAAC,GAAG,EAAE,WAAW,KAAK,qBAAqB,CAAC,UAAU;YACpE,oBAAC,kBAAkB,IACjB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,cAAc,GAC/B;YAED,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,CACxB,oBAAC,2BAA2B,IAC1B,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,gBAAgB,EAC3B,eAAe,EAAE,wBAAwB,EACzC,aAAa,EAAE,sBAAsB,GACrC,CACH,CAAC,CAAC,CAAC,IAAI,CACQ,CACnB,CAAC;KACH;IAED,IAAI,gBAAgB,CAAC,KAAK,EAAE;QAC1B,OAAO,CACL,oBAAC,WAAW,IAAC,KAAK,EAAC,OAAO;YACxB,oBAAC,gBAAgB,IAAC,KAAK,EAAC,OAAO,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAI;YACpD,oBAAC,UAAU,IAAC,OAAO,EAAC,WAAW;;gBACuC,GAAG;gBACtE,gBAAgB,CAAC,cAAc,CACrB,CACD,CACf,CAAC;KACH;IAED,OAAO,CACL,oBAAC,WAAW,IAAC,KAAK,EAAC,OAAO;QACxB,oBAAC,gBAAgB,IAAC,KAAK,EAAC,OAAO,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAI;QACpD,oBAAC,UAAU,IAAC,OAAO,EAAC,WAAW,uEAElB,CACD,CACf,CAAC;AACJ,CAAC;AAED,eAAe,wBAAwB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import type { QuestionnaireItem, QuestionnaireItemAnswerOption } from 'fhir/r4';
3
+ import type { TerminologyError } from '../../../hooks/useValueSetCodings';
4
+ interface OpenChoiceRadioAnswerValueSetFieldsProps {
5
+ qItem: QuestionnaireItem;
6
+ options: QuestionnaireItemAnswerOption[];
7
+ valueRadio: string | null;
8
+ openLabelText: string | null;
9
+ openLabelValue: string | null;
10
+ openLabelSelected: boolean;
11
+ readOnly: boolean;
12
+ terminologyError: TerminologyError;
13
+ onValueChange: (changedOptionValue: string | null, changedOpenLabelValue: string | null) => void;
14
+ }
15
+ declare function OpenChoiceRadioAnswerValueSetFields(props: OpenChoiceRadioAnswerValueSetFieldsProps): React.JSX.Element;
16
+ export default OpenChoiceRadioAnswerValueSetFields;
@@ -0,0 +1,48 @@
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 { ChoiceItemOrientation } from '../../../interfaces/choice.enum';
19
+ import { StyledRadioGroup } from '../Item.styles';
20
+ import RadioButtonWithOpenLabel from '../ItemParts/RadioButtonWithOpenLabel';
21
+ import RadioOptionList from '../ItemParts/RadioOptionList';
22
+ import { getChoiceOrientation } from '../../../utils/choice';
23
+ import { StyledAlert } from '../../Alert.styles';
24
+ import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline';
25
+ import Typography from '@mui/material/Typography';
26
+ function OpenChoiceRadioAnswerValueSetFields(props) {
27
+ var _a;
28
+ const { qItem, options, valueRadio, openLabelText, openLabelValue, openLabelSelected, readOnly, terminologyError, onValueChange } = props;
29
+ const orientation = (_a = getChoiceOrientation(qItem)) !== null && _a !== void 0 ? _a : ChoiceItemOrientation.Vertical;
30
+ if (options.length > 0) {
31
+ return (React.createElement(StyledRadioGroup, { row: orientation === ChoiceItemOrientation.Horizontal, name: qItem.text, id: qItem.id, onChange: (e) => onValueChange(e.target.value, null), value: valueRadio, "data-test": "q-item-radio-group" },
32
+ React.createElement(RadioOptionList, { options: options, readOnly: readOnly }),
33
+ openLabelText ? (React.createElement(RadioButtonWithOpenLabel, { value: openLabelValue, label: openLabelText, readOnly: readOnly, isSelected: openLabelSelected, onInputChange: (input) => onValueChange(null, input) })) : null));
34
+ }
35
+ if (terminologyError.error) {
36
+ return (React.createElement(StyledAlert, { color: "error" },
37
+ React.createElement(ErrorOutlineIcon, { color: "error", sx: { pr: 0.75 } }),
38
+ React.createElement(Typography, { variant: "subtitle2" },
39
+ "There was an error fetching options from the terminology server for",
40
+ ' ',
41
+ terminologyError.answerValueSet)));
42
+ }
43
+ return (React.createElement(StyledAlert, { color: "error" },
44
+ React.createElement(ErrorOutlineIcon, { color: "error", sx: { pr: 0.75 } }),
45
+ React.createElement(Typography, { variant: "subtitle2" }, "Unable to fetch options from the questionnaire or launch context")));
46
+ }
47
+ export default OpenChoiceRadioAnswerValueSetFields;
48
+ //# sourceMappingURL=OpenChoiceRadioAnswerValueSetFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenChoiceRadioAnswerValueSetFields.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetFields.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,wBAAwB,MAAM,uCAAuC,CAAC;AAC7E,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,gBAAgB,MAAM,kCAAkC,CAAC;AAChE,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAclD,SAAS,mCAAmC,CAAC,KAA+C;;IAC1F,MAAM,EACJ,KAAK,EACL,OAAO,EACP,UAAU,EACV,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACd,GAAG,KAAK,CAAC;IAEV,MAAM,WAAW,GAAG,MAAA,oBAAoB,CAAC,KAAK,CAAC,mCAAI,qBAAqB,CAAC,QAAQ,CAAC;IAElF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACtB,OAAO,CACL,oBAAC,gBAAgB,IACf,GAAG,EAAE,WAAW,KAAK,qBAAqB,CAAC,UAAU,EACrD,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,QAAQ,EAAE,CAAC,CAAgC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,EACnF,KAAK,EAAE,UAAU,eACP,oBAAoB;YAC9B,oBAAC,eAAe,IAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAI;YAExD,aAAa,CAAC,CAAC,CAAC,CACf,oBAAC,wBAAwB,IACvB,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,iBAAiB,EAC7B,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,GACpD,CACH,CAAC,CAAC,CAAC,IAAI,CACS,CACpB,CAAC;KACH;IAED,IAAI,gBAAgB,CAAC,KAAK,EAAE;QAC1B,OAAO,CACL,oBAAC,WAAW,IAAC,KAAK,EAAC,OAAO;YACxB,oBAAC,gBAAgB,IAAC,KAAK,EAAC,OAAO,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAI;YACpD,oBAAC,UAAU,IAAC,OAAO,EAAC,WAAW;;gBACuC,GAAG;gBACtE,gBAAgB,CAAC,cAAc,CACrB,CACD,CACf,CAAC;KACH;IAED,OAAO,CACL,oBAAC,WAAW,IAAC,KAAK,EAAC,OAAO;QACxB,oBAAC,gBAAgB,IAAC,KAAK,EAAC,OAAO,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAI;QACpD,oBAAC,UAAU,IAAC,OAAO,EAAC,WAAW,uEAElB,CACD,CACf,CAAC;AACJ,CAAC;AAED,eAAe,mCAAmC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
3
+ import type { PropsWithIsRepeatedAttribute, PropsWithParentIsReadOnlyAttribute, PropsWithQrItemChangeHandler } from '../../../interfaces/renderProps.interface';
4
+ interface OpenChoiceRadioAnswerValueSetItemProps extends PropsWithQrItemChangeHandler, PropsWithIsRepeatedAttribute, PropsWithParentIsReadOnlyAttribute {
5
+ qItem: QuestionnaireItem;
6
+ qrItem: QuestionnaireResponseItem | null;
7
+ }
8
+ declare function OpenChoiceRadioAnswerValueSetItem(props: OpenChoiceRadioAnswerValueSetItemProps): React.JSX.Element;
9
+ export default OpenChoiceRadioAnswerValueSetItem;
@@ -0,0 +1,95 @@
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, { useMemo, useState } from 'react';
18
+ import { createEmptyQrItem } from '../../../utils/qrItem';
19
+ import { getOpenLabelText } from '../../../utils/itemControl';
20
+ import { getOldOpenLabelAnswer } from '../../../utils/openChoice';
21
+ import { FullWidthFormComponentBox } from '../../Box.styles';
22
+ import { convertCodingsToAnswerOptions, findInAnswerOptions, getQrChoiceValue } from '../../../utils/choice';
23
+ import OpenChoiceRadioAnswerValueSetFields from './OpenChoiceRadioAnswerValueSetFields';
24
+ import useReadOnly from '../../../hooks/useReadOnly';
25
+ import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
26
+ import { useQuestionnaireStore } from '../../../stores';
27
+ import useValueSetCodings from '../../../hooks/useValueSetCodings';
28
+ function OpenChoiceRadioAnswerValueSetItem(props) {
29
+ var _a;
30
+ const { qItem, qrItem, parentIsReadOnly, onQrItemChange } = props;
31
+ const onFocusLinkId = useQuestionnaireStore.use.onFocusLinkId();
32
+ // Init answers
33
+ const qrOpenChoiceRadio = qrItem !== null && qrItem !== void 0 ? qrItem : createEmptyQrItem(qItem);
34
+ let valueRadio = getQrChoiceValue(qrOpenChoiceRadio, true);
35
+ const answers = (_a = qrOpenChoiceRadio.answer) !== null && _a !== void 0 ? _a : [];
36
+ const readOnly = useReadOnly(qItem, parentIsReadOnly);
37
+ const openLabelText = getOpenLabelText(qItem);
38
+ // Get codings/options from valueSet
39
+ const { codings, terminologyError } = useValueSetCodings(qItem);
40
+ const options = useMemo(() => convertCodingsToAnswerOptions(codings), [codings]);
41
+ // Init empty open label
42
+ let initialOpenLabelValue = '';
43
+ let initialOpenLabelSelected = false;
44
+ if (options) {
45
+ const oldLabelAnswer = getOldOpenLabelAnswer(answers, options);
46
+ if (oldLabelAnswer && oldLabelAnswer.valueString) {
47
+ initialOpenLabelValue = oldLabelAnswer.valueString;
48
+ initialOpenLabelSelected = true;
49
+ valueRadio = initialOpenLabelValue;
50
+ }
51
+ }
52
+ const [openLabelValue, setOpenLabelValue] = useState(initialOpenLabelValue);
53
+ const [openLabelSelected, setOpenLabelSelected] = useState(initialOpenLabelSelected);
54
+ // Allow open label to remain selected even if its input was cleared
55
+ if (openLabelSelected && valueRadio === null) {
56
+ valueRadio = '';
57
+ }
58
+ // Event handlers
59
+ function handleValueChange(changedOptionValue, changedOpenLabelValue) {
60
+ if (options.length === 0) {
61
+ onQrItemChange(createEmptyQrItem(qItem));
62
+ return;
63
+ }
64
+ if (changedOptionValue !== null) {
65
+ const qrAnswer = findInAnswerOptions(options, changedOptionValue);
66
+ // If selected answer can be found in options, it is a non-open label selection
67
+ if (qrAnswer) {
68
+ onQrItemChange(Object.assign(Object.assign({}, createEmptyQrItem(qItem)), { answer: [qrAnswer] }));
69
+ setOpenLabelSelected(false);
70
+ return;
71
+ }
72
+ // Otherwise, it is an open-label selection
73
+ onQrItemChange(Object.assign(Object.assign({}, createEmptyQrItem(qItem)), { answer: [{ valueString: changedOptionValue }] }));
74
+ setOpenLabelValue(changedOptionValue);
75
+ setOpenLabelSelected(true);
76
+ return;
77
+ }
78
+ if (changedOpenLabelValue !== null) {
79
+ setOpenLabelValue(changedOpenLabelValue);
80
+ // If open label is unchecked, remove it from answers
81
+ if (changedOpenLabelValue === '') {
82
+ onQrItemChange(createEmptyQrItem(qItem));
83
+ return;
84
+ }
85
+ // Otherwise, add open label to answers
86
+ setOpenLabelValue(changedOpenLabelValue);
87
+ onQrItemChange(Object.assign(Object.assign({}, createEmptyQrItem(qItem)), { answer: [{ valueString: changedOpenLabelValue }] }));
88
+ }
89
+ }
90
+ return (React.createElement(FullWidthFormComponentBox, { "data-test": "q-item-open-choice-radio-answer-option-box", "data-linkid": qItem.linkId, onClick: () => onFocusLinkId(qItem.linkId) },
91
+ React.createElement(ItemFieldGrid, { qItem: qItem, readOnly: readOnly },
92
+ React.createElement(OpenChoiceRadioAnswerValueSetFields, { qItem: qItem, options: options, valueRadio: valueRadio, openLabelText: openLabelText, openLabelValue: openLabelValue, openLabelSelected: openLabelSelected, readOnly: readOnly, terminologyError: terminologyError, onValueChange: handleValueChange }))));
93
+ }
94
+ export default OpenChoiceRadioAnswerValueSetItem;
95
+ //# sourceMappingURL=OpenChoiceRadioAnswerValueSetItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenChoiceRadioAnswerValueSetItem.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerValueSetItem.tsx"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ function StringField(props) {
22
22
  const { linkId, input, feedback, displayPrompt, displayUnit, entryFormat, readOnly, isTabled, calcExpUpdated, onInputChange } = props;
23
23
  return (React.createElement(StandardTextField, { fullWidth: true, isTabled: isTabled, id: linkId, value: input, error: !!feedback, onChange: (event) => onInputChange(event.target.value), label: displayPrompt, placeholder: entryFormat, disabled: readOnly, size: "small", InputProps: {
24
24
  endAdornment: (React.createElement(InputAdornment, { position: 'end' },
25
- React.createElement(FadingCheckIcon, { fadeIn: calcExpUpdated }),
25
+ React.createElement(FadingCheckIcon, { fadeIn: calcExpUpdated, disabled: readOnly }),
26
26
  displayUnit))
27
27
  }, helperText: feedback, "data-test": "q-item-string-field" }));
28
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StringField.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/StringItem/StringField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAc3D,SAAS,WAAW,CAAC,KAAuB;IAC1C,MAAM,EACJ,MAAM,EACN,KAAK,EACL,QAAQ,EACR,aAAa,EACb,WAAW,EACX,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,aAAa,EACd,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,oBAAC,iBAAiB,IAChB,SAAS,QACT,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,CAAC,CAAC,QAAQ,EACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACtD,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,OAAO,EACZ,UAAU,EAAE;YACV,YAAY,EAAE,CACZ,oBAAC,cAAc,IAAC,QAAQ,EAAE,KAAK;gBAC7B,oBAAC,eAAe,IAAC,MAAM,EAAE,cAAc,GAAI;gBAC1C,WAAW,CACG,CAClB;SACF,EACD,UAAU,EAAE,QAAQ,eACV,qBAAqB,GAC/B,CACH,CAAC;AACJ,CAAC;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"StringField.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/StringItem/StringField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAc3D,SAAS,WAAW,CAAC,KAAuB;IAC1C,MAAM,EACJ,MAAM,EACN,KAAK,EACL,QAAQ,EACR,aAAa,EACb,WAAW,EACX,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,aAAa,EACd,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,oBAAC,iBAAiB,IAChB,SAAS,QACT,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,CAAC,CAAC,QAAQ,EACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACtD,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,OAAO,EACZ,UAAU,EAAE;YACV,YAAY,EAAE,CACZ,oBAAC,cAAc,IAAC,QAAQ,EAAE,KAAK;gBAC7B,oBAAC,eAAe,IAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,GAAI;gBAC9D,WAAW,CACG,CAClB;SACF,EACD,UAAU,EAAE,QAAQ,eACV,qBAAqB,GAC/B,CACH,CAAC;AACJ,CAAC;AAED,eAAe,WAAW,CAAC"}
@@ -22,7 +22,7 @@ function TextField(props) {
22
22
  const { linkId, input, feedback, displayPrompt, displayUnit, entryFormat, readOnly, calcExpUpdated, onInputChange } = props;
23
23
  return (React.createElement(MuiTextField, { id: linkId, value: input, error: !!feedback, onChange: (event) => onInputChange(event.target.value), disabled: readOnly, label: displayPrompt, placeholder: entryFormat, fullWidth: true, multiline: true, size: "small", minRows: 3, InputProps: {
24
24
  endAdornment: (React.createElement(InputAdornment, { position: 'end' },
25
- React.createElement(FadingCheckIcon, { fadeIn: calcExpUpdated }),
25
+ React.createElement(FadingCheckIcon, { fadeIn: calcExpUpdated, disabled: readOnly }),
26
26
  displayUnit))
27
27
  }, helperText: feedback, "data-test": "q-item-text-field" }));
28
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TextField.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/TextItem/TextField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAc3D,SAAS,SAAS,CAAC,KAAqB;IACtC,MAAM,EACJ,MAAM,EACN,KAAK,EACL,QAAQ,EACR,aAAa,EACb,WAAW,EACX,WAAW,EACX,QAAQ,EACR,cAAc,EACd,aAAa,EACd,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,oBAAC,YAAY,IACX,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,CAAC,CAAC,QAAQ,EACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACtD,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,QACT,SAAS,QACT,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,CAAC,EACV,UAAU,EAAE;YACV,YAAY,EAAE,CACZ,oBAAC,cAAc,IAAC,QAAQ,EAAE,KAAK;gBAC7B,oBAAC,eAAe,IAAC,MAAM,EAAE,cAAc,GAAI;gBAC1C,WAAW,CACG,CAClB;SACF,EACD,UAAU,EAAE,QAAQ,eACV,mBAAmB,GAC7B,CACH,CAAC;AACJ,CAAC;AAED,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"TextField.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/TextItem/TextField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAc3D,SAAS,SAAS,CAAC,KAAqB;IACtC,MAAM,EACJ,MAAM,EACN,KAAK,EACL,QAAQ,EACR,aAAa,EACb,WAAW,EACX,WAAW,EACX,QAAQ,EACR,cAAc,EACd,aAAa,EACd,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,oBAAC,YAAY,IACX,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,CAAC,CAAC,QAAQ,EACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACtD,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,QACT,SAAS,QACT,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,CAAC,EACV,UAAU,EAAE;YACV,YAAY,EAAE,CACZ,oBAAC,cAAc,IAAC,QAAQ,EAAE,KAAK;gBAC7B,oBAAC,eAAe,IAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,GAAI;gBAC9D,WAAW,CACG,CAClB;SACF,EACD,UAAU,EAAE,QAAQ,eACV,mBAAmB,GAC7B,CACH,CAAC;AACJ,CAAC;AAED,eAAe,SAAS,CAAC"}
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import type { QuestionnaireItemAnswerOption, QuestionnaireResponseItemAnswer } from 'fhir/r4';
2
3
  declare function useOpenLabel(options: QuestionnaireItemAnswerOption[], answers: QuestionnaireResponseItemAnswer[]): {
3
4
  openLabelValue: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aehrc/smart-forms-renderer",
3
- "version": "0.27.0",
3
+ "version": "0.27.2",
4
4
  "description": "FHIR Structured Data Captured (SDC) rendering engine for Smart Forms",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -17,7 +17,6 @@
17
17
 
18
18
  import React, { memo } from 'react';
19
19
  import type { PropsWithIsTabledAttribute } from '../../../interfaces/renderProps.interface';
20
- import { TEXT_FIELD_WIDTH } from '../Textfield.styles';
21
20
  import Box from '@mui/material/Box';
22
21
  import Button from '@mui/material/Button';
23
22
  import { grey } from '@mui/material/colors';
@@ -49,10 +48,7 @@ const BooleanField = memo(function BooleanField(props: BooleanFieldProps) {
49
48
  const selection = valueBoolean === undefined ? null : valueBoolean.toString();
50
49
 
51
50
  return (
52
- <Box
53
- display="flex"
54
- alignItems="center"
55
- sx={{ maxWidth: !isTabled ? TEXT_FIELD_WIDTH : 3000, minWidth: 160 }}>
51
+ <Box display="flex" alignItems="center">
56
52
  <StyledRadioGroup
57
53
  row={orientation === ChoiceItemOrientation.Horizontal}
58
54
  name={qItem.text}
@@ -65,7 +61,7 @@ const BooleanField = memo(function BooleanField(props: BooleanFieldProps) {
65
61
 
66
62
  <Box flexGrow={1} />
67
63
 
68
- <FadingCheckIcon fadeIn={calcExpUpdated} />
64
+ <FadingCheckIcon fadeIn={calcExpUpdated} disabled={readOnly} />
69
65
  <Fade in={valueBoolean !== undefined} timeout={100}>
70
66
  <Tooltip title="Set question as unanswered">
71
67
  <Button
@@ -73,6 +69,7 @@ const BooleanField = memo(function BooleanField(props: BooleanFieldProps) {
73
69
  color: grey['500'],
74
70
  '&:hover': { backgroundColor: grey['200'] }
75
71
  }}
72
+ disabled={readOnly}
76
73
  onClick={onClear}>
77
74
  Clear
78
75
  </Button>
@@ -21,7 +21,6 @@ import type { QuestionnaireItem } from 'fhir/r4';
21
21
  import RadioAnswerOptionButtons from '../ItemParts/RadioAnswerOptionButtons';
22
22
  import { StyledRadioGroup } from '../Item.styles';
23
23
  import { getChoiceOrientation } from '../../../utils/choice';
24
- import { TEXT_FIELD_WIDTH } from '../Textfield.styles';
25
24
  import type { PropsWithIsTabledAttribute } from '../../../interfaces/renderProps.interface';
26
25
  import Box from '@mui/material/Box';
27
26
  import FadingCheckIcon from '../ItemParts/FadingCheckIcon';
@@ -40,10 +39,7 @@ function ChoiceRadioAnswerOptionFields(props: ChoiceRadioAnswerOptionFieldsProps
40
39
  const orientation = getChoiceOrientation(qItem) ?? ChoiceItemOrientation.Vertical;
41
40
 
42
41
  return (
43
- <Box
44
- display="flex"
45
- alignItems="center"
46
- sx={{ maxWidth: !isTabled ? TEXT_FIELD_WIDTH : 3000, minWidth: 160 }}>
42
+ <Box display="flex" alignItems="center">
47
43
  <StyledRadioGroup
48
44
  row={orientation === ChoiceItemOrientation.Horizontal}
49
45
  name={qItem.text}
@@ -56,7 +52,7 @@ function ChoiceRadioAnswerOptionFields(props: ChoiceRadioAnswerOptionFieldsProps
56
52
 
57
53
  <Box flexGrow={1} />
58
54
 
59
- <FadingCheckIcon fadeIn={calcExpUpdated} />
55
+ <FadingCheckIcon fadeIn={calcExpUpdated} disabled={readOnly} />
60
56
  </Box>
61
57
  );
62
58
  }
@@ -25,7 +25,6 @@ import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline';
25
25
  import { StyledAlert } from '../../Alert.styles';
26
26
  import type { TerminologyError } from '../../../hooks/useValueSetCodings';
27
27
  import { getChoiceOrientation } from '../../../utils/choice';
28
- import { TEXT_FIELD_WIDTH } from '../Textfield.styles';
29
28
  import FadingCheckIcon from '../ItemParts/FadingCheckIcon';
30
29
  import type { PropsWithIsTabledAttribute } from '../../../interfaces/renderProps.interface';
31
30
  import Box from '@mui/material/Box';
@@ -56,10 +55,7 @@ function ChoiceRadioAnswerValueSetFields(props: ChoiceRadioAnswerValueSetFieldsP
56
55
 
57
56
  if (codings.length > 0) {
58
57
  return (
59
- <Box
60
- display="flex"
61
- alignItems="center"
62
- sx={{ maxWidth: !isTabled ? TEXT_FIELD_WIDTH : 3000, minWidth: 160 }}>
58
+ <Box display="flex" alignItems="center">
63
59
  <StyledRadioGroup
64
60
  row={orientation === ChoiceItemOrientation.Horizontal}
65
61
  name={qItem.text}
@@ -79,7 +75,7 @@ function ChoiceRadioAnswerValueSetFields(props: ChoiceRadioAnswerValueSetFieldsP
79
75
  </StyledRadioGroup>
80
76
  <Box flexGrow={1} />
81
77
 
82
- <FadingCheckIcon fadeIn={calcExpUpdated} />
78
+ <FadingCheckIcon fadeIn={calcExpUpdated} disabled={readOnly} />
83
79
  </Box>
84
80
  );
85
81
  }
@@ -75,7 +75,7 @@ function ChoiceSelectAnswerValueSetFields(props: ChoiceSelectAnswerValueSetField
75
75
  endAdornment: (
76
76
  <>
77
77
  {params.InputProps.endAdornment}
78
- <FadingCheckIcon fadeIn={calcExpUpdated} />
78
+ <FadingCheckIcon fadeIn={calcExpUpdated} disabled={readOnly} />
79
79
  {displayUnit}
80
80
  </>
81
81
  )
@@ -63,7 +63,7 @@ function DecimalField(props: DecimalFieldProps) {
63
63
  InputProps={{
64
64
  endAdornment: (
65
65
  <InputAdornment position={'end'}>
66
- <FadingCheckIcon fadeIn={calcExpUpdated} />
66
+ <FadingCheckIcon fadeIn={calcExpUpdated} disabled={readOnly} />
67
67
  {displayUnit}
68
68
  </InputAdornment>
69
69
  )
@@ -64,7 +64,7 @@ function IntegerField(props: IntegerFieldProps) {
64
64
  InputProps={{
65
65
  endAdornment: (
66
66
  <InputAdornment position={'end'}>
67
- <FadingCheckIcon fadeIn={calcExpUpdated} />
67
+ <FadingCheckIcon fadeIn={calcExpUpdated} disabled={readOnly} />
68
68
  {displayUnit}
69
69
  </InputAdornment>
70
70
  )
@@ -21,14 +21,19 @@ import SyncIcon from '@mui/icons-material/Sync';
21
21
 
22
22
  interface FadingCheckIconProps {
23
23
  fadeIn: boolean;
24
+ disabled: boolean;
24
25
  }
25
26
 
26
27
  function FadingCheckIcon(props: FadingCheckIconProps) {
27
- const { fadeIn } = props;
28
+ const { fadeIn, disabled } = props;
28
29
 
29
30
  return (
30
31
  <Fade in={fadeIn} timeout={{ enter: 100, exit: 300 }}>
31
- <SyncIcon color="success" fontSize="small" />
32
+ <SyncIcon
33
+ color="success"
34
+ fontSize="small"
35
+ sx={{ ...(disabled ? { color: 'text.disabled' } : null) }}
36
+ />
32
37
  </Fade>
33
38
  );
34
39
  }
@@ -62,7 +62,7 @@ function StringField(props: StringFieldProps) {
62
62
  InputProps={{
63
63
  endAdornment: (
64
64
  <InputAdornment position={'end'}>
65
- <FadingCheckIcon fadeIn={calcExpUpdated} />
65
+ <FadingCheckIcon fadeIn={calcExpUpdated} disabled={readOnly} />
66
66
  {displayUnit}
67
67
  </InputAdornment>
68
68
  )
@@ -61,7 +61,7 @@ function TextField(props: TextFieldProps) {
61
61
  InputProps={{
62
62
  endAdornment: (
63
63
  <InputAdornment position={'end'}>
64
- <FadingCheckIcon fadeIn={calcExpUpdated} />
64
+ <FadingCheckIcon fadeIn={calcExpUpdated} disabled={readOnly} />
65
65
  {displayUnit}
66
66
  </InputAdornment>
67
67
  )