@medplum/react 5.0.12 → 5.0.13
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 +2 -2
- package/dist/cjs/index.cjs.map +2 -2
- package/dist/cjs/index.d.ts +2 -0
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.mjs +2 -2
- package/dist/esm/index.mjs.map +2 -2
- package/package.json +22 -22
package/dist/cjs/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value;var __commonJS=(cb,mod)=>function(){return mod||(0,cb[__getOwnPropNames(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports};var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__reExport=(target,mod,secondTarget)=>(__copyProps(target,mod,"default"),secondTarget&&__copyProps(secondTarget,mod,"default")),__toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var __publicField=(obj,key,value)=>__defNormalProp(obj,typeof key!="symbol"?key+"":key,value);var require_pointer=__commonJS({"../../node_modules/rfc6902/pointer.js"(exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.Pointer=exports.escapeToken=exports.unescapeToken=void 0;function unescapeToken(token){return token.replace(/~1/g,"/").replace(/~0/g,"~")}exports.unescapeToken=unescapeToken;function escapeToken(token){return token.replace(/~/g,"~0").replace(/\//g,"~1")}exports.escapeToken=escapeToken;var Pointer=(function(){function Pointer2(tokens){tokens===void 0&&(tokens=[""]),this.tokens=tokens}return Pointer2.fromJSON=function(path){var tokens=path.split("/").map(unescapeToken);if(tokens[0]!=="")throw new Error("Invalid JSON Pointer: ".concat(path));return new Pointer2(tokens)},Pointer2.prototype.toString=function(){return this.tokens.map(escapeToken).join("/")},Pointer2.prototype.evaluate=function(object){for(var parent=null,key="",value=object,i=1,l=this.tokens.length;i<l;i++)parent=value,key=this.tokens[i],!(key=="__proto__"||key=="constructor"||key=="prototype")&&(value=(parent||{})[key]);return{parent,key,value}},Pointer2.prototype.get=function(object){return this.evaluate(object).value},Pointer2.prototype.set=function(object,value){var endpoint=this.evaluate(object);endpoint.parent&&(endpoint.parent[endpoint.key]=value)},Pointer2.prototype.push=function(token){this.tokens.push(token)},Pointer2.prototype.add=function(token){var tokens=this.tokens.concat(String(token));return new Pointer2(tokens)},Pointer2})();exports.Pointer=Pointer}});var require_util=__commonJS({"../../node_modules/rfc6902/util.js"(exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.clone=exports.objectType=exports.hasOwnProperty=void 0;exports.hasOwnProperty=Object.prototype.hasOwnProperty;function objectType(object){return object===void 0?"undefined":object===null?"null":Array.isArray(object)?"array":typeof object}exports.objectType=objectType;function isNonPrimitive(value){return value!=null&&typeof value=="object"}function clone(source){if(!isNonPrimitive(source))return source;if(source.constructor==Array){for(var length_1=source.length,arrayTarget=new Array(length_1),i=0;i<length_1;i++)arrayTarget[i]=clone(source[i]);return arrayTarget}if(source.constructor==Date){var dateTarget=new Date(+source);return dateTarget}var objectTarget={};for(var key in source)exports.hasOwnProperty.call(source,key)&&(objectTarget[key]=clone(source[key]));return objectTarget}exports.clone=clone}});var require_diff=__commonJS({"../../node_modules/rfc6902/diff.js"(exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.diffAny=exports.diffObjects=exports.diffArrays=exports.intersection=exports.subtract=exports.isDestructive=void 0;var util_1=require_util();function isDestructive(_a){var op=_a.op;return op==="remove"||op==="replace"||op==="copy"||op==="move"}exports.isDestructive=isDestructive;function subtract(minuend,subtrahend){var obj={};for(var add_key in minuend)util_1.hasOwnProperty.call(minuend,add_key)&&minuend[add_key]!==void 0&&(obj[add_key]=1);for(var del_key in subtrahend)util_1.hasOwnProperty.call(subtrahend,del_key)&&subtrahend[del_key]!==void 0&&delete obj[del_key];return Object.keys(obj)}exports.subtract=subtract;function intersection(objects){for(var length=objects.length,counter={},i=0;i<length;i++){var object=objects[i];for(var key in object)util_1.hasOwnProperty.call(object,key)&&object[key]!==void 0&&(counter[key]=(counter[key]||0)+1)}for(var key in counter)counter[key]<length&&delete counter[key];return Object.keys(counter)}exports.intersection=intersection;function isArrayAdd(array_operation){return array_operation.op==="add"}function isArrayRemove(array_operation){return array_operation.op==="remove"}function appendArrayOperation(base,operation){return{operations:base.operations.concat(operation),cost:base.cost+1}}function diffArrays(input,output,ptr,diff2){diff2===void 0&&(diff2=diffAny);var memo2={"0,0":{operations:[],cost:0}};function dist(i,j){var memo_key="".concat(i,",").concat(j),memoized=memo2[memo_key];if(memoized===void 0){if(i>0&&j>0&&!diff2(input[i-1],output[j-1],ptr.add(String(i-1))).length)memoized=dist(i-1,j-1);else{var alternatives=[];if(i>0){var remove_base=dist(i-1,j),remove_operation={op:"remove",index:i-1};alternatives.push(appendArrayOperation(remove_base,remove_operation))}if(j>0){var add_base=dist(i,j-1),add_operation={op:"add",index:i-1,value:output[j-1]};alternatives.push(appendArrayOperation(add_base,add_operation))}if(i>0&&j>0){var replace_base=dist(i-1,j-1),replace_operation={op:"replace",index:i-1,original:input[i-1],value:output[j-1]};alternatives.push(appendArrayOperation(replace_base,replace_operation))}var best=alternatives.sort(function(a,b){return a.cost-b.cost})[0];memoized=best}memo2[memo_key]=memoized}return memoized}var input_length=isNaN(input.length)||input.length<=0?0:input.length,output_length=isNaN(output.length)||output.length<=0?0:output.length,array_operations=dist(input_length,output_length).operations,padded_operations=array_operations.reduce(function(_a,array_operation){var operations=_a[0],padding=_a[1];if(isArrayAdd(array_operation)){var padded_index=array_operation.index+1+padding,index_token=padded_index<input_length+padding?String(padded_index):"-",operation={op:array_operation.op,path:ptr.add(index_token).toString(),value:array_operation.value};return[operations.concat(operation),padding+1]}else if(isArrayRemove(array_operation)){var operation={op:array_operation.op,path:ptr.add(String(array_operation.index+padding)).toString()};return[operations.concat(operation),padding-1]}else{var replace_ptr=ptr.add(String(array_operation.index+padding)),replace_operations=diff2(array_operation.original,array_operation.value,replace_ptr);return[operations.concat.apply(operations,replace_operations),padding]}},[[],0])[0];return padded_operations}exports.diffArrays=diffArrays;function diffObjects(input,output,ptr,diff2){diff2===void 0&&(diff2=diffAny);var operations=[];return subtract(input,output).forEach(function(key){operations.push({op:"remove",path:ptr.add(key).toString()})}),subtract(output,input).forEach(function(key){operations.push({op:"add",path:ptr.add(key).toString(),value:output[key]})}),intersection([input,output]).forEach(function(key){operations.push.apply(operations,diff2(input[key],output[key],ptr.add(key)))}),operations}exports.diffObjects=diffObjects;function diffAny(input,output,ptr,diff2){if(diff2===void 0&&(diff2=diffAny),input===output)return[];var input_type=(0,util_1.objectType)(input),output_type=(0,util_1.objectType)(output);return input_type=="array"&&output_type=="array"?diffArrays(input,output,ptr,diff2):input_type=="object"&&output_type=="object"?diffObjects(input,output,ptr,diff2):[{op:"replace",path:ptr.toString(),value:output}]}exports.diffAny=diffAny}});var require_patch=__commonJS({"../../node_modules/rfc6902/patch.js"(exports){"use strict";var __extends=exports&&exports.__extends||(function(){var extendStatics=function(d,b){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d2,b2){d2.__proto__=b2}||function(d2,b2){for(var p in b2)Object.prototype.hasOwnProperty.call(b2,p)&&(d2[p]=b2[p])},extendStatics(d,b)};return function(d,b){if(typeof b!="function"&&b!==null)throw new TypeError("Class extends value "+String(b)+" is not a constructor or null");extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}})();Object.defineProperty(exports,"__esModule",{value:!0});exports.apply=exports.InvalidOperationError=exports.test=exports.copy=exports.move=exports.replace=exports.remove=exports.add=exports.TestError=exports.MissingError=void 0;var pointer_1=require_pointer(),util_1=require_util(),diff_1=require_diff(),MissingError=(function(_super){__extends(MissingError2,_super);function MissingError2(path){var _this=_super.call(this,"Value required at path: ".concat(path))||this;return _this.path=path,_this.name="MissingError",_this}return MissingError2})(Error);exports.MissingError=MissingError;var TestError=(function(_super){__extends(TestError2,_super);function TestError2(actual,expected){var _this=_super.call(this,"Test failed: ".concat(actual," != ").concat(expected))||this;return _this.actual=actual,_this.expected=expected,_this.name="TestError",_this}return TestError2})(Error);exports.TestError=TestError;function _add(object,key,value){if(Array.isArray(object))if(key=="-")object.push(value);else{var index=parseInt(key,10);object.splice(index,0,value)}else object[key]=value}function _remove(object,key){if(Array.isArray(object)){var index=parseInt(key,10);object.splice(index,1)}else delete object[key]}function add(object,operation){var endpoint=pointer_1.Pointer.fromJSON(operation.path).evaluate(object);return endpoint.parent===void 0?new MissingError(operation.path):(_add(endpoint.parent,endpoint.key,(0,util_1.clone)(operation.value)),null)}exports.add=add;function remove(object,operation){var endpoint=pointer_1.Pointer.fromJSON(operation.path).evaluate(object);return endpoint.value===void 0?new MissingError(operation.path):(_remove(endpoint.parent,endpoint.key),null)}exports.remove=remove;function replace(object,operation){var endpoint=pointer_1.Pointer.fromJSON(operation.path).evaluate(object);if(endpoint.parent===null)return new MissingError(operation.path);if(Array.isArray(endpoint.parent)){if(parseInt(endpoint.key,10)>=endpoint.parent.length)return new MissingError(operation.path)}else if(endpoint.value===void 0)return new MissingError(operation.path);return endpoint.parent[endpoint.key]=(0,util_1.clone)(operation.value),null}exports.replace=replace;function move(object,operation){var from_endpoint=pointer_1.Pointer.fromJSON(operation.from).evaluate(object);if(from_endpoint.value===void 0)return new MissingError(operation.from);var endpoint=pointer_1.Pointer.fromJSON(operation.path).evaluate(object);return endpoint.parent===void 0?new MissingError(operation.path):(_remove(from_endpoint.parent,from_endpoint.key),_add(endpoint.parent,endpoint.key,from_endpoint.value),null)}exports.move=move;function copy(object,operation){var from_endpoint=pointer_1.Pointer.fromJSON(operation.from).evaluate(object);if(from_endpoint.value===void 0)return new MissingError(operation.from);var endpoint=pointer_1.Pointer.fromJSON(operation.path).evaluate(object);return endpoint.parent===void 0?new MissingError(operation.path):(_add(endpoint.parent,endpoint.key,(0,util_1.clone)(from_endpoint.value)),null)}exports.copy=copy;function test(object,operation){var endpoint=pointer_1.Pointer.fromJSON(operation.path).evaluate(object);return(0,diff_1.diffAny)(endpoint.value,operation.value,new pointer_1.Pointer).length?new TestError(endpoint.value,operation.value):null}exports.test=test;var InvalidOperationError=(function(_super){__extends(InvalidOperationError2,_super);function InvalidOperationError2(operation){var _this=_super.call(this,"Invalid operation: ".concat(operation.op))||this;return _this.operation=operation,_this.name="InvalidOperationError",_this}return InvalidOperationError2})(Error);exports.InvalidOperationError=InvalidOperationError;function apply(object,operation){switch(operation.op){case"add":return add(object,operation);case"remove":return remove(object,operation);case"replace":return replace(object,operation);case"move":return move(object,operation);case"copy":return copy(object,operation);case"test":return test(object,operation)}return new InvalidOperationError(operation)}exports.apply=apply}});var require_rfc6902=__commonJS({"../../node_modules/rfc6902/index.js"(exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.createTests=exports.createPatch=exports.applyPatch=exports.Pointer=void 0;var pointer_1=require_pointer();Object.defineProperty(exports,"Pointer",{enumerable:!0,get:function(){return pointer_1.Pointer}});var patch_1=require_patch(),diff_1=require_diff();function applyPatch(object,patch){return patch.map(function(operation){return(0,patch_1.apply)(object,operation)})}exports.applyPatch=applyPatch;function wrapVoidableDiff(diff2){function wrappedDiff(input,output,ptr){var custom_patch=diff2(input,output,ptr);return Array.isArray(custom_patch)?custom_patch:(0,diff_1.diffAny)(input,output,ptr,wrappedDiff)}return wrappedDiff}function createPatch2(input,output,diff2){var ptr=new pointer_1.Pointer;return(diff2?wrapVoidableDiff(diff2):diff_1.diffAny)(input,output,ptr)}exports.createPatch=createPatch2;function createTest(input,path){var endpoint=pointer_1.Pointer.fromJSON(path).evaluate(input);if(endpoint!==void 0)return{op:"test",path,value:endpoint.value}}function createTests(input,patch){var tests=new Array;return patch.filter(diff_1.isDestructive).forEach(function(operation){var pathTest=createTest(input,operation.path);if(pathTest&&tests.push(pathTest),"from"in operation){var fromTest=createTest(input,operation.from);fromTest&&tests.push(fromTest)}}),tests}exports.createTests=createTests}});var index_exports={};__export(index_exports,{AddressDisplay:()=>AddressDisplay,AddressInput:()=>AddressInput,AnnotationInput:()=>AnnotationInput,AppShell:()=>AppShell,AsyncAutocomplete:()=>AsyncAutocomplete,AttachmentArrayDisplay:()=>AttachmentArrayDisplay,AttachmentArrayInput:()=>AttachmentArrayInput,AttachmentButton:()=>AttachmentButton,AttachmentDisplay:()=>AttachmentDisplay,AttachmentInput:()=>AttachmentInput,BackboneElementDisplay:()=>BackboneElementDisplay,BackboneElementInput:()=>BackboneElementInput,BaseChat:()=>BaseChat,CalendarInput:()=>CalendarInput,ChatModal:()=>ChatModal,CheckboxFormSection:()=>CheckboxFormSection,CodeInput:()=>CodeInput,CodeableConceptDisplay:()=>CodeableConceptDisplay,CodeableConceptInput:()=>CodeableConceptInput,CodingDisplay:()=>CodingDisplay,CodingInput:()=>CodingInput,ContactDetailDisplay:()=>ContactDetailDisplay,ContactDetailInput:()=>ContactDetailInput,ContactPointDisplay:()=>ContactPointDisplay,ContactPointInput:()=>ContactPointInput,Container:()=>Container,DateTimeInput:()=>DateTimeInput,DefaultResourceTimeline:()=>DefaultResourceTimeline,DescriptionList:()=>DescriptionList,DescriptionListEntry:()=>DescriptionListEntry,DiagnosticReportDisplay:()=>DiagnosticReportDisplay,Document:()=>Document,ElementDefinitionInputSelector:()=>ElementDefinitionInputSelector,ElementDefinitionTypeInput:()=>ElementDefinitionTypeInput,EncounterTimeline:()=>EncounterTimeline,ErrorBoundary:()=>ErrorBoundary,FhirPathTable:()=>FhirPathTable,Form:()=>Form,FormSection:()=>FormSection,Header:()=>Header,HumanNameDisplay:()=>HumanNameDisplay,HumanNameInput:()=>HumanNameInput,IdentifierDisplay:()=>IdentifierDisplay,IdentifierInput:()=>IdentifierInput,InfoBar:()=>InfoBar,LinkTabs:()=>LinkTabs,Loading:()=>Loading,Logo:()=>Logo,MeasureReportDisplay:()=>MeasureReportDisplay,MedplumLink:()=>MedplumLink,MemoizedFhirPathTable:()=>MemoizedFhirPathTable,MfaForm:()=>MfaForm,MoneyDisplay:()=>MoneyDisplay,MoneyInput:()=>MoneyInput,Navbar:()=>Navbar,NoteDisplay:()=>NoteDisplay,NotificationIcon:()=>NotificationIcon,ObservationTable:()=>ObservationTable,OperationOutcomeAlert:()=>OperationOutcomeAlert,Panel:()=>Panel,PatientExportForm:()=>PatientExportForm,PatientHeader:()=>PatientHeader,PatientSummary:()=>PatientSummary,PatientTimeline:()=>PatientTimeline,PlanDefinitionBuilder:()=>PlanDefinitionBuilder,QuantityDisplay:()=>QuantityDisplay,QuantityInput:()=>QuantityInput,QuestionnaireBuilder:()=>QuestionnaireBuilder,QuestionnaireForm:()=>QuestionnaireForm,QuestionnaireResponseDisplay:()=>QuestionnaireResponseDisplay,RangeDisplay:()=>RangeDisplay,RangeInput:()=>RangeInput,RatioInput:()=>RatioInput,ReferenceDisplay:()=>ReferenceDisplay,ReferenceInput:()=>ReferenceInput,ReferenceRangeEditor:()=>ReferenceRangeEditor,ReferenceRangeGroupEditor:()=>ReferenceRangeGroupEditor,RegisterForm:()=>RegisterForm,RequestGroupDisplay:()=>RequestGroupDisplay,ResourceArrayDisplay:()=>ResourceArrayDisplay,ResourceArrayInput:()=>ResourceArrayInput,ResourceAvatar:()=>ResourceAvatar,ResourceBadge:()=>ResourceBadge,ResourceBlame:()=>ResourceBlame,ResourceDiff:()=>ResourceDiff,ResourceDiffTable:()=>ResourceDiffTable,ResourceForm:()=>ResourceForm,ResourceHistoryTable:()=>ResourceHistoryTable,ResourceInput:()=>ResourceInput,ResourceName:()=>ResourceName,ResourcePropertyDisplay:()=>ResourcePropertyDisplay,ResourcePropertyInput:()=>ResourcePropertyInput,ResourceTable:()=>ResourceTable,ResourceTimeline:()=>ResourceTimeline,Scheduler:()=>Scheduler,SearchChangeEvent:()=>SearchChangeEvent,SearchClickEvent:()=>SearchClickEvent,SearchControl:()=>SearchControl,SearchFieldEditor:()=>SearchFieldEditor,SearchFilterEditor:()=>SearchFilterEditor,SearchLoadEvent:()=>SearchLoadEvent,ServiceRequestTimeline:()=>ServiceRequestTimeline,SignInForm:()=>SignInForm,SignatureInput:()=>SignatureInput,SmartAppLaunchLink:()=>SmartAppLaunchLink,Spotlight:()=>Spotlight,StatusBadge:()=>StatusBadge,SubmitButton:()=>SubmitButton,ThreadChat:()=>ThreadChat,Timeline:()=>Timeline,TimelineItem:()=>TimelineItem,TimingInput:()=>TimingInput,ValueSetAutocomplete:()=>ValueSetAutocomplete,addDateFilterBetween:()=>addDateFilterBetween,addField:()=>addField,addFilter:()=>addFilter,addLastMonthFilter:()=>addLastMonthFilter,addMissingFilter:()=>addMissingFilter,addNext24HoursFilter:()=>addNext24HoursFilter,addNextMonthFilter:()=>addNextMonthFilter,addThisMonthFilter:()=>addThisMonthFilter,addTodayFilter:()=>addTodayFilter,addTomorrowFilter:()=>addTomorrowFilter,addYearToDateFilter:()=>addYearToDateFilter,addYesterdayFilter:()=>addYesterdayFilter,buildFieldNameString:()=>buildFieldNameString,clearFilters:()=>clearFilters,clearFiltersOnField:()=>clearFiltersOnField,convertIsoToLocal:()=>convertIsoToLocal,convertLocalToIso:()=>convertLocalToIso,createScriptTag:()=>createScriptTag,deleteFilter:()=>deleteFilter,exportJsonFile:()=>exportJsonFile,getAppName:()=>getAppName,getErrorsForInput:()=>getErrorsForInput,getFieldDefinitions:()=>getFieldDefinitions,getIssuesForExpression:()=>getIssuesForExpression,getOpString:()=>getOpString,getPaginationControlProps:()=>getPaginationControlProps,getRecaptcha:()=>getRecaptcha,getSearchOperators:()=>getSearchOperators,getSortField:()=>getSortField,getValuePath:()=>getValuePath,initRecaptcha:()=>initRecaptcha,isAuxClick:()=>isAuxClick,isCheckboxCell:()=>isCheckboxCell,isSortDescending:()=>isSortDescending,isSupportedProfileStructureDefinition:()=>isSupportedProfileStructureDefinition,killEvent:()=>killEvent,parseForm:()=>parseForm,renderValue:()=>renderValue,sendCommand:()=>sendCommand,setFilters:()=>setFilters,setOffset:()=>setOffset,setPage:()=>setPage,setPropertyValue:()=>setPropertyValue,setSort:()=>setSort,sortByDateAndPriority:()=>sortByDateAndPriority,toggleSort:()=>toggleSort});module.exports=__toCommonJS(index_exports);__reExport(index_exports,require("@medplum/react-hooks"),module.exports);var import_core=require("@medplum/core"),import_jsx_runtime=require("react/jsx-runtime");function AddressDisplay(props){let address=props.value;return address?(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:(0,import_core.formatAddress)(address)}):null}var import_core3=require("@mantine/core"),import_core4=require("@medplum/core"),import_react2=require("react");var import_core2=require("@medplum/core"),import_react=require("react");var DEFAULT_IGNORED_PROPERTIES=["meta","implicitRules","contained","extension","modifierExtension"],DEFAULT_IGNORED_NON_NESTED_PROPERTIES=["language","text"];var ElementsContext=(0,import_react.createContext)({path:"",profileUrl:void 0,elements:Object.create(null),elementsByPath:Object.create(null),getExtendedProps:()=>({readonly:!1,hidden:!1}),accessPolicyResource:void 0,debugMode:!1,isDefaultContext:!0});ElementsContext.displayName="ElementsContext";var EXTENSION_KEYS=["extension","modifierExtension"],IGNORED_PROPERTIES=["id",...DEFAULT_IGNORED_PROPERTIES].filter(prop=>!EXTENSION_KEYS.includes(prop));function getElementsToRender(inputElements){return Object.entries(inputElements).filter(([key,element])=>!(0,import_core2.isPopulated)(element.type)||element.max===0||element.path.toLowerCase().endsWith("extension.url")&&element.fixed||EXTENSION_KEYS.includes(key)&&!(0,import_core2.isPopulated)(element.slicing?.slices)||IGNORED_PROPERTIES.includes(key)?!1:!(DEFAULT_IGNORED_NON_NESTED_PROPERTIES.includes(key)&&element.path.split(".").length===2||key.includes(".")))}var import_jsx_runtime2=require("react/jsx-runtime");function getLine(address,index){return address.line&&address.line.length>index?address.line[index]:""}function setLine(address,index,str){let line=address.line||[];for(;line.length<=index;)line.push("");return line[index]=str,{...address,line:(0,import_core4.trimTrailingEmptyElements)(line)}}function AddressInput(props){let[value,setValue]=(0,import_react2.useState)(props.defaultValue||{}),valueRef=(0,import_react2.useRef)(value);valueRef.current=value;let{getExtendedProps}=(0,import_react2.useContext)(ElementsContext),[useProps,typeProps,line1Props,line2Props,cityProps,stateProps,postalCodeProps]=(0,import_react2.useMemo)(()=>["use","type","line1","line2","city","state","postalCode"].map(field=>getExtendedProps(props.path+"."+field)),[getExtendedProps,props.path]);function setValueWrapper(newValue){setValue(newValue),props.onChange&&props.onChange(newValue)}function setUse(use){setValueWrapper({...valueRef.current,use})}function setType(type){setValueWrapper({...valueRef.current,type})}function setLine1(line1){setValueWrapper(setLine(valueRef.current||{},0,line1))}function setLine2(line2){setValueWrapper(setLine(valueRef.current||{},1,line2))}function setCity(city){setValueWrapper({...valueRef.current,city})}function setState(state){setValueWrapper({...valueRef.current,state})}function setPostalCode(postalCode){setValueWrapper({...valueRef.current,postalCode})}return(0,import_jsx_runtime2.jsxs)(import_core3.Group,{gap:"xs",wrap:"nowrap",grow:!0,children:[(0,import_jsx_runtime2.jsx)(import_core3.NativeSelect,{disabled:props.disabled||useProps?.readonly,"data-testid":"address-use",defaultValue:value.use,onChange:e=>setUse(e.currentTarget.value),data:["","home","work","temp","old","billing"]}),(0,import_jsx_runtime2.jsx)(import_core3.NativeSelect,{disabled:props.disabled||typeProps?.readonly,"data-testid":"address-type",defaultValue:value.type,onChange:e=>setType(e.currentTarget.value),data:["","postal","physical","both"]}),(0,import_jsx_runtime2.jsx)(import_core3.TextInput,{disabled:props.disabled||line1Props?.readonly,placeholder:"Line 1",defaultValue:getLine(value,0),onChange:e=>setLine1(e.currentTarget.value)}),(0,import_jsx_runtime2.jsx)(import_core3.TextInput,{disabled:props.disabled||line2Props?.readonly,placeholder:"Line 2",defaultValue:getLine(value,1),onChange:e=>setLine2(e.currentTarget.value)}),(0,import_jsx_runtime2.jsx)(import_core3.TextInput,{disabled:props.disabled||cityProps?.readonly,placeholder:"City",defaultValue:value.city,onChange:e=>setCity(e.currentTarget.value)}),(0,import_jsx_runtime2.jsx)(import_core3.TextInput,{disabled:props.disabled||stateProps?.readonly,placeholder:"State",defaultValue:value.state,onChange:e=>setState(e.currentTarget.value)}),(0,import_jsx_runtime2.jsx)(import_core3.TextInput,{disabled:props.disabled||postalCodeProps?.readonly,placeholder:"Postal Code",defaultValue:value.postalCode,onChange:e=>setPostalCode(e.currentTarget.value)})]})}var import_core5=require("@mantine/core"),import_core6=require("@medplum/core"),import_react_hooks=require("@medplum/react-hooks"),import_react3=require("react"),import_jsx_runtime3=require("react/jsx-runtime");function AnnotationInput(props){let author=(0,import_react_hooks.useMedplumProfile)(),[value,setValue]=(0,import_react3.useState)(props.defaultValue||{});function setText(text){let newValue=text?{text,authorReference:author&&(0,import_core6.createReference)(author),time:new Date().toISOString()}:{};setValue(newValue),props.onChange&&props.onChange(newValue)}return(0,import_jsx_runtime3.jsx)(import_core5.TextInput,{disabled:props.disabled,name:props.name,placeholder:"Annotation text",defaultValue:value.text,onChange:e=>setText(e.currentTarget.value)})}var import_core32=require("@mantine/core"),import_react_hooks11=require("@medplum/react-hooks"),import_react18=require("react");var import_core7=require("@mantine/core"),import_core8=require("@medplum/core");var import_react4=require("react");var defaultAttributes={outline:{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"},filled:{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"currentColor",stroke:"none"}};var createReactComponent=(type,iconName,iconNamePascal,iconNode)=>{let Component2=(0,import_react4.forwardRef)(({color="currentColor",size=24,stroke=2,title,className,children,...rest},ref)=>(0,import_react4.createElement)("svg",{ref,...defaultAttributes[type],width:size,height:size,className:["tabler-icon",`tabler-icon-${iconName}`,className].join(" "),...type==="filled"?{fill:color}:{strokeWidth:stroke,stroke:color},...rest},[title&&(0,import_react4.createElement)("title",{key:"svg-title"},title),...iconNode.map(([tag,attrs])=>(0,import_react4.createElement)(tag,attrs)),...Array.isArray(children)?children:[children]]));return Component2.displayName=`${iconNamePascal}`,Component2};var __iconNode=[["path",{d:"M12 6a2 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:"M6 12a2 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:"M15 18a2 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"}]],IconAdjustmentsHorizontal=createReactComponent("outline","adjustments-horizontal","AdjustmentsHorizontal",__iconNode);var __iconNode2=[["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"}]],IconAlertCircle=createReactComponent("outline","alert-circle","AlertCircle",__iconNode2);var __iconNode3=[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M18 13l-6 6",key:"svg-1"}],["path",{d:"M6 13l6 6",key:"svg-2"}]],IconArrowDown=createReactComponent("outline","arrow-down","ArrowDown",__iconNode3);var __iconNode4=[["path",{d:"M5 12l14 0",key:"svg-0"}],["path",{d:"M13 18l6 -6",key:"svg-1"}],["path",{d:"M13 6l6 6",key:"svg-2"}]],IconArrowRight=createReactComponent("outline","arrow-right","ArrowRight",__iconNode4);var __iconNode5=[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M18 11l-6 -6",key:"svg-1"}],["path",{d:"M6 11l6 -6",key:"svg-2"}]],IconArrowUp=createReactComponent("outline","arrow-up","ArrowUp",__iconNode5);var __iconNode6=[["path",{d:"M6 20a2 2 0 1 0 -4 0a2 2 0 0 0 4 0",key:"svg-0"}],["path",{d:"M16 4a2 2 0 1 0 -4 0a2 2 0 0 0 4 0",key:"svg-1"}],["path",{d:"M16 20a2 2 0 1 0 -4 0a2 2 0 0 0 4 0",key:"svg-2"}],["path",{d:"M11 12a2 2 0 1 0 -4 0a2 2 0 0 0 4 0",key:"svg-3"}],["path",{d:"M21 12a2 2 0 1 0 -4 0a2 2 0 0 0 4 0",key:"svg-4"}],["path",{d:"M5.058 18.306l2.88 -4.606",key:"svg-5"}],["path",{d:"M10.061 10.303l2.877 -4.604",key:"svg-6"}],["path",{d:"M10.065 13.705l2.876 4.6",key:"svg-7"}],["path",{d:"M15.063 5.7l2.881 4.61",key:"svg-8"}]],IconBinaryTree=createReactComponent("outline","binary-tree","BinaryTree",__iconNode6);var __iconNode7=[["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"}]],IconBleachOff=createReactComponent("outline","bleach-off","BleachOff",__iconNode7);var __iconNode8=[["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"}]],IconBleach=createReactComponent("outline","bleach","Bleach",__iconNode8);var __iconNode9=[["path",{d:"M18 7v14l-6 -4l-6 4v-14a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4",key:"svg-0"}]],IconBookmark=createReactComponent("outline","bookmark","Bookmark",__iconNode9);var __iconNode10=[["path",{d:"M7 5a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2l0 -10",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"}]],IconBoxMultiple=createReactComponent("outline","box-multiple","BoxMultiple",__iconNode10);var __iconNode11=[["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"}]],IconBracketsContain=createReactComponent("outline","brackets-contain","BracketsContain",__iconNode11);var __iconNode12=[["path",{d:"M3 9a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v9a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2l0 -9",key:"svg-0"}],["path",{d:"M8 7v-2a2 2 0 0 1 2 -2h4a2 2 0 0 1 2 2v2",key:"svg-1"}],["path",{d:"M12 12l0 .01",key:"svg-2"}],["path",{d:"M3 13a20 20 0 0 0 18 0",key:"svg-3"}]],IconBriefcase=createReactComponent("outline","briefcase","Briefcase",__iconNode12);var __iconNode13=[["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"}]],IconBucketOff=createReactComponent("outline","bucket-off","BucketOff",__iconNode13);var __iconNode14=[["path",{d:"M4 7a8 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"}]],IconBucket=createReactComponent("outline","bucket","Bucket",__iconNode14);var __iconNode15=[["path",{d:"M3 20h18v-8a3 3 0 0 0 -3 -3h-12a3 3 0 0 0 -3 3v8",key:"svg-0"}],["path",{d:"M3 14.803c.312 .135 .654 .204 1 .197a2.4 2.4 0 0 0 2 -1a2.4 2.4 0 0 1 2 -1a2.4 2.4 0 0 1 2 1a2.4 2.4 0 0 0 2 1a2.4 2.4 0 0 0 2 -1a2.4 2.4 0 0 1 2 -1a2.4 2.4 0 0 1 2 1a2.4 2.4 0 0 0 2 1c.35 .007 .692 -.062 1 -.197",key:"svg-1"}],["path",{d:"M12 4l1.465 1.638a2 2 0 1 1 -3.015 .099l1.55 -1.737",key:"svg-2"}]],IconCake=createReactComponent("outline","cake","Cake",__iconNode15);var __iconNode16=[["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-12",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"}]],IconCalendar=createReactComponent("outline","calendar","Calendar",__iconNode16);var __iconNode17=[["path",{d:"M5 12l5 5l10 -10",key:"svg-0"}]],IconCheck=createReactComponent("outline","check","Check",__iconNode17);var __iconNode18=[["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"}]],IconCheckbox=createReactComponent("outline","checkbox","Checkbox",__iconNode18);var __iconNode19=[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]],IconChevronDown=createReactComponent("outline","chevron-down","ChevronDown",__iconNode19);var __iconNode20=[["path",{d:"M9 6l6 6l-6 6",key:"svg-0"}]],IconChevronRight=createReactComponent("outline","chevron-right","ChevronRight",__iconNode20);var __iconNode21=[["path",{d:"M6 15l6 -6l6 6",key:"svg-0"}]],IconChevronUp=createReactComponent("outline","chevron-up","ChevronUp",__iconNode21);var __iconNode22=[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M9 12l6 0",key:"svg-1"}]],IconCircleMinus=createReactComponent("outline","circle-minus","CircleMinus",__iconNode22);var __iconNode23=[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M9 12h6",key:"svg-1"}],["path",{d:"M12 9v6",key:"svg-2"}]],IconCirclePlus=createReactComponent("outline","circle-plus","CirclePlus",__iconNode23);var __iconNode24=[["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"}]],IconCloudUpload=createReactComponent("outline","cloud-upload","CloudUpload",__iconNode24);var __iconNode25=[["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"}]],IconColumns=createReactComponent("outline","columns","Columns",__iconNode25);var __iconNode26=[["path",{d:"M7 9.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667l0 -8.666",key:"svg-0"}],["path",{d:"M4.012 16.737a2.005 2.005 0 0 1 -1.012 -1.737v-10c0 -1.1 .9 -2 2 -2h10c.75 0 1.158 .385 1.5 1",key:"svg-1"}]],IconCopy=createReactComponent("outline","copy","Copy",__iconNode26);var __iconNode27=[["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"}]],IconCurrencyDollar=createReactComponent("outline","currency-dollar","CurrencyDollar",__iconNode27);var __iconNode28=[["path",{d:"M4 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M18 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]],IconDots=createReactComponent("outline","dots","Dots",__iconNode28);var __iconNode29=[["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.415",key:"svg-1"}],["path",{d:"M16 5l3 3",key:"svg-2"}]],IconEdit=createReactComponent("outline","edit","Edit",__iconNode29);var __iconNode30=[["path",{d:"M9.5 5.5a2.5 2.5 0 1 0 5 0a2.5 2.5 0 1 0 -5 0",key:"svg-0"}],["path",{d:"M12 21.368l5.095 -5.096a3.088 3.088 0 1 0 -4.367 -4.367l-.728 .727l-.728 -.727a3.088 3.088 0 1 0 -4.367 4.367l5.095 5.096",key:"svg-1"}]],IconEmpathize=createReactComponent("outline","empathize","Empathize",__iconNode30);var __iconNode31=[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}],["path",{d:"M5 19l14 -14",key:"svg-2"}]],IconEqualNot=createReactComponent("outline","equal-not","EqualNot",__iconNode31);var __iconNode32=[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}]],IconEqual=createReactComponent("outline","equal","Equal",__iconNode32);var __iconNode33=[["path",{d:"M10.585 10.587a2 2 0 0 0 2.829 2.828",key:"svg-0"}],["path",{d:"M16.681 16.673a8.717 8.717 0 0 1 -4.681 1.327c-3.6 0 -6.6 -2 -9 -6c1.272 -2.12 2.712 -3.678 4.32 -4.674m2.86 -1.146a9.055 9.055 0 0 1 1.82 -.18c3.6 0 6.6 2 9 6c-.666 1.11 -1.379 2.067 -2.138 2.87",key:"svg-1"}],["path",{d:"M3 3l18 18",key:"svg-2"}]],IconEyeOff=createReactComponent("outline","eye-off","EyeOff",__iconNode33);var __iconNode34=[["path",{d:"M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0",key:"svg-0"}],["path",{d:"M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6",key:"svg-1"}]],IconEye=createReactComponent("outline","eye","Eye",__iconNode34);var __iconNode35=[["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 2",key:"svg-1"}],["path",{d:"M12 17l.01 0",key:"svg-2"}],["path",{d:"M12 11l0 3",key:"svg-3"}]],IconFileAlert=createReactComponent("outline","file-alert","FileAlert",__iconNode35);var __iconNode36=[["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 2",key:"svg-1"}],["path",{d:"M12 11l0 6",key:"svg-2"}],["path",{d:"M9 14l6 0",key:"svg-3"}]],IconFilePlus=createReactComponent("outline","file-plus","FilePlus",__iconNode36);var __iconNode37=[["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.227",key:"svg-0"}]],IconFilter=createReactComponent("outline","filter","Filter",__iconNode37);var __iconNode38=[["path",{d:"M9 6.371c0 4.418 -2.239 6.629 -5 6.629",key:"svg-0"}],["path",{d:"M4 6.371h7",key:"svg-1"}],["path",{d:"M5 9c0 2.144 2.252 3.908 6 4",key:"svg-2"}],["path",{d:"M12 20l4 -9l4 9",key:"svg-3"}],["path",{d:"M19.1 18h-6.2",key:"svg-4"}],["path",{d:"M6.694 3l.793 .582",key:"svg-5"}]],IconLanguage=createReactComponent("outline","language","Language",__iconNode38);var __iconNode39=[["path",{d:"M4 6a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -12",key:"svg-0"}],["path",{d:"M9 4l0 16",key:"svg-1"}]],IconLayoutSidebar=createReactComponent("outline","layout-sidebar","LayoutSidebar",__iconNode39);var __iconNode40=[["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"}]],IconLogout=createReactComponent("outline","logout","Logout",__iconNode40);var __iconNode41=[["path",{d:"M9 11a3 3 0 1 0 6 0a3 3 0 0 0 -6 0",key:"svg-0"}],["path",{d:"M17.657 16.657l-4.243 4.243a2 2 0 0 1 -2.827 0l-4.244 -4.243a8 8 0 1 1 11.314 0",key:"svg-1"}]],IconMapPin=createReactComponent("outline","map-pin","MapPin",__iconNode41);var __iconNode42=[["path",{d:"M5 18l14 -6l-14 -6",key:"svg-0"}]],IconMathGreater=createReactComponent("outline","math-greater","MathGreater",__iconNode42);var __iconNode43=[["path",{d:"M19 18l-14 -6l14 -6",key:"svg-0"}]],IconMathLower=createReactComponent("outline","math-lower","MathLower",__iconNode43);var __iconNode44=[["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 -3h12",key:"svg-2"}]],IconMessage=createReactComponent("outline","message","Message",__iconNode44);var __iconNode45=[["path",{d:"M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4",key:"svg-0"}],["path",{d:"M13.5 6.5l4 4",key:"svg-1"}]],IconPencil=createReactComponent("outline","pencil","Pencil",__iconNode45);var __iconNode46=[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M5 12l14 0",key:"svg-1"}]],IconPlus=createReactComponent("outline","plus","Plus",__iconNode46);var __iconNode47=[["path",{d:"M20 11a8.1 8.1 0 0 0 -15.5 -2m-.5 -4v4h4",key:"svg-0"}],["path",{d:"M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4",key:"svg-1"}]],IconRefresh=createReactComponent("outline","refresh","Refresh",__iconNode47);var __iconNode48=[["path",{d:"M3 10a7 7 0 1 0 14 0a7 7 0 1 0 -14 0",key:"svg-0"}],["path",{d:"M21 21l-6 -6",key:"svg-1"}]],IconSearch=createReactComponent("outline","search","Search",__iconNode48);var __iconNode49=[["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.065",key:"svg-0"}],["path",{d:"M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0",key:"svg-1"}]],IconSettings=createReactComponent("outline","settings","Settings",__iconNode49);var __iconNode50=[["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"}]],IconSortAscending=createReactComponent("outline","sort-ascending","SortAscending",__iconNode50);var __iconNode51=[["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"}]],IconSortDescending=createReactComponent("outline","sort-descending","SortDescending",__iconNode51);var __iconNode52=[["path",{d:"M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14",key:"svg-0"}]],IconSquare=createReactComponent("outline","square","Square",__iconNode52);var __iconNode53=[["path",{d:"M6 4h-1a2 2 0 0 0 -2 2v3.5a5.5 5.5 0 0 0 11 0v-3.5a2 2 0 0 0 -2 -2h-1",key:"svg-0"}],["path",{d:"M8 15a6 6 0 1 0 12 0v-3",key:"svg-1"}],["path",{d:"M11 3v2",key:"svg-2"}],["path",{d:"M6 3v2",key:"svg-3"}],["path",{d:"M18 10a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-4"}]],IconStethoscope=createReactComponent("outline","stethoscope","Stethoscope",__iconNode53);var __iconNode54=[["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"}]],IconSwitchHorizontal=createReactComponent("outline","switch-horizontal","SwitchHorizontal",__iconNode54);var __iconNode55=[["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"}]],IconTableExport=createReactComponent("outline","table-export","TableExport",__iconNode55);var __iconNode56=[["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"}]],IconTrash=createReactComponent("outline","trash","Trash",__iconNode56);var __iconNode57=[["path",{d:"M18 6l-12 12",key:"svg-0"}],["path",{d:"M6 6l12 12",key:"svg-1"}]],IconX=createReactComponent("outline","x","X",__iconNode57);var import_react5=require("react");var import_jsx_runtime4=require("react/jsx-runtime"),ErrorBoundary=class extends import_react5.Component{constructor(props){super(props);__publicField(this,"state");this.state={lastLocation:import_core8.locationUtils.getLocation()}}static getDerivedStateFromError(error){return{error,lastLocation:import_core8.locationUtils.getLocation()}}componentDidUpdate(_prevProps,_prevState){import_core8.locationUtils.getLocation()!==this.state.lastLocation&&this.setState({lastLocation:import_core8.locationUtils.getLocation(),error:void 0})}shouldComponentUpdate(nextProps,nextState){return!!(this.props.children!==nextProps.children||nextState.error&&!this.state.error||this.state.lastLocation!==import_core8.locationUtils.getLocation())}componentDidCatch(error,errorInfo){console.error("Uncaught error:",error,errorInfo)}render(){return this.state.error?(0,import_jsx_runtime4.jsx)(import_core7.Alert,{icon:(0,import_jsx_runtime4.jsx)(IconAlertCircle,{size:16}),title:"Something went wrong",color:"red",children:(0,import_core8.normalizeErrorString)(this.state.error)}):this.props.children}};var import_core9=require("@mantine/core"),import_jsx_runtime5=require("react/jsx-runtime");function Loading(){return(0,import_jsx_runtime5.jsx)(import_core9.Center,{style:{width:"100%",height:"100vh"},children:(0,import_jsx_runtime5.jsx)(import_core9.Loader,{})})}var AppShell_default={main:"AppShell_main"};var import_core22=require("@mantine/core"),import_core23=require("@medplum/core"),import_react_hooks6=require("@medplum/react-hooks");var import_react9=require("react");var import_core13=require("@mantine/core"),import_core14=require("@medplum/core"),import_react_hooks3=require("@medplum/react-hooks");var import_core11=require("@mantine/core"),import_core12=require("@medplum/core"),import_react_hooks2=require("@medplum/react-hooks");var import_core10=require("@medplum/core");function killEvent(e){e.preventDefault(),e.stopPropagation()}function isAuxClick(e){return e.button===1||e.ctrlKey||e.metaKey}function isCheckboxCell(el){if(isCheckboxElement(el))return!0;if(el instanceof HTMLTableCellElement){let children=el.children;if(children.length===1&&isCheckboxElement(children[0]))return!0}return!1}function isCheckboxElement(el){return el instanceof HTMLInputElement&&el.type==="checkbox"}async function sendCommand(frame,command){return new Promise((resolve,reject)=>{let channel=new MessageChannel;channel.port1.onmessage=({data:data2})=>{channel.port1.close(),data2.error?reject(data2.error):resolve(data2.result)},frame.contentWindow?.postMessage(command,new URL(frame.src).origin,[channel.port2])})}function exportJsonFile(jsonString,fileName){let blobForExport=new Blob([jsonString],{type:import_core10.ContentType.JSON}),url=URL.createObjectURL(blobForExport),link=document.createElement("a");link.href=url;let linkName=fileName??new Date().toISOString().replaceAll(/\D/g,"");link.download=`${linkName}.json`,document.body.appendChild(link),link.click(),URL.revokeObjectURL(url)}var import_jsx_runtime6=require("react/jsx-runtime");function MedplumLink(props){let navigate=(0,import_react_hooks2.useMedplumNavigate)(),{to,suffix,label,onClick,children,...rest}=props,href=getHref(to);return suffix&&(href+="/"+suffix),(0,import_jsx_runtime6.jsx)(import_core11.Anchor,{href,"aria-label":label,onAuxClick:e=>{e.stopPropagation()},onClick:e=>{e.stopPropagation(),onClick?(e.preventDefault(),onClick(e)):to&&(isAuxClick(e)||(e.preventDefault(),navigate(href)))},...rest,children})}function getHref(to){if(to){if(typeof to=="string")return getStringHref(to);if((0,import_core12.isResource)(to))return getResourceHref(to);if((0,import_core12.isReference)(to))return getReferenceHref(to)}return"#"}function getStringHref(to){return to.startsWith("http://")||to.startsWith("https://")||to.startsWith("/")?to:"/"+to}function getResourceHref(to){return`/${to.resourceType}/${to.id}`}function getReferenceHref(to){return`/${to.reference}`}function getInitials(input){let words=input.split(" ").filter(Boolean);return words.length>1?words[0][0]+words.at(-1)?.at(0):words.length===1?words[0][0]:""}var import_jsx_runtime7=require("react/jsx-runtime");function ResourceAvatar(props){let resource=(0,import_react_hooks3.useResource)(props.value),text=resource?(0,import_core14.getDisplayString)(resource):props.alt??"",initials=getInitials(text),uncachedImageUrl=(resource&&(0,import_core14.getImageSrc)(resource))??props.src,imageUrl=(0,import_react_hooks3.useCachedBinaryUrl)(uncachedImageUrl??void 0),radius=props.radius??"xl",avatarProps={...props,value:void 0,link:void 0};return props.link?(0,import_jsx_runtime7.jsx)(MedplumLink,{to:resource,children:(0,import_jsx_runtime7.jsx)(import_core13.Avatar,{src:imageUrl,alt:text,radius,...avatarProps,children:initials})}):(0,import_jsx_runtime7.jsx)(import_core13.Avatar,{src:imageUrl,alt:text,radius,...avatarProps,children:initials})}var Header_default={logoButton:"Header_logoButton",user:"Header_user",userName:"Header_userName"};var import_core16=require("@mantine/core"),import_core17=require("@medplum/core"),import_react_hooks4=require("@medplum/react-hooks");var import_react6=require("react");var import_core15=require("@medplum/core"),import_jsx_runtime8=require("react/jsx-runtime");function HumanNameDisplay(props){let name=props.value;return name?(0,import_jsx_runtime8.jsx)(import_jsx_runtime8.Fragment,{children:(0,import_core15.formatHumanName)(name,props.options)}):null}function getAppName(){return process.env.MEDPLUM_APP_NAME||"Medplum"}var import_jsx_runtime9=require("react/jsx-runtime");function HeaderDropdown(props){let context=(0,import_react_hooks4.useMedplumContext)(),{medplum,profile,navigate}=context,logins=medplum.getLogins(),{colorScheme,setColorScheme}=(0,import_core16.useMantineColorScheme)(),[layoutVersion]=(0,import_react6.useState)(localStorage.appShellLayoutVersion??"v1");function setAppShellVersion(version){localStorage.appShellLayoutVersion=version,import_core17.locationUtils.reload()}return(0,import_jsx_runtime9.jsxs)(import_jsx_runtime9.Fragment,{children:[(0,import_jsx_runtime9.jsxs)(import_core16.Stack,{align:"center",p:"xl",children:[(0,import_jsx_runtime9.jsx)(ResourceAvatar,{size:"xl",radius:100,value:context.profile}),(0,import_jsx_runtime9.jsx)(HumanNameDisplay,{value:context.profile?.name?.[0]}),(0,import_jsx_runtime9.jsx)(import_core16.Text,{c:"dimmed",size:"xs",children:medplum.getActiveLogin()?.project.display})]}),logins.length>1&&(0,import_jsx_runtime9.jsx)(import_core16.Menu.Divider,{}),logins.map(login=>login.profile.reference!==(0,import_core17.getReferenceString)(context.profile)&&(0,import_jsx_runtime9.jsx)(import_core16.Menu.Item,{onClick:()=>{medplum.setActiveLogin(login).then(()=>import_core17.locationUtils.reload()).catch(console.log)},children:(0,import_jsx_runtime9.jsxs)(import_core16.Group,{children:[(0,import_jsx_runtime9.jsx)(import_core16.Avatar,{radius:"xl"}),(0,import_jsx_runtime9.jsxs)("div",{style:{flex:1},children:[(0,import_jsx_runtime9.jsx)(import_core16.Text,{size:"sm",fw:500,children:login.profile.display}),(0,import_jsx_runtime9.jsx)(import_core16.Text,{c:"dimmed",size:"xs",children:login.project.display})]})]})},login.profile.reference)),(0,import_jsx_runtime9.jsx)(import_core16.Menu.Divider,{}),(0,import_jsx_runtime9.jsx)(import_core16.Menu.Item,{leftSection:(0,import_jsx_runtime9.jsx)(IconSwitchHorizontal,{size:14,stroke:1.5}),onClick:()=>navigate("/signin"),children:"Switch to another project"}),(0,import_jsx_runtime9.jsx)(import_core16.Menu.Divider,{}),(0,import_jsx_runtime9.jsxs)(import_core16.Group,{justify:"center",children:[(0,import_jsx_runtime9.jsx)(import_core16.SegmentedControl,{size:"xs",value:colorScheme,onChange:newValue=>setColorScheme(newValue),data:[{label:"Light",value:"light"},{label:"Dark",value:"dark"},{label:"Auto",value:"auto"}]}),(0,import_jsx_runtime9.jsx)(import_core16.SegmentedControl,{size:"xs",value:layoutVersion,onChange:newValue=>setAppShellVersion(newValue),data:[{label:"v1",value:"v1"},{label:"v2",value:"v2"}]})]}),(0,import_jsx_runtime9.jsx)(import_core16.Menu.Divider,{}),(0,import_jsx_runtime9.jsx)(import_core16.Menu.Item,{leftSection:(0,import_jsx_runtime9.jsx)(IconSettings,{size:14,stroke:1.5}),onClick:()=>navigate(`/${(0,import_core17.getReferenceString)(profile)}`),children:"Account settings"}),(0,import_jsx_runtime9.jsx)(import_core16.Menu.Item,{leftSection:(0,import_jsx_runtime9.jsx)(IconLogout,{size:14,stroke:1.5}),onClick:async()=>{await medplum.signOut(),navigate("/signin")},children:"Sign out"}),(0,import_jsx_runtime9.jsxs)(import_core16.Text,{size:"xs",c:"dimmed",my:"sm",ta:"center",children:[getAppName()," ",props.version]})]})}var import_core20=require("@mantine/core"),import_core21=require("@medplum/core"),import_react_hooks5=require("@medplum/react-hooks");var import_react8=require("react");var import_core18=require("@mantine/core"),import_notifications=require("@mantine/notifications"),import_core19=require("@medplum/core");var import_react7=require("react");var AsyncAutocompleteTestIds={selectedItems:"selected-items",options:"options"};var import_jsx_runtime10=require("react/jsx-runtime");function AsyncAutocomplete(props){let combobox=(0,import_core18.useCombobox)({onDropdownClose:()=>combobox.resetSelectedOption(),onDropdownOpen:()=>combobox.updateSelectedOptionIndex("active")}),{name,label,description,error,defaultValue:defaultValue2,toOption:toOption4,loadOptions,itemComponent,pillComponent,emptyComponent,onChange,onCreate,creatable,clearable,required,placeholder,leftSection,maxValues,optionsDropdownMaxHeight=320,minInputLength=0,...rest}=props,disabled=rest.disabled,defaultItems=toDefaultItems(defaultValue2),[search,setSearch]=(0,import_react7.useState)(""),[timer,setTimer]=(0,import_react7.useState)(),[abortController,setAbortController]=(0,import_react7.useState)(),[autoSubmit,setAutoSubmit]=(0,import_react7.useState)(),[selected,setSelected]=(0,import_react7.useState)(defaultItems.map(toOption4)),[options,setOptions]=(0,import_react7.useState)([]),ItemComponent3=itemComponent??DefaultItemComponent,PillComponent=pillComponent??DefaultPillComponent,EmptyComponent=emptyComponent??DefaultEmptyComponent,searchRef=(0,import_react7.useRef)(search);searchRef.current=search;let lastLoadOptionsRef=(0,import_react7.useRef)(void 0),lastValueRef=(0,import_react7.useRef)(void 0),timerRef=(0,import_react7.useRef)(timer);timerRef.current=timer;let abortControllerRef=(0,import_react7.useRef)(abortController);abortControllerRef.current=abortController;let autoSubmitRef=(0,import_react7.useRef)(autoSubmit);autoSubmitRef.current=autoSubmit;let optionsRef=(0,import_react7.useRef)(options);optionsRef.current=options;let handleTimer=(0,import_react7.useCallback)(()=>{if(setTimer(void 0),searchRef.current===lastValueRef.current&&loadOptions===lastLoadOptionsRef.current||(searchRef.current?.length??0)<minInputLength)return;lastValueRef.current=searchRef.current,lastLoadOptionsRef.current=loadOptions;let newAbortController=new AbortController;setAbortController(newAbortController),loadOptions(searchRef.current??"",newAbortController.signal).then(newValues=>{newAbortController.signal.aborted||(setOptions(newValues.map(toOption4)),autoSubmitRef.current?(newValues.length>0&&onChange(newValues.slice(0,1)),setAutoSubmit(!1)):newValues.length>0&&combobox.openDropdown())}).catch(err=>{newAbortController.signal.aborted||err.message.includes("aborted")||(0,import_notifications.showNotification)({color:"red",message:(0,import_core19.normalizeErrorString)(err)})}).finally(()=>{newAbortController.signal.aborted||setAbortController(void 0)})},[combobox,loadOptions,onChange,toOption4,minInputLength]),handleSearchChange=(0,import_react7.useCallback)(e=>{(options&&options.length>0||creatable)&&combobox.openDropdown(),combobox.updateSelectedOptionIndex(),setSearch(e.currentTarget.value),abortControllerRef.current&&(abortControllerRef.current.abort(),setAbortController(void 0)),timerRef.current!==void 0&&window.clearTimeout(timerRef.current);let newTimer=window.setTimeout(()=>handleTimer(),100);setTimer(newTimer)},[combobox,options,creatable,handleTimer]),addSelected=(0,import_react7.useCallback)(newValue=>{let alreadySelected=selected.some(v=>v.value===newValue),newSelected=alreadySelected?selected.filter(v=>v.value!==newValue):[...selected],option=options?.find(option2=>option2.value===newValue);if(!option&&creatable!==!1&&onCreate){let createdResource=onCreate(newValue);option=toOption4(createdResource)}if(option){if(maxValues===0){onChange([option.resource]),selected.length>0&&setSelected([]);return}alreadySelected||newSelected.push(option)}if(maxValues!==void 0)for(;newSelected.length>maxValues;)newSelected.shift();onChange(newSelected.map(v=>v.resource)),setSelected(newSelected)},[creatable,options,selected,maxValues,onChange,onCreate,toOption4]),handleValueSelect=(0,import_react7.useMemo)(()=>{if(!disabled)return val=>{disabled||(maxValues===1&&(setSearch(""),setOptions([]),combobox.closeDropdown()),lastValueRef.current=void 0,val==="$create"?(setSearch(""),addSelected(search)):addSelected(val))}},[addSelected,combobox,disabled,maxValues,search]),handleValueRemove=(0,import_react7.useCallback)(item=>{let newSelected=selected.filter(v=>v.value!==item.value);onChange(newSelected.map(v=>v.resource)),setSelected(newSelected)},[selected,onChange]),handleKeyDown=(0,import_react7.useCallback)(e=>{e.key==="Enter"?(timer||abortController)&&setAutoSubmit(!0):e.key==="Backspace"&&search.length===0&&(killEvent(e),handleValueRemove(selected[selected.length-1]))},[abortController,handleValueRemove,search.length,selected,timer]);(0,import_react7.useEffect)(()=>()=>{abortControllerRef.current&&abortControllerRef.current.abort()},[]);let clearButton=!disabled&&clearable&&selected.length>0&&(0,import_jsx_runtime10.jsx)(import_core18.Combobox.ClearButton,{title:"Clear all",size:"sm",onClear:()=>{setSearch(""),setSelected([]),onChange([]),combobox.closeDropdown()}}),createVisible=creatable&&search.trim().length>0,comboboxVisible=options.length>0||createVisible;return(0,import_jsx_runtime10.jsxs)(import_core18.Combobox,{store:combobox,onOptionSubmit:handleValueSelect,withinPortal:!0,shadow:"xl",...rest,children:[(0,import_jsx_runtime10.jsx)(import_core18.Combobox.DropdownTarget,{children:(0,import_jsx_runtime10.jsx)(import_core18.PillsInput,{label,description,error,className:props.className,leftSection,rightSection:abortController?(0,import_jsx_runtime10.jsx)(import_core18.Loader,{size:16}):clearButton,required,disabled,children:(0,import_jsx_runtime10.jsxs)(import_core18.Pill.Group,{"data-testid":AsyncAutocompleteTestIds.selectedItems,children:[selected.map(item=>(0,import_jsx_runtime10.jsx)(PillComponent,{item,disabled,onRemove:()=>handleValueRemove(item)},item.value)),!disabled&&(maxValues===void 0||maxValues===0||selected.length<maxValues)&&(0,import_jsx_runtime10.jsx)(import_core18.Combobox.EventsTarget,{children:(0,import_jsx_runtime10.jsx)(import_core18.PillsInput.Field,{role:"searchbox",name,value:search,placeholder,onFocus:handleSearchChange,onBlur:()=>{combobox.closeDropdown(),setSearch("")},onKeyDown:handleKeyDown,onChange:handleSearchChange})})]})})}),(0,import_jsx_runtime10.jsx)(import_core18.Combobox.Dropdown,{hidden:!comboboxVisible,"data-testid":AsyncAutocompleteTestIds.options,children:(0,import_jsx_runtime10.jsx)(import_core18.Combobox.Options,{children:(0,import_jsx_runtime10.jsxs)(import_core18.ScrollAreaAutosize,{type:"scroll",mah:optionsDropdownMaxHeight,children:[options.map(item=>{let active=selected.some(v=>v.value===item.value);return(0,import_jsx_runtime10.jsx)(import_core18.Combobox.Option,{value:item.value,active,children:(0,import_jsx_runtime10.jsx)(ItemComponent3,{...item,active})},item.value)}),createVisible&&(0,import_jsx_runtime10.jsxs)(import_core18.Combobox.Option,{value:"$create",children:["+ Create ",search]}),!creatable&&search.trim().length>0&&options.length===0&&(0,import_jsx_runtime10.jsx)(EmptyComponent,{search})]})})})]})}function toDefaultItems(defaultValue2){return defaultValue2?Array.isArray(defaultValue2)?defaultValue2:[defaultValue2]:[]}function DefaultItemComponent(props){return(0,import_jsx_runtime10.jsxs)(import_core18.Group,{gap:"xs",children:[props.active&&(0,import_jsx_runtime10.jsx)(IconCheck,{size:12}),(0,import_jsx_runtime10.jsx)("span",{children:props.label})]})}function DefaultPillComponent({item,disabled,onRemove}){return(0,import_jsx_runtime10.jsx)(import_core18.Pill,{withRemoveButton:!disabled,onRemove,children:item.label})}function DefaultEmptyComponent(){return(0,import_jsx_runtime10.jsx)(import_core18.Combobox.Empty,{children:"Nothing found"})}var HeaderSearchInput_default={searchInput:"HeaderSearchInput_searchInput"};var import_jsx_runtime11=require("react/jsx-runtime");function toOption(resource){return{value:resource.id,label:(0,import_core21.getDisplayString)(resource),resource}}function HeaderSearchInput(props){let navigate=(0,import_react_hooks5.useMedplumNavigate)(),medplum=(0,import_react_hooks5.useMedplum)(),loadData=(0,import_react8.useCallback)(async(input,signal)=>{let query=buildGraphQLQuery(input),options={signal},response=await medplum.graphql(query,void 0,void 0,options);return getResourcesFromResponse(response,input)},[medplum]),handleSelect=(0,import_react8.useCallback)(item=>{item.length>0&&navigate(`/${(0,import_core21.getReferenceString)(item[0])}`)},[navigate]);return(0,import_jsx_runtime11.jsx)(AsyncAutocomplete,{size:"sm",radius:"md",className:HeaderSearchInput_default.searchInput,leftSection:(0,import_jsx_runtime11.jsx)(IconSearch,{size:16}),placeholder:"Search",itemComponent:ItemComponent,toOption,onChange:handleSelect,loadOptions:loadData,maxValues:0,clearable:!1},`${props.pathname}?${props.searchParams}`)}var ItemComponent=(0,import_react8.forwardRef)(({resource,active:_active,...others},ref)=>{let helpText;return resource.resourceType==="Patient"?helpText=resource.birthDate:resource.resourceType==="ServiceRequest"&&(helpText=resource.subject?.display),(0,import_jsx_runtime11.jsx)("div",{ref,...others,children:(0,import_jsx_runtime11.jsxs)(import_core20.Group,{wrap:"nowrap",children:[(0,import_jsx_runtime11.jsx)(ResourceAvatar,{value:resource}),(0,import_jsx_runtime11.jsxs)("div",{children:[(0,import_jsx_runtime11.jsx)(import_core20.Text,{children:(0,import_core21.getDisplayString)(resource)}),(0,import_jsx_runtime11.jsx)(import_core20.Text,{size:"xs",c:"dimmed",children:helpText})]})]})})});function buildGraphQLQuery(input){let escaped=JSON.stringify(input);return(0,import_core21.isUUID)(input)?`{
|
|
1
|
+
"use strict";var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value;var __commonJS=(cb,mod)=>function(){return mod||(0,cb[__getOwnPropNames(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports};var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__reExport=(target,mod,secondTarget)=>(__copyProps(target,mod,"default"),secondTarget&&__copyProps(secondTarget,mod,"default")),__toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var __publicField=(obj,key,value)=>__defNormalProp(obj,typeof key!="symbol"?key+"":key,value);var require_pointer=__commonJS({"../../node_modules/rfc6902/pointer.js"(exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.Pointer=exports.escapeToken=exports.unescapeToken=void 0;function unescapeToken(token){return token.replace(/~1/g,"/").replace(/~0/g,"~")}exports.unescapeToken=unescapeToken;function escapeToken(token){return token.replace(/~/g,"~0").replace(/\//g,"~1")}exports.escapeToken=escapeToken;var Pointer=(function(){function Pointer2(tokens){tokens===void 0&&(tokens=[""]),this.tokens=tokens}return Pointer2.fromJSON=function(path){var tokens=path.split("/").map(unescapeToken);if(tokens[0]!=="")throw new Error("Invalid JSON Pointer: ".concat(path));return new Pointer2(tokens)},Pointer2.prototype.toString=function(){return this.tokens.map(escapeToken).join("/")},Pointer2.prototype.evaluate=function(object){for(var parent=null,key="",value=object,i=1,l=this.tokens.length;i<l;i++)parent=value,key=this.tokens[i],!(key=="__proto__"||key=="constructor"||key=="prototype")&&(value=(parent||{})[key]);return{parent,key,value}},Pointer2.prototype.get=function(object){return this.evaluate(object).value},Pointer2.prototype.set=function(object,value){var endpoint=this.evaluate(object);endpoint.parent&&(endpoint.parent[endpoint.key]=value)},Pointer2.prototype.push=function(token){this.tokens.push(token)},Pointer2.prototype.add=function(token){var tokens=this.tokens.concat(String(token));return new Pointer2(tokens)},Pointer2})();exports.Pointer=Pointer}});var require_util=__commonJS({"../../node_modules/rfc6902/util.js"(exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.clone=exports.objectType=exports.hasOwnProperty=void 0;exports.hasOwnProperty=Object.prototype.hasOwnProperty;function objectType(object){return object===void 0?"undefined":object===null?"null":Array.isArray(object)?"array":typeof object}exports.objectType=objectType;function isNonPrimitive(value){return value!=null&&typeof value=="object"}function clone(source){if(!isNonPrimitive(source))return source;if(source.constructor==Array){for(var length_1=source.length,arrayTarget=new Array(length_1),i=0;i<length_1;i++)arrayTarget[i]=clone(source[i]);return arrayTarget}if(source.constructor==Date){var dateTarget=new Date(+source);return dateTarget}var objectTarget={};for(var key in source)exports.hasOwnProperty.call(source,key)&&(objectTarget[key]=clone(source[key]));return objectTarget}exports.clone=clone}});var require_diff=__commonJS({"../../node_modules/rfc6902/diff.js"(exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.diffAny=exports.diffObjects=exports.diffArrays=exports.intersection=exports.subtract=exports.isDestructive=void 0;var util_1=require_util();function isDestructive(_a){var op=_a.op;return op==="remove"||op==="replace"||op==="copy"||op==="move"}exports.isDestructive=isDestructive;function subtract(minuend,subtrahend){var obj={};for(var add_key in minuend)util_1.hasOwnProperty.call(minuend,add_key)&&minuend[add_key]!==void 0&&(obj[add_key]=1);for(var del_key in subtrahend)util_1.hasOwnProperty.call(subtrahend,del_key)&&subtrahend[del_key]!==void 0&&delete obj[del_key];return Object.keys(obj)}exports.subtract=subtract;function intersection(objects){for(var length=objects.length,counter={},i=0;i<length;i++){var object=objects[i];for(var key in object)util_1.hasOwnProperty.call(object,key)&&object[key]!==void 0&&(counter[key]=(counter[key]||0)+1)}for(var key in counter)counter[key]<length&&delete counter[key];return Object.keys(counter)}exports.intersection=intersection;function isArrayAdd(array_operation){return array_operation.op==="add"}function isArrayRemove(array_operation){return array_operation.op==="remove"}function appendArrayOperation(base,operation){return{operations:base.operations.concat(operation),cost:base.cost+1}}function diffArrays(input,output,ptr,diff2){diff2===void 0&&(diff2=diffAny);var memo2={"0,0":{operations:[],cost:0}};function dist(i,j){var memo_key="".concat(i,",").concat(j),memoized=memo2[memo_key];if(memoized===void 0){if(i>0&&j>0&&!diff2(input[i-1],output[j-1],ptr.add(String(i-1))).length)memoized=dist(i-1,j-1);else{var alternatives=[];if(i>0){var remove_base=dist(i-1,j),remove_operation={op:"remove",index:i-1};alternatives.push(appendArrayOperation(remove_base,remove_operation))}if(j>0){var add_base=dist(i,j-1),add_operation={op:"add",index:i-1,value:output[j-1]};alternatives.push(appendArrayOperation(add_base,add_operation))}if(i>0&&j>0){var replace_base=dist(i-1,j-1),replace_operation={op:"replace",index:i-1,original:input[i-1],value:output[j-1]};alternatives.push(appendArrayOperation(replace_base,replace_operation))}var best=alternatives.sort(function(a,b){return a.cost-b.cost})[0];memoized=best}memo2[memo_key]=memoized}return memoized}var input_length=isNaN(input.length)||input.length<=0?0:input.length,output_length=isNaN(output.length)||output.length<=0?0:output.length,array_operations=dist(input_length,output_length).operations,padded_operations=array_operations.reduce(function(_a,array_operation){var operations=_a[0],padding=_a[1];if(isArrayAdd(array_operation)){var padded_index=array_operation.index+1+padding,index_token=padded_index<input_length+padding?String(padded_index):"-",operation={op:array_operation.op,path:ptr.add(index_token).toString(),value:array_operation.value};return[operations.concat(operation),padding+1]}else if(isArrayRemove(array_operation)){var operation={op:array_operation.op,path:ptr.add(String(array_operation.index+padding)).toString()};return[operations.concat(operation),padding-1]}else{var replace_ptr=ptr.add(String(array_operation.index+padding)),replace_operations=diff2(array_operation.original,array_operation.value,replace_ptr);return[operations.concat.apply(operations,replace_operations),padding]}},[[],0])[0];return padded_operations}exports.diffArrays=diffArrays;function diffObjects(input,output,ptr,diff2){diff2===void 0&&(diff2=diffAny);var operations=[];return subtract(input,output).forEach(function(key){operations.push({op:"remove",path:ptr.add(key).toString()})}),subtract(output,input).forEach(function(key){operations.push({op:"add",path:ptr.add(key).toString(),value:output[key]})}),intersection([input,output]).forEach(function(key){operations.push.apply(operations,diff2(input[key],output[key],ptr.add(key)))}),operations}exports.diffObjects=diffObjects;function diffAny(input,output,ptr,diff2){if(diff2===void 0&&(diff2=diffAny),input===output)return[];var input_type=(0,util_1.objectType)(input),output_type=(0,util_1.objectType)(output);return input_type=="array"&&output_type=="array"?diffArrays(input,output,ptr,diff2):input_type=="object"&&output_type=="object"?diffObjects(input,output,ptr,diff2):[{op:"replace",path:ptr.toString(),value:output}]}exports.diffAny=diffAny}});var require_patch=__commonJS({"../../node_modules/rfc6902/patch.js"(exports){"use strict";var __extends=exports&&exports.__extends||(function(){var extendStatics=function(d,b){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d2,b2){d2.__proto__=b2}||function(d2,b2){for(var p in b2)Object.prototype.hasOwnProperty.call(b2,p)&&(d2[p]=b2[p])},extendStatics(d,b)};return function(d,b){if(typeof b!="function"&&b!==null)throw new TypeError("Class extends value "+String(b)+" is not a constructor or null");extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}})();Object.defineProperty(exports,"__esModule",{value:!0});exports.apply=exports.InvalidOperationError=exports.test=exports.copy=exports.move=exports.replace=exports.remove=exports.add=exports.TestError=exports.MissingError=void 0;var pointer_1=require_pointer(),util_1=require_util(),diff_1=require_diff(),MissingError=(function(_super){__extends(MissingError2,_super);function MissingError2(path){var _this=_super.call(this,"Value required at path: ".concat(path))||this;return _this.path=path,_this.name="MissingError",_this}return MissingError2})(Error);exports.MissingError=MissingError;var TestError=(function(_super){__extends(TestError2,_super);function TestError2(actual,expected){var _this=_super.call(this,"Test failed: ".concat(actual," != ").concat(expected))||this;return _this.actual=actual,_this.expected=expected,_this.name="TestError",_this}return TestError2})(Error);exports.TestError=TestError;function _add(object,key,value){if(Array.isArray(object))if(key=="-")object.push(value);else{var index=parseInt(key,10);object.splice(index,0,value)}else object[key]=value}function _remove(object,key){if(Array.isArray(object)){var index=parseInt(key,10);object.splice(index,1)}else delete object[key]}function add(object,operation){var endpoint=pointer_1.Pointer.fromJSON(operation.path).evaluate(object);return endpoint.parent===void 0?new MissingError(operation.path):(_add(endpoint.parent,endpoint.key,(0,util_1.clone)(operation.value)),null)}exports.add=add;function remove(object,operation){var endpoint=pointer_1.Pointer.fromJSON(operation.path).evaluate(object);return endpoint.value===void 0?new MissingError(operation.path):(_remove(endpoint.parent,endpoint.key),null)}exports.remove=remove;function replace(object,operation){var endpoint=pointer_1.Pointer.fromJSON(operation.path).evaluate(object);if(endpoint.parent===null)return new MissingError(operation.path);if(Array.isArray(endpoint.parent)){if(parseInt(endpoint.key,10)>=endpoint.parent.length)return new MissingError(operation.path)}else if(endpoint.value===void 0)return new MissingError(operation.path);return endpoint.parent[endpoint.key]=(0,util_1.clone)(operation.value),null}exports.replace=replace;function move(object,operation){var from_endpoint=pointer_1.Pointer.fromJSON(operation.from).evaluate(object);if(from_endpoint.value===void 0)return new MissingError(operation.from);var endpoint=pointer_1.Pointer.fromJSON(operation.path).evaluate(object);return endpoint.parent===void 0?new MissingError(operation.path):(_remove(from_endpoint.parent,from_endpoint.key),_add(endpoint.parent,endpoint.key,from_endpoint.value),null)}exports.move=move;function copy(object,operation){var from_endpoint=pointer_1.Pointer.fromJSON(operation.from).evaluate(object);if(from_endpoint.value===void 0)return new MissingError(operation.from);var endpoint=pointer_1.Pointer.fromJSON(operation.path).evaluate(object);return endpoint.parent===void 0?new MissingError(operation.path):(_add(endpoint.parent,endpoint.key,(0,util_1.clone)(from_endpoint.value)),null)}exports.copy=copy;function test(object,operation){var endpoint=pointer_1.Pointer.fromJSON(operation.path).evaluate(object);return(0,diff_1.diffAny)(endpoint.value,operation.value,new pointer_1.Pointer).length?new TestError(endpoint.value,operation.value):null}exports.test=test;var InvalidOperationError=(function(_super){__extends(InvalidOperationError2,_super);function InvalidOperationError2(operation){var _this=_super.call(this,"Invalid operation: ".concat(operation.op))||this;return _this.operation=operation,_this.name="InvalidOperationError",_this}return InvalidOperationError2})(Error);exports.InvalidOperationError=InvalidOperationError;function apply(object,operation){switch(operation.op){case"add":return add(object,operation);case"remove":return remove(object,operation);case"replace":return replace(object,operation);case"move":return move(object,operation);case"copy":return copy(object,operation);case"test":return test(object,operation)}return new InvalidOperationError(operation)}exports.apply=apply}});var require_rfc6902=__commonJS({"../../node_modules/rfc6902/index.js"(exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.createTests=exports.createPatch=exports.applyPatch=exports.Pointer=void 0;var pointer_1=require_pointer();Object.defineProperty(exports,"Pointer",{enumerable:!0,get:function(){return pointer_1.Pointer}});var patch_1=require_patch(),diff_1=require_diff();function applyPatch(object,patch){return patch.map(function(operation){return(0,patch_1.apply)(object,operation)})}exports.applyPatch=applyPatch;function wrapVoidableDiff(diff2){function wrappedDiff(input,output,ptr){var custom_patch=diff2(input,output,ptr);return Array.isArray(custom_patch)?custom_patch:(0,diff_1.diffAny)(input,output,ptr,wrappedDiff)}return wrappedDiff}function createPatch2(input,output,diff2){var ptr=new pointer_1.Pointer;return(diff2?wrapVoidableDiff(diff2):diff_1.diffAny)(input,output,ptr)}exports.createPatch=createPatch2;function createTest(input,path){var endpoint=pointer_1.Pointer.fromJSON(path).evaluate(input);if(endpoint!==void 0)return{op:"test",path,value:endpoint.value}}function createTests(input,patch){var tests=new Array;return patch.filter(diff_1.isDestructive).forEach(function(operation){var pathTest=createTest(input,operation.path);if(pathTest&&tests.push(pathTest),"from"in operation){var fromTest=createTest(input,operation.from);fromTest&&tests.push(fromTest)}}),tests}exports.createTests=createTests}});var index_exports={};__export(index_exports,{AddressDisplay:()=>AddressDisplay,AddressInput:()=>AddressInput,AnnotationInput:()=>AnnotationInput,AppShell:()=>AppShell,AsyncAutocomplete:()=>AsyncAutocomplete,AttachmentArrayDisplay:()=>AttachmentArrayDisplay,AttachmentArrayInput:()=>AttachmentArrayInput,AttachmentButton:()=>AttachmentButton,AttachmentDisplay:()=>AttachmentDisplay,AttachmentInput:()=>AttachmentInput,BackboneElementDisplay:()=>BackboneElementDisplay,BackboneElementInput:()=>BackboneElementInput,BaseChat:()=>BaseChat,CalendarInput:()=>CalendarInput,ChatModal:()=>ChatModal,CheckboxFormSection:()=>CheckboxFormSection,CodeInput:()=>CodeInput,CodeableConceptDisplay:()=>CodeableConceptDisplay,CodeableConceptInput:()=>CodeableConceptInput,CodingDisplay:()=>CodingDisplay,CodingInput:()=>CodingInput,ContactDetailDisplay:()=>ContactDetailDisplay,ContactDetailInput:()=>ContactDetailInput,ContactPointDisplay:()=>ContactPointDisplay,ContactPointInput:()=>ContactPointInput,Container:()=>Container,DateTimeInput:()=>DateTimeInput,DefaultResourceTimeline:()=>DefaultResourceTimeline,DescriptionList:()=>DescriptionList,DescriptionListEntry:()=>DescriptionListEntry,DiagnosticReportDisplay:()=>DiagnosticReportDisplay,Document:()=>Document,ElementDefinitionInputSelector:()=>ElementDefinitionInputSelector,ElementDefinitionTypeInput:()=>ElementDefinitionTypeInput,EncounterTimeline:()=>EncounterTimeline,ErrorBoundary:()=>ErrorBoundary,FhirPathTable:()=>FhirPathTable,Form:()=>Form,FormSection:()=>FormSection,Header:()=>Header,HumanNameDisplay:()=>HumanNameDisplay,HumanNameInput:()=>HumanNameInput,IdentifierDisplay:()=>IdentifierDisplay,IdentifierInput:()=>IdentifierInput,InfoBar:()=>InfoBar,LinkTabs:()=>LinkTabs,Loading:()=>Loading,Logo:()=>Logo,MeasureReportDisplay:()=>MeasureReportDisplay,MedplumLink:()=>MedplumLink,MemoizedFhirPathTable:()=>MemoizedFhirPathTable,MfaForm:()=>MfaForm,MoneyDisplay:()=>MoneyDisplay,MoneyInput:()=>MoneyInput,Navbar:()=>Navbar,NoteDisplay:()=>NoteDisplay,NotificationIcon:()=>NotificationIcon,ObservationTable:()=>ObservationTable,OperationOutcomeAlert:()=>OperationOutcomeAlert,Panel:()=>Panel,PatientExportForm:()=>PatientExportForm,PatientHeader:()=>PatientHeader,PatientSummary:()=>PatientSummary,PatientTimeline:()=>PatientTimeline,PlanDefinitionBuilder:()=>PlanDefinitionBuilder,QuantityDisplay:()=>QuantityDisplay,QuantityInput:()=>QuantityInput,QuestionnaireBuilder:()=>QuestionnaireBuilder,QuestionnaireForm:()=>QuestionnaireForm,QuestionnaireResponseDisplay:()=>QuestionnaireResponseDisplay,RangeDisplay:()=>RangeDisplay,RangeInput:()=>RangeInput,RatioInput:()=>RatioInput,ReferenceDisplay:()=>ReferenceDisplay,ReferenceInput:()=>ReferenceInput,ReferenceRangeEditor:()=>ReferenceRangeEditor,ReferenceRangeGroupEditor:()=>ReferenceRangeGroupEditor,RegisterForm:()=>RegisterForm,RequestGroupDisplay:()=>RequestGroupDisplay,ResourceArrayDisplay:()=>ResourceArrayDisplay,ResourceArrayInput:()=>ResourceArrayInput,ResourceAvatar:()=>ResourceAvatar,ResourceBadge:()=>ResourceBadge,ResourceBlame:()=>ResourceBlame,ResourceDiff:()=>ResourceDiff,ResourceDiffTable:()=>ResourceDiffTable,ResourceForm:()=>ResourceForm,ResourceHistoryTable:()=>ResourceHistoryTable,ResourceInput:()=>ResourceInput,ResourceName:()=>ResourceName,ResourcePropertyDisplay:()=>ResourcePropertyDisplay,ResourcePropertyInput:()=>ResourcePropertyInput,ResourceTable:()=>ResourceTable,ResourceTimeline:()=>ResourceTimeline,Scheduler:()=>Scheduler,SearchChangeEvent:()=>SearchChangeEvent,SearchClickEvent:()=>SearchClickEvent,SearchControl:()=>SearchControl,SearchFieldEditor:()=>SearchFieldEditor,SearchFilterEditor:()=>SearchFilterEditor,SearchLoadEvent:()=>SearchLoadEvent,ServiceRequestTimeline:()=>ServiceRequestTimeline,SignInForm:()=>SignInForm,SignatureInput:()=>SignatureInput,SmartAppLaunchLink:()=>SmartAppLaunchLink,Spotlight:()=>Spotlight,StatusBadge:()=>StatusBadge,SubmitButton:()=>SubmitButton,ThreadChat:()=>ThreadChat,Timeline:()=>Timeline,TimelineItem:()=>TimelineItem,TimingInput:()=>TimingInput,ValueSetAutocomplete:()=>ValueSetAutocomplete,addDateFilterBetween:()=>addDateFilterBetween,addField:()=>addField,addFilter:()=>addFilter,addLastMonthFilter:()=>addLastMonthFilter,addMissingFilter:()=>addMissingFilter,addNext24HoursFilter:()=>addNext24HoursFilter,addNextMonthFilter:()=>addNextMonthFilter,addThisMonthFilter:()=>addThisMonthFilter,addTodayFilter:()=>addTodayFilter,addTomorrowFilter:()=>addTomorrowFilter,addYearToDateFilter:()=>addYearToDateFilter,addYesterdayFilter:()=>addYesterdayFilter,buildFieldNameString:()=>buildFieldNameString,clearFilters:()=>clearFilters,clearFiltersOnField:()=>clearFiltersOnField,convertIsoToLocal:()=>convertIsoToLocal,convertLocalToIso:()=>convertLocalToIso,createScriptTag:()=>createScriptTag,deleteFilter:()=>deleteFilter,exportJsonFile:()=>exportJsonFile,getAppName:()=>getAppName,getErrorsForInput:()=>getErrorsForInput,getFieldDefinitions:()=>getFieldDefinitions,getIssuesForExpression:()=>getIssuesForExpression,getOpString:()=>getOpString,getPaginationControlProps:()=>getPaginationControlProps,getRecaptcha:()=>getRecaptcha,getSearchOperators:()=>getSearchOperators,getSortField:()=>getSortField,getValuePath:()=>getValuePath,initRecaptcha:()=>initRecaptcha,isAuxClick:()=>isAuxClick,isCheckboxCell:()=>isCheckboxCell,isSortDescending:()=>isSortDescending,isSupportedProfileStructureDefinition:()=>isSupportedProfileStructureDefinition,killEvent:()=>killEvent,parseForm:()=>parseForm,renderValue:()=>renderValue,sendCommand:()=>sendCommand,setFilters:()=>setFilters,setOffset:()=>setOffset,setPage:()=>setPage,setPropertyValue:()=>setPropertyValue,setSort:()=>setSort,sortByDateAndPriority:()=>sortByDateAndPriority,toggleSort:()=>toggleSort});module.exports=__toCommonJS(index_exports);__reExport(index_exports,require("@medplum/react-hooks"),module.exports);var import_core=require("@medplum/core"),import_jsx_runtime=require("react/jsx-runtime");function AddressDisplay(props){let address=props.value;return address?(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:(0,import_core.formatAddress)(address)}):null}var import_core3=require("@mantine/core"),import_core4=require("@medplum/core"),import_react2=require("react");var import_core2=require("@medplum/core"),import_react=require("react");var DEFAULT_IGNORED_PROPERTIES=["meta","implicitRules","contained","extension","modifierExtension"],DEFAULT_IGNORED_NON_NESTED_PROPERTIES=["language","text"];var ElementsContext=(0,import_react.createContext)({path:"",profileUrl:void 0,elements:Object.create(null),elementsByPath:Object.create(null),getExtendedProps:()=>({readonly:!1,hidden:!1}),accessPolicyResource:void 0,debugMode:!1,isDefaultContext:!0});ElementsContext.displayName="ElementsContext";var EXTENSION_KEYS=["extension","modifierExtension"],IGNORED_PROPERTIES=["id",...DEFAULT_IGNORED_PROPERTIES].filter(prop=>!EXTENSION_KEYS.includes(prop));function getElementsToRender(inputElements){return Object.entries(inputElements).filter(([key,element])=>!(0,import_core2.isPopulated)(element.type)||element.max===0||element.path.toLowerCase().endsWith("extension.url")&&element.fixed||EXTENSION_KEYS.includes(key)&&!(0,import_core2.isPopulated)(element.slicing?.slices)||IGNORED_PROPERTIES.includes(key)?!1:!(DEFAULT_IGNORED_NON_NESTED_PROPERTIES.includes(key)&&element.path.split(".").length===2||key.includes(".")))}var import_jsx_runtime2=require("react/jsx-runtime");function getLine(address,index){return address.line&&address.line.length>index?address.line[index]:""}function setLine(address,index,str){let line=address.line||[];for(;line.length<=index;)line.push("");return line[index]=str,{...address,line:(0,import_core4.trimTrailingEmptyElements)(line)}}function AddressInput(props){let[value,setValue]=(0,import_react2.useState)(props.defaultValue||{}),valueRef=(0,import_react2.useRef)(value);valueRef.current=value;let{getExtendedProps}=(0,import_react2.useContext)(ElementsContext),[useProps,typeProps,line1Props,line2Props,cityProps,stateProps,postalCodeProps]=(0,import_react2.useMemo)(()=>["use","type","line1","line2","city","state","postalCode"].map(field=>getExtendedProps(props.path+"."+field)),[getExtendedProps,props.path]);function setValueWrapper(newValue){setValue(newValue),props.onChange&&props.onChange(newValue)}function setUse(use){setValueWrapper({...valueRef.current,use})}function setType(type){setValueWrapper({...valueRef.current,type})}function setLine1(line1){setValueWrapper(setLine(valueRef.current||{},0,line1))}function setLine2(line2){setValueWrapper(setLine(valueRef.current||{},1,line2))}function setCity(city){setValueWrapper({...valueRef.current,city})}function setState(state){setValueWrapper({...valueRef.current,state})}function setPostalCode(postalCode){setValueWrapper({...valueRef.current,postalCode})}return(0,import_jsx_runtime2.jsxs)(import_core3.Group,{gap:"xs",wrap:"nowrap",grow:!0,children:[(0,import_jsx_runtime2.jsx)(import_core3.NativeSelect,{disabled:props.disabled||useProps?.readonly,"data-testid":"address-use",defaultValue:value.use,onChange:e=>setUse(e.currentTarget.value),data:["","home","work","temp","old","billing"]}),(0,import_jsx_runtime2.jsx)(import_core3.NativeSelect,{disabled:props.disabled||typeProps?.readonly,"data-testid":"address-type",defaultValue:value.type,onChange:e=>setType(e.currentTarget.value),data:["","postal","physical","both"]}),(0,import_jsx_runtime2.jsx)(import_core3.TextInput,{disabled:props.disabled||line1Props?.readonly,placeholder:"Line 1",defaultValue:getLine(value,0),onChange:e=>setLine1(e.currentTarget.value)}),(0,import_jsx_runtime2.jsx)(import_core3.TextInput,{disabled:props.disabled||line2Props?.readonly,placeholder:"Line 2",defaultValue:getLine(value,1),onChange:e=>setLine2(e.currentTarget.value)}),(0,import_jsx_runtime2.jsx)(import_core3.TextInput,{disabled:props.disabled||cityProps?.readonly,placeholder:"City",defaultValue:value.city,onChange:e=>setCity(e.currentTarget.value)}),(0,import_jsx_runtime2.jsx)(import_core3.TextInput,{disabled:props.disabled||stateProps?.readonly,placeholder:"State",defaultValue:value.state,onChange:e=>setState(e.currentTarget.value)}),(0,import_jsx_runtime2.jsx)(import_core3.TextInput,{disabled:props.disabled||postalCodeProps?.readonly,placeholder:"Postal Code",defaultValue:value.postalCode,onChange:e=>setPostalCode(e.currentTarget.value)})]})}var import_core5=require("@mantine/core"),import_core6=require("@medplum/core"),import_react_hooks=require("@medplum/react-hooks"),import_react3=require("react"),import_jsx_runtime3=require("react/jsx-runtime");function AnnotationInput(props){let author=(0,import_react_hooks.useMedplumProfile)(),[value,setValue]=(0,import_react3.useState)(props.defaultValue||{});function setText(text){let newValue=text?{text,authorReference:author&&(0,import_core6.createReference)(author),time:new Date().toISOString()}:{};setValue(newValue),props.onChange&&props.onChange(newValue)}return(0,import_jsx_runtime3.jsx)(import_core5.TextInput,{disabled:props.disabled,name:props.name,placeholder:"Annotation text",defaultValue:value.text,onChange:e=>setText(e.currentTarget.value)})}var import_core32=require("@mantine/core"),import_react_hooks11=require("@medplum/react-hooks"),import_react18=require("react");var import_core7=require("@mantine/core"),import_core8=require("@medplum/core");var import_react4=require("react");var defaultAttributes={outline:{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"},filled:{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"currentColor",stroke:"none"}};var createReactComponent=(type,iconName,iconNamePascal,iconNode)=>{let Component2=(0,import_react4.forwardRef)(({color="currentColor",size=24,stroke=2,title,className,children,...rest},ref)=>(0,import_react4.createElement)("svg",{ref,...defaultAttributes[type],width:size,height:size,className:["tabler-icon",`tabler-icon-${iconName}`,className].join(" "),...type==="filled"?{fill:color}:{strokeWidth:stroke,stroke:color},...rest},[title&&(0,import_react4.createElement)("title",{key:"svg-title"},title),...iconNode.map(([tag,attrs])=>(0,import_react4.createElement)(tag,attrs)),...Array.isArray(children)?children:[children]]));return Component2.displayName=`${iconNamePascal}`,Component2};var __iconNode=[["path",{d:"M12 6a2 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:"M6 12a2 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:"M15 18a2 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"}]],IconAdjustmentsHorizontal=createReactComponent("outline","adjustments-horizontal","AdjustmentsHorizontal",__iconNode);var __iconNode2=[["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"}]],IconAlertCircle=createReactComponent("outline","alert-circle","AlertCircle",__iconNode2);var __iconNode3=[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M18 13l-6 6",key:"svg-1"}],["path",{d:"M6 13l6 6",key:"svg-2"}]],IconArrowDown=createReactComponent("outline","arrow-down","ArrowDown",__iconNode3);var __iconNode4=[["path",{d:"M5 12l14 0",key:"svg-0"}],["path",{d:"M13 18l6 -6",key:"svg-1"}],["path",{d:"M13 6l6 6",key:"svg-2"}]],IconArrowRight=createReactComponent("outline","arrow-right","ArrowRight",__iconNode4);var __iconNode5=[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M18 11l-6 -6",key:"svg-1"}],["path",{d:"M6 11l6 -6",key:"svg-2"}]],IconArrowUp=createReactComponent("outline","arrow-up","ArrowUp",__iconNode5);var __iconNode6=[["path",{d:"M6 20a2 2 0 1 0 -4 0a2 2 0 0 0 4 0",key:"svg-0"}],["path",{d:"M16 4a2 2 0 1 0 -4 0a2 2 0 0 0 4 0",key:"svg-1"}],["path",{d:"M16 20a2 2 0 1 0 -4 0a2 2 0 0 0 4 0",key:"svg-2"}],["path",{d:"M11 12a2 2 0 1 0 -4 0a2 2 0 0 0 4 0",key:"svg-3"}],["path",{d:"M21 12a2 2 0 1 0 -4 0a2 2 0 0 0 4 0",key:"svg-4"}],["path",{d:"M5.058 18.306l2.88 -4.606",key:"svg-5"}],["path",{d:"M10.061 10.303l2.877 -4.604",key:"svg-6"}],["path",{d:"M10.065 13.705l2.876 4.6",key:"svg-7"}],["path",{d:"M15.063 5.7l2.881 4.61",key:"svg-8"}]],IconBinaryTree=createReactComponent("outline","binary-tree","BinaryTree",__iconNode6);var __iconNode7=[["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"}]],IconBleachOff=createReactComponent("outline","bleach-off","BleachOff",__iconNode7);var __iconNode8=[["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"}]],IconBleach=createReactComponent("outline","bleach","Bleach",__iconNode8);var __iconNode9=[["path",{d:"M18 7v14l-6 -4l-6 4v-14a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4",key:"svg-0"}]],IconBookmark=createReactComponent("outline","bookmark","Bookmark",__iconNode9);var __iconNode10=[["path",{d:"M7 5a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2l0 -10",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"}]],IconBoxMultiple=createReactComponent("outline","box-multiple","BoxMultiple",__iconNode10);var __iconNode11=[["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"}]],IconBracketsContain=createReactComponent("outline","brackets-contain","BracketsContain",__iconNode11);var __iconNode12=[["path",{d:"M3 9a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v9a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2l0 -9",key:"svg-0"}],["path",{d:"M8 7v-2a2 2 0 0 1 2 -2h4a2 2 0 0 1 2 2v2",key:"svg-1"}],["path",{d:"M12 12l0 .01",key:"svg-2"}],["path",{d:"M3 13a20 20 0 0 0 18 0",key:"svg-3"}]],IconBriefcase=createReactComponent("outline","briefcase","Briefcase",__iconNode12);var __iconNode13=[["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"}]],IconBucketOff=createReactComponent("outline","bucket-off","BucketOff",__iconNode13);var __iconNode14=[["path",{d:"M4 7a8 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"}]],IconBucket=createReactComponent("outline","bucket","Bucket",__iconNode14);var __iconNode15=[["path",{d:"M3 20h18v-8a3 3 0 0 0 -3 -3h-12a3 3 0 0 0 -3 3v8",key:"svg-0"}],["path",{d:"M3 14.803c.312 .135 .654 .204 1 .197a2.4 2.4 0 0 0 2 -1a2.4 2.4 0 0 1 2 -1a2.4 2.4 0 0 1 2 1a2.4 2.4 0 0 0 2 1a2.4 2.4 0 0 0 2 -1a2.4 2.4 0 0 1 2 -1a2.4 2.4 0 0 1 2 1a2.4 2.4 0 0 0 2 1c.35 .007 .692 -.062 1 -.197",key:"svg-1"}],["path",{d:"M12 4l1.465 1.638a2 2 0 1 1 -3.015 .099l1.55 -1.737",key:"svg-2"}]],IconCake=createReactComponent("outline","cake","Cake",__iconNode15);var __iconNode16=[["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-12",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"}]],IconCalendar=createReactComponent("outline","calendar","Calendar",__iconNode16);var __iconNode17=[["path",{d:"M5 12l5 5l10 -10",key:"svg-0"}]],IconCheck=createReactComponent("outline","check","Check",__iconNode17);var __iconNode18=[["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"}]],IconCheckbox=createReactComponent("outline","checkbox","Checkbox",__iconNode18);var __iconNode19=[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]],IconChevronDown=createReactComponent("outline","chevron-down","ChevronDown",__iconNode19);var __iconNode20=[["path",{d:"M9 6l6 6l-6 6",key:"svg-0"}]],IconChevronRight=createReactComponent("outline","chevron-right","ChevronRight",__iconNode20);var __iconNode21=[["path",{d:"M6 15l6 -6l6 6",key:"svg-0"}]],IconChevronUp=createReactComponent("outline","chevron-up","ChevronUp",__iconNode21);var __iconNode22=[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M9 12l6 0",key:"svg-1"}]],IconCircleMinus=createReactComponent("outline","circle-minus","CircleMinus",__iconNode22);var __iconNode23=[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M9 12h6",key:"svg-1"}],["path",{d:"M12 9v6",key:"svg-2"}]],IconCirclePlus=createReactComponent("outline","circle-plus","CirclePlus",__iconNode23);var __iconNode24=[["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"}]],IconCloudUpload=createReactComponent("outline","cloud-upload","CloudUpload",__iconNode24);var __iconNode25=[["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"}]],IconColumns=createReactComponent("outline","columns","Columns",__iconNode25);var __iconNode26=[["path",{d:"M7 9.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667l0 -8.666",key:"svg-0"}],["path",{d:"M4.012 16.737a2.005 2.005 0 0 1 -1.012 -1.737v-10c0 -1.1 .9 -2 2 -2h10c.75 0 1.158 .385 1.5 1",key:"svg-1"}]],IconCopy=createReactComponent("outline","copy","Copy",__iconNode26);var __iconNode27=[["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"}]],IconCurrencyDollar=createReactComponent("outline","currency-dollar","CurrencyDollar",__iconNode27);var __iconNode28=[["path",{d:"M4 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M18 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]],IconDots=createReactComponent("outline","dots","Dots",__iconNode28);var __iconNode29=[["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.415",key:"svg-1"}],["path",{d:"M16 5l3 3",key:"svg-2"}]],IconEdit=createReactComponent("outline","edit","Edit",__iconNode29);var __iconNode30=[["path",{d:"M9.5 5.5a2.5 2.5 0 1 0 5 0a2.5 2.5 0 1 0 -5 0",key:"svg-0"}],["path",{d:"M12 21.368l5.095 -5.096a3.088 3.088 0 1 0 -4.367 -4.367l-.728 .727l-.728 -.727a3.088 3.088 0 1 0 -4.367 4.367l5.095 5.096",key:"svg-1"}]],IconEmpathize=createReactComponent("outline","empathize","Empathize",__iconNode30);var __iconNode31=[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}],["path",{d:"M5 19l14 -14",key:"svg-2"}]],IconEqualNot=createReactComponent("outline","equal-not","EqualNot",__iconNode31);var __iconNode32=[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}]],IconEqual=createReactComponent("outline","equal","Equal",__iconNode32);var __iconNode33=[["path",{d:"M10.585 10.587a2 2 0 0 0 2.829 2.828",key:"svg-0"}],["path",{d:"M16.681 16.673a8.717 8.717 0 0 1 -4.681 1.327c-3.6 0 -6.6 -2 -9 -6c1.272 -2.12 2.712 -3.678 4.32 -4.674m2.86 -1.146a9.055 9.055 0 0 1 1.82 -.18c3.6 0 6.6 2 9 6c-.666 1.11 -1.379 2.067 -2.138 2.87",key:"svg-1"}],["path",{d:"M3 3l18 18",key:"svg-2"}]],IconEyeOff=createReactComponent("outline","eye-off","EyeOff",__iconNode33);var __iconNode34=[["path",{d:"M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0",key:"svg-0"}],["path",{d:"M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6",key:"svg-1"}]],IconEye=createReactComponent("outline","eye","Eye",__iconNode34);var __iconNode35=[["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 2",key:"svg-1"}],["path",{d:"M12 17l.01 0",key:"svg-2"}],["path",{d:"M12 11l0 3",key:"svg-3"}]],IconFileAlert=createReactComponent("outline","file-alert","FileAlert",__iconNode35);var __iconNode36=[["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 2",key:"svg-1"}],["path",{d:"M12 11l0 6",key:"svg-2"}],["path",{d:"M9 14l6 0",key:"svg-3"}]],IconFilePlus=createReactComponent("outline","file-plus","FilePlus",__iconNode36);var __iconNode37=[["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.227",key:"svg-0"}]],IconFilter=createReactComponent("outline","filter","Filter",__iconNode37);var __iconNode38=[["path",{d:"M9 6.371c0 4.418 -2.239 6.629 -5 6.629",key:"svg-0"}],["path",{d:"M4 6.371h7",key:"svg-1"}],["path",{d:"M5 9c0 2.144 2.252 3.908 6 4",key:"svg-2"}],["path",{d:"M12 20l4 -9l4 9",key:"svg-3"}],["path",{d:"M19.1 18h-6.2",key:"svg-4"}],["path",{d:"M6.694 3l.793 .582",key:"svg-5"}]],IconLanguage=createReactComponent("outline","language","Language",__iconNode38);var __iconNode39=[["path",{d:"M4 6a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -12",key:"svg-0"}],["path",{d:"M9 4l0 16",key:"svg-1"}]],IconLayoutSidebar=createReactComponent("outline","layout-sidebar","LayoutSidebar",__iconNode39);var __iconNode40=[["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"}]],IconLogout=createReactComponent("outline","logout","Logout",__iconNode40);var __iconNode41=[["path",{d:"M9 11a3 3 0 1 0 6 0a3 3 0 0 0 -6 0",key:"svg-0"}],["path",{d:"M17.657 16.657l-4.243 4.243a2 2 0 0 1 -2.827 0l-4.244 -4.243a8 8 0 1 1 11.314 0",key:"svg-1"}]],IconMapPin=createReactComponent("outline","map-pin","MapPin",__iconNode41);var __iconNode42=[["path",{d:"M5 18l14 -6l-14 -6",key:"svg-0"}]],IconMathGreater=createReactComponent("outline","math-greater","MathGreater",__iconNode42);var __iconNode43=[["path",{d:"M19 18l-14 -6l14 -6",key:"svg-0"}]],IconMathLower=createReactComponent("outline","math-lower","MathLower",__iconNode43);var __iconNode44=[["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 -3h12",key:"svg-2"}]],IconMessage=createReactComponent("outline","message","Message",__iconNode44);var __iconNode45=[["path",{d:"M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4",key:"svg-0"}],["path",{d:"M13.5 6.5l4 4",key:"svg-1"}]],IconPencil=createReactComponent("outline","pencil","Pencil",__iconNode45);var __iconNode46=[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M5 12l14 0",key:"svg-1"}]],IconPlus=createReactComponent("outline","plus","Plus",__iconNode46);var __iconNode47=[["path",{d:"M20 11a8.1 8.1 0 0 0 -15.5 -2m-.5 -4v4h4",key:"svg-0"}],["path",{d:"M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4",key:"svg-1"}]],IconRefresh=createReactComponent("outline","refresh","Refresh",__iconNode47);var __iconNode48=[["path",{d:"M3 10a7 7 0 1 0 14 0a7 7 0 1 0 -14 0",key:"svg-0"}],["path",{d:"M21 21l-6 -6",key:"svg-1"}]],IconSearch=createReactComponent("outline","search","Search",__iconNode48);var __iconNode49=[["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.065",key:"svg-0"}],["path",{d:"M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0",key:"svg-1"}]],IconSettings=createReactComponent("outline","settings","Settings",__iconNode49);var __iconNode50=[["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"}]],IconSortAscending=createReactComponent("outline","sort-ascending","SortAscending",__iconNode50);var __iconNode51=[["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"}]],IconSortDescending=createReactComponent("outline","sort-descending","SortDescending",__iconNode51);var __iconNode52=[["path",{d:"M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14",key:"svg-0"}]],IconSquare=createReactComponent("outline","square","Square",__iconNode52);var __iconNode53=[["path",{d:"M6 4h-1a2 2 0 0 0 -2 2v3.5a5.5 5.5 0 0 0 11 0v-3.5a2 2 0 0 0 -2 -2h-1",key:"svg-0"}],["path",{d:"M8 15a6 6 0 1 0 12 0v-3",key:"svg-1"}],["path",{d:"M11 3v2",key:"svg-2"}],["path",{d:"M6 3v2",key:"svg-3"}],["path",{d:"M18 10a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-4"}]],IconStethoscope=createReactComponent("outline","stethoscope","Stethoscope",__iconNode53);var __iconNode54=[["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"}]],IconSwitchHorizontal=createReactComponent("outline","switch-horizontal","SwitchHorizontal",__iconNode54);var __iconNode55=[["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"}]],IconTableExport=createReactComponent("outline","table-export","TableExport",__iconNode55);var __iconNode56=[["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"}]],IconTrash=createReactComponent("outline","trash","Trash",__iconNode56);var __iconNode57=[["path",{d:"M18 6l-12 12",key:"svg-0"}],["path",{d:"M6 6l12 12",key:"svg-1"}]],IconX=createReactComponent("outline","x","X",__iconNode57);var import_react5=require("react");var import_jsx_runtime4=require("react/jsx-runtime"),ErrorBoundary=class extends import_react5.Component{constructor(props){super(props);__publicField(this,"state");this.state={lastLocation:import_core8.locationUtils.getLocation()}}static getDerivedStateFromError(error){return{error,lastLocation:import_core8.locationUtils.getLocation()}}componentDidUpdate(_prevProps,_prevState){import_core8.locationUtils.getLocation()!==this.state.lastLocation&&this.setState({lastLocation:import_core8.locationUtils.getLocation(),error:void 0})}shouldComponentUpdate(nextProps,nextState){return!!(this.props.children!==nextProps.children||nextState.error&&!this.state.error||this.state.lastLocation!==import_core8.locationUtils.getLocation())}componentDidCatch(error,errorInfo){console.error("Uncaught error:",error,errorInfo)}render(){return this.state.error?(0,import_jsx_runtime4.jsx)(import_core7.Alert,{icon:(0,import_jsx_runtime4.jsx)(IconAlertCircle,{size:16}),title:"Something went wrong",color:"red",children:(0,import_core8.normalizeErrorString)(this.state.error)}):this.props.children}};var import_core9=require("@mantine/core"),import_jsx_runtime5=require("react/jsx-runtime");function Loading(){return(0,import_jsx_runtime5.jsx)(import_core9.Center,{style:{width:"100%",height:"100vh"},children:(0,import_jsx_runtime5.jsx)(import_core9.Loader,{})})}var AppShell_default={main:"AppShell_main"};var import_core22=require("@mantine/core"),import_core23=require("@medplum/core"),import_react_hooks6=require("@medplum/react-hooks");var import_react9=require("react");var import_core13=require("@mantine/core"),import_core14=require("@medplum/core"),import_react_hooks3=require("@medplum/react-hooks");var import_core11=require("@mantine/core"),import_core12=require("@medplum/core"),import_react_hooks2=require("@medplum/react-hooks");var import_core10=require("@medplum/core");function killEvent(e){e.preventDefault(),e.stopPropagation()}function isAuxClick(e){return e.button===1||e.ctrlKey||e.metaKey}function isCheckboxCell(el){if(isCheckboxElement(el))return!0;if(el instanceof HTMLTableCellElement){let children=el.children;if(children.length===1&&isCheckboxElement(children[0]))return!0}return!1}function isCheckboxElement(el){return el instanceof HTMLInputElement&&el.type==="checkbox"}async function sendCommand(frame,command){return new Promise((resolve,reject)=>{let channel=new MessageChannel;channel.port1.onmessage=({data:data2})=>{channel.port1.close(),data2.error?reject(data2.error):resolve(data2.result)},frame.contentWindow?.postMessage(command,new URL(frame.src).origin,[channel.port2])})}function exportJsonFile(jsonString,fileName){let blobForExport=new Blob([jsonString],{type:import_core10.ContentType.JSON}),url=URL.createObjectURL(blobForExport),link=document.createElement("a");link.href=url;let linkName=fileName??new Date().toISOString().replaceAll(/\D/g,"");link.download=`${linkName}.json`,document.body.appendChild(link),link.click(),URL.revokeObjectURL(url)}var import_jsx_runtime6=require("react/jsx-runtime");function MedplumLink(props){let navigate=(0,import_react_hooks2.useMedplumNavigate)(),{to,suffix,label,onClick,children,...rest}=props,href=getHref(to);return suffix&&(href+="/"+suffix),(0,import_jsx_runtime6.jsx)(import_core11.Anchor,{href,"aria-label":label,onAuxClick:e=>{e.stopPropagation()},onClick:e=>{e.stopPropagation(),onClick?(e.preventDefault(),onClick(e)):to&&(isAuxClick(e)||(e.preventDefault(),navigate(href)))},...rest,children})}function getHref(to){if(to){if(typeof to=="string")return getStringHref(to);if((0,import_core12.isResource)(to))return getResourceHref(to);if((0,import_core12.isReference)(to))return getReferenceHref(to)}return"#"}function getStringHref(to){return to.startsWith("http://")||to.startsWith("https://")||to.startsWith("/")?to:"/"+to}function getResourceHref(to){return`/${to.resourceType}/${to.id}`}function getReferenceHref(to){return`/${to.reference}`}function getInitials(input){let words=input.split(" ").filter(Boolean);return words.length>1?words[0][0]+words.at(-1)?.at(0):words.length===1?words[0][0]:""}var import_jsx_runtime7=require("react/jsx-runtime");function ResourceAvatar(props){let resource=(0,import_react_hooks3.useResource)(props.value),text=resource?(0,import_core14.getDisplayString)(resource):props.alt??"",initials=getInitials(text),uncachedImageUrl=(resource&&(0,import_core14.getImageSrc)(resource))??props.src,imageUrl=(0,import_react_hooks3.useCachedBinaryUrl)(uncachedImageUrl??void 0),radius=props.radius??"xl",avatarProps={...props,value:void 0,link:void 0};return props.link?(0,import_jsx_runtime7.jsx)(MedplumLink,{to:resource,children:(0,import_jsx_runtime7.jsx)(import_core13.Avatar,{src:imageUrl,alt:text,radius,...avatarProps,children:initials})}):(0,import_jsx_runtime7.jsx)(import_core13.Avatar,{src:imageUrl,alt:text,radius,...avatarProps,children:initials})}var Header_default={logoButton:"Header_logoButton",user:"Header_user",userName:"Header_userName"};var import_core16=require("@mantine/core"),import_core17=require("@medplum/core"),import_react_hooks4=require("@medplum/react-hooks");var import_react6=require("react");var import_core15=require("@medplum/core"),import_jsx_runtime8=require("react/jsx-runtime");function HumanNameDisplay(props){let name=props.value;return name?(0,import_jsx_runtime8.jsx)(import_jsx_runtime8.Fragment,{children:(0,import_core15.formatHumanName)(name,props.options)}):null}function getAppName(){return process.env.MEDPLUM_APP_NAME||"Medplum"}var import_jsx_runtime9=require("react/jsx-runtime");function HeaderDropdown(props){let context=(0,import_react_hooks4.useMedplumContext)(),{medplum,profile,navigate}=context,logins=medplum.getLogins(),{colorScheme,setColorScheme}=(0,import_core16.useMantineColorScheme)(),[layoutVersion]=(0,import_react6.useState)(localStorage.appShellLayoutVersion??"v1"),showLayoutToggle=props.showLayoutVersionToggle??!0;function setAppShellVersion(version){localStorage.appShellLayoutVersion=version,import_core17.locationUtils.reload()}return(0,import_jsx_runtime9.jsxs)(import_jsx_runtime9.Fragment,{children:[(0,import_jsx_runtime9.jsxs)(import_core16.Stack,{align:"center",p:"xl",children:[(0,import_jsx_runtime9.jsx)(ResourceAvatar,{size:"xl",radius:100,value:context.profile}),(0,import_jsx_runtime9.jsx)(HumanNameDisplay,{value:context.profile?.name?.[0]}),(0,import_jsx_runtime9.jsx)(import_core16.Text,{c:"dimmed",size:"xs",children:medplum.getActiveLogin()?.project.display})]}),logins.length>1&&(0,import_jsx_runtime9.jsx)(import_core16.Menu.Divider,{}),logins.map(login=>login.profile.reference!==(0,import_core17.getReferenceString)(context.profile)&&(0,import_jsx_runtime9.jsx)(import_core16.Menu.Item,{onClick:()=>{medplum.setActiveLogin(login).then(()=>import_core17.locationUtils.reload()).catch(console.log)},children:(0,import_jsx_runtime9.jsxs)(import_core16.Group,{children:[(0,import_jsx_runtime9.jsx)(import_core16.Avatar,{radius:"xl"}),(0,import_jsx_runtime9.jsxs)("div",{style:{flex:1},children:[(0,import_jsx_runtime9.jsx)(import_core16.Text,{size:"sm",fw:500,children:login.profile.display}),(0,import_jsx_runtime9.jsx)(import_core16.Text,{c:"dimmed",size:"xs",children:login.project.display})]})]})},login.profile.reference)),(0,import_jsx_runtime9.jsx)(import_core16.Menu.Divider,{}),(0,import_jsx_runtime9.jsx)(import_core16.Menu.Item,{leftSection:(0,import_jsx_runtime9.jsx)(IconSwitchHorizontal,{size:14,stroke:1.5}),onClick:()=>navigate("/signin"),children:"Switch to another project"}),(0,import_jsx_runtime9.jsx)(import_core16.Menu.Divider,{}),(0,import_jsx_runtime9.jsxs)(import_core16.Group,{justify:"center",children:[(0,import_jsx_runtime9.jsx)(import_core16.SegmentedControl,{size:"xs",value:colorScheme,onChange:newValue=>setColorScheme(newValue),data:[{label:"Light",value:"light"},{label:"Dark",value:"dark"},{label:"Auto",value:"auto"}]}),showLayoutToggle&&(0,import_jsx_runtime9.jsx)(import_core16.SegmentedControl,{size:"xs",value:layoutVersion,onChange:newValue=>setAppShellVersion(newValue),data:[{label:"v1",value:"v1"},{label:"v2",value:"v2"}]})]}),(0,import_jsx_runtime9.jsx)(import_core16.Menu.Divider,{}),(0,import_jsx_runtime9.jsx)(import_core16.Menu.Item,{leftSection:(0,import_jsx_runtime9.jsx)(IconSettings,{size:14,stroke:1.5}),onClick:()=>navigate(`/${(0,import_core17.getReferenceString)(profile)}`),children:"Account settings"}),(0,import_jsx_runtime9.jsx)(import_core16.Menu.Item,{leftSection:(0,import_jsx_runtime9.jsx)(IconLogout,{size:14,stroke:1.5}),onClick:async()=>{await medplum.signOut(),navigate("/signin")},children:"Sign out"}),(0,import_jsx_runtime9.jsxs)(import_core16.Text,{size:"xs",c:"dimmed",my:"sm",ta:"center",children:[getAppName()," ",props.version]})]})}var import_core20=require("@mantine/core"),import_core21=require("@medplum/core"),import_react_hooks5=require("@medplum/react-hooks");var import_react8=require("react");var import_core18=require("@mantine/core"),import_notifications=require("@mantine/notifications"),import_core19=require("@medplum/core");var import_react7=require("react");var AsyncAutocompleteTestIds={selectedItems:"selected-items",options:"options"};var import_jsx_runtime10=require("react/jsx-runtime");function AsyncAutocomplete(props){let combobox=(0,import_core18.useCombobox)({onDropdownClose:()=>combobox.resetSelectedOption(),onDropdownOpen:()=>combobox.updateSelectedOptionIndex("active")}),{name,label,description,error,defaultValue:defaultValue2,toOption:toOption4,loadOptions,itemComponent,pillComponent,emptyComponent,onChange,onCreate,creatable,clearable,required,placeholder,leftSection,maxValues,optionsDropdownMaxHeight=320,minInputLength=0,...rest}=props,disabled=rest.disabled,defaultItems=toDefaultItems(defaultValue2),[search,setSearch]=(0,import_react7.useState)(""),[timer,setTimer]=(0,import_react7.useState)(),[abortController,setAbortController]=(0,import_react7.useState)(),[autoSubmit,setAutoSubmit]=(0,import_react7.useState)(),[selected,setSelected]=(0,import_react7.useState)(defaultItems.map(toOption4)),[options,setOptions]=(0,import_react7.useState)([]),ItemComponent3=itemComponent??DefaultItemComponent,PillComponent=pillComponent??DefaultPillComponent,EmptyComponent=emptyComponent??DefaultEmptyComponent,searchRef=(0,import_react7.useRef)(search);searchRef.current=search;let lastLoadOptionsRef=(0,import_react7.useRef)(void 0),lastValueRef=(0,import_react7.useRef)(void 0),timerRef=(0,import_react7.useRef)(timer);timerRef.current=timer;let abortControllerRef=(0,import_react7.useRef)(abortController);abortControllerRef.current=abortController;let autoSubmitRef=(0,import_react7.useRef)(autoSubmit);autoSubmitRef.current=autoSubmit;let optionsRef=(0,import_react7.useRef)(options);optionsRef.current=options;let handleTimer=(0,import_react7.useCallback)(()=>{if(setTimer(void 0),searchRef.current===lastValueRef.current&&loadOptions===lastLoadOptionsRef.current||(searchRef.current?.length??0)<minInputLength)return;lastValueRef.current=searchRef.current,lastLoadOptionsRef.current=loadOptions;let newAbortController=new AbortController;setAbortController(newAbortController),loadOptions(searchRef.current??"",newAbortController.signal).then(newValues=>{newAbortController.signal.aborted||(setOptions(newValues.map(toOption4)),autoSubmitRef.current?(newValues.length>0&&onChange(newValues.slice(0,1)),setAutoSubmit(!1)):newValues.length>0&&combobox.openDropdown())}).catch(err=>{newAbortController.signal.aborted||err.message.includes("aborted")||(0,import_notifications.showNotification)({color:"red",message:(0,import_core19.normalizeErrorString)(err)})}).finally(()=>{newAbortController.signal.aborted||setAbortController(void 0)})},[combobox,loadOptions,onChange,toOption4,minInputLength]),handleSearchChange=(0,import_react7.useCallback)(e=>{(options&&options.length>0||creatable)&&combobox.openDropdown(),combobox.updateSelectedOptionIndex(),setSearch(e.currentTarget.value),abortControllerRef.current&&(abortControllerRef.current.abort(),setAbortController(void 0)),timerRef.current!==void 0&&window.clearTimeout(timerRef.current);let newTimer=window.setTimeout(()=>handleTimer(),100);setTimer(newTimer)},[combobox,options,creatable,handleTimer]),addSelected=(0,import_react7.useCallback)(newValue=>{let alreadySelected=selected.some(v=>v.value===newValue),newSelected=alreadySelected?selected.filter(v=>v.value!==newValue):[...selected],option=options?.find(option2=>option2.value===newValue);if(!option&&creatable!==!1&&onCreate){let createdResource=onCreate(newValue);option=toOption4(createdResource)}if(option){if(maxValues===0){onChange([option.resource]),selected.length>0&&setSelected([]);return}alreadySelected||newSelected.push(option)}if(maxValues!==void 0)for(;newSelected.length>maxValues;)newSelected.shift();onChange(newSelected.map(v=>v.resource)),setSelected(newSelected)},[creatable,options,selected,maxValues,onChange,onCreate,toOption4]),handleValueSelect=(0,import_react7.useMemo)(()=>{if(!disabled)return val=>{disabled||(maxValues===1&&(setSearch(""),setOptions([]),combobox.closeDropdown()),lastValueRef.current=void 0,val==="$create"?(setSearch(""),addSelected(search)):addSelected(val))}},[addSelected,combobox,disabled,maxValues,search]),handleValueRemove=(0,import_react7.useCallback)(item=>{let newSelected=selected.filter(v=>v.value!==item.value);onChange(newSelected.map(v=>v.resource)),setSelected(newSelected)},[selected,onChange]),handleKeyDown=(0,import_react7.useCallback)(e=>{e.key==="Enter"?(timer||abortController)&&setAutoSubmit(!0):e.key==="Backspace"&&search.length===0&&(killEvent(e),handleValueRemove(selected[selected.length-1]))},[abortController,handleValueRemove,search.length,selected,timer]);(0,import_react7.useEffect)(()=>()=>{abortControllerRef.current&&abortControllerRef.current.abort()},[]);let clearButton=!disabled&&clearable&&selected.length>0&&(0,import_jsx_runtime10.jsx)(import_core18.Combobox.ClearButton,{title:"Clear all",size:"sm",onClear:()=>{setSearch(""),setSelected([]),onChange([]),combobox.closeDropdown()}}),createVisible=creatable&&search.trim().length>0,comboboxVisible=options.length>0||createVisible;return(0,import_jsx_runtime10.jsxs)(import_core18.Combobox,{store:combobox,onOptionSubmit:handleValueSelect,withinPortal:!0,shadow:"xl",...rest,children:[(0,import_jsx_runtime10.jsx)(import_core18.Combobox.DropdownTarget,{children:(0,import_jsx_runtime10.jsx)(import_core18.PillsInput,{label,description,error,className:props.className,leftSection,rightSection:abortController?(0,import_jsx_runtime10.jsx)(import_core18.Loader,{size:16}):clearButton,required,disabled,children:(0,import_jsx_runtime10.jsxs)(import_core18.Pill.Group,{"data-testid":AsyncAutocompleteTestIds.selectedItems,children:[selected.map(item=>(0,import_jsx_runtime10.jsx)(PillComponent,{item,disabled,onRemove:()=>handleValueRemove(item)},item.value)),!disabled&&(maxValues===void 0||maxValues===0||selected.length<maxValues)&&(0,import_jsx_runtime10.jsx)(import_core18.Combobox.EventsTarget,{children:(0,import_jsx_runtime10.jsx)(import_core18.PillsInput.Field,{role:"searchbox",name,value:search,placeholder,onFocus:handleSearchChange,onBlur:()=>{combobox.closeDropdown(),setSearch("")},onKeyDown:handleKeyDown,onChange:handleSearchChange})})]})})}),(0,import_jsx_runtime10.jsx)(import_core18.Combobox.Dropdown,{hidden:!comboboxVisible,"data-testid":AsyncAutocompleteTestIds.options,children:(0,import_jsx_runtime10.jsx)(import_core18.Combobox.Options,{children:(0,import_jsx_runtime10.jsxs)(import_core18.ScrollAreaAutosize,{type:"scroll",mah:optionsDropdownMaxHeight,children:[options.map(item=>{let active=selected.some(v=>v.value===item.value);return(0,import_jsx_runtime10.jsx)(import_core18.Combobox.Option,{value:item.value,active,children:(0,import_jsx_runtime10.jsx)(ItemComponent3,{...item,active})},item.value)}),createVisible&&(0,import_jsx_runtime10.jsxs)(import_core18.Combobox.Option,{value:"$create",children:["+ Create ",search]}),!creatable&&search.trim().length>0&&options.length===0&&(0,import_jsx_runtime10.jsx)(EmptyComponent,{search})]})})})]})}function toDefaultItems(defaultValue2){return defaultValue2?Array.isArray(defaultValue2)?defaultValue2:[defaultValue2]:[]}function DefaultItemComponent(props){return(0,import_jsx_runtime10.jsxs)(import_core18.Group,{gap:"xs",children:[props.active&&(0,import_jsx_runtime10.jsx)(IconCheck,{size:12}),(0,import_jsx_runtime10.jsx)("span",{children:props.label})]})}function DefaultPillComponent({item,disabled,onRemove}){return(0,import_jsx_runtime10.jsx)(import_core18.Pill,{withRemoveButton:!disabled,onRemove,children:item.label})}function DefaultEmptyComponent(){return(0,import_jsx_runtime10.jsx)(import_core18.Combobox.Empty,{children:"Nothing found"})}var HeaderSearchInput_default={searchInput:"HeaderSearchInput_searchInput"};var import_jsx_runtime11=require("react/jsx-runtime");function toOption(resource){return{value:resource.id,label:(0,import_core21.getDisplayString)(resource),resource}}function HeaderSearchInput(props){let navigate=(0,import_react_hooks5.useMedplumNavigate)(),medplum=(0,import_react_hooks5.useMedplum)(),loadData=(0,import_react8.useCallback)(async(input,signal)=>{let query=buildGraphQLQuery(input),options={signal},response=await medplum.graphql(query,void 0,void 0,options);return getResourcesFromResponse(response,input)},[medplum]),handleSelect=(0,import_react8.useCallback)(item=>{item.length>0&&navigate(`/${(0,import_core21.getReferenceString)(item[0])}`)},[navigate]);return(0,import_jsx_runtime11.jsx)(AsyncAutocomplete,{size:"sm",radius:"md",className:HeaderSearchInput_default.searchInput,leftSection:(0,import_jsx_runtime11.jsx)(IconSearch,{size:16}),placeholder:"Search",itemComponent:ItemComponent,toOption,onChange:handleSelect,loadOptions:loadData,maxValues:0,clearable:!1},`${props.pathname}?${props.searchParams}`)}var ItemComponent=(0,import_react8.forwardRef)(({resource,active:_active,...others},ref)=>{let helpText;return resource.resourceType==="Patient"?helpText=resource.birthDate:resource.resourceType==="ServiceRequest"&&(helpText=resource.subject?.display),(0,import_jsx_runtime11.jsx)("div",{ref,...others,children:(0,import_jsx_runtime11.jsxs)(import_core20.Group,{wrap:"nowrap",children:[(0,import_jsx_runtime11.jsx)(ResourceAvatar,{value:resource}),(0,import_jsx_runtime11.jsxs)("div",{children:[(0,import_jsx_runtime11.jsx)(import_core20.Text,{children:(0,import_core21.getDisplayString)(resource)}),(0,import_jsx_runtime11.jsx)(import_core20.Text,{size:"xs",c:"dimmed",children:helpText})]})]})})});function buildGraphQLQuery(input){let escaped=JSON.stringify(input);return(0,import_core21.isUUID)(input)?`{
|
|
2
2
|
Patients1: PatientList(_id: ${escaped}, _count: 1) {
|
|
3
3
|
resourceType
|
|
4
4
|
id
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
identifier { system value }
|
|
100
100
|
subject { display }
|
|
101
101
|
}
|
|
102
|
-
}`.replaceAll(/\s+/g," ")}function getResourcesFromResponse2(response){let resources=[];return response.data.Patients1&&resources.push(...response.data.Patients1),response.data.Patients2&&resources.push(...response.data.Patients2),response.data.ServiceRequestList&&resources.push(...response.data.ServiceRequestList),dedupeResources2(resources)}function dedupeResources2(resources){let ids=new Set,result=[];for(let resource of resources)resource.id&&!ids.has(resource.id)&&(ids.add(resource.id),result.push(resource));return result}function patientsToActions(patients,navigate){let patientActions=patients.filter(p=>!!p.id).map(patient=>({id:patient.id,label:patient.name?(0,import_core29.formatHumanName)(patient.name[0]):patient.id,description:patient.birthDate,leftSection:(0,import_jsx_runtime19.jsx)(ResourceAvatar,{value:patient,radius:"xl",size:24}),onClick:()=>navigate(`/Patient/${patient.id}`)}));return patientActions.length>0?[{group:"Patients",actions:patientActions}]:[]}function resourcesToActions(resources,resourceTypes,navigate){let result=[],resourceTypeActions=resourceTypes.map(rt=>({id:`resource-type-${rt.code}`,label:rt.display??rt.code??"",description:"Resource Type",onClick:()=>navigate(`/${rt.code}`)}));resourceTypeActions.length>0&&result.push({group:"Resource Types",actions:resourceTypeActions});let patientActions=[],serviceRequestActions=[];for(let resource of resources)resource.resourceType==="Patient"&&resource.id?patientActions.push({id:resource.id,label:resource.name?(0,import_core29.formatHumanName)(resource.name[0]):resource.id,description:resource.birthDate,leftSection:(0,import_jsx_runtime19.jsx)(ResourceAvatar,{value:resource,radius:"xl",size:24}),onClick:()=>navigate(`/Patient/${resource.id}`)}):resource.resourceType==="ServiceRequest"&&resource.id&&serviceRequestActions.push({id:resource.id,label:resource.id,description:resource.subject?.display,onClick:()=>navigate(`/ServiceRequest/${resource.id}`)});return patientActions.length>0&&result.push({group:"Patients",actions:patientActions}),serviceRequestActions.length>0&&result.push({group:"Service Requests",actions:serviceRequestActions}),result}var import_jsx_runtime20=require("react/jsx-runtime");function Navbar(props){let navigate=(0,import_react_hooks10.useMedplumNavigate)(),profile=(0,import_react_hooks10.useMedplumProfile)(),activeLink=getActiveLink(props.pathname,props.searchParams,props.menus),[userMenuOpened,setUserMenuOpened]=(0,import_react17.useState)(!1),[bookmarkDialogVisible,setBookmarkDialogVisible]=(0,import_react17.useState)(!1);function onLinkClick2(e,to){e.stopPropagation(),e.preventDefault(),navigate(to),window.innerWidth<768&&props.closeNavbar()}function navigateResourceType(resourceType){resourceType&&navigate(`/${resourceType}`)}let opened=props.opened??!0;return(0,import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment,{children:[(0,import_jsx_runtime20.jsxs)(import_core30.AppShell.Navbar,{id:"navbar",className:Navbar_default.navbar,children:[props.logo&&(0,import_jsx_runtime20.jsx)(import_core30.AppShell.Section,{px:"xs",pt:"xs",pb:"4px",children:(0,import_jsx_runtime20.jsx)(import_core30.UnstyledButton,{className:Navbar_default.logoButton,onClick:props.navbarToggle,"aria-expanded":opened,"aria-controls":"navbar",children:props.logo})}),(0,import_jsx_runtime20.jsx)(import_core30.ScrollArea,{px:"xs",pb:"xs",pt:"sm",h:"100%",children:(0,import_jsx_runtime20.jsxs)(import_core30.AppShell.Section,{grow:!0,children:[props.spotlightEnabled&&(0,import_jsx_runtime20.jsx)(import_core30.Box,{mb:2,children:(0,import_jsx_runtime20.jsx)(import_core30.Tooltip,{label:"Search",position:"right",transitionProps:{duration:0},disabled:opened,children:(0,import_jsx_runtime20.jsxs)(import_core30.UnstyledButton,{className:Navbar_default.link,onClick:()=>import_spotlight2.spotlight.open(),children:[(0,import_jsx_runtime20.jsx)(IconSearch,{size:"1.2rem"}),(0,import_jsx_runtime20.jsx)("span",{className:Navbar_default.linkLabel,"data-opened":opened||void 0,children:"Search"})]})})}),props.spotlightEnabled&&(0,import_jsx_runtime20.jsx)(Spotlight,{patientsOnly:props.patientsOnly}),!props.resourceTypeSearchDisabled&&(0,import_jsx_runtime20.jsx)(import_core30.AppShell.Section,{mb:"sm",children:(0,import_jsx_runtime20.jsx)(ResourceTypeInput,{name:"resourceType",placeholder:"Resource Type",maxValues:0,onChange:newValue=>navigateResourceType(newValue)},window.location.pathname)}),props.menus?.map((menu,index)=>(0,import_jsx_runtime20.jsxs)(import_react17.Fragment,{children:[menu.title&&(0,import_jsx_runtime20.jsx)(import_core30.Text,{className:Navbar_default.menuTitle,"data-opened":opened||void 0,children:menu.title}),(0,import_jsx_runtime20.jsx)(import_core30.Stack,{gap:"2",children:menu.links?.map(link=>(0,import_jsx_runtime20.jsx)(NavbarLink,{to:link.href,active:link.href===activeLink?.href,onClick:e=>onLinkClick2(e,link.href),icon:link.icon,label:link.label??"",opened},link.href))})]},`menu-${menu.title??index}`)),props.displayAddBookmark&&(0,import_jsx_runtime20.jsx)(import_core30.Tooltip,{label:"Add Bookmark",position:"right",transitionProps:{duration:0},disabled:opened,children:(0,import_jsx_runtime20.jsxs)(import_core30.UnstyledButton,{className:`${Navbar_default.link} ${Navbar_default.addBookmarkLink}`,onClick:()=>setBookmarkDialogVisible(!0),children:[(0,import_jsx_runtime20.jsx)(IconCirclePlus,{}),(0,import_jsx_runtime20.jsx)("span",{className:Navbar_default.linkLabel,"data-opened":opened||void 0,children:"Add Bookmark"})]})})]})}),props.userMenuEnabled&&(0,import_jsx_runtime20.jsxs)(import_core30.AppShell.Section,{px:"xs",py:"xs",children:[(0,import_jsx_runtime20.jsx)(import_core30.Tooltip,{label:opened?"Close Sidebar":"Open Sidebar",position:"right",transitionProps:{duration:0},children:(0,import_jsx_runtime20.jsx)(import_core30.UnstyledButton,{className:Navbar_default.toggleButton,"aria-label":opened?"Close Sidebar":"Open Sidebar",onClick:props.navbarToggle,"aria-expanded":opened,"aria-controls":"navbar",children:(0,import_jsx_runtime20.jsx)(IconLayoutSidebar,{})})}),(0,import_jsx_runtime20.jsx)(import_core30.Divider,{my:"xs",mx:6,className:Navbar_default.divider}),(0,import_jsx_runtime20.jsxs)(import_core30.Menu,{width:260,shadow:"xl",position:"top-start",transitionProps:{transition:"fade-up"},opened:userMenuOpened,onClose:()=>setUserMenuOpened(!1),children:[(0,import_jsx_runtime20.jsx)(import_core30.Menu.Target,{children:(0,import_jsx_runtime20.jsxs)(import_core30.UnstyledButton,{className:Navbar_default.link,pl:"7","aria-label":"User menu","data-active":userMenuOpened||void 0,onClick:()=>setUserMenuOpened(o=>!o),bd:"1px 0 0 0 solid var(--mantine-color-gray-200)",children:[(0,import_jsx_runtime20.jsx)(ResourceAvatar,{value:profile,radius:"xl",size:24}),(0,import_jsx_runtime20.jsx)("span",{className:Navbar_default.linkLabel,"data-opened":opened||void 0,children:(0,import_core31.formatHumanName)(profile?.name?.[0])})]})}),(0,import_jsx_runtime20.jsx)(import_core30.Menu.Dropdown,{children:(0,import_jsx_runtime20.jsx)(HeaderDropdown,{version:props.version})})]})]})]}),props.pathname&&props.searchParams&&(0,import_jsx_runtime20.jsx)(BookmarkDialog,{pathname:props.pathname,searchParams:props.searchParams,visible:bookmarkDialogVisible,onOk:()=>setBookmarkDialogVisible(!1),onCancel:()=>setBookmarkDialogVisible(!1)})]})}function NavbarLink(props){let{to,icon,label,onClick,active}=props;return(0,import_jsx_runtime20.jsx)(import_core30.Tooltip,{label,position:"right",transitionProps:{duration:0},disabled:props.opened,children:(0,import_jsx_runtime20.jsxs)(MedplumLink,{to,onClick,className:Navbar_default.link,"data-active":active||void 0,children:[icon??(0,import_jsx_runtime20.jsx)(IconBookmark,{}),(0,import_jsx_runtime20.jsx)("span",{className:Navbar_default.linkLabel,"data-opened":props.opened||void 0,children:label})]})})}function getActiveLink(currentPathname,currentSearchParams,menus){if(!currentPathname||!currentSearchParams||!menus)return;let bestLink,bestScore=0;for(let menu of menus)if(menu.links)for(let link of menu.links){let score=getLinkScore(currentPathname,currentSearchParams,link.href);score>bestScore&&(bestScore=score,bestLink=link)}return bestLink}function getLinkScore(currentPathname,currentSearchParams,linkHref){let linkUrl=new URL(linkHref,"https://example.com");if(currentPathname!==linkUrl.pathname)return 0;let ignoredParams=["_count","_offset"];for(let[key,value]of linkUrl.searchParams.entries())if(!ignoredParams.includes(key)&¤tSearchParams.get(key)!==value)return 0;let count=1;for(let[key,value]of currentSearchParams.entries())ignoredParams.includes(key)||linkUrl.searchParams.get(key)===value&&count++;return count}var import_jsx_runtime21=require("react/jsx-runtime"),OPEN_WIDTH=250,CLOSED_WIDTH=59;function AppShell(props){let[navbarOpen,setNavbarOpen]=(0,import_react18.useState)(localStorage.navbarOpen==="true"),[layoutVersion]=(0,import_react18.useState)(props.layoutVersion??localStorage.appShellLayoutVersion??"v1"),medplum=(0,import_react_hooks11.useMedplum)(),profile=(0,import_react_hooks11.useMedplumProfile)();function setNavbarOpenWrapper(open){localStorage.navbarOpen=open.toString(),setNavbarOpen(open)}function closeNavbar(){setNavbarOpenWrapper(!1)}function toggleNavbar(){setNavbarOpenWrapper(!navbarOpen)}if(medplum.isLoading())return(0,import_jsx_runtime21.jsx)(Loading,{});let headerProp,navbarProp,headerComponent,navbarComponent;return layoutVersion==="v2"?(headerProp={height:0},navbarProp={width:navbarOpen?OPEN_WIDTH:CLOSED_WIDTH,breakpoint:0,collapsed:{desktop:!profile,mobile:!profile}},headerComponent=void 0,navbarComponent=profile?(0,import_jsx_runtime21.jsx)(Navbar,{logo:props.logo,pathname:props.pathname,searchParams:props.searchParams,menus:props.menus,navbarToggle:toggleNavbar,closeNavbar,displayAddBookmark:props.displayAddBookmark,resourceTypeSearchDisabled:!0,opened:navbarOpen,spotlightEnabled:!0,patientsOnly:props.spotlightPatientsOnly,userMenuEnabled:!0,version:props.version}):void 0):(headerProp={height:60},navbarProp={width:OPEN_WIDTH,breakpoint:"sm",collapsed:{desktop:!profile||!navbarOpen,mobile:!profile||!navbarOpen}},headerComponent=profile&&(0,import_jsx_runtime21.jsx)(Header,{pathname:props.pathname,searchParams:props.searchParams,headerSearchDisabled:props.headerSearchDisabled,logo:props.logo,version:props.version,navbarOpen,navbarToggle:toggleNavbar,notifications:props.notifications}),navbarComponent=profile&&navbarOpen?(0,import_jsx_runtime21.jsx)(Navbar,{pathname:props.pathname,searchParams:props.searchParams,menus:props.menus,navbarToggle:toggleNavbar,closeNavbar,displayAddBookmark:props.displayAddBookmark,resourceTypeSearchDisabled:props.resourceTypeSearchDisabled,patientsOnly:props.spotlightPatientsOnly}):void 0),(0,import_jsx_runtime21.jsxs)(import_core32.AppShell,{header:headerProp,navbar:navbarProp,padding:0,children:[headerComponent,navbarComponent,(0,import_jsx_runtime21.jsx)(import_core32.AppShell.Main,{className:AppShell_default.main,children:(0,import_jsx_runtime21.jsx)(ErrorBoundary,{children:(0,import_jsx_runtime21.jsx)(import_react18.Suspense,{fallback:(0,import_jsx_runtime21.jsx)(Loading,{}),children:props.children})})})]})}var import_core36=require("@medplum/core");var import_core34=require("@mantine/core"),import_core35=require("@medplum/core"),import_react_hooks12=require("@medplum/react-hooks");var import_core33=require("@mantine/core"),import_react19=require("react");var import_jsx_runtime22=require("react/jsx-runtime"),CCDA_VIEWER_URL="https://ccda.medplum.com",BASE_VALIDATION_URL="https://ccda-validator.medplum.com/";function CcdaDisplay(props){let{url}=props,[shouldSend,setShouldSend]=(0,import_react19.useState)(!1),iframeRef=(0,import_react19.useRef)(null),[validationResult,setValidationResult]=(0,import_react19.useState)(),[validating,setValidating]=(0,import_react19.useState)(!1);(0,import_react19.useEffect)(()=>{url&&shouldSend&&iframeRef.current&&(sendCommand(iframeRef.current,{command:"loadCcdaXml",value:url}).catch(console.error),setShouldSend(!1))},[url,shouldSend]);let validateCcda=async()=>{if(url)try{setValidating(!0);let ccdaContent=await(await fetch(url)).text(),formData=new FormData;formData.append("ccdaFile",new Blob([ccdaContent],{type:"text/xml"}),"ccda.xml");let validationUrl=`${BASE_VALIDATION_URL}referenceccdaservice/?validationObjective=C-CDA_IG_Plus_Vocab&referenceFileName=No%20scenario%20File&curesUpdate=true&severityLevel=WARNING`,validationResponse=await fetch(validationUrl,{method:"POST",body:formData,credentials:"omit",redirect:"manual"});if(!validationResponse.ok)throw new Error(`Validation failed: ${validationResponse.status} ${validationResponse.statusText}`);let validationResult2=await validationResponse.json();setValidationResult(validationResult2)}catch(error){setValidationResult(void 0),console.error("CCDA validation error:",error)}finally{setValidating(!1)}},downloadResults=()=>{if(!validationResult)return;let resultsJson=JSON.stringify(validationResult,null,2);exportJsonFile(resultsJson,"ccda-validation-results")},getErrorCount=()=>validationResult?validationResult.resultsMetaData.resultMetaData.filter(item=>item?.type.includes("Error")).reduce((sum,item)=>sum+(item.count||0),0):0;return url?(0,import_jsx_runtime22.jsxs)("div",{"data-testid":"ccda-iframe",style:{maxWidth:props.maxWidth},children:[(0,import_jsx_runtime22.jsx)("div",{style:{minHeight:400},children:(0,import_jsx_runtime22.jsx)("iframe",{title:"C-CDA Viewer",width:"100%",height:"400",ref:iframeRef,src:CCDA_VIEWER_URL,allowFullScreen:!0,frameBorder:0,seamless:!0,onLoad:()=>setShouldSend(!0)})}),(0,import_jsx_runtime22.jsxs)("div",{style:{marginTop:"10px",marginBottom:"10px",display:"flex",alignItems:"center"},children:[(0,import_jsx_runtime22.jsx)(import_core33.Button,{type:"button",onClick:validateCcda,disabled:validating,children:validating?"Validating...":"Validate"}),validationResult&&(0,import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment,{children:[(0,import_jsx_runtime22.jsxs)("div",{style:{marginLeft:"15px"},children:[(0,import_jsx_runtime22.jsx)("strong",{children:"Validation Results:"})," ",getErrorCount()," errors found"]}),(0,import_jsx_runtime22.jsx)(import_core33.Button,{type:"button",onClick:downloadResults,color:"green",style:{marginLeft:"auto"},children:"Download Full Results"})]})]})]}):null}var import_jsx_runtime23=require("react/jsx-runtime");function AttachmentDisplay(props){let{contentType,url:uncachedUrl,title}=props.value??{},url=(0,import_react_hooks12.useCachedBinaryUrl)(uncachedUrl);return url?(0,import_jsx_runtime23.jsxs)("div",{"data-testid":"attachment-display",children:[contentType?.startsWith("image/")&&(0,import_jsx_runtime23.jsx)("img",{"data-testid":"attachment-image",style:{maxWidth:props.maxWidth},src:url,alt:title}),contentType?.startsWith("video/")&&(0,import_jsx_runtime23.jsx)("video",{"data-testid":"attachment-video",style:{maxWidth:props.maxWidth},controls:!0,children:(0,import_jsx_runtime23.jsx)("source",{type:contentType,src:url})}),(contentType?.startsWith("text/")||contentType==="application/json"||contentType==="application/pdf")&&(0,import_jsx_runtime23.jsx)("div",{"data-testid":"attachment-iframe",style:{maxWidth:props.maxWidth,minHeight:400},children:(0,import_jsx_runtime23.jsx)("iframe",{title:"Attachment",width:"100%",height:"400",src:url+"#navpanes=0",allowFullScreen:!0,frameBorder:0,seamless:!0})}),contentType===import_core35.ContentType.CDA_XML&&(0,import_jsx_runtime23.jsx)(CcdaDisplay,{url}),(0,import_jsx_runtime23.jsx)("div",{"data-testid":"download-link",style:{padding:"2px 16px 16px 16px"},children:(0,import_jsx_runtime23.jsx)(import_core34.Anchor,{href:uncachedUrl,"data-testid":"attachment-details",target:"_blank",rel:"noopener noreferrer",download:getDownloadName(title),children:title||"Download"})})]}):null}function getDownloadName(title){return title?.includes(".")?title:void 0}function r(e){var t,f,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f)}else for(f in e)e[f]&&(n&&(n+=" "),n+=f);return n}function clsx(){for(var e,t,f=0,n="",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}var clsx_default=clsx;var DescriptionList_default={root:"DescriptionList_root",compact:"DescriptionList_compact"};var import_jsx_runtime24=require("react/jsx-runtime");function DescriptionList(props){let{children,compact}=props;return(0,import_jsx_runtime24.jsx)("dl",{className:clsx_default(DescriptionList_default.root,{[DescriptionList_default.compact]:compact}),children})}function DescriptionListEntry(props){return(0,import_jsx_runtime24.jsxs)(import_jsx_runtime24.Fragment,{children:[(0,import_jsx_runtime24.jsx)("dt",{children:props.term}),(0,import_jsx_runtime24.jsx)("dd",{children:props.children})]})}var import_jsx_runtime25=require("react/jsx-runtime");function AttachmentArrayDisplay(props){let attachmentElements=props.values?.map((v,index)=>(0,import_jsx_runtime25.jsx)("div",{children:(0,import_jsx_runtime25.jsx)(AttachmentDisplay,{value:v,maxWidth:props.maxWidth})},"attatchment-"+index)),content;if(props.includeDescriptionListEntry){if(props.property===void 0)throw new Error("props.property is required when includeDescriptionListEntry is true");if(!(0,import_core36.isPopulated)(props.path))throw new Error("props.path is required when includeDescriptionListEntry is true");let key=props.path.split(".").pop();content=(0,import_jsx_runtime25.jsx)(DescriptionListEntry,{term:(0,import_core36.getPathDisplayName)(key),children:attachmentElements})}else content=(0,import_jsx_runtime25.jsx)(import_jsx_runtime25.Fragment,{children:attachmentElements});return content}var import_core38=require("@mantine/core");var import_react21=require("react");var import_core37=require("@medplum/core"),import_react_hooks13=require("@medplum/react-hooks"),import_react20=require("react");var import_jsx_runtime26=require("react/jsx-runtime");function AttachmentButton(props){let medplum=(0,import_react_hooks13.useMedplum)(),fileInputRef=(0,import_react20.useRef)(null);function onClick(e){killEvent(e),fileInputRef.current?.click()}function onFileChange(e){killEvent(e);let files=e.target.files;files&&Array.from(files).forEach(processFile)}function processFile(file){!file||!file.name||(props.onUploadStart&&props.onUploadStart(),medplum.createAttachment({data:file,contentType:file.type||"application/octet-stream",filename:file.name,securityContext:props.securityContext,onProgress:props.onUploadProgress}).then(attachment=>props.onUpload(attachment)).catch(err=>{props.onUploadError&&props.onUploadError((0,import_core37.normalizeOperationOutcome)(err))}))}return(0,import_jsx_runtime26.jsxs)(import_jsx_runtime26.Fragment,{children:[(0,import_jsx_runtime26.jsx)("input",{disabled:props.disabled,type:"file","data-testid":"upload-file-input",style:{display:"none"},ref:fileInputRef,onChange:e=>onFileChange(e)}),props.children({onClick,disabled:props.disabled})]})}var import_jsx_runtime27=require("react/jsx-runtime");function AttachmentArrayInput(props){let[values,setValues]=(0,import_react21.useState)(props.defaultValue??[]),valuesRef=(0,import_react21.useRef)(values);valuesRef.current=values;function setValuesWrapper(newValues){setValues(newValues),props.onChange&&props.onChange(newValues)}return(0,import_jsx_runtime27.jsxs)("table",{style:{width:"100%"},children:[(0,import_jsx_runtime27.jsxs)("colgroup",{children:[(0,import_jsx_runtime27.jsx)("col",{width:"97%"}),(0,import_jsx_runtime27.jsx)("col",{width:"3%"})]}),(0,import_jsx_runtime27.jsxs)("tbody",{children:[values.map((v,index)=>(0,import_jsx_runtime27.jsxs)("tr",{children:[(0,import_jsx_runtime27.jsx)("td",{children:(0,import_jsx_runtime27.jsx)(AttachmentDisplay,{value:v,maxWidth:200})}),(0,import_jsx_runtime27.jsx)("td",{children:(0,import_jsx_runtime27.jsx)(import_core38.ActionIcon,{disabled:props.disabled,title:"Remove",variant:"subtle",size:"sm",color:"gray",onClick:e=>{killEvent(e);let copy=values.slice();copy.splice(index,1),setValuesWrapper(copy)},children:(0,import_jsx_runtime27.jsx)(IconCircleMinus,{})})})]},`${index}-${values.length}`)),(0,import_jsx_runtime27.jsxs)("tr",{children:[(0,import_jsx_runtime27.jsx)("td",{}),(0,import_jsx_runtime27.jsx)("td",{children:(0,import_jsx_runtime27.jsx)(AttachmentButton,{disabled:props.disabled,onUpload:attachment=>{setValuesWrapper([...valuesRef.current,attachment])},children:props2=>(0,import_jsx_runtime27.jsx)(import_core38.ActionIcon,{...props2,title:"Add",variant:"subtle",size:"sm",color:props2.disabled?"gray":"green",children:(0,import_jsx_runtime27.jsx)(IconCloudUpload,{})})})})]})]})]})}var import_core39=require("@mantine/core"),import_react22=require("react");var import_jsx_runtime28=require("react/jsx-runtime");function AttachmentInput(props){let[value,setValue]=(0,import_react22.useState)(props.defaultValue);function setValueWrapper(newValue){setValue(newValue),props.onChange&&props.onChange(newValue)}return value?(0,import_jsx_runtime28.jsxs)(import_jsx_runtime28.Fragment,{children:[(0,import_jsx_runtime28.jsx)(AttachmentDisplay,{value,maxWidth:200}),(0,import_jsx_runtime28.jsx)(import_core39.Button,{disabled:props.disabled,onClick:e=>{killEvent(e),setValueWrapper(void 0)},children:"Remove"})]}):(0,import_jsx_runtime28.jsx)(AttachmentButton,{disabled:props.disabled,securityContext:props.securityContext,onUpload:setValueWrapper,children:props2=>(0,import_jsx_runtime28.jsx)(import_core39.Button,{...props2,children:"Upload..."})})}var import_core40=require("@mantine/core"),import_core41=require("@medplum/core");var import_react23=require("react");var import_jsx_runtime29=require("react/jsx-runtime");function Logo(props){let overrideUrl=process.env.MEDPLUM_LOGO_URL;return overrideUrl?(0,import_jsx_runtime29.jsx)("img",{src:overrideUrl,alt:"Logo",style:{maxHeight:props.size}}):(0,import_jsx_runtime29.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 180 180",style:{width:props.size,height:props.size},children:[(0,import_jsx_runtime29.jsx)("title",{children:"Medplum Logo"}),(0,import_jsx_runtime29.jsx)("path",{fill:props.fill??"#9c36b5",d:"M84 56c-3-15-15-24-23-28l5-10c8 2 14 8 20 14 0-12 1-16 5-21 8-9 13-9 41-9 0 7 1 18-3 24-7 9-16 7-41 8 5 8 7 14 8 22 36-24 74-7 74 39 0 42-40 83-80 83s-80-41-80-83c0-46 38-63 74-39Zm-3 43H65c-4 0-7 3-7 7v4c0 4 3 7 7 7h16v16c0 4 3 7 7 7h4c4 0 7-3 7-7v-16h16c4 0 7-3 7-7v-4c0-4-3-7-7-7H99V83c0-4-3-7-7-7h-4c-4 0-7 3-7 7z"})]})}var import_jsx_runtime30=require("react/jsx-runtime");function MfaForm(props){let[errorMessage,setErrorMessage]=(0,import_react23.useState)();return(0,import_jsx_runtime30.jsxs)(Form,{onSubmit:formData=>{setErrorMessage(void 0),props.onSubmit(formData)?.catch(err=>setErrorMessage((0,import_core41.normalizeErrorString)(err)))},children:[(0,import_jsx_runtime30.jsxs)(import_core40.Center,{style:{flexDirection:"column"},children:[(0,import_jsx_runtime30.jsx)(Logo,{size:32}),(0,import_jsx_runtime30.jsx)(import_core40.Title,{order:3,py:"lg",children:props.title}),!props.qrCodeUrl&&props.description&&(0,import_jsx_runtime30.jsx)(import_core40.Text,{c:"dimmed",mb:"lg",mt:"-lg",children:props.description})]}),errorMessage&&(0,import_jsx_runtime30.jsx)(import_core40.Alert,{icon:(0,import_jsx_runtime30.jsx)(IconAlertCircle,{size:16}),title:"Error",color:"red",mb:"lg",children:errorMessage}),props.qrCodeUrl&&(0,import_jsx_runtime30.jsx)(import_core40.Center,{children:(0,import_jsx_runtime30.jsxs)(import_core40.Stack,{mb:"xl",children:[props.description&&(0,import_jsx_runtime30.jsx)(import_core40.Text,{c:"dimmed",mb:"md",mt:"-lg",ta:"center",children:props.description}),(0,import_jsx_runtime30.jsx)(import_core40.Image,{src:props.qrCodeUrl,alt:"Multi Factor Auth QR Code",w:"60%",mx:"auto",radius:"md",p:"xs",bg:"var(--mantine-color-white)",style:{border:"1px solid light-dark(var(--mantine-color-gray-2), var(--mantine-color-dark-4))"}})]})}),(0,import_jsx_runtime30.jsx)(import_core40.Stack,{gap:"sm",children:(0,import_jsx_runtime30.jsx)(import_core40.TextInput,{name:"token",label:"MFA code",autoComplete:"one-time-code",required:!0,autoFocus:!0})}),(0,import_jsx_runtime30.jsx)(import_core40.Stack,{gap:"xs",pt:"md",children:(0,import_jsx_runtime30.jsx)(SubmitButton,{fullWidth:!0,children:props.buttonText})})]})}var import_core52=require("@medplum/core"),import_react_hooks16=require("@medplum/react-hooks"),import_react27=require("react");var import_core42=require("@mantine/core");var Container_default={root:"Container_root"};var import_jsx_runtime31=require("react/jsx-runtime");function Container(props){let{children,...others}=props;return(0,import_jsx_runtime31.jsx)(import_core42.Container,{className:Container_default.root,...others,children})}var import_core43=require("@mantine/core");var Panel_default={paper:"Panel_paper",fill:"Panel_fill"};var import_jsx_runtime32=require("react/jsx-runtime");function Panel(props){let{width,fill,className,children,...rest}=props,style=width?{maxWidth:width}:void 0;return(0,import_jsx_runtime32.jsx)(import_core43.Paper,{className:clsx_default(Panel_default.paper,fill&&Panel_default.fill,className),style,shadow:"sm",radius:"sm",withBorder:!0,...rest,children})}var import_jsx_runtime33=require("react/jsx-runtime");function Document(props){let{children,...others}=props;return(0,import_jsx_runtime33.jsx)(Container,{children:(0,import_jsx_runtime33.jsx)(Panel,{...others,children})})}var import_core44=require("@mantine/core"),import_core45=require("@medplum/core");var import_jsx_runtime34=require("react/jsx-runtime");function OperationOutcomeAlert(props){let{outcome,issues:issuesProp,...spacingProps}=props,issues=outcome?.issue||issuesProp;return!issues||issues.length===0?null:(0,import_jsx_runtime34.jsx)(import_core44.Alert,{icon:(0,import_jsx_runtime34.jsx)(IconAlertCircle,{size:16}),color:"red",...spacingProps,children:issues.map(issue=>(0,import_jsx_runtime34.jsx)("div",{"data-testid":"text-field-error",children:(0,import_core45.operationOutcomeIssueToString)(issue)},issue.details?.text))})}function getErrorsForInput(outcome,expression){return outcome?.issue?.filter(issue=>isExpressionMatch(issue.expression?.[0],expression))?.map(issue=>issue.details?.text)?.join(`
|
|
102
|
+
}`.replaceAll(/\s+/g," ")}function getResourcesFromResponse2(response){let resources=[];return response.data.Patients1&&resources.push(...response.data.Patients1),response.data.Patients2&&resources.push(...response.data.Patients2),response.data.ServiceRequestList&&resources.push(...response.data.ServiceRequestList),dedupeResources2(resources)}function dedupeResources2(resources){let ids=new Set,result=[];for(let resource of resources)resource.id&&!ids.has(resource.id)&&(ids.add(resource.id),result.push(resource));return result}function patientsToActions(patients,navigate){let patientActions=patients.filter(p=>!!p.id).map(patient=>({id:patient.id,label:patient.name?(0,import_core29.formatHumanName)(patient.name[0]):patient.id,description:patient.birthDate,leftSection:(0,import_jsx_runtime19.jsx)(ResourceAvatar,{value:patient,radius:"xl",size:24}),onClick:()=>navigate(`/Patient/${patient.id}`)}));return patientActions.length>0?[{group:"Patients",actions:patientActions}]:[]}function resourcesToActions(resources,resourceTypes,navigate){let result=[],resourceTypeActions=resourceTypes.map(rt=>({id:`resource-type-${rt.code}`,label:rt.display??rt.code??"",description:"Resource Type",onClick:()=>navigate(`/${rt.code}`)}));resourceTypeActions.length>0&&result.push({group:"Resource Types",actions:resourceTypeActions});let patientActions=[],serviceRequestActions=[];for(let resource of resources)resource.resourceType==="Patient"&&resource.id?patientActions.push({id:resource.id,label:resource.name?(0,import_core29.formatHumanName)(resource.name[0]):resource.id,description:resource.birthDate,leftSection:(0,import_jsx_runtime19.jsx)(ResourceAvatar,{value:resource,radius:"xl",size:24}),onClick:()=>navigate(`/Patient/${resource.id}`)}):resource.resourceType==="ServiceRequest"&&resource.id&&serviceRequestActions.push({id:resource.id,label:resource.id,description:resource.subject?.display,onClick:()=>navigate(`/ServiceRequest/${resource.id}`)});return patientActions.length>0&&result.push({group:"Patients",actions:patientActions}),serviceRequestActions.length>0&&result.push({group:"Service Requests",actions:serviceRequestActions}),result}var import_jsx_runtime20=require("react/jsx-runtime");function Navbar(props){let navigate=(0,import_react_hooks10.useMedplumNavigate)(),profile=(0,import_react_hooks10.useMedplumProfile)(),activeLink=getActiveLink(props.pathname,props.searchParams,props.menus),[userMenuOpened,setUserMenuOpened]=(0,import_react17.useState)(!1),[bookmarkDialogVisible,setBookmarkDialogVisible]=(0,import_react17.useState)(!1);function onLinkClick2(e,to){e.stopPropagation(),e.preventDefault(),navigate(to),window.innerWidth<768&&props.closeNavbar()}function navigateResourceType(resourceType){resourceType&&navigate(`/${resourceType}`)}let opened=props.opened??!0;return(0,import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment,{children:[(0,import_jsx_runtime20.jsxs)(import_core30.AppShell.Navbar,{id:"navbar",className:Navbar_default.navbar,children:[props.logo&&(0,import_jsx_runtime20.jsx)(import_core30.AppShell.Section,{px:"xs",pt:"xs",pb:"4px",children:(0,import_jsx_runtime20.jsx)(import_core30.UnstyledButton,{className:Navbar_default.logoButton,onClick:props.navbarToggle,"aria-expanded":opened,"aria-controls":"navbar","aria-label":"Medplum Logo",children:props.logo})}),(0,import_jsx_runtime20.jsx)(import_core30.ScrollArea,{px:"xs",pb:"xs",pt:"sm",h:"100%",children:(0,import_jsx_runtime20.jsxs)(import_core30.AppShell.Section,{grow:!0,children:[props.spotlightEnabled&&(0,import_jsx_runtime20.jsx)(import_core30.Box,{mb:2,children:(0,import_jsx_runtime20.jsx)(import_core30.Tooltip,{label:"Search",position:"right",transitionProps:{duration:0},disabled:opened,children:(0,import_jsx_runtime20.jsxs)(import_core30.UnstyledButton,{className:Navbar_default.link,onClick:()=>import_spotlight2.spotlight.open(),"aria-label":"Search",children:[(0,import_jsx_runtime20.jsx)(IconSearch,{size:"1.2rem"}),(0,import_jsx_runtime20.jsx)("span",{className:Navbar_default.linkLabel,"data-opened":opened||void 0,children:"Search"})]})})}),props.spotlightEnabled&&(0,import_jsx_runtime20.jsx)(Spotlight,{patientsOnly:props.patientsOnly}),!props.resourceTypeSearchDisabled&&(0,import_jsx_runtime20.jsx)(import_core30.AppShell.Section,{mb:"sm",children:(0,import_jsx_runtime20.jsx)(ResourceTypeInput,{name:"resourceType",placeholder:"Resource Type",maxValues:0,onChange:newValue=>navigateResourceType(newValue)},window.location.pathname)}),props.menus?.map((menu,index)=>(0,import_jsx_runtime20.jsxs)(import_react17.Fragment,{children:[menu.title&&(0,import_jsx_runtime20.jsx)(import_core30.Text,{className:Navbar_default.menuTitle,"data-opened":opened||void 0,children:menu.title}),(0,import_jsx_runtime20.jsx)(import_core30.Stack,{gap:"2",children:menu.links?.map(link=>(0,import_jsx_runtime20.jsx)(NavbarLink,{to:link.href,active:link.href===activeLink?.href,onClick:e=>onLinkClick2(e,link.href),icon:link.icon,label:link.label??"",opened},link.href))})]},`menu-${menu.title??index}`)),props.displayAddBookmark&&(0,import_jsx_runtime20.jsx)(import_core30.Tooltip,{label:"Add Bookmark",position:"right",transitionProps:{duration:0},disabled:opened,children:(0,import_jsx_runtime20.jsxs)(import_core30.UnstyledButton,{className:`${Navbar_default.link} ${Navbar_default.addBookmarkLink}`,onClick:()=>setBookmarkDialogVisible(!0),children:[(0,import_jsx_runtime20.jsx)(IconCirclePlus,{}),(0,import_jsx_runtime20.jsx)("span",{className:Navbar_default.linkLabel,"data-opened":opened||void 0,children:"Add Bookmark"})]})})]})}),props.userMenuEnabled&&(0,import_jsx_runtime20.jsxs)(import_core30.AppShell.Section,{px:"xs",py:"xs",children:[(0,import_jsx_runtime20.jsx)(import_core30.Tooltip,{label:opened?"Close Sidebar":"Open Sidebar",position:"right",transitionProps:{duration:0},children:(0,import_jsx_runtime20.jsx)(import_core30.UnstyledButton,{className:Navbar_default.toggleButton,"aria-label":opened?"Close Sidebar":"Open Sidebar",onClick:props.navbarToggle,"aria-expanded":opened,"aria-controls":"navbar",children:(0,import_jsx_runtime20.jsx)(IconLayoutSidebar,{})})}),(0,import_jsx_runtime20.jsx)(import_core30.Divider,{my:"xs",mx:6,className:Navbar_default.divider}),(0,import_jsx_runtime20.jsxs)(import_core30.Menu,{width:260,shadow:"xl",position:"top-start",transitionProps:{transition:"fade-up"},opened:userMenuOpened,onClose:()=>setUserMenuOpened(!1),children:[(0,import_jsx_runtime20.jsx)(import_core30.Menu.Target,{children:(0,import_jsx_runtime20.jsxs)(import_core30.UnstyledButton,{className:Navbar_default.link,pl:"7","aria-label":"User menu","data-active":userMenuOpened||void 0,onClick:()=>setUserMenuOpened(o=>!o),bd:"1px 0 0 0 solid var(--mantine-color-gray-200)",children:[(0,import_jsx_runtime20.jsx)(ResourceAvatar,{value:profile,radius:"xl",size:24}),(0,import_jsx_runtime20.jsx)("span",{className:Navbar_default.linkLabel,"data-opened":opened||void 0,children:(0,import_core31.formatHumanName)(profile?.name?.[0])})]})}),(0,import_jsx_runtime20.jsx)(import_core30.Menu.Dropdown,{children:(0,import_jsx_runtime20.jsx)(HeaderDropdown,{version:props.version,showLayoutVersionToggle:props.showLayoutVersionToggle})})]})]})]}),props.pathname&&props.searchParams&&(0,import_jsx_runtime20.jsx)(BookmarkDialog,{pathname:props.pathname,searchParams:props.searchParams,visible:bookmarkDialogVisible,onOk:()=>setBookmarkDialogVisible(!1),onCancel:()=>setBookmarkDialogVisible(!1)})]})}function NavbarLink(props){let{to,icon,label,onClick,active}=props;return(0,import_jsx_runtime20.jsx)(import_core30.Tooltip,{label,position:"right",transitionProps:{duration:0},disabled:props.opened,children:(0,import_jsx_runtime20.jsxs)(MedplumLink,{to,onClick,className:Navbar_default.link,"data-active":active||void 0,children:[icon??(0,import_jsx_runtime20.jsx)(IconBookmark,{}),(0,import_jsx_runtime20.jsx)("span",{className:Navbar_default.linkLabel,"data-opened":props.opened||void 0,children:label})]})})}function getActiveLink(currentPathname,currentSearchParams,menus){if(!currentPathname||!currentSearchParams||!menus)return;let bestLink,bestScore=0;for(let menu of menus)if(menu.links)for(let link of menu.links){let score=getLinkScore(currentPathname,currentSearchParams,link.href);score>bestScore&&(bestScore=score,bestLink=link)}return bestLink}function getLinkScore(currentPathname,currentSearchParams,linkHref){let linkUrl=new URL(linkHref,"https://example.com");if(currentPathname!==linkUrl.pathname)return 0;let ignoredParams=["_count","_offset"];for(let[key,value]of linkUrl.searchParams.entries())if(!ignoredParams.includes(key)&¤tSearchParams.get(key)!==value)return 0;let count=1;for(let[key,value]of currentSearchParams.entries())ignoredParams.includes(key)||linkUrl.searchParams.get(key)===value&&count++;return count}var import_jsx_runtime21=require("react/jsx-runtime"),OPEN_WIDTH=250,CLOSED_WIDTH=59;function AppShell(props){let[navbarOpen,setNavbarOpen]=(0,import_react18.useState)(localStorage.navbarOpen==="true"),[layoutVersion]=(0,import_react18.useState)(props.layoutVersion??localStorage.appShellLayoutVersion??"v1"),medplum=(0,import_react_hooks11.useMedplum)(),profile=(0,import_react_hooks11.useMedplumProfile)();function setNavbarOpenWrapper(open){localStorage.navbarOpen=open.toString(),setNavbarOpen(open)}function closeNavbar(){setNavbarOpenWrapper(!1)}function toggleNavbar(){setNavbarOpenWrapper(!navbarOpen)}if(medplum.isLoading())return(0,import_jsx_runtime21.jsx)(Loading,{});let headerProp,navbarProp,headerComponent,navbarComponent;return layoutVersion==="v2"?(headerProp={height:0},navbarProp={width:navbarOpen?OPEN_WIDTH:CLOSED_WIDTH,breakpoint:0,collapsed:{desktop:!profile,mobile:!profile}},headerComponent=void 0,navbarComponent=profile?(0,import_jsx_runtime21.jsx)(Navbar,{logo:props.logo,pathname:props.pathname,searchParams:props.searchParams,menus:props.menus,navbarToggle:toggleNavbar,closeNavbar,displayAddBookmark:props.displayAddBookmark,resourceTypeSearchDisabled:!0,opened:navbarOpen,spotlightEnabled:!0,patientsOnly:props.spotlightPatientsOnly,userMenuEnabled:!0,version:props.version,showLayoutVersionToggle:props.showLayoutVersionToggle}):void 0):(headerProp={height:60},navbarProp={width:OPEN_WIDTH,breakpoint:"sm",collapsed:{desktop:!profile||!navbarOpen,mobile:!profile||!navbarOpen}},headerComponent=profile&&(0,import_jsx_runtime21.jsx)(Header,{pathname:props.pathname,searchParams:props.searchParams,headerSearchDisabled:props.headerSearchDisabled,logo:props.logo,version:props.version,navbarOpen,navbarToggle:toggleNavbar,notifications:props.notifications}),navbarComponent=profile&&navbarOpen?(0,import_jsx_runtime21.jsx)(Navbar,{pathname:props.pathname,searchParams:props.searchParams,menus:props.menus,navbarToggle:toggleNavbar,closeNavbar,displayAddBookmark:props.displayAddBookmark,resourceTypeSearchDisabled:props.resourceTypeSearchDisabled,patientsOnly:props.spotlightPatientsOnly}):void 0),(0,import_jsx_runtime21.jsxs)(import_core32.AppShell,{header:headerProp,navbar:navbarProp,padding:0,children:[headerComponent,navbarComponent,(0,import_jsx_runtime21.jsx)(import_core32.AppShell.Main,{className:AppShell_default.main,children:(0,import_jsx_runtime21.jsx)(ErrorBoundary,{children:(0,import_jsx_runtime21.jsx)(import_react18.Suspense,{fallback:(0,import_jsx_runtime21.jsx)(Loading,{}),children:props.children})})})]})}var import_core36=require("@medplum/core");var import_core34=require("@mantine/core"),import_core35=require("@medplum/core"),import_react_hooks12=require("@medplum/react-hooks");var import_core33=require("@mantine/core"),import_react19=require("react");var import_jsx_runtime22=require("react/jsx-runtime"),CCDA_VIEWER_URL="https://ccda.medplum.com",BASE_VALIDATION_URL="https://ccda-validator.medplum.com/";function CcdaDisplay(props){let{url}=props,[shouldSend,setShouldSend]=(0,import_react19.useState)(!1),iframeRef=(0,import_react19.useRef)(null),[validationResult,setValidationResult]=(0,import_react19.useState)(),[validating,setValidating]=(0,import_react19.useState)(!1);(0,import_react19.useEffect)(()=>{url&&shouldSend&&iframeRef.current&&(sendCommand(iframeRef.current,{command:"loadCcdaXml",value:url}).catch(console.error),setShouldSend(!1))},[url,shouldSend]);let validateCcda=async()=>{if(url)try{setValidating(!0);let ccdaContent=await(await fetch(url)).text(),formData=new FormData;formData.append("ccdaFile",new Blob([ccdaContent],{type:"text/xml"}),"ccda.xml");let validationUrl=`${BASE_VALIDATION_URL}referenceccdaservice/?validationObjective=C-CDA_IG_Plus_Vocab&referenceFileName=No%20scenario%20File&curesUpdate=true&severityLevel=WARNING`,validationResponse=await fetch(validationUrl,{method:"POST",body:formData,credentials:"omit",redirect:"manual"});if(!validationResponse.ok)throw new Error(`Validation failed: ${validationResponse.status} ${validationResponse.statusText}`);let validationResult2=await validationResponse.json();setValidationResult(validationResult2)}catch(error){setValidationResult(void 0),console.error("CCDA validation error:",error)}finally{setValidating(!1)}},downloadResults=()=>{if(!validationResult)return;let resultsJson=JSON.stringify(validationResult,null,2);exportJsonFile(resultsJson,"ccda-validation-results")},getErrorCount=()=>validationResult?validationResult.resultsMetaData.resultMetaData.filter(item=>item?.type.includes("Error")).reduce((sum,item)=>sum+(item.count||0),0):0;return url?(0,import_jsx_runtime22.jsxs)("div",{"data-testid":"ccda-iframe",style:{maxWidth:props.maxWidth},children:[(0,import_jsx_runtime22.jsx)("div",{style:{minHeight:400},children:(0,import_jsx_runtime22.jsx)("iframe",{title:"C-CDA Viewer",width:"100%",height:"400",ref:iframeRef,src:CCDA_VIEWER_URL,allowFullScreen:!0,frameBorder:0,seamless:!0,onLoad:()=>setShouldSend(!0)})}),(0,import_jsx_runtime22.jsxs)("div",{style:{marginTop:"10px",marginBottom:"10px",display:"flex",alignItems:"center"},children:[(0,import_jsx_runtime22.jsx)(import_core33.Button,{type:"button",onClick:validateCcda,disabled:validating,children:validating?"Validating...":"Validate"}),validationResult&&(0,import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment,{children:[(0,import_jsx_runtime22.jsxs)("div",{style:{marginLeft:"15px"},children:[(0,import_jsx_runtime22.jsx)("strong",{children:"Validation Results:"})," ",getErrorCount()," errors found"]}),(0,import_jsx_runtime22.jsx)(import_core33.Button,{type:"button",onClick:downloadResults,color:"green",style:{marginLeft:"auto"},children:"Download Full Results"})]})]})]}):null}var import_jsx_runtime23=require("react/jsx-runtime");function AttachmentDisplay(props){let{contentType,url:uncachedUrl,title}=props.value??{},url=(0,import_react_hooks12.useCachedBinaryUrl)(uncachedUrl);return url?(0,import_jsx_runtime23.jsxs)("div",{"data-testid":"attachment-display",children:[contentType?.startsWith("image/")&&(0,import_jsx_runtime23.jsx)("img",{"data-testid":"attachment-image",style:{maxWidth:props.maxWidth},src:url,alt:title}),contentType?.startsWith("video/")&&(0,import_jsx_runtime23.jsx)("video",{"data-testid":"attachment-video",style:{maxWidth:props.maxWidth},controls:!0,children:(0,import_jsx_runtime23.jsx)("source",{type:contentType,src:url})}),(contentType?.startsWith("text/")||contentType==="application/json"||contentType==="application/pdf")&&(0,import_jsx_runtime23.jsx)("div",{"data-testid":"attachment-iframe",style:{maxWidth:props.maxWidth,minHeight:400},children:(0,import_jsx_runtime23.jsx)("iframe",{title:"Attachment",width:"100%",height:"400",src:url+"#navpanes=0",allowFullScreen:!0,frameBorder:0,seamless:!0})}),contentType===import_core35.ContentType.CDA_XML&&(0,import_jsx_runtime23.jsx)(CcdaDisplay,{url}),(0,import_jsx_runtime23.jsx)("div",{"data-testid":"download-link",style:{padding:"2px 16px 16px 16px"},children:(0,import_jsx_runtime23.jsx)(import_core34.Anchor,{href:uncachedUrl,"data-testid":"attachment-details",target:"_blank",rel:"noopener noreferrer",download:getDownloadName(title),children:title||"Download"})})]}):null}function getDownloadName(title){return title?.includes(".")?title:void 0}function r(e){var t,f,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f)}else for(f in e)e[f]&&(n&&(n+=" "),n+=f);return n}function clsx(){for(var e,t,f=0,n="",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}var clsx_default=clsx;var DescriptionList_default={root:"DescriptionList_root",compact:"DescriptionList_compact"};var import_jsx_runtime24=require("react/jsx-runtime");function DescriptionList(props){let{children,compact}=props;return(0,import_jsx_runtime24.jsx)("dl",{className:clsx_default(DescriptionList_default.root,{[DescriptionList_default.compact]:compact}),children})}function DescriptionListEntry(props){return(0,import_jsx_runtime24.jsxs)(import_jsx_runtime24.Fragment,{children:[(0,import_jsx_runtime24.jsx)("dt",{children:props.term}),(0,import_jsx_runtime24.jsx)("dd",{children:props.children})]})}var import_jsx_runtime25=require("react/jsx-runtime");function AttachmentArrayDisplay(props){let attachmentElements=props.values?.map((v,index)=>(0,import_jsx_runtime25.jsx)("div",{children:(0,import_jsx_runtime25.jsx)(AttachmentDisplay,{value:v,maxWidth:props.maxWidth})},"attatchment-"+index)),content;if(props.includeDescriptionListEntry){if(props.property===void 0)throw new Error("props.property is required when includeDescriptionListEntry is true");if(!(0,import_core36.isPopulated)(props.path))throw new Error("props.path is required when includeDescriptionListEntry is true");let key=props.path.split(".").pop();content=(0,import_jsx_runtime25.jsx)(DescriptionListEntry,{term:(0,import_core36.getPathDisplayName)(key),children:attachmentElements})}else content=(0,import_jsx_runtime25.jsx)(import_jsx_runtime25.Fragment,{children:attachmentElements});return content}var import_core38=require("@mantine/core");var import_react21=require("react");var import_core37=require("@medplum/core"),import_react_hooks13=require("@medplum/react-hooks"),import_react20=require("react");var import_jsx_runtime26=require("react/jsx-runtime");function AttachmentButton(props){let medplum=(0,import_react_hooks13.useMedplum)(),fileInputRef=(0,import_react20.useRef)(null);function onClick(e){killEvent(e),fileInputRef.current?.click()}function onFileChange(e){killEvent(e);let files=e.target.files;files&&Array.from(files).forEach(processFile)}function processFile(file){!file||!file.name||(props.onUploadStart&&props.onUploadStart(),medplum.createAttachment({data:file,contentType:file.type||"application/octet-stream",filename:file.name,securityContext:props.securityContext,onProgress:props.onUploadProgress}).then(attachment=>props.onUpload(attachment)).catch(err=>{props.onUploadError&&props.onUploadError((0,import_core37.normalizeOperationOutcome)(err))}))}return(0,import_jsx_runtime26.jsxs)(import_jsx_runtime26.Fragment,{children:[(0,import_jsx_runtime26.jsx)("input",{disabled:props.disabled,type:"file","data-testid":"upload-file-input",style:{display:"none"},ref:fileInputRef,onChange:e=>onFileChange(e)}),props.children({onClick,disabled:props.disabled})]})}var import_jsx_runtime27=require("react/jsx-runtime");function AttachmentArrayInput(props){let[values,setValues]=(0,import_react21.useState)(props.defaultValue??[]),valuesRef=(0,import_react21.useRef)(values);valuesRef.current=values;function setValuesWrapper(newValues){setValues(newValues),props.onChange&&props.onChange(newValues)}return(0,import_jsx_runtime27.jsxs)("table",{style:{width:"100%"},children:[(0,import_jsx_runtime27.jsxs)("colgroup",{children:[(0,import_jsx_runtime27.jsx)("col",{width:"97%"}),(0,import_jsx_runtime27.jsx)("col",{width:"3%"})]}),(0,import_jsx_runtime27.jsxs)("tbody",{children:[values.map((v,index)=>(0,import_jsx_runtime27.jsxs)("tr",{children:[(0,import_jsx_runtime27.jsx)("td",{children:(0,import_jsx_runtime27.jsx)(AttachmentDisplay,{value:v,maxWidth:200})}),(0,import_jsx_runtime27.jsx)("td",{children:(0,import_jsx_runtime27.jsx)(import_core38.ActionIcon,{disabled:props.disabled,title:"Remove",variant:"subtle",size:"sm",color:"gray",onClick:e=>{killEvent(e);let copy=values.slice();copy.splice(index,1),setValuesWrapper(copy)},children:(0,import_jsx_runtime27.jsx)(IconCircleMinus,{})})})]},`${index}-${values.length}`)),(0,import_jsx_runtime27.jsxs)("tr",{children:[(0,import_jsx_runtime27.jsx)("td",{}),(0,import_jsx_runtime27.jsx)("td",{children:(0,import_jsx_runtime27.jsx)(AttachmentButton,{disabled:props.disabled,onUpload:attachment=>{setValuesWrapper([...valuesRef.current,attachment])},children:props2=>(0,import_jsx_runtime27.jsx)(import_core38.ActionIcon,{...props2,title:"Add",variant:"subtle",size:"sm",color:props2.disabled?"gray":"green",children:(0,import_jsx_runtime27.jsx)(IconCloudUpload,{})})})})]})]})]})}var import_core39=require("@mantine/core"),import_react22=require("react");var import_jsx_runtime28=require("react/jsx-runtime");function AttachmentInput(props){let[value,setValue]=(0,import_react22.useState)(props.defaultValue);function setValueWrapper(newValue){setValue(newValue),props.onChange&&props.onChange(newValue)}return value?(0,import_jsx_runtime28.jsxs)(import_jsx_runtime28.Fragment,{children:[(0,import_jsx_runtime28.jsx)(AttachmentDisplay,{value,maxWidth:200}),(0,import_jsx_runtime28.jsx)(import_core39.Button,{disabled:props.disabled,onClick:e=>{killEvent(e),setValueWrapper(void 0)},children:"Remove"})]}):(0,import_jsx_runtime28.jsx)(AttachmentButton,{disabled:props.disabled,securityContext:props.securityContext,onUpload:setValueWrapper,children:props2=>(0,import_jsx_runtime28.jsx)(import_core39.Button,{...props2,children:"Upload..."})})}var import_core40=require("@mantine/core"),import_core41=require("@medplum/core");var import_react23=require("react");var import_jsx_runtime29=require("react/jsx-runtime");function Logo(props){let overrideUrl=process.env.MEDPLUM_LOGO_URL;return overrideUrl?(0,import_jsx_runtime29.jsx)("img",{src:overrideUrl,alt:"Logo",style:{maxHeight:props.size}}):(0,import_jsx_runtime29.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 180 180",style:{width:props.size,height:props.size},children:[(0,import_jsx_runtime29.jsx)("title",{children:"Medplum Logo"}),(0,import_jsx_runtime29.jsx)("path",{fill:props.fill??"#9c36b5",d:"M84 56c-3-15-15-24-23-28l5-10c8 2 14 8 20 14 0-12 1-16 5-21 8-9 13-9 41-9 0 7 1 18-3 24-7 9-16 7-41 8 5 8 7 14 8 22 36-24 74-7 74 39 0 42-40 83-80 83s-80-41-80-83c0-46 38-63 74-39Zm-3 43H65c-4 0-7 3-7 7v4c0 4 3 7 7 7h16v16c0 4 3 7 7 7h4c4 0 7-3 7-7v-16h16c4 0 7-3 7-7v-4c0-4-3-7-7-7H99V83c0-4-3-7-7-7h-4c-4 0-7 3-7 7z"})]})}var import_jsx_runtime30=require("react/jsx-runtime");function MfaForm(props){let[errorMessage,setErrorMessage]=(0,import_react23.useState)();return(0,import_jsx_runtime30.jsxs)(Form,{onSubmit:formData=>{setErrorMessage(void 0),props.onSubmit(formData)?.catch(err=>setErrorMessage((0,import_core41.normalizeErrorString)(err)))},children:[(0,import_jsx_runtime30.jsxs)(import_core40.Center,{style:{flexDirection:"column"},children:[(0,import_jsx_runtime30.jsx)(Logo,{size:32}),(0,import_jsx_runtime30.jsx)(import_core40.Title,{order:3,py:"lg",children:props.title}),!props.qrCodeUrl&&props.description&&(0,import_jsx_runtime30.jsx)(import_core40.Text,{c:"dimmed",mb:"lg",mt:"-lg",children:props.description})]}),errorMessage&&(0,import_jsx_runtime30.jsx)(import_core40.Alert,{icon:(0,import_jsx_runtime30.jsx)(IconAlertCircle,{size:16}),title:"Error",color:"red",mb:"lg",children:errorMessage}),props.qrCodeUrl&&(0,import_jsx_runtime30.jsx)(import_core40.Center,{children:(0,import_jsx_runtime30.jsxs)(import_core40.Stack,{mb:"xl",children:[props.description&&(0,import_jsx_runtime30.jsx)(import_core40.Text,{c:"dimmed",mb:"md",mt:"-lg",ta:"center",children:props.description}),(0,import_jsx_runtime30.jsx)(import_core40.Image,{src:props.qrCodeUrl,alt:"Multi Factor Auth QR Code",w:"60%",mx:"auto",radius:"md",p:"xs",bg:"var(--mantine-color-white)",style:{border:"1px solid light-dark(var(--mantine-color-gray-2), var(--mantine-color-dark-4))"}})]})}),(0,import_jsx_runtime30.jsx)(import_core40.Stack,{gap:"sm",children:(0,import_jsx_runtime30.jsx)(import_core40.TextInput,{name:"token",label:"MFA code",autoComplete:"one-time-code",required:!0,autoFocus:!0})}),(0,import_jsx_runtime30.jsx)(import_core40.Stack,{gap:"xs",pt:"md",children:(0,import_jsx_runtime30.jsx)(SubmitButton,{fullWidth:!0,children:props.buttonText})})]})}var import_core52=require("@medplum/core"),import_react_hooks16=require("@medplum/react-hooks"),import_react27=require("react");var import_core42=require("@mantine/core");var Container_default={root:"Container_root"};var import_jsx_runtime31=require("react/jsx-runtime");function Container(props){let{children,...others}=props;return(0,import_jsx_runtime31.jsx)(import_core42.Container,{className:Container_default.root,...others,children})}var import_core43=require("@mantine/core");var Panel_default={paper:"Panel_paper",fill:"Panel_fill"};var import_jsx_runtime32=require("react/jsx-runtime");function Panel(props){let{width,fill,className,children,...rest}=props,style=width?{maxWidth:width}:void 0;return(0,import_jsx_runtime32.jsx)(import_core43.Paper,{className:clsx_default(Panel_default.paper,fill&&Panel_default.fill,className),style,shadow:"sm",radius:"sm",withBorder:!0,...rest,children})}var import_jsx_runtime33=require("react/jsx-runtime");function Document(props){let{children,...others}=props;return(0,import_jsx_runtime33.jsx)(Container,{children:(0,import_jsx_runtime33.jsx)(Panel,{...others,children})})}var import_core44=require("@mantine/core"),import_core45=require("@medplum/core");var import_jsx_runtime34=require("react/jsx-runtime");function OperationOutcomeAlert(props){let{outcome,issues:issuesProp,...spacingProps}=props,issues=outcome?.issue||issuesProp;return!issues||issues.length===0?null:(0,import_jsx_runtime34.jsx)(import_core44.Alert,{icon:(0,import_jsx_runtime34.jsx)(IconAlertCircle,{size:16}),color:"red",...spacingProps,children:issues.map(issue=>(0,import_jsx_runtime34.jsx)("div",{"data-testid":"text-field-error",children:(0,import_core45.operationOutcomeIssueToString)(issue)},issue.details?.text))})}function getErrorsForInput(outcome,expression){return outcome?.issue?.filter(issue=>isExpressionMatch(issue.expression?.[0],expression))?.map(issue=>issue.details?.text)?.join(`
|
|
103
103
|
`)}function getIssuesForExpression(outcome,expression){return outcome?.issue?.filter(issue=>isExpressionMatch(issue.expression?.[0],expression))}var ARRAY_INDEX_REGEX=/\[\d+\]/;function isExpressionMatch(expr1,expr2){let isExpr1Indexed=typeof expr1=="string"&&ARRAY_INDEX_REGEX.test(expr1),isExpr2Indexed=typeof expr2=="string"&&ARRAY_INDEX_REGEX.test(expr2);if(isExpr1Indexed!==isExpr2Indexed&&(expr1=expr1?.replace(ARRAY_INDEX_REGEX,""),expr2=expr2?.replace(ARRAY_INDEX_REGEX,"")),expr1===expr2)return!0;if(!expr1||!expr2)return!1;let dot1=expr1.indexOf(".");if(dot1>=0&&expr1.substring(dot1+1)===expr2)return!0;let dot2=expr2.indexOf(".");return dot2>=0&&expr2.substring(dot2+1)===expr1}var import_core46=require("@mantine/core"),import_core47=require("@medplum/core"),import_react_hooks14=require("@medplum/react-hooks"),import_react24=require("react");var import_jsx_runtime35=require("react/jsx-runtime");function NewProjectForm(props){let medplum=(0,import_react_hooks14.useMedplum)(),[outcome,setOutcome]=(0,import_react24.useState)(),issues=getIssuesForExpression(outcome,void 0);return(0,import_jsx_runtime35.jsxs)(Form,{onSubmit:async formData=>{try{props.handleAuthResponse(await medplum.startNewProject({login:props.login,projectName:formData.projectName}))}catch(err){setOutcome((0,import_core47.normalizeOperationOutcome)(err))}},children:[(0,import_jsx_runtime35.jsxs)(import_core46.Flex,{direction:"column",align:"center",justify:"center",children:[(0,import_jsx_runtime35.jsx)(Logo,{size:32}),(0,import_jsx_runtime35.jsx)(import_core46.Title,{order:3,py:"lg",children:"Create a new project"})]}),(0,import_jsx_runtime35.jsx)(OperationOutcomeAlert,{issues,mb:"lg"}),(0,import_jsx_runtime35.jsx)(import_core46.Stack,{gap:"sm",children:(0,import_jsx_runtime35.jsx)(import_core46.TextInput,{name:"projectName",label:"Project Name",placeholder:"My Project",required:!0,autoFocus:!0,error:getErrorsForInput(outcome,"projectName")})}),(0,import_jsx_runtime35.jsxs)(import_core46.Stack,{gap:"xs",mt:"md",children:[(0,import_jsx_runtime35.jsx)(SubmitButton,{fullWidth:!0,children:"Create Project"}),(0,import_jsx_runtime35.jsxs)(import_core46.Text,{c:"dimmed",size:"xs",pt:"lg",ta:"center",children:['By clicking "Create Project" you agree to the Medplum'," ",(0,import_jsx_runtime35.jsx)(import_core46.Anchor,{href:"https://www.medplum.com/privacy",children:"Privacy\xA0Policy"})," and ",(0,import_jsx_runtime35.jsx)(import_core46.Anchor,{href:"https://www.medplum.com/terms",children:"Terms\xA0of\xA0Service"}),"."]})]})]})}var import_core50=require("@mantine/core"),import_core51=require("@medplum/core"),import_react_hooks15=require("@medplum/react-hooks"),import_react26=require("react");var import_core48=require("@mantine/core"),import_react25=require("react");function createScriptTag(src,onload){let head=document.getElementsByTagName("head")[0],script=document.createElement("script");script.async=!0,script.src=src,script.onload=onload??null,head.appendChild(script)}var import_jsx_runtime36=require("react/jsx-runtime");function GoogleButton(props){let{googleClientId,handleGoogleCredential}=props,parentRef=(0,import_react25.useRef)(null),[scriptLoaded,setScriptLoaded]=(0,import_react25.useState)(typeof google<"u"),initializedRef=(0,import_react25.useRef)(!1),buttonRenderedRef=(0,import_react25.useRef)(!1);return(0,import_react25.useEffect)(()=>{if(typeof google>"u"){createScriptTag("https://accounts.google.com/gsi/client",()=>setScriptLoaded(!0));return}initializedRef.current||(google.accounts.id.initialize({client_id:googleClientId,callback:handleGoogleCredential}),initializedRef.current=!0),parentRef.current&&!buttonRenderedRef.current&&(google.accounts.id.renderButton(parentRef.current,{type:"standard",logo_alignment:"center",width:parentRef.current.clientWidth}),buttonRenderedRef.current=!0)},[googleClientId,scriptLoaded,handleGoogleCredential]),googleClientId?(0,import_jsx_runtime36.jsx)(import_core48.Box,{ref:parentRef,w:"100%",h:40,display:"flex",style:{justifyContent:"center"}}):null}var import_core49=require("@medplum/core");function getGoogleClientId(clientId){if(clientId)return clientId;let origin=import_core49.locationUtils.getOrigin();if(origin&&("undefined"?.split(",")??[]).includes(origin))return"__GOOGLE_CLIENT_ID__"}function initRecaptcha(siteKey){typeof grecaptcha>"u"&&createScriptTag("https://www.google.com/recaptcha/api.js?render="+siteKey)}function getRecaptcha(siteKey){return new Promise((resolve,reject)=>{grecaptcha.ready(async()=>{try{resolve(await grecaptcha.execute(siteKey,{action:"submit"}))}catch(err){reject(err)}})})}var import_jsx_runtime37=require("react/jsx-runtime");function NewUserForm(props){let googleClientId=getGoogleClientId(props.googleClientId),recaptchaSiteKey=props.recaptchaSiteKey,medplum=(0,import_react_hooks15.useMedplum)(),[outcome,setOutcome]=(0,import_react26.useState)(),issues=getIssuesForExpression(outcome,void 0);return(0,import_react26.useEffect)(()=>{recaptchaSiteKey&&initRecaptcha(recaptchaSiteKey)},[recaptchaSiteKey]),(0,import_jsx_runtime37.jsxs)(Form,{onSubmit:async formData=>{setOutcome(void 0);try{let recaptchaToken="";recaptchaSiteKey&&(recaptchaToken=await getRecaptcha(recaptchaSiteKey)),props.handleAuthResponse(await medplum.startNewUser({projectId:props.projectId,clientId:props.clientId,firstName:formData.firstName,lastName:formData.lastName,email:formData.email,password:formData.password,remember:formData.remember==="true",recaptchaSiteKey,recaptchaToken}))}catch(err){setOutcome((0,import_core51.normalizeOperationOutcome)(err))}},children:[(0,import_jsx_runtime37.jsx)(import_core50.Flex,{direction:"column",align:"center",justify:"center",children:props.children}),(0,import_jsx_runtime37.jsx)(OperationOutcomeAlert,{issues,mb:"lg"}),googleClientId&&(0,import_jsx_runtime37.jsxs)(import_jsx_runtime37.Fragment,{children:[(0,import_jsx_runtime37.jsx)(import_core50.Box,{style:{minHeight:40},children:(0,import_jsx_runtime37.jsx)(GoogleButton,{googleClientId,handleGoogleCredential:async response=>{try{props.handleAuthResponse(await medplum.startGoogleLogin({googleClientId:response.clientId,googleCredential:response.credential,projectId:props.projectId,createUser:!0}))}catch(err){setOutcome((0,import_core51.normalizeOperationOutcome)(err))}}})}),(0,import_jsx_runtime37.jsx)(import_core50.Divider,{label:"or",labelPosition:"center",my:"lg"})]}),(0,import_jsx_runtime37.jsxs)(import_core50.Stack,{gap:"sm",children:[(0,import_jsx_runtime37.jsx)(import_core50.TextInput,{name:"firstName",type:"text",label:"First name",placeholder:"First name",required:!0,autoFocus:!0,error:getErrorsForInput(outcome,"firstName")}),(0,import_jsx_runtime37.jsx)(import_core50.TextInput,{name:"lastName",type:"text",label:"Last name",placeholder:"Last name",required:!0,error:getErrorsForInput(outcome,"lastName")}),(0,import_jsx_runtime37.jsx)(import_core50.TextInput,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,error:getErrorsForInput(outcome,"email")}),(0,import_jsx_runtime37.jsx)(import_core50.PasswordInput,{name:"password",label:"Password",autoComplete:"off",required:!0,error:getErrorsForInput(outcome,"password")})]}),(0,import_jsx_runtime37.jsxs)(import_core50.Stack,{gap:"xs",children:[(0,import_jsx_runtime37.jsx)(import_core50.Checkbox,{id:"remember",name:"remember",label:"Remember me",size:"xs",style:{lineHeight:1},pt:"md",pb:"xs"}),(0,import_jsx_runtime37.jsx)(SubmitButton,{fullWidth:!0,children:"Register Account"}),(0,import_jsx_runtime37.jsxs)(import_core50.Text,{c:"dimmed",size:"xs",pt:"lg",ta:"center",children:['By clicking "Register Account" you agree to the Medplum'," ",(0,import_jsx_runtime37.jsx)(import_core50.Anchor,{href:"https://www.medplum.com/privacy",children:"Privacy\xA0Policy"})," and ",(0,import_jsx_runtime37.jsx)(import_core50.Anchor,{href:"https://www.medplum.com/terms",children:"Terms\xA0of\xA0Service"}),"."]}),(0,import_jsx_runtime37.jsxs)(import_core50.Text,{c:"dimmed",size:"xs",ta:"center",children:["This site is protected by reCAPTCHA and the Google"," ",(0,import_jsx_runtime37.jsx)(import_core50.Anchor,{href:"https://policies.google.com/privacy",children:"Privacy\xA0Policy"})," and ",(0,import_jsx_runtime37.jsx)(import_core50.Anchor,{href:"https://policies.google.com/terms",children:"Terms\xA0of\xA0Service"})," apply."]})]})]})}var import_jsx_runtime38=require("react/jsx-runtime");function RegisterForm(props){let{type,projectId,clientId,googleClientId,recaptchaSiteKey,onSuccess}=props,medplum=(0,import_react_hooks16.useMedplum)(),[login,setLogin]=(0,import_react27.useState)(),[outcome,setOutcome]=(0,import_react27.useState)();(0,import_react27.useEffect)(()=>{type==="patient"&&login&&medplum.startNewPatient({login,projectId}).then(response=>medplum.processCode(response.code)).then(()=>onSuccess()).catch(err=>setOutcome((0,import_core52.normalizeOperationOutcome)(err)))},[medplum,type,projectId,login,onSuccess]);function handleAuthResponse(response){response.code?medplum.processCode(response.code).then(()=>onSuccess()).catch(err=>setOutcome((0,import_core52.normalizeOperationOutcome)(err))):response.login&&setLogin(response.login)}let issues=getIssuesForExpression(outcome,void 0);return(0,import_jsx_runtime38.jsxs)(Document,{width:400,px:"xl",py:"xl",bdrs:"md",children:[(0,import_jsx_runtime38.jsx)(OperationOutcomeAlert,{issues,mb:"lg"}),!login&&(0,import_jsx_runtime38.jsx)(NewUserForm,{projectId,clientId,googleClientId,recaptchaSiteKey,handleAuthResponse,children:props.children}),login&&type==="project"&&(0,import_jsx_runtime38.jsx)(NewProjectForm,{login,handleAuthResponse})]})}var import_notifications3=require("@mantine/notifications"),import_core58=require("@medplum/core"),import_react_hooks20=require("@medplum/react-hooks"),import_react30=require("react");var import_core53=require("@mantine/core"),import_core54=require("@medplum/core"),import_react_hooks17=require("@medplum/react-hooks");var import_react28=require("react");var import_jsx_runtime39=require("react/jsx-runtime");function AuthenticationForm(props){let[email,setEmail]=(0,import_react28.useState)();return email?(0,import_jsx_runtime39.jsx)(PasswordForm,{email,resetEmail:()=>setEmail(void 0),...props}):(0,import_jsx_runtime39.jsx)(EmailForm,{setEmail,...props})}function EmailForm(props){let{setEmail,onRegister,handleAuthResponse,children,disableEmailAuth,...baseLoginRequest}=props,medplum=(0,import_react_hooks17.useMedplum)(),googleClientId=!props.disableGoogleAuth&&getGoogleClientId(props.googleClientId),[outcome,setOutcome]=(0,import_react28.useState)(),issues=getIssuesForExpression(outcome,void 0),isExternalAuth=(0,import_react28.useCallback)(async authMethod=>{if(!authMethod.authorizeUrl)return!1;let state=JSON.stringify({...await medplum.ensureCodeChallenge(baseLoginRequest),domain:authMethod.domain}),url=new URL(authMethod.authorizeUrl);return url.searchParams.set("state",state),import_core54.locationUtils.assign(url.toString()),!0},[medplum,baseLoginRequest]),handleSubmit=(0,import_react28.useCallback)(async formData=>{let authMethod=await medplum.post("auth/method",{email:formData.email});await isExternalAuth(authMethod)||setEmail(formData.email)},[medplum,isExternalAuth,setEmail]),handleGoogleCredential=(0,import_react28.useCallback)(async response=>{try{let authResponse=await medplum.startGoogleLogin({...baseLoginRequest,googleCredential:response.credential});await isExternalAuth(authResponse)||handleAuthResponse(authResponse)}catch(err){setOutcome((0,import_core54.normalizeOperationOutcome)(err))}},[medplum,baseLoginRequest,isExternalAuth,handleAuthResponse]);return(0,import_jsx_runtime39.jsxs)(Form,{onSubmit:handleSubmit,children:[(0,import_jsx_runtime39.jsx)(import_core53.Flex,{direction:"column",align:"center",justify:"center",children}),(0,import_jsx_runtime39.jsx)(OperationOutcomeAlert,{issues,mb:"lg"}),googleClientId&&(0,import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment,{children:[(0,import_jsx_runtime39.jsx)(import_core53.Box,{style:{minHeight:40},children:(0,import_jsx_runtime39.jsx)(GoogleButton,{googleClientId,handleGoogleCredential})}),!disableEmailAuth&&(0,import_jsx_runtime39.jsx)(import_core53.Divider,{label:"or",labelPosition:"center",my:"lg"})]}),!disableEmailAuth&&(0,import_jsx_runtime39.jsx)(import_core53.TextInput,{name:"email",type:"email",label:"Email",mb:"md",placeholder:"name@domain.com",required:!0,autoFocus:!0,error:getErrorsForInput(outcome,"email"),"data-testid":"auth.email"}),(0,import_jsx_runtime39.jsxs)(import_core53.Stack,{gap:"xs",children:[!disableEmailAuth&&(0,import_jsx_runtime39.jsx)(SubmitButton,{fullWidth:!0,children:"Continue"}),onRegister&&(0,import_jsx_runtime39.jsxs)(import_core53.Text,{size:"sm",mt:"lg",c:"dimmed",style:{textAlign:"center"},"data-dashlane-ignore":"true","data-lp-ignore":"true","data-no-autofill":"true","data-form-type":"navigation",children:["Don\u2019t have an account? ",(0,import_jsx_runtime39.jsx)(import_core53.Anchor,{onClick:onRegister,children:"Register"})]})]})]})}function PasswordForm(props){let{onForgotPassword,handleAuthResponse,children,...baseLoginRequest}=props,medplum=(0,import_react_hooks17.useMedplum)(),[outcome,setOutcome]=(0,import_react28.useState)(),issues=getIssuesForExpression(outcome,void 0),handleSubmit=(0,import_react28.useCallback)(formData=>{medplum.startLogin({...baseLoginRequest,password:formData.password,remember:formData.remember==="on"}).then(handleAuthResponse).catch(err=>setOutcome((0,import_core54.normalizeOperationOutcome)(err)))},[medplum,baseLoginRequest,handleAuthResponse]);return(0,import_jsx_runtime39.jsxs)(Form,{onSubmit:handleSubmit,children:[(0,import_jsx_runtime39.jsx)(import_core53.Flex,{direction:"column",align:"center",justify:"center",children}),(0,import_jsx_runtime39.jsx)(OperationOutcomeAlert,{issues,mb:"lg"}),(0,import_jsx_runtime39.jsxs)(import_core53.Stack,{gap:"sm",children:[(0,import_jsx_runtime39.jsx)(import_core53.TextInput,{label:"Email",value:props.email,disabled:!0,rightSectionWidth:36,rightSection:(0,import_jsx_runtime39.jsx)(import_core53.ActionIcon,{variant:"subtle",color:"gray",onClick:props.resetEmail,"aria-label":"Change email",children:(0,import_jsx_runtime39.jsx)(IconPencil,{size:"1rem",stroke:1.5})})}),(0,import_jsx_runtime39.jsx)(import_core53.PasswordInput,{name:"password",label:"Password",autoComplete:"off",required:!0,autoFocus:!0,error:getErrorsForInput(outcome,"password"),"data-testid":"auth.password"})]}),(0,import_jsx_runtime39.jsxs)(import_core53.Stack,{gap:"xs",children:[(0,import_jsx_runtime39.jsx)(import_core53.Checkbox,{id:"remember",name:"remember",label:"Remember me",size:"xs",style:{lineHeight:1},pt:"md",pb:"xs"}),(0,import_jsx_runtime39.jsx)(SubmitButton,{children:"Sign In"}),onForgotPassword&&(0,import_jsx_runtime39.jsx)(import_core53.Text,{size:"sm",mt:"lg",c:"dimmed",style:{textAlign:"center"},"data-dashlane-ignore":"true","data-lp-ignore":"true","data-no-autofill":"true","data-form-type":"navigation",children:(0,import_jsx_runtime39.jsx)(import_core53.Anchor,{onClick:onForgotPassword,children:"Reset Password"})})]})]})}var import_core55=require("@mantine/core"),import_core56=require("@medplum/core"),import_react_hooks18=require("@medplum/react-hooks");var import_react29=require("react");var ChooseProfileForm_default={option:"ChooseProfileForm_option",iconBox:"ChooseProfileForm_iconBox"};var import_jsx_runtime40=require("react/jsx-runtime");function ChooseProfileForm(props){let medplum=(0,import_react_hooks18.useMedplum)(),combobox=(0,import_core55.useCombobox)(),[search,setSearch]=(0,import_react29.useState)(""),[outcome,setOutcome]=(0,import_react29.useState)();function filterDisplay(display){return!!display?.toLowerCase()?.includes(search.toLowerCase())}function filterMembership(membership){return filterDisplay(membership.profile?.display)||filterDisplay(membership.project?.display)}function handleValueSelect(membershipId){medplum.post("auth/profile",{login:props.login,profile:membershipId}).then(props.handleAuthResponse).catch(err=>setOutcome((0,import_core56.normalizeOperationOutcome)(err)))}let options=props.memberships.filter(filterMembership).slice(0,10).map(item=>(0,import_jsx_runtime40.jsx)(import_core55.Combobox.Option,{value:item.id,className:ChooseProfileForm_default.option,children:(0,import_jsx_runtime40.jsx)(SelectOption,{...item})},item.id));return(0,import_jsx_runtime40.jsxs)(import_core55.Stack,{gap:"0",children:[(0,import_jsx_runtime40.jsxs)(import_core55.Flex,{justify:"center",align:"center",direction:"column",wrap:"nowrap",children:[(0,import_jsx_runtime40.jsx)(Logo,{size:32}),(0,import_jsx_runtime40.jsx)(import_core55.Title,{order:3,py:"lg",children:"Choose a Project"})]}),(0,import_jsx_runtime40.jsx)(OperationOutcomeAlert,{outcome,mb:"lg"}),(0,import_jsx_runtime40.jsxs)(import_core55.Combobox,{store:combobox,onOptionSubmit:handleValueSelect,children:[(0,import_jsx_runtime40.jsx)(import_core55.Combobox.EventsTarget,{children:(0,import_jsx_runtime40.jsx)(import_core55.TextInput,{placeholder:"Search",value:search,mb:"md",autoFocus:!0,leftSection:(0,import_jsx_runtime40.jsx)(IconSearch,{size:16}),onChange:event=>{setSearch(event.currentTarget.value),combobox.updateSelectedOptionIndex()}})}),(0,import_jsx_runtime40.jsx)("div",{children:(0,import_jsx_runtime40.jsx)(import_core55.Combobox.Options,{style:{marginLeft:"-10px",marginRight:"-10px",marginBottom:"-10px"},children:options.length>0?options:(0,import_jsx_runtime40.jsx)(import_core55.Combobox.Empty,{children:"Nothing found..."})})})]}),(0,import_jsx_runtime40.jsx)(import_core55.Text,{size:"sm",ta:"center",mt:"md",children:(0,import_jsx_runtime40.jsx)(import_core55.Anchor,{component:"button",type:"button",onClick:()=>{window.location.href=`/signin?project=new&login=${props.login}`},children:"Create a new project"})})]})}function getMembershipLabel(membership){return membership.identifier?.find(i=>i.system==="https://medplum.com/identifier/label")?.value}function SelectOption(membership){let label=getMembershipLabel(membership);return(0,import_jsx_runtime40.jsxs)(import_core55.Group,{gap:"xs",align:"center",children:[(0,import_jsx_runtime40.jsx)(import_core55.Box,{className:ChooseProfileForm_default.iconBox,children:(0,import_jsx_runtime40.jsx)(IconBriefcase,{size:16,stroke:2})}),(0,import_jsx_runtime40.jsxs)("div",{children:[(0,import_jsx_runtime40.jsxs)(import_core55.Text,{size:"sm",fw:500,children:[membership.project?.display," ",label?` - ${label}`:""]}),(0,import_jsx_runtime40.jsx)(import_core55.Text,{size:"xs",c:"dimmed",children:membership.profile?.display})]})]})}var import_core57=require("@mantine/core"),import_react_hooks19=require("@medplum/react-hooks"),import_jsx_runtime41=require("react/jsx-runtime");var import_jsx_runtime42=require("react/jsx-runtime"),openConditionScope=/^patient\/Condition\.(?:\*|c?r?u?d?s?)$/,encounterDiagnosis="?category=http://terminology.hl7.org/CodeSystem/condition-category|encounter-diagnosis",problemListItem="?category=http://terminology.hl7.org/CodeSystem/condition-category|problem-list-item",healthConcern="?category=http://hl7.org/fhir/us/core/CodeSystem/condition-category|health-concern",openObservationScope=/^patient\/Observation\.(?:\*|c?r?u?d?s?)$/,clinicalTest="?category=http://hl7.org/fhir/us/core/CodeSystem/us-core-observation-category|clinical-test",laboratory="?category=http://terminology.hl7.org/CodeSystem/observation-category|laboratory",socialHistory="?category=http://terminology.hl7.org/CodeSystem/observation-category|social-history",sdoh="?category=http://hl7.org/fhir/us/core/CodeSystem/us-core-category|sdoh",survey="?category=http://terminology.hl7.org/CodeSystem/observation-category|survey",vitalSigns="?category=http://terminology.hl7.org/CodeSystem/observation-category|vital-signs";function ChooseScopeForm(props){let medplum=(0,import_react_hooks19.useMedplum)();return(0,import_jsx_runtime42.jsx)(Form,{onSubmit:formData=>{medplum.post("auth/scope",{login:props.login,scope:Object.keys(formData).join(" ")}).then(props.handleAuthResponse).catch(console.log)},children:(0,import_jsx_runtime42.jsxs)(import_core57.Stack,{children:[(0,import_jsx_runtime42.jsxs)(import_core57.Flex,{direction:"column",align:"center",justify:"center",children:[(0,import_jsx_runtime42.jsx)(Logo,{size:32}),(0,import_jsx_runtime42.jsx)(import_core57.Title,{order:3,py:"lg",children:"Choose scope"})]}),(0,import_jsx_runtime42.jsx)(import_core57.Stack,{children:(props.scope??"openid").split(" ").map(scopeName=>{let additionalScopes;return openConditionScope.test(scopeName)?additionalScopes=[scopeName+encounterDiagnosis,scopeName+problemListItem,scopeName+healthConcern]:openObservationScope.test(scopeName)&&(additionalScopes=[scopeName+clinicalTest,scopeName+laboratory,scopeName+socialHistory,scopeName+sdoh,scopeName+survey,scopeName+vitalSigns]),(0,import_jsx_runtime42.jsxs)(import_jsx_runtime41.Fragment,{children:[(0,import_jsx_runtime42.jsx)(import_core57.Checkbox,{id:scopeName,name:scopeName,label:scopeName,defaultChecked:!0},scopeName),additionalScopes?.map(scope=>(0,import_jsx_runtime42.jsx)(import_core57.Checkbox,{id:scope,name:scope,label:scope},scope))]},scopeName+"_group")})}),(0,import_jsx_runtime42.jsx)(import_core57.Group,{justify:"flex-end",mt:"xl",children:(0,import_jsx_runtime42.jsx)(SubmitButton,{fullWidth:!0,children:"Set Scope"})})]})})}var import_jsx_runtime43=require("react/jsx-runtime");function SignInForm(props){let{login:loginCode,chooseScopes,onSuccess,onForgotPassword,onRegister,onCode,...baseLoginRequest}=props,medplum=(0,import_react_hooks20.useMedplum)(),[login,setLogin]=(0,import_react30.useState)(),loginRequested=(0,import_react30.useRef)(!1),[mfaEnrollRequired,setMfaEnrollRequired]=(0,import_react30.useState)(!1),[enrollQrCode,setEnrollQrCode]=(0,import_react30.useState)(),[mfaRequired,setMfaRequired]=(0,import_react30.useState)(!1),[memberships,setMemberships]=(0,import_react30.useState)(),handleCode=(0,import_react30.useCallback)(code=>{onCode?onCode(code):medplum.processCode(code).then(()=>{onSuccess&&onSuccess()}).catch(err=>(0,import_notifications3.showNotification)({color:"red",message:(0,import_core58.normalizeErrorString)(err)}))},[medplum,onCode,onSuccess]),handleAuthResponse=(0,import_react30.useCallback)(response=>{setMfaEnrollRequired(!!response.mfaEnrollRequired),setEnrollQrCode(response.enrollQrCode),setMfaRequired(!!response.mfaRequired),response.login&&setLogin(response.login),response.memberships&&setMemberships(response.memberships),response.code&&(chooseScopes?setMemberships(void 0):handleCode(response.code))},[chooseScopes,handleCode]),handleScopeResponse=(0,import_react30.useCallback)(response=>{handleCode(response.code)},[handleCode]);return(0,import_react30.useEffect)(()=>{loginCode&&!loginRequested.current&&!login&&(loginRequested.current=!0,medplum.get("auth/login/"+loginCode).then(handleAuthResponse).catch(err=>(0,import_notifications3.showNotification)({color:"red",message:(0,import_core58.normalizeErrorString)(err)})))},[medplum,loginCode,loginRequested,login,handleAuthResponse]),(0,import_jsx_runtime43.jsx)(Document,{width:400,px:"xl",py:"xl",bdrs:"md",children:login?mfaEnrollRequired&&enrollQrCode?(0,import_jsx_runtime43.jsx)(MfaForm,{title:"Enroll in MFA",description:"Scan this QR code with your authenticator app.",buttonText:"Enroll",qrCodeUrl:enrollQrCode,onSubmit:async fields=>{let res=await medplum.post("auth/mfa/login-enroll",{login,token:fields.token});handleAuthResponse(res)}}):mfaRequired?(0,import_jsx_runtime43.jsx)(MfaForm,{title:"Enter MFA code",description:"Enter the code from your authenticator app.",buttonText:"Submit Code",onSubmit:async fields=>{let res=await medplum.post("auth/mfa/verify",{login,token:fields.token});handleAuthResponse(res)}}):props.projectId==="new"?(0,import_jsx_runtime43.jsx)(NewProjectForm,{login,handleAuthResponse}):memberships?(0,import_jsx_runtime43.jsx)(ChooseProfileForm,{login,memberships,handleAuthResponse}):props.chooseScopes?(0,import_jsx_runtime43.jsx)(ChooseScopeForm,{login,scope:props.scope,handleAuthResponse:handleScopeResponse}):(0,import_jsx_runtime43.jsx)("div",{children:"Success"}):(0,import_jsx_runtime43.jsx)(AuthenticationForm,{onForgotPassword,onRegister,handleAuthResponse,disableGoogleAuth:props.disableGoogleAuth,disableEmailAuth:props.disableEmailAuth,...baseLoginRequest,children:props.children})})}var import_core73=require("@medplum/core"),import_react35=require("react");var import_core71=require("@mantine/core"),import_core72=require("@medplum/core");var import_react34=require("react");var import_core59=require("@medplum/core"),import_jsx_runtime44=require("react/jsx-runtime");function CodeableConceptDisplay(props){return(0,import_jsx_runtime44.jsx)(import_jsx_runtime44.Fragment,{children:(0,import_core59.formatCodeableConcept)(props.value)})}var import_core60=require("@medplum/core"),import_jsx_runtime45=require("react/jsx-runtime");function CodingDisplay(props){return(0,import_jsx_runtime45.jsx)(import_jsx_runtime45.Fragment,{children:(0,import_core60.formatCoding)(props.value)})}var import_jsx_runtime46=require("react/jsx-runtime");function ContactPointDisplay(props){let contactPoint=props.value;if(!contactPoint)return null;let builder=[];return contactPoint.value&&builder.push(contactPoint.value),(contactPoint.use||contactPoint.system)&&(builder.push(" ["),contactPoint.use&&builder.push(contactPoint.use),contactPoint.use&&contactPoint.system&&builder.push(" "),contactPoint.system&&builder.push(contactPoint.system),builder.push("]")),(0,import_jsx_runtime46.jsx)(import_jsx_runtime46.Fragment,{children:builder.join("").trim()})}var import_jsx_runtime47=require("react/jsx-runtime");function ContactDetailDisplay(props){let contactDetail=props.value;return contactDetail?(0,import_jsx_runtime47.jsxs)(import_jsx_runtime47.Fragment,{children:[contactDetail.name,contactDetail.name&&": ",contactDetail.telecom?.map(telecom=>(0,import_jsx_runtime47.jsx)(ContactPointDisplay,{value:telecom},`telecom-${contactDetail.name}-${telecom.value}`))]}):null}var import_core62=require("@medplum/core"),import_react_hooks21=require("@medplum/react-hooks"),import_react31=require("react");var import_core61=require("@medplum/core");function getValueAndType(context,path,profileUrl){let typedResult=(0,import_core61.getTypedPropertyValue)(context,path,{profileUrl});return typedResult?Array.isArray(typedResult)?[typedResult.map(e=>e.value),typedResult[0].type]:[typedResult.value,typedResult.type]:[void 0,"undefined"]}function getValueAndTypeFromElement(typedValue,path,element){let typedResult=(0,import_core61.getTypedPropertyValueWithSchema)(typedValue,path,element);return typedResult?Array.isArray(typedResult)?[typedResult.map(e=>e.value),typedResult[0].type]:[typedResult.value,typedResult.type]:[void 0,"undefined"]}var import_jsx_runtime48=require("react/jsx-runtime");function ExtensionDisplay(props){let{elementDefinitionType}=props,medplum=(0,import_react_hooks21.useMedplum)(),ctx=(0,import_react31.useContext)(ElementsContext),[typeSchema,setTypeSchema]=(0,import_react31.useState)((0,import_core62.getDataType)("Extension")),profileUrl=(0,import_react31.useMemo)(()=>{if((0,import_core62.isPopulated)(elementDefinitionType?.profile))return elementDefinitionType.profile[0]},[elementDefinitionType]),[loadingProfile,setLoadingProfile]=(0,import_react31.useState)(profileUrl!==void 0);if((0,import_react31.useEffect)(()=>{profileUrl&&(setLoadingProfile(!0),medplum.requestProfileSchema(profileUrl).then(()=>{let profile=(0,import_core62.tryGetProfile)(profileUrl);setLoadingProfile(!1),profile&&setTypeSchema(profile)}).catch(reason=>{setLoadingProfile(!1),console.warn(reason)}))},[medplum,profileUrl]),profileUrl&&(loadingProfile||!(0,import_core62.isProfileLoaded)(profileUrl)))return(0,import_jsx_runtime48.jsx)("div",{children:"Loading..."});if(typeSchema.elements["value[x]"]?.max!==0){let[propertyValue,propertyType]=getValueAndType({type:"Extension",value:props.value},"value[x]",profileUrl??ctx.profileUrl);return(0,import_jsx_runtime48.jsx)(ResourcePropertyDisplay,{propertyType,value:propertyValue})}return(0,import_jsx_runtime48.jsx)(BackboneElementDisplay,{path:props.path,value:{type:typeSchema.type,value:props.value},compact:props.compact,ignoreMissingValues:props.ignoreMissingValues,link:props.link,profileUrl})}var import_jsx_runtime49=require("react/jsx-runtime");function IdentifierDisplay(props){return(0,import_jsx_runtime49.jsxs)("div",{children:[props.value?.system,": ",props.value?.value]})}var import_core63=require("@medplum/core"),import_jsx_runtime50=require("react/jsx-runtime");function MoneyDisplay(props){return(0,import_jsx_runtime50.jsx)(import_jsx_runtime50.Fragment,{children:(0,import_core63.formatMoney)(props.value)})}var import_core64=require("@medplum/core"),import_jsx_runtime51=require("react/jsx-runtime");function QuantityDisplay(props){return(0,import_jsx_runtime51.jsx)(import_jsx_runtime51.Fragment,{children:(0,import_core64.formatQuantity)(props.value)})}var import_core65=require("@medplum/core"),import_jsx_runtime52=require("react/jsx-runtime");function RangeDisplay(props){return(0,import_jsx_runtime52.jsx)(import_jsx_runtime52.Fragment,{children:(0,import_core65.formatRange)(props.value)})}var import_jsx_runtime53=require("react/jsx-runtime");function RatioDisplay(props){let value=props.value;return value?(0,import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment,{children:[(0,import_jsx_runtime53.jsx)(QuantityDisplay,{value:value.numerator}),"\xA0/\xA0",(0,import_jsx_runtime53.jsx)(QuantityDisplay,{value:value.denominator})]}):null}var import_core66=require("@medplum/core");var import_jsx_runtime54=require("react/jsx-runtime");function ReferenceDisplay(props){if(!props.value)return null;let displayString=props.value.display||props.value.reference||(0,import_core66.stringify)(props.value);return props.link!==!1&&props.value.reference?(0,import_jsx_runtime54.jsx)(MedplumLink,{to:props.value,children:displayString}):(0,import_jsx_runtime54.jsx)(import_jsx_runtime54.Fragment,{children:displayString})}var import_core69=require("@mantine/core"),import_core70=require("@medplum/core"),import_react_hooks22=require("@medplum/react-hooks"),import_react33=require("react");var import_core67=require("@medplum/core");function assignValuesIntoSlices(values,slices,slicing,profileUrl){if(!(0,import_core67.isPopulated)(slicing?.slices))return[values];let slicedValues=new Array(slices.length+1);for(let i=0;i<slicedValues.length;i++)slicedValues[i]=[];for(let value of values){let sliceName=(0,import_core67.getValueSliceName)(value,slices,slicing.discriminator,profileUrl),sliceIndex=sliceName?slices.findIndex(slice=>slice.name===sliceName):-1;sliceIndex===-1&&(sliceIndex=slices.length),slicedValues[sliceIndex].push(value)}return slicedValues}async function prepareSlices({medplum,property}){return new Promise((resolve,reject)=>{if(!property.slicing){resolve([]);return}let supportedSlices=[],profileUrls=[],promises=[];for(let slice of property.slicing.slices){if(!(0,import_core67.isSliceDefinitionWithTypes)(slice)){console.debug("Unsupported slice definition",slice);continue}let profileUrl;(0,import_core67.isPopulated)(slice.elements)||(profileUrl=slice.type[0]?.profile?.[0]),supportedSlices.push(slice),profileUrls.push(profileUrl),profileUrl&&promises.push(medplum.requestProfileSchema(profileUrl))}Promise.all(promises).then(()=>{for(let i=0;i<supportedSlices.length;i++){let slice=supportedSlices[i],profileUrl=profileUrls[i];if(profileUrl){let typeSchema=(0,import_core67.tryGetProfile)(profileUrl);slice.typeSchema=typeSchema}}resolve(supportedSlices)}).catch(reject)})}var import_core68=require("@medplum/core"),import_react32=require("react");var import_jsx_runtime55=require("react/jsx-runtime");function maybeWrapWithContext(ContextProvider,contextValue,contents){return contextValue!==void 0?(0,import_jsx_runtime55.jsx)(ContextProvider,{value:contextValue,children:contents}):contents}var import_jsx_runtime56=require("react/jsx-runtime");function SliceDisplay(props){let{slice,property}=props,sliceElements=slice.typeSchema?.elements??slice.elements,parentContext=(0,import_react32.useContext)(ElementsContext),contextValue=(0,import_react32.useMemo)(()=>{if((0,import_core68.isPopulated)(sliceElements))return(0,import_core68.buildElementsContext)({parentContext,elements:sliceElements,path:props.path,profileUrl:slice.typeSchema?.url})},[parentContext,props.path,slice.typeSchema?.url,sliceElements]);return maybeWrapWithContext(ElementsContext.Provider,contextValue,(0,import_jsx_runtime56.jsx)(import_jsx_runtime56.Fragment,{children:props.value.map((value,valueIndex)=>(0,import_jsx_runtime56.jsx)("div",{children:(0,import_jsx_runtime56.jsx)(ResourcePropertyDisplay,{property,path:props.path,arrayElement:!0,elementDefinitionType:slice.type[0],propertyType:slice.type[0].code,value,ignoreMissingValues:props.ignoreMissingValues,link:props.link})},`${valueIndex}-${props.value.length}`))}))}var import_jsx_runtime57=require("react/jsx-runtime"),MAX_ARRAY_SIZE=50;function ResourceArrayDisplay(props){let{property,propertyType}=props,medplum=(0,import_react_hooks22.useMedplum)(),values=(0,import_react33.useMemo)(()=>Array.isArray(props.values)?props.values:[],[props.values]),[loading,setLoading]=(0,import_react33.useState)(!0),[slices,setSlices]=(0,import_react33.useState)([]),[slicedValues,setSlicedValues]=(0,import_react33.useState)(()=>[values]),[valuesLength,setValuesLength]=(0,import_react33.useState)(0),ctx=(0,import_react33.useContext)(ElementsContext);if((0,import_react33.useEffect)(()=>{prepareSlices({medplum,property}).then(slices2=>{setValuesLength(values.length),setSlices(slices2);let limitedValues=values.slice(0,MAX_ARRAY_SIZE),slicedValues2=assignValuesIntoSlices(limitedValues,slices2,property.slicing,ctx.profileUrl);setSlicedValues(slicedValues2),setLoading(!1)}).catch(reason=>{console.error(reason),setLoading(!1)})},[medplum,property,ctx.profileUrl,setSlicedValues,values]),loading)return(0,import_jsx_runtime57.jsx)("div",{children:"Loading..."});let nonSliceContent;if(property.type[0]?.code!=="Extension"){let nonSliceValues=slicedValues[slices.length],nonSliceElements=nonSliceValues.map((value,valueIndex)=>(0,import_jsx_runtime57.jsx)("div",{children:(0,import_jsx_runtime57.jsx)(ResourcePropertyDisplay,{path:props.path,arrayElement:!0,property,propertyType,value,ignoreMissingValues:props.ignoreMissingValues,link:props.link})},`${valueIndex}-${nonSliceValues.length}`));if(props.includeDescriptionListEntry){if(!(0,import_core70.isPopulated)(props.path))throw new Error("props.path is required when includeDescriptionListEntry is true");let key=props.path.split(".").pop();nonSliceContent=(0,import_jsx_runtime57.jsx)(DescriptionListEntry,{term:(0,import_core70.getPathDisplayName)(key),children:nonSliceElements})}else nonSliceContent=(0,import_jsx_runtime57.jsx)(import_jsx_runtime57.Fragment,{children:nonSliceElements})}return(0,import_jsx_runtime57.jsxs)(import_jsx_runtime57.Fragment,{children:[slices.map((slice,sliceIndex)=>{if(!props.path)throw new Error(`Displaying a resource property with slices of type ${props.propertyType} requires path`);let sliceDisplay=(0,import_jsx_runtime57.jsx)(SliceDisplay,{path:props.path,slice,property,value:slicedValues[sliceIndex],ignoreMissingValues:props.ignoreMissingValues,link:props.link},slice.name);return props.includeDescriptionListEntry&&(sliceDisplay=(0,import_jsx_runtime57.jsx)(DescriptionListEntry,{term:(0,import_core70.getPathDisplayName)(slice.name),children:sliceDisplay},slice.name)),sliceDisplay}),nonSliceContent,valuesLength>MAX_ARRAY_SIZE&&(0,import_jsx_runtime57.jsx)(import_core69.Group,{justify:"right",children:(0,import_jsx_runtime57.jsxs)(import_core69.Text,{children:["... ",valuesLength," total values"]})})]})}var import_jsx_runtime58=require("react/jsx-runtime");function ResourcePropertyDisplay(props){let{property,propertyType,value}=props;if(property?.path?.endsWith(".id"))return(0,import_jsx_runtime58.jsxs)(import_core71.Flex,{gap:3,align:"center",children:[value,!(0,import_core72.isEmpty)(value)&&(0,import_jsx_runtime58.jsx)(import_core71.CopyButton,{value,timeout:2e3,children:({copied,copy})=>(0,import_jsx_runtime58.jsx)(import_core71.Tooltip,{label:copied?"Copied":"Copy",withArrow:!0,position:"right",children:(0,import_jsx_runtime58.jsx)(import_core71.ActionIcon,{variant:"subtle",color:copied?"teal":"gray",onClick:copy,children:copied?(0,import_jsx_runtime58.jsx)(IconCheck,{size:"1rem"}):(0,import_jsx_runtime58.jsx)(IconCopy,{size:"1rem"})})})})]});if(property&&(property.isArray||property.max>1)&&!props.arrayElement)return propertyType===import_core72.PropertyType.Attachment?(0,import_jsx_runtime58.jsx)(AttachmentArrayDisplay,{values:value,maxWidth:props.maxWidth,includeDescriptionListEntry:props.includeArrayDescriptionListEntry,property,path:props.path}):(0,import_jsx_runtime58.jsx)(ResourceArrayDisplay,{path:props.path,property,propertyType,values:value,includeDescriptionListEntry:props.includeArrayDescriptionListEntry,ignoreMissingValues:props.ignoreMissingValues,link:props.link});switch(propertyType){case import_core72.PropertyType.boolean:return(0,import_jsx_runtime58.jsx)(import_jsx_runtime58.Fragment,{children:value===void 0?"":(!!value).toString()});case import_core72.PropertyType.SystemString:case import_core72.PropertyType.string:return props.property?.path?.toLowerCase().includes("secret")?(0,import_jsx_runtime58.jsx)(SecretFieldDisplay,{value}):(0,import_jsx_runtime58.jsx)("div",{style:{whiteSpace:"pre-wrap"},children:value});case import_core72.PropertyType.code:case import_core72.PropertyType.date:case import_core72.PropertyType.decimal:case import_core72.PropertyType.id:case import_core72.PropertyType.integer:case import_core72.PropertyType.positiveInt:case import_core72.PropertyType.unsignedInt:case import_core72.PropertyType.uri:case import_core72.PropertyType.url:case import_core72.PropertyType.xhtml:return(0,import_jsx_runtime58.jsx)(import_jsx_runtime58.Fragment,{children:value});case import_core72.PropertyType.canonical:return(0,import_jsx_runtime58.jsx)(ReferenceDisplay,{value:{reference:value},link:props.link});case import_core72.PropertyType.dateTime:case import_core72.PropertyType.instant:return(0,import_jsx_runtime58.jsx)(import_jsx_runtime58.Fragment,{children:(0,import_core72.formatDateTime)(value)});case import_core72.PropertyType.time:return(0,import_jsx_runtime58.jsx)(import_jsx_runtime58.Fragment,{children:(0,import_core72.formatWallTime)(value)});case import_core72.PropertyType.markdown:return(0,import_jsx_runtime58.jsx)("pre",{children:value});case import_core72.PropertyType.Address:return(0,import_jsx_runtime58.jsx)(AddressDisplay,{value});case import_core72.PropertyType.Annotation:return(0,import_jsx_runtime58.jsx)(import_jsx_runtime58.Fragment,{children:value?.text});case import_core72.PropertyType.Attachment:return(0,import_jsx_runtime58.jsx)(AttachmentDisplay,{value,maxWidth:props.maxWidth});case import_core72.PropertyType.CodeableConcept:return(0,import_jsx_runtime58.jsx)(CodeableConceptDisplay,{value});case import_core72.PropertyType.Coding:return(0,import_jsx_runtime58.jsx)(CodingDisplay,{value});case import_core72.PropertyType.ContactDetail:return(0,import_jsx_runtime58.jsx)(ContactDetailDisplay,{value});case import_core72.PropertyType.ContactPoint:return(0,import_jsx_runtime58.jsx)(ContactPointDisplay,{value});case import_core72.PropertyType.HumanName:return(0,import_jsx_runtime58.jsx)(HumanNameDisplay,{value});case import_core72.PropertyType.Identifier:return(0,import_jsx_runtime58.jsx)(IdentifierDisplay,{value});case import_core72.PropertyType.Money:return(0,import_jsx_runtime58.jsx)(MoneyDisplay,{value});case import_core72.PropertyType.Period:return(0,import_jsx_runtime58.jsx)(import_jsx_runtime58.Fragment,{children:(0,import_core72.formatPeriod)(value)});case import_core72.PropertyType.Quantity:case import_core72.PropertyType.Duration:return(0,import_jsx_runtime58.jsx)(QuantityDisplay,{value});case import_core72.PropertyType.Range:return(0,import_jsx_runtime58.jsx)(RangeDisplay,{value});case import_core72.PropertyType.Ratio:return(0,import_jsx_runtime58.jsx)(RatioDisplay,{value});case import_core72.PropertyType.Reference:return(0,import_jsx_runtime58.jsx)(ReferenceDisplay,{value,link:props.link});case import_core72.PropertyType.Timing:return(0,import_jsx_runtime58.jsx)(import_jsx_runtime58.Fragment,{children:(0,import_core72.formatTiming)(value)});case import_core72.PropertyType.Dosage:case import_core72.PropertyType.UsageContext:if(!props.path)throw new Error(`Displaying property of type ${props.propertyType} requires path`);return(0,import_jsx_runtime58.jsx)(BackboneElementDisplay,{path:props.path,value:{type:propertyType,value},compact:!0,ignoreMissingValues:props.ignoreMissingValues});case import_core72.PropertyType.Extension:if(!props.path)throw new Error(`Displaying property of type ${props.propertyType} requires path`);return(0,import_jsx_runtime58.jsx)(ExtensionDisplay,{path:props.path,value,compact:!0,ignoreMissingValues:props.ignoreMissingValues,elementDefinitionType:props.elementDefinitionType});default:if(!property)throw new Error(`Displaying property of type ${props.propertyType} requires element schema`);if(!props.path)throw new Error(`Displaying property of type ${props.propertyType} requires path`);return(0,import_jsx_runtime58.jsx)(BackboneElementDisplay,{path:props.path,value:{type:property.type[0].code,value},compact:!0,ignoreMissingValues:props.ignoreMissingValues})}}function SecretFieldDisplay(props){let[isVisible,setIsVisible]=(0,import_react34.useState)(!1),secretValue=props.value??"",hasValue=!(0,import_core72.isEmpty)(secretValue),MASK="\u2022".repeat(8);return(0,import_jsx_runtime58.jsxs)(import_core71.Flex,{gap:3,align:"center",children:[isVisible?(0,import_jsx_runtime58.jsx)("div",{style:{whiteSpace:"pre-wrap"},children:secretValue}):(0,import_jsx_runtime58.jsx)("div",{style:{whiteSpace:"pre-wrap"},"aria-hidden":"true",children:hasValue?MASK:""}),hasValue&&(0,import_jsx_runtime58.jsxs)(import_jsx_runtime58.Fragment,{children:[(0,import_jsx_runtime58.jsx)(import_core71.CopyButton,{value:props.value,timeout:2e3,children:({copied,copy})=>(0,import_jsx_runtime58.jsx)(import_core71.Tooltip,{label:copied?"Copied":"Copy secret",withArrow:!0,position:"right",children:(0,import_jsx_runtime58.jsx)(import_core71.ActionIcon,{variant:"subtle",color:copied?"teal":"gray",onClick:copy,"aria-label":copied?"Copied":"Copy secret",children:copied?(0,import_jsx_runtime58.jsx)(IconCheck,{size:"1rem"}):(0,import_jsx_runtime58.jsx)(IconCopy,{size:"1rem"})})})}),(0,import_jsx_runtime58.jsx)(import_core71.Tooltip,{label:isVisible?"Hide secret":"Show secret",withArrow:!0,position:"right",children:(0,import_jsx_runtime58.jsx)(import_core71.ActionIcon,{variant:"subtle",color:"gray",onClick:()=>setIsVisible(!isVisible),"aria-label":isVisible?"Hide secret":"Show secret",children:isVisible?(0,import_jsx_runtime58.jsx)(IconEyeOff,{size:"1rem"}):(0,import_jsx_runtime58.jsx)(IconEye,{size:"1rem"})})})]})]})}var import_jsx_runtime59=require("react/jsx-runtime"),EXTENSION_KEYS2=["extension","modifierExtension"],IGNORED_PROPERTIES2=DEFAULT_IGNORED_PROPERTIES.filter(prop=>!EXTENSION_KEYS2.includes(prop));function BackboneElementDisplay(props){let typedValue=props.value,{value,type:typeName}=typedValue,parentElementsContext=(0,import_react35.useContext)(ElementsContext),profileUrl=props.profileUrl??parentElementsContext?.profileUrl,typeSchema=(0,import_react35.useMemo)(()=>(0,import_core73.tryGetDataType)(typeName,profileUrl),[profileUrl,typeName]),newElementsContext=(0,import_react35.useMemo)(()=>{if(typeSchema)return(0,import_core73.buildElementsContext)({parentContext:parentElementsContext,elements:typeSchema.elements,path:props.path,profileUrl:typeSchema.url,accessPolicyResource:props.accessPolicyResource})},[typeSchema,parentElementsContext,props.path,props.accessPolicyResource]);if((0,import_core73.isEmpty)(value))return null;if(!typeSchema)return(0,import_jsx_runtime59.jsxs)("div",{children:[typeName,"\xA0not implemented"]});if(typeof value=="object"&&"name"in value&&Object.keys(value).length===1&&typeof value.name=="string")return(0,import_jsx_runtime59.jsx)("div",{children:value.name});let elementsContext=newElementsContext??parentElementsContext;return maybeWrapWithContext(ElementsContext.Provider,newElementsContext,(0,import_jsx_runtime59.jsx)(DescriptionList,{compact:props.compact,children:Object.entries(elementsContext.elements).map(([key,property])=>{if(EXTENSION_KEYS2.includes(key)&&(0,import_core73.isEmpty)(property.slicing?.slices))return null;if(IGNORED_PROPERTIES2.includes(key))return null;if(DEFAULT_IGNORED_NON_NESTED_PROPERTIES.includes(key)&&property.path.split(".").length===2||key.includes("."))return null;let[propertyValue,propertyType]=getValueAndType(typedValue,key,elementsContext.profileUrl);if((props.ignoreMissingValues||property.max===0)&&(0,import_core73.isEmpty)(propertyValue)||props.path.endsWith(".extension")&&(key==="url"||key==="id"))return null;let isArrayProperty=property.max>1||property.isArray,resourcePropertyDisplay=(0,import_jsx_runtime59.jsx)(ResourcePropertyDisplay,{property,propertyType,path:props.path+"."+key,value:propertyValue,ignoreMissingValues:props.ignoreMissingValues,includeArrayDescriptionListEntry:isArrayProperty,link:props.link},key);return isArrayProperty?resourcePropertyDisplay:(0,import_jsx_runtime59.jsx)(DescriptionListEntry,{term:(0,import_core73.getPathDisplayName)(key),children:resourcePropertyDisplay},key)})}))}var import_core107=require("@mantine/core"),import_core108=require("@medplum/core");var import_react58=require("react");var import_core105=require("@mantine/core"),import_core106=require("@medplum/core"),import_react57=require("react");var import_core75=require("@mantine/core"),import_react36=require("react");var FormSection_default={dimmed:"FormSection_dimmed",preserveBreaks:"FormSection_preserveBreaks"};var import_core74=require("@mantine/core"),import_jsx_runtime60=require("react/jsx-runtime"),READ_ONLY_TOOLTIP_TEXT="Read Only";function maybeWrapWithTooltip(tooltipText,children){return tooltipText?(0,import_jsx_runtime60.jsx)(import_core74.Tooltip.Floating,{label:tooltipText,children}):children}var import_jsx_runtime61=require("react/jsx-runtime");function CheckboxFormSection(props){let{debugMode}=(0,import_react36.useContext)(ElementsContext),label;return debugMode&&props.fhirPath?label=`${props.title} - ${props.fhirPath}`:label=props.title,maybeWrapWithTooltip(props?.readonly?READ_ONLY_TOOLTIP_TEXT:void 0,(0,import_jsx_runtime61.jsxs)(import_core75.Group,{wrap:"nowrap","data-testid":props.testId,children:[(0,import_jsx_runtime61.jsx)("div",{children:props.children}),(0,import_jsx_runtime61.jsx)("div",{children:(0,import_jsx_runtime61.jsx)(import_core75.Input.Wrapper,{id:props.htmlFor,label,classNames:{label:props?.readonly?FormSection_default.dimmed:void 0},description:props.description,withAsterisk:props.withAsterisk,children:null})})]}))}var import_core76=require("@mantine/core");var import_react37=require("react");var import_jsx_runtime62=require("react/jsx-runtime");function FormSection(props){let{debugMode}=(0,import_react37.useContext)(ElementsContext),label;return debugMode&&props.fhirPath?label=`${props.title} - ${props.fhirPath}`:label=props.title,maybeWrapWithTooltip(props?.readonly?READ_ONLY_TOOLTIP_TEXT:void 0,(0,import_jsx_runtime62.jsx)(import_core76.Input.Wrapper,{id:props.htmlFor,label,classNames:{label:clsx_default({[FormSection_default.dimmed]:props?.readonly},FormSection_default.preserveBreaks)},description:props.description,withAsterisk:props.withAsterisk,error:getErrorsForInput(props.outcome,props.errorExpression??props.htmlFor),"data-testid":props.testId,children:props.children}))}var import_core77=require("@medplum/core");function setPropertyValue(obj,key,propName,elementDefinition,value){let types=elementDefinition.type;if(types.length>1)for(let type of types){let compoundKey=key.replace("[x]",(0,import_core77.capitalize)(type.code));compoundKey in obj&&delete obj[compoundKey]}return(0,import_core77.isEmpty)(value)?obj[propName]=void 0:obj[propName]=value,obj}function isSupportedProfileStructureDefinition(profile){return!!profile&&!(0,import_core77.isEmpty)(profile.url)&&!(0,import_core77.isEmpty)(profile.name)}var import_core103=require("@mantine/core"),import_core104=require("@medplum/core"),import_react56=require("react");var import_react38=require("react");var import_jsx_runtime63=require("react/jsx-runtime");function CodeableConceptInput(props){let{defaultValue:defaultValue2,onChange,withHelpText,outcome:_outcome,path:_path,valuePath:_valuePath,...rest}=props,[value,setValue]=(0,import_react38.useState)(defaultValue2);function handleChange(newValues){let newConcept=valueSetElementToCodeableConcept(newValues);setValue(newConcept),onChange&&onChange(newConcept)}return(0,import_jsx_runtime63.jsx)(ValueSetAutocomplete,{defaultValue:value&&codeableConceptToValueSetElement(value),onChange:handleChange,withHelpText:withHelpText??!0,...rest})}function codeableConceptToValueSetElement(concept){return concept.coding?.map(c=>({system:c.system,code:c.code,display:c.display}))}function valueSetElementToCodeableConcept(elements){if(elements.length!==0)return{coding:elements.map(e=>({system:e.system,code:e.code,display:e.display}))}}var import_react39=require("react");var import_jsx_runtime64=require("react/jsx-runtime");function CodingInput(props){let{defaultValue:defaultValue2,onChange,withHelpText,response,...rest}=props,[value,setValue]=(0,import_react39.useState)(response?.answer?.[0]?.valueCoding??defaultValue2);function handleChange(newValues){let newValue=newValues[0],newConcept=newValue&&valueSetElementToCoding(newValue);setValue(newConcept),onChange&&onChange(newConcept)}return(0,import_jsx_runtime64.jsx)(ValueSetAutocomplete,{defaultValue:value?codingToValueSetElement(value):void 0,maxValues:1,onChange:handleChange,withHelpText:withHelpText??!0,...rest})}function codingToValueSetElement(coding){return{system:coding.system,code:coding.code,display:coding.display}}function valueSetElementToCoding(element){return{system:element.system,code:element.code,display:element.display}}var import_core79=require("@mantine/core"),import_react41=require("react");var import_core78=require("@mantine/core"),import_react40=require("react");var import_jsx_runtime65=require("react/jsx-runtime");function ContactPointInput(props){let{path,outcome}=props,{elementsByPath,getExtendedProps}=(0,import_react40.useContext)(ElementsContext),[contactPoint,setContactPoint]=(0,import_react40.useState)(props.defaultValue),ref=(0,import_react40.useRef)(contactPoint);ref.current=contactPoint;let[systemElement,useElement,valueElement]=(0,import_react40.useMemo)(()=>["system","use","value"].map(field=>elementsByPath[path+"."+field]),[elementsByPath,path]),[systemProps,useProps,valueProps]=(0,import_react40.useMemo)(()=>["system","use","value"].map(field=>getExtendedProps(path+"."+field)),[getExtendedProps,path]);function setContactPointWrapper(newValue){newValue&&Object.keys(newValue).length===0&&(newValue=void 0),setContactPoint(newValue),props.onChange&&props.onChange(newValue)}function setSystem(system){let newValue={...ref.current,system};system||delete newValue.system,setContactPointWrapper(newValue)}function setUse(use){let newValue={...ref.current,use};use||delete newValue.use,setContactPointWrapper(newValue)}function setValue(value){let newValue={...ref.current,value};value||delete newValue.value,setContactPointWrapper(newValue)}let errorPath=props.valuePath??path;return(0,import_jsx_runtime65.jsxs)(import_core78.Group,{gap:"xs",grow:!0,wrap:"nowrap",align:"flex-start",children:[(0,import_jsx_runtime65.jsx)(import_core78.NativeSelect,{disabled:props.disabled||systemProps?.readonly,"data-testid":"system",defaultValue:contactPoint?.system,required:(systemElement?.min??0)>0,onChange:e=>setSystem(e.currentTarget.value),data:["","email","phone","fax","pager","sms","other"],error:getErrorsForInput(outcome,errorPath+".system")}),(0,import_jsx_runtime65.jsx)(import_core78.NativeSelect,{disabled:props.disabled||useProps?.readonly,"data-testid":"use",defaultValue:contactPoint?.use,required:(useElement?.min??0)>0,onChange:e=>setUse(e.currentTarget.value),data:["","home","work","temp","old","mobile"],error:getErrorsForInput(outcome,errorPath+".use")}),(0,import_jsx_runtime65.jsx)(import_core78.TextInput,{disabled:props.disabled||valueProps?.readonly,placeholder:"Value",defaultValue:contactPoint?.value,required:(valueElement?.min??0)>0,onChange:e=>setValue(e.currentTarget.value),error:getErrorsForInput(outcome,errorPath+".value")})]})}var import_jsx_runtime66=require("react/jsx-runtime");function ContactDetailInput(props){let[contactDetail,setContactDetail]=(0,import_react41.useState)(props.defaultValue),ref=(0,import_react41.useRef)(contactDetail);ref.current=contactDetail;let{getExtendedProps}=(0,import_react41.useContext)(ElementsContext),[nameProps,telecomProps]=(0,import_react41.useMemo)(()=>["name","telecom"].map(field=>getExtendedProps(props.path+"."+field)),[getExtendedProps,props.path]);function setContactDetailWrapper(newValue){setContactDetail(newValue),props.onChange&&props.onChange(newValue)}function setName(name){let newValue={...ref.current,name};name||delete newValue.name,setContactDetailWrapper(newValue)}function setTelecom(telecom){let newValue={...ref.current,telecom:telecom&&[telecom]};telecom||delete newValue.telecom,setContactDetailWrapper(newValue)}return(0,import_jsx_runtime66.jsxs)(import_core79.Group,{gap:"xs",grow:!0,wrap:"nowrap",children:[(0,import_jsx_runtime66.jsx)(import_core79.TextInput,{disabled:props.disabled||nameProps?.readonly,"data-testid":props.name+"-name",name:props.name+"-name",placeholder:"Name",style:{width:180},defaultValue:contactDetail?.name,onChange:e=>setName(e.currentTarget.value)}),(0,import_jsx_runtime66.jsx)(ContactPointInput,{disabled:props.disabled||telecomProps?.readonly,name:props.name+"-telecom",path:props.path+".telecom",defaultValue:contactDetail?.telecom?.[0],onChange:setTelecom,outcome:props.outcome})]})}var import_core81=require("@mantine/core");var import_core80=require("@medplum/core");function convertIsoToLocal(isoString){if(!isoString)return"";let date=new Date(isoString);return(0,import_core80.isValidDate)(date)?date.toLocaleDateString("sv")+"T"+date.toLocaleTimeString("sv"):""}function convertLocalToIso(localString){if(!localString)return"";let date=new Date(localString);return(0,import_core80.isValidDate)(date)?date.toISOString():""}var import_jsx_runtime67=require("react/jsx-runtime");function DateTimeInput(props){return(0,import_jsx_runtime67.jsx)(import_core81.TextInput,{id:props.name,name:props.name,label:props.label,"data-autofocus":props.autoFocus,"data-testid":props["data-testid"]??props.name,placeholder:props.placeholder,required:props.required,disabled:props.disabled,type:getInputType(),step:1,defaultValue:convertIsoToLocal(props.defaultValue),autoFocus:props.autoFocus,error:getErrorsForInput(props.outcome,props.name),onChange:e=>{if(props.onChange){let newValue=e.currentTarget.value;props.onChange(convertLocalToIso(newValue))}}})}function getInputType(){return"datetime-local"}var import_core82=require("@medplum/core"),import_react_hooks23=require("@medplum/react-hooks"),import_react42=require("react");var import_jsx_runtime68=require("react/jsx-runtime");function ExtensionInput(props){let{propertyType}=props,medplum=(0,import_react_hooks23.useMedplum)(),profileUrl=(0,import_react42.useMemo)(()=>{if((0,import_core82.isPopulated)(propertyType.profile))return propertyType.profile[0]},[propertyType]),[loadingProfile,setLoadingProfile]=(0,import_react42.useState)(profileUrl!==void 0);return(0,import_react42.useEffect)(()=>{profileUrl&&(setLoadingProfile(!0),medplum.requestProfileSchema(profileUrl).then(()=>setLoadingProfile(!1)).catch(reason=>{setLoadingProfile(!1),console.warn(reason)}))},[medplum,profileUrl]),profileUrl&&(loadingProfile||!(0,import_core82.isProfileLoaded)(profileUrl))?(0,import_jsx_runtime68.jsx)("div",{children:"Loading..."}):(0,import_jsx_runtime68.jsx)(BackboneElementInput,{profileUrl,path:props.path,typeName:"Extension",defaultValue:props.defaultValue,onChange:props.onChange})}var import_core83=require("@mantine/core"),import_react43=require("react");var import_jsx_runtime69=require("react/jsx-runtime");function HumanNameInput(props){let{outcome,path}=props,[value,setValue]=(0,import_react43.useState)(props.defaultValue),{getExtendedProps}=(0,import_react43.useContext)(ElementsContext),[useProps,prefixProps,givenProps,familyProps,suffixProps]=(0,import_react43.useMemo)(()=>["use","prefix","given","family","suffix"].map(field=>getExtendedProps(props.path+"."+field)),[getExtendedProps,props.path]);function setValueWrapper(newValue){setValue(newValue),props.onChange&&props.onChange(newValue)}function setUse(use){setValueWrapper({...value,use:use||void 0})}function setPrefix(prefix){setValueWrapper({...value,prefix:prefix?prefix.split(" "):void 0})}function setGiven(given){setValueWrapper({...value,given:given?given.split(" "):void 0})}function setFamily(family){setValueWrapper({...value,family:family||void 0})}function setSuffix(suffix){setValueWrapper({...value,suffix:suffix?suffix.split(" "):void 0})}let errorPath=props.valuePath??path;return(0,import_jsx_runtime69.jsxs)(import_core83.Group,{gap:"xs",grow:!0,wrap:"nowrap",children:[(0,import_jsx_runtime69.jsx)(import_core83.NativeSelect,{disabled:props.disabled||useProps?.readonly,defaultValue:value?.use,name:props.name+"-use","data-testid":"use",onChange:e=>setUse(e.currentTarget.value),data:["","temp","old","usual","official","nickname","anonymous","maiden"],error:getErrorsForInput(outcome,errorPath+".use")}),(0,import_jsx_runtime69.jsx)(import_core83.TextInput,{disabled:props.disabled||prefixProps?.readonly,placeholder:"Prefix",name:props.name+"-prefix",defaultValue:value?.prefix?.join(" "),onChange:e=>setPrefix(e.currentTarget.value),error:getErrorsForInput(outcome,errorPath+".prefix")}),(0,import_jsx_runtime69.jsx)(import_core83.TextInput,{disabled:props.disabled||givenProps?.readonly,placeholder:"Given",name:props.name+"-given",defaultValue:value?.given?.join(" "),onChange:e=>setGiven(e.currentTarget.value),error:getErrorsForInput(outcome,errorPath+".given")}),(0,import_jsx_runtime69.jsx)(import_core83.TextInput,{disabled:props.disabled||familyProps?.readonly,name:props.name+"-family",placeholder:"Family",defaultValue:value?.family,onChange:e=>setFamily(e.currentTarget.value),error:getErrorsForInput(outcome,errorPath+".family")}),(0,import_jsx_runtime69.jsx)(import_core83.TextInput,{disabled:props.disabled||suffixProps?.readonly,placeholder:"Suffix",name:props.name+"-suffix",defaultValue:value?.suffix?.join(" "),onChange:e=>setSuffix(e.currentTarget.value),error:getErrorsForInput(outcome,errorPath+".suffix")})]})}var import_core84=require("@mantine/core"),import_react44=require("react");var import_jsx_runtime70=require("react/jsx-runtime");function IdentifierInput(props){let[value,setValue]=(0,import_react44.useState)(props.defaultValue),{elementsByPath,getExtendedProps}=(0,import_react44.useContext)(ElementsContext),[systemElement,valueElement]=(0,import_react44.useMemo)(()=>["system","value"].map(field=>elementsByPath[props.path+"."+field]),[elementsByPath,props.path]),[systemProps,valueProps]=(0,import_react44.useMemo)(()=>["system","value"].map(field=>getExtendedProps(props.path+"."+field)),[getExtendedProps,props.path]);function setValueWrapper(newValue){setValue(newValue),props.onChange&&props.onChange(newValue)}let errorPath=props.valuePath??props.path;return(0,import_jsx_runtime70.jsxs)(import_core84.Group,{gap:"xs",grow:!0,wrap:"nowrap",align:"flex-start",children:[(0,import_jsx_runtime70.jsx)(import_core84.TextInput,{disabled:props.disabled||systemProps?.readonly,placeholder:"System",required:(systemElement?.min??0)>0,defaultValue:value?.system,onChange:e=>setValueWrapper({...value,system:e.currentTarget.value}),error:getErrorsForInput(props.outcome,errorPath+".system")}),(0,import_jsx_runtime70.jsx)(import_core84.TextInput,{disabled:props.disabled||valueProps?.readonly,placeholder:"Value",required:(valueElement?.min??0)>0,defaultValue:value?.value,onChange:e=>setValueWrapper({...value,value:e.currentTarget.value}),error:getErrorsForInput(props.outcome,errorPath+".value")})]})}var import_core85=require("@mantine/core");var import_react45=require("react");var import_jsx_runtime71=require("react/jsx-runtime"),data=["USD","EUR","CAD","GBP","AUD"];function MoneyInput(props){let{onChange}=props,[value,setValue]=(0,import_react45.useState)(props.defaultValue),{getExtendedProps}=(0,import_react45.useContext)(ElementsContext),[currencyProps,valueProps]=(0,import_react45.useMemo)(()=>["currency","value"].map(field=>getExtendedProps(props.path+"."+field)),[getExtendedProps,props.path]),setValueWrapper=(0,import_react45.useCallback)(newValue=>{setValue(newValue),onChange&&onChange(newValue)},[onChange]),handleCurrencyChange=(0,import_react45.useCallback)(e=>{setValueWrapper({...value,currency:e.currentTarget.value})},[value,setValueWrapper]),handleValueChange=(0,import_react45.useCallback)(e=>{setValueWrapper({...value,value:e.currentTarget.valueAsNumber})},[value,setValueWrapper]),select=(0,import_jsx_runtime71.jsx)(import_core85.NativeSelect,{disabled:props.disabled||currencyProps?.readonly,defaultValue:value?.currency,data,styles:{input:{fontWeight:500,borderTopLeftRadius:0,borderBottomLeftRadius:0,width:92}},onChange:handleCurrencyChange});return(0,import_jsx_runtime71.jsx)(import_core85.TextInput,{disabled:props.disabled||valueProps?.readonly,type:"number",name:props.name,label:props.label,placeholder:props.placeholder??"Value",defaultValue:value?.value?.toString()??"USD",leftSection:(0,import_jsx_runtime71.jsx)(IconCurrencyDollar,{size:14}),rightSection:select,rightSectionWidth:92,onChange:handleValueChange})}var import_core86=require("@mantine/core"),import_react46=require("react");var import_jsx_runtime72=require("react/jsx-runtime");function PeriodInput(props){let[value,setValue]=(0,import_react46.useState)(props.defaultValue),{getExtendedProps}=(0,import_react46.useContext)(ElementsContext),[startProps,endProps]=(0,import_react46.useMemo)(()=>["start","end"].map(field=>getExtendedProps(props.path+"."+field)),[getExtendedProps,props.path]);function setValueWrapper(newValue){setValue(newValue),props.onChange&&props.onChange(newValue)}return(0,import_jsx_runtime72.jsxs)(import_core86.Group,{gap:"xs",grow:!0,wrap:"nowrap",children:[(0,import_jsx_runtime72.jsx)(DateTimeInput,{disabled:props.disabled||startProps?.readonly,name:props.name+".start",placeholder:"Start",defaultValue:value?.start,onChange:newValue=>setValueWrapper({...value,start:newValue})}),(0,import_jsx_runtime72.jsx)(DateTimeInput,{disabled:props.disabled||endProps?.readonly,name:props.name+".end",placeholder:"End",defaultValue:value?.end,onChange:newValue=>setValueWrapper({...value,end:newValue})})]})}var import_core87=require("@mantine/core"),import_react47=require("react");var import_jsx_runtime73=require("react/jsx-runtime");function QuantityInput(props){let[value,setValue]=(0,import_react47.useState)(props.defaultValue),{getExtendedProps}=(0,import_react47.useContext)(ElementsContext),[comparatorProps,valueProps,unitProps]=(0,import_react47.useMemo)(()=>["comparator","value","unit"].map(field=>getExtendedProps(props.path+"."+field)),[getExtendedProps,props.path]);function setValueWrapper(newValue){setValue(newValue),props.onChange&&props.onChange(newValue)}return(0,import_jsx_runtime73.jsxs)(import_core87.Group,{gap:"xs",grow:!0,wrap:"nowrap",children:[(0,import_jsx_runtime73.jsx)(import_core87.NativeSelect,{disabled:props.disabled||comparatorProps?.readonly,style:{width:80},"data-testid":props.name+"-comparator",defaultValue:value?.comparator,data:["","<","<=",">=",">"],onChange:e=>setValueWrapper({...value,comparator:e.currentTarget.value})}),(0,import_jsx_runtime73.jsx)(import_core87.TextInput,{disabled:props.disabled||valueProps?.readonly,id:props.name,name:props.name,required:props.required,"data-autofocus":props.autoFocus,"data-testid":props.name+"-value",type:"number",placeholder:"Value",defaultValue:value?.value,autoFocus:props.autoFocus,step:"any",onWheel:e=>{props.disableWheel&&e.currentTarget.blur()},onChange:e=>{setValueWrapper({...value,value:tryParseNumber(e.currentTarget.value)})}}),(0,import_jsx_runtime73.jsx)(import_core87.TextInput,{disabled:props.disabled||unitProps?.readonly,placeholder:"Unit","data-testid":props.name+"-unit",defaultValue:value?.unit,onChange:e=>setValueWrapper({...value,unit:e.currentTarget.value})})]})}function tryParseNumber(str){if(str)return Number.parseFloat(str)}var import_core88=require("@mantine/core"),import_react48=require("react");var import_jsx_runtime74=require("react/jsx-runtime");function RangeInput(props){let[value,setValue]=(0,import_react48.useState)(props.defaultValue),{getExtendedProps}=(0,import_react48.useContext)(ElementsContext),[lowProps,highProps]=(0,import_react48.useMemo)(()=>["low","high"].map(field=>getExtendedProps(props.path+"."+field)),[getExtendedProps,props.path]);function setValueWrapper(newValue){setValue(newValue),props.onChange&&props.onChange(newValue)}return(0,import_jsx_runtime74.jsxs)(import_core88.Group,{gap:"xs",grow:!0,wrap:"nowrap",children:[(0,import_jsx_runtime74.jsx)(QuantityInput,{path:props.path+".low",disabled:props.disabled||lowProps?.readonly,name:props.name+"-low",defaultValue:value?.low,onChange:v=>setValueWrapper({...value,low:v})}),(0,import_jsx_runtime74.jsx)(QuantityInput,{path:props.path+".high",disabled:props.disabled||highProps?.readonly,name:props.name+"-high",defaultValue:value?.high,onChange:v=>setValueWrapper({...value,high:v})})]})}var import_core89=require("@mantine/core"),import_react49=require("react");var import_jsx_runtime75=require("react/jsx-runtime");function RatioInput(props){let[value,setValue]=(0,import_react49.useState)(props.defaultValue),{getExtendedProps}=(0,import_react49.useContext)(ElementsContext),[numeratorProps,denominatorProps]=(0,import_react49.useMemo)(()=>["numerator","denominator"].map(field=>getExtendedProps(props.path+"."+field)),[getExtendedProps,props.path]);function setValueWrapper(newValue){setValue(newValue),props.onChange&&props.onChange(newValue)}return(0,import_jsx_runtime75.jsxs)(import_core89.Group,{gap:"xs",grow:!0,wrap:"nowrap",children:[(0,import_jsx_runtime75.jsx)(QuantityInput,{path:props.path+".numerator",disabled:props.disabled||numeratorProps?.readonly,name:props.name+"-numerator",defaultValue:value?.numerator,onChange:v=>setValueWrapper({...value,numerator:v})}),(0,import_jsx_runtime75.jsx)(QuantityInput,{path:props.path+".denominator",disabled:props.disabled||denominatorProps?.readonly,name:props.name+"-denominator",defaultValue:value?.denominator,onChange:v=>setValueWrapper({...value,denominator:v})})]})}var import_core92=require("@mantine/core"),import_core93=require("@medplum/core"),import_react_hooks25=require("@medplum/react-hooks"),import_react51=require("react");var import_core90=require("@mantine/core"),import_core91=require("@medplum/core"),import_react_hooks24=require("@medplum/react-hooks"),import_react50=require("react");var import_jsx_runtime76=require("react/jsx-runtime"),SEARCH_CODES={Device:"device-name",Observation:"code",Subscription:"criteria",User:"email:contains"},NAME_RESOURCE_TYPES=["AccessPolicy","Account","ActivityDefinition","Bot","CapabilityStatement","CareTeam","ClientApplication","CodeSystem","CompartmentDefinition","ConceptMap","EffectEvidenceSynthesis","Endpoint","EventDefinition","Evidence","EvidenceVariable","ExampleScenario","GraphDefinition","Group","HealthcareService","ImplementationGuide","InsurancePlan","Library","Location","Measure","MedicinalProduct","MessageDefinition","NamingSystem","OperationDefinition","Organization","Patient","Person","PlanDefinition","Practitioner","Project","Questionnaire","RelatedPerson","ResearchDefinition","ResearchElementDefinition","ResearchStudy","RiskEvidenceSynthesis","SearchParameter","StructureDefinition","StructureMap","TerminologyCapabilities","TestScript","UserConfiguration","ValueSet"];function toOption3(resource){return{value:(0,import_core91.getReferenceString)(resource)??"",label:(0,import_core91.getDisplayString)(resource),resource}}function ResourceInput(props){let medplum=(0,import_react_hooks24.useMedplum)(),{resourceType,searchCriteria}=props,[outcome,setOutcome]=(0,import_react50.useState)(),defaultValue2=(0,import_react_hooks24.useResource)(props.defaultValue,setOutcome),ItemComponent3=props.itemComponent??DefaultItemComponent2,onChange=props.onChange,loadValues=(0,import_react50.useCallback)(async(input,signal)=>{let searchCode=getSearchParamForResourceType(resourceType),searchParams=new URLSearchParams({[searchCode]:input??"",_count:"10",...searchCriteria});return await medplum.searchResources(resourceType,searchParams,{signal})},[medplum,resourceType,searchCriteria]),handleChange=(0,import_react50.useCallback)(newResources=>{onChange&&onChange(newResources[0])},[onChange]);return(0,import_core91.isPopulated)(props.defaultValue)&&!outcome&&!defaultValue2?null:(0,import_jsx_runtime76.jsx)(AsyncAutocomplete,{disabled:props.disabled,name:props.name,label:props.label,error:props.error,required:props.required,itemComponent:ItemComponent3,defaultValue:defaultValue2,placeholder:props.placeholder,maxValues:1,toOption:toOption3,loadOptions:loadValues,onChange:handleChange,clearable:!0})}var DefaultItemComponent2=(0,import_react50.forwardRef)(({label,resource,active:_active,...others},ref)=>(0,import_jsx_runtime76.jsx)("div",{ref,...others,children:(0,import_jsx_runtime76.jsxs)(import_core90.Group,{wrap:"nowrap",children:[(0,import_jsx_runtime76.jsx)(ResourceAvatar,{value:resource}),(0,import_jsx_runtime76.jsxs)("div",{children:[(0,import_jsx_runtime76.jsx)(import_core90.Text,{children:label}),(0,import_jsx_runtime76.jsx)(import_core90.Text,{size:"xs",c:"dimmed",children:resource.birthDate||resource.id})]})]})}));function getSearchParamForResourceType(resourceType){return SEARCH_CODES[resourceType]??(NAME_RESOURCE_TYPES.includes(resourceType)?"name":"_id")}var import_jsx_runtime77=require("react/jsx-runtime");function ReferenceInput(props){let{onChange}=props,medplum=(0,import_react_hooks25.useMedplum)(),[value,setValue]=(0,import_react51.useState)(props.defaultValue),[targetTypes,setTargetTypes]=(0,import_react51.useState)(()=>createTargetTypes(props.targetTypes)),[targetType,setTargetType]=(0,import_react51.useState)(()=>getInitialTargetType(props.defaultValue,targetTypes)),promiseCache=(0,import_react51.useRef)(new import_core93.LRUCache),searchCriteria=(0,import_react51.useMemo)(()=>targetType?.type==="profile"?{...props.searchCriteria,_profile:targetType.value}:props.searchCriteria,[props.searchCriteria,targetType]);(0,import_react51.useEffect)(()=>{let anyToFetch=!1,newTargetTypePromises=targetTypes?.map(tt=>{if(!shouldFetchResourceType(tt))return Promise.resolve(tt);anyToFetch=!0;let cacheKey=tt.value,cached=promiseCache.current.get(cacheKey);if(cached)return cached;let promise=fetchResourceTypeOfProfile(medplum,tt.value).then(profile=>{let newTargetType={...tt};return profile?(0,import_core93.isPopulated)(profile.type)?(newTargetType.resourceType=profile.type,newTargetType.name=profile.name,newTargetType.title=profile.title):(console.error(`StructureDefinition.type missing for ${tt.value}`),newTargetType.error="StructureDefinition.type missing"):(console.error(`StructureDefinition not found for ${tt.value}`),newTargetType.error="StructureDefinition not found"),newTargetType}).catch(reason=>(console.error(reason),{...tt,error:reason})),readablePromise=new import_core93.ReadablePromise(promise);return promiseCache.current.set(cacheKey,readablePromise),readablePromise});!newTargetTypePromises||!anyToFetch||Promise.all(newTargetTypePromises).then(newTargetTypes=>{if(setTargetTypes(newTargetTypes),!targetType)return;let index=newTargetTypes.findIndex(tt=>tt.value===targetType.value||tt.resourceType===targetType.resourceType);if(index===-1){console.debug(`defaultValue had unexpected resourceType: ${targetType.resourceType}`);return}setTargetType(newTargetTypes[index])}).catch(console.error)},[medplum,targetType,targetTypes]);let setValueHelper=(0,import_react51.useCallback)(item=>{let newValue=item?(0,import_core93.createReference)(item):void 0;setValue(newValue),onChange&&onChange(newValue)},[onChange]),typeSelectOptions=(0,import_react51.useMemo)(()=>targetTypes?targetTypes.map(tt=>({value:tt.value,label:tt.type==="profile"?tt.title??tt.name??tt.resourceType??tt.value:tt.value})):[],[targetTypes]);return(0,import_jsx_runtime77.jsxs)(import_jsx_runtime77.Fragment,{children:[props.name&&(0,import_jsx_runtime77.jsx)("input",{type:"hidden",name:props.name,value:value?.reference??""}),(0,import_jsx_runtime77.jsxs)(import_core92.Group,{gap:"xs",grow:!0,wrap:"nowrap",children:[targetTypes&&targetTypes.length>1&&(0,import_jsx_runtime77.jsx)(import_core92.NativeSelect,{name:props.name+"-resourceType",disabled:props.disabled,"data-autofocus":props.autoFocus,"data-testid":"reference-input-resource-type-select",defaultValue:targetType?.resourceType,autoFocus:props.autoFocus,onChange:e=>{let newValue=e.currentTarget.value,newTargetType=targetTypes.find(tt=>tt.value===newValue);setTargetType(newTargetType)},data:typeSelectOptions}),!targetTypes&&(0,import_jsx_runtime77.jsx)(ResourceTypeInput,{disabled:props.disabled,autoFocus:props.autoFocus,testId:"reference-input-resource-type-input",defaultValue:targetType?.resourceType,onChange:newResourceType=>{setTargetType(newResourceType?{type:"resourceType",value:newResourceType,resourceType:newResourceType}:void 0)},name:props.name+"-resourceType",placeholder:"Resource Type"}),(0,import_jsx_runtime77.jsx)(ResourceInput,{resourceType:targetType?.resourceType,name:props.name+"-id",required:props.required,placeholder:props.placeholder,defaultValue:value,searchCriteria,onChange:setValueHelper,disabled:props.disabled})]})]})}function createTargetTypes(resourceTypesAndProfileUrls){if(!resourceTypesAndProfileUrls||resourceTypesAndProfileUrls.length===0||resourceTypesAndProfileUrls.length===1&&resourceTypesAndProfileUrls[0]==="Resource")return;let results=[];for(let value of resourceTypesAndProfileUrls)value.includes("/")?results.push({type:"profile",value}):results.push({type:"resourceType",value,resourceType:value});return results}function getInitialTargetType(defaultValue2,targetTypes){let defaultValueResourceType=defaultValue2?.reference?.split("/")[0];if(defaultValueResourceType){let targetType=targetTypes?.find(tt=>tt.resourceType===defaultValueResourceType);return targetType||{type:"resourceType",value:defaultValueResourceType,resourceType:defaultValueResourceType}}if(targetTypes&&targetTypes.length>0)return targetTypes[0]}async function fetchResourceTypeOfProfile(medplum,profileUrl){let profile=(0,import_core93.tryGetProfile)(profileUrl);if(profile)return{type:profile.type,name:profile.name,title:profile.title};let query=`{
|
|
104
104
|
StructureDefinitionList(url: "${profileUrl}", _sort: "_lastUpdated", _count: 1) {
|
|
105
105
|
type,
|