@aehrc/smart-forms-renderer 0.7.2 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js +0 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionFields.d.ts +12 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionFields.js +39 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionFields.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.d.ts +3 -3
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js +14 -27
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetFields.d.ts +13 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetFields.js +42 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetFields.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.d.ts +4 -3
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js +14 -22
- package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.d.ts +2 -2
- package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.js +3 -3
- package/lib/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.d.ts +12 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.js +27 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.d.ts +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js +9 -24
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.d.ts +14 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.js +42 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.d.ts +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js +8 -21
- package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.d.ts +10 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js +41 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js +7 -23
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.d.ts +12 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.js +42 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.js.map +1 -0
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js +8 -18
- package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js +4 -4
- package/lib/components/FormComponents/GroupItem/GroupItemSwitcher.js.map +1 -1
- package/lib/components/FormComponents/Item.styles.d.ts +2 -2
- package/lib/components/FormComponents/Item.styles.js +2 -2
- package/lib/components/FormComponents/Item.styles.js.map +1 -1
- package/lib/components/FormComponents/ItemParts/RadioAnswerOptionButtons.d.ts +8 -0
- package/lib/components/FormComponents/ItemParts/RadioAnswerOptionButtons.js +37 -0
- package/lib/components/FormComponents/ItemParts/RadioAnswerOptionButtons.js.map +1 -0
- package/lib/components/FormComponents/ItemParts/RadioButtons.d.ts +8 -0
- package/lib/components/FormComponents/ItemParts/RadioButtons.js +37 -0
- package/lib/components/FormComponents/ItemParts/RadioButtons.js.map +1 -0
- package/lib/components/FormComponents/ItemParts/RadioButtonsAnswerOption.d.ts +8 -0
- package/lib/components/FormComponents/ItemParts/RadioButtonsAnswerOption.js +37 -0
- package/lib/components/FormComponents/ItemParts/RadioButtonsAnswerOption.js.map +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.d.ts +20 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.js +49 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.js.map +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteFieldEndAdornment.d.ts +0 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteFieldEndAdornment.js +2 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteFieldEndAdornment.js.map +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js +11 -35
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionFields.d.ts +17 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionFields.js +42 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionFields.js.map +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.d.ts +3 -3
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js +23 -36
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.d.ts +2 -2
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.js +3 -3
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionFields.d.ts +15 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionFields.js +29 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionFields.js.map +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.d.ts +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js +3 -23
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.d.ts +11 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.js +14 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.js.map +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionFields.d.ts +0 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionFields.js +2 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionFields.js.map +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js +18 -23
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js.map +1 -1
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.d.ts +12 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.js +16 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.js.map +1 -0
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js +8 -14
- package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js.map +1 -1
- package/lib/components/FormComponents/SingleItem/SingleItem.d.ts +2 -2
- package/lib/components/FormComponents/SingleItem/SingleItem.js +2 -2
- package/lib/components/FormComponents/SingleItem/SingleItem.js.map +1 -1
- package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.d.ts +2 -2
- package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.js +3 -3
- package/lib/components/FormComponents/SingleItem/SingleItemSwitcher.js.map +1 -1
- package/lib/components/FormComponents/Tables/AddItemButton.d.ts +8 -0
- package/lib/components/FormComponents/Tables/AddItemButton.js +28 -0
- package/lib/components/FormComponents/Tables/AddItemButton.js.map +1 -0
- package/lib/components/FormComponents/Tables/AddRowButton.d.ts +8 -0
- package/lib/components/FormComponents/Tables/AddRowButton.js +28 -0
- package/lib/components/FormComponents/Tables/AddRowButton.js.map +1 -0
- package/lib/components/FormComponents/Tables/GroupTable.d.ts +10 -0
- package/lib/components/FormComponents/Tables/GroupTable.js +108 -0
- package/lib/components/FormComponents/Tables/GroupTable.js.map +1 -0
- package/lib/components/FormComponents/Tables/GroupTableRow.d.ts +10 -0
- package/lib/components/FormComponents/Tables/GroupTableRow.js +46 -0
- package/lib/components/FormComponents/Tables/GroupTableRow.js.map +1 -0
- package/lib/components/FormComponents/Tables/index.d.ts +1 -1
- package/lib/components/FormComponents/Tables/index.js +1 -1
- package/lib/components/FormComponents/Tables/index.js.map +1 -1
- package/lib/components/Renderer/FormBodyTabbed.js +1 -1
- package/lib/components/Renderer/FormBodyTabbed.js.map +1 -1
- package/lib/components/Tabs/FormBodySingleTab.js +1 -1
- package/lib/components/Tabs/FormBodySingleTab.js.map +1 -1
- package/lib/components/Tabs/FormBodyTabList.d.ts +1 -0
- package/lib/components/Tabs/FormBodyTabList.js +3 -4
- package/lib/components/Tabs/FormBodyTabList.js.map +1 -1
- package/lib/components/Tabs/FormBodyTabListWrapper.d.ts +1 -1
- package/lib/components/Tabs/FormBodyTabListWrapper.js +6 -13
- package/lib/components/Tabs/FormBodyTabListWrapper.js.map +1 -1
- package/lib/components/Tabs/ShowCompletedTabsSection.d.ts +7 -0
- package/lib/components/Tabs/ShowCompletedTabsSection.js +34 -0
- package/lib/components/Tabs/ShowCompletedTabsSection.js.map +1 -0
- package/lib/hooks/useContextDisplayItems.d.ts +6 -0
- package/lib/hooks/useContextDisplayItems.js +30 -0
- package/lib/hooks/useContextDisplayItems.js.map +1 -0
- package/lib/hooks/useInitialiseRenderer.js +2 -2
- package/lib/hooks/useInitialiseRenderer.js.map +1 -1
- package/lib/hooks/useInitialiseRepeatGroups.d.ts +1 -1
- package/lib/hooks/useNumberInput.d.ts +1 -1
- package/lib/hooks/useNumberInput.js.map +1 -1
- package/lib/hooks/useStringInput.d.ts +1 -1
- package/lib/hooks/useStringInput.js.map +1 -1
- package/lib/hooks/useTerminologyServerQuery.js +3 -6
- package/lib/hooks/useTerminologyServerQuery.js.map +1 -1
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/interfaces/renderProps.interface.d.ts +3 -0
- package/lib/stores/useQuestionnaireResponseStore.d.ts +2 -1
- package/lib/stores/useQuestionnaireResponseStore.js +5 -3
- package/lib/stores/useQuestionnaireResponseStore.js.map +1 -1
- package/lib/utils/qrItem.d.ts +2 -3
- package/lib/utils/qrItem.js +2 -3
- package/lib/utils/qrItem.js.map +1 -1
- package/lib/utils/repopulateIntoResponse.d.ts +2 -2
- package/lib/utils/repopulateItems.js +0 -1
- package/lib/utils/repopulateItems.js.map +1 -1
- package/package.json +7 -7
- package/src/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.tsx +0 -1
- package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionFields.tsx +85 -0
- package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.tsx +35 -58
- package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetFields.tsx +79 -0
- package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.tsx +37 -50
- package/src/components/FormComponents/ChoiceItems/ChoiceItemSwitcher.tsx +10 -5
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionFields.tsx +48 -0
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.tsx +25 -53
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetFields.tsx +83 -0
- package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.tsx +27 -49
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionFields.tsx +81 -0
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.tsx +19 -54
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetFields.tsx +97 -0
- package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.tsx +22 -60
- package/src/components/FormComponents/GroupItem/GroupItemSwitcher.tsx +4 -4
- package/src/components/FormComponents/Item.styles.ts +2 -2
- package/src/components/FormComponents/ItemParts/RadioAnswerOptionButtons.tsx +72 -0
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.tsx +131 -0
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.tsx +38 -93
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionFields.tsx +112 -0
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.tsx +57 -76
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.tsx +8 -5
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionFields.tsx +72 -0
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.tsx +12 -59
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionField.tsx +54 -0
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.tsx +40 -64
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetField.tsx +63 -0
- package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.tsx +22 -50
- package/src/components/FormComponents/SingleItem/SingleItem.tsx +6 -3
- package/src/components/FormComponents/SingleItem/SingleItemSwitcher.tsx +7 -3
- package/src/components/FormComponents/Tables/AddRowButton.tsx +49 -0
- package/src/components/FormComponents/Tables/{QItemGroupTable.tsx → GroupTable.tsx} +6 -17
- package/src/components/FormComponents/Tables/{QItemGroupTableRow.tsx → GroupTableRow.tsx} +2 -2
- package/src/components/FormComponents/Tables/index.ts +1 -1
- package/src/components/Renderer/FormBodyTabbed.tsx +1 -1
- package/src/components/Tabs/FormBodySingleTab.tsx +1 -1
- package/src/components/Tabs/FormBodyTabList.tsx +5 -8
- package/src/components/Tabs/FormBodyTabListWrapper.tsx +15 -26
- package/src/components/Tabs/ShowCompletedTabsSection.tsx +52 -0
- package/src/hooks/useContextDisplayItems.ts +40 -0
- package/src/hooks/useInitialiseRenderer.ts +2 -2
- package/src/hooks/useInitialiseRepeatGroups.ts +1 -1
- package/src/hooks/useNumberInput.ts +2 -1
- package/src/hooks/useStringInput.ts +2 -1
- package/src/hooks/useTerminologyServerQuery.ts +3 -6
- package/src/index.ts +2 -2
- package/src/interfaces/renderProps.interface.ts +4 -0
- package/src/stores/useQuestionnaireResponseStore.ts +5 -4
- package/src/utils/qrItem.ts +4 -3
- package/src/utils/repopulateIntoResponse.ts +2 -2
- package/src/utils/repopulateItems.ts +0 -1
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 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 RadioButtonsAnswerOption(props) {
|
|
20
|
+
var _a;
|
|
21
|
+
const { qItem, readOnly } = props;
|
|
22
|
+
return (React.createElement(React.Fragment, null, (_a = qItem.answerOption) === null || _a === void 0 ? void 0 : _a.map((option) => {
|
|
23
|
+
var _a, _b, _c;
|
|
24
|
+
if (option['valueCoding']) {
|
|
25
|
+
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 }));
|
|
26
|
+
}
|
|
27
|
+
if (option['valueString']) {
|
|
28
|
+
return (React.createElement(ChoiceRadioSingle, { key: option.valueString, value: option.valueString, label: option.valueString, readOnly: readOnly }));
|
|
29
|
+
}
|
|
30
|
+
if (option['valueInteger']) {
|
|
31
|
+
return (React.createElement(ChoiceRadioSingle, { key: option.valueInteger, value: option.valueInteger.toString(), label: option.valueInteger.toString(), readOnly: readOnly }));
|
|
32
|
+
}
|
|
33
|
+
return null;
|
|
34
|
+
})));
|
|
35
|
+
}
|
|
36
|
+
export default RadioButtonsAnswerOption;
|
|
37
|
+
//# sourceMappingURL=RadioButtonsAnswerOption.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadioButtonsAnswerOption.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/ItemParts/RadioButtonsAnswerOption.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AAQjE,SAAS,wBAAwB,CAAC,KAAwB;;IACxD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAElC,OAAO,CACL,0CACG,MAAA,KAAK,CAAC,YAAY,0CAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;;QAClC,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,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { Coding, QuestionnaireItem } from 'fhir/r4';
|
|
3
|
+
import type { PropsWithIsTabledAttribute } from '../../../interfaces/renderProps.interface';
|
|
4
|
+
import type { AlertColor } from '@mui/material/Alert';
|
|
5
|
+
interface OpenChoiceAutocompleteFieldProps extends PropsWithIsTabledAttribute {
|
|
6
|
+
qItem: QuestionnaireItem;
|
|
7
|
+
options: Coding[];
|
|
8
|
+
valueAutocomplete: string | Coding;
|
|
9
|
+
input: string;
|
|
10
|
+
loading: boolean;
|
|
11
|
+
feedback: {
|
|
12
|
+
message: string;
|
|
13
|
+
color: AlertColor;
|
|
14
|
+
} | null;
|
|
15
|
+
onInputChange: (newInput: string) => void;
|
|
16
|
+
onValueChange: (newValue: Coding | string | null) => void;
|
|
17
|
+
onUnfocus: () => void;
|
|
18
|
+
}
|
|
19
|
+
declare function OpenChoiceAutocompleteField(props: OpenChoiceAutocompleteFieldProps): React.JSX.Element;
|
|
20
|
+
export default OpenChoiceAutocompleteField;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Commonwealth Scientific and Industrial Research
|
|
3
|
+
* Organisation (CSIRO) ABN 41 687 119 230.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import React from 'react';
|
|
18
|
+
import Box from '@mui/material/Box';
|
|
19
|
+
import Autocomplete from '@mui/material/Autocomplete';
|
|
20
|
+
import { StandardTextField } from '../Textfield.styles';
|
|
21
|
+
import SearchIcon from '@mui/icons-material/Search';
|
|
22
|
+
import CircularProgress from '@mui/material/CircularProgress';
|
|
23
|
+
import Fade from '@mui/material/Fade';
|
|
24
|
+
import Tooltip from '@mui/material/Tooltip';
|
|
25
|
+
import InfoIcon from '@mui/icons-material/Info';
|
|
26
|
+
import WarningAmberIcon from '@mui/icons-material/WarningAmber';
|
|
27
|
+
import DoneIcon from '@mui/icons-material/Done';
|
|
28
|
+
import ErrorIcon from '@mui/icons-material/Error';
|
|
29
|
+
import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
|
|
30
|
+
function OpenChoiceAutocompleteField(props) {
|
|
31
|
+
const { qItem, options, valueAutocomplete, input, loading, feedback, isTabled, onInputChange, onValueChange, onUnfocus } = props;
|
|
32
|
+
// Get additional rendering extensions
|
|
33
|
+
const { displayUnit, displayPrompt, readOnly, entryFormat } = useRenderingExtensions(qItem);
|
|
34
|
+
return (React.createElement(Box, { display: "flex" },
|
|
35
|
+
React.createElement(Autocomplete, { id: qItem.id, value: valueAutocomplete, options: options, getOptionLabel: (option) => (typeof option === 'string' ? option : `${option.display}`), disabled: readOnly, loading: loading, loadingText: 'Fetching results...', clearOnEscape: true, freeSolo: true, autoHighlight: true, sx: { maxWidth: !isTabled ? 280 : 3000, minWidth: 220, flexGrow: 1 }, placeholder: entryFormat, onChange: (_, newValue) => onValueChange(newValue), filterOptions: (x) => x, renderInput: (params) => (React.createElement(StandardTextField, Object.assign({}, params, { value: input, onBlur: onUnfocus, onChange: (e) => onInputChange(e.target.value), isTabled: isTabled, label: displayPrompt, size: "small", InputProps: Object.assign(Object.assign({}, params.InputProps), { startAdornment: (React.createElement(React.Fragment, null,
|
|
36
|
+
!valueAutocomplete || valueAutocomplete === '' ? (React.createElement(SearchIcon, { fontSize: "small", sx: { ml: 0.5 } })) : null,
|
|
37
|
+
params.InputProps.startAdornment)), endAdornment: (React.createElement(React.Fragment, null,
|
|
38
|
+
loading ? (React.createElement(CircularProgress, { color: "inherit", size: 16 })) : feedback ? (React.createElement(Fade, { in: !!feedback, timeout: 300 },
|
|
39
|
+
React.createElement(Tooltip, { title: feedback.message, arrow: true, sx: { ml: 1 } }, {
|
|
40
|
+
info: React.createElement(InfoIcon, { fontSize: "small", color: "info" }),
|
|
41
|
+
warning: React.createElement(WarningAmberIcon, { fontSize: "small", color: "warning" }),
|
|
42
|
+
success: React.createElement(DoneIcon, { fontSize: "small", color: "success" }),
|
|
43
|
+
error: React.createElement(ErrorIcon, { fontSize: "small", color: "error" })
|
|
44
|
+
}[feedback.color]))) : null,
|
|
45
|
+
params.InputProps.endAdornment,
|
|
46
|
+
displayUnit)) }), "data-test": "q-item-open-choice-autocomplete-field" }))) })));
|
|
47
|
+
}
|
|
48
|
+
export default OpenChoiceAutocompleteField;
|
|
49
|
+
//# sourceMappingURL=OpenChoiceAutocompleteField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenChoiceAutocompleteField.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteField.tsx"],"names":[],"mappings":"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"}
|
package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteFieldEndAdornment.d.ts
ADDED
|
File without changes
|
package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteFieldEndAdornment.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenChoiceAutocompleteFieldEndAdornment.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteFieldEndAdornment.tsx"],"names":[],"mappings":""}
|
|
@@ -15,26 +15,16 @@
|
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
import React, { useState } from 'react';
|
|
18
|
-
import Autocomplete from '@mui/material/Autocomplete';
|
|
19
|
-
import Box from '@mui/material/Box';
|
|
20
|
-
import CircularProgress from '@mui/material/CircularProgress';
|
|
21
|
-
import Fade from '@mui/material/Fade';
|
|
22
18
|
import Grid from '@mui/material/Grid';
|
|
23
|
-
import Tooltip from '@mui/material/Tooltip';
|
|
24
19
|
import { createEmptyQrItem } from '../../../utils/qrItem';
|
|
25
|
-
import { StandardTextField } from '../Textfield.styles';
|
|
26
20
|
import { FullWidthFormComponentBox } from '../../Box.styles';
|
|
27
|
-
import SearchIcon from '@mui/icons-material/Search';
|
|
28
21
|
import useDebounce from '../../../hooks/useDebounce';
|
|
29
22
|
import useTerminologyServerQuery from '../../../hooks/useTerminologyServerQuery';
|
|
30
|
-
import WarningAmberIcon from '@mui/icons-material/WarningAmber';
|
|
31
|
-
import InfoIcon from '@mui/icons-material/Info';
|
|
32
|
-
import DoneIcon from '@mui/icons-material/Done';
|
|
33
|
-
import ErrorIcon from '@mui/icons-material/Error';
|
|
34
23
|
import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
|
|
35
24
|
import { AUTOCOMPLETE_DEBOUNCE_DURATION } from '../../../utils/debounce';
|
|
36
25
|
import DisplayInstructions from '../DisplayItem/DisplayInstructions';
|
|
37
26
|
import LabelWrapper from '../ItemParts/ItemLabelWrapper';
|
|
27
|
+
import OpenChoiceAutocompleteField from './OpenChoiceAutocompleteField';
|
|
38
28
|
function OpenChoiceAutocompleteItem(props) {
|
|
39
29
|
const { qItem, qrItem, isRepeated, isTabled, onQrItemChange } = props;
|
|
40
30
|
const qrOpenChoice = qrItem !== null && qrItem !== void 0 ? qrItem : createEmptyQrItem(qItem);
|
|
@@ -48,8 +38,7 @@ function OpenChoiceAutocompleteItem(props) {
|
|
|
48
38
|
valueAutocomplete = '';
|
|
49
39
|
}
|
|
50
40
|
// Get additional rendering extensions
|
|
51
|
-
const {
|
|
52
|
-
// Query ontoserver for options
|
|
41
|
+
const { displayInstructions } = useRenderingExtensions(qItem);
|
|
53
42
|
const maxList = 10;
|
|
54
43
|
const [input, setInput] = useState('');
|
|
55
44
|
const debouncedInput = useDebounce(input, AUTOCOMPLETE_DEBOUNCE_DURATION);
|
|
@@ -58,7 +47,7 @@ function OpenChoiceAutocompleteItem(props) {
|
|
|
58
47
|
return null;
|
|
59
48
|
}
|
|
60
49
|
// Event handlers
|
|
61
|
-
function handleValueChange(
|
|
50
|
+
function handleValueChange(newValue) {
|
|
62
51
|
if (newValue === null) {
|
|
63
52
|
setInput('');
|
|
64
53
|
newValue = '';
|
|
@@ -75,34 +64,21 @@ function OpenChoiceAutocompleteItem(props) {
|
|
|
75
64
|
onQrItemChange(Object.assign(Object.assign({}, createEmptyQrItem(qItem)), { answer: [{ valueCoding: newValue }] }));
|
|
76
65
|
}
|
|
77
66
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
}
|
|
85
|
-
}, onChange: (e) => setInput(e.target.value), isTabled: isTabled, label: displayPrompt, size: "small", InputProps: Object.assign(Object.assign({}, params.InputProps), { startAdornment: (React.createElement(React.Fragment, null,
|
|
86
|
-
!valueAutocomplete || valueAutocomplete === '' ? (React.createElement(SearchIcon, { fontSize: "small", sx: { ml: 0.5 } })) : null,
|
|
87
|
-
params.InputProps.startAdornment)), endAdornment: (React.createElement(React.Fragment, null,
|
|
88
|
-
loading ? (React.createElement(CircularProgress, { color: "inherit", size: 16 })) : feedback ? (React.createElement(Fade, { in: !!feedback, timeout: 300 },
|
|
89
|
-
React.createElement(Tooltip, { title: feedback.message, arrow: true, sx: { ml: 1 } }, {
|
|
90
|
-
info: React.createElement(InfoIcon, { fontSize: "small", color: "info" }),
|
|
91
|
-
warning: React.createElement(WarningAmberIcon, { fontSize: "small", color: "warning" }),
|
|
92
|
-
success: React.createElement(DoneIcon, { fontSize: "small", color: "success" }),
|
|
93
|
-
error: React.createElement(ErrorIcon, { fontSize: "small", color: "error" })
|
|
94
|
-
}[feedback.color]))) : null,
|
|
95
|
-
params.InputProps.endAdornment,
|
|
96
|
-
displayUnit)) }), "data-test": "q-item-open-choice-autocomplete-field" }))) }))));
|
|
67
|
+
function handleUnfocus() {
|
|
68
|
+
// set answer to current input when text field is unfocused
|
|
69
|
+
if (!valueAutocomplete && input !== '') {
|
|
70
|
+
onQrItemChange(Object.assign(Object.assign({}, createEmptyQrItem(qItem)), { answer: [{ valueString: input }] }));
|
|
71
|
+
}
|
|
72
|
+
}
|
|
97
73
|
if (isRepeated) {
|
|
98
|
-
return React.createElement(
|
|
74
|
+
return (React.createElement(OpenChoiceAutocompleteField, { qItem: qItem, options: options, valueAutocomplete: valueAutocomplete, input: input, loading: loading, feedback: feedback !== null && feedback !== void 0 ? feedback : null, isTabled: isTabled, onInputChange: (newValue) => setInput(newValue), onValueChange: handleValueChange, onUnfocus: handleUnfocus }));
|
|
99
75
|
}
|
|
100
76
|
return (React.createElement(FullWidthFormComponentBox, null,
|
|
101
77
|
React.createElement(Grid, { container: true, columnSpacing: 6 },
|
|
102
78
|
React.createElement(Grid, { item: true, xs: 5 },
|
|
103
79
|
React.createElement(LabelWrapper, { qItem: qItem })),
|
|
104
80
|
React.createElement(Grid, { item: true, xs: 7 },
|
|
105
|
-
|
|
81
|
+
React.createElement(OpenChoiceAutocompleteField, { qItem: qItem, options: options, valueAutocomplete: valueAutocomplete, input: input, loading: loading, feedback: feedback !== null && feedback !== void 0 ? feedback : null, isTabled: isTabled, onInputChange: (newValue) => setInput(newValue), onValueChange: handleValueChange, onUnfocus: handleUnfocus }),
|
|
106
82
|
React.createElement(DisplayInstructions, { displayInstructions: displayInstructions })))));
|
|
107
83
|
}
|
|
108
84
|
export default OpenChoiceAutocompleteItem;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenChoiceAutocompleteItem.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"OpenChoiceAutocompleteItem.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.tsx"],"names":[],"mappings":"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"}
|
package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionFields.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ChoiceItemOrientation } from '../../../interfaces/choice.enum';
|
|
3
|
+
import type { QuestionnaireItem, QuestionnaireResponseItemAnswer } from 'fhir/r4';
|
|
4
|
+
interface OpenChoiceCheckboxAnswerOptionFieldsProps {
|
|
5
|
+
qItem: QuestionnaireItem;
|
|
6
|
+
answers: QuestionnaireResponseItemAnswer[];
|
|
7
|
+
openLabelText: string | null;
|
|
8
|
+
openLabelValue: string;
|
|
9
|
+
openLabelChecked: boolean;
|
|
10
|
+
readOnly: boolean;
|
|
11
|
+
orientation: ChoiceItemOrientation;
|
|
12
|
+
onValueChange: (changedOptionValue: string | null, changedOpenLabelValue: string | null) => void;
|
|
13
|
+
onOpenLabelCheckedChange: (checked: boolean) => void;
|
|
14
|
+
onOpenLabelInputChange: (input: string) => void;
|
|
15
|
+
}
|
|
16
|
+
declare function OpenChoiceCheckboxAnswerOptionFields(props: OpenChoiceCheckboxAnswerOptionFieldsProps): React.JSX.Element;
|
|
17
|
+
export default OpenChoiceCheckboxAnswerOptionFields;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 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 { StyledFormGroup } from '../Item.styles';
|
|
19
|
+
import { ChoiceItemOrientation } from '../../../interfaces/choice.enum';
|
|
20
|
+
import CheckboxSingle from '../ItemParts/CheckboxSingle';
|
|
21
|
+
import CheckboxSingleWithOpenLabel from '../ItemParts/CheckboxSingleWithOpenLabel';
|
|
22
|
+
function OpenChoiceCheckboxAnswerOptionFields(props) {
|
|
23
|
+
var _a;
|
|
24
|
+
const { qItem, answers, openLabelText, openLabelValue, openLabelChecked, readOnly, orientation, onValueChange, onOpenLabelCheckedChange, onOpenLabelInputChange } = props;
|
|
25
|
+
return (React.createElement(StyledFormGroup, { row: orientation === ChoiceItemOrientation.Horizontal }, (_a = qItem.answerOption) === null || _a === void 0 ? void 0 :
|
|
26
|
+
_a.map((option) => {
|
|
27
|
+
var _a, _b, _c;
|
|
28
|
+
if (option['valueCoding']) {
|
|
29
|
+
return (React.createElement(CheckboxSingle, { 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, isChecked: answers.some((answer) => JSON.stringify(answer) === JSON.stringify(option)), onCheckedChange: (changedValue) => onValueChange(changedValue, null) }));
|
|
30
|
+
}
|
|
31
|
+
if (option['valueString']) {
|
|
32
|
+
return (React.createElement(CheckboxSingle, { key: option.valueString, value: option.valueString, label: option.valueString, readOnly: readOnly, isChecked: answers.some((answer) => answer.valueString === option.valueString), onCheckedChange: (changedValue) => onValueChange(changedValue, null) }));
|
|
33
|
+
}
|
|
34
|
+
if (option['valueInteger']) {
|
|
35
|
+
return (React.createElement(CheckboxSingle, { key: option.valueInteger, value: option.valueInteger.toString(), label: option.valueInteger.toString(), readOnly: readOnly, isChecked: answers.some((answer) => answer.valueInteger === option.valueInteger), onCheckedChange: (changedValue) => onValueChange(changedValue, null) }));
|
|
36
|
+
}
|
|
37
|
+
return null;
|
|
38
|
+
}),
|
|
39
|
+
openLabelText ? (React.createElement(CheckboxSingleWithOpenLabel, { value: openLabelValue, label: openLabelText, isChecked: openLabelChecked, onCheckedChange: onOpenLabelCheckedChange, onInputChange: onOpenLabelInputChange })) : null));
|
|
40
|
+
}
|
|
41
|
+
export default OpenChoiceCheckboxAnswerOptionFields;
|
|
42
|
+
//# sourceMappingURL=OpenChoiceCheckboxAnswerOptionFields.js.map
|
package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionFields.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenChoiceCheckboxAnswerOptionFields.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionFields.tsx"],"names":[],"mappings":"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"}
|
package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { ChoiceItemOrientation } from '../../../interfaces/choice.enum';
|
|
2
|
+
import type { ChoiceItemOrientation } from '../../../interfaces/choice.enum';
|
|
3
3
|
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
4
|
-
import type { PropsWithIsRepeatedAttribute, PropsWithQrItemChangeHandler } from '../../../interfaces/renderProps.interface';
|
|
5
|
-
interface OpenChoiceCheckboxAnswerOptionItemProps extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>, PropsWithIsRepeatedAttribute {
|
|
4
|
+
import type { PropsWithIsRepeatedAttribute, PropsWithQrItemChangeHandler, PropsWithTextShownAttribute } from '../../../interfaces/renderProps.interface';
|
|
5
|
+
interface OpenChoiceCheckboxAnswerOptionItemProps extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>, PropsWithIsRepeatedAttribute, PropsWithTextShownAttribute {
|
|
6
6
|
qItem: QuestionnaireItem;
|
|
7
7
|
qrItem: QuestionnaireResponseItem;
|
|
8
8
|
orientation: ChoiceItemOrientation;
|
|
@@ -16,12 +16,9 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import React, { useCallback, useMemo, useState } from 'react';
|
|
18
18
|
import Grid from '@mui/material/Grid';
|
|
19
|
-
import { CheckBoxOption
|
|
19
|
+
import { CheckBoxOption } from '../../../interfaces/choice.enum';
|
|
20
20
|
import { createEmptyQrItem } from '../../../utils/qrItem';
|
|
21
|
-
import CheckboxSingle from '../ItemParts/CheckboxSingle';
|
|
22
21
|
import { getOpenLabelText } from '../../../utils/itemControl';
|
|
23
|
-
import CheckboxSingleWithOpenLabel from '../ItemParts/CheckboxSingleWithOpenLabel';
|
|
24
|
-
import { QFormGroup } from '../Item.styles';
|
|
25
22
|
import { getOldOpenLabelAnswer, updateQrOpenChoiceCheckboxAnswers } from '../../../utils/openChoice';
|
|
26
23
|
import { FullWidthFormComponentBox } from '../../Box.styles';
|
|
27
24
|
import debounce from 'lodash.debounce';
|
|
@@ -29,9 +26,9 @@ import useRenderingExtensions from '../../../hooks/useRenderingExtensions';
|
|
|
29
26
|
import { DEBOUNCE_DURATION } from '../../../utils/debounce';
|
|
30
27
|
import DisplayInstructions from '../DisplayItem/DisplayInstructions';
|
|
31
28
|
import LabelWrapper from '../ItemParts/ItemLabelWrapper';
|
|
29
|
+
import OpenChoiceCheckboxAnswerOptionFields from './OpenChoiceCheckboxAnswerOptionFields';
|
|
32
30
|
function OpenChoiceCheckboxAnswerOptionItem(props) {
|
|
33
|
-
|
|
34
|
-
const { qItem, qrItem, isRepeated, onQrItemChange, orientation } = props;
|
|
31
|
+
const { qItem, qrItem, orientation, isRepeated, textShown = true, onQrItemChange } = props;
|
|
35
32
|
// Init answers
|
|
36
33
|
const qrOpenChoiceCheckbox = qrItem !== null && qrItem !== void 0 ? qrItem : createEmptyQrItem(qItem);
|
|
37
34
|
const answers = useMemo(() => { var _a; return (_a = qrOpenChoiceCheckbox.answer) !== null && _a !== void 0 ? _a : []; }, [qrOpenChoiceCheckbox.answer]);
|
|
@@ -70,36 +67,26 @@ function OpenChoiceCheckboxAnswerOptionItem(props) {
|
|
|
70
67
|
const updateOpenLabelValueWithDebounce = useCallback(debounce((input) => {
|
|
71
68
|
handleValueChange(null, input);
|
|
72
69
|
}, DEBOUNCE_DURATION), [handleValueChange]); // Dependencies are tested, debounce is causing eslint to not recognise dependencies
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
setOpenLabelValue(input);
|
|
94
|
-
updateOpenLabelValueWithDebounce(input);
|
|
95
|
-
} })) : null));
|
|
96
|
-
return (React.createElement(FullWidthFormComponentBox, { "data-test": "q-item-open-choice-checkbox-answer-option-box" },
|
|
97
|
-
React.createElement(Grid, { container: true, columnSpacing: 6 },
|
|
98
|
-
React.createElement(Grid, { item: true, xs: 5 },
|
|
99
|
-
React.createElement(LabelWrapper, { qItem: qItem })),
|
|
100
|
-
React.createElement(Grid, { item: true, xs: 7 },
|
|
101
|
-
openChoiceCheckbox,
|
|
102
|
-
React.createElement(DisplayInstructions, { displayInstructions: displayInstructions })))));
|
|
70
|
+
function handleOpenLabelCheckedChange(checked) {
|
|
71
|
+
handleValueChange(null, openLabelValue);
|
|
72
|
+
setOpenLabelChecked(checked);
|
|
73
|
+
}
|
|
74
|
+
function handleOpenLabelInputChange(newValue) {
|
|
75
|
+
setOpenLabelValue(newValue);
|
|
76
|
+
updateOpenLabelValueWithDebounce(newValue);
|
|
77
|
+
}
|
|
78
|
+
if (textShown) {
|
|
79
|
+
return (React.createElement(FullWidthFormComponentBox, { "data-test": "q-item-open-choice-checkbox-answer-option-box" },
|
|
80
|
+
React.createElement(Grid, { container: true, columnSpacing: 6 },
|
|
81
|
+
React.createElement(Grid, { item: true, xs: 5 },
|
|
82
|
+
React.createElement(LabelWrapper, { qItem: qItem })),
|
|
83
|
+
React.createElement(Grid, { item: true, xs: 7 },
|
|
84
|
+
React.createElement(OpenChoiceCheckboxAnswerOptionFields, { qItem: qItem, answers: answers, openLabelText: openLabelText, openLabelValue: openLabelValue, openLabelChecked: openLabelChecked, readOnly: readOnly, orientation: orientation, onValueChange: handleValueChange, onOpenLabelCheckedChange: handleOpenLabelCheckedChange, onOpenLabelInputChange: handleOpenLabelInputChange }),
|
|
85
|
+
React.createElement(DisplayInstructions, { displayInstructions: displayInstructions })))));
|
|
86
|
+
}
|
|
87
|
+
return (React.createElement(React.Fragment, null,
|
|
88
|
+
React.createElement(OpenChoiceCheckboxAnswerOptionFields, { qItem: qItem, answers: answers, openLabelText: openLabelText, openLabelValue: openLabelValue, openLabelChecked: openLabelChecked, readOnly: readOnly, orientation: orientation, onValueChange: handleValueChange, onOpenLabelCheckedChange: handleOpenLabelCheckedChange, onOpenLabelInputChange: handleOpenLabelInputChange }),
|
|
89
|
+
React.createElement(DisplayInstructions, { displayInstructions: displayInstructions })));
|
|
103
90
|
}
|
|
104
91
|
export default OpenChoiceCheckboxAnswerOptionItem;
|
|
105
92
|
//# sourceMappingURL=OpenChoiceCheckboxAnswerOptionItem.js.map
|
package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenChoiceCheckboxAnswerOptionItem.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAO,IAAI,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"OpenChoiceCheckboxAnswerOptionItem.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
3
|
-
import type { PropsWithIsRepeatedAttribute, PropsWithIsTabledAttribute, PropsWithQrItemChangeHandler } from '../../../interfaces/renderProps.interface';
|
|
4
|
-
interface OpenChoiceItemSwitcherProps extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>, PropsWithIsRepeatedAttribute, PropsWithIsTabledAttribute {
|
|
3
|
+
import type { PropsWithIsRepeatedAttribute, PropsWithIsTabledAttribute, PropsWithQrItemChangeHandler, PropsWithTextShownAttribute } from '../../../interfaces/renderProps.interface';
|
|
4
|
+
interface OpenChoiceItemSwitcherProps extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>, PropsWithIsRepeatedAttribute, PropsWithIsTabledAttribute, PropsWithTextShownAttribute {
|
|
5
5
|
qItem: QuestionnaireItem;
|
|
6
6
|
qrItem: QuestionnaireResponseItem;
|
|
7
7
|
}
|
|
@@ -25,13 +25,13 @@ import OpenChoiceCheckboxAnswerOptionItem from './OpenChoiceCheckboxAnswerOption
|
|
|
25
25
|
import OpenChoiceRadioAnswerOptionItem from './OpenChoiceRadioAnswerOptionItem';
|
|
26
26
|
function OpenChoiceItemSwitcher(props) {
|
|
27
27
|
var _a, _b;
|
|
28
|
-
const { qItem, qrItem, isRepeated, isTabled, onQrItemChange } = props;
|
|
28
|
+
const { qItem, qrItem, isRepeated, isTabled, textShown, onQrItemChange } = props;
|
|
29
29
|
const orientation = getChoiceOrientation(qItem);
|
|
30
30
|
switch (getOpenChoiceControlType(qItem)) {
|
|
31
31
|
case OpenChoiceItemControl.Checkbox:
|
|
32
|
-
return (React.createElement(OpenChoiceCheckboxAnswerOptionItem, { qItem: qItem, qrItem: qrItem, isRepeated: (_a = qItem['repeats']) !== null && _a !== void 0 ? _a : false,
|
|
32
|
+
return (React.createElement(OpenChoiceCheckboxAnswerOptionItem, { qItem: qItem, qrItem: qrItem, orientation: orientation, isRepeated: (_a = qItem['repeats']) !== null && _a !== void 0 ? _a : false, textShown: textShown, onQrItemChange: onQrItemChange }));
|
|
33
33
|
case OpenChoiceItemControl.Radio:
|
|
34
|
-
return (React.createElement(OpenChoiceRadioAnswerOptionItem, { qItem: qItem, qrItem: qrItem, isRepeated: (_b = qItem['repeats']) !== null && _b !== void 0 ? _b : false, onQrItemChange: onQrItemChange
|
|
34
|
+
return (React.createElement(OpenChoiceRadioAnswerOptionItem, { qItem: qItem, qrItem: qrItem, orientation: orientation, isRepeated: (_b = qItem['repeats']) !== null && _b !== void 0 ? _b : false, onQrItemChange: onQrItemChange }));
|
|
35
35
|
case OpenChoiceItemControl.Autocomplete:
|
|
36
36
|
return (React.createElement(OpenChoiceAutocompleteItem, { qItem: qItem, qrItem: qrItem, isRepeated: isRepeated, isTabled: isTabled, onQrItemChange: onQrItemChange }));
|
|
37
37
|
case OpenChoiceItemControl.Select:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenChoiceItemSwitcher.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,OAAO,gCAAgC,MAAM,oCAAoC,CAAC;AAClF,OAAO,kCAAkC,MAAM,sCAAsC,CAAC;AACtF,OAAO,0BAA0B,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,kCAAkC,MAAM,sCAAsC,CAAC;AACtF,OAAO,+BAA+B,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"OpenChoiceItemSwitcher.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/OpenChoiceItems/OpenChoiceItemSwitcher.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,OAAO,gCAAgC,MAAM,oCAAoC,CAAC;AAClF,OAAO,kCAAkC,MAAM,sCAAsC,CAAC;AACtF,OAAO,0BAA0B,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,kCAAkC,MAAM,sCAAsC,CAAC;AACtF,OAAO,+BAA+B,MAAM,mCAAmC,CAAC;AAiBhF,SAAS,sBAAsB,CAAC,KAAkC;;IAChE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IACjF,MAAM,WAAW,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAEhD,QAAQ,wBAAwB,CAAC,KAAK,CAAC,EAAE;QACvC,KAAK,qBAAqB,CAAC,QAAQ;YACjC,OAAO,CACL,oBAAC,kCAAkC,IACjC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,MAAA,KAAK,CAAC,SAAS,CAAC,mCAAI,KAAK,EACrC,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc,GAC9B,CACH,CAAC;QACJ,KAAK,qBAAqB,CAAC,KAAK;YAC9B,OAAO,CACL,oBAAC,+BAA+B,IAC9B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,MAAA,KAAK,CAAC,SAAS,CAAC,mCAAI,KAAK,EACrC,cAAc,EAAE,cAAc,GAC9B,CACH,CAAC;QACJ,KAAK,qBAAqB,CAAC,YAAY;YACrC,OAAO,CACL,oBAAC,0BAA0B,IACzB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,GAC9B,CACH,CAAC;QACJ,KAAK,qBAAqB,CAAC,MAAM;YAC/B,IAAI,KAAK,CAAC,cAAc,EAAE;gBACxB,OAAO,CACL,oBAAC,kCAAkC,IACjC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,GAC9B,CACH,CAAC;aACH;iBAAM;gBACL,OAAO,CACL,oBAAC,gCAAgC,IAC/B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,GAC9B,CACH,CAAC;aACH;QACH;YACE,OAAO,IAAI,CAAC;KACf;AACH,CAAC;AAED,eAAe,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ChoiceItemOrientation } from '../../../interfaces/choice.enum';
|
|
3
|
+
import type { QuestionnaireItem } from 'fhir/r4';
|
|
4
|
+
interface OpenChoiceRadioAnswerOptionFieldsProps {
|
|
5
|
+
qItem: QuestionnaireItem;
|
|
6
|
+
valueRadio: string | null;
|
|
7
|
+
openLabelText: string | null;
|
|
8
|
+
openLabelValue: string | null;
|
|
9
|
+
openLabelSelected: boolean;
|
|
10
|
+
orientation: ChoiceItemOrientation;
|
|
11
|
+
readOnly: boolean;
|
|
12
|
+
onValueChange: (changedOptionValue: string | null, changedOpenLabelValue: string | null) => void;
|
|
13
|
+
}
|
|
14
|
+
declare function OpenChoiceRadioAnswerOptionFields(props: OpenChoiceRadioAnswerOptionFieldsProps): React.JSX.Element;
|
|
15
|
+
export default OpenChoiceRadioAnswerOptionFields;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 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 RadioAnswerOptionButtons from '../ItemParts/RadioAnswerOptionButtons';
|
|
22
|
+
function OpenChoiceRadioAnswerOptionFields(props) {
|
|
23
|
+
const { qItem, valueRadio, openLabelText, openLabelValue, openLabelSelected, orientation, readOnly, onValueChange } = props;
|
|
24
|
+
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" },
|
|
25
|
+
React.createElement(RadioAnswerOptionButtons, { qItem: qItem, readOnly: readOnly }),
|
|
26
|
+
openLabelText ? (React.createElement(RadioButtonWithOpenLabel, { value: openLabelValue, label: openLabelText, readOnly: readOnly, isSelected: openLabelSelected, onInputChange: (input) => onValueChange(null, input) })) : null));
|
|
27
|
+
}
|
|
28
|
+
export default OpenChoiceRadioAnswerOptionFields;
|
|
29
|
+
//# sourceMappingURL=OpenChoiceRadioAnswerOptionFields.js.map
|
package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionFields.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenChoiceRadioAnswerOptionFields.js","sourceRoot":"","sources":["../../../../src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionFields.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,wBAAwB,MAAM,uCAAuC,CAAC;AAa7E,SAAS,iCAAiC,CAAC,KAA6C;IACtF,MAAM,EACJ,KAAK,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,QAAQ,EACR,aAAa,EACd,GAAG,KAAK,CAAC;IAEV,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;QAC9B,oBAAC,wBAAwB,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAI;QAE7D,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;AACJ,CAAC;AAED,eAAe,iCAAiC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { ChoiceItemOrientation } from '../../../interfaces/choice.enum';
|
|
2
|
+
import type { ChoiceItemOrientation } from '../../../interfaces/choice.enum';
|
|
3
3
|
import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
|
|
4
4
|
import type { PropsWithIsRepeatedAttribute, PropsWithQrItemChangeHandler } from '../../../interfaces/renderProps.interface';
|
|
5
5
|
interface OpenChoiceRadioAnswerOptionItemProps extends PropsWithQrItemChangeHandler<QuestionnaireResponseItem>, PropsWithIsRepeatedAttribute {
|