@aehrc/smart-forms-renderer 0.16.3 → 0.17.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.
Files changed (86) hide show
  1. package/lib/components/FormComponents/AttachmentItem/AttachmentFieldWrapper.js +3 -1
  2. package/lib/components/FormComponents/AttachmentItem/AttachmentFieldWrapper.js.map +1 -1
  3. package/lib/components/FormComponents/BooleanItem/BooleanItem.js +3 -1
  4. package/lib/components/FormComponents/BooleanItem/BooleanItem.js.map +1 -1
  5. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js +3 -1
  6. package/lib/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.js.map +1 -1
  7. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js +3 -1
  8. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.js.map +1 -1
  9. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js +3 -1
  10. package/lib/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.js.map +1 -1
  11. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js +3 -1
  12. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.js.map +1 -1
  13. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js +3 -1
  14. package/lib/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.js.map +1 -1
  15. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js +3 -1
  16. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.js.map +1 -1
  17. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js +3 -1
  18. package/lib/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.js.map +1 -1
  19. package/lib/components/FormComponents/CustomDateItem/CustomDateItem.js +3 -1
  20. package/lib/components/FormComponents/CustomDateItem/CustomDateItem.js.map +1 -1
  21. package/lib/components/FormComponents/DateTimeItem/DateTimeItem.js +3 -1
  22. package/lib/components/FormComponents/DateTimeItem/DateTimeItem.js.map +1 -1
  23. package/lib/components/FormComponents/DecimalItem/DecimalItem.js +3 -1
  24. package/lib/components/FormComponents/DecimalItem/DecimalItem.js.map +1 -1
  25. package/lib/components/FormComponents/DisplayItem/DisplayItem.js +3 -1
  26. package/lib/components/FormComponents/DisplayItem/DisplayItem.js.map +1 -1
  27. package/lib/components/FormComponents/GridGroup/GridGroup.js +3 -1
  28. package/lib/components/FormComponents/GridGroup/GridGroup.js.map +1 -1
  29. package/lib/components/FormComponents/IntegerItem/IntegerItem.js +3 -1
  30. package/lib/components/FormComponents/IntegerItem/IntegerItem.js.map +1 -1
  31. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js +3 -1
  32. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.js.map +1 -1
  33. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js +3 -1
  34. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.js.map +1 -1
  35. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js +3 -1
  36. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.js.map +1 -1
  37. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js +3 -1
  38. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.js.map +1 -1
  39. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js +3 -1
  40. package/lib/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.js.map +1 -1
  41. package/lib/components/FormComponents/RepeatItem/RepeatItem.js +3 -1
  42. package/lib/components/FormComponents/RepeatItem/RepeatItem.js.map +1 -1
  43. package/lib/components/FormComponents/SliderItem/SliderItem.js +3 -1
  44. package/lib/components/FormComponents/SliderItem/SliderItem.js.map +1 -1
  45. package/lib/components/FormComponents/StringItem/StringItem.js +3 -1
  46. package/lib/components/FormComponents/StringItem/StringItem.js.map +1 -1
  47. package/lib/components/FormComponents/Tables/GroupTableView.js +3 -1
  48. package/lib/components/FormComponents/Tables/GroupTableView.js.map +1 -1
  49. package/lib/components/FormComponents/TextItem/TextItem.js +3 -1
  50. package/lib/components/FormComponents/TextItem/TextItem.js.map +1 -1
  51. package/lib/components/FormComponents/TimeItem/TimeItem.js +3 -1
  52. package/lib/components/FormComponents/TimeItem/TimeItem.js.map +1 -1
  53. package/lib/components/FormComponents/UrlItem/UrlItem.js +3 -1
  54. package/lib/components/FormComponents/UrlItem/UrlItem.js.map +1 -1
  55. package/lib/stores/questionnaireStore.d.ts +4 -0
  56. package/lib/stores/questionnaireStore.js +5 -1
  57. package/lib/stores/questionnaireStore.js.map +1 -1
  58. package/package.json +1 -1
  59. package/src/components/FormComponents/AttachmentItem/AttachmentFieldWrapper.tsx +7 -1
  60. package/src/components/FormComponents/BooleanItem/BooleanItem.tsx +7 -1
  61. package/src/components/FormComponents/ChoiceItems/ChoiceAutocompleteItem.tsx +5 -1
  62. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerOptionItem.tsx +5 -1
  63. package/src/components/FormComponents/ChoiceItems/ChoiceCheckboxAnswerValueSetItem.tsx +5 -1
  64. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerOptionItem.tsx +5 -1
  65. package/src/components/FormComponents/ChoiceItems/ChoiceRadioAnswerValueSetItem.tsx +5 -1
  66. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerOptionItem.tsx +5 -1
  67. package/src/components/FormComponents/ChoiceItems/ChoiceSelectAnswerValueSetItem.tsx +5 -1
  68. package/src/components/FormComponents/CustomDateItem/CustomDateItem.tsx +7 -1
  69. package/src/components/FormComponents/DateTimeItem/DateTimeItem.tsx +7 -1
  70. package/src/components/FormComponents/DecimalItem/DecimalItem.tsx +7 -1
  71. package/src/components/FormComponents/DisplayItem/DisplayItem.tsx +7 -1
  72. package/src/components/FormComponents/GridGroup/GridGroup.tsx +5 -1
  73. package/src/components/FormComponents/IntegerItem/IntegerItem.tsx +7 -1
  74. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceAutocompleteItem.tsx +5 -1
  75. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceCheckboxAnswerOptionItem.tsx +5 -1
  76. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceRadioAnswerOptionItem.tsx +5 -1
  77. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerOptionItem.tsx +5 -1
  78. package/src/components/FormComponents/OpenChoiceItems/OpenChoiceSelectAnswerValueSetItem.tsx +5 -1
  79. package/src/components/FormComponents/RepeatItem/RepeatItem.tsx +7 -1
  80. package/src/components/FormComponents/SliderItem/SliderItem.tsx +7 -1
  81. package/src/components/FormComponents/StringItem/StringItem.tsx +7 -1
  82. package/src/components/FormComponents/Tables/GroupTableView.tsx +5 -1
  83. package/src/components/FormComponents/TextItem/TextItem.tsx +7 -1
  84. package/src/components/FormComponents/TimeItem/TimeItem.tsx +7 -1
  85. package/src/components/FormComponents/UrlItem/UrlItem.tsx +7 -1
  86. package/src/stores/questionnaireStore.ts +8 -1
@@ -32,6 +32,7 @@ import { FullWidthFormComponentBox } from '../../Box.styles';
32
32
  import UrlField from './UrlField';
33
33
  import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
34
34
  import useReadOnly from '../../../hooks/useReadOnly';
35
+ import { useQuestionnaireStore } from '../../../stores';
35
36
 
36
37
  interface UrlItemProps
37
38
  extends PropsWithQrItemChangeHandler,
@@ -44,6 +45,8 @@ interface UrlItemProps
44
45
  function UrlItem(props: UrlItemProps) {
45
46
  const { qItem, qrItem, isRepeated, isTabled, parentIsReadOnly, onQrItemChange } = props;
46
47
 
48
+ const onFocusLinkId = useQuestionnaireStore.use.onFocusLinkId();
49
+
47
50
  const readOnly = useReadOnly(qItem, parentIsReadOnly);
48
51
  const { displayUnit, displayPrompt, entryFormat, regexValidation, minLength, maxLength } =
49
52
  useRenderingExtensions(qItem);
@@ -93,7 +96,10 @@ function UrlItem(props: UrlItemProps) {
93
96
  );
94
97
  }
95
98
  return (
96
- <FullWidthFormComponentBox data-test="q-item-string-box" data-linkid={qItem.linkId}>
99
+ <FullWidthFormComponentBox
100
+ data-test="q-item-string-box"
101
+ data-linkid={qItem.linkId}
102
+ onClick={() => onFocusLinkId(qItem.linkId)}>
97
103
  <ItemFieldGrid qItem={qItem} readOnly={readOnly}>
98
104
  <UrlField
99
105
  linkId={qItem.linkId}
@@ -58,6 +58,7 @@ interface QuestionnaireStoreType {
58
58
  processedValueSetUrls: Record<string, string>;
59
59
  cachedValueSetCodings: Record<string, Coding[]>;
60
60
  fhirPathContext: Record<string, any>;
61
+ focusedLinkId: string;
61
62
  readOnly: boolean;
62
63
  buildSourceQuestionnaire: (
63
64
  questionnaire: Questionnaire,
@@ -77,6 +78,7 @@ interface QuestionnaireStoreType {
77
78
  populatedResponse: QuestionnaireResponse,
78
79
  persistTabIndex?: boolean
79
80
  ) => QuestionnaireResponse;
81
+ onFocusLinkId: (linkId: string) => void;
80
82
  }
81
83
 
82
84
  export const questionnaireStore = createStore<QuestionnaireStoreType>()((set, get) => ({
@@ -96,6 +98,7 @@ export const questionnaireStore = createStore<QuestionnaireStoreType>()((set, ge
96
98
  processedValueSetUrls: {},
97
99
  cachedValueSetCodings: {},
98
100
  fhirPathContext: {},
101
+ focusedLinkId: '',
99
102
  readOnly: false,
100
103
  buildSourceQuestionnaire: async (
101
104
  questionnaire,
@@ -269,7 +272,11 @@ export const questionnaireStore = createStore<QuestionnaireStoreType>()((set, ge
269
272
  }));
270
273
 
271
274
  return updatedResponse;
272
- }
275
+ },
276
+ onFocusLinkId: (linkId: string) =>
277
+ set(() => ({
278
+ focusedLinkId: linkId
279
+ }))
273
280
  }));
274
281
 
275
282
  export const useQuestionnaireStore = createSelectors(questionnaireStore);