@medplum/react 0.9.27 → 0.9.30

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 (250) hide show
  1. package/dist/cjs/AddressDisplay.d.ts +6 -0
  2. package/dist/cjs/AddressInput.d.ts +8 -0
  3. package/dist/cjs/AnnotationInput.d.ts +8 -0
  4. package/dist/cjs/AttachmentArrayDisplay.d.ts +7 -0
  5. package/dist/cjs/AttachmentArrayInput.d.ts +9 -0
  6. package/dist/cjs/AttachmentDisplay.d.ts +7 -0
  7. package/dist/cjs/AttachmentInput.d.ts +9 -0
  8. package/dist/cjs/Autocomplete.d.ts +20 -0
  9. package/dist/cjs/Avatar.d.ts +12 -0
  10. package/dist/cjs/BackboneElementDisplay.d.ts +9 -0
  11. package/dist/cjs/BackboneElementInput.d.ts +9 -0
  12. package/dist/cjs/Button.d.ts +15 -0
  13. package/dist/cjs/CalendarInput.d.ts +16 -0
  14. package/dist/cjs/Checkbox.d.ts +12 -0
  15. package/dist/cjs/CheckboxFormSection.d.ts +9 -0
  16. package/dist/cjs/CodeInput.d.ts +9 -0
  17. package/dist/cjs/CodeableConceptDisplay.d.ts +6 -0
  18. package/dist/cjs/CodeableConceptInput.d.ts +9 -0
  19. package/dist/cjs/CodingDisplay.d.ts +6 -0
  20. package/dist/cjs/CodingInput.d.ts +9 -0
  21. package/dist/cjs/ContactDetailDisplay.d.ts +6 -0
  22. package/dist/cjs/ContactDetailInput.d.ts +8 -0
  23. package/dist/cjs/ContactPointDisplay.d.ts +6 -0
  24. package/dist/cjs/ContactPointInput.d.ts +8 -0
  25. package/dist/cjs/DateTimeInput.d.ts +23 -0
  26. package/dist/cjs/DefaultResourceTimeline.d.ts +6 -0
  27. package/dist/cjs/DescriptionList.d.ts +12 -0
  28. package/dist/cjs/DiagnosticReportDisplay.d.ts +12 -0
  29. package/dist/cjs/Dialog.d.ts +10 -0
  30. package/dist/cjs/Document.d.ts +7 -0
  31. package/dist/cjs/EncounterTimeline.d.ts +6 -0
  32. package/dist/cjs/ErrorBoundary.d.ts +18 -0
  33. package/dist/cjs/ExtensionInput.d.ts +8 -0
  34. package/dist/cjs/FhirPathDisplay.d.ts +9 -0
  35. package/dist/cjs/FhirPathTable.d.ts +29 -0
  36. package/dist/cjs/FooterLinks.d.ts +6 -0
  37. package/dist/cjs/Form.d.ts +8 -0
  38. package/dist/cjs/FormSection.d.ts +11 -0
  39. package/dist/cjs/FormUtils.d.ts +5 -0
  40. package/dist/cjs/GoogleButton.d.ts +8 -0
  41. package/dist/cjs/Header.d.ts +12 -0
  42. package/dist/cjs/HeaderSearchInput.d.ts +10 -0
  43. package/dist/cjs/HumanNameDisplay.d.ts +8 -0
  44. package/dist/cjs/HumanNameInput.d.ts +8 -0
  45. package/dist/cjs/IdentifierDisplay.d.ts +6 -0
  46. package/dist/cjs/IdentifierInput.d.ts +8 -0
  47. package/dist/cjs/Input.d.ts +22 -0
  48. package/dist/cjs/InputRow.d.ts +7 -0
  49. package/dist/cjs/Loading.d.ts +3 -0
  50. package/dist/cjs/Logo.d.ts +6 -0
  51. package/dist/cjs/MedplumLink.d.ts +13 -0
  52. package/dist/cjs/MedplumProvider.d.ts +34 -0
  53. package/dist/cjs/MenuItem.d.ts +9 -0
  54. package/dist/cjs/MenuSeparator.d.ts +3 -0
  55. package/dist/cjs/PatientTimeline.d.ts +6 -0
  56. package/dist/cjs/PeriodInput.d.ts +8 -0
  57. package/dist/cjs/PlanDefinitionBuilder.d.ts +7 -0
  58. package/dist/cjs/Popup.d.ts +14 -0
  59. package/dist/cjs/QuantityDisplay.d.ts +7 -0
  60. package/dist/cjs/QuantityInput.d.ts +8 -0
  61. package/dist/cjs/QuestionnaireBuilder.d.ts +8 -0
  62. package/dist/cjs/QuestionnaireForm.d.ts +14 -0
  63. package/dist/cjs/QuestionnaireUtils.d.ts +30 -0
  64. package/dist/cjs/RangeDisplay.d.ts +7 -0
  65. package/dist/cjs/RangeInput.d.ts +14 -0
  66. package/dist/cjs/RatioDisplay.d.ts +6 -0
  67. package/dist/cjs/RatioInput.d.ts +14 -0
  68. package/dist/cjs/ReferenceDisplay.d.ts +7 -0
  69. package/dist/cjs/ReferenceInput.d.ts +9 -0
  70. package/dist/cjs/RegisterForm.d.ts +18 -0
  71. package/dist/cjs/RequestGroupDisplay.d.ts +9 -0
  72. package/dist/cjs/ResourceArrayDisplay.d.ts +11 -0
  73. package/dist/cjs/ResourceArrayInput.d.ts +11 -0
  74. package/dist/cjs/ResourceBadge.d.ts +9 -0
  75. package/dist/cjs/ResourceBlame.d.ts +10 -0
  76. package/dist/cjs/ResourceDiff.d.ts +9 -0
  77. package/dist/cjs/ResourceDiffTable.d.ts +9 -0
  78. package/dist/cjs/ResourceForm.d.ts +10 -0
  79. package/dist/cjs/ResourceHistoryTable.d.ts +9 -0
  80. package/dist/cjs/ResourceInput.d.ts +12 -0
  81. package/dist/cjs/ResourceName.d.ts +7 -0
  82. package/dist/cjs/ResourcePropertyDisplay.d.ts +24 -0
  83. package/dist/cjs/ResourcePropertyInput.d.ts +21 -0
  84. package/dist/cjs/ResourceTable.d.ts +7 -0
  85. package/dist/cjs/ResourceTimeline.d.ts +11 -0
  86. package/dist/cjs/Scheduler.d.ts +7 -0
  87. package/dist/cjs/Scrollable.d.ts +9 -0
  88. package/dist/cjs/SearchControl.d.ts +40 -0
  89. package/dist/cjs/SearchControlField.d.ts +41 -0
  90. package/dist/cjs/SearchFieldEditor.d.ts +11 -0
  91. package/dist/cjs/SearchFilterEditor.d.ts +11 -0
  92. package/dist/cjs/SearchFilterValueDialog.d.ts +15 -0
  93. package/dist/cjs/SearchFilterValueDisplay.d.ts +7 -0
  94. package/dist/cjs/SearchFilterValueInput.d.ts +12 -0
  95. package/dist/cjs/SearchPopupMenu.d.ts +15 -0
  96. package/dist/cjs/SearchUtils.d.ts +174 -0
  97. package/dist/cjs/Select.d.ts +16 -0
  98. package/dist/cjs/ServiceRequestTimeline.d.ts +6 -0
  99. package/dist/cjs/SignInForm.d.ts +17 -0
  100. package/dist/cjs/StatusBadge.d.ts +6 -0
  101. package/dist/cjs/SubMenu.d.ts +7 -0
  102. package/dist/cjs/Tab.d.ts +12 -0
  103. package/dist/cjs/TabList.d.ts +10 -0
  104. package/dist/cjs/TabPanel.d.ts +6 -0
  105. package/dist/cjs/TabSwitch.d.ts +6 -0
  106. package/dist/cjs/TextArea.d.ts +18 -0
  107. package/dist/cjs/Timeline.d.ts +17 -0
  108. package/dist/cjs/TimingInput.d.ts +8 -0
  109. package/dist/cjs/TitleBar.d.ts +6 -0
  110. package/dist/cjs/UploadButton.d.ts +7 -0
  111. package/dist/cjs/constants.d.ts +1 -0
  112. package/dist/cjs/index.d.ts +87 -0
  113. package/dist/cjs/index.js +387 -196
  114. package/dist/cjs/index.js.map +1 -1
  115. package/dist/cjs/index.min.js +1 -1
  116. package/dist/cjs/index.min.js.map +1 -1
  117. package/dist/cjs/stories/AddressInput.stories.d.ts +6 -0
  118. package/dist/cjs/stories/AttachmentArrayInput.stories.d.ts +6 -0
  119. package/dist/cjs/stories/AttachmentInput.stories.d.ts +6 -0
  120. package/dist/cjs/stories/Autocomplete.stories.d.ts +9 -0
  121. package/dist/cjs/stories/Avatar.stories.d.ts +10 -0
  122. package/dist/cjs/stories/Button.stories.d.ts +9 -0
  123. package/dist/cjs/stories/CodeableConceptDisplay.stories.d.ts +8 -0
  124. package/dist/cjs/stories/DiagnosticReportDisplay.stories.d.ts +5 -0
  125. package/dist/cjs/stories/Dialog.stories.d.ts +5 -0
  126. package/dist/cjs/stories/EncounterTimeline.stories.d.ts +5 -0
  127. package/dist/cjs/stories/FhirPathDisplay.stories.d.ts +7 -0
  128. package/dist/cjs/stories/FormSection.stories.d.ts +6 -0
  129. package/dist/cjs/stories/Header.stories.d.ts +8 -0
  130. package/dist/cjs/stories/Input.stories.d.ts +6 -0
  131. package/dist/cjs/stories/Loading.stories.d.ts +5 -0
  132. package/dist/cjs/stories/Logo.stories.d.ts +5 -0
  133. package/dist/cjs/stories/PatientTimeline.stories.d.ts +5 -0
  134. package/dist/cjs/stories/PlanDefinitionBuilder.stories.d.ts +5 -0
  135. package/dist/cjs/stories/QuestionnaireBuilder.stories.d.ts +7 -0
  136. package/dist/cjs/stories/QuestionnaireForm.stories.d.ts +11 -0
  137. package/dist/cjs/stories/ReferenceInput.stories.d.ts +6 -0
  138. package/dist/cjs/stories/RegisterForm.stories.d.ts +7 -0
  139. package/dist/cjs/stories/RequestGroupDisplay.stories.d.ts +5 -0
  140. package/dist/cjs/stories/ResourceBlame.stories.d.ts +5 -0
  141. package/dist/cjs/stories/ResourceForm.stories.d.ts +12 -0
  142. package/dist/cjs/stories/ResourceHistoryTable.stories.d.ts +5 -0
  143. package/dist/cjs/stories/ResourceTable.stories.d.ts +7 -0
  144. package/dist/cjs/stories/Scheduler.stories.d.ts +5 -0
  145. package/dist/cjs/stories/SearchControl.stories.d.ts +13 -0
  146. package/dist/cjs/stories/Select.stories.d.ts +6 -0
  147. package/dist/cjs/stories/SignInForm.stories.d.ts +8 -0
  148. package/dist/cjs/stories/StatusBadge.stories.d.ts +5 -0
  149. package/dist/cjs/stories/Tabs.stories.d.ts +6 -0
  150. package/dist/cjs/stories/Timeline.stories.d.ts +5 -0
  151. package/dist/cjs/stories/TimingInput.stories.d.ts +6 -0
  152. package/dist/cjs/stories/UploadButton.stories.d.ts +6 -0
  153. package/dist/cjs/styles.css +135 -130
  154. package/dist/cjs/test.setup.d.ts +1 -0
  155. package/dist/cjs/useResource.d.ts +8 -0
  156. package/dist/cjs/utils/blame.d.ts +8 -0
  157. package/dist/cjs/utils/date.d.ts +6 -0
  158. package/dist/cjs/utils/diff.d.ts +16 -0
  159. package/dist/cjs/utils/dom.d.ts +15 -0
  160. package/dist/cjs/utils/outcomes.d.ts +2 -0
  161. package/dist/cjs/utils/recaptcha.d.ts +12 -0
  162. package/dist/cjs/utils.d.ts +5 -0
  163. package/dist/esm/Autocomplete.d.ts +1 -0
  164. package/dist/esm/Autocomplete.js +5 -8
  165. package/dist/esm/Autocomplete.js.map +1 -1
  166. package/dist/esm/CalendarInput.d.ts +1 -0
  167. package/dist/esm/CalendarInput.js +6 -5
  168. package/dist/esm/CalendarInput.js.map +1 -1
  169. package/dist/esm/CodeInput.js +1 -1
  170. package/dist/esm/CodeInput.js.map +1 -1
  171. package/dist/esm/CodeableConceptDisplay.js +4 -2
  172. package/dist/esm/CodeableConceptDisplay.js.map +1 -1
  173. package/dist/esm/CodeableConceptInput.js +1 -1
  174. package/dist/esm/CodeableConceptInput.js.map +1 -1
  175. package/dist/esm/CodingInput.js +1 -1
  176. package/dist/esm/CodingInput.js.map +1 -1
  177. package/dist/esm/DateTimeInput.js +1 -3
  178. package/dist/esm/DateTimeInput.js.map +1 -1
  179. package/dist/esm/DiagnosticReportDisplay.js +2 -4
  180. package/dist/esm/DiagnosticReportDisplay.js.map +1 -1
  181. package/dist/esm/FhirPathTable.js +5 -2
  182. package/dist/esm/FhirPathTable.js.map +1 -1
  183. package/dist/esm/GoogleButton.js +2 -2
  184. package/dist/esm/GoogleButton.js.map +1 -1
  185. package/dist/esm/Header.js +7 -3
  186. package/dist/esm/Header.js.map +1 -1
  187. package/dist/esm/PlanDefinitionBuilder.js +108 -39
  188. package/dist/esm/PlanDefinitionBuilder.js.map +1 -1
  189. package/dist/esm/QuestionnaireBuilder.js +1 -1
  190. package/dist/esm/QuestionnaireBuilder.js.map +1 -1
  191. package/dist/esm/QuestionnaireForm.js +5 -1
  192. package/dist/esm/QuestionnaireForm.js.map +1 -1
  193. package/dist/esm/RegisterForm.js +2 -2
  194. package/dist/esm/RegisterForm.js.map +1 -1
  195. package/dist/esm/RequestGroupDisplay.js +3 -4
  196. package/dist/esm/RequestGroupDisplay.js.map +1 -1
  197. package/dist/esm/ResourceArrayInput.js +1 -2
  198. package/dist/esm/ResourceArrayInput.js.map +1 -1
  199. package/dist/esm/ResourceBlame.js +1 -1
  200. package/dist/esm/ResourceBlame.js.map +1 -1
  201. package/dist/esm/ResourceDiffTable.js +1 -1
  202. package/dist/esm/ResourceDiffTable.js.map +1 -1
  203. package/dist/esm/ResourceForm.js +1 -1
  204. package/dist/esm/ResourceForm.js.map +1 -1
  205. package/dist/esm/ResourceHistoryTable.js +6 -4
  206. package/dist/esm/ResourceHistoryTable.js.map +1 -1
  207. package/dist/esm/ResourceInput.d.ts +1 -0
  208. package/dist/esm/ResourceInput.js +4 -3
  209. package/dist/esm/ResourceInput.js.map +1 -1
  210. package/dist/esm/ResourcePropertyDisplay.js +5 -5
  211. package/dist/esm/ResourcePropertyDisplay.js.map +1 -1
  212. package/dist/esm/ResourcePropertyInput.js +3 -0
  213. package/dist/esm/ResourcePropertyInput.js.map +1 -1
  214. package/dist/esm/ResourceTable.js +1 -1
  215. package/dist/esm/ResourceTable.js.map +1 -1
  216. package/dist/esm/ResourceTimeline.js +13 -7
  217. package/dist/esm/ResourceTimeline.js.map +1 -1
  218. package/dist/esm/Scheduler.js +13 -6
  219. package/dist/esm/Scheduler.js.map +1 -1
  220. package/dist/esm/SearchControl.js +5 -2
  221. package/dist/esm/SearchControl.js.map +1 -1
  222. package/dist/esm/SearchFilterValueDisplay.js +2 -2
  223. package/dist/esm/SearchFilterValueDisplay.js.map +1 -1
  224. package/dist/esm/SearchUtils.js +2 -3
  225. package/dist/esm/SearchUtils.js.map +1 -1
  226. package/dist/esm/SignInForm.js +39 -2
  227. package/dist/esm/SignInForm.js.map +1 -1
  228. package/dist/esm/Timeline.js +2 -4
  229. package/dist/esm/Timeline.js.map +1 -1
  230. package/dist/esm/TimingInput.d.ts +8 -0
  231. package/dist/esm/TimingInput.js +90 -0
  232. package/dist/esm/TimingInput.js.map +1 -0
  233. package/dist/esm/index.d.ts +1 -1
  234. package/dist/esm/index.js +1 -1
  235. package/dist/esm/index.min.js +1 -1
  236. package/dist/esm/index.min.js.map +1 -1
  237. package/dist/esm/stories/Autocomplete.stories.d.ts +1 -0
  238. package/dist/esm/stories/CodeableConceptDisplay.stories.d.ts +8 -0
  239. package/dist/esm/stories/TimingInput.stories.d.ts +6 -0
  240. package/dist/esm/styles.css +135 -130
  241. package/dist/esm/utils/recaptcha.js +10 -4
  242. package/dist/esm/utils/recaptcha.js.map +1 -1
  243. package/package.json +6 -6
  244. package/stats.html +4034 -0
  245. package/dist/esm/DateTimeDisplay.d.ts +0 -5
  246. package/dist/esm/DateTimeDisplay.js +0 -11
  247. package/dist/esm/DateTimeDisplay.js.map +0 -1
  248. package/dist/esm/PeriodDisplay.d.ts +0 -6
  249. package/dist/esm/PeriodDisplay.js +0 -16
  250. package/dist/esm/PeriodDisplay.js.map +0 -1
@@ -1,8 +1,7 @@
1
- import { getReferenceString } from '@medplum/core';
1
+ import { formatDateTime, getReferenceString } from '@medplum/core';
2
2
  import React, { useState } from 'react';
3
3
  import { Avatar } from './Avatar.js';
4
4
  import { Button } from './Button.js';
5
- import { DateTimeDisplay } from './DateTimeDisplay.js';
6
5
  import { ErrorBoundary } from './ErrorBoundary.js';
7
6
  import { MedplumLink } from './MedplumLink.js';
8
7
  import { Popup } from './Popup.js';
@@ -23,8 +22,7 @@ function TimelineItem(props) {
23
22
  React.createElement("div", { className: "medplum-timeline-item-title" },
24
23
  React.createElement(ResourceName, { value: author, link: true }),
25
24
  React.createElement("div", { className: "medplum-timeline-item-subtitle" },
26
- React.createElement(MedplumLink, { to: props.resource },
27
- React.createElement(DateTimeDisplay, { value: (_c = props.resource.meta) === null || _c === void 0 ? void 0 : _c.lastUpdated })),
25
+ React.createElement(MedplumLink, { to: props.resource }, formatDateTime((_c = props.resource.meta) === null || _c === void 0 ? void 0 : _c.lastUpdated)),
28
26
  React.createElement("span", null, "\u00B7"),
29
27
  React.createElement(MedplumLink, { to: props.resource }, props.resource.resourceType))),
30
28
  props.popupMenuItems && (React.createElement("div", { className: "medplum-timeline-item-actions" },
@@ -1 +1 @@
1
- {"version":3,"file":"Timeline.js","sources":["../../src/Timeline.tsx"],"sourcesContent":["import { getReferenceString } from '@medplum/core';\nimport { Reference, Resource } from '@medplum/fhirtypes';\nimport React, { useState } from 'react';\nimport { Avatar } from './Avatar';\nimport { Button } from './Button';\nimport { DateTimeDisplay } from './DateTimeDisplay';\nimport { ErrorBoundary } from './ErrorBoundary';\nimport { MedplumLink } from './MedplumLink';\nimport { Popup } from './Popup';\nimport { ResourceName } from './ResourceName';\nimport { killEvent } from './utils/dom';\nimport './Timeline.css';\n\nexport interface TimelineProps {\n children?: React.ReactNode;\n}\n\nexport function Timeline(props: TimelineProps): JSX.Element {\n return <main className=\"medplum-document medplum-timeline\">{props.children}</main>;\n}\n\nexport interface TimelineItemProps {\n resource: Resource;\n profile?: Reference;\n socialEnabled?: boolean;\n children?: React.ReactNode;\n padding?: boolean;\n className?: string;\n popupMenuItems?: React.ReactNode;\n}\n\nexport function TimelineItem(props: TimelineItemProps): JSX.Element {\n const [popupAnchor, setPopupAnchor] = useState<DOMRect | undefined>();\n const author = props.profile ?? props.resource.meta?.author;\n return (\n <article className={props.className || 'medplum-timeline-item'} data-testid=\"timeline-item\">\n <div className=\"medplum-timeline-item-header\">\n <div className=\"medplum-timeline-item-avatar\">\n <Avatar value={author} link={true} size=\"medium\" />\n </div>\n <div className=\"medplum-timeline-item-title\">\n <ResourceName value={author} link={true} />\n <div className=\"medplum-timeline-item-subtitle\">\n <MedplumLink to={props.resource}>\n <DateTimeDisplay value={props.resource.meta?.lastUpdated} />\n </MedplumLink>\n <span>&middot;</span>\n <MedplumLink to={props.resource}>{props.resource.resourceType}</MedplumLink>\n </div>\n </div>\n {props.popupMenuItems && (\n <div className=\"medplum-timeline-item-actions\">\n <a\n href=\"#\"\n aria-label={`Actions for ${getReferenceString(props.resource)}`}\n onClick={(e) => {\n killEvent(e);\n const el = e.currentTarget;\n const rect = el.getBoundingClientRect();\n setPopupAnchor(rect);\n }}\n >\n <svg fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <g transform=\"translate(-446 -350)\">\n <path d=\"M458 360a2 2 0 1 1-4 0 2 2 0 0 1 4 0m6 0a2 2 0 1 1-4 0 2 2 0 0 1 4 0m-12 0a2 2 0 1 1-4 0 2 2 0 0 1 4 0\"></path>\n </g>\n </svg>\n </a>\n </div>\n )}\n </div>\n <ErrorBoundary>\n {props.padding && <div style={{ padding: '2px 16px 16px 16px' }}>{props.children}</div>}\n {!props.padding && <>{props.children}</>}\n </ErrorBoundary>\n {props.socialEnabled && (\n <div className=\"medplum-timeline-item-footer\">\n <Button borderless={true}>Like</Button>\n <Button borderless={true}>Comment</Button>\n </div>\n )}\n {props.popupMenuItems && (\n <Popup visible={!!popupAnchor} anchor={popupAnchor} autoClose={true} onClose={() => setPopupAnchor(undefined)}>\n {props.popupMenuItems}\n </Popup>\n )}\n </article>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Timeline.js","sources":["../../src/Timeline.tsx"],"sourcesContent":["import { formatDateTime, getReferenceString } from '@medplum/core';\nimport { Reference, Resource } from '@medplum/fhirtypes';\nimport React, { useState } from 'react';\nimport { Avatar } from './Avatar';\nimport { Button } from './Button';\nimport { ErrorBoundary } from './ErrorBoundary';\nimport { MedplumLink } from './MedplumLink';\nimport { Popup } from './Popup';\nimport { ResourceName } from './ResourceName';\nimport './Timeline.css';\nimport { killEvent } from './utils/dom';\n\nexport interface TimelineProps {\n children?: React.ReactNode;\n}\n\nexport function Timeline(props: TimelineProps): JSX.Element {\n return <main className=\"medplum-document medplum-timeline\">{props.children}</main>;\n}\n\nexport interface TimelineItemProps {\n resource: Resource;\n profile?: Reference;\n socialEnabled?: boolean;\n children?: React.ReactNode;\n padding?: boolean;\n className?: string;\n popupMenuItems?: React.ReactNode;\n}\n\nexport function TimelineItem(props: TimelineItemProps): JSX.Element {\n const [popupAnchor, setPopupAnchor] = useState<DOMRect | undefined>();\n const author = props.profile ?? props.resource.meta?.author;\n return (\n <article className={props.className || 'medplum-timeline-item'} data-testid=\"timeline-item\">\n <div className=\"medplum-timeline-item-header\">\n <div className=\"medplum-timeline-item-avatar\">\n <Avatar value={author} link={true} size=\"medium\" />\n </div>\n <div className=\"medplum-timeline-item-title\">\n <ResourceName value={author} link={true} />\n <div className=\"medplum-timeline-item-subtitle\">\n <MedplumLink to={props.resource}>{formatDateTime(props.resource.meta?.lastUpdated)}</MedplumLink>\n <span>&middot;</span>\n <MedplumLink to={props.resource}>{props.resource.resourceType}</MedplumLink>\n </div>\n </div>\n {props.popupMenuItems && (\n <div className=\"medplum-timeline-item-actions\">\n <a\n href=\"#\"\n aria-label={`Actions for ${getReferenceString(props.resource)}`}\n onClick={(e) => {\n killEvent(e);\n const el = e.currentTarget;\n const rect = el.getBoundingClientRect();\n setPopupAnchor(rect);\n }}\n >\n <svg fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <g transform=\"translate(-446 -350)\">\n <path d=\"M458 360a2 2 0 1 1-4 0 2 2 0 0 1 4 0m6 0a2 2 0 1 1-4 0 2 2 0 0 1 4 0m-12 0a2 2 0 1 1-4 0 2 2 0 0 1 4 0\"></path>\n </g>\n </svg>\n </a>\n </div>\n )}\n </div>\n <ErrorBoundary>\n {props.padding && <div style={{ padding: '2px 16px 16px 16px' }}>{props.children}</div>}\n {!props.padding && <>{props.children}</>}\n </ErrorBoundary>\n {props.socialEnabled && (\n <div className=\"medplum-timeline-item-footer\">\n <Button borderless={true}>Like</Button>\n <Button borderless={true}>Comment</Button>\n </div>\n )}\n {props.popupMenuItems && (\n <Popup visible={!!popupAnchor} anchor={popupAnchor} autoClose={true} onClose={() => setPopupAnchor(undefined)}>\n {props.popupMenuItems}\n </Popup>\n )}\n </article>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import { Timing } from '@medplum/fhirtypes';
3
+ export interface TimingInputProps {
4
+ name: string;
5
+ defaultValue?: Timing;
6
+ onChange?: (newValue: Timing) => void;
7
+ }
8
+ export declare function TimingInput(props: TimingInputProps): JSX.Element;
@@ -0,0 +1,90 @@
1
+ import { formatTiming } from '@medplum/core';
2
+ import React, { useState, useRef } from 'react';
3
+ import { Button } from './Button.js';
4
+ import { Checkbox } from './Checkbox.js';
5
+ import { DateTimeInput } from './DateTimeInput.js';
6
+ import { Dialog } from './Dialog.js';
7
+ import { FormSection } from './FormSection.js';
8
+ import { Input } from './Input.js';
9
+ import { InputRow } from './InputRow.js';
10
+ import { Select } from './Select.js';
11
+
12
+ const daysOfWeek = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];
13
+ function TimingInput(props) {
14
+ const [value, setValue] = useState(props.defaultValue || {});
15
+ const [open, setOpen] = useState(false);
16
+ const valueRef = useRef();
17
+ valueRef.current = value;
18
+ return (React.createElement(React.Fragment, null,
19
+ React.createElement(InputRow, null,
20
+ React.createElement("span", null, formatTiming(valueRef.current) || 'No repeat'),
21
+ React.createElement(Button, { onClick: () => setOpen(true) }, "Edit")),
22
+ React.createElement(TimingEditorDialog, { visible: open, defaultValue: valueRef.current, onOk: (newValue) => {
23
+ if (props.onChange) {
24
+ props.onChange(newValue);
25
+ }
26
+ setValue(newValue);
27
+ setOpen(false);
28
+ }, onCancel: () => setOpen(false) })));
29
+ }
30
+ function TimingEditorDialog(props) {
31
+ var _a, _b;
32
+ const [value, setValue] = useState(props.defaultValue || {});
33
+ const valueRef = useRef();
34
+ valueRef.current = value;
35
+ function setStart(newStart) {
36
+ setValue(Object.assign(Object.assign({}, valueRef.current), { event: [newStart] }));
37
+ }
38
+ function setRepeat(repeat) {
39
+ setValue(Object.assign(Object.assign({}, valueRef.current), { repeat }));
40
+ }
41
+ function setPeriod(newPeriod) {
42
+ var _a;
43
+ setRepeat(Object.assign(Object.assign({}, (_a = valueRef.current) === null || _a === void 0 ? void 0 : _a.repeat), { period: newPeriod }));
44
+ }
45
+ function setPeriodUnit(newPeriodUnit) {
46
+ var _a;
47
+ setRepeat(Object.assign(Object.assign({}, (_a = valueRef.current) === null || _a === void 0 ? void 0 : _a.repeat), { periodUnit: newPeriodUnit }));
48
+ }
49
+ function setDayOfWeek(day, enabled) {
50
+ if (enabled) {
51
+ addDayOfWeek(day);
52
+ }
53
+ else {
54
+ removeDayOfWeek(day);
55
+ }
56
+ }
57
+ function addDayOfWeek(day) {
58
+ var _a, _b, _c;
59
+ const existing = ((_b = (_a = valueRef.current) === null || _a === void 0 ? void 0 : _a.repeat) === null || _b === void 0 ? void 0 : _b.dayOfWeek) || [];
60
+ if (!existing.includes(day)) {
61
+ setRepeat(Object.assign(Object.assign({}, (_c = valueRef.current) === null || _c === void 0 ? void 0 : _c.repeat), { dayOfWeek: [...existing, day] }));
62
+ }
63
+ }
64
+ function removeDayOfWeek(day) {
65
+ var _a, _b, _c;
66
+ const existing = ((_b = (_a = valueRef.current) === null || _a === void 0 ? void 0 : _a.repeat) === null || _b === void 0 ? void 0 : _b.dayOfWeek) || [];
67
+ if (existing.includes(day)) {
68
+ setRepeat(Object.assign(Object.assign({}, (_c = valueRef.current) === null || _c === void 0 ? void 0 : _c.repeat), { dayOfWeek: existing.filter((d) => d !== day) }));
69
+ }
70
+ }
71
+ return (React.createElement(Dialog, { title: "Timing", visible: props.visible, onOk: () => props.onOk(value), onCancel: () => props.onCancel() },
72
+ React.createElement("div", { style: { padding: '5px 20px', textAlign: 'left' } },
73
+ React.createElement(FormSection, { title: "Starts on", htmlFor: 'timing-dialog-start' },
74
+ React.createElement(DateTimeInput, { name: 'timing-dialog-start', onChange: (newValue) => setStart(newValue) })),
75
+ React.createElement(FormSection, { title: "Repeat every", htmlFor: 'timing-dialog-period' },
76
+ React.createElement(InputRow, null,
77
+ React.createElement(Input, { type: "number", step: 1, name: 'timing-dialog-period', defaultValue: (_a = value === null || value === void 0 ? void 0 : value.repeat) === null || _a === void 0 ? void 0 : _a.period, onChange: (newValue) => setPeriod(parseInt(newValue)) }),
78
+ React.createElement(Select, { name: 'timing-dialog-periodUnit', defaultValue: (_b = value === null || value === void 0 ? void 0 : value.repeat) === null || _b === void 0 ? void 0 : _b.periodUnit, onChange: (newValue) => setPeriodUnit(newValue) },
79
+ React.createElement("option", { value: "d" }, "day"),
80
+ React.createElement("option", { value: "wk" }, "week"),
81
+ React.createElement("option", { value: "mo" }, "month"),
82
+ React.createElement("option", { value: "a" }, "year")))),
83
+ React.createElement(FormSection, { title: "Repeat on" },
84
+ React.createElement(InputRow, null, daysOfWeek.map((day) => (React.createElement(React.Fragment, { key: day },
85
+ React.createElement("label", { htmlFor: 'timing-dialog-repeat-' + day }, day.charAt(0).toUpperCase()),
86
+ React.createElement(Checkbox, { name: 'timing-dialog-repeat-' + day, onChange: (newValue) => setDayOfWeek(day, newValue) })))))))));
87
+ }
88
+
89
+ export { TimingInput };
90
+ //# sourceMappingURL=TimingInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimingInput.js","sources":["../../src/TimingInput.tsx"],"sourcesContent":["import { formatTiming } from '@medplum/core';\nimport { Timing, TimingRepeat } from '@medplum/fhirtypes';\nimport React, { useRef, useState } from 'react';\nimport { Button } from './Button';\nimport { Checkbox } from './Checkbox';\nimport { DateTimeInput } from './DateTimeInput';\nimport { Dialog } from './Dialog';\nimport { FormSection } from './FormSection';\nimport { Input } from './Input';\nimport { InputRow } from './InputRow';\nimport { Select } from './Select';\n\nconst daysOfWeek = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\n\nexport interface TimingInputProps {\n name: string;\n defaultValue?: Timing;\n onChange?: (newValue: Timing) => void;\n}\n\nexport function TimingInput(props: TimingInputProps): JSX.Element {\n const [value, setValue] = useState<Timing>(props.defaultValue || {});\n const [open, setOpen] = useState(false);\n\n const valueRef = useRef<Timing>();\n valueRef.current = value;\n\n return (\n <>\n <InputRow>\n <span>{formatTiming(valueRef.current) || 'No repeat'}</span>\n <Button onClick={() => setOpen(true)}>Edit</Button>\n </InputRow>\n <TimingEditorDialog\n visible={open}\n defaultValue={valueRef.current}\n onOk={(newValue) => {\n if (props.onChange) {\n props.onChange(newValue);\n }\n setValue(newValue);\n setOpen(false);\n }}\n onCancel={() => setOpen(false)}\n />\n </>\n );\n}\n\ninterface TimingEditorDialogProps {\n visible: boolean;\n defaultValue?: Timing;\n onOk: (newValue: Timing) => void;\n onCancel: () => void;\n}\n\nfunction TimingEditorDialog(props: TimingEditorDialogProps): JSX.Element {\n const [value, setValue] = useState<Timing>(props.defaultValue || {});\n\n const valueRef = useRef<Timing>();\n valueRef.current = value;\n\n function setStart(newStart: string): void {\n setValue({ ...valueRef.current, event: [newStart] });\n }\n\n function setRepeat(repeat: TimingRepeat): void {\n setValue({ ...valueRef.current, repeat });\n }\n\n function setPeriod(newPeriod: number | undefined): void {\n setRepeat({ ...valueRef.current?.repeat, period: newPeriod });\n }\n\n function setPeriodUnit(newPeriodUnit: string | undefined): void {\n setRepeat({ ...valueRef.current?.repeat, periodUnit: newPeriodUnit });\n }\n\n function setDayOfWeek(day: string, enabled: boolean): void {\n if (enabled) {\n addDayOfWeek(day);\n } else {\n removeDayOfWeek(day);\n }\n }\n\n function addDayOfWeek(day: string): void {\n const existing = valueRef.current?.repeat?.dayOfWeek || [];\n if (!existing.includes(day)) {\n setRepeat({ ...valueRef.current?.repeat, dayOfWeek: [...existing, day] });\n }\n }\n\n function removeDayOfWeek(day: string): void {\n const existing = valueRef.current?.repeat?.dayOfWeek || [];\n if (existing.includes(day)) {\n setRepeat({ ...valueRef.current?.repeat, dayOfWeek: existing.filter((d) => d !== day) });\n }\n }\n\n return (\n <Dialog title=\"Timing\" visible={props.visible} onOk={() => props.onOk(value)} onCancel={() => props.onCancel()}>\n <div style={{ padding: '5px 20px', textAlign: 'left' }}>\n <FormSection title=\"Starts on\" htmlFor={'timing-dialog-start'}>\n <DateTimeInput name={'timing-dialog-start'} onChange={(newValue) => setStart(newValue)} />\n </FormSection>\n <FormSection title=\"Repeat every\" htmlFor={'timing-dialog-period'}>\n <InputRow>\n <Input\n type=\"number\"\n step={1}\n name={'timing-dialog-period'}\n defaultValue={value?.repeat?.period}\n onChange={(newValue) => setPeriod(parseInt(newValue))}\n />\n <Select\n name={'timing-dialog-periodUnit'}\n defaultValue={value?.repeat?.periodUnit}\n onChange={(newValue) => setPeriodUnit(newValue)}\n >\n <option value=\"d\">day</option>\n <option value=\"wk\">week</option>\n <option value=\"mo\">month</option>\n <option value=\"a\">year</option>\n </Select>\n </InputRow>\n </FormSection>\n <FormSection title=\"Repeat on\">\n <InputRow>\n {daysOfWeek.map((day) => (\n <React.Fragment key={day}>\n <label htmlFor={'timing-dialog-repeat-' + day}>{day.charAt(0).toUpperCase()}</label>\n <Checkbox name={'timing-dialog-repeat-' + day} onChange={(newValue) => setDayOfWeek(day, newValue)} />\n </React.Fragment>\n ))}\n </InputRow>\n </FormSection>\n </div>\n </Dialog>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -16,9 +16,9 @@ export * from './ContactDetailDisplay';
16
16
  export * from './ContactDetailInput';
17
17
  export * from './ContactPointDisplay';
18
18
  export * from './ContactPointInput';
19
- export * from './DateTimeDisplay';
20
19
  export * from './DateTimeInput';
21
20
  export * from './DefaultResourceTimeline';
21
+ export * from './DescriptionList';
22
22
  export * from './DiagnosticReportDisplay';
23
23
  export * from './Document';
24
24
  export * from './EncounterTimeline';
package/dist/esm/index.js CHANGED
@@ -16,9 +16,9 @@ export { ContactDetailDisplay } from './ContactDetailDisplay.js';
16
16
  export { ContactDetailInput } from './ContactDetailInput.js';
17
17
  export { ContactPointDisplay } from './ContactPointDisplay.js';
18
18
  export { ContactPointInput } from './ContactPointInput.js';
19
- export { DateTimeDisplay } from './DateTimeDisplay.js';
20
19
  export { DateTimeInput, convertIsoToLocal, convertLocalToIso } from './DateTimeInput.js';
21
20
  export { DefaultResourceTimeline } from './DefaultResourceTimeline.js';
21
+ export { DescriptionList, DescriptionListEntry } from './DescriptionList.js';
22
22
  export { DiagnosticReportDisplay, ObservationTable } from './DiagnosticReportDisplay.js';
23
23
  export { Document } from './Document.js';
24
24
  export { EncounterTimeline } from './EncounterTimeline.js';