@medplum/react 0.9.38 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. package/dist/cjs/AttachmentButton.d.ts +9 -0
  2. package/dist/cjs/CodeInput.d.ts +2 -1
  3. package/dist/cjs/CodeableConceptInput.d.ts +2 -1
  4. package/dist/cjs/CodingInput.d.ts +2 -1
  5. package/dist/cjs/DateTimeInput.d.ts +9 -2
  6. package/dist/cjs/DiagnosticReportDisplay.d.ts +0 -1
  7. package/dist/cjs/ReferenceInput.d.ts +1 -0
  8. package/dist/cjs/ResourceAvatar.d.ts +8 -0
  9. package/dist/cjs/ResourceBadge.d.ts +0 -1
  10. package/dist/cjs/ResourceHistoryTable.d.ts +0 -1
  11. package/dist/cjs/ResourceInput.d.ts +2 -3
  12. package/dist/cjs/SearchPopupMenu.d.ts +0 -4
  13. package/dist/cjs/SearchUtils.d.ts +5 -5
  14. package/dist/cjs/StatusBadge.d.ts +0 -1
  15. package/dist/cjs/ValueSetAutocomplete.d.ts +10 -0
  16. package/dist/cjs/auth/RegisterForm.d.ts +0 -1
  17. package/dist/cjs/auth/SignInForm.d.ts +0 -1
  18. package/dist/cjs/defaulttheme.css +0 -51
  19. package/dist/cjs/index.d.ts +3 -21
  20. package/dist/cjs/index.js +859 -1560
  21. package/dist/cjs/index.js.map +1 -1
  22. package/dist/cjs/index.min.js +1 -1
  23. package/dist/cjs/index.min.js.map +1 -1
  24. package/dist/cjs/stories/{UploadButton.stories.d.ts → AttachmentButton.stories.d.ts} +1 -0
  25. package/dist/cjs/stories/{FormSection.stories.d.ts → CodeInput.stories.d.ts} +0 -0
  26. package/dist/cjs/stories/{Input.stories.d.ts → CodeableConceptInput.stories.d.ts} +0 -0
  27. package/dist/cjs/stories/PeriodInput.stories.d.ts +6 -0
  28. package/dist/cjs/stories/{Avatar.stories.d.ts → ResourceAvatar.stories.d.ts} +0 -0
  29. package/dist/cjs/stories/ResourceForm.stories.d.ts +1 -0
  30. package/dist/cjs/stories/{Loading.stories.d.ts → ResourceInput.stories.d.ts} +2 -1
  31. package/dist/cjs/stories/SearchControl.stories.d.ts +1 -0
  32. package/dist/cjs/styles.css +35 -1206
  33. package/dist/cjs/utils/outcomes.d.ts +1 -0
  34. package/dist/esm/AddressInput.js +9 -21
  35. package/dist/esm/AddressInput.js.map +1 -1
  36. package/dist/esm/AnnotationInput.js +2 -2
  37. package/dist/esm/AnnotationInput.js.map +1 -1
  38. package/dist/esm/AttachmentArrayInput.js +11 -8
  39. package/dist/esm/AttachmentArrayInput.js.map +1 -1
  40. package/dist/esm/AttachmentButton.d.ts +9 -0
  41. package/dist/esm/{UploadButton.js → AttachmentButton.js} +9 -9
  42. package/dist/esm/AttachmentButton.js.map +1 -0
  43. package/dist/esm/AttachmentInput.js +3 -3
  44. package/dist/esm/AttachmentInput.js.map +1 -1
  45. package/dist/esm/CalendarInput.js +6 -7
  46. package/dist/esm/CalendarInput.js.map +1 -1
  47. package/dist/esm/CodeInput.d.ts +2 -1
  48. package/dist/esm/CodeInput.js +16 -21
  49. package/dist/esm/CodeInput.js.map +1 -1
  50. package/dist/esm/CodeableConceptInput.d.ts +2 -1
  51. package/dist/esm/CodeableConceptInput.js +18 -33
  52. package/dist/esm/CodeableConceptInput.js.map +1 -1
  53. package/dist/esm/CodingInput.d.ts +2 -1
  54. package/dist/esm/CodingInput.js +24 -23
  55. package/dist/esm/CodingInput.js.map +1 -1
  56. package/dist/esm/ContactDetailInput.js +3 -4
  57. package/dist/esm/ContactDetailInput.js.map +1 -1
  58. package/dist/esm/ContactPointInput.js +5 -21
  59. package/dist/esm/ContactPointInput.js.map +1 -1
  60. package/dist/esm/DateTimeInput.d.ts +9 -2
  61. package/dist/esm/DateTimeInput.js +13 -3
  62. package/dist/esm/DateTimeInput.js.map +1 -1
  63. package/dist/esm/DiagnosticReportDisplay.d.ts +0 -1
  64. package/dist/esm/DiagnosticReportDisplay.js +21 -2
  65. package/dist/esm/DiagnosticReportDisplay.js.map +1 -1
  66. package/dist/esm/EncounterTimeline.js +2 -0
  67. package/dist/esm/EncounterTimeline.js.map +1 -1
  68. package/dist/esm/ExtensionInput.js +2 -2
  69. package/dist/esm/ExtensionInput.js.map +1 -1
  70. package/dist/esm/FhirPathTable.js +4 -5
  71. package/dist/esm/FhirPathTable.js.map +1 -1
  72. package/dist/esm/HumanNameInput.js +7 -17
  73. package/dist/esm/HumanNameInput.js.map +1 -1
  74. package/dist/esm/IdentifierInput.js +4 -5
  75. package/dist/esm/IdentifierInput.js.map +1 -1
  76. package/dist/esm/Logo.js +4 -4
  77. package/dist/esm/Logo.js.map +1 -1
  78. package/dist/esm/PatientTimeline.js +2 -0
  79. package/dist/esm/PatientTimeline.js.map +1 -1
  80. package/dist/esm/PeriodInput.js +5 -5
  81. package/dist/esm/PeriodInput.js.map +1 -1
  82. package/dist/esm/PlanDefinitionBuilder.js +17 -29
  83. package/dist/esm/PlanDefinitionBuilder.js.map +1 -1
  84. package/dist/esm/QuantityInput.js +5 -12
  85. package/dist/esm/QuantityInput.js.map +1 -1
  86. package/dist/esm/QuestionnaireBuilder.js +22 -25
  87. package/dist/esm/QuestionnaireBuilder.js.map +1 -1
  88. package/dist/esm/QuestionnaireForm.js +35 -29
  89. package/dist/esm/QuestionnaireForm.js.map +1 -1
  90. package/dist/esm/RangeInput.js +2 -2
  91. package/dist/esm/RangeInput.js.map +1 -1
  92. package/dist/esm/RatioInput.js +2 -2
  93. package/dist/esm/RatioInput.js.map +1 -1
  94. package/dist/esm/ReferenceInput.d.ts +1 -0
  95. package/dist/esm/ReferenceInput.js +4 -6
  96. package/dist/esm/ReferenceInput.js.map +1 -1
  97. package/dist/esm/RequestGroupDisplay.js +1 -1
  98. package/dist/esm/RequestGroupDisplay.js.map +1 -1
  99. package/dist/esm/ResourceArrayInput.js +10 -7
  100. package/dist/esm/ResourceArrayInput.js.map +1 -1
  101. package/dist/esm/ResourceAvatar.d.ts +8 -0
  102. package/dist/esm/ResourceAvatar.js +24 -0
  103. package/dist/esm/ResourceAvatar.js.map +1 -0
  104. package/dist/esm/ResourceBadge.d.ts +0 -1
  105. package/dist/esm/ResourceBadge.js +2 -3
  106. package/dist/esm/ResourceBadge.js.map +1 -1
  107. package/dist/esm/ResourceBlame.js +3 -3
  108. package/dist/esm/ResourceBlame.js.map +1 -1
  109. package/dist/esm/ResourceForm.js +10 -10
  110. package/dist/esm/ResourceForm.js.map +1 -1
  111. package/dist/esm/ResourceHistoryTable.d.ts +0 -1
  112. package/dist/esm/ResourceHistoryTable.js +2 -1
  113. package/dist/esm/ResourceHistoryTable.js.map +1 -1
  114. package/dist/esm/ResourceInput.d.ts +2 -3
  115. package/dist/esm/ResourceInput.js +37 -29
  116. package/dist/esm/ResourceInput.js.map +1 -1
  117. package/dist/esm/ResourcePropertyInput.js +30 -18
  118. package/dist/esm/ResourcePropertyInput.js.map +1 -1
  119. package/dist/esm/ResourceTimeline.js +23 -17
  120. package/dist/esm/ResourceTimeline.js.map +1 -1
  121. package/dist/esm/Scheduler.js +7 -7
  122. package/dist/esm/Scheduler.js.map +1 -1
  123. package/dist/esm/SearchControl.js +76 -58
  124. package/dist/esm/SearchControl.js.map +1 -1
  125. package/dist/esm/SearchControlField.js.map +1 -1
  126. package/dist/esm/SearchFieldEditor.js +7 -7
  127. package/dist/esm/SearchFieldEditor.js.map +1 -1
  128. package/dist/esm/SearchFilterEditor.js +11 -15
  129. package/dist/esm/SearchFilterEditor.js.map +1 -1
  130. package/dist/esm/SearchFilterValueDialog.js +4 -3
  131. package/dist/esm/SearchFilterValueDialog.js.map +1 -1
  132. package/dist/esm/SearchFilterValueInput.js +6 -7
  133. package/dist/esm/SearchFilterValueInput.js.map +1 -1
  134. package/dist/esm/SearchPopupMenu.d.ts +0 -4
  135. package/dist/esm/SearchPopupMenu.js +59 -73
  136. package/dist/esm/SearchPopupMenu.js.map +1 -1
  137. package/dist/esm/SearchUtils.d.ts +5 -5
  138. package/dist/esm/SearchUtils.js +11 -12
  139. package/dist/esm/SearchUtils.js.map +1 -1
  140. package/dist/esm/ServiceRequestTimeline.js +2 -0
  141. package/dist/esm/ServiceRequestTimeline.js.map +1 -1
  142. package/dist/esm/StatusBadge.d.ts +0 -1
  143. package/dist/esm/StatusBadge.js +55 -1
  144. package/dist/esm/StatusBadge.js.map +1 -1
  145. package/dist/esm/Timeline.js +12 -20
  146. package/dist/esm/Timeline.js.map +1 -1
  147. package/dist/esm/TimingInput.js +14 -17
  148. package/dist/esm/TimingInput.js.map +1 -1
  149. package/dist/esm/ValueSetAutocomplete.d.ts +10 -0
  150. package/dist/esm/ValueSetAutocomplete.js +65 -0
  151. package/dist/esm/ValueSetAutocomplete.js.map +1 -0
  152. package/dist/esm/auth/AuthenticationForm.js +12 -20
  153. package/dist/esm/auth/AuthenticationForm.js.map +1 -1
  154. package/dist/esm/auth/ChooseProfileForm.js +10 -10
  155. package/dist/esm/auth/ChooseProfileForm.js.map +1 -1
  156. package/dist/esm/auth/NewProjectForm.js +12 -15
  157. package/dist/esm/auth/NewProjectForm.js.map +1 -1
  158. package/dist/esm/auth/NewUserForm.js +25 -33
  159. package/dist/esm/auth/NewUserForm.js.map +1 -1
  160. package/dist/esm/auth/RegisterForm.d.ts +0 -1
  161. package/dist/esm/auth/RegisterForm.js.map +1 -1
  162. package/dist/esm/auth/SignInForm.d.ts +0 -1
  163. package/dist/esm/auth/SignInForm.js.map +1 -1
  164. package/dist/esm/defaulttheme.css +0 -51
  165. package/dist/esm/index.d.ts +3 -21
  166. package/dist/esm/index.js +4 -22
  167. package/dist/esm/index.js.map +1 -1
  168. package/dist/esm/index.min.js +1 -1
  169. package/dist/esm/index.min.js.map +1 -1
  170. package/dist/esm/node_modules/tslib/tslib.es6.js +13 -1
  171. package/dist/esm/node_modules/tslib/tslib.es6.js.map +1 -1
  172. package/dist/esm/stories/{UploadButton.stories.d.ts → AttachmentButton.stories.d.ts} +1 -0
  173. package/dist/{cjs/stories/Select.stories.d.ts → esm/stories/CodeInput.stories.d.ts} +0 -0
  174. package/dist/esm/stories/{FormSection.stories.d.ts → CodeableConceptInput.stories.d.ts} +0 -0
  175. package/dist/esm/stories/PeriodInput.stories.d.ts +6 -0
  176. package/dist/esm/stories/{Avatar.stories.d.ts → ResourceAvatar.stories.d.ts} +0 -0
  177. package/dist/esm/stories/ResourceForm.stories.d.ts +1 -0
  178. package/dist/{cjs/stories/Dialog.stories.d.ts → esm/stories/ResourceInput.stories.d.ts} +2 -1
  179. package/dist/esm/stories/SearchControl.stories.d.ts +1 -0
  180. package/dist/esm/styles.css +35 -1206
  181. package/dist/esm/utils/outcomes.d.ts +1 -0
  182. package/dist/esm/utils/outcomes.js +5 -1
  183. package/dist/esm/utils/outcomes.js.map +1 -1
  184. package/package.json +27 -19
  185. package/dist/cjs/Autocomplete.d.ts +0 -20
  186. package/dist/cjs/Avatar.d.ts +0 -12
  187. package/dist/cjs/Button.d.ts +0 -15
  188. package/dist/cjs/Checkbox.d.ts +0 -12
  189. package/dist/cjs/Dialog.d.ts +0 -10
  190. package/dist/cjs/FooterLinks.d.ts +0 -6
  191. package/dist/cjs/Header.d.ts +0 -12
  192. package/dist/cjs/HeaderSearchInput.d.ts +0 -10
  193. package/dist/cjs/Input.d.ts +0 -22
  194. package/dist/cjs/InputRow.d.ts +0 -7
  195. package/dist/cjs/Loading.d.ts +0 -3
  196. package/dist/cjs/MenuItem.d.ts +0 -9
  197. package/dist/cjs/MenuSeparator.d.ts +0 -3
  198. package/dist/cjs/Popup.d.ts +0 -14
  199. package/dist/cjs/Scrollable.d.ts +0 -9
  200. package/dist/cjs/Select.d.ts +0 -16
  201. package/dist/cjs/SubMenu.d.ts +0 -7
  202. package/dist/cjs/Tab.d.ts +0 -12
  203. package/dist/cjs/TabList.d.ts +0 -10
  204. package/dist/cjs/TabPanel.d.ts +0 -6
  205. package/dist/cjs/TabSwitch.d.ts +0 -6
  206. package/dist/cjs/TextArea.d.ts +0 -18
  207. package/dist/cjs/TitleBar.d.ts +0 -6
  208. package/dist/cjs/UploadButton.d.ts +0 -7
  209. package/dist/cjs/stories/Autocomplete.stories.d.ts +0 -9
  210. package/dist/cjs/stories/Button.stories.d.ts +0 -9
  211. package/dist/cjs/stories/Header.stories.d.ts +0 -8
  212. package/dist/cjs/stories/Tabs.stories.d.ts +0 -6
  213. package/dist/esm/Autocomplete.d.ts +0 -20
  214. package/dist/esm/Autocomplete.js +0 -281
  215. package/dist/esm/Autocomplete.js.map +0 -1
  216. package/dist/esm/Avatar.d.ts +0 -12
  217. package/dist/esm/Avatar.js +0 -24
  218. package/dist/esm/Avatar.js.map +0 -1
  219. package/dist/esm/Button.d.ts +0 -15
  220. package/dist/esm/Button.js +0 -13
  221. package/dist/esm/Button.js.map +0 -1
  222. package/dist/esm/Checkbox.d.ts +0 -12
  223. package/dist/esm/Checkbox.js +0 -13
  224. package/dist/esm/Checkbox.js.map +0 -1
  225. package/dist/esm/Dialog.d.ts +0 -10
  226. package/dist/esm/Dialog.js +0 -43
  227. package/dist/esm/Dialog.js.map +0 -1
  228. package/dist/esm/FooterLinks.d.ts +0 -6
  229. package/dist/esm/FooterLinks.js +0 -8
  230. package/dist/esm/FooterLinks.js.map +0 -1
  231. package/dist/esm/Header.d.ts +0 -12
  232. package/dist/esm/Header.js +0 -99
  233. package/dist/esm/Header.js.map +0 -1
  234. package/dist/esm/HeaderSearchInput.d.ts +0 -10
  235. package/dist/esm/HeaderSearchInput.js +0 -181
  236. package/dist/esm/HeaderSearchInput.js.map +0 -1
  237. package/dist/esm/Input.d.ts +0 -22
  238. package/dist/esm/Input.js +0 -26
  239. package/dist/esm/Input.js.map +0 -1
  240. package/dist/esm/InputRow.d.ts +0 -7
  241. package/dist/esm/InputRow.js +0 -8
  242. package/dist/esm/InputRow.js.map +0 -1
  243. package/dist/esm/Loading.d.ts +0 -3
  244. package/dist/esm/Loading.js +0 -11
  245. package/dist/esm/Loading.js.map +0 -1
  246. package/dist/esm/MenuItem.d.ts +0 -9
  247. package/dist/esm/MenuItem.js +0 -8
  248. package/dist/esm/MenuItem.js.map +0 -1
  249. package/dist/esm/MenuSeparator.d.ts +0 -3
  250. package/dist/esm/MenuSeparator.js +0 -8
  251. package/dist/esm/MenuSeparator.js.map +0 -1
  252. package/dist/esm/Popup.d.ts +0 -14
  253. package/dist/esm/Popup.js +0 -78
  254. package/dist/esm/Popup.js.map +0 -1
  255. package/dist/esm/Scrollable.d.ts +0 -9
  256. package/dist/esm/Scrollable.js +0 -12
  257. package/dist/esm/Scrollable.js.map +0 -1
  258. package/dist/esm/Select.d.ts +0 -16
  259. package/dist/esm/Select.js +0 -16
  260. package/dist/esm/Select.js.map +0 -1
  261. package/dist/esm/SubMenu.d.ts +0 -7
  262. package/dist/esm/SubMenu.js +0 -38
  263. package/dist/esm/SubMenu.js.map +0 -1
  264. package/dist/esm/Tab.d.ts +0 -12
  265. package/dist/esm/Tab.js +0 -19
  266. package/dist/esm/Tab.js.map +0 -1
  267. package/dist/esm/TabList.d.ts +0 -10
  268. package/dist/esm/TabList.js +0 -23
  269. package/dist/esm/TabList.js.map +0 -1
  270. package/dist/esm/TabPanel.d.ts +0 -6
  271. package/dist/esm/TabPanel.js +0 -8
  272. package/dist/esm/TabPanel.js.map +0 -1
  273. package/dist/esm/TabSwitch.d.ts +0 -6
  274. package/dist/esm/TabSwitch.js +0 -16
  275. package/dist/esm/TabSwitch.js.map +0 -1
  276. package/dist/esm/TextArea.d.ts +0 -18
  277. package/dist/esm/TextArea.js +0 -16
  278. package/dist/esm/TextArea.js.map +0 -1
  279. package/dist/esm/TitleBar.d.ts +0 -6
  280. package/dist/esm/TitleBar.js +0 -8
  281. package/dist/esm/TitleBar.js.map +0 -1
  282. package/dist/esm/UploadButton.d.ts +0 -7
  283. package/dist/esm/UploadButton.js.map +0 -1
  284. package/dist/esm/stories/Autocomplete.stories.d.ts +0 -9
  285. package/dist/esm/stories/Button.stories.d.ts +0 -9
  286. package/dist/esm/stories/Dialog.stories.d.ts +0 -5
  287. package/dist/esm/stories/Header.stories.d.ts +0 -8
  288. package/dist/esm/stories/Input.stories.d.ts +0 -6
  289. package/dist/esm/stories/Loading.stories.d.ts +0 -5
  290. package/dist/esm/stories/Select.stories.d.ts +0 -6
  291. package/dist/esm/stories/Tabs.stories.d.ts +0 -6
@@ -1,2 +1,3 @@
1
1
  import { OperationOutcome, OperationOutcomeIssue } from '@medplum/fhirtypes';
2
+ export declare function getErrorsForInput(outcome: OperationOutcome | undefined, expression: string | undefined): string | undefined;
2
3
  export declare function getIssuesForExpression(outcome: OperationOutcome | undefined, expression: string | undefined): OperationOutcomeIssue[] | undefined;
@@ -1,3 +1,7 @@
1
+ function getErrorsForInput(outcome, expression) {
2
+ var _a, _b, _c;
3
+ return (_c = (_b = (_a = outcome === null || outcome === void 0 ? void 0 : outcome.issue) === null || _a === void 0 ? void 0 : _a.filter((issue) => { var _a; return isExpressionMatch((_a = issue.expression) === null || _a === void 0 ? void 0 : _a[0], expression); })) === null || _b === void 0 ? void 0 : _b.map((issue) => { var _a; return (_a = issue.details) === null || _a === void 0 ? void 0 : _a.text; })) === null || _c === void 0 ? void 0 : _c.join('\n');
4
+ }
1
5
  function getIssuesForExpression(outcome, expression) {
2
6
  var _a;
3
7
  return (_a = outcome === null || outcome === void 0 ? void 0 : outcome.issue) === null || _a === void 0 ? void 0 : _a.filter((issue) => { var _a; return isExpressionMatch((_a = issue.expression) === null || _a === void 0 ? void 0 : _a[0], expression); });
@@ -21,5 +25,5 @@ function isExpressionMatch(expr1, expr2) {
21
25
  return false;
22
26
  }
23
27
 
24
- export { getIssuesForExpression };
28
+ export { getErrorsForInput, getIssuesForExpression };
25
29
  //# sourceMappingURL=outcomes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"outcomes.js","sources":["../../../src/utils/outcomes.ts"],"sourcesContent":["import { OperationOutcome, OperationOutcomeIssue } from '@medplum/fhirtypes';\n\nexport function getIssuesForExpression(\n outcome: OperationOutcome | undefined,\n expression: string | undefined\n): OperationOutcomeIssue[] | undefined {\n return outcome?.issue?.filter((issue) => isExpressionMatch(issue.expression?.[0], expression));\n}\n\nfunction isExpressionMatch(expr1: string | undefined, expr2: string | undefined): boolean {\n // Expression can be either \"fieldName\" or \"resourceType.fieldName\"\n if (expr1 === expr2) {\n return true;\n }\n if (!expr1 || !expr2) {\n return false;\n }\n const dot1 = expr1.indexOf('.');\n if (dot1 >= 0 && expr1.substring(dot1 + 1) === expr2) {\n return true;\n }\n const dot2 = expr2.indexOf('.');\n if (dot2 >= 0 && expr2.substring(dot2 + 1) === expr1) {\n return true;\n }\n return false;\n}\n"],"names":[],"mappings":"AAEgB,SAAA,sBAAsB,CACpC,OAAqC,EACrC,UAA8B,EAAA;;AAE9B,IAAA,OAAO,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,CAAC,CAAC,KAAK,KAAI,EAAA,IAAA,EAAA,CAAA,CAAC,OAAA,iBAAiB,CAAC,CAAA,EAAA,GAAA,KAAK,CAAC,UAAU,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA,EAAA,CAAC,CAAC;AACjG,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAyB,EAAE,KAAyB,EAAA;;IAE7E,IAAI,KAAK,KAAK,KAAK,EAAE;AACnB,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;AACD,IAAA,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE;AACpB,QAAA,OAAO,KAAK,CAAC;AACd,KAAA;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAChC,IAAA,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,KAAK,EAAE;AACpD,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAChC,IAAA,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,KAAK,EAAE;AACpD,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;AACD,IAAA,OAAO,KAAK,CAAC;AACf;;;;"}
1
+ {"version":3,"file":"outcomes.js","sources":["../../../src/utils/outcomes.ts"],"sourcesContent":["import { OperationOutcome, OperationOutcomeIssue } from '@medplum/fhirtypes';\n\nexport function getErrorsForInput(\n outcome: OperationOutcome | undefined,\n expression: string | undefined\n): string | undefined {\n return outcome?.issue\n ?.filter((issue) => isExpressionMatch(issue.expression?.[0], expression))\n ?.map((issue) => issue.details?.text)\n ?.join('\\n');\n}\n\nexport function getIssuesForExpression(\n outcome: OperationOutcome | undefined,\n expression: string | undefined\n): OperationOutcomeIssue[] | undefined {\n return outcome?.issue?.filter((issue) => isExpressionMatch(issue.expression?.[0], expression));\n}\n\nfunction isExpressionMatch(expr1: string | undefined, expr2: string | undefined): boolean {\n // Expression can be either \"fieldName\" or \"resourceType.fieldName\"\n if (expr1 === expr2) {\n return true;\n }\n if (!expr1 || !expr2) {\n return false;\n }\n const dot1 = expr1.indexOf('.');\n if (dot1 >= 0 && expr1.substring(dot1 + 1) === expr2) {\n return true;\n }\n const dot2 = expr2.indexOf('.');\n if (dot2 >= 0 && expr2.substring(dot2 + 1) === expr1) {\n return true;\n }\n return false;\n}\n"],"names":[],"mappings":"AAEgB,SAAA,iBAAiB,CAC/B,OAAqC,EACrC,UAA8B,EAAA;;IAE9B,OAAO,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CACjB,MAAM,CAAC,CAAC,KAAK,KAAI,EAAA,IAAA,EAAA,CAAA,CAAC,OAAA,iBAAiB,CAAC,CAAA,EAAA,GAAA,KAAK,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA,EAAA,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CACvE,GAAG,CAAC,CAAC,KAAK,KAAK,EAAA,IAAA,EAAA,CAAA,CAAA,OAAA,CAAA,EAAA,GAAA,KAAK,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,CAAA,EAAA,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CACnC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjB,CAAC;AAEe,SAAA,sBAAsB,CACpC,OAAqC,EACrC,UAA8B,EAAA;;AAE9B,IAAA,OAAO,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,CAAC,CAAC,KAAK,KAAI,EAAA,IAAA,EAAA,CAAA,CAAC,OAAA,iBAAiB,CAAC,CAAA,EAAA,GAAA,KAAK,CAAC,UAAU,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA,EAAA,CAAC,CAAC;AACjG,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAyB,EAAE,KAAyB,EAAA;;IAE7E,IAAI,KAAK,KAAK,KAAK,EAAE;AACnB,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;AACD,IAAA,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE;AACpB,QAAA,OAAO,KAAK,CAAC;AACd,KAAA;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAChC,IAAA,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,KAAK,EAAE;AACpD,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAChC,IAAA,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,KAAK,EAAE;AACpD,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;AACD,IAAA,OAAO,KAAK,CAAC;AACf;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@medplum/react",
3
- "version": "0.9.38",
3
+ "version": "0.10.1",
4
4
  "description": "Medplum React Component Library",
5
5
  "author": "Medplum <hello@medplum.com>",
6
6
  "license": "Apache-2.0",
@@ -19,36 +19,44 @@
19
19
  "storybook": "build-storybook"
20
20
  },
21
21
  "devDependencies": {
22
- "@medplum/core": "0.9.38",
23
- "@medplum/fhirtypes": "0.9.38",
24
- "@medplum/mock": "0.9.38",
25
- "@storybook/addon-actions": "6.5.10",
26
- "@storybook/addon-essentials": "6.5.10",
27
- "@storybook/addon-links": "6.5.10",
28
- "@storybook/builder-webpack5": "6.5.10",
29
- "@storybook/manager-webpack5": "6.5.10",
30
- "@storybook/react": "6.5.10",
31
- "@testing-library/dom": "8.17.1",
22
+ "@emotion/react": "11.10.4",
23
+ "@mantine/core": "5.5.0",
24
+ "@mantine/hooks": "5.5.0",
25
+ "@medplum/core": "0.10.1",
26
+ "@medplum/fhirtypes": "0.10.1",
27
+ "@medplum/mock": "0.10.1",
28
+ "@tabler/icons": "1.101.0",
29
+ "@storybook/addon-actions": "6.5.12",
30
+ "@storybook/addon-essentials": "6.5.12",
31
+ "@storybook/addon-links": "6.5.12",
32
+ "@storybook/builder-webpack5": "6.5.12",
33
+ "@storybook/manager-webpack5": "6.5.12",
34
+ "@storybook/react": "6.5.12",
35
+ "@testing-library/dom": "8.18.1",
32
36
  "@testing-library/jest-dom": "5.16.5",
33
37
  "@testing-library/react": "13.4.0",
34
- "@types/jest": "29.0.0",
35
- "@types/node": "18.7.15",
36
- "@types/react": "18.0.18",
38
+ "@types/jest": "29.1.1",
39
+ "@types/node": "18.7.23",
40
+ "@types/react": "18.0.21",
37
41
  "@types/react-dom": "18.0.6",
38
42
  "@types/react-router-dom": "5.3.3",
39
43
  "dotenv-webpack": "8.0.1",
40
44
  "identity-obj-proxy": "3.0.0",
41
- "jest": "29.0.2",
42
- "jest-each": "29.0.2",
45
+ "jest": "29.1.2",
46
+ "jest-each": "29.1.2",
43
47
  "html-webpack-plugin": "5.5.0",
44
48
  "react": "18.2.0",
45
49
  "react-dom": "18.2.0",
46
- "react-router-dom": "6.3.0",
50
+ "react-router-dom": "6.4.1",
47
51
  "rimraf": "3.0.2",
48
- "typescript": "4.8.2"
52
+ "typescript": "4.8.4"
49
53
  },
50
54
  "peerDependencies": {
51
- "@medplum/core": "0.9.38",
55
+ "@emotion/react": "^11.10.4",
56
+ "@mantine/core": "^5.4.0",
57
+ "@mantine/hooks": "^5.4.0",
58
+ "@medplum/core": "0.10.1",
59
+ "@tabler/icons": "^1.100.0",
52
60
  "react": "^17.0.2 || ^18.0.0",
53
61
  "react-dom": "^17.0.2 || ^18.0.0",
54
62
  "react-router-dom": "^6.2.2"
@@ -1,20 +0,0 @@
1
- /// <reference types="react" />
2
- import './Autocomplete.css';
3
- export interface AutocompleteProps<T> {
4
- name: string;
5
- multiple?: boolean;
6
- autofocus?: boolean;
7
- defaultValue?: T[];
8
- className?: string;
9
- placeholder?: string;
10
- loadOnFocus?: boolean;
11
- loadOptions: (input: string, signal: AbortSignal) => Promise<T[]>;
12
- buildUnstructured?: (input: string) => T;
13
- getId: (item: T) => string;
14
- getIcon?: (item: T) => JSX.Element;
15
- getDisplay: (item: T) => JSX.Element;
16
- getHelpText?: (item: T) => string | undefined;
17
- onChange?: (values: T[]) => void;
18
- onCreateNew?: () => void;
19
- }
20
- export declare function Autocomplete<T>(props: AutocompleteProps<T>): JSX.Element;
@@ -1,12 +0,0 @@
1
- /// <reference types="react" />
2
- import { Reference, Resource } from '@medplum/fhirtypes';
3
- import './Avatar.css';
4
- export interface AvatarProps {
5
- size?: 'xsmall' | 'small' | 'medium' | 'large';
6
- value?: Reference | Resource;
7
- src?: string;
8
- alt?: string;
9
- color?: string;
10
- link?: boolean;
11
- }
12
- export declare function Avatar(props: AvatarProps): JSX.Element;
@@ -1,15 +0,0 @@
1
- import React from 'react';
2
- import './Button.css';
3
- export interface ButtonProps {
4
- type?: 'button' | 'submit';
5
- style?: React.CSSProperties;
6
- primary?: boolean;
7
- danger?: boolean;
8
- borderless?: boolean;
9
- size?: 'small' | 'medium' | 'large';
10
- onClick?: (e: React.MouseEvent) => void;
11
- children: React.ReactNode;
12
- label?: string;
13
- testid?: string;
14
- }
15
- export declare function Button(props: ButtonProps): JSX.Element;
@@ -1,12 +0,0 @@
1
- import { RefObject } from 'react';
2
- import './Checkbox.css';
3
- export interface CheckboxProps {
4
- name?: string;
5
- defaultValue?: boolean | number;
6
- required?: boolean;
7
- inputRef?: RefObject<HTMLInputElement>;
8
- testid?: string;
9
- disabled?: boolean;
10
- onChange?: (newValue: boolean) => void;
11
- }
12
- export declare function Checkbox(props: CheckboxProps): JSX.Element;
@@ -1,10 +0,0 @@
1
- import React from 'react';
2
- import './Dialog.css';
3
- export interface DialogProps {
4
- visible: boolean;
5
- title: string;
6
- children?: React.ReactNode;
7
- onOk: () => void;
8
- onCancel: () => void;
9
- }
10
- export declare function Dialog(props: DialogProps): JSX.Element | null;
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- import './FooterLinks.css';
3
- export interface FooterLinksProps {
4
- children?: React.ReactNode;
5
- }
6
- export declare function FooterLinks(props: FooterLinksProps): JSX.Element;
@@ -1,12 +0,0 @@
1
- /// <reference types="react" />
2
- import { UserConfiguration } from '@medplum/fhirtypes';
3
- import './Header.css';
4
- export interface HeaderProps {
5
- readonly title?: string;
6
- readonly bgColor?: string;
7
- readonly onLogo?: () => void;
8
- readonly onProfile?: () => void;
9
- readonly onSignOut?: () => void;
10
- readonly config?: UserConfiguration;
11
- }
12
- export declare function Header(props: HeaderProps): JSX.Element;
@@ -1,10 +0,0 @@
1
- /// <reference types="react" />
2
- import { Patient, ServiceRequest } from '@medplum/fhirtypes';
3
- export declare type HeaderSearchTypes = Patient | ServiceRequest;
4
- export interface HeaderSearchInputProps {
5
- readonly name: string;
6
- readonly className?: string;
7
- readonly placeholder?: string;
8
- readonly onChange: (value: HeaderSearchTypes) => void;
9
- }
10
- export declare function HeaderSearchInput(props: HeaderSearchInputProps): JSX.Element;
@@ -1,22 +0,0 @@
1
- import { OperationOutcome } from '@medplum/fhirtypes';
2
- import React, { RefObject } from 'react';
3
- import './Input.css';
4
- export interface InputProps {
5
- name?: string;
6
- type?: string;
7
- size?: number;
8
- step?: number | 'any';
9
- style?: React.CSSProperties;
10
- defaultValue?: string | number;
11
- required?: boolean;
12
- autoCapitalize?: string;
13
- autoComplete?: string;
14
- autoFocus?: boolean;
15
- inputRef?: RefObject<HTMLInputElement>;
16
- outcome?: OperationOutcome;
17
- placeholder?: string;
18
- testid?: string;
19
- disabled?: boolean;
20
- onChange?: (newValue: string) => void;
21
- }
22
- export declare function Input(props: InputProps): JSX.Element;
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- import './InputRow.css';
3
- export interface InputRowProps {
4
- justifyContent?: string;
5
- children: React.ReactNode;
6
- }
7
- export declare function InputRow(props: InputRowProps): JSX.Element;
@@ -1,3 +0,0 @@
1
- /// <reference types="react" />
2
- import './Loading.css';
3
- export declare function Loading(): JSX.Element;
@@ -1,9 +0,0 @@
1
- import React from 'react';
2
- import './MenuItem.css';
3
- interface MenuItemProps {
4
- onClick: () => void;
5
- label?: string;
6
- children: React.ReactNode;
7
- }
8
- export declare function MenuItem(props: MenuItemProps): JSX.Element;
9
- export {};
@@ -1,3 +0,0 @@
1
- /// <reference types="react" />
2
- import './MenuSeparator.css';
3
- export declare function MenuSeparator(): JSX.Element;
@@ -1,14 +0,0 @@
1
- import React from 'react';
2
- import './Popup.css';
3
- interface PopupProps {
4
- visible: boolean;
5
- anchor?: DOMRectReadOnly;
6
- modal?: boolean;
7
- autoClose?: boolean;
8
- onClose: () => void;
9
- activeClassName?: string;
10
- inactiveClassName?: string;
11
- children?: React.ReactNode;
12
- }
13
- export declare function Popup(props: PopupProps): JSX.Element;
14
- export {};
@@ -1,9 +0,0 @@
1
- import React from 'react';
2
- import './Scrollable.css';
3
- export interface ScrollableProps {
4
- readonly role?: string;
5
- readonly className?: string;
6
- readonly height?: number;
7
- readonly children: React.ReactNode;
8
- }
9
- export declare function Scrollable(props: ScrollableProps): JSX.Element;
@@ -1,16 +0,0 @@
1
- import { OperationOutcome } from '@medplum/fhirtypes';
2
- import React, { RefObject } from 'react';
3
- import './Select.css';
4
- export interface SelectProps {
5
- name?: string;
6
- defaultValue?: string;
7
- required?: boolean;
8
- autoFocus?: boolean;
9
- inputRef?: RefObject<HTMLSelectElement>;
10
- children: React.ReactNode;
11
- outcome?: OperationOutcome;
12
- testid?: string;
13
- style?: React.CSSProperties;
14
- onChange?: (newValue: string) => void;
15
- }
16
- export declare function Select(props: SelectProps): JSX.Element;
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- import './SubMenu.css';
3
- export interface SubMenuProps {
4
- title: string;
5
- children: React.ReactNode;
6
- }
7
- export declare function SubMenu(props: SubMenuProps): JSX.Element;
package/dist/cjs/Tab.d.ts DELETED
@@ -1,12 +0,0 @@
1
- /// <reference types="react" />
2
- import './Tab.css';
3
- export interface TabClickHandler {
4
- (name: string, button: number): void;
5
- }
6
- export interface TabProps {
7
- name: string;
8
- label: string;
9
- selected?: boolean;
10
- onClick?: TabClickHandler;
11
- }
12
- export declare function Tab(props: TabProps): JSX.Element;
@@ -1,10 +0,0 @@
1
- import React from 'react';
2
- import { TabClickHandler } from './Tab';
3
- import './Surface.css';
4
- import './TabList.css';
5
- export interface TabListProps {
6
- value?: string;
7
- onChange: TabClickHandler;
8
- children: React.ReactNode;
9
- }
10
- export declare function TabList(props: TabListProps): JSX.Element;
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- export interface TabPanelProps {
3
- name: string;
4
- children: React.ReactNode;
5
- }
6
- export declare function TabPanel(props: TabPanelProps): JSX.Element;
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- export interface TabSwitchProps {
3
- value?: string;
4
- children: React.ReactNode;
5
- }
6
- export declare function TabSwitch(props: TabSwitchProps): JSX.Element;
@@ -1,18 +0,0 @@
1
- import { OperationOutcome } from '@medplum/fhirtypes';
2
- import React, { RefObject } from 'react';
3
- import './TextArea.css';
4
- export interface TextAreaProps {
5
- name?: string;
6
- defaultValue?: string;
7
- required?: boolean;
8
- autoComplete?: string;
9
- autoFocus?: boolean;
10
- inputRef?: RefObject<HTMLTextAreaElement>;
11
- outcome?: OperationOutcome;
12
- placeholder?: string;
13
- testid?: string;
14
- monospace?: boolean;
15
- style?: React.CSSProperties;
16
- onChange?: (newValue: string) => void;
17
- }
18
- export declare function TextArea(props: TextAreaProps): JSX.Element;
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- import './TitleBar.css';
3
- export interface TitleBarProps {
4
- children?: React.ReactNode;
5
- }
6
- export declare function TitleBar(props: TitleBarProps): JSX.Element;
@@ -1,7 +0,0 @@
1
- import { Attachment } from '@medplum/fhirtypes';
2
- import React from 'react';
3
- export interface UploadButtonProps {
4
- onUpload: (attachment: Attachment) => void;
5
- children?: React.ReactNode;
6
- }
7
- export declare function UploadButton(props: UploadButtonProps): JSX.Element;
@@ -1,9 +0,0 @@
1
- /// <reference types="react" />
2
- import { Meta } from '@storybook/react';
3
- declare const _default: Meta<import("@storybook/react").Args>;
4
- export default _default;
5
- export declare const Single: () => JSX.Element;
6
- export declare const Multiple: () => JSX.Element;
7
- export declare const Prefilled: () => JSX.Element;
8
- export declare const HelpText: () => JSX.Element;
9
- export declare const LoadOnFocus: () => JSX.Element;
@@ -1,9 +0,0 @@
1
- /// <reference types="react" />
2
- import { Meta } from '@storybook/react';
3
- declare const _default: Meta<import("@storybook/react").Args>;
4
- export default _default;
5
- export declare const Primary: () => JSX.Element;
6
- export declare const Secondary: () => JSX.Element;
7
- export declare const Danger: () => JSX.Element;
8
- export declare const Large: () => JSX.Element;
9
- export declare const Small: () => JSX.Element;
@@ -1,8 +0,0 @@
1
- /// <reference types="react" />
2
- import { Meta } from '@storybook/react';
3
- import { HeaderProps } from '../Header';
4
- declare const _default: Meta<import("@storybook/react").Args>;
5
- export default _default;
6
- export declare const Basic: (args: HeaderProps) => JSX.Element;
7
- export declare const CustomColor: (args: HeaderProps) => JSX.Element;
8
- export declare const Search: (args: HeaderProps) => JSX.Element;
@@ -1,6 +0,0 @@
1
- /// <reference types="react" />
2
- import { Meta } from '@storybook/react';
3
- declare const _default: Meta<import("@storybook/react").Args>;
4
- export default _default;
5
- export declare const Basic: () => JSX.Element;
6
- export declare const LongStrings: () => JSX.Element;
@@ -1,20 +0,0 @@
1
- /// <reference types="react" />
2
- import './Autocomplete.css';
3
- export interface AutocompleteProps<T> {
4
- name: string;
5
- multiple?: boolean;
6
- autofocus?: boolean;
7
- defaultValue?: T[];
8
- className?: string;
9
- placeholder?: string;
10
- loadOnFocus?: boolean;
11
- loadOptions: (input: string, signal: AbortSignal) => Promise<T[]>;
12
- buildUnstructured?: (input: string) => T;
13
- getId: (item: T) => string;
14
- getIcon?: (item: T) => JSX.Element;
15
- getDisplay: (item: T) => JSX.Element;
16
- getHelpText?: (item: T) => string | undefined;
17
- onChange?: (values: T[]) => void;
18
- onCreateNew?: () => void;
19
- }
20
- export declare function Autocomplete<T>(props: AutocompleteProps<T>): JSX.Element;