@medplum/react 2.0.1 → 2.0.3

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 (165) hide show
  1. package/dist/cjs/DiagnosticReportDisplay/DiagnosticReportDisplay.d.ts +2 -0
  2. package/dist/cjs/DiagnosticReportDisplay/DiagnosticReportDisplay.stories.d.ts +1 -0
  3. package/dist/cjs/MedplumProvider/MedplumProvider.d.ts +8 -0
  4. package/dist/cjs/NoteDisplay/NoteDisplay.d.ts +6 -0
  5. package/dist/cjs/NoteDisplay/NoteDisplay.stories.d.ts +7 -0
  6. package/dist/cjs/OperationOutcomeAlert/OperationOutcomeAlert.d.ts +2 -1
  7. package/dist/cjs/QuantityInput/QuantityInput.d.ts +1 -0
  8. package/dist/cjs/QuantityInput/QuantityInput.stories.d.ts +7 -0
  9. package/dist/cjs/ResourceTable/ResourceTable.d.ts +13 -0
  10. package/dist/cjs/ResourceTimeline/ResourceTimeline.d.ts +2 -2
  11. package/dist/cjs/index.cjs +917 -230
  12. package/dist/cjs/index.cjs.map +1 -1
  13. package/dist/cjs/index.d.ts +1 -0
  14. package/dist/cjs/index.min.cjs +1 -1
  15. package/dist/cjs/useResource/useResource.d.ts +2 -2
  16. package/dist/cjs/utils/date.d.ts +2 -1
  17. package/dist/esm/AttachmentArrayInput/AttachmentArrayInput.mjs +2 -1
  18. package/dist/esm/AttachmentArrayInput/AttachmentArrayInput.mjs.map +1 -1
  19. package/dist/esm/DefaultResourceTimeline/DefaultResourceTimeline.mjs +2 -6
  20. package/dist/esm/DefaultResourceTimeline/DefaultResourceTimeline.mjs.map +1 -1
  21. package/dist/esm/DiagnosticReportDisplay/DiagnosticReportDisplay.d.ts +2 -0
  22. package/dist/esm/DiagnosticReportDisplay/DiagnosticReportDisplay.mjs +26 -22
  23. package/dist/esm/DiagnosticReportDisplay/DiagnosticReportDisplay.mjs.map +1 -1
  24. package/dist/esm/DiagnosticReportDisplay/DiagnosticReportDisplay.stories.d.ts +1 -0
  25. package/dist/esm/EncounterTimeline/EncounterTimeline.mjs +6 -6
  26. package/dist/esm/EncounterTimeline/EncounterTimeline.mjs.map +1 -1
  27. package/dist/esm/ErrorBoundary/ErrorBoundary.mjs +1 -1
  28. package/dist/esm/ErrorBoundary/ErrorBoundary.mjs.map +1 -1
  29. package/dist/esm/GoogleButton/GoogleButton.mjs +6 -4
  30. package/dist/esm/GoogleButton/GoogleButton.mjs.map +1 -1
  31. package/dist/esm/MedplumLink/MedplumLink.mjs +2 -2
  32. package/dist/esm/MedplumLink/MedplumLink.mjs.map +1 -1
  33. package/dist/esm/MedplumProvider/MedplumProvider.d.ts +8 -0
  34. package/dist/esm/MedplumProvider/MedplumProvider.mjs +17 -1
  35. package/dist/esm/MedplumProvider/MedplumProvider.mjs.map +1 -1
  36. package/dist/esm/MoneyInput/MoneyInput.mjs +1 -1
  37. package/dist/esm/MoneyInput/MoneyInput.mjs.map +1 -1
  38. package/dist/esm/NoteDisplay/NoteDisplay.d.ts +6 -0
  39. package/dist/esm/NoteDisplay/NoteDisplay.mjs +18 -0
  40. package/dist/esm/NoteDisplay/NoteDisplay.mjs.map +1 -0
  41. package/dist/esm/NoteDisplay/NoteDisplay.stories.d.ts +7 -0
  42. package/dist/esm/OperationOutcomeAlert/OperationOutcomeAlert.d.ts +2 -1
  43. package/dist/esm/OperationOutcomeAlert/OperationOutcomeAlert.mjs +4 -3
  44. package/dist/esm/OperationOutcomeAlert/OperationOutcomeAlert.mjs.map +1 -1
  45. package/dist/esm/PatientTimeline/PatientTimeline.mjs +10 -10
  46. package/dist/esm/PatientTimeline/PatientTimeline.mjs.map +1 -1
  47. package/dist/esm/QuantityInput/QuantityInput.d.ts +1 -0
  48. package/dist/esm/QuantityInput/QuantityInput.mjs +10 -4
  49. package/dist/esm/QuantityInput/QuantityInput.mjs.map +1 -1
  50. package/dist/esm/QuantityInput/QuantityInput.stories.d.ts +7 -0
  51. package/dist/esm/QuestionnaireForm/QuestionnaireForm.mjs +2 -2
  52. package/dist/esm/QuestionnaireForm/QuestionnaireForm.mjs.map +1 -1
  53. package/dist/esm/ReferenceRangeEditor/ReferenceRangeEditor.mjs +2 -1
  54. package/dist/esm/ReferenceRangeEditor/ReferenceRangeEditor.mjs.map +1 -1
  55. package/dist/esm/RequestGroupDisplay/RequestGroupDisplay.mjs +2 -1
  56. package/dist/esm/RequestGroupDisplay/RequestGroupDisplay.mjs.map +1 -1
  57. package/dist/esm/ResourceArrayInput/ResourceArrayInput.mjs +2 -1
  58. package/dist/esm/ResourceArrayInput/ResourceArrayInput.mjs.map +1 -1
  59. package/dist/esm/ResourceTable/ResourceTable.d.ts +13 -0
  60. package/dist/esm/ResourceTable/ResourceTable.mjs +4 -1
  61. package/dist/esm/ResourceTable/ResourceTable.mjs.map +1 -1
  62. package/dist/esm/ResourceTimeline/ResourceTimeline.d.ts +2 -2
  63. package/dist/esm/ResourceTimeline/ResourceTimeline.mjs +62 -34
  64. package/dist/esm/ResourceTimeline/ResourceTimeline.mjs.map +1 -1
  65. package/dist/esm/SearchControl/SearchControl.mjs +7 -1
  66. package/dist/esm/SearchControl/SearchControl.mjs.map +1 -1
  67. package/dist/esm/SearchPopupMenu/SearchPopupMenu.mjs +14 -1
  68. package/dist/esm/SearchPopupMenu/SearchPopupMenu.mjs.map +1 -1
  69. package/dist/esm/ServiceRequestTimeline/ServiceRequestTimeline.mjs +7 -7
  70. package/dist/esm/ServiceRequestTimeline/ServiceRequestTimeline.mjs.map +1 -1
  71. package/dist/esm/Timeline/Timeline.mjs +1 -1
  72. package/dist/esm/Timeline/Timeline.mjs.map +1 -1
  73. package/dist/esm/auth/AuthenticationForm.mjs +1 -1
  74. package/dist/esm/auth/AuthenticationForm.mjs.map +1 -1
  75. package/dist/esm/auth/MfaForm.mjs +1 -1
  76. package/dist/esm/auth/MfaForm.mjs.map +1 -1
  77. package/dist/esm/index.d.ts +1 -0
  78. package/dist/esm/index.min.mjs +1 -1
  79. package/dist/esm/index.mjs +2 -1
  80. package/dist/esm/index.mjs.map +1 -1
  81. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/createReactComponent.mjs +69 -0
  82. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/createReactComponent.mjs.map +1 -0
  83. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/defaultAttributes.mjs +18 -0
  84. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/defaultAttributes.mjs.map +1 -0
  85. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconAdjustmentsHorizontal.mjs +24 -0
  86. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconAdjustmentsHorizontal.mjs.map +1 -0
  87. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconAlertCircle.mjs +14 -0
  88. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconAlertCircle.mjs.map +1 -0
  89. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBleach.mjs +18 -0
  90. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBleach.mjs.map +1 -0
  91. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBleachOff.mjs +19 -0
  92. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBleachOff.mjs.map +1 -0
  93. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBoxMultiple.mjs +25 -0
  94. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBoxMultiple.mjs.map +1 -0
  95. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBracketsContain.mjs +16 -0
  96. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBracketsContain.mjs.map +1 -0
  97. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBucket.mjs +19 -0
  98. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBucket.mjs.map +1 -0
  99. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBucketOff.mjs +26 -0
  100. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBucketOff.mjs.map +1 -0
  101. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCalendar.mjs +23 -0
  102. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCalendar.mjs.map +1 -0
  103. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCheck.mjs +12 -0
  104. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCheck.mjs.map +1 -0
  105. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCheckbox.mjs +19 -0
  106. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCheckbox.mjs.map +1 -0
  107. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCircleMinus.mjs +13 -0
  108. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCircleMinus.mjs.map +1 -0
  109. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCirclePlus.mjs +14 -0
  110. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCirclePlus.mjs.map +1 -0
  111. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCloudUpload.mjs +20 -0
  112. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCloudUpload.mjs.map +1 -0
  113. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconColumns.mjs +19 -0
  114. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconColumns.mjs.map +1 -0
  115. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCurrencyDollar.mjs +19 -0
  116. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCurrencyDollar.mjs.map +1 -0
  117. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconDots.mjs +14 -0
  118. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconDots.mjs.map +1 -0
  119. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconEdit.mjs +26 -0
  120. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconEdit.mjs.map +1 -0
  121. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconEqual.mjs +13 -0
  122. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconEqual.mjs.map +1 -0
  123. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconEqualNot.mjs +14 -0
  124. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconEqualNot.mjs.map +1 -0
  125. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconFileAlert.mjs +21 -0
  126. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconFileAlert.mjs.map +1 -0
  127. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconFilePlus.mjs +21 -0
  128. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconFilePlus.mjs.map +1 -0
  129. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconFilter.mjs +18 -0
  130. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconFilter.mjs.map +1 -0
  131. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconListDetails.mjs +29 -0
  132. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconListDetails.mjs.map +1 -0
  133. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconMathGreater.mjs +12 -0
  134. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconMathGreater.mjs.map +1 -0
  135. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconMathLower.mjs +12 -0
  136. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconMathLower.mjs.map +1 -0
  137. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconMessage.mjs +20 -0
  138. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconMessage.mjs.map +1 -0
  139. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconPin.mjs +20 -0
  140. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconPin.mjs.map +1 -0
  141. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconPinnedOff.mjs +21 -0
  142. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconPinnedOff.mjs.map +1 -0
  143. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSettings.mjs +19 -0
  144. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSettings.mjs.map +1 -0
  145. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSortAscending.mjs +16 -0
  146. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSortAscending.mjs.map +1 -0
  147. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSortDescending.mjs +16 -0
  148. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSortDescending.mjs.map +1 -0
  149. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSquare.mjs +18 -0
  150. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSquare.mjs.map +1 -0
  151. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconTableExport.mjs +18 -0
  152. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconTableExport.mjs.map +1 -0
  153. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconTrash.mjs +19 -0
  154. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconTrash.mjs.map +1 -0
  155. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconX.mjs +13 -0
  156. package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconX.mjs.map +1 -0
  157. package/dist/esm/useResource/useResource.d.ts +2 -2
  158. package/dist/esm/useResource/useResource.mjs +62 -39
  159. package/dist/esm/useResource/useResource.mjs.map +1 -1
  160. package/dist/esm/utils/date.d.ts +2 -1
  161. package/dist/esm/utils/date.mjs +31 -25
  162. package/dist/esm/utils/date.mjs.map +1 -1
  163. package/icons-unique.txt +36 -0
  164. package/icons.txt +44 -0
  165. package/package.json +12 -17
@@ -1,20 +1,20 @@
1
1
  /**
2
2
  * Sorts an array of resources in place by meta.lastUpdated ascending.
3
3
  * @param resources Array of resources.
4
+ * @param timelineResource Optional primary resource of a timeline view. If specified, the primary resource will be sorted by meta.lastUpdated descending.
4
5
  */
5
- function sortByDateAndPriority(resources) {
6
- resources.sort(resourceDateComparator);
7
- }
8
- function resourceDateComparator(a, b) {
9
- const priority1 = getPriorityScore(a);
10
- const priority2 = getPriorityScore(b);
11
- if (priority1 > priority2) {
12
- return 1;
13
- }
14
- if (priority1 < priority2) {
15
- return -1;
16
- }
17
- return getTime(a) - getTime(b);
6
+ function sortByDateAndPriority(resources, timelineResource) {
7
+ resources.sort((a, b) => {
8
+ const priority1 = getPriorityScore(a);
9
+ const priority2 = getPriorityScore(b);
10
+ if (priority1 > priority2) {
11
+ return 1;
12
+ }
13
+ if (priority1 < priority2) {
14
+ return -1;
15
+ }
16
+ return getTime(a, timelineResource) - getTime(b, timelineResource);
17
+ });
18
18
  }
19
19
  function getPriorityScore(resource) {
20
20
  const priority = resource.priority;
@@ -23,18 +23,21 @@ function getPriorityScore(resource) {
23
23
  }
24
24
  return 0;
25
25
  }
26
- function getTime(resource) {
27
- if (resource.resourceType === 'Communication' && resource.sent) {
28
- return new Date(resource.sent).getTime();
29
- }
30
- if ((resource.resourceType === 'DiagnosticReport' ||
31
- resource.resourceType === 'Media' ||
32
- resource.resourceType === 'Observation') &&
33
- resource.issued) {
34
- return new Date(resource.issued).getTime();
35
- }
36
- if (resource.resourceType === 'DocumentReference' && resource.date) {
37
- return new Date(resource.date).getTime();
26
+ function getTime(resource, timelineResource) {
27
+ if (!isSameResourceType(resource, timelineResource)) {
28
+ // Only use special case timestamps if not the primary resource of a timeline view.
29
+ if (resource.resourceType === 'Communication' && resource.sent) {
30
+ return new Date(resource.sent).getTime();
31
+ }
32
+ if ((resource.resourceType === 'DiagnosticReport' ||
33
+ resource.resourceType === 'Media' ||
34
+ resource.resourceType === 'Observation') &&
35
+ resource.issued) {
36
+ return new Date(resource.issued).getTime();
37
+ }
38
+ if (resource.resourceType === 'DocumentReference' && resource.date) {
39
+ return new Date(resource.date).getTime();
40
+ }
38
41
  }
39
42
  const dateTime = resource.meta?.lastUpdated;
40
43
  if (!dateTime) {
@@ -42,6 +45,9 @@ function getTime(resource) {
42
45
  }
43
46
  return new Date(dateTime).getTime();
44
47
  }
48
+ function isSameResourceType(a, b) {
49
+ return !!b && a.resourceType === b.resourceType && a.id === b.id;
50
+ }
45
51
 
46
52
  export { sortByDateAndPriority };
47
53
  //# sourceMappingURL=date.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"date.mjs","sources":["../../../src/utils/date.ts"],"sourcesContent":["import { Resource } from '@medplum/fhirtypes';\n\n/**\n * Sorts an array of resources in place by meta.lastUpdated ascending.\n * @param resources Array of resources.\n */\nexport function sortByDateAndPriority(resources: Resource[]): void {\n resources.sort(resourceDateComparator);\n}\n\nfunction resourceDateComparator(a: Resource, b: Resource): number {\n const priority1 = getPriorityScore(a);\n const priority2 = getPriorityScore(b);\n if (priority1 > priority2) {\n return 1;\n }\n if (priority1 < priority2) {\n return -1;\n }\n return getTime(a) - getTime(b);\n}\n\nfunction getPriorityScore(resource: Resource): number {\n const priority = (resource as any).priority;\n if (typeof priority === 'string') {\n return { stat: 4, asap: 3, urgent: 2 }[priority] || 0;\n }\n return 0;\n}\n\nfunction getTime(resource: Resource): number {\n if (resource.resourceType === 'Communication' && resource.sent) {\n return new Date(resource.sent).getTime();\n }\n\n if (\n (resource.resourceType === 'DiagnosticReport' ||\n resource.resourceType === 'Media' ||\n resource.resourceType === 'Observation') &&\n resource.issued\n ) {\n return new Date(resource.issued).getTime();\n }\n\n if (resource.resourceType === 'DocumentReference' && resource.date) {\n return new Date(resource.date).getTime();\n }\n\n const dateTime = resource.meta?.lastUpdated;\n if (!dateTime) {\n return 0;\n }\n return new Date(dateTime).getTime();\n}\n"],"names":[],"mappings":"AAEA;;;AAGG;AACG,SAAU,qBAAqB,CAAC,SAAqB,EAAA;AACzD,IAAA,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,sBAAsB,CAAC,CAAW,EAAE,CAAW,EAAA;AACtD,IAAA,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;AACtC,IAAA,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,SAAS,GAAG,SAAS,EAAE;AACzB,QAAA,OAAO,CAAC,CAAC;AACV,KAAA;IACD,IAAI,SAAS,GAAG,SAAS,EAAE;QACzB,OAAO,CAAC,CAAC,CAAC;AACX,KAAA;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAkB,EAAA;AAC1C,IAAA,MAAM,QAAQ,GAAI,QAAgB,CAAC,QAAQ,CAAC;AAC5C,IAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAChC,QAAA,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACvD,KAAA;AACD,IAAA,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,OAAO,CAAC,QAAkB,EAAA;IACjC,IAAI,QAAQ,CAAC,YAAY,KAAK,eAAe,IAAI,QAAQ,CAAC,IAAI,EAAE;QAC9D,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AAC1C,KAAA;AAED,IAAA,IACE,CAAC,QAAQ,CAAC,YAAY,KAAK,kBAAkB;QAC3C,QAAQ,CAAC,YAAY,KAAK,OAAO;AACjC,QAAA,QAAQ,CAAC,YAAY,KAAK,aAAa;QACzC,QAAQ,CAAC,MAAM,EACf;QACA,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;AAC5C,KAAA;IAED,IAAI,QAAQ,CAAC,YAAY,KAAK,mBAAmB,IAAI,QAAQ,CAAC,IAAI,EAAE;QAClE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AAC1C,KAAA;AAED,IAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC5C,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,OAAO,CAAC,CAAC;AACV,KAAA;IACD,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;AACtC;;;;"}
1
+ {"version":3,"file":"date.mjs","sources":["../../../src/utils/date.ts"],"sourcesContent":["import { Resource } from '@medplum/fhirtypes';\n\n/**\n * Sorts an array of resources in place by meta.lastUpdated ascending.\n * @param resources Array of resources.\n * @param timelineResource Optional primary resource of a timeline view. If specified, the primary resource will be sorted by meta.lastUpdated descending.\n */\nexport function sortByDateAndPriority(resources: Resource[], timelineResource?: Resource): void {\n resources.sort((a: Resource, b: Resource): number => {\n const priority1 = getPriorityScore(a);\n const priority2 = getPriorityScore(b);\n if (priority1 > priority2) {\n return 1;\n }\n if (priority1 < priority2) {\n return -1;\n }\n return getTime(a, timelineResource) - getTime(b, timelineResource);\n });\n}\n\nfunction getPriorityScore(resource: Resource): number {\n const priority = (resource as any).priority;\n if (typeof priority === 'string') {\n return { stat: 4, asap: 3, urgent: 2 }[priority] || 0;\n }\n return 0;\n}\n\nfunction getTime(resource: Resource, timelineResource: Resource | undefined): number {\n if (!isSameResourceType(resource, timelineResource)) {\n // Only use special case timestamps if not the primary resource of a timeline view.\n\n if (resource.resourceType === 'Communication' && resource.sent) {\n return new Date(resource.sent).getTime();\n }\n\n if (\n (resource.resourceType === 'DiagnosticReport' ||\n resource.resourceType === 'Media' ||\n resource.resourceType === 'Observation') &&\n resource.issued\n ) {\n return new Date(resource.issued).getTime();\n }\n\n if (resource.resourceType === 'DocumentReference' && resource.date) {\n return new Date(resource.date).getTime();\n }\n }\n\n const dateTime = resource.meta?.lastUpdated;\n if (!dateTime) {\n return 0;\n }\n return new Date(dateTime).getTime();\n}\n\nfunction isSameResourceType(a: Resource, b: Resource | undefined): boolean {\n return !!b && a.resourceType === b.resourceType && a.id === b.id;\n}\n"],"names":[],"mappings":"AAEA;;;;AAIG;AACa,SAAA,qBAAqB,CAAC,SAAqB,EAAE,gBAA2B,EAAA;IACtF,SAAS,CAAC,IAAI,CAAC,CAAC,CAAW,EAAE,CAAW,KAAY;AAClD,QAAA,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;AACtC,QAAA,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,SAAS,GAAG,SAAS,EAAE;AACzB,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;QACD,IAAI,SAAS,GAAG,SAAS,EAAE;YACzB,OAAO,CAAC,CAAC,CAAC;AACX,SAAA;AACD,QAAA,OAAO,OAAO,CAAC,CAAC,EAAE,gBAAgB,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;AACrE,KAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAkB,EAAA;AAC1C,IAAA,MAAM,QAAQ,GAAI,QAAgB,CAAC,QAAQ,CAAC;AAC5C,IAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAChC,QAAA,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACvD,KAAA;AACD,IAAA,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,OAAO,CAAC,QAAkB,EAAE,gBAAsC,EAAA;AACzE,IAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE;;QAGnD,IAAI,QAAQ,CAAC,YAAY,KAAK,eAAe,IAAI,QAAQ,CAAC,IAAI,EAAE;YAC9D,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AAC1C,SAAA;AAED,QAAA,IACE,CAAC,QAAQ,CAAC,YAAY,KAAK,kBAAkB;YAC3C,QAAQ,CAAC,YAAY,KAAK,OAAO;AACjC,YAAA,QAAQ,CAAC,YAAY,KAAK,aAAa;YACzC,QAAQ,CAAC,MAAM,EACf;YACA,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;AAC5C,SAAA;QAED,IAAI,QAAQ,CAAC,YAAY,KAAK,mBAAmB,IAAI,QAAQ,CAAC,IAAI,EAAE;YAClE,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AAC1C,SAAA;AACF,KAAA;AAED,IAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC5C,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,OAAO,CAAC,CAAC;AACV,KAAA;IACD,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;AACtC,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAW,EAAE,CAAuB,EAAA;AAC9D,IAAA,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;AACnE;;;;"}
@@ -0,0 +1,36 @@
1
+ IconAdjustmentsHorizontal
2
+ IconAlertCircle
3
+ IconBleach
4
+ IconBleachOff
5
+ IconBoxMultiple
6
+ IconBracketsContain
7
+ IconBucket
8
+ IconBucketOff
9
+ IconCalendar
10
+ IconCheck
11
+ IconCheckbox
12
+ IconCircleMinus
13
+ IconCirclePlus
14
+ IconCloudUpload
15
+ IconColumns
16
+ IconCurrencyDollar
17
+ IconDots
18
+ IconEdit
19
+ IconEqual
20
+ IconEqualNot
21
+ IconFileAlert
22
+ IconFilePlus
23
+ IconFilter
24
+ IconListDetails
25
+ IconMathGreater
26
+ IconMathLower
27
+ IconMessage
28
+ IconPin
29
+ IconPinnedOff
30
+ IconSettings
31
+ IconSortAscending
32
+ IconSortDescending
33
+ IconSquare
34
+ IconTableExport
35
+ IconTrash
36
+ IconX
package/icons.txt ADDED
@@ -0,0 +1,44 @@
1
+ IconCircleMinus
2
+ IconCloudUpload
3
+ IconCloudUpload
4
+ IconAlertCircle
5
+ IconAlertCircle
6
+ IconCurrencyDollar
7
+ IconAlertCircle
8
+ IconCircleMinus
9
+ IconCirclePlus
10
+ IconCheckbox
11
+ IconSquare
12
+ IconCircleMinus
13
+ IconCirclePlus
14
+ IconCheck
15
+ IconCloudUpload
16
+ IconEdit
17
+ IconFileAlert
18
+ IconListDetails
19
+ IconMessage
20
+ IconPin
21
+ IconPinnedOff
22
+ IconTrash
23
+ IconAdjustmentsHorizontal
24
+ IconBoxMultiple
25
+ IconColumns
26
+ IconFilePlus
27
+ IconFilter
28
+ IconTableExport
29
+ IconTrash
30
+ IconBleach
31
+ IconBleachOff
32
+ IconBracketsContain
33
+ IconBucket
34
+ IconBucketOff
35
+ IconCalendar
36
+ IconEqual
37
+ IconEqualNot
38
+ IconMathGreater
39
+ IconMathLower
40
+ IconSettings
41
+ IconSortAscending
42
+ IconSortDescending
43
+ IconX
44
+ IconDots
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@medplum/react",
3
- "version": "2.0.1",
3
+ "version": "2.0.3",
4
4
  "description": "Medplum React Component Library",
5
5
  "author": "Medplum <hello@medplum.com>",
6
6
  "license": "Apache-2.0",
@@ -20,38 +20,38 @@
20
20
  },
21
21
  "devDependencies": {
22
22
  "@emotion/react": "11.10.5",
23
- "@mantine/core": "5.10.2",
24
- "@mantine/hooks": "5.10.2",
25
- "@mantine/notifications": "5.10.2",
23
+ "@mantine/core": "5.10.3",
24
+ "@mantine/hooks": "5.10.3",
25
+ "@mantine/notifications": "5.10.3",
26
26
  "@medplum/core": "*",
27
27
  "@medplum/definitions": "*",
28
28
  "@medplum/fhirtypes": "*",
29
29
  "@medplum/mock": "*",
30
- "@tabler/icons": "1.119.0",
31
30
  "@storybook/addon-actions": "6.5.16",
32
31
  "@storybook/addon-essentials": "6.5.16",
33
32
  "@storybook/addon-links": "6.5.16",
34
33
  "@storybook/builder-webpack5": "6.5.16",
35
34
  "@storybook/manager-webpack5": "6.5.16",
36
35
  "@storybook/react": "6.5.16",
36
+ "@svgr/rollup": "6.5.1",
37
+ "@tabler/icons-react": "2.3.0",
37
38
  "@testing-library/dom": "8.20.0",
38
39
  "@testing-library/jest-dom": "5.16.5",
39
40
  "@testing-library/react": "13.4.0",
40
41
  "@types/jest": "29.4.0",
41
- "@types/node": "18.11.18",
42
- "@types/react": "18.0.27",
42
+ "@types/node": "18.13.0",
43
+ "@types/react": "18.0.28",
43
44
  "@types/react-dom": "18.0.10",
44
45
  "@types/react-router-dom": "5.3.3",
45
46
  "dotenv-webpack": "8.0.1",
46
47
  "identity-obj-proxy": "3.0.0",
47
- "jest": "29.4.1",
48
- "jest-each": "29.4.1",
48
+ "jest": "29.4.2",
49
+ "jest-each": "29.4.2",
49
50
  "html-webpack-plugin": "5.5.0",
50
51
  "react": "18.2.0",
51
52
  "react-dom": "18.2.0",
52
- "react-router-dom": "6.8.0",
53
53
  "rimraf": "4.1.2",
54
- "typescript": "4.9.4"
54
+ "typescript": "4.9.5"
55
55
  },
56
56
  "peerDependencies": {
57
57
  "@emotion/react": "^11.10.4",
@@ -59,10 +59,8 @@
59
59
  "@mantine/hooks": "^5.4.0",
60
60
  "@mantine/notifications": "^5.4.0",
61
61
  "@medplum/core": "*",
62
- "@tabler/icons": "^1.100.0",
63
62
  "react": "^17.0.2 || ^18.0.0",
64
- "react-dom": "^17.0.2 || ^18.0.0",
65
- "react-router-dom": "^6.2.2"
63
+ "react-dom": "^17.0.2 || ^18.0.0"
66
64
  },
67
65
  "peerDependenciesMeta": {
68
66
  "@emotion/react": {
@@ -76,9 +74,6 @@
76
74
  },
77
75
  "@mantine/notifications": {
78
76
  "optional": true
79
- },
80
- "@tabler/icons": {
81
- "optional": true
82
77
  }
83
78
  },
84
79
  "main": "dist/cjs/index.cjs",