@medplum/react 2.0.18 → 2.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs +175 -77
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.min.cjs +1 -1
- package/dist/esm/AppShell/Navbar.mjs +83 -32
- package/dist/esm/AppShell/Navbar.mjs.map +1 -1
- package/dist/esm/SearchFilterValueDisplay/SearchFilterValueDisplay.mjs +3 -2
- package/dist/esm/SearchFilterValueDisplay/SearchFilterValueDisplay.mjs.map +1 -1
- package/dist/esm/ValueSetAutocomplete/ValueSetAutocomplete.mjs +3 -0
- package/dist/esm/ValueSetAutocomplete/ValueSetAutocomplete.mjs.map +1 -1
- package/dist/esm/index.min.mjs +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/createReactComponent.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/createReactComponent.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/defaultAttributes.mjs +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/defaultAttributes.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconAdjustmentsHorizontal.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconAdjustmentsHorizontal.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconAlertCircle.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconAlertCircle.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBleach.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBleach.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBleachOff.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBleachOff.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBoxMultiple.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBoxMultiple.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBracketsContain.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBracketsContain.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBucket.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBucket.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBucketOff.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBucketOff.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCalendar.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCalendar.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCheck.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCheck.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCheckbox.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCheckbox.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronDown.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronDown.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCircleMinus.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCircleMinus.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCirclePlus.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCirclePlus.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCloudUpload.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCloudUpload.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconColumns.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconColumns.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCurrencyDollar.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCurrencyDollar.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconDots.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconDots.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconEdit.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconEdit.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconEqual.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconEqual.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconEqualNot.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconEqualNot.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconFileAlert.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconFileAlert.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconFilePlus.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconFilePlus.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconFilter.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconFilter.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconListDetails.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconListDetails.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconLogout.mjs +4 -2
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconLogout.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconMathGreater.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconMathGreater.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconMathLower.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconMathLower.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconMessage.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconMessage.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconPin.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconPin.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconPinnedOff.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconPinnedOff.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconPlus.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconPlus.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSearch.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSearch.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSettings.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSettings.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSortAscending.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSortAscending.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSortDescending.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSortDescending.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSquare.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSquare.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSwitchHorizontal.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSwitchHorizontal.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconTableExport.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconTableExport.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconTrash.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconTrash.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconX.mjs +2 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconX.mjs.map +1 -1
- package/dist/types/AddressDisplay/AddressDisplay.d.ts +1 -0
- package/dist/types/AddressInput/AddressInput.d.ts +1 -0
- package/dist/types/AnnotationInput/AnnotationInput.d.ts +1 -0
- package/dist/types/AppShell/HeaderSearchInput.d.ts +1 -0
- package/dist/types/AppShell/Navbar.d.ts +1 -0
- package/dist/types/AsyncAutocomplete/AsyncAutocomplete.d.ts +1 -0
- package/dist/types/AttachmentArrayDisplay/AttachmentArrayDisplay.d.ts +1 -0
- package/dist/types/AttachmentArrayInput/AttachmentArrayInput.d.ts +1 -0
- package/dist/types/AttachmentDisplay/AttachmentDisplay.d.ts +1 -0
- package/dist/types/AttachmentInput/AttachmentInput.d.ts +1 -0
- package/dist/types/BackboneElementDisplay/BackboneElementDisplay.d.ts +1 -0
- package/dist/types/BackboneElementInput/BackboneElementInput.d.ts +1 -0
- package/dist/types/BookmarkDialog/BookmarkDialog.d.ts +1 -0
- package/dist/types/CalendarInput/CalendarInput.d.ts +1 -0
- package/dist/types/CodeInput/CodeInput.d.ts +1 -0
- package/dist/types/CodeableConceptDisplay/CodeableConceptDisplay.d.ts +1 -0
- package/dist/types/CodeableConceptInput/CodeableConceptInput.d.ts +1 -0
- package/dist/types/CodingDisplay/CodingDisplay.d.ts +1 -0
- package/dist/types/CodingInput/CodingInput.d.ts +1 -0
- package/dist/types/ContactDetailDisplay/ContactDetailDisplay.d.ts +1 -0
- package/dist/types/ContactDetailInput/ContactDetailInput.d.ts +1 -0
- package/dist/types/ContactPointDisplay/ContactPointDisplay.d.ts +1 -0
- package/dist/types/ContactPointInput/ContactPointInput.d.ts +1 -0
- package/dist/types/Container/Container.d.ts +1 -0
- package/dist/types/DateTimeInput/DateTimeInput.d.ts +1 -0
- package/dist/types/DefaultResourceTimeline/DefaultResourceTimeline.d.ts +1 -0
- package/dist/types/DiagnosticReportDisplay/DiagnosticReportDisplay.d.ts +1 -0
- package/dist/types/Document/Document.d.ts +1 -0
- package/dist/types/EncounterTimeline/EncounterTimeline.d.ts +1 -0
- package/dist/types/ExtensionInput/ExtensionInput.d.ts +1 -0
- package/dist/types/FhirPathDisplay/FhirPathDisplay.d.ts +1 -0
- package/dist/types/GoogleButton/GoogleButton.d.ts +1 -0
- package/dist/types/HumanNameDisplay/HumanNameDisplay.d.ts +1 -0
- package/dist/types/HumanNameInput/HumanNameInput.d.ts +1 -0
- package/dist/types/IdentifierDisplay/IdentifierDisplay.d.ts +1 -0
- package/dist/types/IdentifierInput/IdentifierInput.d.ts +1 -0
- package/dist/types/Loading/Loading.d.ts +1 -0
- package/dist/types/Logo/Logo.d.ts +1 -0
- package/dist/types/MoneyDisplay/MoneyDisplay.d.ts +1 -0
- package/dist/types/MoneyInput/MoneyInput.d.ts +1 -0
- package/dist/types/NoteDisplay/NoteDisplay.d.ts +1 -0
- package/dist/types/OperationOutcomeAlert/OperationOutcomeAlert.d.ts +1 -0
- package/dist/types/Panel/Panel.d.ts +1 -0
- package/dist/types/PatientTimeline/PatientTimeline.d.ts +1 -0
- package/dist/types/PeriodInput/PeriodInput.d.ts +1 -0
- package/dist/types/PlanDefinitionBuilder/PlanDefinitionBuilder.d.ts +1 -0
- package/dist/types/QuantityDisplay/QuantityDisplay.d.ts +1 -0
- package/dist/types/QuantityInput/QuantityInput.d.ts +1 -0
- package/dist/types/QuestionnaireBuilder/QuestionnaireBuilder.d.ts +1 -0
- package/dist/types/QuestionnaireForm/QuestionnaireForm.d.ts +1 -0
- package/dist/types/RangeDisplay/RangeDisplay.d.ts +1 -0
- package/dist/types/RangeInput/RangeInput.d.ts +1 -0
- package/dist/types/RatioDisplay/RatioDisplay.d.ts +1 -0
- package/dist/types/RatioInput/RatioInput.d.ts +1 -0
- package/dist/types/ReferenceDisplay/ReferenceDisplay.d.ts +1 -0
- package/dist/types/ReferenceInput/ReferenceInput.d.ts +1 -0
- package/dist/types/ReferenceRangeEditor/ReferenceRangeEditor.d.ts +1 -0
- package/dist/types/RequestGroupDisplay/RequestGroupDisplay.d.ts +1 -0
- package/dist/types/ResourceArrayDisplay/ResourceArrayDisplay.d.ts +1 -0
- package/dist/types/ResourceArrayInput/ResourceArrayInput.d.ts +1 -0
- package/dist/types/ResourceAvatar/ResourceAvatar.d.ts +1 -0
- package/dist/types/ResourceBadge/ResourceBadge.d.ts +1 -0
- package/dist/types/ResourceBlame/ResourceBlame.d.ts +1 -0
- package/dist/types/ResourceDiff/ResourceDiff.d.ts +1 -0
- package/dist/types/ResourceDiffTable/ResourceDiffTable.d.ts +1 -0
- package/dist/types/ResourceForm/ResourceForm.d.ts +1 -0
- package/dist/types/ResourceHistoryTable/ResourceHistoryTable.d.ts +1 -0
- package/dist/types/ResourceInput/ResourceInput.d.ts +1 -0
- package/dist/types/ResourceName/ResourceName.d.ts +1 -0
- package/dist/types/ResourcePropertyDisplay/ResourcePropertyDisplay.d.ts +1 -0
- package/dist/types/ResourcePropertyInput/ResourcePropertyInput.d.ts +1 -0
- package/dist/types/ResourceTable/ResourceTable.d.ts +1 -0
- package/dist/types/ResourceTimeline/ResourceTimeline.d.ts +1 -0
- package/dist/types/Scheduler/Scheduler.d.ts +1 -0
- package/dist/types/SearchControl/SearchUtils.d.ts +1 -0
- package/dist/types/SearchExportDialog/SearchExportDialog.d.ts +1 -0
- package/dist/types/SearchFieldEditor/SearchFieldEditor.d.ts +1 -0
- package/dist/types/SearchFilterEditor/SearchFilterEditor.d.ts +1 -0
- package/dist/types/SearchFilterValueDialog/SearchFilterValueDialog.d.ts +1 -0
- package/dist/types/SearchFilterValueDisplay/SearchFilterValueDisplay.d.ts +1 -0
- package/dist/types/SearchFilterValueInput/SearchFilterValueInput.d.ts +1 -0
- package/dist/types/SearchPopupMenu/SearchPopupMenu.d.ts +1 -0
- package/dist/types/ServiceRequestTimeline/ServiceRequestTimeline.d.ts +1 -0
- package/dist/types/StatusBadge/StatusBadge.d.ts +1 -0
- package/dist/types/TimingInput/TimingInput.d.ts +1 -0
- package/dist/types/ValueSetAutocomplete/ValueSetAutocomplete.d.ts +1 -0
- package/dist/types/auth/ChooseProfileForm.d.ts +1 -0
- package/dist/types/auth/ChooseScopeForm.d.ts +1 -0
- package/dist/types/auth/MfaForm.d.ts +1 -0
- package/dist/types/auth/NewProjectForm.d.ts +1 -0
- package/package.json +13 -13
package/dist/cjs/index.min.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@medplum/core"),require("react"),require("@mantine/core"),require("prop-types"),require("react-router-dom"),require("@mantine/notifications")):"function"==typeof define&&define.amd?define(["exports","@medplum/core","react","@mantine/core","prop-types","react-router-dom","@mantine/notifications"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).medplum=e.medplum||{},e.medplum.react={}),e.medplum.core,e.React,e.mantine.core,e.PropTypes,e.ReactRouterDOM,e.mantine.notifications)}(this,(function(e,t,n,r,a,o,l){"use strict";function c(e){const r=e.value;return r?n.createElement(n.Fragment,null,t.formatAddress(r)):null}function i(e,t){return e&&e.line&&e.line.length>t?e.line[t]:""}function s(e,t,n){const r=e.line||[];for(;r.length<=t;)r.push("");return r[t]=n,{...e,line:r}}function u(e){const[t,a]=n.useState(e.defaultValue||{}),o=n.useRef();function l(t){a(t),e.onChange&&e.onChange(t)}return o.current=t,n.createElement(r.Group,{spacing:"xs",grow:!0,noWrap:!0},n.createElement(r.NativeSelect,{"data-testid":"address-use",defaultValue:t?.use,onChange:e=>{return t=e.currentTarget.value,void l({...o.current,use:t});var t},data:["","home","work","temp","old","billing"]}),n.createElement(r.NativeSelect,{"data-testid":"address-type",defaultValue:t?.type,onChange:e=>{return t=e.currentTarget.value,void l({...o.current,type:t});var t},data:["","postal","physical","both"]}),n.createElement(r.TextInput,{placeholder:"Line 1",defaultValue:i(t,0),onChange:e=>{return t=e.currentTarget.value,void l(s(o.current||{},0,t));var t}}),n.createElement(r.TextInput,{placeholder:"Line 2",defaultValue:i(t,1),onChange:e=>{return t=e.currentTarget.value,void l(s(o.current||{},1,t));var t}}),n.createElement(r.TextInput,{placeholder:"City",defaultValue:t.city,onChange:e=>{return t=e.currentTarget.value,void l({...o.current,city:t});var t}}),n.createElement(r.TextInput,{placeholder:"State",defaultValue:t.state,onChange:e=>{return t=e.currentTarget.value,void l({...o.current,state:t});var t}}),n.createElement(r.TextInput,{placeholder:"Postal Code",defaultValue:t.postalCode,onChange:e=>{return t=e.currentTarget.value,void l({...o.current,postalCode:t});var t}}))}const m=n.createContext(void 0);function d(){return n.useContext(m)}function p(){return d().medplum}function h(){return d().navigate}function g(){return d().profile}function f(e){window.location.assign(e)}function E(e){const a=g(),[o,l]=n.useState(e.defaultValue||{});return n.useRef().current=o,n.createElement(r.TextInput,{name:e.name,placeholder:"Annotation text",defaultValue:o.text,onChange:n=>function(n){const r=n?{text:n,authorReference:a&&t.createReference(a),time:(new Date).toISOString()}:{};l(r),e.onChange&&e.onChange(r)}(n.currentTarget.value)})}var y={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},v=Object.defineProperty,C=Object.defineProperties,T=Object.getOwnPropertyDescriptors,k=Object.getOwnPropertySymbols,b=Object.prototype.hasOwnProperty,S=Object.prototype.propertyIsEnumerable,x=(e,t,n)=>t in e?v(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,w=(e,t)=>{for(var n in t||(t={}))b.call(t,n)&&x(e,n,t[n]);if(k)for(var n of k(t))S.call(t,n)&&x(e,n,t[n]);return e},I=(e,t,r)=>{const o=n.forwardRef(((t,a)=>{var o,l=t,{color:c="currentColor",size:i=24,stroke:s=2,children:u}=l,m=((e,t)=>{var n={};for(var r in e)b.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&k)for(var r of k(e))t.indexOf(r)<0&&S.call(e,r)&&(n[r]=e[r]);return n})(l,["color","size","stroke","children"]);return n.createElement("svg",w((o=w({ref:a},y),C(o,T({width:i,height:i,stroke:c,strokeWidth:s,className:`tabler-icon tabler-icon-${e}`}))),m),[...r.map((([e,t])=>n.createElement(e,t))),...u||[]])}));return o.propTypes={color:a.string,size:a.oneOfType([a.string,a.number]),stroke:a.oneOfType([a.string,a.number])},o.displayName=`${t}`,o},M=I("adjustments-horizontal","IconAdjustmentsHorizontal",[["path",{d:"M14 6m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-0"}],["path",{d:"M4 6l8 0",key:"svg-1"}],["path",{d:"M16 6l4 0",key:"svg-2"}],["path",{d:"M8 12m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-3"}],["path",{d:"M4 12l2 0",key:"svg-4"}],["path",{d:"M10 12l10 0",key:"svg-5"}],["path",{d:"M17 18m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-6"}],["path",{d:"M4 18l11 0",key:"svg-7"}],["path",{d:"M19 18l1 0",key:"svg-8"}]]),R=I("alert-circle","IconAlertCircle",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M12 8v4",key:"svg-1"}],["path",{d:"M12 16h.01",key:"svg-2"}]]),A=I("bleach-off","IconBleachOff",[["path",{d:"M5 19h14m1.986 -1.977a2 2 0 0 0 -.146 -.773l-7.1 -12.25a2 2 0 0 0 -3.5 0l-.815 1.405m-1.488 2.568l-4.797 8.277a2 2 0 0 0 1.75 2.75",key:"svg-0"}],["path",{d:"M3 3l18 18",key:"svg-1"}]]),P=I("bleach","IconBleach",[["path",{d:"M5 19h14a2 2 0 0 0 1.84 -2.75l-7.1 -12.25a2 2 0 0 0 -3.5 0l-7.1 12.25a2 2 0 0 0 1.75 2.75",key:"svg-0"}]]),D=I("box-multiple","IconBoxMultiple",[["path",{d:"M7 3m0 2a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2z",key:"svg-0"}],["path",{d:"M17 17v2a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-10a2 2 0 0 1 2 -2h2",key:"svg-1"}]]),O=I("brackets-contain","IconBracketsContain",[["path",{d:"M7 4h-4v16h4",key:"svg-0"}],["path",{d:"M17 4h4v16h-4",key:"svg-1"}],["path",{d:"M8 16h.01",key:"svg-2"}],["path",{d:"M12 16h.01",key:"svg-3"}],["path",{d:"M16 16h.01",key:"svg-4"}]]),V=I("bucket-off","IconBucketOff",[["path",{d:"M5.029 5.036c-.655 .58 -1.029 1.25 -1.029 1.964c0 2.033 3.033 3.712 6.96 3.967m3.788 -.21c3.064 -.559 5.252 -2.029 5.252 -3.757c0 -2.21 -3.582 -4 -8 -4c-1.605 0 -3.1 .236 -4.352 .643",key:"svg-0"}],["path",{d:"M4 7c0 .664 .088 1.324 .263 1.965l2.737 10.035c.5 1.5 2.239 2 5 2s4.5 -.5 5 -2c.1 -.3 .252 -.812 .457 -1.535m.862 -3.146c.262 -.975 .735 -2.76 1.418 -5.354a7.45 7.45 0 0 0 .263 -1.965",key:"svg-1"}],["path",{d:"M3 3l18 18",key:"svg-2"}]]),N=I("bucket","IconBucket",[["path",{d:"M12 7m-8 0a8 4 0 1 0 16 0a8 4 0 1 0 -16 0",key:"svg-0"}],["path",{d:"M4 7c0 .664 .088 1.324 .263 1.965l2.737 10.035c.5 1.5 2.239 2 5 2s4.5 -.5 5 -2c.333 -1 1.246 -4.345 2.737 -10.035a7.45 7.45 0 0 0 .263 -1.965",key:"svg-1"}]]),z=I("calendar","IconCalendar",[["path",{d:"M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12z",key:"svg-0"}],["path",{d:"M16 3v4",key:"svg-1"}],["path",{d:"M8 3v4",key:"svg-2"}],["path",{d:"M4 11h16",key:"svg-3"}],["path",{d:"M11 15h1",key:"svg-4"}],["path",{d:"M12 15v3",key:"svg-5"}]]),L=I("check","IconCheck",[["path",{d:"M5 12l5 5l10 -10",key:"svg-0"}]]),$=I("checkbox","IconCheckbox",[["path",{d:"M9 11l3 3l8 -8",key:"svg-0"}],["path",{d:"M20 12v6a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h9",key:"svg-1"}]]),F=I("chevron-down","IconChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]),B=I("circle-minus","IconCircleMinus",[["path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M9 12l6 0",key:"svg-1"}]]),U=I("circle-plus","IconCirclePlus",[["path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M9 12l6 0",key:"svg-1"}],["path",{d:"M12 9l0 6",key:"svg-2"}]]),q=I("cloud-upload","IconCloudUpload",[["path",{d:"M7 18a4.6 4.4 0 0 1 0 -9a5 4.5 0 0 1 11 2h1a3.5 3.5 0 0 1 0 7h-1",key:"svg-0"}],["path",{d:"M9 15l3 -3l3 3",key:"svg-1"}],["path",{d:"M12 12l0 9",key:"svg-2"}]]),_=I("columns","IconColumns",[["path",{d:"M4 6l5.5 0",key:"svg-0"}],["path",{d:"M4 10l5.5 0",key:"svg-1"}],["path",{d:"M4 14l5.5 0",key:"svg-2"}],["path",{d:"M4 18l5.5 0",key:"svg-3"}],["path",{d:"M14.5 6l5.5 0",key:"svg-4"}],["path",{d:"M14.5 10l5.5 0",key:"svg-5"}],["path",{d:"M14.5 14l5.5 0",key:"svg-6"}],["path",{d:"M14.5 18l5.5 0",key:"svg-7"}]]),G=I("currency-dollar","IconCurrencyDollar",[["path",{d:"M16.7 8a3 3 0 0 0 -2.7 -2h-4a3 3 0 0 0 0 6h4a3 3 0 0 1 0 6h-4a3 3 0 0 1 -2.7 -2",key:"svg-0"}],["path",{d:"M12 3v3m0 12v3",key:"svg-1"}]]),j=I("dots","IconDots",[["path",{d:"M5 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M19 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]),W=I("edit","IconEdit",[["path",{d:"M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1",key:"svg-0"}],["path",{d:"M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.415z",key:"svg-1"}],["path",{d:"M16 5l3 3",key:"svg-2"}]]),Q=I("equal-not","IconEqualNot",[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}],["path",{d:"M5 19l14 -14",key:"svg-2"}]]),H=I("equal","IconEqual",[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}]]),K=I("file-alert","IconFileAlert",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z",key:"svg-1"}],["path",{d:"M12 17l.01 0",key:"svg-2"}],["path",{d:"M12 11l0 3",key:"svg-3"}]]),J=I("file-plus","IconFilePlus",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z",key:"svg-1"}],["path",{d:"M12 11l0 6",key:"svg-2"}],["path",{d:"M9 14l6 0",key:"svg-3"}]]),Y=I("filter","IconFilter",[["path",{d:"M4 4h16v2.172a2 2 0 0 1 -.586 1.414l-4.414 4.414v7l-6 2v-8.5l-4.48 -4.928a2 2 0 0 1 -.52 -1.345v-2.227z",key:"svg-0"}]]),X=I("list-details","IconListDetails",[["path",{d:"M13 5h8",key:"svg-0"}],["path",{d:"M13 9h5",key:"svg-1"}],["path",{d:"M13 15h8",key:"svg-2"}],["path",{d:"M13 19h5",key:"svg-3"}],["path",{d:"M3 4m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z",key:"svg-4"}],["path",{d:"M3 14m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z",key:"svg-5"}]]),Z=I("logout","IconLogout",[["path",{d:"M14 8v-2a2 2 0 0 0 -2 -2h-7a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h7a2 2 0 0 0 2 -2v-2",key:"svg-0"}],["path",{d:"M7 12h14l-3 -3m0 6l3 -3",key:"svg-1"}]]),ee=I("math-greater","IconMathGreater",[["path",{d:"M5 18l14 -6l-14 -6",key:"svg-0"}]]),te=I("math-lower","IconMathLower",[["path",{d:"M19 18l-14 -6l14 -6",key:"svg-0"}]]),ne=I("message","IconMessage",[["path",{d:"M8 9h8",key:"svg-0"}],["path",{d:"M8 13h6",key:"svg-1"}],["path",{d:"M18 4a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-5l-5 3v-3h-2a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12z",key:"svg-2"}]]),re=I("pin","IconPin",[["path",{d:"M15 4.5l-4 4l-4 1.5l-1.5 1.5l7 7l1.5 -1.5l1.5 -4l4 -4",key:"svg-0"}],["path",{d:"M9 15l-4.5 4.5",key:"svg-1"}],["path",{d:"M14.5 4l5.5 5.5",key:"svg-2"}]]),ae=I("pinned-off","IconPinnedOff",[["path",{d:"M3 3l18 18",key:"svg-0"}],["path",{d:"M15 4.5l-3.249 3.249m-2.57 1.433l-2.181 .818l-1.5 1.5l7 7l1.5 -1.5l.82 -2.186m1.43 -2.563l3.25 -3.251",key:"svg-1"}],["path",{d:"M9 15l-4.5 4.5",key:"svg-2"}],["path",{d:"M14.5 4l5.5 5.5",key:"svg-3"}]]),oe=I("plus","IconPlus",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M5 12l14 0",key:"svg-1"}]]),le=I("search","IconSearch",[["path",{d:"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0",key:"svg-0"}],["path",{d:"M21 21l-6 -6",key:"svg-1"}]]),ce=I("settings","IconSettings",[["path",{d:"M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z",key:"svg-0"}],["path",{d:"M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0",key:"svg-1"}]]),ie=I("sort-ascending","IconSortAscending",[["path",{d:"M4 6l7 0",key:"svg-0"}],["path",{d:"M4 12l7 0",key:"svg-1"}],["path",{d:"M4 18l9 0",key:"svg-2"}],["path",{d:"M15 9l3 -3l3 3",key:"svg-3"}],["path",{d:"M18 6l0 12",key:"svg-4"}]]),se=I("sort-descending","IconSortDescending",[["path",{d:"M4 6l9 0",key:"svg-0"}],["path",{d:"M4 12l7 0",key:"svg-1"}],["path",{d:"M4 18l7 0",key:"svg-2"}],["path",{d:"M15 15l3 3l3 -3",key:"svg-3"}],["path",{d:"M18 6l0 12",key:"svg-4"}]]),ue=I("square","IconSquare",[["path",{d:"M3 3m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z",key:"svg-0"}]]),me=I("switch-horizontal","IconSwitchHorizontal",[["path",{d:"M16 3l4 4l-4 4",key:"svg-0"}],["path",{d:"M10 7l10 0",key:"svg-1"}],["path",{d:"M8 13l-4 4l4 4",key:"svg-2"}],["path",{d:"M4 17l9 0",key:"svg-3"}]]),de=I("table-export","IconTableExport",[["path",{d:"M12.5 21h-7.5a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v7.5",key:"svg-0"}],["path",{d:"M3 10h18",key:"svg-1"}],["path",{d:"M10 3v18",key:"svg-2"}],["path",{d:"M16 19h6",key:"svg-3"}],["path",{d:"M19 16l3 3l-3 3",key:"svg-4"}]]),pe=I("trash","IconTrash",[["path",{d:"M4 7l16 0",key:"svg-0"}],["path",{d:"M10 11l0 6",key:"svg-1"}],["path",{d:"M14 11l0 6",key:"svg-2"}],["path",{d:"M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12",key:"svg-3"}],["path",{d:"M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3",key:"svg-4"}]]),he=I("x","IconX",[["path",{d:"M18 6l-12 12",key:"svg-0"}],["path",{d:"M6 6l12 12",key:"svg-1"}]]);class ge extends n.Component{constructor(e){super(e),this.state={}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){console.error("Uncaught error:",e,t)}render(){return this.state.error?n.createElement(r.Alert,{icon:n.createElement(R,{size:16}),title:"Something went wrong",color:"red"},t.normalizeErrorString(this.state.error)):this.props.children}}function fe(){return n.createElement(r.Center,{style:{width:"100%",height:"100vh"}},n.createElement(r.Loader,null))}function Ee(e){const r=e.value;return r?n.createElement(n.Fragment,null,t.formatHumanName(r,e.options)):null}function ye(e){e.preventDefault(),e.stopPropagation()}function ve(e){if(Ce(e))return!0;if(e instanceof HTMLTableCellElement){const t=e.children;if(1===t.length&&Ce(t[0]))return!0}return!1}function Ce(e){return e instanceof HTMLInputElement&&"checkbox"===e.type}function Te(e){const a=h(),{to:o,suffix:l,label:c,onClick:i,children:s,...u}=e;let m=function(e){if(e){if("string"==typeof e)return function(e){if(e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/"))return e;return"/"+e}(e);if(t.isResource(e))return function(e){return`/${e.resourceType}/${e.id}`}(e);if(t.isReference(e))return function(e){return`/${e.reference}`}(e)}return"#"}(o);return l&&(m+="/"+l),n.createElement(r.Anchor,{href:m,"aria-label":c,onClick:e=>{ye(e),i?i(e):o&&a(m)},...u},s)}function ke(e,r){const a=p(),[o,l]=n.useState(be(a,e)),c=n.useCallback((e=>{t.deepEquals(e,o)||l(e)}),[o,l]);return n.useEffect((()=>{c(be(a,e))}),[a,e,c]),n.useEffect((()=>{let n=!0;return t.isReference(e)&&a.readReference(e).then((e=>{n&&c(e)})).catch((e=>{n&&(c(void 0),r&&r(t.normalizeOperationOutcome(e)))})),()=>n=!1}),[a,o,e,c,r]),o}function be(e,n){if(n){if(t.isResource(n))return n;if(t.isReference(n))return e.getCachedReference(n)}}function Se(e){const a=ke(e.value),o=a?t.getDisplayString(a):e.alt??"",l=(a&&t.getImageSrc(a))??e.src,c=e.radius??"xl",i={...e};return delete i.value,delete i.link,e.link?n.createElement(Te,{to:a},n.createElement(r.Avatar,{src:l,alt:o,radius:c,...i})):n.createElement(r.Avatar,{src:l,alt:o,radius:c,...i})}function xe(e){const{defaultValue:t,toKey:a,toOption:o,loadOptions:l,onChange:c,onCreate:i,creatable:s,...u}=e,m=function(e){if(!e)return[];if(Array.isArray(e))return e;return[e]}(t),d=n.useRef(null),[p,h]=n.useState(void 0),[g,f]=n.useState(),[E,y]=n.useState(),[v,C]=n.useState(),[T,k]=n.useState(m?.map(o)),b=n.useRef();b.current=p;const S=n.useRef();S.current=g;const x=n.useRef();x.current=E;const w=n.useRef();w.current=v;const I=n.useRef();I.current=T;const M=n.useCallback((()=>{f(void 0);const e=d.current?.value?.trim()||"";if(e===b.current)return;h(e);const t=new AbortController;y(t),l(e,t.signal).then((e=>{t.signal.aborted||(k(e.map(o)),y(void 0),w.current&&(e.length>0&&c(e.slice(0,1)),C(!1)))})).catch(console.log)}),[l,c,o]),R=n.useCallback((()=>{x.current&&(x.current.abort(),y(void 0)),void 0!==S.current&&window.clearTimeout(S.current);const e=window.setTimeout((()=>M()),100);f(e)}),[M]),A=n.useCallback((e=>{const t=[];for(const n of e){let e=I.current?.find((e=>e.value===n))?.resource;e||!1===s||(e=i(n)),e&&t.push(e)}c(t)}),[s,c,i]),P=n.useCallback((e=>{"Enter"===e.key&&(S.current||x.current?C(!0):(ye(e),I.current&&I.current.length>0&&(k(I.current.slice(0,1)),A([I.current[0].value]))))}),[A]),D=n.useCallback((e=>{const t=o(i(e));return k([...I.current,t]),t}),[i,k,o]),O=n.useCallback(((e,t)=>!t),[]);return n.useEffect((()=>()=>{x.current&&x.current.abort()}),[]),n.createElement(r.MultiSelect,{...u,ref:d,defaultValue:m.map(a),searchable:!0,onKeyDown:P,onSearchChange:R,data:T,onFocus:M,onChange:A,onCreate:D,rightSectionWidth:40,rightSection:E?n.createElement(r.Loader,{size:16}):null,filter:O,creatable:!0})}const we=r.createStyles((()=>({searchInput:{input:{width:220,transition:"width 0.2s"},"input:focus":{width:400},"@media (max-width: 800px)":{input:{width:150},"input:focus":{width:150}}}})));function Ie(e){return e.id}function Me(e){return{value:e.id,label:t.getDisplayString(e),resource:e}}function Re(){const{classes:e}=we(),r=h(),a=p(),l=o.useLocation(),c=n.useCallback((async(e,n)=>{const r=function(e){const n=JSON.stringify(e);if(t.isUUID(e))return`{\n Patients1: PatientList(_id: ${n}, _count: 1) {\n resourceType\n id\n identifier {\n system\n value\n }\n name {\n given\n family\n }\n birthDate\n }\n ServiceRequestList(_id: ${n}, _count: 1) {\n resourceType\n id\n identifier {\n system\n value\n }\n subject {\n display\n }\n }\n }`.replace(/\s+/g," ");return`{\n Patients1: PatientList(name: ${n}, _count: 5) {\n resourceType\n id\n identifier {\n system\n value\n }\n name {\n given\n family\n }\n birthDate\n }\n Patients2: PatientList(identifier: ${n}, _count: 5) {\n resourceType\n id\n identifier {\n system\n value\n }\n name {\n given\n family\n }\n birthDate\n }\n ServiceRequestList(identifier: ${n}, _count: 5) {\n resourceType\n id\n identifier {\n system\n value\n }\n subject {\n display\n }\n }\n }`.replace(/\s+/g," ")}(e),o={signal:n};return function(e,t){const n=[];e.data.Patients1&&n.push(...e.data.Patients1);e.data.Patients2&&n.push(...e.data.Patients2);e.data.ServiceRequestList&&n.push(...e.data.ServiceRequestList);return function(e,t){return e.sort(((e,n)=>Pe(n,t)-Pe(e,t)))}(function(e){const t=new Set,n=[];for(const r of e)t.has(r.id)||(t.add(r.id),n.push(r));return n}(n),t).slice(0,5)}(await a.graphql(r,void 0,void 0,o),e)}),[a]),i=n.useCallback((e=>{e.length>0&&r(`/${t.getReferenceString(e[0])}`)}),[r]);return n.createElement(xe,{key:l.pathname,size:"sm",radius:"md",className:e.searchInput,icon:n.createElement(le,{size:16}),placeholder:"Search",itemComponent:Ae,toKey:Ie,toOption:Me,onChange:i,loadOptions:c})}const Ae=n.forwardRef((({resource:e,...a},o)=>{let l;return"Patient"===e.resourceType?l=e.birthDate:"ServiceRequest"===e.resourceType&&(l=e.subject?.display),n.createElement("div",{ref:o,...a},n.createElement(r.Group,{noWrap:!0},n.createElement(Se,{value:e}),n.createElement("div",null,n.createElement(r.Text,null,t.getDisplayString(e)),n.createElement(r.Text,{size:"xs",color:"dimmed"},l))))}));function Pe(e,n){let r=0;if(e.identifier)for(const t of e.identifier)r=Math.max(r,De(t.value,n));if("Patient"===e.resourceType&&e.name)for(const a of e.name)r=Math.max(r,De(t.formatHumanName(a),n));return r}function De(e,t){if(!e)return 0;const n=e.toLowerCase().indexOf(t.toLowerCase());return n<0?0:100-n}const Oe=r.createStyles((e=>({logoButton:{padding:`${e.spacing.xs} ${e.spacing.sm}`,borderRadius:e.radius.sm,transition:"background-color 100ms ease","&:hover":{backgroundColor:e.fn.lighten(e.fn.variant({variant:"filled",color:e.primaryColor}).background,.8)}},user:{padding:`${e.spacing.xs} ${e.spacing.sm}`,borderRadius:e.radius.sm,transition:"background-color 100ms ease","&:hover":{backgroundColor:e.fn.lighten(e.fn.variant({variant:"filled",color:e.primaryColor}).background,.8)}},userName:{fontWeight:500,lineHeight:1,marginRight:3,[e.fn.smallerThan("xs")]:{display:"none"}},userActive:{backgroundColor:e.fn.lighten(e.fn.variant({variant:"filled",color:e.primaryColor}).background,.8)}})));function Ve(e){const a=d(),{medplum:o,profile:l,navigate:c}=a,i=o.getLogins(),{classes:s,cx:u}=Oe(),[m,p]=n.useState(!1);return n.createElement(r.Header,{height:60,p:8,style:{zIndex:101}},n.createElement(r.Group,{position:"apart"},n.createElement(r.Group,{spacing:"xs"},n.createElement(r.UnstyledButton,{className:s.logoButton,onClick:e.navbarToggle},e.logo),n.createElement(Re,null)),n.createElement(r.Menu,{width:260,shadow:"xl",position:"bottom-end",transitionProps:{transition:"pop-top-right"},opened:m,onClose:()=>p(!1)},n.createElement(r.Menu.Target,null,n.createElement(r.UnstyledButton,{className:u(s.user,{[s.userActive]:m}),onClick:()=>p((e=>!e))},n.createElement(r.Group,{spacing:7},n.createElement(Se,{value:l,radius:"xl",size:24}),n.createElement(r.Text,{size:"sm",className:s.userName},t.formatHumanName(l?.name?.[0])),n.createElement(F,{size:12,stroke:1.5})))),n.createElement(r.Menu.Dropdown,null,n.createElement(r.Stack,{align:"center",p:"xl"},n.createElement(Se,{size:"xl",radius:100,value:a.profile}),n.createElement(Ee,{value:a.profile?.name?.[0]}),n.createElement(r.Text,{color:"dimmed",size:"xs"},o.getActiveLogin()?.project?.display)),i.length>1&&n.createElement(r.Menu.Divider,null),i.map((e=>e.profile?.reference!==t.getReferenceString(a.profile)&&n.createElement(r.Menu.Item,{key:e.profile?.reference,onClick:()=>{o.setActiveLogin(e).then((()=>window.location.reload())).catch(console.log)}},n.createElement(r.Group,null,n.createElement(r.Avatar,{radius:"xl"}),n.createElement("div",{style:{flex:1}},n.createElement(r.Text,{size:"sm",weight:500},e.profile?.display),n.createElement(r.Text,{color:"dimmed",size:"xs"},e.project?.display)))))),n.createElement(r.Menu.Divider,null),n.createElement(r.Menu.Item,{icon:n.createElement(me,{size:14,stroke:1.5}),onClick:()=>c("/signin")},"Add another account"),n.createElement(r.Menu.Item,{icon:n.createElement(ce,{size:14,stroke:1.5}),onClick:()=>c(`/${t.getReferenceString(l)}`)},"Account settings"),n.createElement(r.Menu.Item,{icon:n.createElement(Z,{size:14,stroke:1.5}),onClick:async()=>{await o.signOut(),c("/signin")}},"Sign out"),n.createElement(r.Text,{size:"xs",color:"dimmed",align:"center"},e.version)))))}function Ne(e){const t={};for(const n of Array.from(e.elements))n instanceof HTMLInputElement?ze(t,n):n instanceof HTMLTextAreaElement?t[n.name]=n.value:n instanceof HTMLSelectElement&&Le(t,n);return t}function ze(e,t){t.disabled||("checkbox"!==t.type&&"radio"!==t.type||t.checked)&&(e[t.name]=t.value)}function Le(e,t){e[t.name]=t.value}function $e(e){return n.createElement("form",{style:e.style,"data-testid":e.testid,onSubmit:t=>{t.preventDefault();const n=Ne(t.target);e.onSubmit&&e.onSubmit(n)}},e.children)}function Fe(e){const a=p(),c=a.getUserConfiguration(),i=o.useLocation();return n.createElement(r.Modal,{title:"Add Bookmark",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},n.createElement($e,{onSubmit:function(n){const{menuname:r,bookmarkname:o}=n,s=i.pathname+i.search,u=t.deepClone(c),m=u?.menu?.find((({title:e})=>e===r));m?.link?.push({name:o,target:s}),a.updateResource(u).then((t=>{c.menu=t.menu,a.dispatchEvent({type:"change"}),l.showNotification({color:"green",message:"Success"}),e.onOk()})).catch((e=>{l.showNotification({color:"red",message:t.normalizeErrorString(e)})}))}},n.createElement(r.Stack,null,n.createElement(Be,{config:c}),n.createElement(r.TextInput,{label:"Bookmark Name",type:"text",name:"bookmarkname",placeholder:"bookmark name",withAsterisk:!0}),n.createElement(r.Group,{position:"right"},n.createElement(r.Button,{mt:"sm",type:"submit"},"OK")))))}function Be(e){const t=(a=e.config,a?.menu?.map((e=>e.title)));var a;return n.createElement(r.NativeSelect,{name:"menuname",defaultValue:t?.[0],label:"Select Menu Option",placeholder:"Menu",data:t,withAsterisk:!0})}function Ue(e){return e.code}function qe(e){return{value:e.code,label:(t=e,t.display||t.code||""),resource:e};var t}function _e(e){return{code:e,display:e}}function Ge(e){const t=p(),{elementDefinition:r,creatable:a,clearable:o,...l}=e,c=n.useCallback((async(e,n)=>{const a=r.binding?.valueSet,o=await t.searchValueSet(a,e,{signal:n}),l=o.expansion?.contains,c=[];for(const e of l)e.code&&!c.some((t=>t.code===e.code))&&c.push(e);return c}),[t,r]);return n.createElement(xe,{...l,creatable:a??!0,clearable:o??!0,toKey:Ue,toOption:qe,loadOptions:c,onCreate:_e,getCreateLabel:!1===a?void 0:e=>`+ Create ${e}`})}function je(e){const[t,r]=n.useState(e.defaultValue);return n.createElement(Ge,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:(a=t,a?{code:a}:void 0),onChange:function(t){const n=t[0],a=(o=n,o?.code);var o;r(a),e.onChange&&e.onChange(a)},creatable:e.creatable,maxSelectedValues:e.maxSelectedValues,clearSearchOnChange:e.clearSearchOnChange,clearable:e.clearable});var a}const We=r.createStyles((e=>({menuTitle:{margin:"20px 0 4px 6px",fontSize:"9px",fontWeight:"normal",textTransform:"uppercase",letterSpacing:"2px"},link:{...e.fn.focusStyles(),display:"flex",alignItems:"center",textDecoration:"none",fontSize:e.fontSizes.sm,color:"dark"===e.colorScheme?e.colors.dark[1]:e.colors.gray[7],padding:"8px 12px",borderRadius:e.radius.sm,fontWeight:500,"&:hover":{backgroundColor:"dark"===e.colorScheme?e.colors.dark[6]:e.colors.gray[0],color:"dark"===e.colorScheme?e.white:e.black,textDecoration:"none","& svg":{color:"dark"===e.colorScheme?e.white:e.black}},"& svg":{color:"dark"===e.colorScheme?e.colors.dark[2]:e.colors.gray[6],marginRight:e.spacing.sm,strokeWidth:1.5,width:18,height:18}},linkActive:{"&, &:hover":{backgroundColor:e.fn.variant({variant:"light",color:e.primaryColor}).background,color:e.fn.variant({variant:"light",color:e.primaryColor}).color,"& svg":{color:e.fn.variant({variant:"light",color:e.primaryColor}).color}}}})));function Qe(e){const{classes:t}=We(),a=h(),[o,l]=n.useState(!1);return n.createElement(n.Fragment,null,n.createElement(r.Navbar,{width:{sm:250},p:"xs"},n.createElement(r.Navbar.Section,{mb:"sm"},n.createElement(je,{key:window.location.pathname,name:"resourceType",placeholder:"Resource Type",property:{binding:{valueSet:"http://hl7.org/fhir/ValueSet/resource-types"}},onChange:e=>{var t;(t=e)&&a(`/${t}`)},creatable:!1,maxSelectedValues:0,clearSearchOnChange:!0,clearable:!1})),n.createElement(r.Navbar.Section,{grow:!0},e.menus?.map((o=>n.createElement(n.Fragment,{key:`menu-${o.title}`},n.createElement(r.Text,{className:t.menuTitle},o.title),o.links?.map((t=>n.createElement(He,{key:t.href,to:t.href,onClick:n=>function(t,n){t.stopPropagation(),t.preventDefault(),a(n),window.innerWidth<768&&e.closeNavbar()}(n,t.href)},n.createElement(Ke,{to:t.href,icon:t.icon}),n.createElement("span",null,t.label))))))),e.displayAddBookmark&&n.createElement(r.Button,{variant:"subtle",size:"xs",mt:"xl",leftIcon:n.createElement(oe,{size:"0.75rem"}),onClick:()=>l(!0)},"Add Bookmark"))),n.createElement(Fe,{visible:o,onOk:()=>l(!1),onCancel:()=>l(!1)}))}function He(e){const{classes:t,cx:r}=We(),a=o.useLocation(),[l]=o.useSearchParams(),c=new URL(e.to,window.location.protocol+"//"+window.location.host),i=a.pathname===c.pathname&&function(e,t){for(const[n,r]of t.searchParams.entries())if(e.get(n)!==r)return!1;return!0}(l,c);return n.createElement(Te,{onClick:e.onClick,to:e.to,className:r(t.link,{[t.linkActive]:i})},e.children)}function Ke(e){return e.icon?e.icon:n.createElement(r.Space,{w:30})}function Je(e){const t=e.value,{contentType:a,url:o,title:l}=t??{};return o?n.createElement("div",{"data-testid":"attachment-display"},a?.startsWith("image/")&&n.createElement("img",{"data-testid":"attachment-image",style:{maxWidth:e.maxWidth},src:o,alt:t?.title}),a?.startsWith("video/")&&n.createElement("video",{"data-testid":"attachment-video",style:{maxWidth:e.maxWidth},controls:!0},n.createElement("source",{type:a,src:o})),"application/pdf"===a&&!l?.endsWith(".pdf")&&n.createElement("div",{"data-testid":"attachment-pdf",style:{maxWidth:e.maxWidth,minHeight:400}},n.createElement("iframe",{width:"100%",height:"400",src:o+"#navpanes=0",allowFullScreen:!0,frameBorder:0,seamless:!0})),n.createElement("div",{"data-testid":"download-link",style:{padding:"2px 16px 16px 16px"}},n.createElement(r.Anchor,{href:t?.url,"data-testid":"attachment-details",target:"_blank",rel:"noopener noreferrer"},t?.title||"Download"))):null}function Ye(e){return n.createElement("div",null,e.values&&e.values.map(((t,r)=>n.createElement("div",{key:"attatchment-"+r},n.createElement(Je,{value:t,maxWidth:e.maxWidth})))))}function Xe(e){const t=p(),r=n.useRef(null);function a(n){if(!n)return;if(!n.name)return;e.onUploadStart&&e.onUploadStart();const r=n.name,a=n.type||"application/octet-stream";t.createBinary(n,r,a,e.onUploadProgress).then((t=>{e.onUpload({contentType:t.contentType,url:t.url,title:r})})).catch((e=>{alert(e?.issue?.[0]?.details?.text)}))}return n.createElement(n.Fragment,null,n.createElement("input",{type:"file","data-testid":"upload-file-input",style:{display:"none"},ref:r,onChange:e=>function(e){ye(e);const t=e.target.files;t&&Array.from(t).forEach(a)}(e)}),e.children({onClick:function(e){ye(e),r.current?.click()}}))}function Ze(e){const[t,a]=n.useState(e.defaultValue??[]),o=n.useRef();function l(t){a(t),e.onChange&&e.onChange(t)}return o.current=t,n.createElement("table",{style:{width:"100%"}},n.createElement("colgroup",null,n.createElement("col",{width:"97%"}),n.createElement("col",{width:"3%"})),n.createElement("tbody",null,t.map(((e,a)=>n.createElement("tr",{key:`${a}-${t.length}`},n.createElement("td",null,n.createElement(Je,{value:e,maxWidth:200})),n.createElement("td",null,n.createElement(r.ActionIcon,{title:"Remove",size:"sm",onClick:e=>{ye(e);const n=t.slice();n.splice(a,1),l(n)}},n.createElement(B,null)))))),n.createElement("tr",null,n.createElement("td",null),n.createElement("td",null,n.createElement(Xe,{onUpload:e=>{l([...o.current,e])}},(e=>n.createElement(r.ActionIcon,{...e,title:"Add",size:"sm",color:"green"},n.createElement(q,{size:16}))))))))}function et(e){const[t,a]=n.useState(e.defaultValue);function o(t){a(t),e.onChange&&e.onChange(t)}return t?n.createElement(n.Fragment,null,n.createElement(Je,{value:t,maxWidth:200}),n.createElement(r.Button,{onClick:e=>{ye(e),o(void 0)}},"Remove")):n.createElement(Xe,{onUpload:o},(e=>n.createElement(r.Button,{...e},"Upload...")))}const tt=["meta","implicitRules","language","text","contained","extension","modifierExtension"],nt=r.createStyles((e=>({root:{display:"grid",gridTemplateColumns:"30% 70%",margin:0,"& > dt, & > dd":{padding:`${e.spacing.sm} ${e.spacing.sm}`,borderTop:`0.1px solid ${e.colors.gray[3]}`,margin:0}},compact:{gridTemplateColumns:"20% 80%","& > dt, & > dd":{padding:`0 ${e.spacing.xs} ${e.spacing.xs} 0`,border:0}}})));function rt(e){const{children:t,compact:r}=e,{classes:a,cx:o}=nt();return n.createElement("dl",{className:o(a.root,{[a.compact]:r})},t)}function at(e){return n.createElement(n.Fragment,null,n.createElement("dt",null,e.term),n.createElement("dd",null,e.children))}function ot(e){return n.createElement(n.Fragment,null,t.formatCodeableConcept(e.value))}function lt(e){return n.createElement(n.Fragment,null,t.formatCoding(e.value))}function ct(e){const t=e.value;if(!t)return null;const r=[];return t.value&&r.push(t.value),(t.use||t.system)&&(r.push(" ["),t.use&&r.push(t.use),t.use&&t.system&&r.push(" "),t.system&&r.push(t.system),r.push("]")),n.createElement(n.Fragment,null,r.join("").trim())}function it(e){const t=e.value;return t?n.createElement(n.Fragment,null,t.name,t.name&&": ",t.telecom?.map(((e,t)=>n.createElement(ct,{key:"telecom-"+t,value:e})))):null}function st(e){return n.createElement("div",null,e.value?.system,": ",e.value?.value)}function ut(e){return n.createElement(n.Fragment,null,t.formatMoney(e.value))}function mt(e){return n.createElement(n.Fragment,null,t.formatQuantity(e.value))}function dt(e){return n.createElement(n.Fragment,null,t.formatRange(e.value))}function pt(e){const t=e.value;return t?n.createElement(n.Fragment,null,n.createElement(mt,{value:t.numerator})," / ",n.createElement(mt,{value:t.denominator})):null}function ht(e){if(!e.value)return null;const r=e.value.display||e.value.reference||t.stringify(e.value);return!1!==e.link&&e.value.reference?n.createElement(Te,{to:e.value},r):n.createElement(n.Fragment,null,r)}function gt(e){const t=e.property,r=e.values??[],a=t.type?.[0]?.code;return n.createElement(n.Fragment,null,r.map(((o,l)=>n.createElement("div",{key:`${l}-${r.length}`},n.createElement(ft,{arrayElement:!0,property:t,propertyType:a,value:o,ignoreMissingValues:e.ignoreMissingValues,link:e.link})))))}function ft(e){const{property:r,propertyType:a,value:o}=e;if("*"===r?.max&&!e.arrayElement)return"Attachment"===a?n.createElement(Ye,{values:o,maxWidth:e.maxWidth}):n.createElement(gt,{property:r,values:o,ignoreMissingValues:e.ignoreMissingValues,link:e.link});switch(a){case t.PropertyType.boolean:return n.createElement(n.Fragment,null,void 0===o?"":Boolean(o).toString());case t.PropertyType.SystemString:case t.PropertyType.code:case t.PropertyType.date:case t.PropertyType.integer:case t.PropertyType.positiveInt:case t.PropertyType.string:case t.PropertyType.unsignedInt:case t.PropertyType.uri:case t.PropertyType.url:return n.createElement(n.Fragment,null,o);case t.PropertyType.canonical:return n.createElement(ht,{value:{reference:o},link:e.link});case t.PropertyType.dateTime:case t.PropertyType.instant:return n.createElement(n.Fragment,null,t.formatDateTime(o));case t.PropertyType.markdown:return n.createElement("pre",null,o);case t.PropertyType.Address:return n.createElement(c,{value:o});case t.PropertyType.Annotation:return n.createElement(n.Fragment,null,o?.text);case t.PropertyType.Attachment:return n.createElement(Je,{value:o,maxWidth:e.maxWidth});case t.PropertyType.CodeableConcept:return n.createElement(ot,{value:o});case t.PropertyType.Coding:return n.createElement(lt,{value:o});case t.PropertyType.ContactDetail:return n.createElement(it,{value:o});case t.PropertyType.ContactPoint:return n.createElement(ct,{value:o});case t.PropertyType.HumanName:return n.createElement(Ee,{value:o});case t.PropertyType.Identifier:return n.createElement(st,{value:o});case t.PropertyType.Money:return n.createElement(ut,{value:o});case t.PropertyType.Period:return n.createElement(n.Fragment,null,t.formatPeriod(o));case t.PropertyType.Quantity:case t.PropertyType.Duration:return n.createElement(mt,{value:o});case t.PropertyType.Range:return n.createElement(dt,{value:o});case t.PropertyType.Ratio:return n.createElement(pt,{value:o});case t.PropertyType.Reference:return n.createElement(ht,{value:o,link:e.link});case t.PropertyType.Timing:return n.createElement(n.Fragment,null,t.formatTiming(o));case t.PropertyType.Dosage:case t.PropertyType.UsageContext:return n.createElement(yt,{value:{type:a,value:o},compact:!0,ignoreMissingValues:e.ignoreMissingValues});default:if(!r?.path)throw Error(`Displaying property of type ${e.propertyType} requires element definition path`);return n.createElement(yt,{value:{type:t.getElementDefinitionTypeName(r),value:o},compact:!0,ignoreMissingValues:e.ignoreMissingValues})}}function Et(e,n){const r=t.getTypedPropertyValue(e,n);return r?Array.isArray(r)?[r.map((e=>e.value)),r[0].type]:[r.value,r.type]:[void 0,"undefined"]}function yt(e){const r=e.value,a=r.value;if(!a)return null;const o=r.type,l=t.globalSchema.types[o];return l?"object"==typeof a&&"name"in a&&1===Object.keys(a).length&&"string"==typeof a.name?n.createElement("div",null,a.name):n.createElement(rt,{compact:e.compact},Object.entries(l.properties).map((a=>{const l=a[0];if(tt.indexOf(l)>=0)return null;const c=a[1];c.path||(c.path=o+"."+l);const[i,s]=Et(r,l);return e.ignoreMissingValues&&(!i||Array.isArray(i)&&0===i.length)?null:n.createElement(at,{key:l,term:t.getPropertyDisplayName(l)},n.createElement(ft,{property:c,propertyType:s,value:i,ignoreMissingValues:e.ignoreMissingValues,link:e.link}))}))):n.createElement("div",null,o," not implemented")}function vt(e){return n.createElement(r.Group,{noWrap:!0},n.createElement("div",null,e.children),n.createElement("div",null,n.createElement(r.Input.Wrapper,{id:e.htmlFor,label:e.title,description:e.description,withAsterisk:e.withAsterisk},null)))}function Ct(e,t){return e?.issue?.filter((e=>kt(e.expression?.[0],t)))?.map((e=>e.details?.text))?.join("\n")}function Tt(e,t){return e?.issue?.filter((e=>kt(e.expression?.[0],t)))}function kt(e,t){if(e===t)return!0;if(!e||!t)return!1;const n=e.indexOf(".");if(n>=0&&e.substring(n+1)===t)return!0;const r=t.indexOf(".");return r>=0&&t.substring(r+1)===e}function bt(e){return n.createElement(r.Input.Wrapper,{id:e.htmlFor,label:e.title,description:e.description,withAsterisk:e.withAsterisk,error:Ct(e.outcome,e.htmlFor)},e.children)}function St(e,n,r,a,o){const l=a.type;if(l.length>1)for(const r of l){const a=n.replace("[x]",t.capitalize(r.code));a in e&&delete e[a]}return e[r]=o,e}function xt(e){const[t,r]=n.useState(e.defaultValue);return n.createElement(Ge,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:t&&(a=t,a.coding?.map((e=>({system:e.system,code:e.code,display:e.display})))),onChange:function(t){const n=function(e){if(0===e.length)return;return{coding:e.map((e=>({system:e.system,code:e.code,display:e.display})))}}(t);r(n),e.onChange&&e.onChange(n)}});var a}function wt(e){const[t,r]=n.useState(e.defaultValue);return n.createElement(Ge,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:t&&(a=t,{system:a.system,code:a.code,display:a.display}),onChange:function(t){const n=t[0],a=n&&{system:(o=n).system,code:o.code,display:o.display};var o;r(a),e.onChange&&e.onChange(a)}});var a}function It(e){const[t,a]=n.useState(e.defaultValue),o=n.useRef();function l(t){t&&0===Object.keys(t).length&&(t=void 0),a(t),e.onChange&&e.onChange(t)}return o.current=t,n.createElement(r.Group,{spacing:"xs",grow:!0,noWrap:!0},n.createElement(r.NativeSelect,{"data-testid":"system",defaultValue:t?.system,onChange:e=>function(e){const t={...o.current,system:e};e||delete t.system,l(t)}(e.currentTarget.value),data:["","email","phone","fax","pager","sms","other"]}),n.createElement(r.NativeSelect,{"data-testid":"use",defaultValue:t?.use,onChange:e=>function(e){const t={...o.current,use:e};e||delete t.use,l(t)}(e.currentTarget.value),data:["","home","work","temp","old","mobile"]}),n.createElement(r.TextInput,{placeholder:"Value",defaultValue:t?.value,onChange:e=>function(e){const t={...o.current,value:e};e||delete t.value,l(t)}(e.currentTarget.value)}))}function Mt(e){const[t,a]=n.useState(e.defaultValue),o=n.useRef();function l(t){a(t),e.onChange&&e.onChange(t)}return o.current=t,n.createElement(r.Group,{spacing:"xs",grow:!0,noWrap:!0},n.createElement(r.TextInput,{"data-testid":e.name+"-name",name:e.name+"-name",placeholder:"Name",style:{width:180},defaultValue:t?.name,onChange:e=>function(e){const t={...o.current,name:e};e||delete t.name,l(t)}(e.currentTarget.value)}),n.createElement(It,{name:e.name+"-telecom",defaultValue:t?.telecom?.[0],onChange:function(e){const t={...o.current,telecom:e&&[e]};e||delete t.telecom,l(t)}}))}function Rt(e){return n.createElement(r.TextInput,{id:e.name,name:e.name,"data-testid":e.name,placeholder:e.placeholder,required:e.required,type:"datetime-local",defaultValue:At(e.defaultValue),error:Ct(e.outcome,e.name),onChange:t=>{if(e.onChange){const n=t.currentTarget.value;e.onChange(Pt(n))}}})}function At(e){if(!e)return"";const n=new Date(e);return t.isValidDate(n)?n.toLocaleDateString("sv")+"T"+n.toLocaleTimeString("sv"):""}function Pt(e){if(!e)return"";const n=new Date(e);return t.isValidDate(n)?n.toISOString():""}function Dt(e){return n.createElement(r.JsonInput,{id:e.name,name:e.name,"data-testid":"extension-input",defaultValue:t.stringify(e.defaultValue),deserialize:JSON.parse,onChange:t=>{e.onChange&&e.onChange(JSON.parse(t))}})}function Ot(e){const[t,a]=n.useState(e.defaultValue),o=n.useRef();function l(t){a(t),e.onChange&&e.onChange(t)}return o.current=t,n.createElement(r.Group,{spacing:"xs",grow:!0,noWrap:!0},n.createElement(r.NativeSelect,{defaultValue:t?.use,name:e.name+"-use","data-testid":"use",onChange:e=>{return t=e.currentTarget.value,void l({...o.current,use:t||void 0});var t},data:["","temp","old","usual","official","nickname","anonymous","maiden"]}),n.createElement(r.TextInput,{placeholder:"Prefix",name:e.name+"-prefix",defaultValue:t?.prefix?.join(" "),onChange:e=>{return t=e.currentTarget.value,void l({...o.current,prefix:t?t.split(" "):void 0});var t}}),n.createElement(r.TextInput,{placeholder:"Given",name:e.name+"-given",defaultValue:t?.given?.join(" "),onChange:e=>{return t=e.currentTarget.value,void l({...o.current,given:t?t.split(" "):void 0});var t}}),n.createElement(r.TextInput,{name:e.name+"-family",placeholder:"Family",defaultValue:t?.family,onChange:e=>{return t=e.currentTarget.value,void l({...o.current,family:t||void 0});var t}}),n.createElement(r.TextInput,{placeholder:"Suffix",name:e.name+"-suffix",defaultValue:t?.suffix?.join(" "),onChange:e=>{return t=e.currentTarget.value,void l({...o.current,suffix:t?t.split(" "):void 0});var t}}))}function Vt(e){const[t,a]=n.useState(e.defaultValue);function o(t){a(t),e.onChange&&e.onChange(t)}return n.createElement(r.Group,{spacing:"xs",grow:!0,noWrap:!0},n.createElement(r.TextInput,{placeholder:"System",defaultValue:t?.system,onChange:e=>o({...t,system:e.currentTarget.value})}),n.createElement(r.TextInput,{placeholder:"Value",defaultValue:t?.value,onChange:e=>o({...t,value:e.currentTarget.value})}))}const Nt=["USD","EUR","CAD","GBP","AUD"];function zt(e){const{onChange:t}=e,[a,o]=n.useState(e.defaultValue),l=n.useCallback((e=>{o(e),t&&t(e)}),[t]),c=n.useCallback((e=>{l({...a,currency:e.currentTarget.value})}),[a,l]),i=n.useCallback((e=>{l({...a,value:e.currentTarget.valueAsNumber})}),[a,l]),s=n.createElement(r.NativeSelect,{defaultValue:a?.currency,data:Nt,styles:{input:{fontWeight:500,borderTopLeftRadius:0,borderBottomLeftRadius:0,width:92}},onChange:c});return n.createElement(r.TextInput,{type:"number",label:e.label,placeholder:e.placeholder||"Value",defaultValue:a?.value?.toString()||"USD",icon:n.createElement(G,{size:14}),rightSection:s,rightSectionWidth:92,onChange:i})}function Lt(e){const[t,a]=n.useState(e.defaultValue);function o(t){a(t),e.onChange&&e.onChange(t)}return n.createElement(r.Group,{spacing:"xs",grow:!0,noWrap:!0},n.createElement(Rt,{name:e.name+".start",placeholder:"Start",defaultValue:t?.start,onChange:e=>o({...t,start:e})}),n.createElement(Rt,{name:e.name+".end",placeholder:"End",defaultValue:t?.end,onChange:e=>o({...t,end:e})}))}function $t(e){const[t,a]=n.useState(e.defaultValue);function o(t){a(t),e.onChange&&e.onChange(t)}return n.createElement(r.Group,{spacing:"xs",grow:!0,noWrap:!0},n.createElement(r.NativeSelect,{style:{width:80},"data-testid":e.name+"-comparator",defaultValue:t?.comparator,data:["","<","<=",">=",">"],onChange:e=>o({...t,comparator:e.currentTarget.value})}),n.createElement(r.TextInput,{id:e.name,name:e.name,"data-testid":e.name+"-value",type:"number",placeholder:"Value",defaultValue:t?.value,step:"any",onWheel:t=>{e.disableWheel&&t.currentTarget.blur()},onChange:e=>{o({...t,value:Ft(e.currentTarget.value)})}}),n.createElement(r.TextInput,{placeholder:"Unit","data-testid":e.name+"-unit",defaultValue:t?.unit,onChange:e=>o({...t,unit:e.currentTarget.value})}))}function Ft(e){if(e)return parseFloat(e)}function Bt(e){const[t,a]=n.useState(e.defaultValue);function o(t){a(t),e.onChange&&e.onChange(t)}return n.createElement(r.Group,{spacing:"xs",grow:!0,noWrap:!0},n.createElement($t,{name:e.name+"-low",defaultValue:t?.low,onChange:e=>o({...t,low:e})}),n.createElement($t,{name:e.name+"-high",defaultValue:t?.high,onChange:e=>o({...t,high:e})}))}function Ut(e){const[t,a]=n.useState(e.defaultValue);function o(t){a(t),e.onChange&&e.onChange(t)}return n.createElement(r.Group,{spacing:"xs",grow:!0,noWrap:!0},n.createElement($t,{name:e.name+"-numerator",defaultValue:t?.numerator,onChange:e=>o({...t,numerator:e})}),n.createElement($t,{name:e.name+"-denominator",defaultValue:t?.denominator,onChange:e=>o({...t,denominator:e})}))}const qt={Schedule:"_id",Task:"_id",Patient:"name",Practitioner:"name",Questionnaire:"name",ServiceRequest:"_id",DiagnosticReport:"_id",Specimen:"_id",Observation:"code",RequestGroup:"_id",ActivityDefinition:"name",User:"email:contains"};function _t(e){const a=p(),o=ke(e.defaultValue),[l,c]=n.useState(o?t.getDisplayString(o):""),[i,s]=n.useState(!1),[u,m]=n.useState([]);async function d(n){s(!0);const r=qt[e.resourceType]||"name",o=new URLSearchParams({[r]:n,_count:"10"}),l=await a.searchResources(e.resourceType,o);m(l.map((e=>({value:t.getDisplayString(e),resource:e})))),s(!1)}return n.useEffect((()=>{o&&c(t.getDisplayString(o))}),[o,c]),n.createElement(r.Autocomplete,{name:e.name,itemComponent:Gt,value:l,data:u,placeholder:e.placeholder,onFocus:()=>d(l),onChange:async function(e){return c(e),d(e)},onItemSubmit:function(t){c(t.value),m([]),e.onChange&&e.onChange(t.resource)},rightSection:i?n.createElement(r.Loader,{size:16}):null})}const Gt=n.forwardRef((({value:e,resource:t,...a},o)=>n.createElement("div",{ref:o,...a},n.createElement(r.Group,{noWrap:!0},n.createElement(Se,{value:t}),n.createElement("div",null,n.createElement(r.Text,null,e),n.createElement(r.Text,{size:"xs",color:"dimmed"},t.birthDate))))));function jt(e){const a=function(e){if(!e||0===e.length||1===e.length&&"Resource"===e[0])return;return e}(e.targetTypes),o=function(e,t){const n=e?.reference?.split("/")[0];if(n)return n;if(t&&t.length>0)return t[0];return}(e.defaultValue,a),[l,c]=n.useState(e.defaultValue),[i,s]=n.useState(o);n.useRef().current=l;return n.useRef().current=i,n.createElement(r.Group,{spacing:"xs",grow:!0,noWrap:!0},a?n.createElement(r.NativeSelect,{"data-testid":"reference-input-resource-type-select",defaultValue:i,onChange:e=>s(e.currentTarget.value),data:a}):n.createElement(r.TextInput,{"data-testid":"reference-input-resource-type-input",defaultValue:i,onChange:e=>s(e.currentTarget.value)}),n.createElement(_t,{resourceType:i,name:e.name+"-id",placeholder:e.placeholder,defaultValue:l,onChange:n=>{var r;r=n?t.createReference(n):void 0,c(r),e.onChange&&e.onChange(r)}}))}function Wt(e){const[t,a]=n.useState(e.defaultValue&&Array.isArray(e.defaultValue)?e.defaultValue:[]),o=n.useRef();function l(t){a(t),e.onChange&&e.onChange(t)}return o.current=t,n.createElement("table",{style:{width:"100%",borderCollapse:"collapse"}},n.createElement("colgroup",null,n.createElement("col",{width:"97%"}),n.createElement("col",{width:"3%"})),n.createElement("tbody",null,t.map(((a,c)=>n.createElement("tr",{key:`${c}-${t.length}`},n.createElement("td",null,n.createElement(Yt,{arrayElement:!0,property:e.property,name:e.name+"."+c,defaultValue:a,onChange:e=>{const t=[...o.current];t[c]=e,l(t)}})),n.createElement("td",{style:{textAlign:"right"}},n.createElement(r.ActionIcon,{title:"Remove",size:"sm",onClick:e=>{ye(e);const t=[...o.current];t.splice(c,1),l(t)}},n.createElement(B,null)))))),n.createElement("tr",null,n.createElement("td",null),n.createElement("td",{style:{textAlign:"right"}},n.createElement(r.ActionIcon,{title:"Add",size:"sm",color:"green",onClick:e=>{ye(e);const t=[...o.current];t.push(void 0),l(t)}},n.createElement(U,null))))))}const Qt=["sun","mon","tue","wed","thu","fri","sat"];function Ht(e){const[a,o]=n.useState(e.defaultValue),[l,c]=n.useState(!1),i=n.useRef();return i.current=a,n.createElement(n.Fragment,null,n.createElement(r.Group,{spacing:"xs",grow:!0,noWrap:!0},n.createElement("span",null,t.formatTiming(i.current)||"No repeat"),n.createElement(r.Button,{onClick:()=>c(!0)},"Edit")),n.createElement(Jt,{visible:l,defaultValue:i.current,onOk:t=>{e.onChange&&e.onChange(t),o(t),c(!1)},onCancel:()=>c(!1)}))}const Kt={repeat:{period:1,periodUnit:"d"}};function Jt(e){const[t,a]=n.useState(e.defaultValue||Kt),o=n.useRef();function l(e){a({...o.current,repeat:e})}return o.current=t,n.createElement(r.Modal,{title:"Timing",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:()=>e.onCancel()},n.createElement(r.Stack,null,n.createElement(bt,{title:"Starts on",htmlFor:"timing-dialog-start"},n.createElement(Rt,{name:"timing-dialog-start",onChange:e=>{return t=e,void a({...o.current,event:[t]});var t}})),n.createElement(r.Switch,{label:"Repeat",checked:!!t.repeat,onChange:e=>l(e.currentTarget.checked?Kt.repeat:void 0)}),t.repeat&&n.createElement(n.Fragment,null,n.createElement(bt,{title:"Repeat every",htmlFor:"timing-dialog-period"},n.createElement(r.Group,{spacing:"xs",grow:!0,noWrap:!0},n.createElement(r.TextInput,{type:"number",step:1,id:"timing-dialog-period",name:"timing-dialog-period",defaultValue:t?.repeat?.period||1,onChange:e=>{return t=parseInt(e.currentTarget.value)||1,void l({...o.current?.repeat,period:t});var t}}),n.createElement(r.NativeSelect,{id:"timing-dialog-periodUnit",name:"timing-dialog-periodUnit",defaultValue:t?.repeat?.periodUnit,onChange:e=>{return t=e.currentTarget.value,void l({...o.current?.repeat,periodUnit:t});var t},data:[{label:"second",value:"s"},{label:"minute",value:"min"},{label:"hour",value:"h"},{label:"day",value:"d"},{label:"week",value:"wk"},{label:"month",value:"mo"},{label:"year",value:"a"}]}))),"wk"===t.repeat?.periodUnit&&n.createElement(bt,{title:"Repeat on"},n.createElement(r.Chip.Group,{multiple:!0,onChange:function(e){l({...o.current?.repeat,dayOfWeek:e})}},n.createElement(r.Group,{position:"apart",mt:"md",spacing:"xs"},Qt.map((e=>n.createElement(r.Chip,{key:e,value:e,size:"xs",radius:"xl"},e.charAt(0).toUpperCase()))))))),n.createElement(r.Group,{position:"right"},n.createElement(r.Button,{onClick:()=>e.onOk(t)},"OK"))))}function Yt(e){const t=e.property,r=e.defaultPropertyType??t.type?.[0]?.code,a=e.name,o=e.defaultValue;if("*"===t.max&&!e.arrayElement)return"Attachment"===r?n.createElement(Ze,{name:a,defaultValue:o,onChange:e.onChange}):n.createElement(Wt,{property:t,name:a,defaultValue:o,onChange:e.onChange});const l=t.type;return l.length>1?n.createElement(Xt,{elementDefinitionTypes:l,...e}):n.createElement(Zt,{elementDefinitionType:l[0],...e})}function Xt(e){const a=e.elementDefinitionTypes;let o;e.defaultPropertyType&&(o=a.find((t=>t.code===e.defaultPropertyType))),o||(o=a[0]);const[l,c]=n.useState(o);return n.createElement(r.Group,{spacing:"xs",grow:!0,noWrap:!0},n.createElement(r.NativeSelect,{style:{width:"200px"},defaultValue:l?.code,onChange:e=>{c(a.find((t=>t.code===e.currentTarget.value)))},data:a.map((e=>({value:e.code,label:e.code})))}),n.createElement(Zt,{...e,elementDefinitionType:l,onChange:n=>{e.onChange&&e.onChange(n,e.name.replace("[x]",t.capitalize(l.code)))}}))}function Zt(e){const a=e.property,o=e.elementDefinitionType.code,l=e.name,c=e.defaultValue,i=void 0!==a.min&&a.min>0;switch(o){case t.PropertyType.SystemString:case t.PropertyType.canonical:case t.PropertyType.string:case t.PropertyType.time:case t.PropertyType.uri:case t.PropertyType.url:return n.createElement(r.TextInput,{id:l,name:l,"data-testid":l,defaultValue:c,required:i,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.value)},error:Ct(e.outcome,l)});case t.PropertyType.date:return n.createElement(r.TextInput,{type:"date",id:l,name:l,"data-testid":l,defaultValue:c,required:i,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.value)},error:Ct(e.outcome,l)});case t.PropertyType.dateTime:case t.PropertyType.instant:return n.createElement(Rt,{name:l,defaultValue:c,onChange:e.onChange,outcome:e.outcome});case t.PropertyType.decimal:case t.PropertyType.integer:case t.PropertyType.positiveInt:case t.PropertyType.unsignedInt:return n.createElement(r.TextInput,{type:"number",step:o===t.PropertyType.decimal?"any":"1",id:l,name:l,"data-testid":l,defaultValue:c,required:i,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.valueAsNumber)}});case t.PropertyType.code:return n.createElement(je,{property:a,name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.boolean:return n.createElement(r.Checkbox,{id:l,name:l,"data-testid":l,defaultChecked:!!c,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.checked)}});case t.PropertyType.markdown:return n.createElement(r.Textarea,{id:l,name:l,"data-testid":l,defaultValue:c,required:i,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.value)}});case t.PropertyType.Address:return n.createElement(u,{name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.Annotation:return n.createElement(E,{name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.Attachment:return n.createElement(et,{name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.CodeableConcept:return n.createElement(xt,{property:a,name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.Coding:return n.createElement(wt,{property:a,name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.ContactDetail:return n.createElement(Mt,{name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.ContactPoint:return n.createElement(It,{name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.Extension:return n.createElement(Dt,{name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.HumanName:return n.createElement(Ot,{name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.Identifier:return n.createElement(Vt,{name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.Money:return n.createElement(zt,{name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.Period:return n.createElement(Lt,{name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.Duration:case t.PropertyType.Quantity:return n.createElement($t,{name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.Range:return n.createElement(Bt,{name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.Ratio:return n.createElement(Ut,{name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.Reference:return n.createElement(jt,{name:l,defaultValue:c,targetTypes:en(a),onChange:e.onChange});case t.PropertyType.Timing:return n.createElement(Ht,{name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.Dosage:case t.PropertyType.UsageContext:return n.createElement(tn,{typeName:o,defaultValue:c,onChange:e.onChange,outcome:e.outcome});default:return n.createElement(tn,{typeName:t.getElementDefinitionTypeName(a),defaultValue:c,onChange:e.onChange,outcome:e.outcome})}}function en(e){return e?.type?.[0]?.targetProfile?.map((e=>e.split("/").pop()))}function tn(e){const[a,o]=n.useState(e.defaultValue??{});function l(t){o(t),e.onChange&&e.onChange(t)}const c=e.typeName,i=t.globalSchema.types[c];if(!i)return n.createElement("div",null,c," not implemented");const s={type:c,value:a};return n.createElement(r.Stack,null,Object.entries(i.properties).map((r=>{const o=r[0];if("id"===o||tt.indexOf(o)>=0)return null;const c=r[1];if(!c.type)return null;const[i,u]=Et(s,o),m=void 0!==c.min&&c.min>0;return 1===c.type.length&&"boolean"===c.type[0].code?n.createElement(vt,{key:o,title:t.getPropertyDisplayName(o),description:c.definition,htmlFor:o},n.createElement(Yt,{property:c,name:o,defaultValue:i,defaultPropertyType:u,outcome:e.outcome,onChange:(e,t)=>{l(St(a,o,t??o,r[1],e))}})):n.createElement(bt,{key:o,title:t.getPropertyDisplayName(o),description:c.definition,withAsterisk:m,htmlFor:o,outcome:e.outcome},n.createElement(Yt,{property:c,name:o,defaultValue:i,defaultPropertyType:u,onChange:(e,t)=>{l(St(a,o,t??o,r[1],e))}}))})))}const nn=r.createStyles((e=>({table:{width:350,"& th":{fontWeight:"normal",fontSize:11,padding:8,textAlign:"center"},"& td":{padding:"2px 4px"},"& td button":{width:44,height:44,color:e.colors[e.primaryColor][5],fontSize:16,fontWeight:500,textAlign:"center",padding:0,backgroundColor:e.colors[e.primaryColor][0],border:0,borderRadius:"50%",cursor:"pointer"},"& td button:hover":{backgroundColor:e.colors[e.primaryColor][1]},"& td button:disabled":{backgroundColor:"transparent",cursor:"default",color:e.colors.gray[4],fontWeight:"normal"}}})));function rn(e){return e.toLocaleString("default",{month:"long"})+" "+e.getFullYear()}function an(e){const{classes:t}=nn(),{onChangeMonth:a,onClick:o}=e,[l,c]=n.useState(on);function i(e){c((t=>{const n=new Date(t.getTime());return n.setMonth(t.getMonth()+e),a(n),n}))}const s=n.useMemo((()=>function(e,t){const n=new Date(e.getFullYear(),e.getMonth()),r=[];let a=[];for(let e=0;e<n.getDay();e++)a.push(void 0);for(;n.getMonth()===e.getMonth();)a.push({date:new Date(n.getTime()),available:ln(n,t)}),6===n.getDay()&&(r.push(a),a=[]),n.setDate(n.getDate()+1);if(0!==n.getDay()){for(let e=n.getDay();e<7;e++)a.push(void 0);r.push(a)}return r}(l,e.slots)),[l,e.slots]);return n.createElement("div",null,n.createElement(r.Group,{position:"apart",spacing:"xs",grow:!0,noWrap:!0},n.createElement("p",{style:{flex:1}},rn(l)),n.createElement(r.Group,{position:"right",spacing:"xs"},n.createElement(r.Button,{variant:"outline","aria-label":"Previous month",onClick:()=>i(-1)},"<"),n.createElement(r.Button,{variant:"outline","aria-label":"Next month",onClick:()=>i(1)},">"))),n.createElement("table",{className:t.table},n.createElement("thead",null,n.createElement("tr",null,n.createElement("th",null,"SUN"),n.createElement("th",null,"MON"),n.createElement("th",null,"TUE"),n.createElement("th",null,"WED"),n.createElement("th",null,"THU"),n.createElement("th",null,"FRI"),n.createElement("th",null,"SAT"))),n.createElement("tbody",null,s.map(((e,t)=>n.createElement("tr",{key:"week-"+t},e.map(((e,t)=>n.createElement("td",{key:"day-"+t},e&&n.createElement(r.Button,{disabled:!e.available,onClick:()=>o(e.date)},e.date.getDate()))))))))))}function on(){const e=new Date;return e.setDate(1),e.setHours(0,0,0,0),e}function ln(e,t){for(const n of t){const t=new Date(n.start);if(t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth()&&t.getDate()===e.getDate())return!0}return!1}const cn=r.createStyles((()=>({root:{"@media (max-width: 800px)":{paddingLeft:4,paddingRight:4}}})));function sn(e){const{children:t,...a}=e,{classes:o}=cn();return n.createElement(r.Container,{className:o.root,...a},t)}const un=r.createStyles((e=>({noteBody:{fontSize:e.fontSizes.sm},noteCite:{fontSize:e.fontSizes.xs,marginBlockStart:3},noteRoot:{padding:5}})));function mn({value:e}){const{classes:t}=un();return e?n.createElement(r.Stack,{justify:"flex-start",spacing:"xs"},e.map(((e,a)=>e.text&&n.createElement(r.Blockquote,{key:`note-${a}`,classNames:{cite:t.noteCite,body:t.noteBody,root:t.noteRoot},cite:e.authorReference?.display||e.authorString,icon:null},e.text)))):null}function dn(e){const{value:a,link:o,...l}=e,[c,i]=n.useState(),s=ke(a,i);let u;if(c&&!t.isOk(c))u=`[${t.normalizeErrorString(c)}]`;else{if(!s)return null;u=t.getDisplayString(s)}return o?n.createElement(Te,{to:a,...l},u):n.createElement(r.Text,{component:"span",...l},u)}function pn(e){return n.createElement(r.Group,{spacing:"xs"},n.createElement(Se,{size:24,radius:12,value:e.value,link:e.link}),n.createElement(dn,{value:e.value,link:e.link}))}const hn={draft:"blue",active:"blue","on-hold":"yellow",revoked:"red",completed:"green","entered-in-error":"red",unknown:"gray",retired:"gray",registered:"blue",preliminary:"blue",final:"green",amended:"yellow",corrected:"yellow",cancelled:"red",requested:"blue",received:"blue",accepted:"blue",rejected:"red",ready:"blue","in-progress":"blue",failed:"red",proposed:"blue",pending:"blue",booked:"blue",arrived:"blue",fulfilled:"green",noshow:"red","checked-in":"blue",waitlist:"gray",routine:"gray",urgent:"red",asap:"red",stat:"red"};function gn(e){return n.createElement(r.Badge,{color:hn[e.status]},e.status)}const fn=r.createStyles((e=>({table:{border:`0.1px solid ${e.colors.gray[5]}`,borderCollapse:"collapse","& td, & th":{border:`0.1px solid ${e.colors.gray[5]}`,padding:4}},criticalRow:{background:"dark"===e.colorScheme?e.colors.red[7]:e.colors.red[1],border:`0.1px solid ${e.colors.red[5]}`,color:e.colors.red[5],fontWeight:500,"& td":{border:`0.1px solid ${e.colors.red[5]}`}},noteBody:{fontSize:e.fontSizes.sm},noteCite:{fontSize:e.fontSizes.xs,marginBlockStart:3},noteRoot:{padding:5}})));function En(e){const a=p(),o=ke(e.value),[l,c]=n.useState();if(n.useEffect((()=>{o?.specimen&&Promise.allSettled(o.specimen.map((e=>a.readReference(e)))).then((e=>e.filter((e=>"fulfilled"===e.status)).map((e=>e.value)))).then(c).catch(console.error)}),[a,o]),!o)return null;const i=l?.flatMap((e=>e.note||[]))||[];if(o.presentedForm&&o.presentedForm.length>0){const e=o.presentedForm[0];e.contentType?.startsWith("text/plain")&&e.data&&i.push({text:window.atob(e.data)})}return n.createElement(r.Stack,null,n.createElement(r.Title,null,"Diagnostic Report"),n.createElement(yn,{value:o}),!e.hideSpecimenInfo&&function(e){return n.createElement(r.Stack,{spacing:"xs"},n.createElement(r.Title,{order:2,size:"h6"},"Specimens"),n.createElement(r.List,{type:"ordered"},e?.map(((e,a)=>n.createElement(r.List.Item,{ml:"sm",key:`specimen-${e.id}-${a}`},n.createElement(r.Group,{spacing:20},n.createElement(r.Group,{spacing:5},n.createElement(r.Text,{fw:500},"Collected:")," ",t.formatDateTime(e.collection?.collectedDateTime)),n.createElement(r.Group,{spacing:5},n.createElement(r.Text,{fw:500},"Received:")," ",t.formatDateTime(e.receivedTime))))))))}(l),o.result&&n.createElement(vn,{hideObservationNotes:e.hideObservationNotes,value:o.result}),i.length>0&&n.createElement(mn,{value:i}))}function yn({value:e}){return n.createElement(r.Group,{mt:"md",spacing:30},e.subject&&n.createElement("div",null,n.createElement(r.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Subject"),n.createElement(r.Text,null,n.createElement(pn,{value:e.subject,link:!0}))),e.resultsInterpreter&&e.resultsInterpreter.map((e=>n.createElement("div",{key:e.reference},n.createElement(r.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Interpreter"),n.createElement(r.Text,null,n.createElement(pn,{value:e,link:!0}))))),e.performer&&e.performer.map((e=>n.createElement("div",{key:e.reference},n.createElement(r.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Performer"),n.createElement(r.Text,null,n.createElement(pn,{value:e,link:!0}))))),e.issued&&n.createElement("div",null,n.createElement(r.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Issued"),n.createElement(r.Text,null,t.formatDateTime(e.issued))),e.status&&n.createElement("div",null,n.createElement(r.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Status"),n.createElement(r.Text,null,t.capitalize(e.status))))}function vn(e){const{classes:t}=fn();return n.createElement("table",{className:t.table},n.createElement("thead",null,n.createElement("tr",null,n.createElement("th",null,"Test"),n.createElement("th",null,"Value"),n.createElement("th",null,"Reference Range"),n.createElement("th",null,"Interpretation"),n.createElement("th",null,"Category"),n.createElement("th",null,"Performer"),n.createElement("th",null,"Status"))),n.createElement("tbody",null,e.value?.map(((t,r)=>n.createElement(Cn,{key:`obs-${t.id}-${r}`,hideObservationNotes:e.hideObservationNotes,value:t})))))}function Cn(e){const{classes:t,cx:r}=fn(),a=ke(e.value);if(!a)return null;const o=!e.hideObservationNotes&&a?.note,l=function(e){const t=e.interpretation?.[0]?.coding?.[0]?.code;return"AA"===t||"LL"===t||"HH"===t||"A"===t}(a);return n.createElement(n.Fragment,null,n.createElement("tr",{className:r({[t.criticalRow]:l})},n.createElement("td",{rowSpan:o?2:1},n.createElement(Te,{to:a},n.createElement(ot,{value:a.code}))),n.createElement("td",null,n.createElement(Tn,{value:a})),n.createElement("td",null,n.createElement(kn,{value:a.referenceRange})),n.createElement("td",null,a.interpretation&&a.interpretation.length>0&&n.createElement(ot,{value:a.interpretation[0]})),n.createElement("td",null,a.category&&a.category.length>0&&n.createElement("ul",null,a.category.map(((e,t)=>n.createElement("li",{key:`category-${t}`},n.createElement(ot,{value:e})))))),n.createElement("td",null,a.performer?.map((e=>n.createElement(ht,{key:e?.reference,value:e})))),n.createElement("td",null,a.status&&n.createElement(gn,{status:a.status}))),o&&n.createElement("tr",null,n.createElement("td",{colSpan:6},n.createElement(mn,{value:a.note}))))}function Tn(e){const r=e.value;return n.createElement(n.Fragment,null,t.formatObservationValue(r))}function kn(e){const t=e.value&&e.value.length>0&&e.value[0];return t?t.text?n.createElement(n.Fragment,null,t.text):n.createElement(dt,{value:t}):null}En.defaultProps={hideObservationNotes:!1,hideSpecimenInfo:!1};const bn=r.createStyles(((e,{width:t,fill:n})=>({paper:{maxWidth:t,margin:`${e.spacing.xl} auto`,padding:n?0:e.spacing.md,"@media (max-width: 800px)":{padding:n?0:8},"& img":{width:"100%",maxWidth:"100%"},"& video":{width:"100%",maxWidth:"100%"}}}))),Sn={shadow:"xs",radius:"md",withBorder:!0};function xn(e){const{className:t,children:a,width:o,fill:l,unstyled:c,...i}=r.useComponentDefaultProps("Panel",Sn,e),{classes:s,cx:u}=bn({width:o,fill:l},{name:"Panel",unstyled:c});return n.createElement(r.Paper,{className:u(s.paper,t),...i},a)}const wn=r.createStyles((e=>({root:{borderCollapse:"collapse",width:"100%","& tr":{borderTop:`0.1px solid ${e.colors.gray[3]}`},"& th, & td":{padding:`${e.spacing.sm} ${e.spacing.sm}`,verticalAlign:"top"}},removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}})));function In(e){const{classes:r}=wn(),a=p(),[o,l]=n.useState();if(n.useEffect((()=>{a.requestSchema(e.original.resourceType).then(l).catch(console.log)}),[a,e.original.resourceType]),!o)return null;const c=o.types[e.original.resourceType];return c?n.createElement("table",{className:r.root},n.createElement("colgroup",null,n.createElement("col",{style:{width:"30%"}}),n.createElement("col",{style:{width:"35%"}}),n.createElement("col",{style:{width:"35%"}})),n.createElement("thead",null,n.createElement("tr",null,n.createElement("th",null,"Property"),n.createElement("th",null,"Before"),n.createElement("th",null,"After"))),n.createElement("tbody",null,Object.entries(c.properties).map((a=>{const o=a[0];if("id"===o||"meta"===o)return null;const l=a[1],[c,i]=Et(t.toTypedValue(e.original),o),[s,u]=Et(t.toTypedValue(e.revised),o);return Mn(c)&&Mn(s)||t.stringify(c)===t.stringify(s)?null:n.createElement("tr",{key:o},n.createElement("td",null,t.getPropertyDisplayName(o)),n.createElement("td",{className:r.removed},n.createElement(ft,{property:l,propertyType:i,value:c,ignoreMissingValues:!0})),n.createElement("td",{className:r.added},n.createElement(ft,{property:l,propertyType:u,value:s,ignoreMissingValues:!0})))})))):null}function Mn(e){return!e||Array.isArray(e)&&0===e.length||"object"==typeof e&&0===Object.keys(e).length}function Rn(e){const t=p(),r=ke(e.value),[a,o]=n.useState();return n.useEffect((()=>{r&&t.requestSchema(r.resourceType).then(o).catch(console.log)}),[t,r]),a&&r?n.createElement(yt,{value:{type:r.resourceType,value:e.forceUseInput?e.value:r},ignoreMissingValues:e.ignoreMissingValues}):null}function An(e){return n.createElement(sn,null,e.children)}function Pn(e){const{resource:a,profile:o,padding:l,popupMenuItems:c,...i}=e,s=o??a.meta?.author;return n.createElement(xn,{"data-testid":"timeline-item",fill:!0,...i},n.createElement(r.Group,{position:"apart",spacing:8,mx:"xs",my:"sm"},n.createElement(Se,{value:s,link:!0,size:"md"}),n.createElement("div",{style:{flex:1}},n.createElement(r.Text,{size:"sm"},n.createElement(dn,{color:"dark",weight:500,value:s,link:!0})),n.createElement(r.Text,{size:"xs"},n.createElement(Te,{color:"dimmed",to:e.resource},t.formatDateTime(e.resource.meta?.lastUpdated)),n.createElement(r.Text,{component:"span",color:"dimmed",mx:8},"·"),n.createElement(Te,{color:"dimmed",to:e.resource},e.resource.resourceType))),c&&n.createElement(r.Menu,{position:"bottom-end",shadow:"md",width:200},n.createElement(r.Menu.Target,null,n.createElement(r.ActionIcon,{radius:"xl","aria-label":`Actions for ${t.getReferenceString(e.resource)}`},n.createElement(j,null))),c)),n.createElement(ge,null,l&&n.createElement("div",{style:{padding:"0 16px 16px 16px"}},e.children),!l&&n.createElement(n.Fragment,null,e.children)))}function Dn(e,t){e.sort(((e,n)=>{const r=On(e),a=On(n);return r>a?1:r<a?-1:Vn(e,t)-Vn(n,t)}))}function On(e){const t=e.priority;return"string"==typeof t&&{stat:4,asap:3,urgent:2}[t]||0}function Vn(e,t){if(n=e,!(r=t)||n.resourceType!==r.resourceType||n.id!==r.id){if("Communication"===e.resourceType&&e.sent)return new Date(e.sent).getTime();if(("DiagnosticReport"===e.resourceType||"Media"===e.resourceType||"Observation"===e.resourceType)&&e.issued)return new Date(e.issued).getTime();if("DocumentReference"===e.resourceType&&e.date)return new Date(e.date).getTime()}var n,r;const a=e.meta?.lastUpdated;return a?new Date(a).getTime():0}const Nn=r.createStyles((e=>({pinnedComment:{backgroundColor:e.colors.blue[0]}})));function zn(e){const a=p(),o=h(),c=a.getProfile(),i=n.useRef(null),s=ke(e.value),[u,m]=n.useState(),[d,g]=n.useState([]),f=e.loadTimelineResources,E=n.useRef(d);E.current=d;const y=n.useCallback((e=>{Dn(e,s),e.reverse(),g(e)}),[s]),v=n.useCallback((e=>{const t=[];for(const n of e){if("fulfilled"!==n.status)continue;const e=n.value;if("history"===e.type&&m(e),e.entry)for(const n of e.entry)t.push(n.resource)}y(t)}),[y]),C=n.useCallback((e=>y([...E.current,e])),[y]),T=n.useCallback((()=>{let t,n;"resourceType"in e.value?(t=e.value.resourceType,n=e.value.id):[t,n]=e.value.reference?.split("/"),f(a,t,n).then(v).catch(console.log)}),[a,e.value,f,v]);function k(e,t){return a.updateResource({...e,priority:t})}function b(e){k(e,"stat").then(T).catch(console.log)}function S(e){k(e,"routine").then(T).catch(console.log)}function x(e){o(`/${e.resourceType}/${e.id}`)}function w(e){o(`/${e.resourceType}/${e.id}/edit`)}function I(e){o(`/${e.resourceType}/${e.id}/delete`)}function M(e){o(`/${e.resourceType}/${e.id}/_history/${e.meta?.versionId}`)}return n.useEffect((()=>T()),[T]),s?n.createElement(An,null,e.createCommunication&&n.createElement(xn,null,n.createElement($e,{testid:"timeline-form",onSubmit:t=>{var n;n=t.text,s&&e.createCommunication&&a.createResource(e.createCommunication(s,c,n)).then((e=>C(e))).catch(console.log);const r=i.current;r&&(r.value="",r.focus())}},n.createElement(r.Group,{spacing:"xs",noWrap:!0,style:{width:"100%"}},n.createElement(Se,{value:c}),n.createElement(r.TextInput,{name:"text",ref:i,placeholder:"Add comment",style:{width:"100%",maxWidth:300}}),n.createElement(r.ActionIcon,{type:"submit",radius:"xl",color:"blue",variant:"filled"},n.createElement(ne,{size:16})),n.createElement(Xe,{onUpload:function(r){s&&e.createMedia&&a.createResource(e.createMedia(s,c,r)).then((e=>C(e))).then((()=>l.updateNotification({id:"upload-notification",color:"teal",title:"Upload complete",message:"",icon:n.createElement(L,{size:16}),autoClose:2e3}))).catch((e=>l.updateNotification({id:"upload-notification",color:"red",title:"Upload error",message:t.normalizeErrorString(e),icon:n.createElement(K,{size:16}),autoClose:2e3})))},onUploadStart:function(){l.showNotification({id:"upload-notification",loading:!0,title:"Initializing upload...",message:"Please wait...",autoClose:!1,withCloseButton:!1})},onUploadProgress:function(e){l.updateNotification({id:"upload-notification",loading:!0,title:"Uploading...",message:_n(e),autoClose:!1,withCloseButton:!1})}},(e=>n.createElement(r.ActionIcon,{...e,radius:"xl",color:"blue",variant:"filled"},n.createElement(q,{size:16}))))))),d.map((e=>{if(!e)return null;const t=`${e.resourceType}/${e.id}/${e.meta?.versionId}`;if(e.resourceType===s.resourceType&&e.id===s.id)return n.createElement($n,{key:t,history:u,resource:e,onDetails:M});switch(e.resourceType){case"AuditEvent":return n.createElement(Un,{key:t,resource:e,onDetails:x});case"Communication":return n.createElement(Fn,{key:t,resource:e,onPin:"stat"!==e.priority?b:void 0,onUnpin:"stat"===e.priority?S:void 0,onDetails:x,onEdit:w,onDelete:I});case"DiagnosticReport":return n.createElement(qn,{key:t,resource:e,onDetails:x,onEdit:w,onDelete:I});case"Media":return n.createElement(Bn,{key:t,resource:e,onDetails:x,onEdit:w,onDelete:I});default:return n.createElement(Pn,{key:t,resource:e,padding:!0},n.createElement(Rn,{value:e,ignoreMissingValues:!0}))}}))):n.createElement(r.Center,{style:{width:"100%",height:"100%"}},n.createElement(r.Loader,null))}function Ln(e){return n.createElement(r.Menu.Dropdown,null,n.createElement(r.Menu.Label,null,"Resource"),e.onPin&&n.createElement(r.Menu.Item,{icon:n.createElement(re,{size:14}),onClick:()=>e.onPin(e.resource),"aria-label":`Pin ${t.getReferenceString(e.resource)}`},"Pin"),e.onUnpin&&n.createElement(r.Menu.Item,{icon:n.createElement(ae,{size:14}),onClick:()=>e.onUnpin(e.resource),"aria-label":`Unpin ${t.getReferenceString(e.resource)}`},"Unpin"),e.onDetails&&n.createElement(r.Menu.Item,{icon:n.createElement(X,{size:14}),onClick:()=>e.onDetails(e.resource),"aria-label":`Details ${t.getReferenceString(e.resource)}`},"Details"),e.onEdit&&n.createElement(r.Menu.Item,{icon:n.createElement(W,{size:14}),onClick:()=>e.onEdit(e.resource),"aria-label":`Edit ${t.getReferenceString(e.resource)}`},"Edit"),e.onDelete&&n.createElement(n.Fragment,null,n.createElement(r.Menu.Divider,null),n.createElement(r.Menu.Label,null,"Danger zone"),n.createElement(r.Menu.Item,{color:"red",icon:n.createElement(pe,{size:14}),onClick:()=>e.onDelete(e.resource),"aria-label":`Delete ${t.getReferenceString(e.resource)}`},"Delete")))}function $n(e){const t=function(e,t){const n=e.entry,r=n.findIndex((e=>e.resource?.meta?.versionId===t.meta?.versionId));if(r>=n.length-1)return;return n[r+1].resource}(e.history,e.resource);return t?n.createElement(Pn,{resource:e.resource,padding:!0,popupMenuItems:n.createElement(Ln,{...e})},n.createElement(In,{original:t,revised:e.resource})):n.createElement(Pn,{resource:e.resource,padding:!0,popupMenuItems:n.createElement(Ln,{...e})},n.createElement("h3",null,"Created"),n.createElement(Rn,{value:e.resource,ignoreMissingValues:!0,forceUseInput:!0}))}function Fn(e){const{classes:t}=Nn(),r=!e.resource.priority||"routine"===e.resource.priority?void 0:t.pinnedComment;return n.createElement(Pn,{resource:e.resource,profile:e.resource.sender,padding:!0,className:r,popupMenuItems:n.createElement(Ln,{...e})},n.createElement("p",null,e.resource.payload?.[0]?.contentString))}function Bn(e){const t=e.resource.content?.contentType,r=t&&!t.startsWith("image/")&&!t.startsWith("video/")&&"application/pdf"!==t;return n.createElement(Pn,{resource:e.resource,padding:!!r,popupMenuItems:n.createElement(Ln,{...e})},n.createElement(Je,{value:e.resource.content}))}function Un(e){return n.createElement(Pn,{resource:e.resource,padding:!0,popupMenuItems:n.createElement(Ln,{...e})},n.createElement(r.ScrollArea,null,n.createElement("pre",null,e.resource.outcomeDesc)))}function qn(e){return n.createElement(Pn,{resource:e.resource,padding:!0,popupMenuItems:n.createElement(Ln,{...e})},n.createElement(En,{value:e.resource}))}function _n(e){if(e.lengthComputable){const t=100*e.loaded/e.total;return`Uploaded: ${Gn(e.loaded)} / ${Gn(e.total)} ${t.toFixed(2)}%`}return`Uploaded: ${Gn(e.loaded)}`}function Gn(e){if(0===e)return"0.00 B";const t=Math.floor(Math.log(e)/Math.log(1024));return(e/Math.pow(1024,t)).toFixed(2)+" "+" KMGTP".charAt(t)+"B"}function jn(e){const{children:t,...r}=e;return n.createElement(sn,null,n.createElement(xn,{...r},t))}function Wn(e){let r;try{r=t.evalFhirPath(e.path,e.resource)}catch(e){return console.warn("FhirPathDisplay:",e),null}if(r.length>1)throw new Error(`Component "path" for "FhirPathDisplay" must resolve to a single element. Received ${r.length} elements [${JSON.stringify(r,null,2)}]`);return n.createElement(ft,{value:r[0]||"",propertyType:e.propertyType})}const Qn={string:[t.Operator.EQUALS,t.Operator.NOT,t.Operator.CONTAINS,t.Operator.EXACT],fulltext:[t.Operator.EQUALS,t.Operator.NOT,t.Operator.CONTAINS,t.Operator.EXACT],token:[t.Operator.EQUALS,t.Operator.NOT],reference:[t.Operator.EQUALS,t.Operator.NOT],numeric:[t.Operator.EQUALS,t.Operator.NOT_EQUALS,t.Operator.GREATER_THAN,t.Operator.LESS_THAN,t.Operator.GREATER_THAN_OR_EQUALS,t.Operator.LESS_THAN_OR_EQUALS],quantity:[t.Operator.EQUALS,t.Operator.NOT_EQUALS,t.Operator.GREATER_THAN,t.Operator.LESS_THAN,t.Operator.GREATER_THAN_OR_EQUALS,t.Operator.LESS_THAN_OR_EQUALS],date:[t.Operator.EQUALS,t.Operator.NOT_EQUALS,t.Operator.GREATER_THAN,t.Operator.LESS_THAN,t.Operator.GREATER_THAN_OR_EQUALS,t.Operator.LESS_THAN_OR_EQUALS,t.Operator.STARTS_AFTER,t.Operator.ENDS_BEFORE,t.Operator.APPROXIMATELY],datetime:[t.Operator.EQUALS,t.Operator.NOT_EQUALS,t.Operator.GREATER_THAN,t.Operator.LESS_THAN,t.Operator.GREATER_THAN_OR_EQUALS,t.Operator.LESS_THAN_OR_EQUALS,t.Operator.STARTS_AFTER,t.Operator.ENDS_BEFORE,t.Operator.APPROXIMATELY]},Hn={eq:"equals",ne:"not equals",gt:"greater than",lt:"less than",ge:"greater than or equals",le:"less than or equals",sa:"starts after",eb:"ends before",ap:"approximately",contains:"contains",exact:"exact",text:"text",not:"not",above:"above",below:"below",in:"in","not-in":"not in","of-type":"of type",missing:"missing",identifier:"identifier",iterate:"iterate"};function Kn(e,t){return{...e,filters:t,offset:0,name:void 0}}function Jn(e,t){return Kn(e,(e.filters||[]).filter((e=>e.code!==t)))}function Yn(e,t,n,r,a){a&&(e=Jn(e,t));const o=[];return e.filters&&o.push(...e.filters),o.push({code:t,operator:n,value:r||""}),Kn(e,o)}function Xn(e,t){if(!e.filters)return e;const n=[...e.filters];return n.splice(t,1),{...e,filters:n,name:void 0}}function Zn(e,t){return nr(e,t,-1)}function er(e,t){return nr(e,t,0)}function tr(e,t){return nr(e,t,1)}function nr(e,t,n){const r=new Date;r.setDate(r.getDate()+n),r.setHours(0,0,0,0);const a=new Date(r.getTime());return a.setDate(a.getDate()+1),a.setTime(a.getTime()-1),ir(e,t,r,a)}function rr(e,t){return lr(e,t,-1)}function ar(e,t){return lr(e,t,0)}function or(e,t){return lr(e,t,1)}function lr(e,t,n){const r=new Date;r.setMonth(r.getMonth()+n),r.setDate(1),r.setHours(0,0,0,0);const a=new Date(r.getTime());return a.setMonth(a.getMonth()+1),a.setDate(1),a.setHours(0,0,0,0),a.setTime(a.getTime()-1),ir(e,t,r,a)}function cr(e,t){const n=new Date;n.setMonth(0),n.setDate(1),n.setHours(0,0,0,0);return ir(e,t,n,new Date)}function ir(e,n,r,a){return e=sr(e=Jn(e,n),n,t.Operator.GREATER_THAN_OR_EQUALS,r),e=sr(e,n,t.Operator.LESS_THAN_OR_EQUALS,a)}function sr(e,t,n,r){return Yn(e,t,n,r.toISOString())}function ur(e,n,r=!0){return Yn(e,n,t.Operator.MISSING,r.toString())}function mr(e,t){return e.offset===t?e:{...e,offset:t,name:void 0}}function dr(e,n){return mr(e,(n-1)*(e.count??t.DEFAULT_SEARCH_COUNT))}function pr(e,t,n){return t===hr(e)&&void 0!==n&&n===gr(e)?e:{...e,sortRules:[{code:t,descending:!!n}],name:void 0}}function hr(e){const t=e.sortRules;if(!t||0===t.length)return;const n=t[0].code;return n.startsWith("-")?n.substr(1):n}function gr(e){const t=e.sortRules;return!(!t||0===t.length)&&!!t[0].descending}function fr(e){return Qn[e.type]}function Er(e){return Hn[e]??""}function yr(e){let n=e;return n.includes(".")&&(n=n.split(".").pop()),"id"===n?"ID":"versionId"===n?"Version ID":(n=n.replace("[x]",""),n=n.replace(/([A-Z])/g," $1"),n=n.replace(/[-_]/g," "),n=n.replace(/\s+/g," "),n=n.trim(),n.split(/\s/).map(t.capitalize).join(" "))}function vr(e,r){const a=r.name;return"id"===a?e.id:"meta.versionId"===a?e.meta?.versionId:"_lastUpdated"===a?t.formatDateTime(e.meta?.lastUpdated):r.elementDefinition&&`${e.resourceType}.${r.name}`===r.elementDefinition.path?function(e,t){const r=t.path?.split(".")?.pop()?.replaceAll("[x]","")||"",[a,o]=Et({type:e.resourceType,value:e},r);if(!a)return null;return n.createElement(ft,{property:t,propertyType:o,value:a,maxWidth:200,ignoreMissingValues:!0,link:!1})}(e,r.elementDefinition):r.searchParams&&1===r.searchParams.length&&r.name===r.searchParams[0].code?function(e,r,a){const o=t.evalFhirPathTyped(r.expression,[{type:e.resourceType,value:e}]);if(!o||0===o.length)return null;if(a)return n.createElement(ft,{propertyType:o[0].type,value:o[0].value,maxWidth:200,ignoreMissingValues:!0,link:!1});return n.createElement(n.Fragment,null,o.map(((e,t)=>n.createElement("span",{key:`${t}-${o.length}`},"object"==typeof e?JSON.stringify(e):e))))}(e,r.searchParams[0],r.elementDefinition):null}function Cr(e){const[a,o]=n.useState({search:JSON.parse(t.stringify(e.search))}),l=n.useRef(null),c=n.useRef(null);function i(){const e=a.search.fields??[],t=l.current?.value;if(t){const n=[...e,t];o({search:{...a.search,fields:n}})}}function s(){const e=a.search.fields??[],t=c.current?.value;if(t){const n=[...e];n.splice(n.indexOf(t),1),o({search:{...a.search,fields:n}})}}function u(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}if(n.useEffect((()=>{o({search:e.search})}),[e.search]),!e.visible)return null;const m=e.search.resourceType,d=t.globalSchema.types[m],p=a.search.fields??[],h=function(e){const t=[],n=new Set,r=new Set;for(const a of Object.keys(e.properties))t.push(a),n.add(a.toLowerCase()),r.add(yr(a));if(e.searchParams)for(const a of Object.keys(e.searchParams)){const e=yr(a);n.has(a)||r.has(e)||(t.push(a),n.add(a),r.add(yr(a)))}return t}(d).filter((e=>!p?.includes(e))).sort();return n.createElement(r.Modal,{title:"Fields",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},n.createElement("div",null,n.createElement("table",{style:{margin:"auto"}},n.createElement("thead",null,n.createElement("tr",null,n.createElement("th",{colSpan:2,align:"center"},"Available"),n.createElement("th",{colSpan:2,align:"center"},"Selected"))),n.createElement("tbody",null,n.createElement("tr",null,n.createElement("td",{colSpan:2,align:"center"},n.createElement("select",{ref:l,size:15,tabIndex:1,style:{width:"200px"},onKeyDown:e=>function(e){"Enter"===e.key&&i()}(e),onDoubleClick:()=>{i()},"data-testid":"available"},h.map((e=>n.createElement("option",{key:e,value:e},yr(e)))))),n.createElement("td",{colSpan:2,align:"center"},n.createElement("select",{ref:c,size:15,tabIndex:4,style:{width:"200px"},onKeyDown:e=>function(e){"Enter"===e.key&&s()}(e),onDoubleClick:()=>{s()},"data-testid":"selected"},p.map((e=>n.createElement("option",{key:e,value:e},yr(e)))))))),n.createElement("tfoot",null,n.createElement("tr",null,n.createElement("td",{align:"center"},n.createElement(r.Button,{compact:!0,variant:"outline",onClick:i},"Add")),n.createElement("td",{align:"center"},n.createElement(r.Button,{compact:!0,variant:"outline",onClick:s},"Remove")),n.createElement("td",{align:"center"},n.createElement(r.Button,{compact:!0,variant:"outline",onClick:function(){const e=a.search.fields??[],t=c.current?.value;if(!t)return;const n=[...e],r=n.indexOf(t);r<=0||(u(n,r,r-1),o({search:{...a.search,fields:n}}))}},"Up")),n.createElement("td",{align:"center"},n.createElement(r.Button,{compact:!0,variant:"outline",onClick:function(){const e=a.search.fields??[],t=c.current?.value;if(!t)return;const n=[...e],r=n.indexOf(t);r>=n.length-1||(u(n,r,r+1),o({search:{...a.search,fields:n}}))}},"Down")))))),n.createElement(r.Button,{onClick:()=>e.onOk(a.search)},"OK"))}function Tr(e){const{resourceType:r,filter:a}=e,o=t.globalSchema.types[r]?.searchParams?.[a.code];if(o){if("reference"===o.type)return n.createElement(dn,{value:{reference:a.value}});const e=t.getSearchParameterDetails(r,o);if("_lastUpdated"===a.code||e.type===t.SearchParameterType.DATETIME)return n.createElement(n.Fragment,null,t.formatDateTime(a.value))}return n.createElement(n.Fragment,null,a.value)}function kr(e){const a="filter-value";switch(t.getSearchParameterDetails(e.resourceType,e.searchParam).type){case t.SearchParameterType.REFERENCE:return n.createElement(jt,{name:a,defaultValue:{reference:e.defaultValue},targetTypes:e.searchParam?.target,onChange:t=>{t?e.onChange(t.reference):e.onChange("")}});case t.SearchParameterType.BOOLEAN:return n.createElement(r.Checkbox,{name:a,"data-testid":a,defaultChecked:"true"===e.defaultValue,onChange:t=>e.onChange(t.currentTarget.checked.toString())});case t.SearchParameterType.DATE:return n.createElement(r.TextInput,{type:"date",name:a,"data-testid":a,defaultValue:e.defaultValue,onChange:t=>e.onChange(t.currentTarget.value)});case t.SearchParameterType.DATETIME:return n.createElement(Rt,{name:a,defaultValue:e.defaultValue,onChange:e.onChange});case t.SearchParameterType.NUMBER:return n.createElement(r.TextInput,{type:"number",name:a,"data-testid":a,defaultValue:e.defaultValue,onChange:t=>e.onChange(t.currentTarget.value)});case t.SearchParameterType.QUANTITY:return n.createElement($t,{name:a,defaultValue:br(e.defaultValue),onChange:t=>{t?e.onChange(`${t.value}`):e.onChange("")}});default:return n.createElement(r.TextInput,{name:a,"data-testid":a,defaultValue:e.defaultValue,autoFocus:e.autoFocus,onChange:t=>e.onChange(t.currentTarget.value),placeholder:"Search value"})}}function br(e){if(e){const[t,n,r]=e.split("|");if(t)return{value:parseFloat(t),system:n,unit:r}}}function Sr(e){const[a,o]=n.useState(JSON.parse(t.stringify(e.search))),[l,c]=n.useState(-1),i=n.useRef(a);if(i.current=a,n.useEffect((()=>{o(JSON.parse(t.stringify(e.search)))}),[e.search]),!e.visible)return null;const s=e.search.resourceType,u=t.globalSchema.types[s].searchParams??{},m=a.filters||[];return n.createElement(r.Modal,{title:"Filters",closeButtonProps:{"aria-label":"Close"},size:900,opened:e.visible,onClose:e.onCancel},n.createElement("div",null,n.createElement("table",null,n.createElement("colgroup",null,n.createElement("col",{style:{width:200}}),n.createElement("col",{style:{width:200}}),n.createElement("col",{style:{width:380}}),n.createElement("col",{style:{width:120}})),n.createElement("thead",null,n.createElement("tr",null,n.createElement("th",null,"Field"),n.createElement("th",null,"Operation"),n.createElement("th",null,"Value"),n.createElement("th",null,"Actions"))),n.createElement("tbody",null,m.map(((e,t)=>t===l?n.createElement(wr,{key:`filter-${t}-${m.length}-input`,resourceType:s,searchParams:u,defaultValue:e,okText:"Save",onOk:e=>{const n=[...m];n[t]=e,o(Kn(i.current,n)),c(-1)},onCancel:()=>c(-1)}):n.createElement(xr,{key:`filter-${t}-${m.length}-display`,resourceType:s,searchParams:u,filter:e,onEdit:()=>c(t),onDelete:()=>o(Xn(i.current,t))}))),n.createElement(wr,{resourceType:s,searchParams:u,okText:"Add",onOk:function(e){o(Yn(i.current,e.code,e.operator,e.value))}})))),n.createElement(r.Group,{position:"right",mt:"xl"},n.createElement(r.Button,{onClick:()=>e.onOk(i.current)},"OK")))}function xr(e){const{filter:t}=e;return n.createElement("tr",null,n.createElement("td",null,yr(t.code)),n.createElement("td",null,Er(t.operator)),n.createElement("td",null,n.createElement(Tr,{resourceType:e.resourceType,filter:t})),n.createElement("td",null,n.createElement(r.Button,{compact:!0,variant:"outline",onClick:e.onEdit},"Edit"),n.createElement(r.Button,{compact:!0,variant:"outline",onClick:e.onDelete},"Delete")))}function wr(e){const[t,a]=n.useState(e.defaultValue??{}),o=n.useRef(t);o.current=t;const l=e.searchParams[t.code],c=l&&fr(l);return n.createElement("tr",null,n.createElement("td",null,n.createElement(r.NativeSelect,{"data-testid":"filter-field",defaultValue:o.current.code,onChange:e=>{return t=e.currentTarget.value,void a({...o.current,code:t});var t},data:Object.keys(e.searchParams).map((e=>({value:e,label:yr(e)})))})),n.createElement("td",null,c&&n.createElement(r.NativeSelect,{"data-testid":"filter-operation",defaultValue:t.operator,onChange:e=>{return t=e.currentTarget.value,void a({...o.current,operator:t});var t},data:["",...c.map((e=>({value:e,label:Er(e)})))]})),n.createElement("td",null,l&&t.operator&&n.createElement(kr,{resourceType:e.resourceType,searchParam:l,defaultValue:t.value,onChange:function(e){a({...o.current,value:e})}})),n.createElement("td",null,t.code&&t.operator&&t.value&&n.createElement(r.Button,{compact:!0,variant:"outline",onClick:()=>{e.onOk(o.current),a({})}},e.okText),e.onCancel&&n.createElement(r.Button,{compact:!0,variant:"outline",onClick:e.onCancel},"Cancel")))}function Ir(e){const[t,a]=n.useState(e.defaultValue??"");if(!e.visible||!e.searchParam||!e.filter)return null;function o(){e.onOk({...e.filter,value:t})}return n.createElement(r.Modal,{title:e.title,size:"xl",opened:e.visible,onClose:e.onCancel},n.createElement("div",{style:{width:500}},n.createElement($e,{onSubmit:o},n.createElement(kr,{resourceType:e.resourceType,searchParam:e.searchParam,defaultValue:t,autoFocus:!0,onChange:a}))),n.createElement(r.Button,{onClick:o},"OK"))}function Mr(e){if(!e.searchParams)return null;function t(t){e.onChange(t)}return 1===e.searchParams.length?n.createElement(Rr,{search:e.search,searchParam:e.searchParams[0],onSort:function(n,r){t(pr(e.search,n.code,r))},onPrompt:function(t,n){e.onPrompt(t,{code:t.code,operator:n,value:""})},onChange:t,onClear:function(n){t(Jn(e.search,n.code))}}):n.createElement(r.Menu.Dropdown,null,e.searchParams.map((e=>n.createElement(r.Menu.Item,{key:e.code},yr(e.code)))))}function Rr(e){switch(e.searchParam.type){case"date":return n.createElement(Ar,{...e});case"number":case"quantity":return n.createElement(Pr,{...e});case"reference":return n.createElement(Dr,{...e});case"string":case"token":case"uri":return n.createElement(Or,{...e});default:return n.createElement(n.Fragment,null,"Unknown search param type: ",e.searchParam.type)}}function Ar(e){const{searchParam:a}=e,o=a.code;return n.createElement(r.Menu.Dropdown,null,n.createElement(r.Menu.Item,{icon:n.createElement(ie,{size:14}),onClick:()=>e.onSort(a,!1)},"Sort Oldest to Newest"),n.createElement(r.Menu.Item,{icon:n.createElement(se,{size:14}),onClick:()=>e.onSort(a,!0)},"Sort Newest to Oldest"),n.createElement(r.Menu.Divider,null),n.createElement(r.Menu.Item,{icon:n.createElement(H,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.EQUALS)},"Equals..."),n.createElement(r.Menu.Item,{icon:n.createElement(Q,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.NOT_EQUALS)},"Does not equal..."),n.createElement(r.Menu.Divider,null),n.createElement(r.Menu.Item,{icon:n.createElement(te,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.ENDS_BEFORE)},"Before..."),n.createElement(r.Menu.Item,{icon:n.createElement(ee,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.STARTS_AFTER)},"After..."),n.createElement(r.Menu.Item,{icon:n.createElement(O,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.EQUALS)},"Between..."),n.createElement(r.Menu.Divider,null),n.createElement(r.Menu.Item,{icon:n.createElement(z,{size:14}),onClick:()=>e.onChange(tr(e.search,o))},"Tomorrow"),n.createElement(r.Menu.Item,{icon:n.createElement(z,{size:14}),onClick:()=>e.onChange(er(e.search,o))},"Today"),n.createElement(r.Menu.Item,{icon:n.createElement(z,{size:14}),onClick:()=>e.onChange(Zn(e.search,o))},"Yesterday"),n.createElement(r.Menu.Divider,null),n.createElement(r.Menu.Item,{icon:n.createElement(z,{size:14}),onClick:()=>e.onChange(or(e.search,o))},"Next Month"),n.createElement(r.Menu.Item,{icon:n.createElement(z,{size:14}),onClick:()=>e.onChange(ar(e.search,o))},"This Month"),n.createElement(r.Menu.Item,{icon:n.createElement(z,{size:14}),onClick:()=>e.onChange(rr(e.search,o))},"Last Month"),n.createElement(r.Menu.Divider,null),n.createElement(r.Menu.Item,{icon:n.createElement(z,{size:14}),onClick:()=>e.onChange(cr(e.search,o))},"Year to date"),n.createElement(Vr,{...e}))}function Pr(e){const{searchParam:a}=e;return n.createElement(r.Menu.Dropdown,null,n.createElement(r.Menu.Item,{icon:n.createElement(ie,{size:14}),onClick:()=>e.onSort(a,!1)},"Sort Smallest to Largest"),n.createElement(r.Menu.Item,{icon:n.createElement(se,{size:14}),onClick:()=>e.onSort(a,!0)},"Sort Largest to Smallest"),n.createElement(r.Menu.Divider,null),n.createElement(r.Menu.Item,{icon:n.createElement(H,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.EQUALS)},"Equals..."),n.createElement(r.Menu.Item,{icon:n.createElement(Q,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.NOT_EQUALS)},"Does not equal..."),n.createElement(r.Menu.Divider,null),n.createElement(r.Menu.Item,{icon:n.createElement(ee,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.GREATER_THAN)},"Greater than..."),n.createElement(r.Menu.Item,{icon:n.createElement(ce,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.GREATER_THAN_OR_EQUALS)},"Greater than or equal to..."),n.createElement(r.Menu.Item,{icon:n.createElement(te,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.LESS_THAN)},"Less than..."),n.createElement(r.Menu.Item,{icon:n.createElement(ce,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.LESS_THAN_OR_EQUALS)},"Less than or equal to..."),n.createElement(Vr,{...e}))}function Dr(e){const{searchParam:a}=e;return n.createElement(r.Menu.Dropdown,null,n.createElement(r.Menu.Item,{icon:n.createElement(H,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.EQUALS)},"Equals..."),n.createElement(r.Menu.Item,{icon:n.createElement(Q,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.NOT)},"Does not equal..."),n.createElement(Vr,{...e}))}function Or(e){const{searchParam:a}=e;return n.createElement(r.Menu.Dropdown,null,n.createElement(r.Menu.Item,{icon:n.createElement(ie,{size:14}),onClick:()=>e.onSort(a,!1)},"Sort A to Z"),n.createElement(r.Menu.Item,{icon:n.createElement(se,{size:14}),onClick:()=>e.onSort(a,!0)},"Sort Z to A"),n.createElement(r.Menu.Divider,null),n.createElement(r.Menu.Item,{icon:n.createElement(H,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.EQUALS)},"Equals..."),n.createElement(r.Menu.Item,{icon:n.createElement(Q,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.NOT)},"Does not equal..."),n.createElement(r.Menu.Divider,null),n.createElement(r.Menu.Item,{icon:n.createElement(N,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.CONTAINS)},"Contains..."),n.createElement(r.Menu.Item,{icon:n.createElement(V,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.EQUALS)},"Does not contain..."),n.createElement(Vr,{...e}))}function Vr(e){const{searchParam:t}=e,a=t.code;return n.createElement(n.Fragment,null,n.createElement(r.Menu.Divider,null),n.createElement(r.Menu.Item,{icon:n.createElement(P,{size:14}),onClick:()=>e.onChange(ur(e.search,a))},"Missing"),n.createElement(r.Menu.Item,{icon:n.createElement(A,{size:14}),onClick:()=>e.onChange(ur(e.search,a,!1))},"Not missing"),n.createElement(r.Menu.Divider,null),n.createElement(r.Menu.Item,{icon:n.createElement(he,{size:14}),onClick:()=>e.onClear(t)},"Clear filters"))}function Nr(e,n){if("_lastUpdated"===n)return{name:"_lastUpdated",searchParams:[{resourceType:"SearchParameter",base:["Resource"],code:"_lastUpdated",name:"_lastUpdated",type:"date",expression:"Resource.meta.lastUpdated"}]};if("meta.versionId"===n)return{name:"meta.versionId",searchParams:[{resourceType:"SearchParameter",base:["Resource"],code:"_versionId",name:"_versionId",type:"token",expression:"Resource.meta.versionId"}]};const r=t.globalSchema.types[e],a=r.properties[n],o=r.searchParams?.[n.toLowerCase()];if(a&&o)return{name:n,elementDefinition:a,searchParams:[o]};if(a){let t;if(r.searchParams){const a=`${e}.${n.replaceAll("[x]","")}`;t=Object.values(r.searchParams).filter((e=>e.expression?.includes(a))),0===t.length&&(t=void 0)}return{name:n,elementDefinition:a,searchParams:t}}if(o){return{name:n,elementDefinition:t.getSearchParameterDetails(e,o).elementDefinition,searchParams:[o]}}return{name:n}}function zr(e){return n.createElement(r.Modal,{title:"Export",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},n.createElement(r.Box,{display:"flex",sx:{justifyContent:"space-between"}},e.exportCsv&&n.createElement(Lr,{text:"CSV",exportLogic:e.exportCsv,onCancel:e.onCancel}),e.exportTransactionBundle&&n.createElement(Lr,{text:"Transaction Bundle",exportLogic:e.exportTransactionBundle,onCancel:e.onCancel})),n.createElement(r.Text,{sx:{marginTop:"10px",marginLeft:"2px"}},"Limited to 1000 records"))}function Lr(e){return n.createElement(r.Button,{onClick:()=>{e.exportLogic(),e.onCancel()}},`Export as ${e.text}`)}class $r extends Event{constructor(e){super("change"),this.definition=e}}class Fr extends Event{constructor(e){super("load"),this.response=e}}class Br extends Event{constructor(e,t){super("click"),this.resource=e,this.browserEvent=t}}const Ur=r.createStyles((e=>({root:{maxWidth:"100%",overflow:"auto",textAlign:"left",marginBottom:"20px"},table:{cursor:"pointer"},tr:{"&:hover":{backgroundColor:"dark"===e.colorScheme?e.colors.dark[7]:e.colors.gray[0]}},th:{padding:"0 !important"},control:{width:"100%",padding:`${e.spacing.xs} ${e.spacing.md}`,"&:hover":{backgroundColor:"dark"===e.colorScheme?e.colors.dark[6]:e.colors.gray[0]}},icon:{width:21,height:21,borderRadius:21}})));function qr(e){const{classes:a}=Ur(),o=p(),[l,c]=n.useState(!1),[i,s]=n.useState(),{search:u,onLoad:m}=e,[d,h]=n.useState({selected:{},fieldEditorVisible:!1,filterEditorVisible:!1,exportDialogVisible:!1,filterDialogVisible:!1}),g=n.useRef(d);function f(t){e.onChange&&e.onChange(new $r(t))}function E(t,n){ve(t.target)||2!==t.button&&(ye(t),1!==t.button&&e.onClick&&e.onClick(new Br(n,t)),1===t.button&&e.onAuxClick&&e.onAuxClick(new Br(n,t)))}g.current=d,n.useEffect((()=>{s(void 0),o.search(u.resourceType,t.formatSearchQuery({...u,total:"accurate",fields:void 0})).then((e=>{h({...g.current,searchResponse:e}),m&&m(new Fr(e))})).catch((e=>{h({...g.current,searchResponse:void 0}),s(e)}))}),[o,u,m]),n.useEffect((()=>{c(!1),o.requestSchema(e.search.resourceType).then((()=>c(!0))).catch(console.log)}),[o,e.search.resourceType]);if(!(l&&t.globalSchema?.types?.[e.search.resourceType]))return n.createElement(r.Center,{style:{width:"100%",height:"100%"}},n.createElement(r.Loader,null));const y=e.checkboxesEnabled,v=function(e){const t=e.resourceType,n=[];for(const r of e.fields||["id","_lastUpdated"])n.push(Nr(t,r));return n}(u),C=u.resourceType,T=d.searchResponse,k=T?.entry,b=k?.map((e=>e.resource)),S="subtle",x="gray",w=16,I=window.innerWidth<768;return n.createElement("div",{className:a.root,"data-testid":"search-control"},!e.hideToolbar&&n.createElement(r.Group,{position:"apart",mb:"xl"},n.createElement(r.Group,{spacing:2},n.createElement(r.Button,{compact:!0,variant:S,color:x,leftIcon:n.createElement(_,{size:w}),onClick:()=>h({...g.current,fieldEditorVisible:!0})},"Fields"),n.createElement(r.Button,{compact:!0,variant:S,color:x,leftIcon:n.createElement(Y,{size:w}),onClick:()=>h({...g.current,filterEditorVisible:!0})},"Filters"),e.onNew&&n.createElement(r.Button,{compact:!0,variant:S,color:x,leftIcon:n.createElement(J,{size:w}),onClick:e.onNew},"New..."),!I&&!!(e.onExport||e.onExportCsv||e.onExportTransactionBundle)&&n.createElement(r.Button,{compact:!0,variant:S,color:x,leftIcon:n.createElement(de,{size:w}),onClick:e.onExport?e.onExport:()=>h({...g.current,exportDialogVisible:!0})},"Export..."),!I&&e.onDelete&&n.createElement(r.Button,{compact:!0,variant:S,color:x,leftIcon:n.createElement(pe,{size:w}),onClick:()=>e.onDelete(Object.keys(d.selected))},"Delete..."),!I&&e.onBulk&&n.createElement(r.Button,{compact:!0,variant:S,color:x,leftIcon:n.createElement(D,{size:w}),onClick:()=>e.onBulk(Object.keys(d.selected))},"Bulk...")),T&&n.createElement(r.Text,{size:"xs",color:"dimmed"},function(e,t){return Math.min(t,(e.offset??0)+1)}(u,T.total),"-",function(e,n){return Math.min(n,((e.offset??0)+1)*(e.count??t.DEFAULT_SEARCH_COUNT))}(u,T.total)," of"," ",T.total?.toLocaleString())),n.createElement(r.Table,{className:a.table},n.createElement("thead",null,n.createElement("tr",null,y&&n.createElement("th",null,n.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:function(){const e=g.current;if(!e.searchResponse?.entry||0===e.searchResponse.entry.length)return!1;for(const t of e.searchResponse.entry)if(t.resource?.id&&!e.selected[t.resource.id])return!1;return!0}(),onChange:e=>function(e){e.stopPropagation();const t=e.target.checked,n={},r=g.current?.searchResponse;t&&r?.entry&&r.entry.forEach((e=>{e.resource?.id&&(n[e.resource.id]=!0)})),h({...g.current,selected:n})}(e)})),v.map((t=>n.createElement("th",{key:t.name},n.createElement(r.Menu,{shadow:"md",width:240,position:"bottom-end"},n.createElement(r.Menu.Target,null,n.createElement(r.UnstyledButton,{className:a.control},n.createElement(r.Group,{position:"apart",noWrap:!0},n.createElement(r.Text,{weight:500,size:"sm"},yr(t.name)),n.createElement(r.Center,{className:a.icon},n.createElement(M,{size:14,stroke:1.5}))))),n.createElement(Mr,{search:e.search,searchParams:t.searchParams,onPrompt:(e,t)=>{h({...g.current,filterDialogVisible:!0,filterDialogSearchParam:e,filterDialogFilter:t})},onChange:e=>{f(e)}})))))),!e.hideFilters&&n.createElement("tr",null,y&&n.createElement("th",null),v.map((t=>n.createElement("th",{key:t.name},t.searchParams&&n.createElement(Gr,{resourceType:C,searchParams:t.searchParams,filters:e.search.filters})))))),n.createElement("tbody",null,b?.map((e=>e&&n.createElement("tr",{key:e.id,className:a.tr,"data-testid":"search-control-row",onClick:t=>E(t,e),onAuxClick:t=>E(t,e)},y&&n.createElement("td",null,n.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${e.id}`,checked:!!d.selected[e.id],onChange:t=>function(e,t){e.stopPropagation();const n=e.target.checked,r={...g.current.selected};n?r[t]=!0:delete r[t],h({...g.current,selected:r})}(t,e.id)})),v.map((t=>n.createElement("td",{key:t.name},vr(e,t))))))))),0===b?.length&&n.createElement(sn,null,n.createElement(r.Center,{style:{height:150}},n.createElement(r.Text,{size:"xl",color:"dimmed"},"No results"))),void 0!==T?.total&&T.total>0&&n.createElement(r.Center,{m:"md",p:"md"},n.createElement(r.Pagination,{value:jr(u),total:Wr(u,T.total),onChange:e=>f(dr(u,e)),getControlProps:e=>{switch(e){case"previous":return{"aria-label":"Previous page"};case"next":return{"aria-label":"Next page"};default:return{}}}})),i&&n.createElement("div",{"data-testid":"search-error"},n.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(i,void 0,2))),n.createElement(Cr,{search:e.search,visible:g.current.fieldEditorVisible,onOk:e=>{f(e),h({...g.current,fieldEditorVisible:!1})},onCancel:()=>{h({...g.current,fieldEditorVisible:!1})}}),n.createElement(Sr,{search:e.search,visible:g.current.filterEditorVisible,onOk:e=>{f(e),h({...g.current,filterEditorVisible:!1})},onCancel:()=>{h({...g.current,filterEditorVisible:!1})}}),n.createElement(zr,{visible:g.current.exportDialogVisible,exportCsv:e.onExportCsv,exportTransactionBundle:e.onExportTransactionBundle,onCancel:()=>{h({...g.current,exportDialogVisible:!1})}}),n.createElement(Ir,{key:d.filterDialogSearchParam?.code,visible:g.current.filterDialogVisible,title:"Input",resourceType:C,searchParam:d.filterDialogSearchParam,filter:d.filterDialogFilter,defaultValue:"",onOk:t=>{f(Yn(e.search,t.code,t.operator,t.value)),h({...g.current,filterDialogVisible:!1})},onCancel:()=>{h({...g.current,filterDialogVisible:!1})}}))}const _r=n.memo(qr);function Gr(e){const t=(e.filters??[]).filter((t=>e.searchParams.find((e=>e.code===t.code))));return 0===t.length?n.createElement("span",null,"no filters"):n.createElement(n.Fragment,null,t.map(((r,a)=>n.createElement("div",{key:`filter-${a}-${t.length}`},Er(r.operator)," ",n.createElement(Tr,{resourceType:e.resourceType,filter:r})))))}function jr(e){return Math.floor((e.offset||0)/(e.count||t.DEFAULT_SEARCH_COUNT))+1}function Wr(e,n){const r=e.count||t.DEFAULT_SEARCH_COUNT;return Math.ceil(n/r)}function Qr(e){const a=p(),[o,l]=n.useState(),[c,i]=n.useState(),{query:s,fields:u}=e,[m,d]=n.useState(),[h,g]=n.useState({}),f=n.useRef();f.current=m;const E=n.useRef({});function y(t,n){ve(t.target)||(ye(t),1!==t.button&&e.onClick&&e.onClick(new Br(n,t)),1===t.button&&e.onAuxClick&&e.onAuxClick(new Br(n,t)))}E.current=h,n.useEffect((()=>{i(void 0),a.graphql(s).then(d).catch((e=>i(t.normalizeOperationOutcome(e))))}),[a,s]),n.useEffect((()=>{a.requestSchema(e.resourceType).then((e=>{l({...e})})).catch(console.log)}),[a,e.resourceType]);const v=o?.types?.[e.resourceType];if(!v)return n.createElement(r.Loader,null);const C=e.checkboxesEnabled;return n.createElement("div",{onContextMenu:e=>ye(e),"data-testid":"search-control"},n.createElement(r.Table,null,n.createElement("thead",null,n.createElement("tr",null,C&&n.createElement("th",null,n.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:function(){const e=f.current?.data?.ResourceList;if(!e||0===e.length)return!1;for(const t of e)if(t?.id&&!E.current[t.id])return!1;return!0}(),onChange:e=>function(e){e.stopPropagation();const t=e.target.checked,n={},r=f.current?.data?.ResourceList;t&&r&&r.forEach((e=>{e?.id&&(n[e.id]=!0)})),g(n)}(e)})),u.map((e=>n.createElement("th",{key:e.name},e.name))))),n.createElement("tbody",null,m?.data?.ResourceList?.map((e=>e&&n.createElement("tr",{key:e.id,"data-testid":"search-control-row",onClick:t=>y(t,e),onAuxClick:t=>y(t,e)},C&&n.createElement("td",null,n.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${e.id}`,checked:!!h[e.id],onChange:t=>function(e,t){e.stopPropagation();const n=e.target.checked,r={...E.current};n?r[t]=!0:delete r[t],g(r)}(t,e.id)})),u.map((t=>n.createElement("td",{key:t.name},n.createElement(Wn,{propertyType:t.propertyType,path:t.fhirPath,resource:e}))))))))),0===m?.data?.ResourceList?.length&&n.createElement("div",{"data-testid":"empty-search"},"No results"),c&&n.createElement("div",{"data-testid":"search-error"},n.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(c,void 0,2))),e.onBulk&&n.createElement(r.Button,{onClick:()=>e.onBulk(Object.keys(E.current))},"Bulk..."))}const Hr=n.memo(Qr);function Kr(e){return n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 491 491",style:{width:e.size,height:e.size}},n.createElement("title",null,"Medplum Logo"),n.createElement("path",{fill:e.fill||"#ad7136",d:"M282 67c6-16 16-29 29-40L289 0c-22 17-37 41-43 68l17 23 19-24z"}),n.createElement("path",{fill:e.fill||"#946af9",d:"M311 63c-17 0-33 4-48 11-16-7-32-11-49-11-87 0-158 96-158 214s71 214 158 214c17 0 33-4 49-11 15 7 31 11 48 11 87 0 158-96 158-214S398 63 311 63z"}),n.createElement("path",{fill:e.fill||"#7857c5",d:"M231 489l-17 2c-87 0-158-96-158-214S127 63 214 63l17 1c-39 12-70 102-70 213s31 201 70 212z"}),n.createElement("path",{fill:e.fill||"#40bc26",d:"M207 220a176 176 0 01-177 43A176 176 0 01251 43l1 5c17 59 2 125-45 172z"}),n.createElement("path",{fill:e.fill||"#33961e",d:"M252 48A421 421 0 0057 270l-27-7A176 176 0 01251 43l1 5z"}))}function Jr(e){const t=e.outcome?.issue||e.issues;return t?n.createElement(r.Alert,{icon:n.createElement(R,{size:16}),color:"red"},t.map((e=>n.createElement("div",{"data-testid":"text-field-error",key:e.details?.text},e.details?.text)))):null}const Yr=r.createStyles((e=>({section:{position:"relative",margin:"4px 4px 8px 0",padding:"6px 12px 16px 6px",border:`1.5px solid ${e.colors.gray[1]}`,borderRadius:e.radius.sm,transition:"all 0.1s"},hovering:{border:`1.5px solid ${e.colors.blue[5]}`},editing:{border:`1.5px solid ${e.colors.gray[1]}`,borderLeft:`4px solid ${e.colors.blue[5]}`},bottomActions:{position:"absolute",right:4,bottom:0,fontSize:e.fontSizes.xs,"& a":{marginLeft:8}}})));function Xr(e){const{classes:t}=Yr(),a=n.useRef();function o(t){e.onChange(a.current.map((e=>e.id===t.id?t:e)))}return a.current=e.actions,n.createElement("div",{className:t.section},e.actions.map((t=>n.createElement("div",{key:t.id},n.createElement(Zr,{action:t,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:o,onRemove:()=>{return n=t,void e.onChange(a.current.filter((e=>e!==n)));var n}})))),n.createElement("div",{className:t.bottomActions},n.createElement(r.Anchor,{href:"#",onClick:t=>{var n;ye(t),n={id:ca()},e.onChange([...a.current,n]),e.setSelectedKey(n.id)}},"Add action")))}function Zr(e){const{classes:t,cx:a}=Yr(),{action:o}=e,l=function(e){if(e.definitionCanonical?.startsWith("Schedule"))return"appointment";if(e.definitionCanonical?.startsWith("Questionnaire/"))return"questionnaire";if(e.definitionCanonical?.startsWith("ActivityDefinition/"))return"task";return}(o),c=e.selectedKey===e.action.id,i=e.hoverKey===e.action.id;const s=a(t.section,{[t.editing]:c,[t.hovering]:i&&!c});return n.createElement("div",{"data-testid":o.id,className:s,onClick:function(t){t.stopPropagation(),e.setSelectedKey(e.action.id)},onMouseOver:function(t){ye(t),e.setHoverKey(e.action.id)}},c?n.createElement(na,{action:o,actionType:l,onChange:e.onChange,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onRemove:e.onRemove}):n.createElement(ta,{action:o,actionType:l}),n.createElement("div",{className:t.bottomActions},n.createElement(r.Anchor,{href:"#",onClick:t=>{t.preventDefault(),e.onRemove()}},"Remove")))}const ea={path:"PlanDefinition.action.timing[x]",min:0,max:"1",type:[{code:"dateTime"},{code:"Period"},{code:"Range"},{code:"Timing"}]};function ta(e){const{action:t,actionType:r}=e,[a,o]=oa(t);return n.createElement("div",null,n.createElement("div",null,t.title||"Untitled"," ",r&&`(${r})`),t.definitionCanonical&&n.createElement("div",null,n.createElement(ht,{value:{reference:t.definitionCanonical}})),a&&n.createElement("div",null,n.createElement(ft,{property:ea,propertyType:o,value:a})))}function na(e){const{action:t}=e,[a,o]=n.useState(e.actionType);function l(n,r){e.onChange({...t,[n]:r})}return n.createElement(r.Stack,{spacing:"xl"},n.createElement(r.TextInput,{name:`actionTitle-${t.id}`,label:"Title",defaultValue:t.title,onChange:e=>l("title",e.currentTarget.value)}),n.createElement(r.TextInput,{name:`actionDescription-${t.id}`,label:"Description",defaultValue:t.description,onChange:e=>l("description",e.currentTarget.value)}),n.createElement(r.NativeSelect,{label:"Type of Action",description:"The type of the action to be performed.",name:`actionType-${t.id}`,defaultValue:a,onChange:e=>o(e.currentTarget.value),data:["","appointment","lab","questionnaire","task"]}),t.action&&t.action.length>0&&n.createElement(Xr,{actions:t.action,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:e=>l("action",e)}),(()=>{switch(a){case"appointment":return n.createElement(ra,{title:"Appointment",description:"The subject must schedule an appointment from the schedule.",resourceType:"Schedule",action:t,onChange:e.onChange});case"lab":return n.createElement(ra,{title:"Lab",description:"The subject must complete the following lab panel.",resourceType:"ActivityDefinition",action:t,onChange:e.onChange});case"questionnaire":return n.createElement(ra,{title:"Questionnaire",description:"The subject must complete the selected questionnaire.",resourceType:"Questionnaire",action:t,onChange:e.onChange});case"task":return n.createElement(ra,{title:"Task",description:"The subject must complete the following task.",resourceType:"ActivityDefinition",action:t,onChange:e.onChange});default:return null}})(),n.createElement(bt,{title:"Timing",description:"When the action should take place."},n.createElement(aa,{name:"timing-"+t.id,action:t,onChange:e.onChange})))}function ra(e){const{id:r,definitionCanonical:a}=e.action,o=a?.startsWith(e.resourceType+"/")?{reference:a}:void 0;return n.createElement(_t,{name:r,resourceType:e.resourceType,defaultValue:o,loadOnFocus:!0,onChange:n=>{n?e.onChange({...e.action,definitionCanonical:t.getReferenceString(n)}):e.onChange({...e.action,definitionCanonical:void 0})}})}function aa(e){const t=e.action,r="timing",[a,o]=oa(t);return n.createElement(Yt,{property:ea,name:"timing[x]",defaultValue:a,defaultPropertyType:o,onChange:(n,a)=>{e.onChange(St(t,r,a??r,ea,n))}})}function oa(e){return Et({type:"PlanDefinitionAction",value:e},"timing")}let la=1;function ca(e){if(e){if(e.startsWith("id-")){const t=parseInt(e.substring(3));isNaN(t)||(la=Math.max(la,t+1))}return e}return"id-"+la++}function ia(e){if(e)return e.map((e=>({...e,id:ca(e.id),action:ia(e.action)})))}var sa;function ua(e){return"choice"===e.type||"open-choice"===e.type}function ma(e){const a=p(),o=a.getProfile(),[l,c]=n.useState(),i=ke(e.questionnaire),[s,u]=n.useState(),[m,d]=n.useState({});return n.useEffect((()=>{a.requestSchema("Questionnaire").then((()=>a.requestSchema("QuestionnaireResponse"))).then(c).catch(console.log)}),[a]),n.useEffect((()=>{u(i?function(e){const n={resourceType:"QuestionnaireResponse",questionnaire:t.getReferenceString(e),item:Ea(e.item)};return n}(i):void 0)}),[i]),l&&i?n.createElement($e,{testid:"questionnaire-form",onSubmit:()=>{e.onSubmit&&s&&e.onSubmit({...s,questionnaire:t.getReferenceString(i),subject:e.subject,source:t.createReference(o),authored:(new Date).toISOString(),status:"completed"})}},i.title&&n.createElement(r.Title,null,i.title),i.item&&n.createElement(da,{items:i.item,answers:m,onChange:function(e){const n={resourceType:"QuestionnaireResponse",item:e};u(n),d(t.getQuestionnaireAnswers(n))}}),n.createElement(r.Group,{position:"right",mt:"xl"},n.createElement(r.Button,{type:"submit"},e.submitButtonText||"OK"))):null}function da(t){const[a,o]=n.useState(Ea(t.items));function l(e,n){const r=a.slice();r[e]=n,o(r),t.onChange(r)}return n.createElement(r.Stack,null,t.items.map(((a,o)=>{if(!Ca(a,t.answers))return null;if(a.type===e.QuestionnaireItemType.display)return n.createElement("p",{key:a.linkId},a.text);if(a.type===e.QuestionnaireItemType.group)return n.createElement(pa,{key:a.linkId,item:a,answers:t.answers,onChange:e=>l(o,e)});if(a.type===e.QuestionnaireItemType.boolean){const e=a.initial&&a.initial.length>0?a.initial[0]:void 0;return n.createElement(vt,{key:a.linkId,title:a.text,htmlFor:a.linkId},n.createElement(r.Checkbox,{id:a.linkId,name:a.linkId,defaultChecked:e?.valueBoolean,onChange:e=>l(o,{linkId:a.linkId,text:a.text,answer:[{valueBoolean:e.currentTarget.checked}]})}))}return n.createElement(bt,{key:a.linkId,htmlFor:a.linkId,title:a.text||""},n.createElement(pa,{item:a,answers:t.answers,onChange:e=>l(o,e)}))})))}function pa(t){const a=t.item,o=a.type;if(!o)return null;const l=a.linkId;if(!l)return null;const c=a.initial&&a.initial.length>0?a.initial[0]:void 0;function i(e){t.onChange({linkId:a.linkId,text:a.text,answer:[e]})}switch(o){case e.QuestionnaireItemType.group:return n.createElement("div",null,n.createElement("h3",null,a.text),a.item&&n.createElement(da,{items:a.item,answers:t.answers,onChange:function(e){t.onChange({linkId:a.linkId,text:a.text,item:e})}}));case e.QuestionnaireItemType.boolean:return n.createElement(r.Checkbox,{id:l,name:l,defaultChecked:c?.valueBoolean,onChange:e=>i({valueBoolean:e.currentTarget.checked})});case e.QuestionnaireItemType.decimal:return n.createElement(r.TextInput,{type:"number",step:"any",id:l,name:l,defaultValue:c?.valueDecimal,onChange:e=>i({valueDecimal:e.currentTarget.valueAsNumber})});case e.QuestionnaireItemType.integer:return n.createElement(r.TextInput,{type:"number",step:1,id:l,name:l,defaultValue:c?.valueInteger,onChange:e=>i({valueInteger:e.currentTarget.valueAsNumber})});case e.QuestionnaireItemType.date:return n.createElement(r.TextInput,{type:"date",id:l,name:l,defaultValue:c?.valueDate,onChange:e=>i({valueDate:e.currentTarget.value})});case e.QuestionnaireItemType.dateTime:return n.createElement(Rt,{name:l,defaultValue:c?.valueDateTime,onChange:e=>i({valueDateTime:e})});case e.QuestionnaireItemType.time:return n.createElement(r.TextInput,{type:"time",id:l,name:l,defaultValue:c?.valueTime,onChange:e=>i({valueTime:e.currentTarget.value})});case e.QuestionnaireItemType.string:case e.QuestionnaireItemType.url:return n.createElement(r.TextInput,{id:l,name:l,defaultValue:c?.valueString,onChange:e=>i({valueString:e.currentTarget.value})});case e.QuestionnaireItemType.text:return n.createElement(r.Textarea,{id:l,name:l,defaultValue:c?.valueString,onChange:e=>i({valueString:e.currentTarget.value})});case e.QuestionnaireItemType.attachment:return n.createElement(et,{name:l,defaultValue:c?.valueAttachment,onChange:e=>i({valueAttachment:e})});case e.QuestionnaireItemType.reference:return n.createElement(jt,{name:l,defaultValue:c?.valueReference,onChange:e=>i({valueReference:e})});case e.QuestionnaireItemType.quantity:return n.createElement($t,{name:l,defaultValue:c?.valueQuantity,onChange:e=>i({valueQuantity:e}),disableWheel:!0});case e.QuestionnaireItemType.choice:case e.QuestionnaireItemType.openChoice:return function(e){return!!e.extension?.some((e=>"http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"===e.url&&"drop-down"===e.valueCodeableConcept?.coding?.[0]?.code))}(a)?n.createElement(ha,{name:l,item:a,initial:c,onChangeAnswer:i}):n.createElement(fa,{name:l,item:a,initial:c,onChangeAnswer:i})}return null}function ha(e){const{name:a,item:o,initial:l}=e,c=t.getTypedPropertyValue({type:"QuestionnaireItemInitial",value:l},"value"),i=[""];if(o.answerOption)for(const e of o.answerOption){const n=t.getTypedPropertyValue({type:"QuestionnaireItemAnswerOption",value:e},"value");i.push(ga(n))}return n.createElement(r.NativeSelect,{id:a,name:a,onChange:n=>{const r=n.currentTarget.selectedIndex;if(0===r)return void e.onChangeAnswer({});const a=o.answerOption[r-1],l=t.getTypedPropertyValue({type:"QuestionnaireItemAnswerOption",value:a},"value"),c="value"+t.capitalize(l.type);e.onChangeAnswer({[c]:l.value})},defaultValue:ga(c),data:i})}function ga(e){if(e)return"CodeableConcept"===e.type?e.value.coding[0].display:"Coding"===e.type?e.value.display:e.value.toString()}function fa(e){const{name:a,item:o,initial:l,onChangeAnswer:c}=e,i=t.globalSchema.types.QuestionnaireItemAnswerOption.properties["value[x]"],s=t.getTypedPropertyValue({type:"QuestionnaireItemInitial",value:l},"value"),u=[];let m;if(o.answerOption)for(let e=0;e<o.answerOption.length;e++){const n=o.answerOption[e],r=`${a}-option-${e}`,l=t.getTypedPropertyValue({type:"QuestionnaireItemAnswerOption",value:n},"value");s&&t.stringify(l)===t.stringify(s)&&(m=r),u.push([r,l])}return n.createElement(r.Radio.Group,{name:a,defaultValue:m,onChange:e=>{const n=u.find((t=>t[0]===e));if(n){const e=n[1],r="value"+t.capitalize(e.type);c({[r]:e.value})}}},u.map((([e,t])=>n.createElement(r.Radio,{key:e,id:e,value:e,label:n.createElement(ft,{property:i,propertyType:t.type,value:t.value})}))))}function Ea(e){return e?.map(ya)??[]}function ya(e){return{linkId:e.linkId,text:e.text,item:Ea(e.item),answer:e.initial?.map(va)??[]}}function va(e){return{...e}}function Ca(e,n){if(!e.enableWhen)return!0;const r=e.enableBehavior||"any";for(const a of e.enableWhen){const e=t.getTypedPropertyValue({type:"QuestionnaireItemEnableWhen",value:a},"answer[x]"),o=t.getTypedPropertyValue({type:"QuestionnaireResponseItemAnswer",value:n[a.question]},"value[x]"),l=t.deepEquals(e,o);if("any"===r&&l)return!0;if("all"===r&&!l)return!1}return"any"!==r}e.QuestionnaireItemType=void 0,(sa=e.QuestionnaireItemType||(e.QuestionnaireItemType={})).group="group",sa.display="display",sa.question="question",sa.boolean="boolean",sa.decimal="decimal",sa.integer="integer",sa.date="date",sa.dateTime="dateTime",sa.time="time",sa.string="string",sa.text="text",sa.url="url",sa.choice="choice",sa.openChoice="open-choice",sa.attachment="attachment",sa.reference="reference",sa.quantity="quantity";const Ta=r.createStyles((e=>({section:{position:"relative",margin:"4px 4px 8px 0",padding:"6px 12px 16px 6px",border:`1.5px solid ${e.colors.gray[1]}`,borderRadius:e.radius.sm,transition:"all 0.1s"},hovering:{border:`1.5px solid ${e.colors.blue[5]}`},editing:{border:`1.5px solid ${e.colors.gray[1]}`,borderLeft:`4px solid ${e.colors.blue[5]}`},questionBody:{maxWidth:600},topActions:{position:"absolute",right:4,top:1,padding:4,color:e.colors.gray[5],fontSize:e.fontSizes.xs},bottomActions:{position:"absolute",right:4,bottom:0,fontSize:e.fontSizes.xs,"& a":{marginLeft:8}},linkIdInput:{width:100,marginBottom:4},typeSelect:{width:100}})));function ka(a){const{classes:o,cx:l}=Ta(),c=a.item,i=a.item,s=t.isResource(a.item),u=s||i.type===e.QuestionnaireItemType.group,m=i.linkId??"[untitled]",d=a.selectedKey===a.item.id,p=a.hoverKey===a.item.id,h=n.useRef();function g(e){const t=h.current;a.onChange({...t,item:t.item?.map((t=>t.id===e.id?e:t))})}function f(e){a.onChange({...a.item,item:[...a.item?.item??[],e]})}function E(e,t){a.onChange({...h.current,[e]:t})}h.current=a.item;const y=l(o.section,{[o.editing]:d,[o.hovering]:p&&!d});return n.createElement("div",{"data-testid":i.linkId,className:y,onClick:function(e){ye(e),a.setSelectedKey(a.item.id)},onMouseOver:function(e){ye(e),a.setHoverKey(a.item.id)}},n.createElement("div",{className:o.questionBody},d?n.createElement(n.Fragment,null,s&&n.createElement(r.TextInput,{size:"xl",defaultValue:c.title,onChange:e=>E("title",e.currentTarget.value)}),!s&&n.createElement(r.Textarea,{autosize:!0,minRows:2,defaultValue:i.text,onChange:e=>E("text",e.currentTarget.value)}),ua(i)&&n.createElement(ba,{options:i.answerOption,onChange:e=>E("answerOption",e)})):n.createElement(n.Fragment,null,c.title&&n.createElement(r.Title,null,c.title),i.text&&n.createElement("div",null,i.text),!u&&n.createElement(pa,{item:i,answers:{},onChange:()=>{}}))),i.item&&i.item.map((e=>n.createElement("div",{key:e.id},n.createElement(ka,{item:e,selectedKey:a.selectedKey,setSelectedKey:a.setSelectedKey,hoverKey:a.hoverKey,setHoverKey:a.setHoverKey,onChange:g,onRemove:()=>{return t=e,void a.onChange({...a.item,item:a.item?.item?.filter((e=>e!==t))});var t}})))),!u&&n.createElement("div",{className:o.topActions},d?n.createElement(n.Fragment,null,n.createElement(r.TextInput,{size:"xs",className:o.linkIdInput,defaultValue:i.linkId,onChange:e=>E("linkId",e.currentTarget.value)}),!u&&n.createElement(r.NativeSelect,{size:"xs",className:o.typeSelect,defaultValue:i.type,onChange:e=>E("type",e.currentTarget.value),data:[{value:"display",label:"Display"},{value:"boolean",label:"Boolean"},{value:"decimal",label:"Decimal"},{value:"integer",label:"Integer"},{value:"date",label:"Date"},{value:"dateTime",label:"Date/Time"},{value:"time",label:"Time"},{value:"string",label:"String"},{value:"text",label:"Text"},{value:"url",label:"URL"},{value:"choice",label:"Choice"},{value:"open-choice",label:"Open Choice"},{value:"attachment",label:"Attachment"},{value:"reference",label:"Reference"},{value:"quantity",label:"Quantity"}]})):n.createElement("div",null,m)),n.createElement("div",{className:o.bottomActions},u&&n.createElement(n.Fragment,null,n.createElement(r.Anchor,{href:"#",onClick:e=>{e.preventDefault(),f({id:Ia(),linkId:wa("q"),type:"string",text:"Question"})}},"Add item"),n.createElement(r.Anchor,{href:"#",onClick:e=>{e.preventDefault(),f({id:Ia(),linkId:wa("g"),type:"group",text:"Group"})}},"Add group")),d&&!s&&n.createElement(r.Anchor,{href:"#",onClick:e=>{e.preventDefault(),a.onRemove&&a.onRemove()}},"Remove")))}function ba(e){const a=t.globalSchema.types.QuestionnaireItemAnswerOption.properties["value[x]"],o=e.options??[];return n.createElement("div",null,o.map((t=>{const[l,c]=Et({type:"QuestionnaireItemAnswerOption",value:t},"value");return n.createElement("div",{key:t.id,style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",width:"80%"}},n.createElement("div",null,n.createElement(Yt,{key:t.id,name:"value[x]",property:a,defaultPropertyType:c,defaultValue:l,onChange:(n,r)=>{const a=[...o],l=a.findIndex((e=>e.id===t.id));a[l]={id:t.id,[r]:n},e.onChange(a)}})),n.createElement("div",null,n.createElement(r.Anchor,{href:"#",onClick:n=>{ye(n),e.onChange(o.filter((e=>e.id!==t.id)))}},"Remove")))})),n.createElement(r.Anchor,{href:"#",onClick:t=>{ye(t),e.onChange([...o,{id:Ia()}])}},"Add choice"))}let Sa=1,xa=1;function wa(e){return e+Sa++}function Ia(){return"id-"+xa++}function Ma(e){if(e)return e.forEach((e=>{e.id?.match(/^id-\d+$/)&&(xa=Math.max(xa,parseInt(e.id.substring(3))+1)),e.linkId?.match(/^q\d+$/)&&(Sa=Math.max(Sa,parseInt(e.linkId.substring(1))+1))})),e.map((e=>({...e,id:e.id||Ia(),item:Ma(e.item),answerOption:Ra(e.answerOption)})))}function Ra(e){if(e)return e.map((e=>({...e,id:e.id||Ia()})))}const Aa=r.createStyles((e=>({section:{position:"relative",margin:"4px 4px 8px 0",padding:"6px 12px 16px 6px",border:`1.5px solid ${e.colors.gray[3]}`,borderRadius:e.radius.sm,transition:"all 0.1s"}}))),Pa=["gender","age","gestationalAge","context","appliesTo"],Da={definition:{resourceType:"ObservationDefinition"},onSubmit:()=>{}};function Oa(e){const{intervalGroup:t,unit:a}=e,{classes:o}=Aa();return n.createElement(sn,{"data-testid":t.id,className:o.section},n.createElement(r.Stack,{spacing:"lg"},n.createElement(r.Group,{position:"right"},n.createElement(r.ActionIcon,{title:"Remove Group","data-testid":`remove-group-button-${t.id}`,key:`remove-group-button-${t.id}`,size:"sm",onClick:n=>{ye(n),e.onRemoveGroup(t)}},n.createElement(B,null))),n.createElement(Va,{intervalGroup:t,onChange:e.onChange}),n.createElement(r.Divider,null),t.intervals.map((a=>n.createElement(r.Stack,{key:`interval-${a.id}`,spacing:"xs"},n.createElement(r.Group,null,n.createElement(r.TextInput,{key:`condition-${a.id}`,"data-testid":`condition-${a.id}`,defaultValue:a.condition,label:"Condition: ",size:"sm",onChange:n=>{ye(n),e.onChange(t.id,{...a,condition:n.currentTarget.value.trim()})}}),n.createElement(r.ActionIcon,{title:"Remove Interval",size:"sm",key:`remove-interval-${a.id}`,"data-testid":`remove-interval-${a.id}`,onClick:n=>{ye(n),e.onRemove(t.id,a)}},n.createElement(B,null))),n.createElement(Bt,{onChange:n=>{e.onChange(t.id,{...a,range:n})},key:`range-${a.id}`,name:`range-${a.id}`,defaultValue:a.range})))),n.createElement(r.ActionIcon,{title:"Add Interval",size:"sm",onClick:n=>{ye(n),e.onAdd(t.id,{range:{low:{unit:a},high:{unit:a}}})}},n.createElement(U,null))))}function Va(e){const{intervalGroup:t,onChange:a}=e;t.filters.age||(t.filters.age={});for(const e of["low","high"])t.filters.age[e]?.unit||(t.filters.age[e]={...t.filters.age[e],unit:"years",system:"http://unitsofmeasure.org"});return n.createElement(r.Stack,{style:{maxWidth:"50%"}},n.createElement(r.Group,null,n.createElement(r.NativeSelect,{data:["","male","female"],label:"Gender:",defaultValue:t.filters.gender||"",onChange:e=>{for(const n of t.intervals){let r=e.currentTarget?.value;""===r&&(r=void 0),a(t.id,{...n,gender:r})}}})),n.createElement(r.Group,{spacing:"xs"},n.createElement(r.Text,{component:"label",htmlFor:`div-age-${t.id}`},"Age:"),n.createElement("div",{id:`div-age-${t.id}`},n.createElement(Bt,{key:`age-${t.id}`,name:`age-${t.id}`,defaultValue:t.filters.age,onChange:e=>{for(const n of t.intervals)a(t.id,{...n,age:e})}}))),n.createElement(r.NativeSelect,{data:["","pre-puberty","follicular","midcycle","luteal","postmenopausal"],label:"Endocrine:",defaultValue:t.filters.context?.text||"",onChange:e=>{for(const n of t.intervals){let r=e.currentTarget?.value;""===r?(r=void 0,a(t.id,{...n,context:void 0})):a(t.id,{...n,context:{text:r,coding:[{code:r,system:"http://terminology.hl7.org/CodeSystem/referencerange-meaning"}]}})}}}))}function Na(e){return[`gender=${e.gender}`,`age=${t.formatRange(e.age)}`,`gestationalAge=${t.formatRange(e.gestationalAge)}`,`context=${e.context?.text}`,`appliesTo=${e.appliesTo?.map((e=>e.text)).join("+")}`].join(":")}function za(e,t){return function(e,t,n){const r=[];let a=e;a.snake&&(a=a.prev);for(;a&&a.prev&&a.prev.j>=0;){const e=a.i,o=a.j;a=a.prev;const l=a.i,c=a.j,i={position:l,lines:t.slice(l,e)},s={position:c,lines:n.slice(c,o)};let u;u=0===i.lines.length&&s.lines.length>0?"insert":i.lines.length>0&&0===s.lines.length?"delete":"change",r.push({original:i,revised:s,type:u}),a.snake&&(a=a.prev)}return r}(function(e,t){const n=e.length,r=t.length,a=n+r+1,o=1+2*a,l=o/2|0,c=new Array(o);c[l+1]={i:0,j:-1,prev:void 0,snake:!0};for(let o=0;o<a;o++){for(let a=-o;a<=o;a+=2){const i=l+a,s=i-1,u=c[i+1],m=c[s];let d,p=0;a===-o||a!==o&&m.i<u.i?(p=u.i,d=u):(p=m.i+1,d=m),c[s]=void 0;let h=p-a,g={i:p,j:h,prev:La(d),snake:!1};for(;p<n&&h<r&&e[p]===t[h];)p++,h++;if(p>g.i&&(g={i:p,j:h,prev:g,snake:!0}),c[i]=g,p>=n&&h>=r)return c[i]}c[l+o-1]=void 0}return}(e,t),e,t)}function La(e){return e&&!e.snake&&e.prev?e.prev:e}function $a(e){const n=e.entry.filter((e=>!!e.resource)).map((e=>({meta:e.resource?.meta,lines:t.stringify(e.resource,!0).match(/[^\r\n]+/g)}))).sort(((e,t)=>e.meta.lastUpdated.localeCompare(t.meta.lastUpdated))),r=n[0].lines.map((e=>({id:n[0].meta.versionId,meta:n[0].meta,value:e,span:1})));return function(e,t){for(let n=1;n<t.length;n++){const r=za(t[n-1].lines,t[n].lines);for(const a of r){const r=a.original.position,o=a.original.lines,l=a.revised.lines;if("delete"!==a.type&&"change"!==a.type||e.splice(r,o.length),"insert"===a.type||"change"===a.type)for(let o=0;o<a.revised.lines.length;o++)e.splice(r+o,0,{id:t[n].meta.versionId,meta:t[n].meta,value:l[o],span:1})}}}(r,n),function(e){let t=0;for(;t<e.length;){let n=t;for(;n<e.length&&e[n].id===e[t].id;)e[n].span=-1,n++;e[t].span=n-t,t=n}}(r),r}const Fa=r.createStyles((e=>({container:{overflowX:"auto"},root:{border:`0.1px solid ${e.colors.gray[3]}`,borderCollapse:"collapse",borderRadius:e.radius.sm,borderSpacing:0,fontSize:e.fontSizes.xs,width:"100%","& td":{padding:"2px 4px 0 4px",verticalAlign:"top",whiteSpace:"nowrap"}},startRow:{borderTop:`0.1px solid ${e.colors.gray[3]}`},normalRow:{borderTop:0},author:{lineHeight:"10px"},dateTime:{borderRight:`0.1px solid ${e.colors.gray[3]}`,lineHeight:"20px"},lineNumber:{backgroundColor:e.colors.gray[1],border:0,color:e.colors.gray[5],fontFamily:e.fontFamilyMonospace,padding:`${e.spacing.xs} ${e.spacing.sm}`,textAlign:"right"},line:{fontFamily:e.fontFamilyMonospace,fontSize:e.fontSizes.sm,padding:`${e.spacing.xs} ${e.spacing.sm}`},pre:{margin:0}})));function Ba(e,t){return`/${e.resourceType}/${e.id}/_history/${t}`}function Ua(e){const t=Math.floor((Date.now()-Date.parse(e))/1e3),n=Math.floor(t/31536e3);if(n>0)return qa(n,"year");const r=Math.floor(t/2592e3);if(r>0)return qa(r,"month");const a=Math.floor(t/86400);if(a>0)return qa(a,"day");const o=Math.floor(t/3600);if(o>0)return qa(o,"hour");const l=Math.floor(t/60);return l>0?qa(l,"minute"):qa(t,"second")}function qa(e,t){return`${e} ${1===e?t:t+"s"} ago`}const _a=r.createStyles((e=>({removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}})));function Ga(e){const{classes:t}=_a();return n.createElement(n.Fragment,null,"...",n.createElement("br",null),e.delta.original.lines.length>0&&n.createElement("div",{className:t.removed},e.delta.original.lines.join("\n")),e.delta.revised.lines.length>0&&n.createElement("div",{className:t.added},e.delta.revised.lines.join("\n")),"...",n.createElement("br",null))}function ja(e){const{response:r,resource:a}=e.entry;return a?n.createElement("tr",null,n.createElement("td",null,n.createElement(pn,{value:a.meta?.author,link:!0})),n.createElement("td",null,t.formatDateTime(a.meta?.lastUpdated)),n.createElement("td",null,n.createElement(Te,{to:Wa(a)},a.meta?.versionId))):n.createElement("tr",null,n.createElement("td",{colSpan:3},t.normalizeErrorString(r?.outcome)))}function Wa(e){return`/${e.resourceType}/${e.id}/_history/${e.meta?.versionId}`}const Qa=r.createStyles((e=>({container:{display:"flex",minHeight:400},info:{minWidth:300,padding:20,borderRight:`1px solid ${e.colors.gray[3]}`},selection:{minWidth:300,padding:20}})));function Ha(e){return Ja(e.getTime())}function Ka(e){return Ja(e.getTime()+26784e5)}function Ja(e){return new Date(Math.max(Date.now(),e)).toISOString()}function Ya(e){return e.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}function Xa(e){const t=p(),[a,o]=n.useState();return n.createElement($e,{style:{maxWidth:400},onSubmit:async n=>{try{e.handleAuthResponse(await t.startNewProject({login:e.login,projectName:n.projectName}))}catch(e){o(e)}}},n.createElement(r.Center,{sx:{flexDirection:"column"}},n.createElement(Kr,{size:32}),n.createElement(r.Title,null,"Create project")),n.createElement(r.Stack,{spacing:"xl"},n.createElement(r.TextInput,{name:"projectName",label:"Project Name",placeholder:"My Project",required:!0,autoFocus:!0,error:Ct(a,"firstName")}),n.createElement(r.Text,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",n.createElement(r.Anchor,{href:"https://www.medplum.com/privacy"},"Privacy Policy")," and ",n.createElement(r.Anchor,{href:"https://www.medplum.com/terms"},"Terms of Service"),".")),n.createElement(r.Group,{position:"right",mt:"xl",noWrap:!0},n.createElement(r.Button,{type:"submit"},"Create project")))}function Za(e,t){const n=document.getElementsByTagName("head")[0],r=document.createElement("script");r.async=!0,r.src=e,r.onload=t||null,n.appendChild(r)}function eo(e){const t=p(),{googleClientId:r,handleGoogleCredential:a}=e,o=n.useRef(null),[l,c]=n.useState("undefined"!=typeof google),[i,s]=n.useState(!1),[u,m]=n.useState(!1);return n.useEffect((()=>{"undefined"!=typeof google?(i||(google.accounts.id.initialize({client_id:r,callback:a}),s(!0)),o.current&&!u&&(google.accounts.id.renderButton(o.current,{}),m(!0))):Za("https://accounts.google.com/gsi/client",(()=>c(!0)))}),[t,r,i,l,o,u,a]),r?n.createElement("div",{ref:o}):null}function to(e){if(e)return e;if("undefined"!=typeof window){const e=window.location.protocol+"//"+window.location.host;if(("undefined"?.split(",")??[]).includes(e))return"undefined"}}function no(e){"undefined"==typeof grecaptcha&&Za("https://www.google.com/recaptcha/api.js?render="+e)}function ro(e){return new Promise(((t,n)=>{grecaptcha.ready((async()=>{try{t(await grecaptcha.execute(e,{action:"submit"}))}catch(e){n(e)}}))}))}function ao(e){const t=to(e.googleClientId),a=e.recaptchaSiteKey,o=p(),[l,c]=n.useState(),i=Tt(l,void 0);return n.useEffect((()=>{a&&no(a)}),[a]),n.createElement($e,{style:{maxWidth:400},onSubmit:async t=>{try{let n="";a&&(n=await ro(a)),e.handleAuthResponse(await o.startNewUser({projectId:e.projectId,firstName:t.firstName,lastName:t.lastName,email:t.email,password:t.password,remember:"true"===t.remember,recaptchaSiteKey:a,recaptchaToken:n}))}catch(e){c(e)}}},n.createElement(r.Center,{sx:{flexDirection:"column"}},e.children),n.createElement(Jr,{issues:i}),t&&n.createElement(n.Fragment,null,n.createElement(r.Group,{position:"center",p:"xl",style:{height:70}},n.createElement(eo,{googleClientId:t,handleGoogleCredential:async t=>{try{e.handleAuthResponse(await o.startGoogleLogin({googleClientId:t.clientId,googleCredential:t.credential,createUser:!0}))}catch(e){c(e)}}})),n.createElement(r.Divider,{label:"or",labelPosition:"center",my:"lg"})),n.createElement(r.Stack,{spacing:"xl"},n.createElement(r.TextInput,{name:"firstName",type:"text",label:"First name",placeholder:"First name",required:!0,autoFocus:!0,error:Ct(l,"firstName")}),n.createElement(r.TextInput,{name:"lastName",type:"text",label:"Last name",placeholder:"Last name",required:!0,error:Ct(l,"lastName")}),n.createElement(r.TextInput,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,error:Ct(l,"email")}),n.createElement(r.PasswordInput,{name:"password",label:"Password",autoComplete:"off",required:!0,error:Ct(l,"password")}),n.createElement(r.Text,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",n.createElement(r.Anchor,{href:"https://www.medplum.com/privacy"},"Privacy Policy")," and ",n.createElement(r.Anchor,{href:"https://www.medplum.com/terms"},"Terms of Service"),"."),n.createElement(r.Text,{color:"dimmed",size:"xs"},"This site is protected by reCAPTCHA and the Google"," ",n.createElement(r.Anchor,{href:"https://policies.google.com/privacy"},"Privacy Policy")," and ",n.createElement(r.Anchor,{href:"https://policies.google.com/terms"},"Terms of Service")," apply.")),n.createElement(r.Group,{position:"apart",mt:"xl",noWrap:!0},n.createElement(r.Checkbox,{name:"remember",label:"Remember me",size:"xs"}),n.createElement(r.Button,{type:"submit"},"Create account")))}function oo(e){const[t,r]=n.useState();return t?n.createElement(co,{email:t,...e}):n.createElement(lo,{setEmail:r,...e})}function lo(e){const{setEmail:t,onRegister:a,handleAuthResponse:o,children:l,...c}=e,i=p(),s=!e.disableGoogleAuth&&to(e.googleClientId),u=n.useCallback((async e=>{if(!e.authorizeUrl)return!1;const t=JSON.stringify({...await i.ensureCodeChallenge(c),domain:e.domain}),n=new URL(e.authorizeUrl);return n.searchParams.set("state",t),window.location.assign(n.toString()),!0}),[i,c]),m=n.useCallback((async e=>{const n=await i.post("auth/method",{email:e.email});await u(n)||t(e.email)}),[i,u,t]),d=n.useCallback((async e=>{const t=await i.startGoogleLogin({...c,googleCredential:e.credential});await u(t)||o(t)}),[i,c,u,o]);return n.createElement($e,{style:{maxWidth:400},onSubmit:m},n.createElement(r.Center,{sx:{flexDirection:"column"}},l),s&&n.createElement(n.Fragment,null,n.createElement(r.Group,{position:"center",p:"xl",style:{height:70}},n.createElement(eo,{googleClientId:s,handleGoogleCredential:d})),n.createElement(r.Divider,{label:"or",labelPosition:"center",my:"lg"})),n.createElement(r.TextInput,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,autoFocus:!0}),n.createElement(r.Group,{position:"apart",mt:"xl",spacing:0,noWrap:!0},n.createElement("div",null,a&&n.createElement(r.Anchor,{component:"button",type:"button",color:"dimmed",onClick:a,size:"xs"},"Register")),n.createElement(r.Button,{type:"submit"},"Next")))}function co(e){const{onForgotPassword:a,handleAuthResponse:o,children:l,...c}=e,i=p(),[s,u]=n.useState(),m=Tt(s,void 0),d=n.useCallback((e=>{i.startLogin({...c,password:e.password,remember:"on"===e.remember}).then(o).catch((e=>u(t.normalizeOperationOutcome(e))))}),[i,c,o]);return n.createElement($e,{style:{maxWidth:400},onSubmit:d},n.createElement(r.Center,{sx:{flexDirection:"column"}},l),n.createElement(Jr,{issues:m}),n.createElement(r.Stack,{spacing:"xl"},n.createElement(r.PasswordInput,{name:"password",label:"Password",autoComplete:"off",required:!0,autoFocus:!0,error:Ct(s,"password")})),n.createElement(r.Group,{position:"apart",mt:"xl",spacing:0,noWrap:!0},a&&n.createElement(r.Anchor,{component:"button",type:"button",color:"dimmed",onClick:a,size:"xs"},"Forgot password"),n.createElement(r.Checkbox,{id:"remember",name:"remember",label:"Remember me",size:"xs",sx:{lineHeight:1}}),n.createElement(r.Button,{type:"submit"},"Sign in")))}function io(e){const a=p(),[o,l]=n.useState();return n.createElement(r.Stack,null,n.createElement(r.Center,{sx:{flexDirection:"column"}},n.createElement(Kr,{size:32}),n.createElement(r.Title,{order:3},"Choose profile")),n.createElement(Jr,{outcome:o}),e.memberships.map((o=>n.createElement(r.UnstyledButton,{key:o.id,onClick:()=>{a.post("auth/profile",{login:e.login,profile:o.id}).then(e.handleAuthResponse).catch((e=>l(t.normalizeOperationOutcome(e))))}},n.createElement(r.Group,null,n.createElement(r.Avatar,{radius:"xl"}),n.createElement("div",{style:{flex:1}},n.createElement(r.Text,{size:"sm",weight:500},o.profile?.display),n.createElement(r.Text,{color:"dimmed",size:"xs"},o.project?.display)))))))}function so(e){const t=p();return n.createElement($e,{style:{maxWidth:400},onSubmit:n=>{t.post("auth/scope",{login:e.login,scope:Object.keys(n).join(" ")}).then(e.handleAuthResponse).catch(console.log)}},n.createElement(r.Stack,null,n.createElement(r.Center,{sx:{flexDirection:"column"}},n.createElement(Kr,{size:32}),n.createElement(r.Title,null,"Choose scope")),n.createElement(r.Stack,null,(e.scope||"openid").split(" ").map((e=>n.createElement(r.Checkbox,{key:e,id:e,name:e,label:e,defaultChecked:!0})))),n.createElement(r.Group,{position:"right",mt:"xl"},n.createElement(r.Button,{type:"submit"},"Set scope"))))}function uo(e){const a=p(),[o,l]=n.useState(void 0);return n.createElement($e,{style:{maxWidth:400},onSubmit:n=>{l(void 0),a.post("auth/mfa/verify",{login:e.login,token:n.token}).then(e.handleAuthResponse).catch((e=>l(t.normalizeErrorString(e))))}},n.createElement(r.Stack,null,n.createElement(r.Center,{sx:{flexDirection:"column"}},n.createElement(Kr,{size:32}),n.createElement(r.Title,null,"Enter MFA code")),o&&n.createElement(r.Alert,{icon:n.createElement(R,{size:16}),title:"Error",color:"red"},o),n.createElement(r.Stack,null,n.createElement(r.TextInput,{name:"token",label:"MFA code",required:!0})),n.createElement(r.Group,{position:"right",mt:"xl"},n.createElement(r.Button,{type:"submit"},"Submit code"))))}e.AddressDisplay=c,e.AddressInput=u,e.AnnotationInput=E,e.AppShell=function(e){const t=r.useMantineTheme(),[a,o]=n.useState("true"===localStorage.navbarOpen),l=p(),c=g();function i(e){localStorage.navbarOpen=e.toString(),o(e)}return l.isLoading()?n.createElement(fe,null):n.createElement(r.AppShell,{styles:{main:{background:"dark"===t.colorScheme?t.colors.dark[8]:t.colors.gray[0]}},padding:0,fixed:!0,header:c&&n.createElement(Ve,{logo:e.logo,version:e.version,navbarToggle:function(){i(!a)}}),navbar:c&&a?n.createElement(Qe,{menus:e.menus,closeNavbar:function(){i(!1)},displayAddBookmark:e.displayAddBookmark}):void 0},n.createElement(ge,null,n.createElement(n.Suspense,{fallback:n.createElement(fe,null)},e.children)))},e.AsyncAutocomplete=xe,e.AttachmentArrayDisplay=Ye,e.AttachmentArrayInput=Ze,e.AttachmentButton=Xe,e.AttachmentDisplay=Je,e.AttachmentInput=et,e.BackboneElementDisplay=yt,e.BackboneElementInput=tn,e.CalendarInput=an,e.CheckboxFormSection=vt,e.CodeInput=je,e.CodeableConceptDisplay=ot,e.CodeableConceptInput=xt,e.CodingDisplay=lt,e.CodingInput=wt,e.ContactDetailDisplay=it,e.ContactDetailInput=Mt,e.ContactPointDisplay=ct,e.ContactPointInput=It,e.Container=sn,e.DateTimeInput=Rt,e.DefaultResourceTimeline=function(e){return n.createElement(zn,{value:e.resource,loadTimelineResources:async(e,t,n)=>{const r=`${t}/${n}`;return Promise.allSettled([e.readHistory(t,n),e.search("Task",{_filter:`based-on eq ${r} or focus eq ${r} or subject eq ${r}`,_count:100})])}})},e.DescriptionList=rt,e.DescriptionListEntry=at,e.DiagnosticReportDisplay=En,e.Document=jn,e.ElementDefinitionInputSelector=Xt,e.ElementDefinitionTypeInput=Zt,e.EncounterTimeline=function(e){return n.createElement(zn,{value:e.encounter,loadTimelineResources:async(e,t,n)=>Promise.allSettled([e.readHistory("Encounter",n),e.search("Communication","encounter=Encounter/"+n),e.search("Media","encounter=Encounter/"+n)]),createCommunication:(e,n,r)=>({resourceType:"Communication",status:"completed",encounter:t.createReference(e),subject:e.subject,sender:t.createReference(n),sent:(new Date).toISOString(),payload:[{contentString:r}]}),createMedia:(e,n,r)=>({resourceType:"Media",status:"completed",encounter:t.createReference(e),subject:e.subject,operator:t.createReference(n),issued:(new Date).toISOString(),content:r})})},e.ErrorBoundary=ge,e.FhirPathTable=Qr,e.Form=$e,e.FormSection=bt,e.Header=Ve,e.HumanNameDisplay=Ee,e.HumanNameInput=Ot,e.IdentifierDisplay=st,e.IdentifierInput=Vt,e.Loading=fe,e.Logo=Kr,e.MedplumLink=Te,e.MedplumProvider=function(e){const t=e.medplum,r=e.navigate||f,[a,o]=n.useState({profile:t.getProfile(),loading:!1});n.useEffect((()=>{function e(){o({...a,profile:t.getProfile()})}return t.addEventListener("change",e),()=>t.removeEventListeneer("change",e)}),[t,a]);const l={...a,medplum:t,navigate:r};return n.createElement(m.Provider,{value:l},e.children)},e.MemoizedFhirPathTable=Hr,e.MemoizedSearchControl=_r,e.MoneyDisplay=ut,e.MoneyInput=zt,e.Navbar=Qe,e.ObservationTable=vn,e.OperationOutcomeAlert=Jr,e.Panel=xn,e.PatientTimeline=function(e){const r=n.useCallback(((e,t,n)=>{const r=`${t}/${n}`,a=100;return Promise.allSettled([e.readHistory("Patient",n),e.search("Communication",{subject:r,_count:a}),e.search("Device",{patient:r,_count:a}),e.search("DeviceRequest",{patient:r,_count:a}),e.search("DiagnosticReport",{subject:r,_count:a}),e.search("Media",{subject:r,_count:a}),e.search("ServiceRequest",{subject:r,_count:a}),e.search("Task",{subject:r,_count:a})])}),[]);return n.createElement(zn,{value:e.patient,loadTimelineResources:r,createCommunication:(e,n,r)=>({resourceType:"Communication",status:"completed",subject:t.createReference(e),sender:t.createReference(n),sent:(new Date).toISOString(),payload:[{contentString:r}]}),createMedia:(e,n,r)=>({resourceType:"Media",status:"completed",subject:t.createReference(e),operator:t.createReference(n),issued:(new Date).toISOString(),content:r})})},e.PlanDefinitionBuilder=function(e){const t=p(),a=ke(e.value),[o,l]=n.useState(void 0),[c,i]=n.useState(),[s,u]=n.useState(),[m,d]=n.useState();function h(){u(void 0)}function g(){i(void 0)}const f=n.useRef();if(f.current=m,n.useEffect((()=>{t.requestSchema("PlanDefinition").then(l).catch(console.log)}),[t]),n.useEffect((()=>{var e;return d((e=a??{resourceType:"PlanDefinition"},{...e,action:ia(e.action)})),document.addEventListener("mouseover",h),document.addEventListener("click",g),()=>{document.removeEventListener("mouseover",h),document.removeEventListener("click",g)}}),[a]),!o||!m)return null;function E(e,t){d({...f.current,[e]:t})}return n.createElement("div",null,n.createElement($e,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(m)},n.createElement(r.TextInput,{label:"Plan Title",defaultValue:m.title,onChange:e=>E("title",e.currentTarget.value)}),n.createElement(Xr,{actions:m.action||[],selectedKey:c,setSelectedKey:i,hoverKey:s,setHoverKey:u,onChange:e=>E("action",e)}),n.createElement(r.Button,{type:"submit"},"Save")))},e.QuantityDisplay=mt,e.QuantityInput=$t,e.QuestionnaireBuilder=function(e){const t=p(),a=ke(e.questionnaire),[o,l]=n.useState(),[c,i]=n.useState(),[s,u]=n.useState(),[m,d]=n.useState();function h(){d(void 0)}function g(){u(void 0)}return n.useEffect((()=>{t.requestSchema("Questionnaire").then(l).catch(console.log)}),[t]),n.useEffect((()=>{var e;return i((e=a??{resourceType:"Questionnaire"},{...e,id:e.id||Ia(),item:Ma(e.item)})),document.addEventListener("mouseover",h),document.addEventListener("click",g),()=>{document.removeEventListener("mouseover",h),document.removeEventListener("click",g)}}),[a]),o&&c?n.createElement("div",null,n.createElement($e,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(c)},n.createElement(ka,{item:c,selectedKey:s,setSelectedKey:u,hoverKey:m,setHoverKey:d,onChange:i}),n.createElement(r.Button,{type:"submit"},"Save"))):null},e.QuestionnaireForm=ma,e.QuestionnaireFormItem=pa,e.RangeDisplay=dt,e.RangeInput=Bt,e.ReferenceDisplay=ht,e.ReferenceInput=jt,e.ReferenceRangeEditor=function(e){const a=(e=Object.assign(Da,e)).definition,[o,l]=n.useState([]),[c,i]=n.useState(1),[s,u]=n.useState(1);return n.useEffect((()=>{const e=function(e,t){const n=e.qualifiedInterval||[];let r=Math.max(...n.map((e=>{const t=parseInt(e.id?.substring(3)||"");return isNaN(t)?Number.NEGATIVE_INFINITY:t})))+1;Number.isFinite(r)||(r=1);return e={...e,qualifiedInterval:n.map((e=>({...e,id:e.id||"id-"+r++})))},t(r),e}(a,u);l(function(e,t){let n=1;const r={};for(const t of e){const e=Na(t);e in r||(r[e]={id:"group-id-"+n++,filters:Object.fromEntries(Pa.map((e=>[e,t[e]]))),intervals:[]}),r[e].intervals.push(t)}return t(n),Object.values(r)}(e.qualifiedInterval||[],i))}),[a]),n.createElement($e,{testid:"reference-range-editor",onSubmit:function(){const t=o.flatMap((e=>e.intervals)).filter((e=>!function(e){return void 0===e.range?.low?.value&&void 0===e.range?.high?.value}(e)));e.onSubmit({...a,qualifiedInterval:t})}},n.createElement(r.Stack,null,o.map((e=>{return n.createElement(Oa,{unit:(r=a.quantitativeDetails?.unit,r&&(t.getCodeBySystem(r,"http://unitsofmeasure.org")||r.text)),onChange:d,onAdd:p,onRemove:h,onRemoveGroup:m,key:`group-${e.id}`,intervalGroup:e});var r}))),n.createElement(r.ActionIcon,{title:"Add Group",size:"sm",onClick:e=>{var t;ye(e),t={id:`group-id-${c}`,filters:{},intervals:[]},l((e=>[...e,t])),i((e=>e+1))}},n.createElement(U,null)),n.createElement(r.Group,{position:"right"},n.createElement(r.Button,{type:"submit"},"Save")));function m(e){l((t=>t.filter((t=>t.id!==e.id))))}function d(e,t){l((n=>{const r=(n=[...n]).find((t=>t.id===e)),a=r?.intervals?.findIndex((e=>e.id===t.id));return void 0!==a&&r?.intervals?.[a]&&(r.intervals[a]=t),n}))}function p(e,t){void 0===t.id&&(t.id=`id-${s}`,u((e=>e+1))),l((n=>{const r=(n=[...n]).findIndex((t=>t.id===e));if(-1!==r){const e={...n[r]};t={...t,...e.filters},e.intervals=[...e.intervals,t],n[r]=e}return n}))}function h(e,t){l((n=>{const r=(n=[...n]).find((t=>t.id===e));return r&&(r.intervals=r.intervals.filter((e=>e.id!==t.id))),n}))}},e.ReferenceRangeGroupEditor=Oa,e.RegisterForm=function(e){const{type:t,projectId:r,googleClientId:a,recaptchaSiteKey:o,onSuccess:l}=e,c=p(),[i,s]=n.useState(void 0),[u,m]=n.useState();function d(e){e.code?c.processCode(e.code).then((()=>l())).catch(console.log):e.login&&s(e.login)}return n.useEffect((()=>{"patient"===t&&i&&c.startNewPatient({login:i,projectId:r}).then((e=>c.processCode(e.code))).then((()=>l())).catch((e=>m(e)))}),[c,t,r,i,l]),n.createElement(jn,{width:450},u&&n.createElement("pre",null,JSON.stringify(u,null,2)),!i&&n.createElement(ao,{projectId:r,googleClientId:a,recaptchaSiteKey:o,handleAuthResponse:d},e.children),i&&"project"===t&&n.createElement(Xa,{login:i,handleAuthResponse:d}))},e.RequestGroupDisplay=function(e){const a=p(),o=ke(e.value),[l,c]=n.useState(!1),[i,s]=n.useState();return n.useEffect((()=>{o&&!l&&(a.executeBatch(function(e){const t=[];if(e.action)for(const n of e.action)n.resource?.reference&&t.push({request:{method:"GET",url:n.resource.reference}});return{resourceType:"Bundle",type:"batch",entry:t}}(o)).then(s).catch(console.log),c(!0))}),[a,o,l]),o&&i?n.createElement(r.Grid,null,o.action?.map(((a,o)=>{const l=a.resource&&function(e){for(const n of i?.entry)if(n.resource&&e.reference===t.getReferenceString(n.resource))return n.resource;return}(a.resource),c=l?.input?.[0]?.valueReference,s=l?.output?.[0]?.valueReference;return n.createElement(n.Fragment,{key:`action-${o}`},n.createElement(r.Grid.Col,{span:1,p:"md"},"completed"===l?.status?n.createElement($,null):n.createElement(ue,{color:"gray"})),n.createElement(r.Grid.Col,{span:9,p:"xs"},n.createElement(r.Text,{weight:500},a.title),a.description&&n.createElement("div",null,a.description),n.createElement("div",null,"Last edited by ",n.createElement(dn,{value:l?.meta?.author})," on ",t.formatDateTime(l?.meta?.lastUpdated)),n.createElement("div",null,"Status: ",n.createElement(gn,{status:l?.status||"unknown"}))),n.createElement(r.Grid.Col,{span:2,p:"md"},c&&!s&&n.createElement(r.Button,{onClick:()=>e.onStart(l,c)},"Start"),c&&s&&n.createElement(r.Button,{onClick:()=>e.onEdit(l,c,s)},"Edit")))}))):null},e.ResourceArrayDisplay=gt,e.ResourceArrayInput=Wt,e.ResourceAvatar=Se,e.ResourceBadge=pn,e.ResourceBlame=function(e){const{classes:t}=Fa(),r=p(),[a,o]=n.useState(e.history);if(n.useEffect((()=>{!e.history&&e.resourceType&&e.id&&r.readHistory(e.resourceType,e.id).then(o).catch(console.log)}),[r,e.history,e.resourceType,e.id]),!a)return n.createElement("div",null,"Loading...");const l=a.entry?.[0]?.resource,c=$a(a);return n.createElement("div",{className:t.container},n.createElement("table",{className:t.root},n.createElement("tbody",null,c.map(((e,r)=>n.createElement("tr",{key:"row-"+r,className:e.span>0?t.startRow:t.normalRow},e.span>0&&n.createElement(n.Fragment,null,n.createElement("td",{className:t.author,rowSpan:e.span},n.createElement(pn,{value:e.meta.author,link:!0})),n.createElement("td",{className:t.dateTime,rowSpan:e.span},n.createElement(Te,{to:Ba(l,e.meta.versionId)},Ua(e.meta.lastUpdated)))),n.createElement("td",{className:t.lineNumber},r+1),n.createElement("td",{className:t.line},n.createElement("pre",{className:t.pre},e.value))))))))},e.ResourceDiff=function(e){let r=e.original,a=e.revised;e.ignoreMeta&&(r={...r,meta:void 0},a={...a,meta:void 0});const o=za(t.stringify(r,!0).match(/[^\r\n]+/g),t.stringify(a,!0).match(/[^\r\n]+/g));return n.createElement("pre",{style:{color:"gray"}},o.map(((e,t)=>n.createElement(Ga,{key:"delta"+t,delta:e}))))},e.ResourceForm=function(e){const a=p(),o=ke(e.defaultValue),[l,c]=n.useState(),[i,s]=n.useState();return n.useEffect((()=>{o&&(s(t.deepClone(o)),a.requestSchema(o.resourceType).then(c).catch(console.log))}),[a,o]),l&&i?n.createElement("form",{noValidate:!0,autoComplete:"off",onSubmit:t=>{t.preventDefault(),e.onSubmit&&e.onSubmit(i)}},n.createElement(r.Stack,{mb:"xl"},n.createElement(bt,{title:"Resource Type",htmlFor:"resourceType",outcome:e.outcome},n.createElement(r.TextInput,{name:"resourceType",defaultValue:i.resourceType,disabled:!0})),n.createElement(bt,{title:"ID",htmlFor:"id",outcome:e.outcome},n.createElement(r.TextInput,{name:"id",defaultValue:i.id,disabled:!0}))),n.createElement(tn,{typeName:i.resourceType,defaultValue:i,outcome:e.outcome,onChange:s}),n.createElement(r.Group,{position:"right",mt:"xl"},n.createElement(r.Button,{type:"submit"},"OK"),e.onDelete&&n.createElement(r.Button,{variant:"outline",color:"red",type:"button",onClick:()=>{e.onDelete(i)}},"Delete"))):n.createElement("div",null,"Loading...")},e.ResourceHistoryTable=function(e){const t=p(),[a,o]=n.useState(e.history);return n.useEffect((()=>{!e.history&&e.resourceType&&e.id&&t.readHistory(e.resourceType,e.id).then(o).catch(console.log)}),[t,e.history,e.resourceType,e.id]),a?n.createElement(r.Table,{withBorder:!0,withColumnBorders:!0},n.createElement("thead",null,n.createElement("tr",null,n.createElement("th",null,"Author"),n.createElement("th",null,"Date"),n.createElement("th",null,"Version"))),n.createElement("tbody",null,a.entry?.map(((e,t)=>n.createElement(ja,{key:"entry-"+t,entry:e}))))):n.createElement("div",null,"Loading...")},e.ResourceInput=_t,e.ResourceName=dn,e.ResourcePropertyDisplay=ft,e.ResourcePropertyInput=Yt,e.ResourceTable=Rn,e.ResourceTimeline=zn,e.Scheduler=function(e){const{classes:a}=Qa(),o=p(),l=ke(e.schedule),c=ke(e.questionnaire),[i,s]=n.useState();n.useRef().current=i;const[u,m]=n.useState(on()),[d,h]=n.useState(),[g,f]=n.useState(),[E,y]=n.useState();if(n.useEffect((()=>{l?(s([]),o.searchResources("Slot",new URLSearchParams([["_count",720..toString()],["schedule",t.getReferenceString(l)],["start","gt"+Ha(u)],["start","lt"+Ka(u)]])).then(s).catch(console.log)):s(void 0)}),[o,l,u]),!l||!i||!c)return null;const v=l.actor?.[0];return n.createElement("div",{className:a.container,"data-testid":"scheduler"},n.createElement("div",{className:a.info},v&&n.createElement(Se,{value:v,size:"xl"}),v&&n.createElement(r.Text,{size:"xl",weight:500},n.createElement(dn,{value:v})),n.createElement("p",null,"1 hour"),d&&n.createElement("p",null,d.toLocaleDateString()),g&&n.createElement("p",null,Ya(new Date(g.start)))),n.createElement("div",{className:a.selection},!d&&n.createElement("div",null,n.createElement("h3",null,"Select date"),n.createElement(an,{slots:i,onChangeMonth:m,onClick:h})),d&&!g&&n.createElement("div",null,n.createElement("h3",null,"Select time"),n.createElement(r.Stack,null,i.map((e=>{const t=new Date(e.start);return t.getTime()>d.getTime()&&t.getTime()<d.getTime()+864e5&&n.createElement("div",{key:e.id},n.createElement(r.Button,{variant:"outline",style:{width:150},onClick:()=>f(e)},Ya(t)))})))),d&&g&&!E&&n.createElement(ma,{questionnaire:c,submitButtonText:"Next",onSubmit:y}),d&&g&&E&&n.createElement("div",null,n.createElement("h3",null,"You're all set!"),n.createElement("p",null,"Check your email for a calendar invite."))))},e.SearchChangeEvent=$r,e.SearchClickEvent=Br,e.SearchControl=qr,e.SearchFieldEditor=Cr,e.SearchFilterEditor=Sr,e.SearchLoadEvent=Fr,e.ServiceRequestTimeline=function(e){return n.createElement(zn,{value:e.serviceRequest,loadTimelineResources:async(e,t,n)=>{const r=`${t}/${n}`,a=100;return Promise.allSettled([e.readHistory("ServiceRequest",n),e.search("Communication",{"based-on":r,_count:a}),e.search("DiagnosticReport",{"based-on":r,_count:a}),e.search("Media",{"based-on":r,_count:a}),e.search("Task",{_filter:`based-on eq ${r} or focus eq ${r} or subject eq ${r}`,_count:a})])},createCommunication:(e,n,r)=>({resourceType:"Communication",status:"completed",basedOn:[t.createReference(e)],subject:e.subject,sender:t.createReference(n),sent:(new Date).toISOString(),payload:[{contentString:r}]}),createMedia:(e,n,r)=>({resourceType:"Media",status:"completed",basedOn:[t.createReference(e)],subject:e.subject,operator:t.createReference(n),issued:(new Date).toISOString(),content:r})})},e.SignInForm=function(e){const{chooseScopes:t,onSuccess:r,onForgotPassword:a,onRegister:o,onCode:l,...c}=e,i=p(),[s,u]=n.useState(void 0),[m,d]=n.useState(!1),[h,g]=n.useState(void 0),f=n.useCallback((e=>{l?l(e):i.processCode(e).then((()=>{r&&r()})).catch(console.log)}),[i,l,r]),E=n.useCallback((e=>{d(!!e.mfaRequired),e.login&&u(e.login),e.memberships&&g(e.memberships),e.code&&(t?g(void 0):f(e.code))}),[t,f]),y=n.useCallback((e=>{f(e.code)}),[f]);return n.useEffect((()=>{e.login&&i.get("auth/login/"+e.login).then(E).catch(console.error)}),[i,e,E]),n.createElement(jn,{width:450},s?m?n.createElement(uo,{login:s,handleAuthResponse:E}):h?n.createElement(io,{login:s,memberships:h,handleAuthResponse:E}):"new"===e.projectId?n.createElement(Xa,{login:s,handleAuthResponse:E}):e.chooseScopes?n.createElement(so,{login:s,scope:e.scope,handleAuthResponse:y}):n.createElement("div",null,"Success"):n.createElement(oo,{onForgotPassword:a,onRegister:o,handleAuthResponse:E,disableGoogleAuth:e.disableGoogleAuth,...c},e.children))},e.StatusBadge=gn,e.Timeline=An,e.TimelineItem=Pn,e.TimingInput=Ht,e.addDateFilterBetween=ir,e.addField=function(e,t){if(e.fields&&e.fields.includes(t))return e;const n=[];return e.fields&&n.push(...e.fields),n.push(t),{...e,fields:n,name:void 0}},e.addFilter=Yn,e.addLastMonthFilter=rr,e.addMissingFilter=ur,e.addNextMonthFilter=or,e.addThisMonthFilter=ar,e.addTodayFilter=er,e.addTomorrowFilter=tr,e.addYearToDateFilter=cr,e.addYesterdayFilter=Zn,e.buildFieldNameString=yr,e.clearFilters=function(e){return Kn(e,[])},e.clearFiltersOnField=Jn,e.convertIsoToLocal=At,e.convertLocalToIso=Pt,e.createScriptTag=Za,e.deleteFilter=Xn,e.getErrorsForInput=Ct,e.getIssuesForExpression=Tt,e.getMonthString=rn,e.getOpString=Er,e.getRecaptcha=ro,e.getSearchOperators=fr,e.getSortField=hr,e.getStartMonth=on,e.getTimeString=Ua,e.getValueAndType=Et,e.initRecaptcha=no,e.isChoiceQuestion=ua,e.isQuestionEnabled=Ca,e.isSortDescending=gr,e.parseForm=Ne,e.renderValue=vr,e.setFilters=Kn,e.setOffset=mr,e.setPage=dr,e.setPropertyValue=St,e.setSort=pr,e.sortByDateAndPriority=Dn,e.toggleSort=function(e,t){let n=!1;return hr(e)===t&&(n=!gr(e)),pr(e,t,n)},e.useMedplum=p,e.useMedplumContext=d,e.useMedplumNavigate=h,e.useMedplumProfile=g,e.useResource=ke}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@medplum/core"),require("react"),require("@mantine/core"),require("prop-types"),require("react-router-dom"),require("@mantine/notifications")):"function"==typeof define&&define.amd?define(["exports","@medplum/core","react","@mantine/core","prop-types","react-router-dom","@mantine/notifications"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).medplum=e.medplum||{},e.medplum.react={}),e.medplum.core,e.React,e.mantine.core,e.PropTypes,e.ReactRouterDOM,e.mantine.notifications)}(this,(function(e,t,n,r,a,o,l){"use strict";function c(e){const r=e.value;return r?n.createElement(n.Fragment,null,t.formatAddress(r)):null}function i(e,t){return e&&e.line&&e.line.length>t?e.line[t]:""}function s(e,t,n){const r=e.line||[];for(;r.length<=t;)r.push("");return r[t]=n,{...e,line:r}}function u(e){const[t,a]=n.useState(e.defaultValue||{}),o=n.useRef();function l(t){a(t),e.onChange&&e.onChange(t)}return o.current=t,n.createElement(r.Group,{spacing:"xs",grow:!0,noWrap:!0},n.createElement(r.NativeSelect,{"data-testid":"address-use",defaultValue:t?.use,onChange:e=>{return t=e.currentTarget.value,void l({...o.current,use:t});var t},data:["","home","work","temp","old","billing"]}),n.createElement(r.NativeSelect,{"data-testid":"address-type",defaultValue:t?.type,onChange:e=>{return t=e.currentTarget.value,void l({...o.current,type:t});var t},data:["","postal","physical","both"]}),n.createElement(r.TextInput,{placeholder:"Line 1",defaultValue:i(t,0),onChange:e=>{return t=e.currentTarget.value,void l(s(o.current||{},0,t));var t}}),n.createElement(r.TextInput,{placeholder:"Line 2",defaultValue:i(t,1),onChange:e=>{return t=e.currentTarget.value,void l(s(o.current||{},1,t));var t}}),n.createElement(r.TextInput,{placeholder:"City",defaultValue:t.city,onChange:e=>{return t=e.currentTarget.value,void l({...o.current,city:t});var t}}),n.createElement(r.TextInput,{placeholder:"State",defaultValue:t.state,onChange:e=>{return t=e.currentTarget.value,void l({...o.current,state:t});var t}}),n.createElement(r.TextInput,{placeholder:"Postal Code",defaultValue:t.postalCode,onChange:e=>{return t=e.currentTarget.value,void l({...o.current,postalCode:t});var t}}))}const m=n.createContext(void 0);function d(){return n.useContext(m)}function p(){return d().medplum}function h(){return d().navigate}function g(){return d().profile}function f(e){window.location.assign(e)}function E(e){const a=g(),[o,l]=n.useState(e.defaultValue||{});return n.useRef().current=o,n.createElement(r.TextInput,{name:e.name,placeholder:"Annotation text",defaultValue:o.text,onChange:n=>function(n){const r=n?{text:n,authorReference:a&&t.createReference(a),time:(new Date).toISOString()}:{};l(r),e.onChange&&e.onChange(r)}(n.currentTarget.value)})}var y={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},v=Object.defineProperty,C=Object.defineProperties,T=Object.getOwnPropertyDescriptors,k=Object.getOwnPropertySymbols,b=Object.prototype.hasOwnProperty,S=Object.prototype.propertyIsEnumerable,x=(e,t,n)=>t in e?v(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,w=(e,t)=>{for(var n in t||(t={}))b.call(t,n)&&x(e,n,t[n]);if(k)for(var n of k(t))S.call(t,n)&&x(e,n,t[n]);return e},I=(e,t,r)=>{const o=n.forwardRef(((t,a)=>{var o,l=t,{color:c="currentColor",size:i=24,stroke:s=2,children:u}=l,m=((e,t)=>{var n={};for(var r in e)b.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&k)for(var r of k(e))t.indexOf(r)<0&&S.call(e,r)&&(n[r]=e[r]);return n})(l,["color","size","stroke","children"]);return n.createElement("svg",w((o=w({ref:a},y),C(o,T({width:i,height:i,stroke:c,strokeWidth:s,className:`tabler-icon tabler-icon-${e}`}))),m),[...r.map((([e,t])=>n.createElement(e,t))),...u||[]])}));return o.propTypes={color:a.string,size:a.oneOfType([a.string,a.number]),stroke:a.oneOfType([a.string,a.number])},o.displayName=`${t}`,o},M=I("adjustments-horizontal","IconAdjustmentsHorizontal",[["path",{d:"M14 6m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-0"}],["path",{d:"M4 6l8 0",key:"svg-1"}],["path",{d:"M16 6l4 0",key:"svg-2"}],["path",{d:"M8 12m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-3"}],["path",{d:"M4 12l2 0",key:"svg-4"}],["path",{d:"M10 12l10 0",key:"svg-5"}],["path",{d:"M17 18m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-6"}],["path",{d:"M4 18l11 0",key:"svg-7"}],["path",{d:"M19 18l1 0",key:"svg-8"}]]),R=I("alert-circle","IconAlertCircle",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M12 8v4",key:"svg-1"}],["path",{d:"M12 16h.01",key:"svg-2"}]]),A=I("bleach-off","IconBleachOff",[["path",{d:"M5 19h14m1.986 -1.977a2 2 0 0 0 -.146 -.773l-7.1 -12.25a2 2 0 0 0 -3.5 0l-.815 1.405m-1.488 2.568l-4.797 8.277a2 2 0 0 0 1.75 2.75",key:"svg-0"}],["path",{d:"M3 3l18 18",key:"svg-1"}]]),P=I("bleach","IconBleach",[["path",{d:"M5 19h14a2 2 0 0 0 1.84 -2.75l-7.1 -12.25a2 2 0 0 0 -3.5 0l-7.1 12.25a2 2 0 0 0 1.75 2.75",key:"svg-0"}]]),D=I("box-multiple","IconBoxMultiple",[["path",{d:"M7 3m0 2a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2z",key:"svg-0"}],["path",{d:"M17 17v2a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-10a2 2 0 0 1 2 -2h2",key:"svg-1"}]]),O=I("brackets-contain","IconBracketsContain",[["path",{d:"M7 4h-4v16h4",key:"svg-0"}],["path",{d:"M17 4h4v16h-4",key:"svg-1"}],["path",{d:"M8 16h.01",key:"svg-2"}],["path",{d:"M12 16h.01",key:"svg-3"}],["path",{d:"M16 16h.01",key:"svg-4"}]]),V=I("bucket-off","IconBucketOff",[["path",{d:"M5.029 5.036c-.655 .58 -1.029 1.25 -1.029 1.964c0 2.033 3.033 3.712 6.96 3.967m3.788 -.21c3.064 -.559 5.252 -2.029 5.252 -3.757c0 -2.21 -3.582 -4 -8 -4c-1.605 0 -3.1 .236 -4.352 .643",key:"svg-0"}],["path",{d:"M4 7c0 .664 .088 1.324 .263 1.965l2.737 10.035c.5 1.5 2.239 2 5 2s4.5 -.5 5 -2c.1 -.3 .252 -.812 .457 -1.535m.862 -3.146c.262 -.975 .735 -2.76 1.418 -5.354a7.45 7.45 0 0 0 .263 -1.965",key:"svg-1"}],["path",{d:"M3 3l18 18",key:"svg-2"}]]),N=I("bucket","IconBucket",[["path",{d:"M12 7m-8 0a8 4 0 1 0 16 0a8 4 0 1 0 -16 0",key:"svg-0"}],["path",{d:"M4 7c0 .664 .088 1.324 .263 1.965l2.737 10.035c.5 1.5 2.239 2 5 2s4.5 -.5 5 -2c.333 -1 1.246 -4.345 2.737 -10.035a7.45 7.45 0 0 0 .263 -1.965",key:"svg-1"}]]),z=I("calendar","IconCalendar",[["path",{d:"M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12z",key:"svg-0"}],["path",{d:"M16 3v4",key:"svg-1"}],["path",{d:"M8 3v4",key:"svg-2"}],["path",{d:"M4 11h16",key:"svg-3"}],["path",{d:"M11 15h1",key:"svg-4"}],["path",{d:"M12 15v3",key:"svg-5"}]]),L=I("check","IconCheck",[["path",{d:"M5 12l5 5l10 -10",key:"svg-0"}]]),$=I("checkbox","IconCheckbox",[["path",{d:"M9 11l3 3l8 -8",key:"svg-0"}],["path",{d:"M20 12v6a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h9",key:"svg-1"}]]),F=I("chevron-down","IconChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]),B=I("circle-minus","IconCircleMinus",[["path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M9 12l6 0",key:"svg-1"}]]),U=I("circle-plus","IconCirclePlus",[["path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M9 12l6 0",key:"svg-1"}],["path",{d:"M12 9l0 6",key:"svg-2"}]]),_=I("cloud-upload","IconCloudUpload",[["path",{d:"M7 18a4.6 4.4 0 0 1 0 -9a5 4.5 0 0 1 11 2h1a3.5 3.5 0 0 1 0 7h-1",key:"svg-0"}],["path",{d:"M9 15l3 -3l3 3",key:"svg-1"}],["path",{d:"M12 12l0 9",key:"svg-2"}]]),q=I("columns","IconColumns",[["path",{d:"M4 6l5.5 0",key:"svg-0"}],["path",{d:"M4 10l5.5 0",key:"svg-1"}],["path",{d:"M4 14l5.5 0",key:"svg-2"}],["path",{d:"M4 18l5.5 0",key:"svg-3"}],["path",{d:"M14.5 6l5.5 0",key:"svg-4"}],["path",{d:"M14.5 10l5.5 0",key:"svg-5"}],["path",{d:"M14.5 14l5.5 0",key:"svg-6"}],["path",{d:"M14.5 18l5.5 0",key:"svg-7"}]]),G=I("currency-dollar","IconCurrencyDollar",[["path",{d:"M16.7 8a3 3 0 0 0 -2.7 -2h-4a3 3 0 0 0 0 6h4a3 3 0 0 1 0 6h-4a3 3 0 0 1 -2.7 -2",key:"svg-0"}],["path",{d:"M12 3v3m0 12v3",key:"svg-1"}]]),j=I("dots","IconDots",[["path",{d:"M5 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M19 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]),W=I("edit","IconEdit",[["path",{d:"M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1",key:"svg-0"}],["path",{d:"M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.415z",key:"svg-1"}],["path",{d:"M16 5l3 3",key:"svg-2"}]]),Q=I("equal-not","IconEqualNot",[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}],["path",{d:"M5 19l14 -14",key:"svg-2"}]]),H=I("equal","IconEqual",[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}]]),K=I("file-alert","IconFileAlert",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z",key:"svg-1"}],["path",{d:"M12 17l.01 0",key:"svg-2"}],["path",{d:"M12 11l0 3",key:"svg-3"}]]),J=I("file-plus","IconFilePlus",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z",key:"svg-1"}],["path",{d:"M12 11l0 6",key:"svg-2"}],["path",{d:"M9 14l6 0",key:"svg-3"}]]),Y=I("filter","IconFilter",[["path",{d:"M4 4h16v2.172a2 2 0 0 1 -.586 1.414l-4.414 4.414v7l-6 2v-8.5l-4.48 -4.928a2 2 0 0 1 -.52 -1.345v-2.227z",key:"svg-0"}]]),X=I("list-details","IconListDetails",[["path",{d:"M13 5h8",key:"svg-0"}],["path",{d:"M13 9h5",key:"svg-1"}],["path",{d:"M13 15h8",key:"svg-2"}],["path",{d:"M13 19h5",key:"svg-3"}],["path",{d:"M3 4m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z",key:"svg-4"}],["path",{d:"M3 14m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z",key:"svg-5"}]]),Z=I("logout","IconLogout",[["path",{d:"M14 8v-2a2 2 0 0 0 -2 -2h-7a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h7a2 2 0 0 0 2 -2v-2",key:"svg-0"}],["path",{d:"M9 12h12l-3 -3",key:"svg-1"}],["path",{d:"M18 15l3 -3",key:"svg-2"}]]),ee=I("math-greater","IconMathGreater",[["path",{d:"M5 18l14 -6l-14 -6",key:"svg-0"}]]),te=I("math-lower","IconMathLower",[["path",{d:"M19 18l-14 -6l14 -6",key:"svg-0"}]]),ne=I("message","IconMessage",[["path",{d:"M8 9h8",key:"svg-0"}],["path",{d:"M8 13h6",key:"svg-1"}],["path",{d:"M18 4a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-5l-5 3v-3h-2a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12z",key:"svg-2"}]]),re=I("pin","IconPin",[["path",{d:"M15 4.5l-4 4l-4 1.5l-1.5 1.5l7 7l1.5 -1.5l1.5 -4l4 -4",key:"svg-0"}],["path",{d:"M9 15l-4.5 4.5",key:"svg-1"}],["path",{d:"M14.5 4l5.5 5.5",key:"svg-2"}]]),ae=I("pinned-off","IconPinnedOff",[["path",{d:"M3 3l18 18",key:"svg-0"}],["path",{d:"M15 4.5l-3.249 3.249m-2.57 1.433l-2.181 .818l-1.5 1.5l7 7l1.5 -1.5l.82 -2.186m1.43 -2.563l3.25 -3.251",key:"svg-1"}],["path",{d:"M9 15l-4.5 4.5",key:"svg-2"}],["path",{d:"M14.5 4l5.5 5.5",key:"svg-3"}]]),oe=I("plus","IconPlus",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M5 12l14 0",key:"svg-1"}]]),le=I("search","IconSearch",[["path",{d:"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0",key:"svg-0"}],["path",{d:"M21 21l-6 -6",key:"svg-1"}]]),ce=I("settings","IconSettings",[["path",{d:"M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z",key:"svg-0"}],["path",{d:"M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0",key:"svg-1"}]]),ie=I("sort-ascending","IconSortAscending",[["path",{d:"M4 6l7 0",key:"svg-0"}],["path",{d:"M4 12l7 0",key:"svg-1"}],["path",{d:"M4 18l9 0",key:"svg-2"}],["path",{d:"M15 9l3 -3l3 3",key:"svg-3"}],["path",{d:"M18 6l0 12",key:"svg-4"}]]),se=I("sort-descending","IconSortDescending",[["path",{d:"M4 6l9 0",key:"svg-0"}],["path",{d:"M4 12l7 0",key:"svg-1"}],["path",{d:"M4 18l7 0",key:"svg-2"}],["path",{d:"M15 15l3 3l3 -3",key:"svg-3"}],["path",{d:"M18 6l0 12",key:"svg-4"}]]),ue=I("square","IconSquare",[["path",{d:"M3 3m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z",key:"svg-0"}]]),me=I("switch-horizontal","IconSwitchHorizontal",[["path",{d:"M16 3l4 4l-4 4",key:"svg-0"}],["path",{d:"M10 7l10 0",key:"svg-1"}],["path",{d:"M8 13l-4 4l4 4",key:"svg-2"}],["path",{d:"M4 17l9 0",key:"svg-3"}]]),de=I("table-export","IconTableExport",[["path",{d:"M12.5 21h-7.5a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v7.5",key:"svg-0"}],["path",{d:"M3 10h18",key:"svg-1"}],["path",{d:"M10 3v18",key:"svg-2"}],["path",{d:"M16 19h6",key:"svg-3"}],["path",{d:"M19 16l3 3l-3 3",key:"svg-4"}]]),pe=I("trash","IconTrash",[["path",{d:"M4 7l16 0",key:"svg-0"}],["path",{d:"M10 11l0 6",key:"svg-1"}],["path",{d:"M14 11l0 6",key:"svg-2"}],["path",{d:"M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12",key:"svg-3"}],["path",{d:"M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3",key:"svg-4"}]]),he=I("x","IconX",[["path",{d:"M18 6l-12 12",key:"svg-0"}],["path",{d:"M6 6l12 12",key:"svg-1"}]]);class ge extends n.Component{constructor(e){super(e),this.state={}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){console.error("Uncaught error:",e,t)}render(){return this.state.error?n.createElement(r.Alert,{icon:n.createElement(R,{size:16}),title:"Something went wrong",color:"red"},t.normalizeErrorString(this.state.error)):this.props.children}}function fe(){return n.createElement(r.Center,{style:{width:"100%",height:"100vh"}},n.createElement(r.Loader,null))}function Ee(e){const r=e.value;return r?n.createElement(n.Fragment,null,t.formatHumanName(r,e.options)):null}function ye(e){e.preventDefault(),e.stopPropagation()}function ve(e){if(Ce(e))return!0;if(e instanceof HTMLTableCellElement){const t=e.children;if(1===t.length&&Ce(t[0]))return!0}return!1}function Ce(e){return e instanceof HTMLInputElement&&"checkbox"===e.type}function Te(e){const a=h(),{to:o,suffix:l,label:c,onClick:i,children:s,...u}=e;let m=function(e){if(e){if("string"==typeof e)return function(e){if(e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/"))return e;return"/"+e}(e);if(t.isResource(e))return function(e){return`/${e.resourceType}/${e.id}`}(e);if(t.isReference(e))return function(e){return`/${e.reference}`}(e)}return"#"}(o);return l&&(m+="/"+l),n.createElement(r.Anchor,{href:m,"aria-label":c,onClick:e=>{ye(e),i?i(e):o&&a(m)},...u},s)}function ke(e,r){const a=p(),[o,l]=n.useState(be(a,e)),c=n.useCallback((e=>{t.deepEquals(e,o)||l(e)}),[o,l]);return n.useEffect((()=>{c(be(a,e))}),[a,e,c]),n.useEffect((()=>{let n=!0;return t.isReference(e)&&a.readReference(e).then((e=>{n&&c(e)})).catch((e=>{n&&(c(void 0),r&&r(t.normalizeOperationOutcome(e)))})),()=>n=!1}),[a,o,e,c,r]),o}function be(e,n){if(n){if(t.isResource(n))return n;if(t.isReference(n))return e.getCachedReference(n)}}function Se(e){const a=ke(e.value),o=a?t.getDisplayString(a):e.alt??"",l=(a&&t.getImageSrc(a))??e.src,c=e.radius??"xl",i={...e};return delete i.value,delete i.link,e.link?n.createElement(Te,{to:a},n.createElement(r.Avatar,{src:l,alt:o,radius:c,...i})):n.createElement(r.Avatar,{src:l,alt:o,radius:c,...i})}function xe(e){const{defaultValue:t,toKey:a,toOption:o,loadOptions:l,onChange:c,onCreate:i,creatable:s,...u}=e,m=function(e){if(!e)return[];if(Array.isArray(e))return e;return[e]}(t),d=n.useRef(null),[p,h]=n.useState(void 0),[g,f]=n.useState(),[E,y]=n.useState(),[v,C]=n.useState(),[T,k]=n.useState(m?.map(o)),b=n.useRef();b.current=p;const S=n.useRef();S.current=g;const x=n.useRef();x.current=E;const w=n.useRef();w.current=v;const I=n.useRef();I.current=T;const M=n.useCallback((()=>{f(void 0);const e=d.current?.value?.trim()||"";if(e===b.current)return;h(e);const t=new AbortController;y(t),l(e,t.signal).then((e=>{t.signal.aborted||(k(e.map(o)),y(void 0),w.current&&(e.length>0&&c(e.slice(0,1)),C(!1)))})).catch(console.log)}),[l,c,o]),R=n.useCallback((()=>{x.current&&(x.current.abort(),y(void 0)),void 0!==S.current&&window.clearTimeout(S.current);const e=window.setTimeout((()=>M()),100);f(e)}),[M]),A=n.useCallback((e=>{const t=[];for(const n of e){let e=I.current?.find((e=>e.value===n))?.resource;e||!1===s||(e=i(n)),e&&t.push(e)}c(t)}),[s,c,i]),P=n.useCallback((e=>{"Enter"===e.key&&(S.current||x.current?C(!0):(ye(e),I.current&&I.current.length>0&&(k(I.current.slice(0,1)),A([I.current[0].value]))))}),[A]),D=n.useCallback((e=>{const t=o(i(e));return k([...I.current,t]),t}),[i,k,o]),O=n.useCallback(((e,t)=>!t),[]);return n.useEffect((()=>()=>{x.current&&x.current.abort()}),[]),n.createElement(r.MultiSelect,{...u,ref:d,defaultValue:m.map(a),searchable:!0,onKeyDown:P,onSearchChange:R,data:T,onFocus:M,onChange:A,onCreate:D,rightSectionWidth:40,rightSection:E?n.createElement(r.Loader,{size:16}):null,filter:O,creatable:!0})}const we=r.createStyles((()=>({searchInput:{input:{width:220,transition:"width 0.2s"},"input:focus":{width:400},"@media (max-width: 800px)":{input:{width:150},"input:focus":{width:150}}}})));function Ie(e){return e.id}function Me(e){return{value:e.id,label:t.getDisplayString(e),resource:e}}function Re(){const{classes:e}=we(),r=h(),a=p(),l=o.useLocation(),c=n.useCallback((async(e,n)=>{const r=function(e){const n=JSON.stringify(e);if(t.isUUID(e))return`{\n Patients1: PatientList(_id: ${n}, _count: 1) {\n resourceType\n id\n identifier {\n system\n value\n }\n name {\n given\n family\n }\n birthDate\n }\n ServiceRequestList(_id: ${n}, _count: 1) {\n resourceType\n id\n identifier {\n system\n value\n }\n subject {\n display\n }\n }\n }`.replace(/\s+/g," ");return`{\n Patients1: PatientList(name: ${n}, _count: 5) {\n resourceType\n id\n identifier {\n system\n value\n }\n name {\n given\n family\n }\n birthDate\n }\n Patients2: PatientList(identifier: ${n}, _count: 5) {\n resourceType\n id\n identifier {\n system\n value\n }\n name {\n given\n family\n }\n birthDate\n }\n ServiceRequestList(identifier: ${n}, _count: 5) {\n resourceType\n id\n identifier {\n system\n value\n }\n subject {\n display\n }\n }\n }`.replace(/\s+/g," ")}(e),o={signal:n};return function(e,t){const n=[];e.data.Patients1&&n.push(...e.data.Patients1);e.data.Patients2&&n.push(...e.data.Patients2);e.data.ServiceRequestList&&n.push(...e.data.ServiceRequestList);return function(e,t){return e.sort(((e,n)=>Pe(n,t)-Pe(e,t)))}(function(e){const t=new Set,n=[];for(const r of e)t.has(r.id)||(t.add(r.id),n.push(r));return n}(n),t).slice(0,5)}(await a.graphql(r,void 0,void 0,o),e)}),[a]),i=n.useCallback((e=>{e.length>0&&r(`/${t.getReferenceString(e[0])}`)}),[r]);return n.createElement(xe,{key:l.pathname,size:"sm",radius:"md",className:e.searchInput,icon:n.createElement(le,{size:16}),placeholder:"Search",itemComponent:Ae,toKey:Ie,toOption:Me,onChange:i,loadOptions:c})}const Ae=n.forwardRef((({resource:e,...a},o)=>{let l;return"Patient"===e.resourceType?l=e.birthDate:"ServiceRequest"===e.resourceType&&(l=e.subject?.display),n.createElement("div",{ref:o,...a},n.createElement(r.Group,{noWrap:!0},n.createElement(Se,{value:e}),n.createElement("div",null,n.createElement(r.Text,null,t.getDisplayString(e)),n.createElement(r.Text,{size:"xs",color:"dimmed"},l))))}));function Pe(e,n){let r=0;if(e.identifier)for(const t of e.identifier)r=Math.max(r,De(t.value,n));if("Patient"===e.resourceType&&e.name)for(const a of e.name)r=Math.max(r,De(t.formatHumanName(a),n));return r}function De(e,t){if(!e)return 0;const n=e.toLowerCase().indexOf(t.toLowerCase());return n<0?0:100-n}const Oe=r.createStyles((e=>({logoButton:{padding:`${e.spacing.xs} ${e.spacing.sm}`,borderRadius:e.radius.sm,transition:"background-color 100ms ease","&:hover":{backgroundColor:e.fn.lighten(e.fn.variant({variant:"filled",color:e.primaryColor}).background,.8)}},user:{padding:`${e.spacing.xs} ${e.spacing.sm}`,borderRadius:e.radius.sm,transition:"background-color 100ms ease","&:hover":{backgroundColor:e.fn.lighten(e.fn.variant({variant:"filled",color:e.primaryColor}).background,.8)}},userName:{fontWeight:500,lineHeight:1,marginRight:3,[e.fn.smallerThan("xs")]:{display:"none"}},userActive:{backgroundColor:e.fn.lighten(e.fn.variant({variant:"filled",color:e.primaryColor}).background,.8)}})));function Ve(e){const a=d(),{medplum:o,profile:l,navigate:c}=a,i=o.getLogins(),{classes:s,cx:u}=Oe(),[m,p]=n.useState(!1);return n.createElement(r.Header,{height:60,p:8,style:{zIndex:101}},n.createElement(r.Group,{position:"apart"},n.createElement(r.Group,{spacing:"xs"},n.createElement(r.UnstyledButton,{className:s.logoButton,onClick:e.navbarToggle},e.logo),n.createElement(Re,null)),n.createElement(r.Menu,{width:260,shadow:"xl",position:"bottom-end",transitionProps:{transition:"pop-top-right"},opened:m,onClose:()=>p(!1)},n.createElement(r.Menu.Target,null,n.createElement(r.UnstyledButton,{className:u(s.user,{[s.userActive]:m}),onClick:()=>p((e=>!e))},n.createElement(r.Group,{spacing:7},n.createElement(Se,{value:l,radius:"xl",size:24}),n.createElement(r.Text,{size:"sm",className:s.userName},t.formatHumanName(l?.name?.[0])),n.createElement(F,{size:12,stroke:1.5})))),n.createElement(r.Menu.Dropdown,null,n.createElement(r.Stack,{align:"center",p:"xl"},n.createElement(Se,{size:"xl",radius:100,value:a.profile}),n.createElement(Ee,{value:a.profile?.name?.[0]}),n.createElement(r.Text,{color:"dimmed",size:"xs"},o.getActiveLogin()?.project?.display)),i.length>1&&n.createElement(r.Menu.Divider,null),i.map((e=>e.profile?.reference!==t.getReferenceString(a.profile)&&n.createElement(r.Menu.Item,{key:e.profile?.reference,onClick:()=>{o.setActiveLogin(e).then((()=>window.location.reload())).catch(console.log)}},n.createElement(r.Group,null,n.createElement(r.Avatar,{radius:"xl"}),n.createElement("div",{style:{flex:1}},n.createElement(r.Text,{size:"sm",weight:500},e.profile?.display),n.createElement(r.Text,{color:"dimmed",size:"xs"},e.project?.display)))))),n.createElement(r.Menu.Divider,null),n.createElement(r.Menu.Item,{icon:n.createElement(me,{size:14,stroke:1.5}),onClick:()=>c("/signin")},"Add another account"),n.createElement(r.Menu.Item,{icon:n.createElement(ce,{size:14,stroke:1.5}),onClick:()=>c(`/${t.getReferenceString(l)}`)},"Account settings"),n.createElement(r.Menu.Item,{icon:n.createElement(Z,{size:14,stroke:1.5}),onClick:async()=>{await o.signOut(),c("/signin")}},"Sign out"),n.createElement(r.Text,{size:"xs",color:"dimmed",align:"center"},e.version)))))}function Ne(e){const t={};for(const n of Array.from(e.elements))n instanceof HTMLInputElement?ze(t,n):n instanceof HTMLTextAreaElement?t[n.name]=n.value:n instanceof HTMLSelectElement&&Le(t,n);return t}function ze(e,t){t.disabled||("checkbox"!==t.type&&"radio"!==t.type||t.checked)&&(e[t.name]=t.value)}function Le(e,t){e[t.name]=t.value}function $e(e){return n.createElement("form",{style:e.style,"data-testid":e.testid,onSubmit:t=>{t.preventDefault();const n=Ne(t.target);e.onSubmit&&e.onSubmit(n)}},e.children)}function Fe(e){const a=p(),c=a.getUserConfiguration(),i=o.useLocation();return n.createElement(r.Modal,{title:"Add Bookmark",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},n.createElement($e,{onSubmit:function(n){const{menuname:r,bookmarkname:o}=n,s=i.pathname+i.search,u=t.deepClone(c),m=u?.menu?.find((({title:e})=>e===r));m?.link?.push({name:o,target:s}),a.updateResource(u).then((t=>{c.menu=t.menu,a.dispatchEvent({type:"change"}),l.showNotification({color:"green",message:"Success"}),e.onOk()})).catch((e=>{l.showNotification({color:"red",message:t.normalizeErrorString(e)})}))}},n.createElement(r.Stack,null,n.createElement(Be,{config:c}),n.createElement(r.TextInput,{label:"Bookmark Name",type:"text",name:"bookmarkname",placeholder:"bookmark name",withAsterisk:!0}),n.createElement(r.Group,{position:"right"},n.createElement(r.Button,{mt:"sm",type:"submit"},"OK")))))}function Be(e){const t=(a=e.config,a?.menu?.map((e=>e.title)));var a;return n.createElement(r.NativeSelect,{name:"menuname",defaultValue:t?.[0],label:"Select Menu Option",placeholder:"Menu",data:t,withAsterisk:!0})}function Ue(e){return e.code}function _e(e){return{value:e.code,label:(t=e,t.display||t.code||""),resource:e};var t}function qe(e){return{code:e,display:e}}function Ge(e){const t=p(),{elementDefinition:r,creatable:a,clearable:o,...l}=e,c=n.useCallback((async(e,n)=>{if(!r.binding)return[];const a=r.binding?.valueSet,o=await t.searchValueSet(a,e,{signal:n}),l=o.expansion?.contains,c=[];for(const e of l)e.code&&!c.some((t=>t.code===e.code))&&c.push(e);return c}),[t,r]);return n.createElement(xe,{...l,creatable:a??!0,clearable:o??!0,toKey:Ue,toOption:_e,loadOptions:c,onCreate:qe,getCreateLabel:!1===a?void 0:e=>`+ Create ${e}`})}function je(e){const[t,r]=n.useState(e.defaultValue);return n.createElement(Ge,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:(a=t,a?{code:a}:void 0),onChange:function(t){const n=t[0],a=(o=n,o?.code);var o;r(a),e.onChange&&e.onChange(a)},creatable:e.creatable,maxSelectedValues:e.maxSelectedValues,clearSearchOnChange:e.clearSearchOnChange,clearable:e.clearable});var a}const We=r.createStyles((e=>({menuTitle:{margin:"20px 0 4px 6px",fontSize:"9px",fontWeight:"normal",textTransform:"uppercase",letterSpacing:"2px"},link:{...e.fn.focusStyles(),display:"flex",alignItems:"center",textDecoration:"none",fontSize:e.fontSizes.sm,color:"dark"===e.colorScheme?e.colors.dark[1]:e.colors.gray[7],padding:"8px 12px",borderRadius:e.radius.sm,fontWeight:500,"&:hover":{backgroundColor:"dark"===e.colorScheme?e.colors.dark[6]:e.colors.gray[0],color:"dark"===e.colorScheme?e.white:e.black,textDecoration:"none","& svg":{color:"dark"===e.colorScheme?e.white:e.black}},"& svg":{color:"dark"===e.colorScheme?e.colors.dark[2]:e.colors.gray[6],marginRight:e.spacing.sm,strokeWidth:1.5,width:18,height:18}},linkActive:{"&, &:hover":{backgroundColor:e.fn.variant({variant:"light",color:e.primaryColor}).background,color:e.fn.variant({variant:"light",color:e.primaryColor}).color,"& svg":{color:e.fn.variant({variant:"light",color:e.primaryColor}).color}}}})));function Qe(e){const{classes:t}=We(),a=h(),l=o.useLocation(),[c]=o.useSearchParams(),i=function(e,t,n){let r,a=0;if(n)for(const o of n)if(o.links)for(const n of o.links){const o=Je(e,t,n.href);o>a&&(a=o,r=n)}return r}(l.pathname,c,e.menus),[s,u]=n.useState(!1);return n.createElement(n.Fragment,null,n.createElement(r.Navbar,{width:{sm:250},p:"xs"},n.createElement(r.ScrollArea,null,n.createElement(r.Navbar.Section,{mb:"sm"},n.createElement(je,{key:window.location.pathname,name:"resourceType",placeholder:"Resource Type",property:{binding:{valueSet:"http://hl7.org/fhir/ValueSet/resource-types"}},onChange:e=>{var t;(t=e)&&a(`/${t}`)},creatable:!1,maxSelectedValues:0,clearSearchOnChange:!0,clearable:!1})),n.createElement(r.Navbar.Section,{grow:!0},e.menus?.map((o=>n.createElement(n.Fragment,{key:`menu-${o.title}`},n.createElement(r.Text,{className:t.menuTitle},o.title),o.links?.map((t=>n.createElement(He,{key:t.href,to:t.href,active:t.href===i?.href,onClick:n=>function(t,n){t.stopPropagation(),t.preventDefault(),a(n),window.innerWidth<768&&e.closeNavbar()}(n,t.href)},n.createElement(Ke,{to:t.href,icon:t.icon}),n.createElement("span",null,t.label))))))),e.displayAddBookmark&&n.createElement(r.Button,{variant:"subtle",size:"xs",mt:"xl",leftIcon:n.createElement(oe,{size:"0.75rem"}),onClick:()=>u(!0)},"Add Bookmark")))),n.createElement(Fe,{visible:s,onOk:()=>u(!1),onCancel:()=>u(!1)}))}function He(e){const{classes:t,cx:r}=We();return n.createElement(Te,{onClick:e.onClick,to:e.to,className:r(t.link,{[t.linkActive]:e.active})},e.children)}function Ke(e){return e.icon?e.icon:n.createElement(r.Space,{w:30})}function Je(e,t,n){const r=new URL(n,"https://example.com");if(e!==r.pathname)return 0;const a=["_count","_offset"];for(const[e,n]of r.searchParams.entries())if(!a.includes(e)&&t.get(e)!==n)return 0;let o=1;for(const[e,n]of t.entries())a.includes(e)||r.searchParams.get(e)===n&&o++;return o}function Ye(e){const t=e.value,{contentType:a,url:o,title:l}=t??{};return o?n.createElement("div",{"data-testid":"attachment-display"},a?.startsWith("image/")&&n.createElement("img",{"data-testid":"attachment-image",style:{maxWidth:e.maxWidth},src:o,alt:t?.title}),a?.startsWith("video/")&&n.createElement("video",{"data-testid":"attachment-video",style:{maxWidth:e.maxWidth},controls:!0},n.createElement("source",{type:a,src:o})),"application/pdf"===a&&!l?.endsWith(".pdf")&&n.createElement("div",{"data-testid":"attachment-pdf",style:{maxWidth:e.maxWidth,minHeight:400}},n.createElement("iframe",{width:"100%",height:"400",src:o+"#navpanes=0",allowFullScreen:!0,frameBorder:0,seamless:!0})),n.createElement("div",{"data-testid":"download-link",style:{padding:"2px 16px 16px 16px"}},n.createElement(r.Anchor,{href:t?.url,"data-testid":"attachment-details",target:"_blank",rel:"noopener noreferrer"},t?.title||"Download"))):null}function Xe(e){return n.createElement("div",null,e.values&&e.values.map(((t,r)=>n.createElement("div",{key:"attatchment-"+r},n.createElement(Ye,{value:t,maxWidth:e.maxWidth})))))}function Ze(e){const t=p(),r=n.useRef(null);function a(n){if(!n)return;if(!n.name)return;e.onUploadStart&&e.onUploadStart();const r=n.name,a=n.type||"application/octet-stream";t.createBinary(n,r,a,e.onUploadProgress).then((t=>{e.onUpload({contentType:t.contentType,url:t.url,title:r})})).catch((e=>{alert(e?.issue?.[0]?.details?.text)}))}return n.createElement(n.Fragment,null,n.createElement("input",{type:"file","data-testid":"upload-file-input",style:{display:"none"},ref:r,onChange:e=>function(e){ye(e);const t=e.target.files;t&&Array.from(t).forEach(a)}(e)}),e.children({onClick:function(e){ye(e),r.current?.click()}}))}function et(e){const[t,a]=n.useState(e.defaultValue??[]),o=n.useRef();function l(t){a(t),e.onChange&&e.onChange(t)}return o.current=t,n.createElement("table",{style:{width:"100%"}},n.createElement("colgroup",null,n.createElement("col",{width:"97%"}),n.createElement("col",{width:"3%"})),n.createElement("tbody",null,t.map(((e,a)=>n.createElement("tr",{key:`${a}-${t.length}`},n.createElement("td",null,n.createElement(Ye,{value:e,maxWidth:200})),n.createElement("td",null,n.createElement(r.ActionIcon,{title:"Remove",size:"sm",onClick:e=>{ye(e);const n=t.slice();n.splice(a,1),l(n)}},n.createElement(B,null)))))),n.createElement("tr",null,n.createElement("td",null),n.createElement("td",null,n.createElement(Ze,{onUpload:e=>{l([...o.current,e])}},(e=>n.createElement(r.ActionIcon,{...e,title:"Add",size:"sm",color:"green"},n.createElement(_,{size:16}))))))))}function tt(e){const[t,a]=n.useState(e.defaultValue);function o(t){a(t),e.onChange&&e.onChange(t)}return t?n.createElement(n.Fragment,null,n.createElement(Ye,{value:t,maxWidth:200}),n.createElement(r.Button,{onClick:e=>{ye(e),o(void 0)}},"Remove")):n.createElement(Ze,{onUpload:o},(e=>n.createElement(r.Button,{...e},"Upload...")))}const nt=["meta","implicitRules","language","text","contained","extension","modifierExtension"],rt=r.createStyles((e=>({root:{display:"grid",gridTemplateColumns:"30% 70%",margin:0,"& > dt, & > dd":{padding:`${e.spacing.sm} ${e.spacing.sm}`,borderTop:`0.1px solid ${e.colors.gray[3]}`,margin:0}},compact:{gridTemplateColumns:"20% 80%","& > dt, & > dd":{padding:`0 ${e.spacing.xs} ${e.spacing.xs} 0`,border:0}}})));function at(e){const{children:t,compact:r}=e,{classes:a,cx:o}=rt();return n.createElement("dl",{className:o(a.root,{[a.compact]:r})},t)}function ot(e){return n.createElement(n.Fragment,null,n.createElement("dt",null,e.term),n.createElement("dd",null,e.children))}function lt(e){return n.createElement(n.Fragment,null,t.formatCodeableConcept(e.value))}function ct(e){return n.createElement(n.Fragment,null,t.formatCoding(e.value))}function it(e){const t=e.value;if(!t)return null;const r=[];return t.value&&r.push(t.value),(t.use||t.system)&&(r.push(" ["),t.use&&r.push(t.use),t.use&&t.system&&r.push(" "),t.system&&r.push(t.system),r.push("]")),n.createElement(n.Fragment,null,r.join("").trim())}function st(e){const t=e.value;return t?n.createElement(n.Fragment,null,t.name,t.name&&": ",t.telecom?.map(((e,t)=>n.createElement(it,{key:"telecom-"+t,value:e})))):null}function ut(e){return n.createElement("div",null,e.value?.system,": ",e.value?.value)}function mt(e){return n.createElement(n.Fragment,null,t.formatMoney(e.value))}function dt(e){return n.createElement(n.Fragment,null,t.formatQuantity(e.value))}function pt(e){return n.createElement(n.Fragment,null,t.formatRange(e.value))}function ht(e){const t=e.value;return t?n.createElement(n.Fragment,null,n.createElement(dt,{value:t.numerator})," / ",n.createElement(dt,{value:t.denominator})):null}function gt(e){if(!e.value)return null;const r=e.value.display||e.value.reference||t.stringify(e.value);return!1!==e.link&&e.value.reference?n.createElement(Te,{to:e.value},r):n.createElement(n.Fragment,null,r)}function ft(e){const t=e.property,r=e.values??[],a=t.type?.[0]?.code;return n.createElement(n.Fragment,null,r.map(((o,l)=>n.createElement("div",{key:`${l}-${r.length}`},n.createElement(Et,{arrayElement:!0,property:t,propertyType:a,value:o,ignoreMissingValues:e.ignoreMissingValues,link:e.link})))))}function Et(e){const{property:r,propertyType:a,value:o}=e;if("*"===r?.max&&!e.arrayElement)return"Attachment"===a?n.createElement(Xe,{values:o,maxWidth:e.maxWidth}):n.createElement(ft,{property:r,values:o,ignoreMissingValues:e.ignoreMissingValues,link:e.link});switch(a){case t.PropertyType.boolean:return n.createElement(n.Fragment,null,void 0===o?"":Boolean(o).toString());case t.PropertyType.SystemString:case t.PropertyType.code:case t.PropertyType.date:case t.PropertyType.integer:case t.PropertyType.positiveInt:case t.PropertyType.string:case t.PropertyType.unsignedInt:case t.PropertyType.uri:case t.PropertyType.url:return n.createElement(n.Fragment,null,o);case t.PropertyType.canonical:return n.createElement(gt,{value:{reference:o},link:e.link});case t.PropertyType.dateTime:case t.PropertyType.instant:return n.createElement(n.Fragment,null,t.formatDateTime(o));case t.PropertyType.markdown:return n.createElement("pre",null,o);case t.PropertyType.Address:return n.createElement(c,{value:o});case t.PropertyType.Annotation:return n.createElement(n.Fragment,null,o?.text);case t.PropertyType.Attachment:return n.createElement(Ye,{value:o,maxWidth:e.maxWidth});case t.PropertyType.CodeableConcept:return n.createElement(lt,{value:o});case t.PropertyType.Coding:return n.createElement(ct,{value:o});case t.PropertyType.ContactDetail:return n.createElement(st,{value:o});case t.PropertyType.ContactPoint:return n.createElement(it,{value:o});case t.PropertyType.HumanName:return n.createElement(Ee,{value:o});case t.PropertyType.Identifier:return n.createElement(ut,{value:o});case t.PropertyType.Money:return n.createElement(mt,{value:o});case t.PropertyType.Period:return n.createElement(n.Fragment,null,t.formatPeriod(o));case t.PropertyType.Quantity:case t.PropertyType.Duration:return n.createElement(dt,{value:o});case t.PropertyType.Range:return n.createElement(pt,{value:o});case t.PropertyType.Ratio:return n.createElement(ht,{value:o});case t.PropertyType.Reference:return n.createElement(gt,{value:o,link:e.link});case t.PropertyType.Timing:return n.createElement(n.Fragment,null,t.formatTiming(o));case t.PropertyType.Dosage:case t.PropertyType.UsageContext:return n.createElement(vt,{value:{type:a,value:o},compact:!0,ignoreMissingValues:e.ignoreMissingValues});default:if(!r?.path)throw Error(`Displaying property of type ${e.propertyType} requires element definition path`);return n.createElement(vt,{value:{type:t.getElementDefinitionTypeName(r),value:o},compact:!0,ignoreMissingValues:e.ignoreMissingValues})}}function yt(e,n){const r=t.getTypedPropertyValue(e,n);return r?Array.isArray(r)?[r.map((e=>e.value)),r[0].type]:[r.value,r.type]:[void 0,"undefined"]}function vt(e){const r=e.value,a=r.value;if(!a)return null;const o=r.type,l=t.globalSchema.types[o];return l?"object"==typeof a&&"name"in a&&1===Object.keys(a).length&&"string"==typeof a.name?n.createElement("div",null,a.name):n.createElement(at,{compact:e.compact},Object.entries(l.properties).map((a=>{const l=a[0];if(nt.indexOf(l)>=0)return null;const c=a[1];c.path||(c.path=o+"."+l);const[i,s]=yt(r,l);return e.ignoreMissingValues&&(!i||Array.isArray(i)&&0===i.length)?null:n.createElement(ot,{key:l,term:t.getPropertyDisplayName(l)},n.createElement(Et,{property:c,propertyType:s,value:i,ignoreMissingValues:e.ignoreMissingValues,link:e.link}))}))):n.createElement("div",null,o," not implemented")}function Ct(e){return n.createElement(r.Group,{noWrap:!0},n.createElement("div",null,e.children),n.createElement("div",null,n.createElement(r.Input.Wrapper,{id:e.htmlFor,label:e.title,description:e.description,withAsterisk:e.withAsterisk},null)))}function Tt(e,t){return e?.issue?.filter((e=>bt(e.expression?.[0],t)))?.map((e=>e.details?.text))?.join("\n")}function kt(e,t){return e?.issue?.filter((e=>bt(e.expression?.[0],t)))}function bt(e,t){if(e===t)return!0;if(!e||!t)return!1;const n=e.indexOf(".");if(n>=0&&e.substring(n+1)===t)return!0;const r=t.indexOf(".");return r>=0&&t.substring(r+1)===e}function St(e){return n.createElement(r.Input.Wrapper,{id:e.htmlFor,label:e.title,description:e.description,withAsterisk:e.withAsterisk,error:Tt(e.outcome,e.htmlFor)},e.children)}function xt(e,n,r,a,o){const l=a.type;if(l.length>1)for(const r of l){const a=n.replace("[x]",t.capitalize(r.code));a in e&&delete e[a]}return e[r]=o,e}function wt(e){const[t,r]=n.useState(e.defaultValue);return n.createElement(Ge,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:t&&(a=t,a.coding?.map((e=>({system:e.system,code:e.code,display:e.display})))),onChange:function(t){const n=function(e){if(0===e.length)return;return{coding:e.map((e=>({system:e.system,code:e.code,display:e.display})))}}(t);r(n),e.onChange&&e.onChange(n)}});var a}function It(e){const[t,r]=n.useState(e.defaultValue);return n.createElement(Ge,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:t&&(a=t,{system:a.system,code:a.code,display:a.display}),onChange:function(t){const n=t[0],a=n&&{system:(o=n).system,code:o.code,display:o.display};var o;r(a),e.onChange&&e.onChange(a)}});var a}function Mt(e){const[t,a]=n.useState(e.defaultValue),o=n.useRef();function l(t){t&&0===Object.keys(t).length&&(t=void 0),a(t),e.onChange&&e.onChange(t)}return o.current=t,n.createElement(r.Group,{spacing:"xs",grow:!0,noWrap:!0},n.createElement(r.NativeSelect,{"data-testid":"system",defaultValue:t?.system,onChange:e=>function(e){const t={...o.current,system:e};e||delete t.system,l(t)}(e.currentTarget.value),data:["","email","phone","fax","pager","sms","other"]}),n.createElement(r.NativeSelect,{"data-testid":"use",defaultValue:t?.use,onChange:e=>function(e){const t={...o.current,use:e};e||delete t.use,l(t)}(e.currentTarget.value),data:["","home","work","temp","old","mobile"]}),n.createElement(r.TextInput,{placeholder:"Value",defaultValue:t?.value,onChange:e=>function(e){const t={...o.current,value:e};e||delete t.value,l(t)}(e.currentTarget.value)}))}function Rt(e){const[t,a]=n.useState(e.defaultValue),o=n.useRef();function l(t){a(t),e.onChange&&e.onChange(t)}return o.current=t,n.createElement(r.Group,{spacing:"xs",grow:!0,noWrap:!0},n.createElement(r.TextInput,{"data-testid":e.name+"-name",name:e.name+"-name",placeholder:"Name",style:{width:180},defaultValue:t?.name,onChange:e=>function(e){const t={...o.current,name:e};e||delete t.name,l(t)}(e.currentTarget.value)}),n.createElement(Mt,{name:e.name+"-telecom",defaultValue:t?.telecom?.[0],onChange:function(e){const t={...o.current,telecom:e&&[e]};e||delete t.telecom,l(t)}}))}function At(e){return n.createElement(r.TextInput,{id:e.name,name:e.name,"data-testid":e.name,placeholder:e.placeholder,required:e.required,type:"datetime-local",defaultValue:Pt(e.defaultValue),error:Tt(e.outcome,e.name),onChange:t=>{if(e.onChange){const n=t.currentTarget.value;e.onChange(Dt(n))}}})}function Pt(e){if(!e)return"";const n=new Date(e);return t.isValidDate(n)?n.toLocaleDateString("sv")+"T"+n.toLocaleTimeString("sv"):""}function Dt(e){if(!e)return"";const n=new Date(e);return t.isValidDate(n)?n.toISOString():""}function Ot(e){return n.createElement(r.JsonInput,{id:e.name,name:e.name,"data-testid":"extension-input",defaultValue:t.stringify(e.defaultValue),deserialize:JSON.parse,onChange:t=>{e.onChange&&e.onChange(JSON.parse(t))}})}function Vt(e){const[t,a]=n.useState(e.defaultValue),o=n.useRef();function l(t){a(t),e.onChange&&e.onChange(t)}return o.current=t,n.createElement(r.Group,{spacing:"xs",grow:!0,noWrap:!0},n.createElement(r.NativeSelect,{defaultValue:t?.use,name:e.name+"-use","data-testid":"use",onChange:e=>{return t=e.currentTarget.value,void l({...o.current,use:t||void 0});var t},data:["","temp","old","usual","official","nickname","anonymous","maiden"]}),n.createElement(r.TextInput,{placeholder:"Prefix",name:e.name+"-prefix",defaultValue:t?.prefix?.join(" "),onChange:e=>{return t=e.currentTarget.value,void l({...o.current,prefix:t?t.split(" "):void 0});var t}}),n.createElement(r.TextInput,{placeholder:"Given",name:e.name+"-given",defaultValue:t?.given?.join(" "),onChange:e=>{return t=e.currentTarget.value,void l({...o.current,given:t?t.split(" "):void 0});var t}}),n.createElement(r.TextInput,{name:e.name+"-family",placeholder:"Family",defaultValue:t?.family,onChange:e=>{return t=e.currentTarget.value,void l({...o.current,family:t||void 0});var t}}),n.createElement(r.TextInput,{placeholder:"Suffix",name:e.name+"-suffix",defaultValue:t?.suffix?.join(" "),onChange:e=>{return t=e.currentTarget.value,void l({...o.current,suffix:t?t.split(" "):void 0});var t}}))}function Nt(e){const[t,a]=n.useState(e.defaultValue);function o(t){a(t),e.onChange&&e.onChange(t)}return n.createElement(r.Group,{spacing:"xs",grow:!0,noWrap:!0},n.createElement(r.TextInput,{placeholder:"System",defaultValue:t?.system,onChange:e=>o({...t,system:e.currentTarget.value})}),n.createElement(r.TextInput,{placeholder:"Value",defaultValue:t?.value,onChange:e=>o({...t,value:e.currentTarget.value})}))}const zt=["USD","EUR","CAD","GBP","AUD"];function Lt(e){const{onChange:t}=e,[a,o]=n.useState(e.defaultValue),l=n.useCallback((e=>{o(e),t&&t(e)}),[t]),c=n.useCallback((e=>{l({...a,currency:e.currentTarget.value})}),[a,l]),i=n.useCallback((e=>{l({...a,value:e.currentTarget.valueAsNumber})}),[a,l]),s=n.createElement(r.NativeSelect,{defaultValue:a?.currency,data:zt,styles:{input:{fontWeight:500,borderTopLeftRadius:0,borderBottomLeftRadius:0,width:92}},onChange:c});return n.createElement(r.TextInput,{type:"number",label:e.label,placeholder:e.placeholder||"Value",defaultValue:a?.value?.toString()||"USD",icon:n.createElement(G,{size:14}),rightSection:s,rightSectionWidth:92,onChange:i})}function $t(e){const[t,a]=n.useState(e.defaultValue);function o(t){a(t),e.onChange&&e.onChange(t)}return n.createElement(r.Group,{spacing:"xs",grow:!0,noWrap:!0},n.createElement(At,{name:e.name+".start",placeholder:"Start",defaultValue:t?.start,onChange:e=>o({...t,start:e})}),n.createElement(At,{name:e.name+".end",placeholder:"End",defaultValue:t?.end,onChange:e=>o({...t,end:e})}))}function Ft(e){const[t,a]=n.useState(e.defaultValue);function o(t){a(t),e.onChange&&e.onChange(t)}return n.createElement(r.Group,{spacing:"xs",grow:!0,noWrap:!0},n.createElement(r.NativeSelect,{style:{width:80},"data-testid":e.name+"-comparator",defaultValue:t?.comparator,data:["","<","<=",">=",">"],onChange:e=>o({...t,comparator:e.currentTarget.value})}),n.createElement(r.TextInput,{id:e.name,name:e.name,"data-testid":e.name+"-value",type:"number",placeholder:"Value",defaultValue:t?.value,step:"any",onWheel:t=>{e.disableWheel&&t.currentTarget.blur()},onChange:e=>{o({...t,value:Bt(e.currentTarget.value)})}}),n.createElement(r.TextInput,{placeholder:"Unit","data-testid":e.name+"-unit",defaultValue:t?.unit,onChange:e=>o({...t,unit:e.currentTarget.value})}))}function Bt(e){if(e)return parseFloat(e)}function Ut(e){const[t,a]=n.useState(e.defaultValue);function o(t){a(t),e.onChange&&e.onChange(t)}return n.createElement(r.Group,{spacing:"xs",grow:!0,noWrap:!0},n.createElement(Ft,{name:e.name+"-low",defaultValue:t?.low,onChange:e=>o({...t,low:e})}),n.createElement(Ft,{name:e.name+"-high",defaultValue:t?.high,onChange:e=>o({...t,high:e})}))}function _t(e){const[t,a]=n.useState(e.defaultValue);function o(t){a(t),e.onChange&&e.onChange(t)}return n.createElement(r.Group,{spacing:"xs",grow:!0,noWrap:!0},n.createElement(Ft,{name:e.name+"-numerator",defaultValue:t?.numerator,onChange:e=>o({...t,numerator:e})}),n.createElement(Ft,{name:e.name+"-denominator",defaultValue:t?.denominator,onChange:e=>o({...t,denominator:e})}))}const qt={Schedule:"_id",Task:"_id",Patient:"name",Practitioner:"name",Questionnaire:"name",ServiceRequest:"_id",DiagnosticReport:"_id",Specimen:"_id",Observation:"code",RequestGroup:"_id",ActivityDefinition:"name",User:"email:contains"};function Gt(e){const a=p(),o=ke(e.defaultValue),[l,c]=n.useState(o?t.getDisplayString(o):""),[i,s]=n.useState(!1),[u,m]=n.useState([]);async function d(n){s(!0);const r=qt[e.resourceType]||"name",o=new URLSearchParams({[r]:n,_count:"10"}),l=await a.searchResources(e.resourceType,o);m(l.map((e=>({value:t.getDisplayString(e),resource:e})))),s(!1)}return n.useEffect((()=>{o&&c(t.getDisplayString(o))}),[o,c]),n.createElement(r.Autocomplete,{name:e.name,itemComponent:jt,value:l,data:u,placeholder:e.placeholder,onFocus:()=>d(l),onChange:async function(e){return c(e),d(e)},onItemSubmit:function(t){c(t.value),m([]),e.onChange&&e.onChange(t.resource)},rightSection:i?n.createElement(r.Loader,{size:16}):null})}const jt=n.forwardRef((({value:e,resource:t,...a},o)=>n.createElement("div",{ref:o,...a},n.createElement(r.Group,{noWrap:!0},n.createElement(Se,{value:t}),n.createElement("div",null,n.createElement(r.Text,null,e),n.createElement(r.Text,{size:"xs",color:"dimmed"},t.birthDate))))));function Wt(e){const a=function(e){if(!e||0===e.length||1===e.length&&"Resource"===e[0])return;return e}(e.targetTypes),o=function(e,t){const n=e?.reference?.split("/")[0];if(n)return n;if(t&&t.length>0)return t[0];return}(e.defaultValue,a),[l,c]=n.useState(e.defaultValue),[i,s]=n.useState(o);n.useRef().current=l;return n.useRef().current=i,n.createElement(r.Group,{spacing:"xs",grow:!0,noWrap:!0},a?n.createElement(r.NativeSelect,{"data-testid":"reference-input-resource-type-select",defaultValue:i,onChange:e=>s(e.currentTarget.value),data:a}):n.createElement(r.TextInput,{"data-testid":"reference-input-resource-type-input",defaultValue:i,onChange:e=>s(e.currentTarget.value)}),n.createElement(Gt,{resourceType:i,name:e.name+"-id",placeholder:e.placeholder,defaultValue:l,onChange:n=>{var r;r=n?t.createReference(n):void 0,c(r),e.onChange&&e.onChange(r)}}))}function Qt(e){const[t,a]=n.useState(e.defaultValue&&Array.isArray(e.defaultValue)?e.defaultValue:[]),o=n.useRef();function l(t){a(t),e.onChange&&e.onChange(t)}return o.current=t,n.createElement("table",{style:{width:"100%",borderCollapse:"collapse"}},n.createElement("colgroup",null,n.createElement("col",{width:"97%"}),n.createElement("col",{width:"3%"})),n.createElement("tbody",null,t.map(((a,c)=>n.createElement("tr",{key:`${c}-${t.length}`},n.createElement("td",null,n.createElement(Xt,{arrayElement:!0,property:e.property,name:e.name+"."+c,defaultValue:a,onChange:e=>{const t=[...o.current];t[c]=e,l(t)}})),n.createElement("td",{style:{textAlign:"right"}},n.createElement(r.ActionIcon,{title:"Remove",size:"sm",onClick:e=>{ye(e);const t=[...o.current];t.splice(c,1),l(t)}},n.createElement(B,null)))))),n.createElement("tr",null,n.createElement("td",null),n.createElement("td",{style:{textAlign:"right"}},n.createElement(r.ActionIcon,{title:"Add",size:"sm",color:"green",onClick:e=>{ye(e);const t=[...o.current];t.push(void 0),l(t)}},n.createElement(U,null))))))}const Ht=["sun","mon","tue","wed","thu","fri","sat"];function Kt(e){const[a,o]=n.useState(e.defaultValue),[l,c]=n.useState(!1),i=n.useRef();return i.current=a,n.createElement(n.Fragment,null,n.createElement(r.Group,{spacing:"xs",grow:!0,noWrap:!0},n.createElement("span",null,t.formatTiming(i.current)||"No repeat"),n.createElement(r.Button,{onClick:()=>c(!0)},"Edit")),n.createElement(Yt,{visible:l,defaultValue:i.current,onOk:t=>{e.onChange&&e.onChange(t),o(t),c(!1)},onCancel:()=>c(!1)}))}const Jt={repeat:{period:1,periodUnit:"d"}};function Yt(e){const[t,a]=n.useState(e.defaultValue||Jt),o=n.useRef();function l(e){a({...o.current,repeat:e})}return o.current=t,n.createElement(r.Modal,{title:"Timing",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:()=>e.onCancel()},n.createElement(r.Stack,null,n.createElement(St,{title:"Starts on",htmlFor:"timing-dialog-start"},n.createElement(At,{name:"timing-dialog-start",onChange:e=>{return t=e,void a({...o.current,event:[t]});var t}})),n.createElement(r.Switch,{label:"Repeat",checked:!!t.repeat,onChange:e=>l(e.currentTarget.checked?Jt.repeat:void 0)}),t.repeat&&n.createElement(n.Fragment,null,n.createElement(St,{title:"Repeat every",htmlFor:"timing-dialog-period"},n.createElement(r.Group,{spacing:"xs",grow:!0,noWrap:!0},n.createElement(r.TextInput,{type:"number",step:1,id:"timing-dialog-period",name:"timing-dialog-period",defaultValue:t?.repeat?.period||1,onChange:e=>{return t=parseInt(e.currentTarget.value)||1,void l({...o.current?.repeat,period:t});var t}}),n.createElement(r.NativeSelect,{id:"timing-dialog-periodUnit",name:"timing-dialog-periodUnit",defaultValue:t?.repeat?.periodUnit,onChange:e=>{return t=e.currentTarget.value,void l({...o.current?.repeat,periodUnit:t});var t},data:[{label:"second",value:"s"},{label:"minute",value:"min"},{label:"hour",value:"h"},{label:"day",value:"d"},{label:"week",value:"wk"},{label:"month",value:"mo"},{label:"year",value:"a"}]}))),"wk"===t.repeat?.periodUnit&&n.createElement(St,{title:"Repeat on"},n.createElement(r.Chip.Group,{multiple:!0,onChange:function(e){l({...o.current?.repeat,dayOfWeek:e})}},n.createElement(r.Group,{position:"apart",mt:"md",spacing:"xs"},Ht.map((e=>n.createElement(r.Chip,{key:e,value:e,size:"xs",radius:"xl"},e.charAt(0).toUpperCase()))))))),n.createElement(r.Group,{position:"right"},n.createElement(r.Button,{onClick:()=>e.onOk(t)},"OK"))))}function Xt(e){const t=e.property,r=e.defaultPropertyType??t.type?.[0]?.code,a=e.name,o=e.defaultValue;if("*"===t.max&&!e.arrayElement)return"Attachment"===r?n.createElement(et,{name:a,defaultValue:o,onChange:e.onChange}):n.createElement(Qt,{property:t,name:a,defaultValue:o,onChange:e.onChange});const l=t.type;return l.length>1?n.createElement(Zt,{elementDefinitionTypes:l,...e}):n.createElement(en,{elementDefinitionType:l[0],...e})}function Zt(e){const a=e.elementDefinitionTypes;let o;e.defaultPropertyType&&(o=a.find((t=>t.code===e.defaultPropertyType))),o||(o=a[0]);const[l,c]=n.useState(o);return n.createElement(r.Group,{spacing:"xs",grow:!0,noWrap:!0},n.createElement(r.NativeSelect,{style:{width:"200px"},defaultValue:l?.code,onChange:e=>{c(a.find((t=>t.code===e.currentTarget.value)))},data:a.map((e=>({value:e.code,label:e.code})))}),n.createElement(en,{...e,elementDefinitionType:l,onChange:n=>{e.onChange&&e.onChange(n,e.name.replace("[x]",t.capitalize(l.code)))}}))}function en(e){const a=e.property,o=e.elementDefinitionType.code,l=e.name,c=e.defaultValue,i=void 0!==a.min&&a.min>0;switch(o){case t.PropertyType.SystemString:case t.PropertyType.canonical:case t.PropertyType.string:case t.PropertyType.time:case t.PropertyType.uri:case t.PropertyType.url:return n.createElement(r.TextInput,{id:l,name:l,"data-testid":l,defaultValue:c,required:i,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.value)},error:Tt(e.outcome,l)});case t.PropertyType.date:return n.createElement(r.TextInput,{type:"date",id:l,name:l,"data-testid":l,defaultValue:c,required:i,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.value)},error:Tt(e.outcome,l)});case t.PropertyType.dateTime:case t.PropertyType.instant:return n.createElement(At,{name:l,defaultValue:c,onChange:e.onChange,outcome:e.outcome});case t.PropertyType.decimal:case t.PropertyType.integer:case t.PropertyType.positiveInt:case t.PropertyType.unsignedInt:return n.createElement(r.TextInput,{type:"number",step:o===t.PropertyType.decimal?"any":"1",id:l,name:l,"data-testid":l,defaultValue:c,required:i,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.valueAsNumber)}});case t.PropertyType.code:return n.createElement(je,{property:a,name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.boolean:return n.createElement(r.Checkbox,{id:l,name:l,"data-testid":l,defaultChecked:!!c,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.checked)}});case t.PropertyType.markdown:return n.createElement(r.Textarea,{id:l,name:l,"data-testid":l,defaultValue:c,required:i,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.value)}});case t.PropertyType.Address:return n.createElement(u,{name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.Annotation:return n.createElement(E,{name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.Attachment:return n.createElement(tt,{name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.CodeableConcept:return n.createElement(wt,{property:a,name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.Coding:return n.createElement(It,{property:a,name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.ContactDetail:return n.createElement(Rt,{name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.ContactPoint:return n.createElement(Mt,{name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.Extension:return n.createElement(Ot,{name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.HumanName:return n.createElement(Vt,{name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.Identifier:return n.createElement(Nt,{name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.Money:return n.createElement(Lt,{name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.Period:return n.createElement($t,{name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.Duration:case t.PropertyType.Quantity:return n.createElement(Ft,{name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.Range:return n.createElement(Ut,{name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.Ratio:return n.createElement(_t,{name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.Reference:return n.createElement(Wt,{name:l,defaultValue:c,targetTypes:tn(a),onChange:e.onChange});case t.PropertyType.Timing:return n.createElement(Kt,{name:l,defaultValue:c,onChange:e.onChange});case t.PropertyType.Dosage:case t.PropertyType.UsageContext:return n.createElement(nn,{typeName:o,defaultValue:c,onChange:e.onChange,outcome:e.outcome});default:return n.createElement(nn,{typeName:t.getElementDefinitionTypeName(a),defaultValue:c,onChange:e.onChange,outcome:e.outcome})}}function tn(e){return e?.type?.[0]?.targetProfile?.map((e=>e.split("/").pop()))}function nn(e){const[a,o]=n.useState(e.defaultValue??{});function l(t){o(t),e.onChange&&e.onChange(t)}const c=e.typeName,i=t.globalSchema.types[c];if(!i)return n.createElement("div",null,c," not implemented");const s={type:c,value:a};return n.createElement(r.Stack,null,Object.entries(i.properties).map((r=>{const o=r[0];if("id"===o||nt.indexOf(o)>=0)return null;const c=r[1];if(!c.type)return null;const[i,u]=yt(s,o),m=void 0!==c.min&&c.min>0;return 1===c.type.length&&"boolean"===c.type[0].code?n.createElement(Ct,{key:o,title:t.getPropertyDisplayName(o),description:c.definition,htmlFor:o},n.createElement(Xt,{property:c,name:o,defaultValue:i,defaultPropertyType:u,outcome:e.outcome,onChange:(e,t)=>{l(xt(a,o,t??o,r[1],e))}})):n.createElement(St,{key:o,title:t.getPropertyDisplayName(o),description:c.definition,withAsterisk:m,htmlFor:o,outcome:e.outcome},n.createElement(Xt,{property:c,name:o,defaultValue:i,defaultPropertyType:u,onChange:(e,t)=>{l(xt(a,o,t??o,r[1],e))}}))})))}const rn=r.createStyles((e=>({table:{width:350,"& th":{fontWeight:"normal",fontSize:11,padding:8,textAlign:"center"},"& td":{padding:"2px 4px"},"& td button":{width:44,height:44,color:e.colors[e.primaryColor][5],fontSize:16,fontWeight:500,textAlign:"center",padding:0,backgroundColor:e.colors[e.primaryColor][0],border:0,borderRadius:"50%",cursor:"pointer"},"& td button:hover":{backgroundColor:e.colors[e.primaryColor][1]},"& td button:disabled":{backgroundColor:"transparent",cursor:"default",color:e.colors.gray[4],fontWeight:"normal"}}})));function an(e){return e.toLocaleString("default",{month:"long"})+" "+e.getFullYear()}function on(e){const{classes:t}=rn(),{onChangeMonth:a,onClick:o}=e,[l,c]=n.useState(ln);function i(e){c((t=>{const n=new Date(t.getTime());return n.setMonth(t.getMonth()+e),a(n),n}))}const s=n.useMemo((()=>function(e,t){const n=new Date(e.getFullYear(),e.getMonth()),r=[];let a=[];for(let e=0;e<n.getDay();e++)a.push(void 0);for(;n.getMonth()===e.getMonth();)a.push({date:new Date(n.getTime()),available:cn(n,t)}),6===n.getDay()&&(r.push(a),a=[]),n.setDate(n.getDate()+1);if(0!==n.getDay()){for(let e=n.getDay();e<7;e++)a.push(void 0);r.push(a)}return r}(l,e.slots)),[l,e.slots]);return n.createElement("div",null,n.createElement(r.Group,{position:"apart",spacing:"xs",grow:!0,noWrap:!0},n.createElement("p",{style:{flex:1}},an(l)),n.createElement(r.Group,{position:"right",spacing:"xs"},n.createElement(r.Button,{variant:"outline","aria-label":"Previous month",onClick:()=>i(-1)},"<"),n.createElement(r.Button,{variant:"outline","aria-label":"Next month",onClick:()=>i(1)},">"))),n.createElement("table",{className:t.table},n.createElement("thead",null,n.createElement("tr",null,n.createElement("th",null,"SUN"),n.createElement("th",null,"MON"),n.createElement("th",null,"TUE"),n.createElement("th",null,"WED"),n.createElement("th",null,"THU"),n.createElement("th",null,"FRI"),n.createElement("th",null,"SAT"))),n.createElement("tbody",null,s.map(((e,t)=>n.createElement("tr",{key:"week-"+t},e.map(((e,t)=>n.createElement("td",{key:"day-"+t},e&&n.createElement(r.Button,{disabled:!e.available,onClick:()=>o(e.date)},e.date.getDate()))))))))))}function ln(){const e=new Date;return e.setDate(1),e.setHours(0,0,0,0),e}function cn(e,t){for(const n of t){const t=new Date(n.start);if(t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth()&&t.getDate()===e.getDate())return!0}return!1}const sn=r.createStyles((()=>({root:{"@media (max-width: 800px)":{paddingLeft:4,paddingRight:4}}})));function un(e){const{children:t,...a}=e,{classes:o}=sn();return n.createElement(r.Container,{className:o.root,...a},t)}const mn=r.createStyles((e=>({noteBody:{fontSize:e.fontSizes.sm},noteCite:{fontSize:e.fontSizes.xs,marginBlockStart:3},noteRoot:{padding:5}})));function dn({value:e}){const{classes:t}=mn();return e?n.createElement(r.Stack,{justify:"flex-start",spacing:"xs"},e.map(((e,a)=>e.text&&n.createElement(r.Blockquote,{key:`note-${a}`,classNames:{cite:t.noteCite,body:t.noteBody,root:t.noteRoot},cite:e.authorReference?.display||e.authorString,icon:null},e.text)))):null}function pn(e){const{value:a,link:o,...l}=e,[c,i]=n.useState(),s=ke(a,i);let u;if(c&&!t.isOk(c))u=`[${t.normalizeErrorString(c)}]`;else{if(!s)return null;u=t.getDisplayString(s)}return o?n.createElement(Te,{to:a,...l},u):n.createElement(r.Text,{component:"span",...l},u)}function hn(e){return n.createElement(r.Group,{spacing:"xs"},n.createElement(Se,{size:24,radius:12,value:e.value,link:e.link}),n.createElement(pn,{value:e.value,link:e.link}))}const gn={draft:"blue",active:"blue","on-hold":"yellow",revoked:"red",completed:"green","entered-in-error":"red",unknown:"gray",retired:"gray",registered:"blue",preliminary:"blue",final:"green",amended:"yellow",corrected:"yellow",cancelled:"red",requested:"blue",received:"blue",accepted:"blue",rejected:"red",ready:"blue","in-progress":"blue",failed:"red",proposed:"blue",pending:"blue",booked:"blue",arrived:"blue",fulfilled:"green",noshow:"red","checked-in":"blue",waitlist:"gray",routine:"gray",urgent:"red",asap:"red",stat:"red"};function fn(e){return n.createElement(r.Badge,{color:gn[e.status]},e.status)}const En=r.createStyles((e=>({table:{border:`0.1px solid ${e.colors.gray[5]}`,borderCollapse:"collapse","& td, & th":{border:`0.1px solid ${e.colors.gray[5]}`,padding:4}},criticalRow:{background:"dark"===e.colorScheme?e.colors.red[7]:e.colors.red[1],border:`0.1px solid ${e.colors.red[5]}`,color:e.colors.red[5],fontWeight:500,"& td":{border:`0.1px solid ${e.colors.red[5]}`}},noteBody:{fontSize:e.fontSizes.sm},noteCite:{fontSize:e.fontSizes.xs,marginBlockStart:3},noteRoot:{padding:5}})));function yn(e){const a=p(),o=ke(e.value),[l,c]=n.useState();if(n.useEffect((()=>{o?.specimen&&Promise.allSettled(o.specimen.map((e=>a.readReference(e)))).then((e=>e.filter((e=>"fulfilled"===e.status)).map((e=>e.value)))).then(c).catch(console.error)}),[a,o]),!o)return null;const i=l?.flatMap((e=>e.note||[]))||[];if(o.presentedForm&&o.presentedForm.length>0){const e=o.presentedForm[0];e.contentType?.startsWith("text/plain")&&e.data&&i.push({text:window.atob(e.data)})}return n.createElement(r.Stack,null,n.createElement(r.Title,null,"Diagnostic Report"),n.createElement(vn,{value:o}),!e.hideSpecimenInfo&&function(e){return n.createElement(r.Stack,{spacing:"xs"},n.createElement(r.Title,{order:2,size:"h6"},"Specimens"),n.createElement(r.List,{type:"ordered"},e?.map(((e,a)=>n.createElement(r.List.Item,{ml:"sm",key:`specimen-${e.id}-${a}`},n.createElement(r.Group,{spacing:20},n.createElement(r.Group,{spacing:5},n.createElement(r.Text,{fw:500},"Collected:")," ",t.formatDateTime(e.collection?.collectedDateTime)),n.createElement(r.Group,{spacing:5},n.createElement(r.Text,{fw:500},"Received:")," ",t.formatDateTime(e.receivedTime))))))))}(l),o.result&&n.createElement(Cn,{hideObservationNotes:e.hideObservationNotes,value:o.result}),i.length>0&&n.createElement(dn,{value:i}))}function vn({value:e}){return n.createElement(r.Group,{mt:"md",spacing:30},e.subject&&n.createElement("div",null,n.createElement(r.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Subject"),n.createElement(r.Text,null,n.createElement(hn,{value:e.subject,link:!0}))),e.resultsInterpreter&&e.resultsInterpreter.map((e=>n.createElement("div",{key:e.reference},n.createElement(r.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Interpreter"),n.createElement(r.Text,null,n.createElement(hn,{value:e,link:!0}))))),e.performer&&e.performer.map((e=>n.createElement("div",{key:e.reference},n.createElement(r.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Performer"),n.createElement(r.Text,null,n.createElement(hn,{value:e,link:!0}))))),e.issued&&n.createElement("div",null,n.createElement(r.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Issued"),n.createElement(r.Text,null,t.formatDateTime(e.issued))),e.status&&n.createElement("div",null,n.createElement(r.Text,{size:"xs",transform:"uppercase",color:"dimmed"},"Status"),n.createElement(r.Text,null,t.capitalize(e.status))))}function Cn(e){const{classes:t}=En();return n.createElement("table",{className:t.table},n.createElement("thead",null,n.createElement("tr",null,n.createElement("th",null,"Test"),n.createElement("th",null,"Value"),n.createElement("th",null,"Reference Range"),n.createElement("th",null,"Interpretation"),n.createElement("th",null,"Category"),n.createElement("th",null,"Performer"),n.createElement("th",null,"Status"))),n.createElement("tbody",null,e.value?.map(((t,r)=>n.createElement(Tn,{key:`obs-${t.id}-${r}`,hideObservationNotes:e.hideObservationNotes,value:t})))))}function Tn(e){const{classes:t,cx:r}=En(),a=ke(e.value);if(!a)return null;const o=!e.hideObservationNotes&&a?.note,l=function(e){const t=e.interpretation?.[0]?.coding?.[0]?.code;return"AA"===t||"LL"===t||"HH"===t||"A"===t}(a);return n.createElement(n.Fragment,null,n.createElement("tr",{className:r({[t.criticalRow]:l})},n.createElement("td",{rowSpan:o?2:1},n.createElement(Te,{to:a},n.createElement(lt,{value:a.code}))),n.createElement("td",null,n.createElement(kn,{value:a})),n.createElement("td",null,n.createElement(bn,{value:a.referenceRange})),n.createElement("td",null,a.interpretation&&a.interpretation.length>0&&n.createElement(lt,{value:a.interpretation[0]})),n.createElement("td",null,a.category&&a.category.length>0&&n.createElement("ul",null,a.category.map(((e,t)=>n.createElement("li",{key:`category-${t}`},n.createElement(lt,{value:e})))))),n.createElement("td",null,a.performer?.map((e=>n.createElement(gt,{key:e?.reference,value:e})))),n.createElement("td",null,a.status&&n.createElement(fn,{status:a.status}))),o&&n.createElement("tr",null,n.createElement("td",{colSpan:6},n.createElement(dn,{value:a.note}))))}function kn(e){const r=e.value;return n.createElement(n.Fragment,null,t.formatObservationValue(r))}function bn(e){const t=e.value&&e.value.length>0&&e.value[0];return t?t.text?n.createElement(n.Fragment,null,t.text):n.createElement(pt,{value:t}):null}yn.defaultProps={hideObservationNotes:!1,hideSpecimenInfo:!1};const Sn=r.createStyles(((e,{width:t,fill:n})=>({paper:{maxWidth:t,margin:`${e.spacing.xl} auto`,padding:n?0:e.spacing.md,"@media (max-width: 800px)":{padding:n?0:8},"& img":{width:"100%",maxWidth:"100%"},"& video":{width:"100%",maxWidth:"100%"}}}))),xn={shadow:"xs",radius:"md",withBorder:!0};function wn(e){const{className:t,children:a,width:o,fill:l,unstyled:c,...i}=r.useComponentDefaultProps("Panel",xn,e),{classes:s,cx:u}=Sn({width:o,fill:l},{name:"Panel",unstyled:c});return n.createElement(r.Paper,{className:u(s.paper,t),...i},a)}const In=r.createStyles((e=>({root:{borderCollapse:"collapse",width:"100%","& tr":{borderTop:`0.1px solid ${e.colors.gray[3]}`},"& th, & td":{padding:`${e.spacing.sm} ${e.spacing.sm}`,verticalAlign:"top"}},removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}})));function Mn(e){const{classes:r}=In(),a=p(),[o,l]=n.useState();if(n.useEffect((()=>{a.requestSchema(e.original.resourceType).then(l).catch(console.log)}),[a,e.original.resourceType]),!o)return null;const c=o.types[e.original.resourceType];return c?n.createElement("table",{className:r.root},n.createElement("colgroup",null,n.createElement("col",{style:{width:"30%"}}),n.createElement("col",{style:{width:"35%"}}),n.createElement("col",{style:{width:"35%"}})),n.createElement("thead",null,n.createElement("tr",null,n.createElement("th",null,"Property"),n.createElement("th",null,"Before"),n.createElement("th",null,"After"))),n.createElement("tbody",null,Object.entries(c.properties).map((a=>{const o=a[0];if("id"===o||"meta"===o)return null;const l=a[1],[c,i]=yt(t.toTypedValue(e.original),o),[s,u]=yt(t.toTypedValue(e.revised),o);return Rn(c)&&Rn(s)||t.stringify(c)===t.stringify(s)?null:n.createElement("tr",{key:o},n.createElement("td",null,t.getPropertyDisplayName(o)),n.createElement("td",{className:r.removed},n.createElement(Et,{property:l,propertyType:i,value:c,ignoreMissingValues:!0})),n.createElement("td",{className:r.added},n.createElement(Et,{property:l,propertyType:u,value:s,ignoreMissingValues:!0})))})))):null}function Rn(e){return!e||Array.isArray(e)&&0===e.length||"object"==typeof e&&0===Object.keys(e).length}function An(e){const t=p(),r=ke(e.value),[a,o]=n.useState();return n.useEffect((()=>{r&&t.requestSchema(r.resourceType).then(o).catch(console.log)}),[t,r]),a&&r?n.createElement(vt,{value:{type:r.resourceType,value:e.forceUseInput?e.value:r},ignoreMissingValues:e.ignoreMissingValues}):null}function Pn(e){return n.createElement(un,null,e.children)}function Dn(e){const{resource:a,profile:o,padding:l,popupMenuItems:c,...i}=e,s=o??a.meta?.author;return n.createElement(wn,{"data-testid":"timeline-item",fill:!0,...i},n.createElement(r.Group,{position:"apart",spacing:8,mx:"xs",my:"sm"},n.createElement(Se,{value:s,link:!0,size:"md"}),n.createElement("div",{style:{flex:1}},n.createElement(r.Text,{size:"sm"},n.createElement(pn,{color:"dark",weight:500,value:s,link:!0})),n.createElement(r.Text,{size:"xs"},n.createElement(Te,{color:"dimmed",to:e.resource},t.formatDateTime(e.resource.meta?.lastUpdated)),n.createElement(r.Text,{component:"span",color:"dimmed",mx:8},"·"),n.createElement(Te,{color:"dimmed",to:e.resource},e.resource.resourceType))),c&&n.createElement(r.Menu,{position:"bottom-end",shadow:"md",width:200},n.createElement(r.Menu.Target,null,n.createElement(r.ActionIcon,{radius:"xl","aria-label":`Actions for ${t.getReferenceString(e.resource)}`},n.createElement(j,null))),c)),n.createElement(ge,null,l&&n.createElement("div",{style:{padding:"0 16px 16px 16px"}},e.children),!l&&n.createElement(n.Fragment,null,e.children)))}function On(e,t){e.sort(((e,n)=>{const r=Vn(e),a=Vn(n);return r>a?1:r<a?-1:Nn(e,t)-Nn(n,t)}))}function Vn(e){const t=e.priority;return"string"==typeof t&&{stat:4,asap:3,urgent:2}[t]||0}function Nn(e,t){if(n=e,!(r=t)||n.resourceType!==r.resourceType||n.id!==r.id){if("Communication"===e.resourceType&&e.sent)return new Date(e.sent).getTime();if(("DiagnosticReport"===e.resourceType||"Media"===e.resourceType||"Observation"===e.resourceType)&&e.issued)return new Date(e.issued).getTime();if("DocumentReference"===e.resourceType&&e.date)return new Date(e.date).getTime()}var n,r;const a=e.meta?.lastUpdated;return a?new Date(a).getTime():0}const zn=r.createStyles((e=>({pinnedComment:{backgroundColor:e.colors.blue[0]}})));function Ln(e){const a=p(),o=h(),c=a.getProfile(),i=n.useRef(null),s=ke(e.value),[u,m]=n.useState(),[d,g]=n.useState([]),f=e.loadTimelineResources,E=n.useRef(d);E.current=d;const y=n.useCallback((e=>{On(e,s),e.reverse(),g(e)}),[s]),v=n.useCallback((e=>{const t=[];for(const n of e){if("fulfilled"!==n.status)continue;const e=n.value;if("history"===e.type&&m(e),e.entry)for(const n of e.entry)t.push(n.resource)}y(t)}),[y]),C=n.useCallback((e=>y([...E.current,e])),[y]),T=n.useCallback((()=>{let t,n;"resourceType"in e.value?(t=e.value.resourceType,n=e.value.id):[t,n]=e.value.reference?.split("/"),f(a,t,n).then(v).catch(console.log)}),[a,e.value,f,v]);function k(e,t){return a.updateResource({...e,priority:t})}function b(e){k(e,"stat").then(T).catch(console.log)}function S(e){k(e,"routine").then(T).catch(console.log)}function x(e){o(`/${e.resourceType}/${e.id}`)}function w(e){o(`/${e.resourceType}/${e.id}/edit`)}function I(e){o(`/${e.resourceType}/${e.id}/delete`)}function M(e){o(`/${e.resourceType}/${e.id}/_history/${e.meta?.versionId}`)}return n.useEffect((()=>T()),[T]),s?n.createElement(Pn,null,e.createCommunication&&n.createElement(wn,null,n.createElement($e,{testid:"timeline-form",onSubmit:t=>{var n;n=t.text,s&&e.createCommunication&&a.createResource(e.createCommunication(s,c,n)).then((e=>C(e))).catch(console.log);const r=i.current;r&&(r.value="",r.focus())}},n.createElement(r.Group,{spacing:"xs",noWrap:!0,style:{width:"100%"}},n.createElement(Se,{value:c}),n.createElement(r.TextInput,{name:"text",ref:i,placeholder:"Add comment",style:{width:"100%",maxWidth:300}}),n.createElement(r.ActionIcon,{type:"submit",radius:"xl",color:"blue",variant:"filled"},n.createElement(ne,{size:16})),n.createElement(Ze,{onUpload:function(r){s&&e.createMedia&&a.createResource(e.createMedia(s,c,r)).then((e=>C(e))).then((()=>l.updateNotification({id:"upload-notification",color:"teal",title:"Upload complete",message:"",icon:n.createElement(L,{size:16}),autoClose:2e3}))).catch((e=>l.updateNotification({id:"upload-notification",color:"red",title:"Upload error",message:t.normalizeErrorString(e),icon:n.createElement(K,{size:16}),autoClose:2e3})))},onUploadStart:function(){l.showNotification({id:"upload-notification",loading:!0,title:"Initializing upload...",message:"Please wait...",autoClose:!1,withCloseButton:!1})},onUploadProgress:function(e){l.updateNotification({id:"upload-notification",loading:!0,title:"Uploading...",message:Gn(e),autoClose:!1,withCloseButton:!1})}},(e=>n.createElement(r.ActionIcon,{...e,radius:"xl",color:"blue",variant:"filled"},n.createElement(_,{size:16}))))))),d.map((e=>{if(!e)return null;const t=`${e.resourceType}/${e.id}/${e.meta?.versionId}`;if(e.resourceType===s.resourceType&&e.id===s.id)return n.createElement(Fn,{key:t,history:u,resource:e,onDetails:M});switch(e.resourceType){case"AuditEvent":return n.createElement(_n,{key:t,resource:e,onDetails:x});case"Communication":return n.createElement(Bn,{key:t,resource:e,onPin:"stat"!==e.priority?b:void 0,onUnpin:"stat"===e.priority?S:void 0,onDetails:x,onEdit:w,onDelete:I});case"DiagnosticReport":return n.createElement(qn,{key:t,resource:e,onDetails:x,onEdit:w,onDelete:I});case"Media":return n.createElement(Un,{key:t,resource:e,onDetails:x,onEdit:w,onDelete:I});default:return n.createElement(Dn,{key:t,resource:e,padding:!0},n.createElement(An,{value:e,ignoreMissingValues:!0}))}}))):n.createElement(r.Center,{style:{width:"100%",height:"100%"}},n.createElement(r.Loader,null))}function $n(e){return n.createElement(r.Menu.Dropdown,null,n.createElement(r.Menu.Label,null,"Resource"),e.onPin&&n.createElement(r.Menu.Item,{icon:n.createElement(re,{size:14}),onClick:()=>e.onPin(e.resource),"aria-label":`Pin ${t.getReferenceString(e.resource)}`},"Pin"),e.onUnpin&&n.createElement(r.Menu.Item,{icon:n.createElement(ae,{size:14}),onClick:()=>e.onUnpin(e.resource),"aria-label":`Unpin ${t.getReferenceString(e.resource)}`},"Unpin"),e.onDetails&&n.createElement(r.Menu.Item,{icon:n.createElement(X,{size:14}),onClick:()=>e.onDetails(e.resource),"aria-label":`Details ${t.getReferenceString(e.resource)}`},"Details"),e.onEdit&&n.createElement(r.Menu.Item,{icon:n.createElement(W,{size:14}),onClick:()=>e.onEdit(e.resource),"aria-label":`Edit ${t.getReferenceString(e.resource)}`},"Edit"),e.onDelete&&n.createElement(n.Fragment,null,n.createElement(r.Menu.Divider,null),n.createElement(r.Menu.Label,null,"Danger zone"),n.createElement(r.Menu.Item,{color:"red",icon:n.createElement(pe,{size:14}),onClick:()=>e.onDelete(e.resource),"aria-label":`Delete ${t.getReferenceString(e.resource)}`},"Delete")))}function Fn(e){const t=function(e,t){const n=e.entry,r=n.findIndex((e=>e.resource?.meta?.versionId===t.meta?.versionId));if(r>=n.length-1)return;return n[r+1].resource}(e.history,e.resource);return t?n.createElement(Dn,{resource:e.resource,padding:!0,popupMenuItems:n.createElement($n,{...e})},n.createElement(Mn,{original:t,revised:e.resource})):n.createElement(Dn,{resource:e.resource,padding:!0,popupMenuItems:n.createElement($n,{...e})},n.createElement("h3",null,"Created"),n.createElement(An,{value:e.resource,ignoreMissingValues:!0,forceUseInput:!0}))}function Bn(e){const{classes:t}=zn(),r=!e.resource.priority||"routine"===e.resource.priority?void 0:t.pinnedComment;return n.createElement(Dn,{resource:e.resource,profile:e.resource.sender,padding:!0,className:r,popupMenuItems:n.createElement($n,{...e})},n.createElement("p",null,e.resource.payload?.[0]?.contentString))}function Un(e){const t=e.resource.content?.contentType,r=t&&!t.startsWith("image/")&&!t.startsWith("video/")&&"application/pdf"!==t;return n.createElement(Dn,{resource:e.resource,padding:!!r,popupMenuItems:n.createElement($n,{...e})},n.createElement(Ye,{value:e.resource.content}))}function _n(e){return n.createElement(Dn,{resource:e.resource,padding:!0,popupMenuItems:n.createElement($n,{...e})},n.createElement(r.ScrollArea,null,n.createElement("pre",null,e.resource.outcomeDesc)))}function qn(e){return n.createElement(Dn,{resource:e.resource,padding:!0,popupMenuItems:n.createElement($n,{...e})},n.createElement(yn,{value:e.resource}))}function Gn(e){if(e.lengthComputable){const t=100*e.loaded/e.total;return`Uploaded: ${jn(e.loaded)} / ${jn(e.total)} ${t.toFixed(2)}%`}return`Uploaded: ${jn(e.loaded)}`}function jn(e){if(0===e)return"0.00 B";const t=Math.floor(Math.log(e)/Math.log(1024));return(e/Math.pow(1024,t)).toFixed(2)+" "+" KMGTP".charAt(t)+"B"}function Wn(e){const{children:t,...r}=e;return n.createElement(un,null,n.createElement(wn,{...r},t))}function Qn(e){let r;try{r=t.evalFhirPath(e.path,e.resource)}catch(e){return console.warn("FhirPathDisplay:",e),null}if(r.length>1)throw new Error(`Component "path" for "FhirPathDisplay" must resolve to a single element. Received ${r.length} elements [${JSON.stringify(r,null,2)}]`);return n.createElement(Et,{value:r[0]||"",propertyType:e.propertyType})}const Hn={string:[t.Operator.EQUALS,t.Operator.NOT,t.Operator.CONTAINS,t.Operator.EXACT],fulltext:[t.Operator.EQUALS,t.Operator.NOT,t.Operator.CONTAINS,t.Operator.EXACT],token:[t.Operator.EQUALS,t.Operator.NOT],reference:[t.Operator.EQUALS,t.Operator.NOT],numeric:[t.Operator.EQUALS,t.Operator.NOT_EQUALS,t.Operator.GREATER_THAN,t.Operator.LESS_THAN,t.Operator.GREATER_THAN_OR_EQUALS,t.Operator.LESS_THAN_OR_EQUALS],quantity:[t.Operator.EQUALS,t.Operator.NOT_EQUALS,t.Operator.GREATER_THAN,t.Operator.LESS_THAN,t.Operator.GREATER_THAN_OR_EQUALS,t.Operator.LESS_THAN_OR_EQUALS],date:[t.Operator.EQUALS,t.Operator.NOT_EQUALS,t.Operator.GREATER_THAN,t.Operator.LESS_THAN,t.Operator.GREATER_THAN_OR_EQUALS,t.Operator.LESS_THAN_OR_EQUALS,t.Operator.STARTS_AFTER,t.Operator.ENDS_BEFORE,t.Operator.APPROXIMATELY],datetime:[t.Operator.EQUALS,t.Operator.NOT_EQUALS,t.Operator.GREATER_THAN,t.Operator.LESS_THAN,t.Operator.GREATER_THAN_OR_EQUALS,t.Operator.LESS_THAN_OR_EQUALS,t.Operator.STARTS_AFTER,t.Operator.ENDS_BEFORE,t.Operator.APPROXIMATELY]},Kn={eq:"equals",ne:"not equals",gt:"greater than",lt:"less than",ge:"greater than or equals",le:"less than or equals",sa:"starts after",eb:"ends before",ap:"approximately",contains:"contains",exact:"exact",text:"text",not:"not",above:"above",below:"below",in:"in","not-in":"not in","of-type":"of type",missing:"missing",identifier:"identifier",iterate:"iterate"};function Jn(e,t){return{...e,filters:t,offset:0,name:void 0}}function Yn(e,t){return Jn(e,(e.filters||[]).filter((e=>e.code!==t)))}function Xn(e,t,n,r,a){a&&(e=Yn(e,t));const o=[];return e.filters&&o.push(...e.filters),o.push({code:t,operator:n,value:r||""}),Jn(e,o)}function Zn(e,t){if(!e.filters)return e;const n=[...e.filters];return n.splice(t,1),{...e,filters:n,name:void 0}}function er(e,t){return rr(e,t,-1)}function tr(e,t){return rr(e,t,0)}function nr(e,t){return rr(e,t,1)}function rr(e,t,n){const r=new Date;r.setDate(r.getDate()+n),r.setHours(0,0,0,0);const a=new Date(r.getTime());return a.setDate(a.getDate()+1),a.setTime(a.getTime()-1),sr(e,t,r,a)}function ar(e,t){return cr(e,t,-1)}function or(e,t){return cr(e,t,0)}function lr(e,t){return cr(e,t,1)}function cr(e,t,n){const r=new Date;r.setMonth(r.getMonth()+n),r.setDate(1),r.setHours(0,0,0,0);const a=new Date(r.getTime());return a.setMonth(a.getMonth()+1),a.setDate(1),a.setHours(0,0,0,0),a.setTime(a.getTime()-1),sr(e,t,r,a)}function ir(e,t){const n=new Date;n.setMonth(0),n.setDate(1),n.setHours(0,0,0,0);return sr(e,t,n,new Date)}function sr(e,n,r,a){return e=ur(e=Yn(e,n),n,t.Operator.GREATER_THAN_OR_EQUALS,r),e=ur(e,n,t.Operator.LESS_THAN_OR_EQUALS,a)}function ur(e,t,n,r){return Xn(e,t,n,r.toISOString())}function mr(e,n,r=!0){return Xn(e,n,t.Operator.MISSING,r.toString())}function dr(e,t){return e.offset===t?e:{...e,offset:t,name:void 0}}function pr(e,n){return dr(e,(n-1)*(e.count??t.DEFAULT_SEARCH_COUNT))}function hr(e,t,n){return t===gr(e)&&void 0!==n&&n===fr(e)?e:{...e,sortRules:[{code:t,descending:!!n}],name:void 0}}function gr(e){const t=e.sortRules;if(!t||0===t.length)return;const n=t[0].code;return n.startsWith("-")?n.substr(1):n}function fr(e){const t=e.sortRules;return!(!t||0===t.length)&&!!t[0].descending}function Er(e){return Hn[e.type]}function yr(e){return Kn[e]??""}function vr(e){let n=e;return n.includes(".")&&(n=n.split(".").pop()),"id"===n?"ID":"versionId"===n?"Version ID":(n=n.replace("[x]",""),n=n.replace(/([A-Z])/g," $1"),n=n.replace(/[-_]/g," "),n=n.replace(/\s+/g," "),n=n.trim(),n.split(/\s/).map(t.capitalize).join(" "))}function Cr(e,r){const a=r.name;return"id"===a?e.id:"meta.versionId"===a?e.meta?.versionId:"_lastUpdated"===a?t.formatDateTime(e.meta?.lastUpdated):r.elementDefinition&&`${e.resourceType}.${r.name}`===r.elementDefinition.path?function(e,t){const r=t.path?.split(".")?.pop()?.replaceAll("[x]","")||"",[a,o]=yt({type:e.resourceType,value:e},r);if(!a)return null;return n.createElement(Et,{property:t,propertyType:o,value:a,maxWidth:200,ignoreMissingValues:!0,link:!1})}(e,r.elementDefinition):r.searchParams&&1===r.searchParams.length&&r.name===r.searchParams[0].code?function(e,r,a){const o=t.evalFhirPathTyped(r.expression,[{type:e.resourceType,value:e}]);if(!o||0===o.length)return null;if(a)return n.createElement(Et,{propertyType:o[0].type,value:o[0].value,maxWidth:200,ignoreMissingValues:!0,link:!1});return n.createElement(n.Fragment,null,o.map(((e,t)=>n.createElement("span",{key:`${t}-${o.length}`},"object"==typeof e?JSON.stringify(e):e))))}(e,r.searchParams[0],r.elementDefinition):null}function Tr(e){const[a,o]=n.useState({search:JSON.parse(t.stringify(e.search))}),l=n.useRef(null),c=n.useRef(null);function i(){const e=a.search.fields??[],t=l.current?.value;if(t){const n=[...e,t];o({search:{...a.search,fields:n}})}}function s(){const e=a.search.fields??[],t=c.current?.value;if(t){const n=[...e];n.splice(n.indexOf(t),1),o({search:{...a.search,fields:n}})}}function u(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}if(n.useEffect((()=>{o({search:e.search})}),[e.search]),!e.visible)return null;const m=e.search.resourceType,d=t.globalSchema.types[m],p=a.search.fields??[],h=function(e){const t=[],n=new Set,r=new Set;for(const a of Object.keys(e.properties))t.push(a),n.add(a.toLowerCase()),r.add(vr(a));if(e.searchParams)for(const a of Object.keys(e.searchParams)){const e=vr(a);n.has(a)||r.has(e)||(t.push(a),n.add(a),r.add(vr(a)))}return t}(d).filter((e=>!p?.includes(e))).sort();return n.createElement(r.Modal,{title:"Fields",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},n.createElement("div",null,n.createElement("table",{style:{margin:"auto"}},n.createElement("thead",null,n.createElement("tr",null,n.createElement("th",{colSpan:2,align:"center"},"Available"),n.createElement("th",{colSpan:2,align:"center"},"Selected"))),n.createElement("tbody",null,n.createElement("tr",null,n.createElement("td",{colSpan:2,align:"center"},n.createElement("select",{ref:l,size:15,tabIndex:1,style:{width:"200px"},onKeyDown:e=>function(e){"Enter"===e.key&&i()}(e),onDoubleClick:()=>{i()},"data-testid":"available"},h.map((e=>n.createElement("option",{key:e,value:e},vr(e)))))),n.createElement("td",{colSpan:2,align:"center"},n.createElement("select",{ref:c,size:15,tabIndex:4,style:{width:"200px"},onKeyDown:e=>function(e){"Enter"===e.key&&s()}(e),onDoubleClick:()=>{s()},"data-testid":"selected"},p.map((e=>n.createElement("option",{key:e,value:e},vr(e)))))))),n.createElement("tfoot",null,n.createElement("tr",null,n.createElement("td",{align:"center"},n.createElement(r.Button,{compact:!0,variant:"outline",onClick:i},"Add")),n.createElement("td",{align:"center"},n.createElement(r.Button,{compact:!0,variant:"outline",onClick:s},"Remove")),n.createElement("td",{align:"center"},n.createElement(r.Button,{compact:!0,variant:"outline",onClick:function(){const e=a.search.fields??[],t=c.current?.value;if(!t)return;const n=[...e],r=n.indexOf(t);r<=0||(u(n,r,r-1),o({search:{...a.search,fields:n}}))}},"Up")),n.createElement("td",{align:"center"},n.createElement(r.Button,{compact:!0,variant:"outline",onClick:function(){const e=a.search.fields??[],t=c.current?.value;if(!t)return;const n=[...e],r=n.indexOf(t);r>=n.length-1||(u(n,r,r+1),o({search:{...a.search,fields:n}}))}},"Down")))))),n.createElement(r.Button,{onClick:()=>e.onOk(a.search)},"OK"))}function kr(e){const{resourceType:r,filter:a}=e,o=t.globalSchema.types[r]?.searchParams?.[a.code];if(o){if("reference"===o.type&&(a.operator===t.Operator.EQUALS||a.operator===t.Operator.NOT_EQUALS))return n.createElement(pn,{value:{reference:a.value}});const e=t.getSearchParameterDetails(r,o);if("_lastUpdated"===a.code||e.type===t.SearchParameterType.DATETIME)return n.createElement(n.Fragment,null,t.formatDateTime(a.value))}return n.createElement(n.Fragment,null,a.value)}function br(e){const a="filter-value";switch(t.getSearchParameterDetails(e.resourceType,e.searchParam).type){case t.SearchParameterType.REFERENCE:return n.createElement(Wt,{name:a,defaultValue:{reference:e.defaultValue},targetTypes:e.searchParam?.target,onChange:t=>{t?e.onChange(t.reference):e.onChange("")}});case t.SearchParameterType.BOOLEAN:return n.createElement(r.Checkbox,{name:a,"data-testid":a,defaultChecked:"true"===e.defaultValue,onChange:t=>e.onChange(t.currentTarget.checked.toString())});case t.SearchParameterType.DATE:return n.createElement(r.TextInput,{type:"date",name:a,"data-testid":a,defaultValue:e.defaultValue,onChange:t=>e.onChange(t.currentTarget.value)});case t.SearchParameterType.DATETIME:return n.createElement(At,{name:a,defaultValue:e.defaultValue,onChange:e.onChange});case t.SearchParameterType.NUMBER:return n.createElement(r.TextInput,{type:"number",name:a,"data-testid":a,defaultValue:e.defaultValue,onChange:t=>e.onChange(t.currentTarget.value)});case t.SearchParameterType.QUANTITY:return n.createElement(Ft,{name:a,defaultValue:Sr(e.defaultValue),onChange:t=>{t?e.onChange(`${t.value}`):e.onChange("")}});default:return n.createElement(r.TextInput,{name:a,"data-testid":a,defaultValue:e.defaultValue,autoFocus:e.autoFocus,onChange:t=>e.onChange(t.currentTarget.value),placeholder:"Search value"})}}function Sr(e){if(e){const[t,n,r]=e.split("|");if(t)return{value:parseFloat(t),system:n,unit:r}}}function xr(e){const[a,o]=n.useState(JSON.parse(t.stringify(e.search))),[l,c]=n.useState(-1),i=n.useRef(a);if(i.current=a,n.useEffect((()=>{o(JSON.parse(t.stringify(e.search)))}),[e.search]),!e.visible)return null;const s=e.search.resourceType,u=t.globalSchema.types[s].searchParams??{},m=a.filters||[];return n.createElement(r.Modal,{title:"Filters",closeButtonProps:{"aria-label":"Close"},size:900,opened:e.visible,onClose:e.onCancel},n.createElement("div",null,n.createElement("table",null,n.createElement("colgroup",null,n.createElement("col",{style:{width:200}}),n.createElement("col",{style:{width:200}}),n.createElement("col",{style:{width:380}}),n.createElement("col",{style:{width:120}})),n.createElement("thead",null,n.createElement("tr",null,n.createElement("th",null,"Field"),n.createElement("th",null,"Operation"),n.createElement("th",null,"Value"),n.createElement("th",null,"Actions"))),n.createElement("tbody",null,m.map(((e,t)=>t===l?n.createElement(Ir,{key:`filter-${t}-${m.length}-input`,resourceType:s,searchParams:u,defaultValue:e,okText:"Save",onOk:e=>{const n=[...m];n[t]=e,o(Jn(i.current,n)),c(-1)},onCancel:()=>c(-1)}):n.createElement(wr,{key:`filter-${t}-${m.length}-display`,resourceType:s,searchParams:u,filter:e,onEdit:()=>c(t),onDelete:()=>o(Zn(i.current,t))}))),n.createElement(Ir,{resourceType:s,searchParams:u,okText:"Add",onOk:function(e){o(Xn(i.current,e.code,e.operator,e.value))}})))),n.createElement(r.Group,{position:"right",mt:"xl"},n.createElement(r.Button,{onClick:()=>e.onOk(i.current)},"OK")))}function wr(e){const{filter:t}=e;return n.createElement("tr",null,n.createElement("td",null,vr(t.code)),n.createElement("td",null,yr(t.operator)),n.createElement("td",null,n.createElement(kr,{resourceType:e.resourceType,filter:t})),n.createElement("td",null,n.createElement(r.Button,{compact:!0,variant:"outline",onClick:e.onEdit},"Edit"),n.createElement(r.Button,{compact:!0,variant:"outline",onClick:e.onDelete},"Delete")))}function Ir(e){const[t,a]=n.useState(e.defaultValue??{}),o=n.useRef(t);o.current=t;const l=e.searchParams[t.code],c=l&&Er(l);return n.createElement("tr",null,n.createElement("td",null,n.createElement(r.NativeSelect,{"data-testid":"filter-field",defaultValue:o.current.code,onChange:e=>{return t=e.currentTarget.value,void a({...o.current,code:t});var t},data:Object.keys(e.searchParams).map((e=>({value:e,label:vr(e)})))})),n.createElement("td",null,c&&n.createElement(r.NativeSelect,{"data-testid":"filter-operation",defaultValue:t.operator,onChange:e=>{return t=e.currentTarget.value,void a({...o.current,operator:t});var t},data:["",...c.map((e=>({value:e,label:yr(e)})))]})),n.createElement("td",null,l&&t.operator&&n.createElement(br,{resourceType:e.resourceType,searchParam:l,defaultValue:t.value,onChange:function(e){a({...o.current,value:e})}})),n.createElement("td",null,t.code&&t.operator&&t.value&&n.createElement(r.Button,{compact:!0,variant:"outline",onClick:()=>{e.onOk(o.current),a({})}},e.okText),e.onCancel&&n.createElement(r.Button,{compact:!0,variant:"outline",onClick:e.onCancel},"Cancel")))}function Mr(e){const[t,a]=n.useState(e.defaultValue??"");if(!e.visible||!e.searchParam||!e.filter)return null;function o(){e.onOk({...e.filter,value:t})}return n.createElement(r.Modal,{title:e.title,size:"xl",opened:e.visible,onClose:e.onCancel},n.createElement("div",{style:{width:500}},n.createElement($e,{onSubmit:o},n.createElement(br,{resourceType:e.resourceType,searchParam:e.searchParam,defaultValue:t,autoFocus:!0,onChange:a}))),n.createElement(r.Button,{onClick:o},"OK"))}function Rr(e){if(!e.searchParams)return null;function t(t){e.onChange(t)}return 1===e.searchParams.length?n.createElement(Ar,{search:e.search,searchParam:e.searchParams[0],onSort:function(n,r){t(hr(e.search,n.code,r))},onPrompt:function(t,n){e.onPrompt(t,{code:t.code,operator:n,value:""})},onChange:t,onClear:function(n){t(Yn(e.search,n.code))}}):n.createElement(r.Menu.Dropdown,null,e.searchParams.map((e=>n.createElement(r.Menu.Item,{key:e.code},vr(e.code)))))}function Ar(e){switch(e.searchParam.type){case"date":return n.createElement(Pr,{...e});case"number":case"quantity":return n.createElement(Dr,{...e});case"reference":return n.createElement(Or,{...e});case"string":case"token":case"uri":return n.createElement(Vr,{...e});default:return n.createElement(n.Fragment,null,"Unknown search param type: ",e.searchParam.type)}}function Pr(e){const{searchParam:a}=e,o=a.code;return n.createElement(r.Menu.Dropdown,null,n.createElement(r.Menu.Item,{icon:n.createElement(ie,{size:14}),onClick:()=>e.onSort(a,!1)},"Sort Oldest to Newest"),n.createElement(r.Menu.Item,{icon:n.createElement(se,{size:14}),onClick:()=>e.onSort(a,!0)},"Sort Newest to Oldest"),n.createElement(r.Menu.Divider,null),n.createElement(r.Menu.Item,{icon:n.createElement(H,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.EQUALS)},"Equals..."),n.createElement(r.Menu.Item,{icon:n.createElement(Q,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.NOT_EQUALS)},"Does not equal..."),n.createElement(r.Menu.Divider,null),n.createElement(r.Menu.Item,{icon:n.createElement(te,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.ENDS_BEFORE)},"Before..."),n.createElement(r.Menu.Item,{icon:n.createElement(ee,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.STARTS_AFTER)},"After..."),n.createElement(r.Menu.Item,{icon:n.createElement(O,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.EQUALS)},"Between..."),n.createElement(r.Menu.Divider,null),n.createElement(r.Menu.Item,{icon:n.createElement(z,{size:14}),onClick:()=>e.onChange(nr(e.search,o))},"Tomorrow"),n.createElement(r.Menu.Item,{icon:n.createElement(z,{size:14}),onClick:()=>e.onChange(tr(e.search,o))},"Today"),n.createElement(r.Menu.Item,{icon:n.createElement(z,{size:14}),onClick:()=>e.onChange(er(e.search,o))},"Yesterday"),n.createElement(r.Menu.Divider,null),n.createElement(r.Menu.Item,{icon:n.createElement(z,{size:14}),onClick:()=>e.onChange(lr(e.search,o))},"Next Month"),n.createElement(r.Menu.Item,{icon:n.createElement(z,{size:14}),onClick:()=>e.onChange(or(e.search,o))},"This Month"),n.createElement(r.Menu.Item,{icon:n.createElement(z,{size:14}),onClick:()=>e.onChange(ar(e.search,o))},"Last Month"),n.createElement(r.Menu.Divider,null),n.createElement(r.Menu.Item,{icon:n.createElement(z,{size:14}),onClick:()=>e.onChange(ir(e.search,o))},"Year to date"),n.createElement(Nr,{...e}))}function Dr(e){const{searchParam:a}=e;return n.createElement(r.Menu.Dropdown,null,n.createElement(r.Menu.Item,{icon:n.createElement(ie,{size:14}),onClick:()=>e.onSort(a,!1)},"Sort Smallest to Largest"),n.createElement(r.Menu.Item,{icon:n.createElement(se,{size:14}),onClick:()=>e.onSort(a,!0)},"Sort Largest to Smallest"),n.createElement(r.Menu.Divider,null),n.createElement(r.Menu.Item,{icon:n.createElement(H,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.EQUALS)},"Equals..."),n.createElement(r.Menu.Item,{icon:n.createElement(Q,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.NOT_EQUALS)},"Does not equal..."),n.createElement(r.Menu.Divider,null),n.createElement(r.Menu.Item,{icon:n.createElement(ee,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.GREATER_THAN)},"Greater than..."),n.createElement(r.Menu.Item,{icon:n.createElement(ce,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.GREATER_THAN_OR_EQUALS)},"Greater than or equal to..."),n.createElement(r.Menu.Item,{icon:n.createElement(te,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.LESS_THAN)},"Less than..."),n.createElement(r.Menu.Item,{icon:n.createElement(ce,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.LESS_THAN_OR_EQUALS)},"Less than or equal to..."),n.createElement(Nr,{...e}))}function Or(e){const{searchParam:a}=e;return n.createElement(r.Menu.Dropdown,null,n.createElement(r.Menu.Item,{icon:n.createElement(H,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.EQUALS)},"Equals..."),n.createElement(r.Menu.Item,{icon:n.createElement(Q,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.NOT)},"Does not equal..."),n.createElement(Nr,{...e}))}function Vr(e){const{searchParam:a}=e;return n.createElement(r.Menu.Dropdown,null,n.createElement(r.Menu.Item,{icon:n.createElement(ie,{size:14}),onClick:()=>e.onSort(a,!1)},"Sort A to Z"),n.createElement(r.Menu.Item,{icon:n.createElement(se,{size:14}),onClick:()=>e.onSort(a,!0)},"Sort Z to A"),n.createElement(r.Menu.Divider,null),n.createElement(r.Menu.Item,{icon:n.createElement(H,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.EQUALS)},"Equals..."),n.createElement(r.Menu.Item,{icon:n.createElement(Q,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.NOT)},"Does not equal..."),n.createElement(r.Menu.Divider,null),n.createElement(r.Menu.Item,{icon:n.createElement(N,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.CONTAINS)},"Contains..."),n.createElement(r.Menu.Item,{icon:n.createElement(V,{size:14}),onClick:()=>e.onPrompt(a,t.Operator.EQUALS)},"Does not contain..."),n.createElement(Nr,{...e}))}function Nr(e){const{searchParam:t}=e,a=t.code;return n.createElement(n.Fragment,null,n.createElement(r.Menu.Divider,null),n.createElement(r.Menu.Item,{icon:n.createElement(P,{size:14}),onClick:()=>e.onChange(mr(e.search,a))},"Missing"),n.createElement(r.Menu.Item,{icon:n.createElement(A,{size:14}),onClick:()=>e.onChange(mr(e.search,a,!1))},"Not missing"),n.createElement(r.Menu.Divider,null),n.createElement(r.Menu.Item,{icon:n.createElement(he,{size:14}),onClick:()=>e.onClear(t)},"Clear filters"))}function zr(e,n){if("_lastUpdated"===n)return{name:"_lastUpdated",searchParams:[{resourceType:"SearchParameter",base:["Resource"],code:"_lastUpdated",name:"_lastUpdated",type:"date",expression:"Resource.meta.lastUpdated"}]};if("meta.versionId"===n)return{name:"meta.versionId",searchParams:[{resourceType:"SearchParameter",base:["Resource"],code:"_versionId",name:"_versionId",type:"token",expression:"Resource.meta.versionId"}]};const r=t.globalSchema.types[e],a=r.properties[n],o=r.searchParams?.[n.toLowerCase()];if(a&&o)return{name:n,elementDefinition:a,searchParams:[o]};if(a){let t;if(r.searchParams){const a=`${e}.${n.replaceAll("[x]","")}`;t=Object.values(r.searchParams).filter((e=>e.expression?.includes(a))),0===t.length&&(t=void 0)}return{name:n,elementDefinition:a,searchParams:t}}if(o){return{name:n,elementDefinition:t.getSearchParameterDetails(e,o).elementDefinition,searchParams:[o]}}return{name:n}}function Lr(e){return n.createElement(r.Modal,{title:"Export",closeButtonProps:{"aria-label":"Close"},opened:e.visible,onClose:e.onCancel},n.createElement(r.Box,{display:"flex",sx:{justifyContent:"space-between"}},e.exportCsv&&n.createElement($r,{text:"CSV",exportLogic:e.exportCsv,onCancel:e.onCancel}),e.exportTransactionBundle&&n.createElement($r,{text:"Transaction Bundle",exportLogic:e.exportTransactionBundle,onCancel:e.onCancel})),n.createElement(r.Text,{sx:{marginTop:"10px",marginLeft:"2px"}},"Limited to 1000 records"))}function $r(e){return n.createElement(r.Button,{onClick:()=>{e.exportLogic(),e.onCancel()}},`Export as ${e.text}`)}class Fr extends Event{constructor(e){super("change"),this.definition=e}}class Br extends Event{constructor(e){super("load"),this.response=e}}class Ur extends Event{constructor(e,t){super("click"),this.resource=e,this.browserEvent=t}}const _r=r.createStyles((e=>({root:{maxWidth:"100%",overflow:"auto",textAlign:"left",marginBottom:"20px"},table:{cursor:"pointer"},tr:{"&:hover":{backgroundColor:"dark"===e.colorScheme?e.colors.dark[7]:e.colors.gray[0]}},th:{padding:"0 !important"},control:{width:"100%",padding:`${e.spacing.xs} ${e.spacing.md}`,"&:hover":{backgroundColor:"dark"===e.colorScheme?e.colors.dark[6]:e.colors.gray[0]}},icon:{width:21,height:21,borderRadius:21}})));function qr(e){const{classes:a}=_r(),o=p(),[l,c]=n.useState(!1),[i,s]=n.useState(),{search:u,onLoad:m}=e,[d,h]=n.useState({selected:{},fieldEditorVisible:!1,filterEditorVisible:!1,exportDialogVisible:!1,filterDialogVisible:!1}),g=n.useRef(d);function f(t){e.onChange&&e.onChange(new Fr(t))}function E(t,n){ve(t.target)||2!==t.button&&(ye(t),1!==t.button&&e.onClick&&e.onClick(new Ur(n,t)),1===t.button&&e.onAuxClick&&e.onAuxClick(new Ur(n,t)))}g.current=d,n.useEffect((()=>{s(void 0),o.search(u.resourceType,t.formatSearchQuery({...u,total:"accurate",fields:void 0})).then((e=>{h({...g.current,searchResponse:e}),m&&m(new Br(e))})).catch((e=>{h({...g.current,searchResponse:void 0}),s(e)}))}),[o,u,m]),n.useEffect((()=>{c(!1),o.requestSchema(e.search.resourceType).then((()=>c(!0))).catch(console.log)}),[o,e.search.resourceType]);if(!(l&&t.globalSchema?.types?.[e.search.resourceType]))return n.createElement(r.Center,{style:{width:"100%",height:"100%"}},n.createElement(r.Loader,null));const y=e.checkboxesEnabled,v=function(e){const t=e.resourceType,n=[];for(const r of e.fields||["id","_lastUpdated"])n.push(zr(t,r));return n}(u),C=u.resourceType,T=d.searchResponse,k=T?.entry,b=k?.map((e=>e.resource)),S="subtle",x="gray",w=16,I=window.innerWidth<768;return n.createElement("div",{className:a.root,"data-testid":"search-control"},!e.hideToolbar&&n.createElement(r.Group,{position:"apart",mb:"xl"},n.createElement(r.Group,{spacing:2},n.createElement(r.Button,{compact:!0,variant:S,color:x,leftIcon:n.createElement(q,{size:w}),onClick:()=>h({...g.current,fieldEditorVisible:!0})},"Fields"),n.createElement(r.Button,{compact:!0,variant:S,color:x,leftIcon:n.createElement(Y,{size:w}),onClick:()=>h({...g.current,filterEditorVisible:!0})},"Filters"),e.onNew&&n.createElement(r.Button,{compact:!0,variant:S,color:x,leftIcon:n.createElement(J,{size:w}),onClick:e.onNew},"New..."),!I&&!!(e.onExport||e.onExportCsv||e.onExportTransactionBundle)&&n.createElement(r.Button,{compact:!0,variant:S,color:x,leftIcon:n.createElement(de,{size:w}),onClick:e.onExport?e.onExport:()=>h({...g.current,exportDialogVisible:!0})},"Export..."),!I&&e.onDelete&&n.createElement(r.Button,{compact:!0,variant:S,color:x,leftIcon:n.createElement(pe,{size:w}),onClick:()=>e.onDelete(Object.keys(d.selected))},"Delete..."),!I&&e.onBulk&&n.createElement(r.Button,{compact:!0,variant:S,color:x,leftIcon:n.createElement(D,{size:w}),onClick:()=>e.onBulk(Object.keys(d.selected))},"Bulk...")),T&&n.createElement(r.Text,{size:"xs",color:"dimmed"},function(e,t){return Math.min(t,(e.offset??0)+1)}(u,T.total),"-",function(e,n){return Math.min(n,((e.offset??0)+1)*(e.count??t.DEFAULT_SEARCH_COUNT))}(u,T.total)," of"," ",T.total?.toLocaleString())),n.createElement(r.Table,{className:a.table},n.createElement("thead",null,n.createElement("tr",null,y&&n.createElement("th",null,n.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:function(){const e=g.current;if(!e.searchResponse?.entry||0===e.searchResponse.entry.length)return!1;for(const t of e.searchResponse.entry)if(t.resource?.id&&!e.selected[t.resource.id])return!1;return!0}(),onChange:e=>function(e){e.stopPropagation();const t=e.target.checked,n={},r=g.current?.searchResponse;t&&r?.entry&&r.entry.forEach((e=>{e.resource?.id&&(n[e.resource.id]=!0)})),h({...g.current,selected:n})}(e)})),v.map((t=>n.createElement("th",{key:t.name},n.createElement(r.Menu,{shadow:"md",width:240,position:"bottom-end"},n.createElement(r.Menu.Target,null,n.createElement(r.UnstyledButton,{className:a.control},n.createElement(r.Group,{position:"apart",noWrap:!0},n.createElement(r.Text,{weight:500,size:"sm"},vr(t.name)),n.createElement(r.Center,{className:a.icon},n.createElement(M,{size:14,stroke:1.5}))))),n.createElement(Rr,{search:e.search,searchParams:t.searchParams,onPrompt:(e,t)=>{h({...g.current,filterDialogVisible:!0,filterDialogSearchParam:e,filterDialogFilter:t})},onChange:e=>{f(e)}})))))),!e.hideFilters&&n.createElement("tr",null,y&&n.createElement("th",null),v.map((t=>n.createElement("th",{key:t.name},t.searchParams&&n.createElement(jr,{resourceType:C,searchParams:t.searchParams,filters:e.search.filters})))))),n.createElement("tbody",null,b?.map((e=>e&&n.createElement("tr",{key:e.id,className:a.tr,"data-testid":"search-control-row",onClick:t=>E(t,e),onAuxClick:t=>E(t,e)},y&&n.createElement("td",null,n.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${e.id}`,checked:!!d.selected[e.id],onChange:t=>function(e,t){e.stopPropagation();const n=e.target.checked,r={...g.current.selected};n?r[t]=!0:delete r[t],h({...g.current,selected:r})}(t,e.id)})),v.map((t=>n.createElement("td",{key:t.name},Cr(e,t))))))))),0===b?.length&&n.createElement(un,null,n.createElement(r.Center,{style:{height:150}},n.createElement(r.Text,{size:"xl",color:"dimmed"},"No results"))),void 0!==T?.total&&T.total>0&&n.createElement(r.Center,{m:"md",p:"md"},n.createElement(r.Pagination,{value:Wr(u),total:Qr(u,T.total),onChange:e=>f(pr(u,e)),getControlProps:e=>{switch(e){case"previous":return{"aria-label":"Previous page"};case"next":return{"aria-label":"Next page"};default:return{}}}})),i&&n.createElement("div",{"data-testid":"search-error"},n.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(i,void 0,2))),n.createElement(Tr,{search:e.search,visible:g.current.fieldEditorVisible,onOk:e=>{f(e),h({...g.current,fieldEditorVisible:!1})},onCancel:()=>{h({...g.current,fieldEditorVisible:!1})}}),n.createElement(xr,{search:e.search,visible:g.current.filterEditorVisible,onOk:e=>{f(e),h({...g.current,filterEditorVisible:!1})},onCancel:()=>{h({...g.current,filterEditorVisible:!1})}}),n.createElement(Lr,{visible:g.current.exportDialogVisible,exportCsv:e.onExportCsv,exportTransactionBundle:e.onExportTransactionBundle,onCancel:()=>{h({...g.current,exportDialogVisible:!1})}}),n.createElement(Mr,{key:d.filterDialogSearchParam?.code,visible:g.current.filterDialogVisible,title:"Input",resourceType:C,searchParam:d.filterDialogSearchParam,filter:d.filterDialogFilter,defaultValue:"",onOk:t=>{f(Xn(e.search,t.code,t.operator,t.value)),h({...g.current,filterDialogVisible:!1})},onCancel:()=>{h({...g.current,filterDialogVisible:!1})}}))}const Gr=n.memo(qr);function jr(e){const t=(e.filters??[]).filter((t=>e.searchParams.find((e=>e.code===t.code))));return 0===t.length?n.createElement("span",null,"no filters"):n.createElement(n.Fragment,null,t.map(((r,a)=>n.createElement("div",{key:`filter-${a}-${t.length}`},yr(r.operator)," ",n.createElement(kr,{resourceType:e.resourceType,filter:r})))))}function Wr(e){return Math.floor((e.offset||0)/(e.count||t.DEFAULT_SEARCH_COUNT))+1}function Qr(e,n){const r=e.count||t.DEFAULT_SEARCH_COUNT;return Math.ceil(n/r)}function Hr(e){const a=p(),[o,l]=n.useState(),[c,i]=n.useState(),{query:s,fields:u}=e,[m,d]=n.useState(),[h,g]=n.useState({}),f=n.useRef();f.current=m;const E=n.useRef({});function y(t,n){ve(t.target)||(ye(t),1!==t.button&&e.onClick&&e.onClick(new Ur(n,t)),1===t.button&&e.onAuxClick&&e.onAuxClick(new Ur(n,t)))}E.current=h,n.useEffect((()=>{i(void 0),a.graphql(s).then(d).catch((e=>i(t.normalizeOperationOutcome(e))))}),[a,s]),n.useEffect((()=>{a.requestSchema(e.resourceType).then((e=>{l({...e})})).catch(console.log)}),[a,e.resourceType]);const v=o?.types?.[e.resourceType];if(!v)return n.createElement(r.Loader,null);const C=e.checkboxesEnabled;return n.createElement("div",{onContextMenu:e=>ye(e),"data-testid":"search-control"},n.createElement(r.Table,null,n.createElement("thead",null,n.createElement("tr",null,C&&n.createElement("th",null,n.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:function(){const e=f.current?.data?.ResourceList;if(!e||0===e.length)return!1;for(const t of e)if(t?.id&&!E.current[t.id])return!1;return!0}(),onChange:e=>function(e){e.stopPropagation();const t=e.target.checked,n={},r=f.current?.data?.ResourceList;t&&r&&r.forEach((e=>{e?.id&&(n[e.id]=!0)})),g(n)}(e)})),u.map((e=>n.createElement("th",{key:e.name},e.name))))),n.createElement("tbody",null,m?.data?.ResourceList?.map((e=>e&&n.createElement("tr",{key:e.id,"data-testid":"search-control-row",onClick:t=>y(t,e),onAuxClick:t=>y(t,e)},C&&n.createElement("td",null,n.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${e.id}`,checked:!!h[e.id],onChange:t=>function(e,t){e.stopPropagation();const n=e.target.checked,r={...E.current};n?r[t]=!0:delete r[t],g(r)}(t,e.id)})),u.map((t=>n.createElement("td",{key:t.name},n.createElement(Qn,{propertyType:t.propertyType,path:t.fhirPath,resource:e}))))))))),0===m?.data?.ResourceList?.length&&n.createElement("div",{"data-testid":"empty-search"},"No results"),c&&n.createElement("div",{"data-testid":"search-error"},n.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(c,void 0,2))),e.onBulk&&n.createElement(r.Button,{onClick:()=>e.onBulk(Object.keys(E.current))},"Bulk..."))}const Kr=n.memo(Hr);function Jr(e){return n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 491 491",style:{width:e.size,height:e.size}},n.createElement("title",null,"Medplum Logo"),n.createElement("path",{fill:e.fill||"#ad7136",d:"M282 67c6-16 16-29 29-40L289 0c-22 17-37 41-43 68l17 23 19-24z"}),n.createElement("path",{fill:e.fill||"#946af9",d:"M311 63c-17 0-33 4-48 11-16-7-32-11-49-11-87 0-158 96-158 214s71 214 158 214c17 0 33-4 49-11 15 7 31 11 48 11 87 0 158-96 158-214S398 63 311 63z"}),n.createElement("path",{fill:e.fill||"#7857c5",d:"M231 489l-17 2c-87 0-158-96-158-214S127 63 214 63l17 1c-39 12-70 102-70 213s31 201 70 212z"}),n.createElement("path",{fill:e.fill||"#40bc26",d:"M207 220a176 176 0 01-177 43A176 176 0 01251 43l1 5c17 59 2 125-45 172z"}),n.createElement("path",{fill:e.fill||"#33961e",d:"M252 48A421 421 0 0057 270l-27-7A176 176 0 01251 43l1 5z"}))}function Yr(e){const t=e.outcome?.issue||e.issues;return t?n.createElement(r.Alert,{icon:n.createElement(R,{size:16}),color:"red"},t.map((e=>n.createElement("div",{"data-testid":"text-field-error",key:e.details?.text},e.details?.text)))):null}const Xr=r.createStyles((e=>({section:{position:"relative",margin:"4px 4px 8px 0",padding:"6px 12px 16px 6px",border:`1.5px solid ${e.colors.gray[1]}`,borderRadius:e.radius.sm,transition:"all 0.1s"},hovering:{border:`1.5px solid ${e.colors.blue[5]}`},editing:{border:`1.5px solid ${e.colors.gray[1]}`,borderLeft:`4px solid ${e.colors.blue[5]}`},bottomActions:{position:"absolute",right:4,bottom:0,fontSize:e.fontSizes.xs,"& a":{marginLeft:8}}})));function Zr(e){const{classes:t}=Xr(),a=n.useRef();function o(t){e.onChange(a.current.map((e=>e.id===t.id?t:e)))}return a.current=e.actions,n.createElement("div",{className:t.section},e.actions.map((t=>n.createElement("div",{key:t.id},n.createElement(ea,{action:t,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:o,onRemove:()=>{return n=t,void e.onChange(a.current.filter((e=>e!==n)));var n}})))),n.createElement("div",{className:t.bottomActions},n.createElement(r.Anchor,{href:"#",onClick:t=>{var n;ye(t),n={id:ia()},e.onChange([...a.current,n]),e.setSelectedKey(n.id)}},"Add action")))}function ea(e){const{classes:t,cx:a}=Xr(),{action:o}=e,l=function(e){if(e.definitionCanonical?.startsWith("Schedule"))return"appointment";if(e.definitionCanonical?.startsWith("Questionnaire/"))return"questionnaire";if(e.definitionCanonical?.startsWith("ActivityDefinition/"))return"task";return}(o),c=e.selectedKey===e.action.id,i=e.hoverKey===e.action.id;const s=a(t.section,{[t.editing]:c,[t.hovering]:i&&!c});return n.createElement("div",{"data-testid":o.id,className:s,onClick:function(t){t.stopPropagation(),e.setSelectedKey(e.action.id)},onMouseOver:function(t){ye(t),e.setHoverKey(e.action.id)}},c?n.createElement(ra,{action:o,actionType:l,onChange:e.onChange,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onRemove:e.onRemove}):n.createElement(na,{action:o,actionType:l}),n.createElement("div",{className:t.bottomActions},n.createElement(r.Anchor,{href:"#",onClick:t=>{t.preventDefault(),e.onRemove()}},"Remove")))}const ta={path:"PlanDefinition.action.timing[x]",min:0,max:"1",type:[{code:"dateTime"},{code:"Period"},{code:"Range"},{code:"Timing"}]};function na(e){const{action:t,actionType:r}=e,[a,o]=la(t);return n.createElement("div",null,n.createElement("div",null,t.title||"Untitled"," ",r&&`(${r})`),t.definitionCanonical&&n.createElement("div",null,n.createElement(gt,{value:{reference:t.definitionCanonical}})),a&&n.createElement("div",null,n.createElement(Et,{property:ta,propertyType:o,value:a})))}function ra(e){const{action:t}=e,[a,o]=n.useState(e.actionType);function l(n,r){e.onChange({...t,[n]:r})}return n.createElement(r.Stack,{spacing:"xl"},n.createElement(r.TextInput,{name:`actionTitle-${t.id}`,label:"Title",defaultValue:t.title,onChange:e=>l("title",e.currentTarget.value)}),n.createElement(r.TextInput,{name:`actionDescription-${t.id}`,label:"Description",defaultValue:t.description,onChange:e=>l("description",e.currentTarget.value)}),n.createElement(r.NativeSelect,{label:"Type of Action",description:"The type of the action to be performed.",name:`actionType-${t.id}`,defaultValue:a,onChange:e=>o(e.currentTarget.value),data:["","appointment","lab","questionnaire","task"]}),t.action&&t.action.length>0&&n.createElement(Zr,{actions:t.action,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:e=>l("action",e)}),(()=>{switch(a){case"appointment":return n.createElement(aa,{title:"Appointment",description:"The subject must schedule an appointment from the schedule.",resourceType:"Schedule",action:t,onChange:e.onChange});case"lab":return n.createElement(aa,{title:"Lab",description:"The subject must complete the following lab panel.",resourceType:"ActivityDefinition",action:t,onChange:e.onChange});case"questionnaire":return n.createElement(aa,{title:"Questionnaire",description:"The subject must complete the selected questionnaire.",resourceType:"Questionnaire",action:t,onChange:e.onChange});case"task":return n.createElement(aa,{title:"Task",description:"The subject must complete the following task.",resourceType:"ActivityDefinition",action:t,onChange:e.onChange});default:return null}})(),n.createElement(St,{title:"Timing",description:"When the action should take place."},n.createElement(oa,{name:"timing-"+t.id,action:t,onChange:e.onChange})))}function aa(e){const{id:r,definitionCanonical:a}=e.action,o=a?.startsWith(e.resourceType+"/")?{reference:a}:void 0;return n.createElement(Gt,{name:r,resourceType:e.resourceType,defaultValue:o,loadOnFocus:!0,onChange:n=>{n?e.onChange({...e.action,definitionCanonical:t.getReferenceString(n)}):e.onChange({...e.action,definitionCanonical:void 0})}})}function oa(e){const t=e.action,r="timing",[a,o]=la(t);return n.createElement(Xt,{property:ta,name:"timing[x]",defaultValue:a,defaultPropertyType:o,onChange:(n,a)=>{e.onChange(xt(t,r,a??r,ta,n))}})}function la(e){return yt({type:"PlanDefinitionAction",value:e},"timing")}let ca=1;function ia(e){if(e){if(e.startsWith("id-")){const t=parseInt(e.substring(3));isNaN(t)||(ca=Math.max(ca,t+1))}return e}return"id-"+ca++}function sa(e){if(e)return e.map((e=>({...e,id:ia(e.id),action:sa(e.action)})))}var ua;function ma(e){return"choice"===e.type||"open-choice"===e.type}function da(e){const a=p(),o=a.getProfile(),[l,c]=n.useState(),i=ke(e.questionnaire),[s,u]=n.useState(),[m,d]=n.useState({});return n.useEffect((()=>{a.requestSchema("Questionnaire").then((()=>a.requestSchema("QuestionnaireResponse"))).then(c).catch(console.log)}),[a]),n.useEffect((()=>{u(i?function(e){const n={resourceType:"QuestionnaireResponse",questionnaire:t.getReferenceString(e),item:ya(e.item)};return n}(i):void 0)}),[i]),l&&i?n.createElement($e,{testid:"questionnaire-form",onSubmit:()=>{e.onSubmit&&s&&e.onSubmit({...s,questionnaire:t.getReferenceString(i),subject:e.subject,source:t.createReference(o),authored:(new Date).toISOString(),status:"completed"})}},i.title&&n.createElement(r.Title,null,i.title),i.item&&n.createElement(pa,{items:i.item,answers:m,onChange:function(e){const n={resourceType:"QuestionnaireResponse",item:e};u(n),d(t.getQuestionnaireAnswers(n))}}),n.createElement(r.Group,{position:"right",mt:"xl"},n.createElement(r.Button,{type:"submit"},e.submitButtonText||"OK"))):null}function pa(t){const[a,o]=n.useState(ya(t.items));function l(e,n){const r=a.slice();r[e]=n,o(r),t.onChange(r)}return n.createElement(r.Stack,null,t.items.map(((a,o)=>{if(!Ta(a,t.answers))return null;if(a.type===e.QuestionnaireItemType.display)return n.createElement("p",{key:a.linkId},a.text);if(a.type===e.QuestionnaireItemType.group)return n.createElement(ha,{key:a.linkId,item:a,answers:t.answers,onChange:e=>l(o,e)});if(a.type===e.QuestionnaireItemType.boolean){const e=a.initial&&a.initial.length>0?a.initial[0]:void 0;return n.createElement(Ct,{key:a.linkId,title:a.text,htmlFor:a.linkId},n.createElement(r.Checkbox,{id:a.linkId,name:a.linkId,defaultChecked:e?.valueBoolean,onChange:e=>l(o,{linkId:a.linkId,text:a.text,answer:[{valueBoolean:e.currentTarget.checked}]})}))}return n.createElement(St,{key:a.linkId,htmlFor:a.linkId,title:a.text||""},n.createElement(ha,{item:a,answers:t.answers,onChange:e=>l(o,e)}))})))}function ha(t){const a=t.item,o=a.type;if(!o)return null;const l=a.linkId;if(!l)return null;const c=a.initial&&a.initial.length>0?a.initial[0]:void 0;function i(e){t.onChange({linkId:a.linkId,text:a.text,answer:[e]})}switch(o){case e.QuestionnaireItemType.group:return n.createElement("div",null,n.createElement("h3",null,a.text),a.item&&n.createElement(pa,{items:a.item,answers:t.answers,onChange:function(e){t.onChange({linkId:a.linkId,text:a.text,item:e})}}));case e.QuestionnaireItemType.boolean:return n.createElement(r.Checkbox,{id:l,name:l,defaultChecked:c?.valueBoolean,onChange:e=>i({valueBoolean:e.currentTarget.checked})});case e.QuestionnaireItemType.decimal:return n.createElement(r.TextInput,{type:"number",step:"any",id:l,name:l,defaultValue:c?.valueDecimal,onChange:e=>i({valueDecimal:e.currentTarget.valueAsNumber})});case e.QuestionnaireItemType.integer:return n.createElement(r.TextInput,{type:"number",step:1,id:l,name:l,defaultValue:c?.valueInteger,onChange:e=>i({valueInteger:e.currentTarget.valueAsNumber})});case e.QuestionnaireItemType.date:return n.createElement(r.TextInput,{type:"date",id:l,name:l,defaultValue:c?.valueDate,onChange:e=>i({valueDate:e.currentTarget.value})});case e.QuestionnaireItemType.dateTime:return n.createElement(At,{name:l,defaultValue:c?.valueDateTime,onChange:e=>i({valueDateTime:e})});case e.QuestionnaireItemType.time:return n.createElement(r.TextInput,{type:"time",id:l,name:l,defaultValue:c?.valueTime,onChange:e=>i({valueTime:e.currentTarget.value})});case e.QuestionnaireItemType.string:case e.QuestionnaireItemType.url:return n.createElement(r.TextInput,{id:l,name:l,defaultValue:c?.valueString,onChange:e=>i({valueString:e.currentTarget.value})});case e.QuestionnaireItemType.text:return n.createElement(r.Textarea,{id:l,name:l,defaultValue:c?.valueString,onChange:e=>i({valueString:e.currentTarget.value})});case e.QuestionnaireItemType.attachment:return n.createElement(tt,{name:l,defaultValue:c?.valueAttachment,onChange:e=>i({valueAttachment:e})});case e.QuestionnaireItemType.reference:return n.createElement(Wt,{name:l,defaultValue:c?.valueReference,onChange:e=>i({valueReference:e})});case e.QuestionnaireItemType.quantity:return n.createElement(Ft,{name:l,defaultValue:c?.valueQuantity,onChange:e=>i({valueQuantity:e}),disableWheel:!0});case e.QuestionnaireItemType.choice:case e.QuestionnaireItemType.openChoice:return function(e){return!!e.extension?.some((e=>"http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"===e.url&&"drop-down"===e.valueCodeableConcept?.coding?.[0]?.code))}(a)?n.createElement(ga,{name:l,item:a,initial:c,onChangeAnswer:i}):n.createElement(Ea,{name:l,item:a,initial:c,onChangeAnswer:i})}return null}function ga(e){const{name:a,item:o,initial:l}=e,c=t.getTypedPropertyValue({type:"QuestionnaireItemInitial",value:l},"value"),i=[""];if(o.answerOption)for(const e of o.answerOption){const n=t.getTypedPropertyValue({type:"QuestionnaireItemAnswerOption",value:e},"value");i.push(fa(n))}return n.createElement(r.NativeSelect,{id:a,name:a,onChange:n=>{const r=n.currentTarget.selectedIndex;if(0===r)return void e.onChangeAnswer({});const a=o.answerOption[r-1],l=t.getTypedPropertyValue({type:"QuestionnaireItemAnswerOption",value:a},"value"),c="value"+t.capitalize(l.type);e.onChangeAnswer({[c]:l.value})},defaultValue:fa(c),data:i})}function fa(e){if(e)return"CodeableConcept"===e.type?e.value.coding[0].display:"Coding"===e.type?e.value.display:e.value.toString()}function Ea(e){const{name:a,item:o,initial:l,onChangeAnswer:c}=e,i=t.globalSchema.types.QuestionnaireItemAnswerOption.properties["value[x]"],s=t.getTypedPropertyValue({type:"QuestionnaireItemInitial",value:l},"value"),u=[];let m;if(o.answerOption)for(let e=0;e<o.answerOption.length;e++){const n=o.answerOption[e],r=`${a}-option-${e}`,l=t.getTypedPropertyValue({type:"QuestionnaireItemAnswerOption",value:n},"value");s&&t.stringify(l)===t.stringify(s)&&(m=r),u.push([r,l])}return n.createElement(r.Radio.Group,{name:a,defaultValue:m,onChange:e=>{const n=u.find((t=>t[0]===e));if(n){const e=n[1],r="value"+t.capitalize(e.type);c({[r]:e.value})}}},u.map((([e,t])=>n.createElement(r.Radio,{key:e,id:e,value:e,label:n.createElement(Et,{property:i,propertyType:t.type,value:t.value})}))))}function ya(e){return e?.map(va)??[]}function va(e){return{linkId:e.linkId,text:e.text,item:ya(e.item),answer:e.initial?.map(Ca)??[]}}function Ca(e){return{...e}}function Ta(e,n){if(!e.enableWhen)return!0;const r=e.enableBehavior||"any";for(const a of e.enableWhen){const e=t.getTypedPropertyValue({type:"QuestionnaireItemEnableWhen",value:a},"answer[x]"),o=t.getTypedPropertyValue({type:"QuestionnaireResponseItemAnswer",value:n[a.question]},"value[x]"),l=t.deepEquals(e,o);if("any"===r&&l)return!0;if("all"===r&&!l)return!1}return"any"!==r}e.QuestionnaireItemType=void 0,(ua=e.QuestionnaireItemType||(e.QuestionnaireItemType={})).group="group",ua.display="display",ua.question="question",ua.boolean="boolean",ua.decimal="decimal",ua.integer="integer",ua.date="date",ua.dateTime="dateTime",ua.time="time",ua.string="string",ua.text="text",ua.url="url",ua.choice="choice",ua.openChoice="open-choice",ua.attachment="attachment",ua.reference="reference",ua.quantity="quantity";const ka=r.createStyles((e=>({section:{position:"relative",margin:"4px 4px 8px 0",padding:"6px 12px 16px 6px",border:`1.5px solid ${e.colors.gray[1]}`,borderRadius:e.radius.sm,transition:"all 0.1s"},hovering:{border:`1.5px solid ${e.colors.blue[5]}`},editing:{border:`1.5px solid ${e.colors.gray[1]}`,borderLeft:`4px solid ${e.colors.blue[5]}`},questionBody:{maxWidth:600},topActions:{position:"absolute",right:4,top:1,padding:4,color:e.colors.gray[5],fontSize:e.fontSizes.xs},bottomActions:{position:"absolute",right:4,bottom:0,fontSize:e.fontSizes.xs,"& a":{marginLeft:8}},linkIdInput:{width:100,marginBottom:4},typeSelect:{width:100}})));function ba(a){const{classes:o,cx:l}=ka(),c=a.item,i=a.item,s=t.isResource(a.item),u=s||i.type===e.QuestionnaireItemType.group,m=i.linkId??"[untitled]",d=a.selectedKey===a.item.id,p=a.hoverKey===a.item.id,h=n.useRef();function g(e){const t=h.current;a.onChange({...t,item:t.item?.map((t=>t.id===e.id?e:t))})}function f(e){a.onChange({...a.item,item:[...a.item?.item??[],e]})}function E(e,t){a.onChange({...h.current,[e]:t})}h.current=a.item;const y=l(o.section,{[o.editing]:d,[o.hovering]:p&&!d});return n.createElement("div",{"data-testid":i.linkId,className:y,onClick:function(e){ye(e),a.setSelectedKey(a.item.id)},onMouseOver:function(e){ye(e),a.setHoverKey(a.item.id)}},n.createElement("div",{className:o.questionBody},d?n.createElement(n.Fragment,null,s&&n.createElement(r.TextInput,{size:"xl",defaultValue:c.title,onChange:e=>E("title",e.currentTarget.value)}),!s&&n.createElement(r.Textarea,{autosize:!0,minRows:2,defaultValue:i.text,onChange:e=>E("text",e.currentTarget.value)}),ma(i)&&n.createElement(Sa,{options:i.answerOption,onChange:e=>E("answerOption",e)})):n.createElement(n.Fragment,null,c.title&&n.createElement(r.Title,null,c.title),i.text&&n.createElement("div",null,i.text),!u&&n.createElement(ha,{item:i,answers:{},onChange:()=>{}}))),i.item&&i.item.map((e=>n.createElement("div",{key:e.id},n.createElement(ba,{item:e,selectedKey:a.selectedKey,setSelectedKey:a.setSelectedKey,hoverKey:a.hoverKey,setHoverKey:a.setHoverKey,onChange:g,onRemove:()=>{return t=e,void a.onChange({...a.item,item:a.item?.item?.filter((e=>e!==t))});var t}})))),!u&&n.createElement("div",{className:o.topActions},d?n.createElement(n.Fragment,null,n.createElement(r.TextInput,{size:"xs",className:o.linkIdInput,defaultValue:i.linkId,onChange:e=>E("linkId",e.currentTarget.value)}),!u&&n.createElement(r.NativeSelect,{size:"xs",className:o.typeSelect,defaultValue:i.type,onChange:e=>E("type",e.currentTarget.value),data:[{value:"display",label:"Display"},{value:"boolean",label:"Boolean"},{value:"decimal",label:"Decimal"},{value:"integer",label:"Integer"},{value:"date",label:"Date"},{value:"dateTime",label:"Date/Time"},{value:"time",label:"Time"},{value:"string",label:"String"},{value:"text",label:"Text"},{value:"url",label:"URL"},{value:"choice",label:"Choice"},{value:"open-choice",label:"Open Choice"},{value:"attachment",label:"Attachment"},{value:"reference",label:"Reference"},{value:"quantity",label:"Quantity"}]})):n.createElement("div",null,m)),n.createElement("div",{className:o.bottomActions},u&&n.createElement(n.Fragment,null,n.createElement(r.Anchor,{href:"#",onClick:e=>{e.preventDefault(),f({id:Ma(),linkId:Ia("q"),type:"string",text:"Question"})}},"Add item"),n.createElement(r.Anchor,{href:"#",onClick:e=>{e.preventDefault(),f({id:Ma(),linkId:Ia("g"),type:"group",text:"Group"})}},"Add group")),d&&!s&&n.createElement(r.Anchor,{href:"#",onClick:e=>{e.preventDefault(),a.onRemove&&a.onRemove()}},"Remove")))}function Sa(e){const a=t.globalSchema.types.QuestionnaireItemAnswerOption.properties["value[x]"],o=e.options??[];return n.createElement("div",null,o.map((t=>{const[l,c]=yt({type:"QuestionnaireItemAnswerOption",value:t},"value");return n.createElement("div",{key:t.id,style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",width:"80%"}},n.createElement("div",null,n.createElement(Xt,{key:t.id,name:"value[x]",property:a,defaultPropertyType:c,defaultValue:l,onChange:(n,r)=>{const a=[...o],l=a.findIndex((e=>e.id===t.id));a[l]={id:t.id,[r]:n},e.onChange(a)}})),n.createElement("div",null,n.createElement(r.Anchor,{href:"#",onClick:n=>{ye(n),e.onChange(o.filter((e=>e.id!==t.id)))}},"Remove")))})),n.createElement(r.Anchor,{href:"#",onClick:t=>{ye(t),e.onChange([...o,{id:Ma()}])}},"Add choice"))}let xa=1,wa=1;function Ia(e){return e+xa++}function Ma(){return"id-"+wa++}function Ra(e){if(e)return e.forEach((e=>{e.id?.match(/^id-\d+$/)&&(wa=Math.max(wa,parseInt(e.id.substring(3))+1)),e.linkId?.match(/^q\d+$/)&&(xa=Math.max(xa,parseInt(e.linkId.substring(1))+1))})),e.map((e=>({...e,id:e.id||Ma(),item:Ra(e.item),answerOption:Aa(e.answerOption)})))}function Aa(e){if(e)return e.map((e=>({...e,id:e.id||Ma()})))}const Pa=r.createStyles((e=>({section:{position:"relative",margin:"4px 4px 8px 0",padding:"6px 12px 16px 6px",border:`1.5px solid ${e.colors.gray[3]}`,borderRadius:e.radius.sm,transition:"all 0.1s"}}))),Da=["gender","age","gestationalAge","context","appliesTo"],Oa={definition:{resourceType:"ObservationDefinition"},onSubmit:()=>{}};function Va(e){const{intervalGroup:t,unit:a}=e,{classes:o}=Pa();return n.createElement(un,{"data-testid":t.id,className:o.section},n.createElement(r.Stack,{spacing:"lg"},n.createElement(r.Group,{position:"right"},n.createElement(r.ActionIcon,{title:"Remove Group","data-testid":`remove-group-button-${t.id}`,key:`remove-group-button-${t.id}`,size:"sm",onClick:n=>{ye(n),e.onRemoveGroup(t)}},n.createElement(B,null))),n.createElement(Na,{intervalGroup:t,onChange:e.onChange}),n.createElement(r.Divider,null),t.intervals.map((a=>n.createElement(r.Stack,{key:`interval-${a.id}`,spacing:"xs"},n.createElement(r.Group,null,n.createElement(r.TextInput,{key:`condition-${a.id}`,"data-testid":`condition-${a.id}`,defaultValue:a.condition,label:"Condition: ",size:"sm",onChange:n=>{ye(n),e.onChange(t.id,{...a,condition:n.currentTarget.value.trim()})}}),n.createElement(r.ActionIcon,{title:"Remove Interval",size:"sm",key:`remove-interval-${a.id}`,"data-testid":`remove-interval-${a.id}`,onClick:n=>{ye(n),e.onRemove(t.id,a)}},n.createElement(B,null))),n.createElement(Ut,{onChange:n=>{e.onChange(t.id,{...a,range:n})},key:`range-${a.id}`,name:`range-${a.id}`,defaultValue:a.range})))),n.createElement(r.ActionIcon,{title:"Add Interval",size:"sm",onClick:n=>{ye(n),e.onAdd(t.id,{range:{low:{unit:a},high:{unit:a}}})}},n.createElement(U,null))))}function Na(e){const{intervalGroup:t,onChange:a}=e;t.filters.age||(t.filters.age={});for(const e of["low","high"])t.filters.age[e]?.unit||(t.filters.age[e]={...t.filters.age[e],unit:"years",system:"http://unitsofmeasure.org"});return n.createElement(r.Stack,{style:{maxWidth:"50%"}},n.createElement(r.Group,null,n.createElement(r.NativeSelect,{data:["","male","female"],label:"Gender:",defaultValue:t.filters.gender||"",onChange:e=>{for(const n of t.intervals){let r=e.currentTarget?.value;""===r&&(r=void 0),a(t.id,{...n,gender:r})}}})),n.createElement(r.Group,{spacing:"xs"},n.createElement(r.Text,{component:"label",htmlFor:`div-age-${t.id}`},"Age:"),n.createElement("div",{id:`div-age-${t.id}`},n.createElement(Ut,{key:`age-${t.id}`,name:`age-${t.id}`,defaultValue:t.filters.age,onChange:e=>{for(const n of t.intervals)a(t.id,{...n,age:e})}}))),n.createElement(r.NativeSelect,{data:["","pre-puberty","follicular","midcycle","luteal","postmenopausal"],label:"Endocrine:",defaultValue:t.filters.context?.text||"",onChange:e=>{for(const n of t.intervals){let r=e.currentTarget?.value;""===r?(r=void 0,a(t.id,{...n,context:void 0})):a(t.id,{...n,context:{text:r,coding:[{code:r,system:"http://terminology.hl7.org/CodeSystem/referencerange-meaning"}]}})}}}))}function za(e){return[`gender=${e.gender}`,`age=${t.formatRange(e.age)}`,`gestationalAge=${t.formatRange(e.gestationalAge)}`,`context=${e.context?.text}`,`appliesTo=${e.appliesTo?.map((e=>e.text)).join("+")}`].join(":")}function La(e,t){return function(e,t,n){const r=[];let a=e;a.snake&&(a=a.prev);for(;a&&a.prev&&a.prev.j>=0;){const e=a.i,o=a.j;a=a.prev;const l=a.i,c=a.j,i={position:l,lines:t.slice(l,e)},s={position:c,lines:n.slice(c,o)};let u;u=0===i.lines.length&&s.lines.length>0?"insert":i.lines.length>0&&0===s.lines.length?"delete":"change",r.push({original:i,revised:s,type:u}),a.snake&&(a=a.prev)}return r}(function(e,t){const n=e.length,r=t.length,a=n+r+1,o=1+2*a,l=o/2|0,c=new Array(o);c[l+1]={i:0,j:-1,prev:void 0,snake:!0};for(let o=0;o<a;o++){for(let a=-o;a<=o;a+=2){const i=l+a,s=i-1,u=c[i+1],m=c[s];let d,p=0;a===-o||a!==o&&m.i<u.i?(p=u.i,d=u):(p=m.i+1,d=m),c[s]=void 0;let h=p-a,g={i:p,j:h,prev:$a(d),snake:!1};for(;p<n&&h<r&&e[p]===t[h];)p++,h++;if(p>g.i&&(g={i:p,j:h,prev:g,snake:!0}),c[i]=g,p>=n&&h>=r)return c[i]}c[l+o-1]=void 0}return}(e,t),e,t)}function $a(e){return e&&!e.snake&&e.prev?e.prev:e}function Fa(e){const n=e.entry.filter((e=>!!e.resource)).map((e=>({meta:e.resource?.meta,lines:t.stringify(e.resource,!0).match(/[^\r\n]+/g)}))).sort(((e,t)=>e.meta.lastUpdated.localeCompare(t.meta.lastUpdated))),r=n[0].lines.map((e=>({id:n[0].meta.versionId,meta:n[0].meta,value:e,span:1})));return function(e,t){for(let n=1;n<t.length;n++){const r=La(t[n-1].lines,t[n].lines);for(const a of r){const r=a.original.position,o=a.original.lines,l=a.revised.lines;if("delete"!==a.type&&"change"!==a.type||e.splice(r,o.length),"insert"===a.type||"change"===a.type)for(let o=0;o<a.revised.lines.length;o++)e.splice(r+o,0,{id:t[n].meta.versionId,meta:t[n].meta,value:l[o],span:1})}}}(r,n),function(e){let t=0;for(;t<e.length;){let n=t;for(;n<e.length&&e[n].id===e[t].id;)e[n].span=-1,n++;e[t].span=n-t,t=n}}(r),r}const Ba=r.createStyles((e=>({container:{overflowX:"auto"},root:{border:`0.1px solid ${e.colors.gray[3]}`,borderCollapse:"collapse",borderRadius:e.radius.sm,borderSpacing:0,fontSize:e.fontSizes.xs,width:"100%","& td":{padding:"2px 4px 0 4px",verticalAlign:"top",whiteSpace:"nowrap"}},startRow:{borderTop:`0.1px solid ${e.colors.gray[3]}`},normalRow:{borderTop:0},author:{lineHeight:"10px"},dateTime:{borderRight:`0.1px solid ${e.colors.gray[3]}`,lineHeight:"20px"},lineNumber:{backgroundColor:e.colors.gray[1],border:0,color:e.colors.gray[5],fontFamily:e.fontFamilyMonospace,padding:`${e.spacing.xs} ${e.spacing.sm}`,textAlign:"right"},line:{fontFamily:e.fontFamilyMonospace,fontSize:e.fontSizes.sm,padding:`${e.spacing.xs} ${e.spacing.sm}`},pre:{margin:0}})));function Ua(e,t){return`/${e.resourceType}/${e.id}/_history/${t}`}function _a(e){const t=Math.floor((Date.now()-Date.parse(e))/1e3),n=Math.floor(t/31536e3);if(n>0)return qa(n,"year");const r=Math.floor(t/2592e3);if(r>0)return qa(r,"month");const a=Math.floor(t/86400);if(a>0)return qa(a,"day");const o=Math.floor(t/3600);if(o>0)return qa(o,"hour");const l=Math.floor(t/60);return l>0?qa(l,"minute"):qa(t,"second")}function qa(e,t){return`${e} ${1===e?t:t+"s"} ago`}const Ga=r.createStyles((e=>({removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}})));function ja(e){const{classes:t}=Ga();return n.createElement(n.Fragment,null,"...",n.createElement("br",null),e.delta.original.lines.length>0&&n.createElement("div",{className:t.removed},e.delta.original.lines.join("\n")),e.delta.revised.lines.length>0&&n.createElement("div",{className:t.added},e.delta.revised.lines.join("\n")),"...",n.createElement("br",null))}function Wa(e){const{response:r,resource:a}=e.entry;return a?n.createElement("tr",null,n.createElement("td",null,n.createElement(hn,{value:a.meta?.author,link:!0})),n.createElement("td",null,t.formatDateTime(a.meta?.lastUpdated)),n.createElement("td",null,n.createElement(Te,{to:Qa(a)},a.meta?.versionId))):n.createElement("tr",null,n.createElement("td",{colSpan:3},t.normalizeErrorString(r?.outcome)))}function Qa(e){return`/${e.resourceType}/${e.id}/_history/${e.meta?.versionId}`}const Ha=r.createStyles((e=>({container:{display:"flex",minHeight:400},info:{minWidth:300,padding:20,borderRight:`1px solid ${e.colors.gray[3]}`},selection:{minWidth:300,padding:20}})));function Ka(e){return Ya(e.getTime())}function Ja(e){return Ya(e.getTime()+26784e5)}function Ya(e){return new Date(Math.max(Date.now(),e)).toISOString()}function Xa(e){return e.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}function Za(e){const t=p(),[a,o]=n.useState();return n.createElement($e,{style:{maxWidth:400},onSubmit:async n=>{try{e.handleAuthResponse(await t.startNewProject({login:e.login,projectName:n.projectName}))}catch(e){o(e)}}},n.createElement(r.Center,{sx:{flexDirection:"column"}},n.createElement(Jr,{size:32}),n.createElement(r.Title,null,"Create project")),n.createElement(r.Stack,{spacing:"xl"},n.createElement(r.TextInput,{name:"projectName",label:"Project Name",placeholder:"My Project",required:!0,autoFocus:!0,error:Tt(a,"firstName")}),n.createElement(r.Text,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",n.createElement(r.Anchor,{href:"https://www.medplum.com/privacy"},"Privacy Policy")," and ",n.createElement(r.Anchor,{href:"https://www.medplum.com/terms"},"Terms of Service"),".")),n.createElement(r.Group,{position:"right",mt:"xl",noWrap:!0},n.createElement(r.Button,{type:"submit"},"Create project")))}function eo(e,t){const n=document.getElementsByTagName("head")[0],r=document.createElement("script");r.async=!0,r.src=e,r.onload=t||null,n.appendChild(r)}function to(e){const t=p(),{googleClientId:r,handleGoogleCredential:a}=e,o=n.useRef(null),[l,c]=n.useState("undefined"!=typeof google),[i,s]=n.useState(!1),[u,m]=n.useState(!1);return n.useEffect((()=>{"undefined"!=typeof google?(i||(google.accounts.id.initialize({client_id:r,callback:a}),s(!0)),o.current&&!u&&(google.accounts.id.renderButton(o.current,{}),m(!0))):eo("https://accounts.google.com/gsi/client",(()=>c(!0)))}),[t,r,i,l,o,u,a]),r?n.createElement("div",{ref:o}):null}function no(e){if(e)return e;if("undefined"!=typeof window){const e=window.location.protocol+"//"+window.location.host;if(("undefined"?.split(",")??[]).includes(e))return"undefined"}}function ro(e){"undefined"==typeof grecaptcha&&eo("https://www.google.com/recaptcha/api.js?render="+e)}function ao(e){return new Promise(((t,n)=>{grecaptcha.ready((async()=>{try{t(await grecaptcha.execute(e,{action:"submit"}))}catch(e){n(e)}}))}))}function oo(e){const t=no(e.googleClientId),a=e.recaptchaSiteKey,o=p(),[l,c]=n.useState(),i=kt(l,void 0);return n.useEffect((()=>{a&&ro(a)}),[a]),n.createElement($e,{style:{maxWidth:400},onSubmit:async t=>{try{let n="";a&&(n=await ao(a)),e.handleAuthResponse(await o.startNewUser({projectId:e.projectId,firstName:t.firstName,lastName:t.lastName,email:t.email,password:t.password,remember:"true"===t.remember,recaptchaSiteKey:a,recaptchaToken:n}))}catch(e){c(e)}}},n.createElement(r.Center,{sx:{flexDirection:"column"}},e.children),n.createElement(Yr,{issues:i}),t&&n.createElement(n.Fragment,null,n.createElement(r.Group,{position:"center",p:"xl",style:{height:70}},n.createElement(to,{googleClientId:t,handleGoogleCredential:async t=>{try{e.handleAuthResponse(await o.startGoogleLogin({googleClientId:t.clientId,googleCredential:t.credential,createUser:!0}))}catch(e){c(e)}}})),n.createElement(r.Divider,{label:"or",labelPosition:"center",my:"lg"})),n.createElement(r.Stack,{spacing:"xl"},n.createElement(r.TextInput,{name:"firstName",type:"text",label:"First name",placeholder:"First name",required:!0,autoFocus:!0,error:Tt(l,"firstName")}),n.createElement(r.TextInput,{name:"lastName",type:"text",label:"Last name",placeholder:"Last name",required:!0,error:Tt(l,"lastName")}),n.createElement(r.TextInput,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,error:Tt(l,"email")}),n.createElement(r.PasswordInput,{name:"password",label:"Password",autoComplete:"off",required:!0,error:Tt(l,"password")}),n.createElement(r.Text,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",n.createElement(r.Anchor,{href:"https://www.medplum.com/privacy"},"Privacy Policy")," and ",n.createElement(r.Anchor,{href:"https://www.medplum.com/terms"},"Terms of Service"),"."),n.createElement(r.Text,{color:"dimmed",size:"xs"},"This site is protected by reCAPTCHA and the Google"," ",n.createElement(r.Anchor,{href:"https://policies.google.com/privacy"},"Privacy Policy")," and ",n.createElement(r.Anchor,{href:"https://policies.google.com/terms"},"Terms of Service")," apply.")),n.createElement(r.Group,{position:"apart",mt:"xl",noWrap:!0},n.createElement(r.Checkbox,{name:"remember",label:"Remember me",size:"xs"}),n.createElement(r.Button,{type:"submit"},"Create account")))}function lo(e){const[t,r]=n.useState();return t?n.createElement(io,{email:t,...e}):n.createElement(co,{setEmail:r,...e})}function co(e){const{setEmail:t,onRegister:a,handleAuthResponse:o,children:l,...c}=e,i=p(),s=!e.disableGoogleAuth&&no(e.googleClientId),u=n.useCallback((async e=>{if(!e.authorizeUrl)return!1;const t=JSON.stringify({...await i.ensureCodeChallenge(c),domain:e.domain}),n=new URL(e.authorizeUrl);return n.searchParams.set("state",t),window.location.assign(n.toString()),!0}),[i,c]),m=n.useCallback((async e=>{const n=await i.post("auth/method",{email:e.email});await u(n)||t(e.email)}),[i,u,t]),d=n.useCallback((async e=>{const t=await i.startGoogleLogin({...c,googleCredential:e.credential});await u(t)||o(t)}),[i,c,u,o]);return n.createElement($e,{style:{maxWidth:400},onSubmit:m},n.createElement(r.Center,{sx:{flexDirection:"column"}},l),s&&n.createElement(n.Fragment,null,n.createElement(r.Group,{position:"center",p:"xl",style:{height:70}},n.createElement(to,{googleClientId:s,handleGoogleCredential:d})),n.createElement(r.Divider,{label:"or",labelPosition:"center",my:"lg"})),n.createElement(r.TextInput,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,autoFocus:!0}),n.createElement(r.Group,{position:"apart",mt:"xl",spacing:0,noWrap:!0},n.createElement("div",null,a&&n.createElement(r.Anchor,{component:"button",type:"button",color:"dimmed",onClick:a,size:"xs"},"Register")),n.createElement(r.Button,{type:"submit"},"Next")))}function io(e){const{onForgotPassword:a,handleAuthResponse:o,children:l,...c}=e,i=p(),[s,u]=n.useState(),m=kt(s,void 0),d=n.useCallback((e=>{i.startLogin({...c,password:e.password,remember:"on"===e.remember}).then(o).catch((e=>u(t.normalizeOperationOutcome(e))))}),[i,c,o]);return n.createElement($e,{style:{maxWidth:400},onSubmit:d},n.createElement(r.Center,{sx:{flexDirection:"column"}},l),n.createElement(Yr,{issues:m}),n.createElement(r.Stack,{spacing:"xl"},n.createElement(r.PasswordInput,{name:"password",label:"Password",autoComplete:"off",required:!0,autoFocus:!0,error:Tt(s,"password")})),n.createElement(r.Group,{position:"apart",mt:"xl",spacing:0,noWrap:!0},a&&n.createElement(r.Anchor,{component:"button",type:"button",color:"dimmed",onClick:a,size:"xs"},"Forgot password"),n.createElement(r.Checkbox,{id:"remember",name:"remember",label:"Remember me",size:"xs",sx:{lineHeight:1}}),n.createElement(r.Button,{type:"submit"},"Sign in")))}function so(e){const a=p(),[o,l]=n.useState();return n.createElement(r.Stack,null,n.createElement(r.Center,{sx:{flexDirection:"column"}},n.createElement(Jr,{size:32}),n.createElement(r.Title,{order:3},"Choose profile")),n.createElement(Yr,{outcome:o}),e.memberships.map((o=>n.createElement(r.UnstyledButton,{key:o.id,onClick:()=>{a.post("auth/profile",{login:e.login,profile:o.id}).then(e.handleAuthResponse).catch((e=>l(t.normalizeOperationOutcome(e))))}},n.createElement(r.Group,null,n.createElement(r.Avatar,{radius:"xl"}),n.createElement("div",{style:{flex:1}},n.createElement(r.Text,{size:"sm",weight:500},o.profile?.display),n.createElement(r.Text,{color:"dimmed",size:"xs"},o.project?.display)))))))}function uo(e){const t=p();return n.createElement($e,{style:{maxWidth:400},onSubmit:n=>{t.post("auth/scope",{login:e.login,scope:Object.keys(n).join(" ")}).then(e.handleAuthResponse).catch(console.log)}},n.createElement(r.Stack,null,n.createElement(r.Center,{sx:{flexDirection:"column"}},n.createElement(Jr,{size:32}),n.createElement(r.Title,null,"Choose scope")),n.createElement(r.Stack,null,(e.scope||"openid").split(" ").map((e=>n.createElement(r.Checkbox,{key:e,id:e,name:e,label:e,defaultChecked:!0})))),n.createElement(r.Group,{position:"right",mt:"xl"},n.createElement(r.Button,{type:"submit"},"Set scope"))))}function mo(e){const a=p(),[o,l]=n.useState(void 0);return n.createElement($e,{style:{maxWidth:400},onSubmit:n=>{l(void 0),a.post("auth/mfa/verify",{login:e.login,token:n.token}).then(e.handleAuthResponse).catch((e=>l(t.normalizeErrorString(e))))}},n.createElement(r.Stack,null,n.createElement(r.Center,{sx:{flexDirection:"column"}},n.createElement(Jr,{size:32}),n.createElement(r.Title,null,"Enter MFA code")),o&&n.createElement(r.Alert,{icon:n.createElement(R,{size:16}),title:"Error",color:"red"},o),n.createElement(r.Stack,null,n.createElement(r.TextInput,{name:"token",label:"MFA code",required:!0})),n.createElement(r.Group,{position:"right",mt:"xl"},n.createElement(r.Button,{type:"submit"},"Submit code"))))}e.AddressDisplay=c,e.AddressInput=u,e.AnnotationInput=E,e.AppShell=function(e){const t=r.useMantineTheme(),[a,o]=n.useState("true"===localStorage.navbarOpen),l=p(),c=g();function i(e){localStorage.navbarOpen=e.toString(),o(e)}return l.isLoading()?n.createElement(fe,null):n.createElement(r.AppShell,{styles:{main:{background:"dark"===t.colorScheme?t.colors.dark[8]:t.colors.gray[0]}},padding:0,fixed:!0,header:c&&n.createElement(Ve,{logo:e.logo,version:e.version,navbarToggle:function(){i(!a)}}),navbar:c&&a?n.createElement(Qe,{menus:e.menus,closeNavbar:function(){i(!1)},displayAddBookmark:e.displayAddBookmark}):void 0},n.createElement(ge,null,n.createElement(n.Suspense,{fallback:n.createElement(fe,null)},e.children)))},e.AsyncAutocomplete=xe,e.AttachmentArrayDisplay=Xe,e.AttachmentArrayInput=et,e.AttachmentButton=Ze,e.AttachmentDisplay=Ye,e.AttachmentInput=tt,e.BackboneElementDisplay=vt,e.BackboneElementInput=nn,e.CalendarInput=on,e.CheckboxFormSection=Ct,e.CodeInput=je,e.CodeableConceptDisplay=lt,e.CodeableConceptInput=wt,e.CodingDisplay=ct,e.CodingInput=It,e.ContactDetailDisplay=st,e.ContactDetailInput=Rt,e.ContactPointDisplay=it,e.ContactPointInput=Mt,e.Container=un,e.DateTimeInput=At,e.DefaultResourceTimeline=function(e){return n.createElement(Ln,{value:e.resource,loadTimelineResources:async(e,t,n)=>{const r=`${t}/${n}`;return Promise.allSettled([e.readHistory(t,n),e.search("Task",{_filter:`based-on eq ${r} or focus eq ${r} or subject eq ${r}`,_count:100})])}})},e.DescriptionList=at,e.DescriptionListEntry=ot,e.DiagnosticReportDisplay=yn,e.Document=Wn,e.ElementDefinitionInputSelector=Zt,e.ElementDefinitionTypeInput=en,e.EncounterTimeline=function(e){return n.createElement(Ln,{value:e.encounter,loadTimelineResources:async(e,t,n)=>Promise.allSettled([e.readHistory("Encounter",n),e.search("Communication","encounter=Encounter/"+n),e.search("Media","encounter=Encounter/"+n)]),createCommunication:(e,n,r)=>({resourceType:"Communication",status:"completed",encounter:t.createReference(e),subject:e.subject,sender:t.createReference(n),sent:(new Date).toISOString(),payload:[{contentString:r}]}),createMedia:(e,n,r)=>({resourceType:"Media",status:"completed",encounter:t.createReference(e),subject:e.subject,operator:t.createReference(n),issued:(new Date).toISOString(),content:r})})},e.ErrorBoundary=ge,e.FhirPathTable=Hr,e.Form=$e,e.FormSection=St,e.Header=Ve,e.HumanNameDisplay=Ee,e.HumanNameInput=Vt,e.IdentifierDisplay=ut,e.IdentifierInput=Nt,e.Loading=fe,e.Logo=Jr,e.MedplumLink=Te,e.MedplumProvider=function(e){const t=e.medplum,r=e.navigate||f,[a,o]=n.useState({profile:t.getProfile(),loading:!1});n.useEffect((()=>{function e(){o({...a,profile:t.getProfile()})}return t.addEventListener("change",e),()=>t.removeEventListeneer("change",e)}),[t,a]);const l={...a,medplum:t,navigate:r};return n.createElement(m.Provider,{value:l},e.children)},e.MemoizedFhirPathTable=Kr,e.MemoizedSearchControl=Gr,e.MoneyDisplay=mt,e.MoneyInput=Lt,e.Navbar=Qe,e.ObservationTable=Cn,e.OperationOutcomeAlert=Yr,e.Panel=wn,e.PatientTimeline=function(e){const r=n.useCallback(((e,t,n)=>{const r=`${t}/${n}`,a=100;return Promise.allSettled([e.readHistory("Patient",n),e.search("Communication",{subject:r,_count:a}),e.search("Device",{patient:r,_count:a}),e.search("DeviceRequest",{patient:r,_count:a}),e.search("DiagnosticReport",{subject:r,_count:a}),e.search("Media",{subject:r,_count:a}),e.search("ServiceRequest",{subject:r,_count:a}),e.search("Task",{subject:r,_count:a})])}),[]);return n.createElement(Ln,{value:e.patient,loadTimelineResources:r,createCommunication:(e,n,r)=>({resourceType:"Communication",status:"completed",subject:t.createReference(e),sender:t.createReference(n),sent:(new Date).toISOString(),payload:[{contentString:r}]}),createMedia:(e,n,r)=>({resourceType:"Media",status:"completed",subject:t.createReference(e),operator:t.createReference(n),issued:(new Date).toISOString(),content:r})})},e.PlanDefinitionBuilder=function(e){const t=p(),a=ke(e.value),[o,l]=n.useState(void 0),[c,i]=n.useState(),[s,u]=n.useState(),[m,d]=n.useState();function h(){u(void 0)}function g(){i(void 0)}const f=n.useRef();if(f.current=m,n.useEffect((()=>{t.requestSchema("PlanDefinition").then(l).catch(console.log)}),[t]),n.useEffect((()=>{var e;return d((e=a??{resourceType:"PlanDefinition"},{...e,action:sa(e.action)})),document.addEventListener("mouseover",h),document.addEventListener("click",g),()=>{document.removeEventListener("mouseover",h),document.removeEventListener("click",g)}}),[a]),!o||!m)return null;function E(e,t){d({...f.current,[e]:t})}return n.createElement("div",null,n.createElement($e,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(m)},n.createElement(r.TextInput,{label:"Plan Title",defaultValue:m.title,onChange:e=>E("title",e.currentTarget.value)}),n.createElement(Zr,{actions:m.action||[],selectedKey:c,setSelectedKey:i,hoverKey:s,setHoverKey:u,onChange:e=>E("action",e)}),n.createElement(r.Button,{type:"submit"},"Save")))},e.QuantityDisplay=dt,e.QuantityInput=Ft,e.QuestionnaireBuilder=function(e){const t=p(),a=ke(e.questionnaire),[o,l]=n.useState(),[c,i]=n.useState(),[s,u]=n.useState(),[m,d]=n.useState();function h(){d(void 0)}function g(){u(void 0)}return n.useEffect((()=>{t.requestSchema("Questionnaire").then(l).catch(console.log)}),[t]),n.useEffect((()=>{var e;return i((e=a??{resourceType:"Questionnaire"},{...e,id:e.id||Ma(),item:Ra(e.item)})),document.addEventListener("mouseover",h),document.addEventListener("click",g),()=>{document.removeEventListener("mouseover",h),document.removeEventListener("click",g)}}),[a]),o&&c?n.createElement("div",null,n.createElement($e,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(c)},n.createElement(ba,{item:c,selectedKey:s,setSelectedKey:u,hoverKey:m,setHoverKey:d,onChange:i}),n.createElement(r.Button,{type:"submit"},"Save"))):null},e.QuestionnaireForm=da,e.QuestionnaireFormItem=ha,e.RangeDisplay=pt,e.RangeInput=Ut,e.ReferenceDisplay=gt,e.ReferenceInput=Wt,e.ReferenceRangeEditor=function(e){const a=(e=Object.assign(Oa,e)).definition,[o,l]=n.useState([]),[c,i]=n.useState(1),[s,u]=n.useState(1);return n.useEffect((()=>{const e=function(e,t){const n=e.qualifiedInterval||[];let r=Math.max(...n.map((e=>{const t=parseInt(e.id?.substring(3)||"");return isNaN(t)?Number.NEGATIVE_INFINITY:t})))+1;Number.isFinite(r)||(r=1);return e={...e,qualifiedInterval:n.map((e=>({...e,id:e.id||"id-"+r++})))},t(r),e}(a,u);l(function(e,t){let n=1;const r={};for(const t of e){const e=za(t);e in r||(r[e]={id:"group-id-"+n++,filters:Object.fromEntries(Da.map((e=>[e,t[e]]))),intervals:[]}),r[e].intervals.push(t)}return t(n),Object.values(r)}(e.qualifiedInterval||[],i))}),[a]),n.createElement($e,{testid:"reference-range-editor",onSubmit:function(){const t=o.flatMap((e=>e.intervals)).filter((e=>!function(e){return void 0===e.range?.low?.value&&void 0===e.range?.high?.value}(e)));e.onSubmit({...a,qualifiedInterval:t})}},n.createElement(r.Stack,null,o.map((e=>{return n.createElement(Va,{unit:(r=a.quantitativeDetails?.unit,r&&(t.getCodeBySystem(r,"http://unitsofmeasure.org")||r.text)),onChange:d,onAdd:p,onRemove:h,onRemoveGroup:m,key:`group-${e.id}`,intervalGroup:e});var r}))),n.createElement(r.ActionIcon,{title:"Add Group",size:"sm",onClick:e=>{var t;ye(e),t={id:`group-id-${c}`,filters:{},intervals:[]},l((e=>[...e,t])),i((e=>e+1))}},n.createElement(U,null)),n.createElement(r.Group,{position:"right"},n.createElement(r.Button,{type:"submit"},"Save")));function m(e){l((t=>t.filter((t=>t.id!==e.id))))}function d(e,t){l((n=>{const r=(n=[...n]).find((t=>t.id===e)),a=r?.intervals?.findIndex((e=>e.id===t.id));return void 0!==a&&r?.intervals?.[a]&&(r.intervals[a]=t),n}))}function p(e,t){void 0===t.id&&(t.id=`id-${s}`,u((e=>e+1))),l((n=>{const r=(n=[...n]).findIndex((t=>t.id===e));if(-1!==r){const e={...n[r]};t={...t,...e.filters},e.intervals=[...e.intervals,t],n[r]=e}return n}))}function h(e,t){l((n=>{const r=(n=[...n]).find((t=>t.id===e));return r&&(r.intervals=r.intervals.filter((e=>e.id!==t.id))),n}))}},e.ReferenceRangeGroupEditor=Va,e.RegisterForm=function(e){const{type:t,projectId:r,googleClientId:a,recaptchaSiteKey:o,onSuccess:l}=e,c=p(),[i,s]=n.useState(void 0),[u,m]=n.useState();function d(e){e.code?c.processCode(e.code).then((()=>l())).catch(console.log):e.login&&s(e.login)}return n.useEffect((()=>{"patient"===t&&i&&c.startNewPatient({login:i,projectId:r}).then((e=>c.processCode(e.code))).then((()=>l())).catch((e=>m(e)))}),[c,t,r,i,l]),n.createElement(Wn,{width:450},u&&n.createElement("pre",null,JSON.stringify(u,null,2)),!i&&n.createElement(oo,{projectId:r,googleClientId:a,recaptchaSiteKey:o,handleAuthResponse:d},e.children),i&&"project"===t&&n.createElement(Za,{login:i,handleAuthResponse:d}))},e.RequestGroupDisplay=function(e){const a=p(),o=ke(e.value),[l,c]=n.useState(!1),[i,s]=n.useState();return n.useEffect((()=>{o&&!l&&(a.executeBatch(function(e){const t=[];if(e.action)for(const n of e.action)n.resource?.reference&&t.push({request:{method:"GET",url:n.resource.reference}});return{resourceType:"Bundle",type:"batch",entry:t}}(o)).then(s).catch(console.log),c(!0))}),[a,o,l]),o&&i?n.createElement(r.Grid,null,o.action?.map(((a,o)=>{const l=a.resource&&function(e){for(const n of i?.entry)if(n.resource&&e.reference===t.getReferenceString(n.resource))return n.resource;return}(a.resource),c=l?.input?.[0]?.valueReference,s=l?.output?.[0]?.valueReference;return n.createElement(n.Fragment,{key:`action-${o}`},n.createElement(r.Grid.Col,{span:1,p:"md"},"completed"===l?.status?n.createElement($,null):n.createElement(ue,{color:"gray"})),n.createElement(r.Grid.Col,{span:9,p:"xs"},n.createElement(r.Text,{weight:500},a.title),a.description&&n.createElement("div",null,a.description),n.createElement("div",null,"Last edited by ",n.createElement(pn,{value:l?.meta?.author})," on ",t.formatDateTime(l?.meta?.lastUpdated)),n.createElement("div",null,"Status: ",n.createElement(fn,{status:l?.status||"unknown"}))),n.createElement(r.Grid.Col,{span:2,p:"md"},c&&!s&&n.createElement(r.Button,{onClick:()=>e.onStart(l,c)},"Start"),c&&s&&n.createElement(r.Button,{onClick:()=>e.onEdit(l,c,s)},"Edit")))}))):null},e.ResourceArrayDisplay=ft,e.ResourceArrayInput=Qt,e.ResourceAvatar=Se,e.ResourceBadge=hn,e.ResourceBlame=function(e){const{classes:t}=Ba(),r=p(),[a,o]=n.useState(e.history);if(n.useEffect((()=>{!e.history&&e.resourceType&&e.id&&r.readHistory(e.resourceType,e.id).then(o).catch(console.log)}),[r,e.history,e.resourceType,e.id]),!a)return n.createElement("div",null,"Loading...");const l=a.entry?.[0]?.resource,c=Fa(a);return n.createElement("div",{className:t.container},n.createElement("table",{className:t.root},n.createElement("tbody",null,c.map(((e,r)=>n.createElement("tr",{key:"row-"+r,className:e.span>0?t.startRow:t.normalRow},e.span>0&&n.createElement(n.Fragment,null,n.createElement("td",{className:t.author,rowSpan:e.span},n.createElement(hn,{value:e.meta.author,link:!0})),n.createElement("td",{className:t.dateTime,rowSpan:e.span},n.createElement(Te,{to:Ua(l,e.meta.versionId)},_a(e.meta.lastUpdated)))),n.createElement("td",{className:t.lineNumber},r+1),n.createElement("td",{className:t.line},n.createElement("pre",{className:t.pre},e.value))))))))},e.ResourceDiff=function(e){let r=e.original,a=e.revised;e.ignoreMeta&&(r={...r,meta:void 0},a={...a,meta:void 0});const o=La(t.stringify(r,!0).match(/[^\r\n]+/g),t.stringify(a,!0).match(/[^\r\n]+/g));return n.createElement("pre",{style:{color:"gray"}},o.map(((e,t)=>n.createElement(ja,{key:"delta"+t,delta:e}))))},e.ResourceForm=function(e){const a=p(),o=ke(e.defaultValue),[l,c]=n.useState(),[i,s]=n.useState();return n.useEffect((()=>{o&&(s(t.deepClone(o)),a.requestSchema(o.resourceType).then(c).catch(console.log))}),[a,o]),l&&i?n.createElement("form",{noValidate:!0,autoComplete:"off",onSubmit:t=>{t.preventDefault(),e.onSubmit&&e.onSubmit(i)}},n.createElement(r.Stack,{mb:"xl"},n.createElement(St,{title:"Resource Type",htmlFor:"resourceType",outcome:e.outcome},n.createElement(r.TextInput,{name:"resourceType",defaultValue:i.resourceType,disabled:!0})),n.createElement(St,{title:"ID",htmlFor:"id",outcome:e.outcome},n.createElement(r.TextInput,{name:"id",defaultValue:i.id,disabled:!0}))),n.createElement(nn,{typeName:i.resourceType,defaultValue:i,outcome:e.outcome,onChange:s}),n.createElement(r.Group,{position:"right",mt:"xl"},n.createElement(r.Button,{type:"submit"},"OK"),e.onDelete&&n.createElement(r.Button,{variant:"outline",color:"red",type:"button",onClick:()=>{e.onDelete(i)}},"Delete"))):n.createElement("div",null,"Loading...")},e.ResourceHistoryTable=function(e){const t=p(),[a,o]=n.useState(e.history);return n.useEffect((()=>{!e.history&&e.resourceType&&e.id&&t.readHistory(e.resourceType,e.id).then(o).catch(console.log)}),[t,e.history,e.resourceType,e.id]),a?n.createElement(r.Table,{withBorder:!0,withColumnBorders:!0},n.createElement("thead",null,n.createElement("tr",null,n.createElement("th",null,"Author"),n.createElement("th",null,"Date"),n.createElement("th",null,"Version"))),n.createElement("tbody",null,a.entry?.map(((e,t)=>n.createElement(Wa,{key:"entry-"+t,entry:e}))))):n.createElement("div",null,"Loading...")},e.ResourceInput=Gt,e.ResourceName=pn,e.ResourcePropertyDisplay=Et,e.ResourcePropertyInput=Xt,e.ResourceTable=An,e.ResourceTimeline=Ln,e.Scheduler=function(e){const{classes:a}=Ha(),o=p(),l=ke(e.schedule),c=ke(e.questionnaire),[i,s]=n.useState();n.useRef().current=i;const[u,m]=n.useState(ln()),[d,h]=n.useState(),[g,f]=n.useState(),[E,y]=n.useState();if(n.useEffect((()=>{l?(s([]),o.searchResources("Slot",new URLSearchParams([["_count",720..toString()],["schedule",t.getReferenceString(l)],["start","gt"+Ka(u)],["start","lt"+Ja(u)]])).then(s).catch(console.log)):s(void 0)}),[o,l,u]),!l||!i||!c)return null;const v=l.actor?.[0];return n.createElement("div",{className:a.container,"data-testid":"scheduler"},n.createElement("div",{className:a.info},v&&n.createElement(Se,{value:v,size:"xl"}),v&&n.createElement(r.Text,{size:"xl",weight:500},n.createElement(pn,{value:v})),n.createElement("p",null,"1 hour"),d&&n.createElement("p",null,d.toLocaleDateString()),g&&n.createElement("p",null,Xa(new Date(g.start)))),n.createElement("div",{className:a.selection},!d&&n.createElement("div",null,n.createElement("h3",null,"Select date"),n.createElement(on,{slots:i,onChangeMonth:m,onClick:h})),d&&!g&&n.createElement("div",null,n.createElement("h3",null,"Select time"),n.createElement(r.Stack,null,i.map((e=>{const t=new Date(e.start);return t.getTime()>d.getTime()&&t.getTime()<d.getTime()+864e5&&n.createElement("div",{key:e.id},n.createElement(r.Button,{variant:"outline",style:{width:150},onClick:()=>f(e)},Xa(t)))})))),d&&g&&!E&&n.createElement(da,{questionnaire:c,submitButtonText:"Next",onSubmit:y}),d&&g&&E&&n.createElement("div",null,n.createElement("h3",null,"You're all set!"),n.createElement("p",null,"Check your email for a calendar invite."))))},e.SearchChangeEvent=Fr,e.SearchClickEvent=Ur,e.SearchControl=qr,e.SearchFieldEditor=Tr,e.SearchFilterEditor=xr,e.SearchLoadEvent=Br,e.ServiceRequestTimeline=function(e){return n.createElement(Ln,{value:e.serviceRequest,loadTimelineResources:async(e,t,n)=>{const r=`${t}/${n}`,a=100;return Promise.allSettled([e.readHistory("ServiceRequest",n),e.search("Communication",{"based-on":r,_count:a}),e.search("DiagnosticReport",{"based-on":r,_count:a}),e.search("Media",{"based-on":r,_count:a}),e.search("Task",{_filter:`based-on eq ${r} or focus eq ${r} or subject eq ${r}`,_count:a})])},createCommunication:(e,n,r)=>({resourceType:"Communication",status:"completed",basedOn:[t.createReference(e)],subject:e.subject,sender:t.createReference(n),sent:(new Date).toISOString(),payload:[{contentString:r}]}),createMedia:(e,n,r)=>({resourceType:"Media",status:"completed",basedOn:[t.createReference(e)],subject:e.subject,operator:t.createReference(n),issued:(new Date).toISOString(),content:r})})},e.SignInForm=function(e){const{chooseScopes:t,onSuccess:r,onForgotPassword:a,onRegister:o,onCode:l,...c}=e,i=p(),[s,u]=n.useState(void 0),[m,d]=n.useState(!1),[h,g]=n.useState(void 0),f=n.useCallback((e=>{l?l(e):i.processCode(e).then((()=>{r&&r()})).catch(console.log)}),[i,l,r]),E=n.useCallback((e=>{d(!!e.mfaRequired),e.login&&u(e.login),e.memberships&&g(e.memberships),e.code&&(t?g(void 0):f(e.code))}),[t,f]),y=n.useCallback((e=>{f(e.code)}),[f]);return n.useEffect((()=>{e.login&&i.get("auth/login/"+e.login).then(E).catch(console.error)}),[i,e,E]),n.createElement(Wn,{width:450},s?m?n.createElement(mo,{login:s,handleAuthResponse:E}):h?n.createElement(so,{login:s,memberships:h,handleAuthResponse:E}):"new"===e.projectId?n.createElement(Za,{login:s,handleAuthResponse:E}):e.chooseScopes?n.createElement(uo,{login:s,scope:e.scope,handleAuthResponse:y}):n.createElement("div",null,"Success"):n.createElement(lo,{onForgotPassword:a,onRegister:o,handleAuthResponse:E,disableGoogleAuth:e.disableGoogleAuth,...c},e.children))},e.StatusBadge=fn,e.Timeline=Pn,e.TimelineItem=Dn,e.TimingInput=Kt,e.addDateFilterBetween=sr,e.addField=function(e,t){if(e.fields&&e.fields.includes(t))return e;const n=[];return e.fields&&n.push(...e.fields),n.push(t),{...e,fields:n,name:void 0}},e.addFilter=Xn,e.addLastMonthFilter=ar,e.addMissingFilter=mr,e.addNextMonthFilter=lr,e.addThisMonthFilter=or,e.addTodayFilter=tr,e.addTomorrowFilter=nr,e.addYearToDateFilter=ir,e.addYesterdayFilter=er,e.buildFieldNameString=vr,e.clearFilters=function(e){return Jn(e,[])},e.clearFiltersOnField=Yn,e.convertIsoToLocal=Pt,e.convertLocalToIso=Dt,e.createScriptTag=eo,e.deleteFilter=Zn,e.getErrorsForInput=Tt,e.getIssuesForExpression=kt,e.getMonthString=an,e.getOpString=yr,e.getRecaptcha=ao,e.getSearchOperators=Er,e.getSortField=gr,e.getStartMonth=ln,e.getTimeString=_a,e.getValueAndType=yt,e.initRecaptcha=ro,e.isChoiceQuestion=ma,e.isQuestionEnabled=Ta,e.isSortDescending=fr,e.parseForm=Ne,e.renderValue=Cr,e.setFilters=Jn,e.setOffset=dr,e.setPage=pr,e.setPropertyValue=xt,e.setSort=hr,e.sortByDateAndPriority=On,e.toggleSort=function(e,t){let n=!1;return gr(e)===t&&(n=!fr(e)),hr(e,t,n)},e.useMedplum=p,e.useMedplumContext=d,e.useMedplumNavigate=h,e.useMedplumProfile=g,e.useResource=ke}));
|