@medplum/react 2.0.2 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/OperationOutcomeAlert/OperationOutcomeAlert.d.ts +2 -1
- package/dist/cjs/ResourceDiffTable/ResourceDiffTable.stories.d.ts +5 -0
- package/dist/cjs/ResourceTable/ResourceTable.d.ts +13 -0
- package/dist/cjs/ResourceTimeline/ResourceTimeline.d.ts +2 -2
- package/dist/cjs/index.cjs +1833 -1211
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.min.cjs +1 -1
- package/dist/cjs/useResource/useResource.d.ts +2 -2
- package/dist/cjs/utils/date.d.ts +2 -1
- package/dist/esm/AddressDisplay/AddressDisplay.mjs +2 -2
- package/dist/esm/AddressDisplay/AddressDisplay.mjs.map +1 -1
- package/dist/esm/AddressInput/AddressInput.mjs +9 -9
- package/dist/esm/AddressInput/AddressInput.mjs.map +1 -1
- package/dist/esm/AnnotationInput/AnnotationInput.mjs +2 -2
- package/dist/esm/AnnotationInput/AnnotationInput.mjs.map +1 -1
- package/dist/esm/AsyncAutocomplete/AsyncAutocomplete.mjs +2 -2
- package/dist/esm/AsyncAutocomplete/AsyncAutocomplete.mjs.map +1 -1
- package/dist/esm/AttachmentArrayDisplay/AttachmentArrayDisplay.mjs +4 -4
- package/dist/esm/AttachmentArrayDisplay/AttachmentArrayDisplay.mjs.map +1 -1
- package/dist/esm/AttachmentArrayInput/AttachmentArrayInput.mjs +20 -19
- package/dist/esm/AttachmentArrayInput/AttachmentArrayInput.mjs.map +1 -1
- package/dist/esm/AttachmentButton/AttachmentButton.mjs +3 -3
- package/dist/esm/AttachmentButton/AttachmentButton.mjs.map +1 -1
- package/dist/esm/AttachmentDisplay/AttachmentDisplay.mjs +9 -9
- package/dist/esm/AttachmentDisplay/AttachmentDisplay.mjs.map +1 -1
- package/dist/esm/AttachmentInput/AttachmentInput.mjs +5 -5
- package/dist/esm/AttachmentInput/AttachmentInput.mjs.map +1 -1
- package/dist/esm/BackboneElementDisplay/BackboneElementDisplay.mjs +6 -6
- package/dist/esm/BackboneElementDisplay/BackboneElementDisplay.mjs.map +1 -1
- package/dist/esm/BackboneElementInput/BackboneElementInput.mjs +7 -7
- package/dist/esm/BackboneElementInput/BackboneElementInput.mjs.map +1 -1
- package/dist/esm/CalendarInput/CalendarInput.mjs +18 -18
- package/dist/esm/CalendarInput/CalendarInput.mjs.map +1 -1
- package/dist/esm/CheckboxFormSection/CheckboxFormSection.mjs +5 -5
- package/dist/esm/CheckboxFormSection/CheckboxFormSection.mjs.map +1 -1
- package/dist/esm/CodeInput/CodeInput.mjs +2 -2
- package/dist/esm/CodeInput/CodeInput.mjs.map +1 -1
- package/dist/esm/CodeableConceptDisplay/CodeableConceptDisplay.mjs +2 -2
- package/dist/esm/CodeableConceptDisplay/CodeableConceptDisplay.mjs.map +1 -1
- package/dist/esm/CodeableConceptInput/CodeableConceptInput.mjs +2 -2
- package/dist/esm/CodeableConceptInput/CodeableConceptInput.mjs.map +1 -1
- package/dist/esm/CodingDisplay/CodingDisplay.mjs +2 -2
- package/dist/esm/CodingDisplay/CodingDisplay.mjs.map +1 -1
- package/dist/esm/CodingInput/CodingInput.mjs +2 -2
- package/dist/esm/CodingInput/CodingInput.mjs.map +1 -1
- package/dist/esm/ContactDetailDisplay/ContactDetailDisplay.mjs +3 -3
- package/dist/esm/ContactDetailDisplay/ContactDetailDisplay.mjs.map +1 -1
- package/dist/esm/ContactDetailInput/ContactDetailInput.mjs +4 -4
- package/dist/esm/ContactDetailInput/ContactDetailInput.mjs.map +1 -1
- package/dist/esm/ContactPointDisplay/ContactPointDisplay.mjs +2 -2
- package/dist/esm/ContactPointDisplay/ContactPointDisplay.mjs.map +1 -1
- package/dist/esm/ContactPointInput/ContactPointInput.mjs +5 -5
- package/dist/esm/ContactPointInput/ContactPointInput.mjs.map +1 -1
- package/dist/esm/Container/Container.mjs +2 -2
- package/dist/esm/Container/Container.mjs.map +1 -1
- package/dist/esm/DateTimeInput/DateTimeInput.mjs +2 -2
- package/dist/esm/DateTimeInput/DateTimeInput.mjs.map +1 -1
- package/dist/esm/DefaultResourceTimeline/DefaultResourceTimeline.mjs +3 -7
- package/dist/esm/DefaultResourceTimeline/DefaultResourceTimeline.mjs.map +1 -1
- package/dist/esm/DescriptionList/DescriptionList.mjs +5 -5
- package/dist/esm/DescriptionList/DescriptionList.mjs.map +1 -1
- package/dist/esm/DiagnosticReportDisplay/DiagnosticReportDisplay.mjs +49 -49
- package/dist/esm/DiagnosticReportDisplay/DiagnosticReportDisplay.mjs.map +1 -1
- package/dist/esm/Document/Document.mjs +3 -3
- package/dist/esm/Document/Document.mjs.map +1 -1
- package/dist/esm/EncounterTimeline/EncounterTimeline.mjs +7 -7
- package/dist/esm/EncounterTimeline/EncounterTimeline.mjs.map +1 -1
- package/dist/esm/ErrorBoundary/ErrorBoundary.mjs +4 -4
- package/dist/esm/ErrorBoundary/ErrorBoundary.mjs.map +1 -1
- package/dist/esm/ExtensionInput/ExtensionInput.mjs +2 -2
- package/dist/esm/ExtensionInput/ExtensionInput.mjs.map +1 -1
- package/dist/esm/FhirPathDisplay/FhirPathDisplay.mjs +2 -2
- package/dist/esm/FhirPathDisplay/FhirPathDisplay.mjs.map +1 -1
- package/dist/esm/FhirPathTable/FhirPathTable.mjs +19 -19
- package/dist/esm/FhirPathTable/FhirPathTable.mjs.map +1 -1
- package/dist/esm/Form/Form.mjs +2 -2
- package/dist/esm/Form/Form.mjs.map +1 -1
- package/dist/esm/FormSection/FormSection.mjs +2 -2
- package/dist/esm/FormSection/FormSection.mjs.map +1 -1
- package/dist/esm/GoogleButton/GoogleButton.mjs +4 -4
- package/dist/esm/GoogleButton/GoogleButton.mjs.map +1 -1
- package/dist/esm/HumanNameDisplay/HumanNameDisplay.mjs +2 -2
- package/dist/esm/HumanNameDisplay/HumanNameDisplay.mjs.map +1 -1
- package/dist/esm/HumanNameInput/HumanNameInput.mjs +7 -7
- package/dist/esm/HumanNameInput/HumanNameInput.mjs.map +1 -1
- package/dist/esm/IdentifierDisplay/IdentifierDisplay.mjs +2 -2
- package/dist/esm/IdentifierDisplay/IdentifierDisplay.mjs.map +1 -1
- package/dist/esm/IdentifierInput/IdentifierInput.mjs +4 -4
- package/dist/esm/IdentifierInput/IdentifierInput.mjs.map +1 -1
- package/dist/esm/Logo/Logo.mjs +8 -8
- package/dist/esm/Logo/Logo.mjs.map +1 -1
- package/dist/esm/MedplumLink/MedplumLink.mjs +2 -2
- package/dist/esm/MedplumLink/MedplumLink.mjs.map +1 -1
- package/dist/esm/MedplumProvider/MedplumProvider.mjs +2 -2
- package/dist/esm/MedplumProvider/MedplumProvider.mjs.map +1 -1
- package/dist/esm/MoneyDisplay/MoneyDisplay.mjs +2 -2
- package/dist/esm/MoneyDisplay/MoneyDisplay.mjs.map +1 -1
- package/dist/esm/MoneyInput/MoneyInput.mjs +4 -4
- package/dist/esm/MoneyInput/MoneyInput.mjs.map +1 -1
- package/dist/esm/NoteDisplay/NoteDisplay.mjs +2 -2
- package/dist/esm/NoteDisplay/NoteDisplay.mjs.map +1 -1
- package/dist/esm/OperationOutcomeAlert/OperationOutcomeAlert.d.ts +2 -1
- package/dist/esm/OperationOutcomeAlert/OperationOutcomeAlert.mjs +5 -4
- package/dist/esm/OperationOutcomeAlert/OperationOutcomeAlert.mjs.map +1 -1
- package/dist/esm/Panel/Panel.mjs +2 -2
- package/dist/esm/Panel/Panel.mjs.map +1 -1
- package/dist/esm/PatientTimeline/PatientTimeline.mjs +12 -12
- package/dist/esm/PatientTimeline/PatientTimeline.mjs.map +1 -1
- package/dist/esm/PeriodInput/PeriodInput.mjs +4 -4
- package/dist/esm/PeriodInput/PeriodInput.mjs.map +1 -1
- package/dist/esm/PlanDefinitionBuilder/PlanDefinitionBuilder.mjs +34 -34
- package/dist/esm/PlanDefinitionBuilder/PlanDefinitionBuilder.mjs.map +1 -1
- package/dist/esm/QuantityDisplay/QuantityDisplay.mjs +2 -2
- package/dist/esm/QuantityDisplay/QuantityDisplay.mjs.map +1 -1
- package/dist/esm/QuantityInput/QuantityInput.mjs +5 -5
- package/dist/esm/QuantityInput/QuantityInput.mjs.map +1 -1
- package/dist/esm/QuestionnaireBuilder/QuestionnaireBuilder.mjs +31 -31
- package/dist/esm/QuestionnaireBuilder/QuestionnaireBuilder.mjs.map +1 -1
- package/dist/esm/QuestionnaireForm/QuestionnaireForm.mjs +32 -32
- package/dist/esm/QuestionnaireForm/QuestionnaireForm.mjs.map +1 -1
- package/dist/esm/RangeDisplay/RangeDisplay.mjs +2 -2
- package/dist/esm/RangeDisplay/RangeDisplay.mjs.map +1 -1
- package/dist/esm/RangeInput/RangeInput.mjs +4 -4
- package/dist/esm/RangeInput/RangeInput.mjs.map +1 -1
- package/dist/esm/RatioDisplay/RatioDisplay.mjs +4 -4
- package/dist/esm/RatioDisplay/RatioDisplay.mjs.map +1 -1
- package/dist/esm/RatioInput/RatioInput.mjs +4 -4
- package/dist/esm/RatioInput/RatioInput.mjs.map +1 -1
- package/dist/esm/ReferenceDisplay/ReferenceDisplay.mjs +3 -3
- package/dist/esm/ReferenceDisplay/ReferenceDisplay.mjs.map +1 -1
- package/dist/esm/ReferenceInput/ReferenceInput.mjs +4 -4
- package/dist/esm/ReferenceInput/ReferenceInput.mjs.map +1 -1
- package/dist/esm/ReferenceRangeEditor/ReferenceRangeEditor.mjs +32 -31
- package/dist/esm/ReferenceRangeEditor/ReferenceRangeEditor.mjs.map +1 -1
- package/dist/esm/RequestGroupDisplay/RequestGroupDisplay.mjs +16 -15
- package/dist/esm/RequestGroupDisplay/RequestGroupDisplay.mjs.map +1 -1
- package/dist/esm/ResourceArrayDisplay/ResourceArrayDisplay.mjs +3 -3
- package/dist/esm/ResourceArrayDisplay/ResourceArrayDisplay.mjs.map +1 -1
- package/dist/esm/ResourceArrayInput/ResourceArrayInput.mjs +19 -18
- package/dist/esm/ResourceArrayInput/ResourceArrayInput.mjs.map +1 -1
- package/dist/esm/ResourceAvatar/ResourceAvatar.mjs +4 -4
- package/dist/esm/ResourceAvatar/ResourceAvatar.mjs.map +1 -1
- package/dist/esm/ResourceBadge/ResourceBadge.mjs +4 -4
- package/dist/esm/ResourceBadge/ResourceBadge.mjs.map +1 -1
- package/dist/esm/ResourceBlame/ResourceBlame.mjs +13 -13
- package/dist/esm/ResourceBlame/ResourceBlame.mjs.map +1 -1
- package/dist/esm/ResourceDiff/ResourceDiff.mjs +7 -7
- package/dist/esm/ResourceDiff/ResourceDiff.mjs.map +1 -1
- package/dist/esm/ResourceDiffTable/ResourceDiffTable.mjs +18 -18
- package/dist/esm/ResourceDiffTable/ResourceDiffTable.mjs.map +1 -1
- package/dist/esm/ResourceDiffTable/ResourceDiffTable.stories.d.ts +5 -0
- package/dist/esm/ResourceForm/ResourceForm.mjs +12 -12
- package/dist/esm/ResourceForm/ResourceForm.mjs.map +1 -1
- package/dist/esm/ResourceHistoryTable/ResourceHistoryTable.mjs +17 -17
- package/dist/esm/ResourceHistoryTable/ResourceHistoryTable.mjs.map +1 -1
- package/dist/esm/ResourceInput/ResourceInput.mjs +8 -8
- package/dist/esm/ResourceInput/ResourceInput.mjs.map +1 -1
- package/dist/esm/ResourceName/ResourceName.mjs +2 -2
- package/dist/esm/ResourceName/ResourceName.mjs.map +1 -1
- package/dist/esm/ResourcePropertyDisplay/ResourcePropertyDisplay.mjs +26 -26
- package/dist/esm/ResourcePropertyDisplay/ResourcePropertyDisplay.mjs.map +1 -1
- package/dist/esm/ResourcePropertyInput/ResourcePropertyInput.mjs +34 -34
- package/dist/esm/ResourcePropertyInput/ResourcePropertyInput.mjs.map +1 -1
- package/dist/esm/ResourceTable/ResourceTable.d.ts +13 -0
- package/dist/esm/ResourceTable/ResourceTable.mjs +5 -2
- package/dist/esm/ResourceTable/ResourceTable.mjs.map +1 -1
- package/dist/esm/ResourceTimeline/ResourceTimeline.d.ts +2 -2
- package/dist/esm/ResourceTimeline/ResourceTimeline.mjs +105 -76
- package/dist/esm/ResourceTimeline/ResourceTimeline.mjs.map +1 -1
- package/dist/esm/Scheduler/Scheduler.mjs +22 -22
- package/dist/esm/Scheduler/Scheduler.mjs.map +1 -1
- package/dist/esm/SearchControl/SearchControl.mjs +55 -49
- package/dist/esm/SearchControl/SearchControl.mjs.map +1 -1
- package/dist/esm/SearchControl/SearchUtils.mjs +4 -4
- package/dist/esm/SearchControl/SearchUtils.mjs.map +1 -1
- package/dist/esm/SearchFieldEditor/SearchFieldEditor.mjs +25 -25
- package/dist/esm/SearchFieldEditor/SearchFieldEditor.mjs.map +1 -1
- package/dist/esm/SearchFilterEditor/SearchFilterEditor.mjs +37 -37
- package/dist/esm/SearchFilterEditor/SearchFilterEditor.mjs.map +1 -1
- package/dist/esm/SearchFilterValueDialog/SearchFilterValueDialog.mjs +6 -6
- package/dist/esm/SearchFilterValueDialog/SearchFilterValueDialog.mjs.map +1 -1
- package/dist/esm/SearchFilterValueDisplay/SearchFilterValueDisplay.mjs +4 -4
- package/dist/esm/SearchFilterValueDisplay/SearchFilterValueDisplay.mjs.map +1 -1
- package/dist/esm/SearchFilterValueInput/SearchFilterValueInput.mjs +8 -8
- package/dist/esm/SearchFilterValueInput/SearchFilterValueInput.mjs.map +1 -1
- package/dist/esm/SearchPopupMenu/SearchPopupMenu.mjs +75 -62
- package/dist/esm/SearchPopupMenu/SearchPopupMenu.mjs.map +1 -1
- package/dist/esm/ServiceRequestTimeline/ServiceRequestTimeline.mjs +8 -8
- package/dist/esm/ServiceRequestTimeline/ServiceRequestTimeline.mjs.map +1 -1
- package/dist/esm/StatusBadge/StatusBadge.mjs +2 -2
- package/dist/esm/StatusBadge/StatusBadge.mjs.map +1 -1
- package/dist/esm/Timeline/Timeline.mjs +20 -20
- package/dist/esm/Timeline/Timeline.mjs.map +1 -1
- package/dist/esm/TimingInput/TimingInput.mjs +19 -19
- package/dist/esm/TimingInput/TimingInput.mjs.map +1 -1
- package/dist/esm/ValueSetAutocomplete/ValueSetAutocomplete.mjs +2 -2
- package/dist/esm/ValueSetAutocomplete/ValueSetAutocomplete.mjs.map +1 -1
- package/dist/esm/auth/AuthenticationForm.mjs +22 -22
- package/dist/esm/auth/AuthenticationForm.mjs.map +1 -1
- package/dist/esm/auth/ChooseProfileForm.mjs +11 -11
- package/dist/esm/auth/ChooseProfileForm.mjs.map +1 -1
- package/dist/esm/auth/ChooseScopeForm.mjs +9 -9
- package/dist/esm/auth/ChooseScopeForm.mjs.map +1 -1
- package/dist/esm/auth/MfaForm.mjs +12 -12
- package/dist/esm/auth/MfaForm.mjs.map +1 -1
- package/dist/esm/auth/NewProjectForm.mjs +12 -12
- package/dist/esm/auth/NewProjectForm.mjs.map +1 -1
- package/dist/esm/auth/NewUserForm.mjs +22 -22
- package/dist/esm/auth/NewUserForm.mjs.map +1 -1
- package/dist/esm/auth/RegisterForm.mjs +5 -5
- package/dist/esm/auth/RegisterForm.mjs.map +1 -1
- package/dist/esm/auth/SignInForm.mjs +8 -8
- package/dist/esm/auth/SignInForm.mjs.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.min.mjs +1 -1
- package/dist/esm/index.mjs +1 -0
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/createReactComponent.mjs +69 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/createReactComponent.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/defaultAttributes.mjs +18 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/defaultAttributes.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconAdjustmentsHorizontal.mjs +24 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconAdjustmentsHorizontal.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconAlertCircle.mjs +14 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconAlertCircle.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBleach.mjs +18 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBleach.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBleachOff.mjs +19 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBleachOff.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBoxMultiple.mjs +25 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBoxMultiple.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBracketsContain.mjs +16 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBracketsContain.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBucket.mjs +19 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBucket.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBucketOff.mjs +26 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconBucketOff.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCalendar.mjs +23 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCalendar.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCheck.mjs +12 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCheck.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCheckbox.mjs +19 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCheckbox.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCircleMinus.mjs +13 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCircleMinus.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCirclePlus.mjs +14 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCirclePlus.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCloudUpload.mjs +20 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCloudUpload.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconColumns.mjs +19 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconColumns.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCurrencyDollar.mjs +19 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconCurrencyDollar.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconDots.mjs +14 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconDots.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconEdit.mjs +26 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconEdit.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconEqual.mjs +13 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconEqual.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconEqualNot.mjs +14 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconEqualNot.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconFileAlert.mjs +21 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconFileAlert.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconFilePlus.mjs +21 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconFilePlus.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconFilter.mjs +18 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconFilter.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconListDetails.mjs +29 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconListDetails.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconMathGreater.mjs +12 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconMathGreater.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconMathLower.mjs +12 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconMathLower.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconMessage.mjs +20 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconMessage.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconPin.mjs +20 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconPin.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconPinnedOff.mjs +21 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconPinnedOff.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSettings.mjs +19 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSettings.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSortAscending.mjs +16 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSortAscending.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSortDescending.mjs +16 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSortDescending.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSquare.mjs +18 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconSquare.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconTableExport.mjs +18 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconTableExport.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconTrash.mjs +19 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconTrash.mjs.map +1 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconX.mjs +13 -0
- package/dist/esm/node_modules/@tabler/icons-react/dist/esm/icons/IconX.mjs.map +1 -0
- package/dist/esm/useResource/useResource.d.ts +2 -2
- package/dist/esm/useResource/useResource.mjs +62 -42
- package/dist/esm/useResource/useResource.mjs.map +1 -1
- package/dist/esm/utils/date.d.ts +2 -1
- package/dist/esm/utils/date.mjs +31 -25
- package/dist/esm/utils/date.mjs.map +1 -1
- package/icons-unique.txt +36 -0
- package/icons.txt +44 -0
- package/package.json +6 -6
- package/dist/esm/node_modules/@tabler/icons/icons-react/dist/index.esm.mjs +0 -6
- package/dist/esm/node_modules/@tabler/icons/icons-react/dist/index.esm.mjs.map +0 -1
package/dist/esm/index.min.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{formatAddress as e,createReference as t,normalizeErrorString as n,formatCodeableConcept as r,formatCoding as a,formatHumanName as o,formatMoney as l,formatQuantity as i,formatRange as c,stringify as s,getElementDefinitionTypeName as u,PropertyType as m,formatTiming as d,formatPeriod as p,formatDateTime as h,getTypedPropertyValue as g,globalSchema as E,getPropertyDisplayName as f,capitalize as v,isValidDate as y,getDisplayString as k,getImageSrc as C,formatObservationValue as x,toTypedValue as b,getReferenceString as w,evalFhirPath as T,Operator as S,DEFAULT_SEARCH_COUNT as z,evalFhirPathTyped as A,getSearchParameterDetails as D,SearchParameterType as V,formatSearchQuery as N,deepEquals as I,getQuestionnaireAnswers as M,getCodeBySystem as R}from"@medplum/core";import*as L from"react";import P,{useState as O,useRef as W,createContext as $,useEffect as j,useContext as F,useCallback as U,forwardRef as H,useMemo as B}from"react";import{Group as _,NativeSelect as q,TextInput as K,MultiSelect as Q,Loader as G,Anchor as J,ActionIcon as Y,Button as X,createStyles as Z,Container as ee,useComponentDefaultProps as te,Paper as ne,Center as re,Title as ae,Stack as oe,Text as le,Alert as ie,Divider as ce,PasswordInput as se,Checkbox as ue,UnstyledButton as me,Avatar as de,Input as pe,JsonInput as he,Autocomplete as ge,Modal as Ee,Textarea as fe,Blockquote as ve,Badge as ye,Menu as ke,ScrollArea as Ce,Table as xe,Pagination as be,Radio as we,Grid as Te}from"@mantine/core";import{updateNotification as Se,showNotification as ze}from"@mantine/notifications";function Ae(t){const n=t.value;return n?P.createElement(P.Fragment,null,e(n)):null}function De(e,t){return e&&e.line&&e.line.length>t?e.line[t]:""}function Ve(e,t,n){const r=e.line||[];for(;r.length<=t;)r.push("");return r[t]=n,{...e,line:r}}function Ne(e){const[t,n]=O(e.defaultValue||{}),r=W();function a(t){n(t),e.onChange&&e.onChange(t)}return r.current=t,P.createElement(_,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(q,{"data-testid":"address-use",defaultValue:t?.use,onChange:e=>{return t=e.currentTarget.value,void a({...r.current,use:t});var t},data:["","home","work","temp","old","billing"]}),P.createElement(q,{"data-testid":"address-type",defaultValue:t?.type,onChange:e=>{return t=e.currentTarget.value,void a({...r.current,type:t});var t},data:["","postal","physical","both"]}),P.createElement(K,{placeholder:"Line 1",defaultValue:De(t,0),onChange:e=>{return t=e.currentTarget.value,void a(Ve(r.current||{},0,t));var t}}),P.createElement(K,{placeholder:"Line 2",defaultValue:De(t,1),onChange:e=>{return t=e.currentTarget.value,void a(Ve(r.current||{},1,t));var t}}),P.createElement(K,{placeholder:"City",defaultValue:t.city,onChange:e=>{return t=e.currentTarget.value,void a({...r.current,city:t});var t}}),P.createElement(K,{placeholder:"State",defaultValue:t.state,onChange:e=>{return t=e.currentTarget.value,void a({...r.current,state:t});var t}}),P.createElement(K,{placeholder:"Postal Code",defaultValue:t.postalCode,onChange:e=>{return t=e.currentTarget.value,void a({...r.current,postalCode:t});var t}}))}const Ie=$(void 0);function Me(e){const t=e.medplum,n=e.navigate||We,[r,a]=O({profile:t.getProfile(),loading:!1});j((()=>{function e(){a({...r,profile:t.getProfile()})}return t.addEventListener("change",e),()=>t.removeEventListeneer("change",e)}),[t,r]);const o={...r,medplum:t,navigate:n};return P.createElement(Ie.Provider,{value:o},e.children)}function Re(){return F(Ie)}function Le(){return Re().medplum}function Pe(){return Re().navigate}function Oe(){return Re().profile}function We(e){window.location.assign(e)}function $e(e){const n=Oe(),[r,a]=O(e.defaultValue||{});return W().current=r,P.createElement(K,{name:e.name,placeholder:"Annotation text",defaultValue:r.text,onChange:r=>function(r){const o=r?{text:r,authorReference:n&&t(n),time:(new Date).toISOString()}:{};a(o),e.onChange&&e.onChange(o)}(r.currentTarget.value)})}function je(e){e.preventDefault(),e.stopPropagation()}function Fe(e){if(Ue(e))return!0;if(e instanceof HTMLTableCellElement){const t=e.children;if(1===t.length&&Ue(t[0]))return!0}return!1}function Ue(e){return e instanceof HTMLInputElement&&"checkbox"===e.type}function He(e){const{defaultValue:t,toKey:n,toOption:r,loadOptions:a,onChange:o,onCreate:l,...i}=e,c=function(e){if(!e)return[];if(Array.isArray(e))return e;return[e]}(t),s=W(null),[u,m]=O(void 0),[d,p]=O(),[h,g]=O(),[E,f]=O(),[v,y]=O(c?.map(r)),k=W();k.current=u;const C=W();C.current=d;const x=W();x.current=h;const b=W();b.current=E;const w=W();w.current=v;const T=U((()=>{p(void 0);const e=s.current?.value?.trim()||"";if(e===k.current)return;m(e);const t=new AbortController;g(t),a(e,t.signal).then((e=>{t.signal.aborted||(y(e.map(r)),g(void 0),b.current&&(e.length>0&&o(e.slice(0,1)),f(!1)))})).catch(console.log)}),[a,o,r]),S=U((()=>{x.current&&(x.current.abort(),g(void 0)),void 0!==C.current&&window.clearTimeout(C.current);const e=window.setTimeout((()=>T()),100);p(e)}),[T]),z=U((e=>{const t=[];for(const n of e){let e=w.current?.find((e=>e.value===n))?.resource;e||(e=l(n)),t.push(e)}o(t)}),[o,l]),A=U((e=>{"Enter"===e.key&&(C.current||x.current?f(!0):(je(e),w.current&&w.current.length>0&&(y(w.current.slice(0,1)),z([w.current[0].value]))))}),[z]),D=U((e=>{const t=r(l(e));return y([...w.current,t]),t}),[l,y,r]),V=U(((e,t)=>!t),[]);return j((()=>()=>{x.current&&x.current.abort()}),[]),P.createElement(Q,{...i,ref:s,defaultValue:c.map(n),searchable:!0,onKeyDown:A,onSearchChange:S,data:v,onFocus:T,onChange:z,onCreate:D,rightSectionWidth:40,rightSection:h?P.createElement(G,{size:16}):null,filter:V})}function Be(e){const t=e.value,{contentType:n,url:r,title:a}=t??{};return r?P.createElement("div",{"data-testid":"attachment-display"},n?.startsWith("image/")&&P.createElement("img",{"data-testid":"attachment-image",style:{maxWidth:e.maxWidth},src:r,alt:t?.title}),n?.startsWith("video/")&&P.createElement("video",{"data-testid":"attachment-video",style:{maxWidth:e.maxWidth},controls:!0},P.createElement("source",{type:n,src:r})),"application/pdf"===n&&!a?.endsWith(".pdf")&&P.createElement("div",{"data-testid":"attachment-pdf",style:{maxWidth:e.maxWidth,minHeight:400}},P.createElement("iframe",{width:"100%",height:"400",src:r+"#navpanes=0",allowFullScreen:!0,frameBorder:0,seamless:!0})),P.createElement("div",{"data-testid":"download-link",style:{padding:"2px 16px 16px 16px"}},P.createElement(J,{href:t?.url,"data-testid":"attachment-details",target:"_blank",rel:"noopener noreferrer"},t?.title||"Download"))):null}function _e(e){return P.createElement("div",null,e.values&&e.values.map(((t,n)=>P.createElement("div",{key:"attatchment-"+n},P.createElement(Be,{value:t,maxWidth:e.maxWidth})))))}function qe(){return qe=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},qe.apply(this,arguments)}function Ke(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var Qe=["size","color","stroke"];function Ge(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,Qe);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-adjustments-horizontal",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("circle",{cx:14,cy:6,r:2}),L.createElement("line",{x1:4,y1:6,x2:12,y2:6}),L.createElement("line",{x1:16,y1:6,x2:20,y2:6}),L.createElement("circle",{cx:8,cy:12,r:2}),L.createElement("line",{x1:4,y1:12,x2:6,y2:12}),L.createElement("line",{x1:10,y1:12,x2:20,y2:12}),L.createElement("circle",{cx:17,cy:18,r:2}),L.createElement("line",{x1:4,y1:18,x2:15,y2:18}),L.createElement("line",{x1:19,y1:18,x2:20,y2:18}))}var Je=["size","color","stroke"];function Ye(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,Je);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-alert-circle",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("circle",{cx:12,cy:12,r:9}),L.createElement("line",{x1:12,y1:8,x2:12,y2:12}),L.createElement("line",{x1:12,y1:16,x2:12.01,y2:16}))}var Xe=["size","color","stroke"];function Ze(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,Xe);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-bleach-off",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("path",{d:"M5 19h14m1.986 -1.977a2.001 2.001 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"}),L.createElement("path",{d:"M3 3l18 18"}))}var et=["size","color","stroke"];function tt(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,et);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-bleach",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("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"}))}var nt=["size","color","stroke"];function rt(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,nt);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-box-multiple",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("rect",{x:7,y:3,width:14,height:14,rx:2}),L.createElement("path",{d:"M17 17v2a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-10a2 2 0 0 1 2 -2h2"}))}var at=["size","color","stroke"];function ot(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,at);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-brackets-contain",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("path",{d:"M7 4h-4v16h4"}),L.createElement("path",{d:"M17 4h4v16h-4"}),L.createElement("path",{d:"M8 16h.01"}),L.createElement("path",{d:"M12 16h.01"}),L.createElement("path",{d:"M16 16h.01"}))}var lt=["size","color","stroke"];function it(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,lt);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-bucket-off",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("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"}),L.createElement("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"}),L.createElement("path",{d:"M3 3l18 18"}))}var ct=["size","color","stroke"];function st(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,ct);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-bucket",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("ellipse",{cx:12,cy:7,rx:8,ry:4}),L.createElement("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"}))}var ut=["size","color","stroke"];function mt(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,ut);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-calendar",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("rect",{x:4,y:5,width:16,height:16,rx:2}),L.createElement("line",{x1:16,y1:3,x2:16,y2:7}),L.createElement("line",{x1:8,y1:3,x2:8,y2:7}),L.createElement("line",{x1:4,y1:11,x2:20,y2:11}),L.createElement("line",{x1:11,y1:15,x2:12,y2:15}),L.createElement("line",{x1:12,y1:15,x2:12,y2:18}))}var dt=["size","color","stroke"];function pt(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,dt);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-check",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("path",{d:"M5 12l5 5l10 -10"}))}var ht=["size","color","stroke"];function gt(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,ht);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-checkbox",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("polyline",{points:"9 11 12 14 20 6"}),L.createElement("path",{d:"M20 12v6a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h9"}))}var Et=["size","color","stroke"];function ft(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,Et);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-circle-minus",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("circle",{cx:12,cy:12,r:9}),L.createElement("line",{x1:9,y1:12,x2:15,y2:12}))}var vt=["size","color","stroke"];function yt(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,vt);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-circle-plus",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("circle",{cx:12,cy:12,r:9}),L.createElement("line",{x1:9,y1:12,x2:15,y2:12}),L.createElement("line",{x1:12,y1:9,x2:12,y2:15}))}var kt=["size","color","stroke"];function Ct(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,kt);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-cloud-upload",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("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"}),L.createElement("polyline",{points:"9 15 12 12 15 15"}),L.createElement("line",{x1:12,y1:12,x2:12,y2:21}))}var xt=["size","color","stroke"];function bt(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,xt);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-columns",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("line",{x1:4,y1:6,x2:9.5,y2:6}),L.createElement("line",{x1:4,y1:10,x2:9.5,y2:10}),L.createElement("line",{x1:4,y1:14,x2:9.5,y2:14}),L.createElement("line",{x1:4,y1:18,x2:9.5,y2:18}),L.createElement("line",{x1:14.5,y1:6,x2:20,y2:6}),L.createElement("line",{x1:14.5,y1:10,x2:20,y2:10}),L.createElement("line",{x1:14.5,y1:14,x2:20,y2:14}),L.createElement("line",{x1:14.5,y1:18,x2:20,y2:18}))}var wt=["size","color","stroke"];function Tt(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,wt);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-currency-dollar",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("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"}),L.createElement("path",{d:"M12 3v3m0 12v3"}))}var St=["size","color","stroke"];function zt(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,St);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-dots",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("circle",{cx:5,cy:12,r:1}),L.createElement("circle",{cx:12,cy:12,r:1}),L.createElement("circle",{cx:19,cy:12,r:1}))}var At=["size","color","stroke"];function Dt(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,At);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-edit",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("path",{d:"M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1"}),L.createElement("path",{d:"M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.415z"}),L.createElement("path",{d:"M16 5l3 3"}))}var Vt=["size","color","stroke"];function Nt(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,Vt);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-equal-not",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("path",{d:"M5 10h14"}),L.createElement("path",{d:"M5 14h14"}),L.createElement("path",{d:"M5 19l14 -14"}))}var It=["size","color","stroke"];function Mt(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,It);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-equal",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("path",{d:"M5 10h14"}),L.createElement("path",{d:"M5 14h14"}))}var Rt=["size","color","stroke"];function Lt(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,Rt);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-file-alert",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("path",{d:"M14 3v4a1 1 0 0 0 1 1h4"}),L.createElement("path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z"}),L.createElement("line",{x1:12,y1:17,x2:12.01,y2:17}),L.createElement("line",{x1:12,y1:11,x2:12,y2:14}))}var Pt=["size","color","stroke"];function Ot(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,Pt);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-file-plus",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("path",{d:"M14 3v4a1 1 0 0 0 1 1h4"}),L.createElement("path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z"}),L.createElement("line",{x1:12,y1:11,x2:12,y2:17}),L.createElement("line",{x1:9,y1:14,x2:15,y2:14}))}var Wt=["size","color","stroke"];function $t(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,Wt);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-filter",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("path",{d:"M5.5 5h13a1 1 0 0 1 .5 1.5l-5 5.5l0 7l-4 -3l0 -4l-5 -5.5a1 1 0 0 1 .5 -1.5"}))}var jt=["size","color","stroke"];function Ft(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,jt);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-list-details",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("path",{d:"M13 5h8"}),L.createElement("path",{d:"M13 9h5"}),L.createElement("path",{d:"M13 15h8"}),L.createElement("path",{d:"M13 19h5"}),L.createElement("rect",{x:3,y:4,width:6,height:6,rx:1}),L.createElement("rect",{x:3,y:14,width:6,height:6,rx:1}))}var Ut=["size","color","stroke"];function Ht(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,Ut);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-math-greater",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("path",{d:"M5 18l14 -6l-14 -6"}))}var Bt=["size","color","stroke"];function _t(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,Bt);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-math-lower",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("path",{d:"M19 18l-14 -6l14 -6"}))}var qt=["size","color","stroke"];function Kt(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,qt);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-message",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("path",{d:"M4 21v-13a3 3 0 0 1 3 -3h10a3 3 0 0 1 3 3v6a3 3 0 0 1 -3 3h-9l-4 4"}),L.createElement("line",{x1:8,y1:9,x2:16,y2:9}),L.createElement("line",{x1:8,y1:13,x2:14,y2:13}))}var Qt=["size","color","stroke"];function Gt(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,Qt);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-pin",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("path",{d:"M15 4.5l-4 4l-4 1.5l-1.5 1.5l7 7l1.5 -1.5l1.5 -4l4 -4"}),L.createElement("line",{x1:9,y1:15,x2:4.5,y2:19.5}),L.createElement("line",{x1:14.5,y1:4,x2:20,y2:9.5}))}var Jt=["size","color","stroke"];function Yt(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,Jt);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-pinned-off",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("line",{x1:3,y1:3,x2:21,y2:21}),L.createElement("path",{d:"M15 4.5l-3.249 3.249m-2.57 1.433l-2.181 .818l-1.5 1.5l7 7l1.5 -1.5l.82 -2.186m1.43 -2.563l3.25 -3.251"}),L.createElement("line",{x1:9,y1:15,x2:4.5,y2:19.5}),L.createElement("line",{x1:14.5,y1:4,x2:20,y2:9.5}))}var Xt=["size","color","stroke"];function Zt(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,Xt);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-settings",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("path",{d:"M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z"}),L.createElement("circle",{cx:12,cy:12,r:3}))}var en=["size","color","stroke"];function tn(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,en);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-sort-ascending",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("line",{x1:4,y1:6,x2:11,y2:6}),L.createElement("line",{x1:4,y1:12,x2:11,y2:12}),L.createElement("line",{x1:4,y1:18,x2:13,y2:18}),L.createElement("polyline",{points:"15 9 18 6 21 9"}),L.createElement("line",{x1:18,y1:6,x2:18,y2:18}))}var nn=["size","color","stroke"];function rn(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,nn);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-sort-descending",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("line",{x1:4,y1:6,x2:13,y2:6}),L.createElement("line",{x1:4,y1:12,x2:11,y2:12}),L.createElement("line",{x1:4,y1:18,x2:11,y2:18}),L.createElement("polyline",{points:"15 15 18 18 21 15"}),L.createElement("line",{x1:18,y1:6,x2:18,y2:18}))}var an=["size","color","stroke"];function on(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,an);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-square",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("rect",{x:4,y:4,width:16,height:16,rx:2}))}var ln=["size","color","stroke"];function cn(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,ln);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-table-export",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("path",{d:"M11.5 20h-5.5a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v7.5m-16 -3.5h16m-10 -6v16m4 -1h7m-3 -3l3 3l-3 3"}))}var sn=["size","color","stroke"];function un(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,sn);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-trash",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("line",{x1:4,y1:7,x2:20,y2:7}),L.createElement("line",{x1:10,y1:11,x2:10,y2:17}),L.createElement("line",{x1:14,y1:11,x2:14,y2:17}),L.createElement("path",{d:"M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12"}),L.createElement("path",{d:"M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3"}))}var mn=["size","color","stroke"];function dn(e){var t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"currentColor":r,o=e.stroke,l=void 0===o?2:o,i=Ke(e,mn);return L.createElement("svg",qe({xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-x",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},i),L.createElement("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),L.createElement("line",{x1:18,y1:6,x2:6,y2:18}),L.createElement("line",{x1:6,y1:6,x2:18,y2:18}))}function pn(e){const t=Le(),n=W(null);function r(n){if(!n)return;if(!n.name)return;e.onUploadStart&&e.onUploadStart();const r=n.name,a=n.type||"application/octet-stream";t.createBinary(n,r,a,e.onUploadProgress).then((t=>{e.onUpload({contentType:t.contentType,url:t.url,title:r})})).catch((e=>{alert(e?.issue?.[0]?.details?.text)}))}return P.createElement(P.Fragment,null,P.createElement("input",{type:"file","data-testid":"upload-file-input",style:{display:"none"},ref:n,onChange:e=>function(e){je(e);const t=e.target.files;t&&Array.from(t).forEach(r)}(e)}),e.children({onClick:function(e){je(e),n.current?.click()}}))}function hn(e){const[t,n]=O(e.defaultValue??[]),r=W();function a(t){n(t),e.onChange&&e.onChange(t)}return r.current=t,P.createElement("table",{style:{width:"100%"}},P.createElement("colgroup",null,P.createElement("col",{width:"97%"}),P.createElement("col",{width:"3%"})),P.createElement("tbody",null,t.map(((e,n)=>P.createElement("tr",{key:`${n}-${t.length}`},P.createElement("td",null,P.createElement(Be,{value:e,maxWidth:200})),P.createElement("td",null,P.createElement(Y,{title:"Remove",size:"sm",onClick:e=>{je(e);const r=t.slice();r.splice(n,1),a(r)}},P.createElement(ft,null)))))),P.createElement("tr",null,P.createElement("td",null),P.createElement("td",null,P.createElement(pn,{onUpload:e=>{a([...r.current,e])}},(e=>P.createElement(Y,{...e,title:"Add",size:"sm",color:"green"},P.createElement(Ct,{size:16}))))))))}function gn(e){const[t,n]=O(e.defaultValue);function r(t){n(t),e.onChange&&e.onChange(t)}return t?P.createElement(P.Fragment,null,P.createElement(Be,{value:t,maxWidth:200}),P.createElement(X,{onClick:e=>{je(e),r(void 0)}},"Remove")):P.createElement(pn,{onUpload:r},(e=>P.createElement(X,{...e},"Upload...")))}const En=Z((()=>({root:{"@media (max-width: 800px)":{paddingLeft:4,paddingRight:4}}})));function fn(e){const{children:t,...n}=e,{classes:r}=En();return P.createElement(ee,{className:r.root,...n},t)}const vn=Z(((e,{width:t,fill:n})=>({paper:{maxWidth:t,margin:`${e.spacing.xl}px auto`,padding:n?0:e.spacing.md,"@media (max-width: 800px)":{padding:n?0:8},"& img":{width:"100%",maxWidth:"100%"},"& video":{width:"100%",maxWidth:"100%"}}}))),yn={shadow:"xs",radius:"md",withBorder:!0};function kn(e){const{className:t,children:n,width:r,fill:a,unstyled:o,...l}=te("Panel",yn,e),{classes:i,cx:c}=vn({width:r,fill:a},{name:"Panel",unstyled:o});return P.createElement(ne,{className:c(i.paper,t),...l},n)}function Cn(e){const{children:t,...n}=e;return P.createElement(fn,null,P.createElement(kn,{...n},t))}function xn(e){const t={};for(const n of Array.from(e.elements))n instanceof HTMLInputElement?bn(t,n):n instanceof HTMLTextAreaElement?t[n.name]=n.value:n instanceof HTMLSelectElement&&wn(t,n);return t}function bn(e,t){t.disabled||("checkbox"!==t.type&&"radio"!==t.type||t.checked)&&(e[t.name]=t.value)}function wn(e,t){e[t.name]=t.value}function Tn(e){return P.createElement("form",{style:e.style,"data-testid":e.testid,onSubmit:t=>{t.preventDefault();const n=xn(t.target);e.onSubmit&&e.onSubmit(n)}},e.children)}function Sn(e){return P.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 491 491",style:{width:e.size,height:e.size}},P.createElement("title",null,"Medplum Logo"),P.createElement("path",{fill:e.fill||"#ad7136",d:"M282 67c6-16 16-29 29-40L289 0c-22 17-37 41-43 68l17 23 19-24z"}),P.createElement("path",{fill:e.fill||"#946af9",d:"M311 63c-17 0-33 4-48 11-16-7-32-11-49-11-87 0-158 96-158 214s71 214 158 214c17 0 33-4 49-11 15 7 31 11 48 11 87 0 158-96 158-214S398 63 311 63z"}),P.createElement("path",{fill:e.fill||"#7857c5",d:"M231 489l-17 2c-87 0-158-96-158-214S127 63 214 63l17 1c-39 12-70 102-70 213s31 201 70 212z"}),P.createElement("path",{fill:e.fill||"#40bc26",d:"M207 220a176 176 0 01-177 43A176 176 0 01251 43l1 5c17 59 2 125-45 172z"}),P.createElement("path",{fill:e.fill||"#33961e",d:"M252 48A421 421 0 0057 270l-27-7A176 176 0 01251 43l1 5z"}))}function zn(e,t){return e?.issue?.filter((e=>Dn(e.expression?.[0],t)))?.map((e=>e.details?.text))?.join("\n")}function An(e,t){return e?.issue?.filter((e=>Dn(e.expression?.[0],t)))}function Dn(e,t){if(e===t)return!0;if(!e||!t)return!1;const n=e.indexOf(".");if(n>=0&&e.substring(n+1)===t)return!0;const r=t.indexOf(".");return r>=0&&t.substring(r+1)===e}function Vn(e){const t=Le(),[n,r]=O();return P.createElement(Tn,{style:{maxWidth:400},onSubmit:async n=>{try{e.handleAuthResponse(await t.startNewProject({login:e.login,projectName:n.projectName}))}catch(e){r(e)}}},P.createElement(re,{sx:{flexDirection:"column"}},P.createElement(Sn,{size:32}),P.createElement(ae,null,"Create project")),P.createElement(oe,{spacing:"xl"},P.createElement(K,{name:"projectName",label:"Project Name",placeholder:"My Project",required:!0,autoFocus:!0,error:zn(n,"firstName")}),P.createElement(le,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",P.createElement(J,{href:"https://www.medplum.com/privacy"},"Privacy Policy")," and ",P.createElement(J,{href:"https://www.medplum.com/terms"},"Terms of Service"),".")),P.createElement(_,{position:"right",mt:"xl",noWrap:!0},P.createElement(X,{type:"submit"},"Create project")))}function Nn(e,t){const n=document.getElementsByTagName("head")[0],r=document.createElement("script");r.async=!0,r.src=e,r.onload=t||null,n.appendChild(r)}function In(e){const t=Le(),{googleClientId:n,handleGoogleCredential:r}=e,a=W(null),[o,l]=O("undefined"!=typeof google),[i,c]=O(!1),[s,u]=O(!1);return j((()=>{"undefined"!=typeof google?(i||(google.accounts.id.initialize({client_id:n,callback:r}),c(!0)),a.current&&!s&&(google.accounts.id.renderButton(a.current,{}),u(!0))):Nn("https://accounts.google.com/gsi/client",(()=>l(!0)))}),[t,n,i,o,a,s,r]),n?P.createElement("div",{ref:a}):null}function Mn(e){if(e)return e;if("undefined"!=typeof window){const e=window.location.protocol+"//"+window.location.host;if(("undefined"?.split(",")??[]).includes(e))return"undefined"}}function Rn(e){return e.issues?P.createElement(ie,{icon:P.createElement(Ye,{size:16}),color:"red"},e.issues.map((e=>P.createElement("div",{"data-testid":"text-field-error",key:e.details?.text},e.details?.text)))):null}function Ln(e){"undefined"==typeof grecaptcha&&Nn("https://www.google.com/recaptcha/api.js?render="+e)}function Pn(e){return new Promise(((t,n)=>{grecaptcha.ready((async()=>{try{t(await grecaptcha.execute(e,{action:"submit"}))}catch(e){n(e)}}))}))}function On(e){const t=Mn(e.googleClientId),n=e.recaptchaSiteKey,r=Le(),[a,o]=O(),l=An(a,void 0);return j((()=>Ln(n)),[n]),P.createElement(Tn,{style:{maxWidth:400},onSubmit:async t=>{try{const a=await Pn(n);e.handleAuthResponse(await r.startNewUser({projectId:e.projectId,firstName:t.firstName,lastName:t.lastName,email:t.email,password:t.password,remember:"true"===t.remember,recaptchaSiteKey:n,recaptchaToken:a}))}catch(e){o(e)}}},P.createElement(re,{sx:{flexDirection:"column"}},e.children),P.createElement(Rn,{issues:l}),t&&P.createElement(P.Fragment,null,P.createElement(_,{position:"center",p:"xl",style:{height:70}},P.createElement(In,{googleClientId:t,handleGoogleCredential:async t=>{try{e.handleAuthResponse(await r.startGoogleLogin({googleClientId:t.clientId,googleCredential:t.credential,createUser:!0}))}catch(e){o(e)}}})),P.createElement(ce,{label:"or",labelPosition:"center",my:"lg"})),P.createElement(oe,{spacing:"xl"},P.createElement(K,{name:"firstName",type:"text",label:"First name",placeholder:"First name",required:!0,autoFocus:!0,error:zn(a,"firstName")}),P.createElement(K,{name:"lastName",type:"text",label:"Last name",placeholder:"Last name",required:!0,error:zn(a,"lastName")}),P.createElement(K,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,error:zn(a,"email")}),P.createElement(se,{name:"password",label:"Password",autoComplete:"off",required:!0,error:zn(a,"password")}),P.createElement(le,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",P.createElement(J,{href:"https://www.medplum.com/privacy"},"Privacy Policy")," and ",P.createElement(J,{href:"https://www.medplum.com/terms"},"Terms of Service"),"."),P.createElement(le,{color:"dimmed",size:"xs"},"This site is protected by reCAPTCHA and the Google"," ",P.createElement(J,{href:"https://policies.google.com/privacy"},"Privacy Policy")," and ",P.createElement(J,{href:"https://policies.google.com/terms"},"Terms of Service")," apply.")),P.createElement(_,{position:"apart",mt:"xl",noWrap:!0},P.createElement(ue,{name:"remember",label:"Remember me",size:"xs"}),P.createElement(X,{type:"submit"},"Create account")))}function Wn(e){const{type:t,projectId:n,googleClientId:r,recaptchaSiteKey:a,onSuccess:o}=e,l=Le(),[i,c]=O(void 0),[s,u]=O();function m(e){e.code?l.processCode(e.code).then((()=>o())).catch(console.log):e.login&&c(e.login)}return j((()=>{"patient"===t&&i&&l.startNewPatient({login:i,projectId:n}).then((e=>l.processCode(e.code))).then((()=>o())).catch((e=>u(e)))}),[l,t,n,i,o]),P.createElement(Cn,{width:450},s&&P.createElement("pre",null,JSON.stringify(s,null,2)),!i&&P.createElement(On,{projectId:n,googleClientId:r,recaptchaSiteKey:a,handleAuthResponse:m},e.children),i&&"project"===t&&P.createElement(Vn,{login:i,handleAuthResponse:m}))}function $n(e){const[t,n]=O();return t?P.createElement(Fn,{email:t,...e}):P.createElement(jn,{setEmail:n,...e})}function jn(e){const{setEmail:t,onRegister:n,handleAuthResponse:r,children:a,...o}=e,l=Le(),i=Mn(e.googleClientId),c=U((async e=>{if(!e.authorizeUrl)return!1;const t=JSON.stringify({...await l.ensureCodeChallenge(o),domain:e.domain}),n=new URL(e.authorizeUrl);return n.searchParams.set("state",t),window.location.assign(n.toString()),!0}),[l,o]),s=U((async e=>{const n=await l.post("auth/method",{email:e.email});await c(n)||t(e.email)}),[l,c,t]),u=U((async e=>{const t=await l.startGoogleLogin({...o,googleCredential:e.credential});await c(t)||r(t)}),[l,o,c,r]);return P.createElement(Tn,{style:{maxWidth:400},onSubmit:s},P.createElement(re,{sx:{flexDirection:"column"}},a),i&&P.createElement(P.Fragment,null,P.createElement(_,{position:"center",p:"xl",style:{height:70}},P.createElement(In,{googleClientId:i,handleGoogleCredential:u})),P.createElement(ce,{label:"or",labelPosition:"center",my:"lg"})),P.createElement(K,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,autoFocus:!0}),P.createElement(_,{position:"apart",mt:"xl",spacing:0,noWrap:!0},n&&P.createElement(J,{component:"button",type:"button",color:"dimmed",onClick:n,size:"xs"},"Register"),P.createElement(X,{type:"submit"},"Next")))}function Fn(e){const{onForgotPassword:t,handleAuthResponse:n,children:r,...a}=e,o=Le(),[l,i]=O(),c=An(l,void 0),s=U((e=>{o.startLogin({...a,password:e.password,remember:"on"===e.remember}).then(n).catch(i)}),[o,a,n]);return P.createElement(Tn,{style:{maxWidth:400},onSubmit:s},P.createElement(re,{sx:{flexDirection:"column"}},r),P.createElement(Rn,{issues:c}),P.createElement(oe,{spacing:"xl"},P.createElement(se,{name:"password",type:"password",label:"Password",autoComplete:"off",required:!0,error:zn(l,"password")})),P.createElement(_,{position:"apart",mt:"xl",spacing:0,noWrap:!0},t&&P.createElement(J,{component:"button",type:"button",color:"dimmed",onClick:t,size:"xs"},"Forgot password"),P.createElement(ue,{id:"remember",name:"remember",label:"Remember me",size:"xs",sx:{lineHeight:1}}),P.createElement(X,{type:"submit"},"Sign in")))}function Un(e){const t=Le();return P.createElement(oe,null,P.createElement(re,{sx:{flexDirection:"column"}},P.createElement(Sn,{size:32}),P.createElement(ae,null,"Choose profile")),e.memberships.map((n=>P.createElement(me,{key:n.id,onClick:()=>{t.post("auth/profile",{login:e.login,profile:n.id}).then(e.handleAuthResponse).catch(console.log)}},P.createElement(_,null,P.createElement(de,{radius:"xl"}),P.createElement("div",{style:{flex:1}},P.createElement(le,{size:"sm",weight:500},n.profile?.display),P.createElement(le,{color:"dimmed",size:"xs"},n.project?.display)))))))}function Hn(e){const t=Le();return P.createElement(Tn,{style:{maxWidth:400},onSubmit:n=>{t.post("auth/scope",{login:e.login,scope:Object.keys(n).join(" ")}).then(e.handleAuthResponse).catch(console.log)}},P.createElement(oe,null,P.createElement(re,{sx:{flexDirection:"column"}},P.createElement(Sn,{size:32}),P.createElement(ae,null,"Choose scope")),P.createElement(oe,null,(e.scope||"openid").split(" ").map((e=>P.createElement(ue,{key:e,id:e,name:e,label:e,defaultChecked:!0})))),P.createElement(_,{position:"right",mt:"xl"},P.createElement(X,{type:"submit"},"Set scope"))))}function Bn(e){const t=Le(),[r,a]=O(void 0);return P.createElement(Tn,{style:{maxWidth:400},onSubmit:r=>{a(void 0),t.post("auth/mfa/verify",{login:e.login,token:r.token}).then(e.handleAuthResponse).catch((e=>a(n(e))))}},P.createElement(oe,null,P.createElement(re,{sx:{flexDirection:"column"}},P.createElement(Sn,{size:32}),P.createElement(ae,null,"Enter MFA code")),r&&P.createElement(ie,{icon:P.createElement(Ye,{size:16}),title:"Error",color:"red"},r),P.createElement(oe,null,P.createElement(K,{name:"token",label:"MFA code",required:!0})),P.createElement(_,{position:"right",mt:"xl"},P.createElement(X,{type:"submit"},"Submit code"))))}function _n(e){const{chooseScopes:t,onSuccess:n,onForgotPassword:r,onRegister:a,onCode:o,...l}=e,i=Le(),[c,s]=O(void 0),[u,m]=O(!1),[d,p]=O(void 0),h=U((e=>{o?o(e):i.processCode(e).then((()=>{n&&n()})).catch(console.log)}),[i,o,n]),g=U((e=>{m(!!e.mfaRequired),e.login&&s(e.login),e.memberships&&p(e.memberships),e.code&&(t?p(void 0):h(e.code))}),[t,h]),E=U((e=>{h(e.code)}),[h]);return j((()=>{e.login&&i.get("auth/login/"+e.login).then(g).catch(console.error)}),[i,e,g]),P.createElement(Cn,{width:450},c?u?P.createElement(Bn,{login:c,handleAuthResponse:g}):d?P.createElement(Un,{login:c,memberships:d,handleAuthResponse:g}):"new"===e.projectId?P.createElement(Vn,{login:c,handleAuthResponse:g}):e.chooseScopes?P.createElement(Hn,{login:c,scope:e.scope,handleAuthResponse:E}):P.createElement("div",null,"Success"):P.createElement($n,{onForgotPassword:r,onRegister:a,handleAuthResponse:g,...l},e.children))}const qn=["meta","implicitRules","language","text","contained","extension","modifierExtension"],Kn=Z((e=>({root:{display:"grid",gridTemplateColumns:"30% 70%",margin:0,"& > dt, & > dd":{padding:`${e.spacing.sm}px ${e.spacing.sm}px`,borderTop:`0.1px solid ${e.colors.gray[3]}`,margin:0}},compact:{gridTemplateColumns:"20% 80%","& > dt, & > dd":{padding:`0 ${e.spacing.xs}px ${e.spacing.xs}px 0`,border:0}}})));function Qn(e){const{children:t,compact:n}=e,{classes:r,cx:a}=Kn();return P.createElement("dl",{className:a(r.root,{[r.compact]:n})},t)}function Gn(e){return P.createElement(P.Fragment,null,P.createElement("dt",null,e.term),P.createElement("dd",null,e.children))}function Jn(e){return P.createElement(P.Fragment,null,r(e.value))}function Yn(e){return P.createElement(P.Fragment,null,a(e.value))}function Xn(e){const t=e.value;if(!t)return null;const n=[];return t.value&&n.push(t.value),(t.use||t.system)&&(n.push(" ["),t.use&&n.push(t.use),t.use&&t.system&&n.push(" "),t.system&&n.push(t.system),n.push("]")),P.createElement(P.Fragment,null,n.join("").trim())}function Zn(e){const t=e.value;return t?P.createElement(P.Fragment,null,t.name,t.name&&": ",t.telecom?.map(((e,t)=>P.createElement(Xn,{key:"telecom-"+t,value:e})))):null}function er(e){const t=e.value;return t?P.createElement(P.Fragment,null,o(t,e.options)):null}function tr(e){return P.createElement("div",null,e.value?.system,": ",e.value?.value)}function nr(e){return P.createElement(P.Fragment,null,l(e.value))}function rr(e){return P.createElement(P.Fragment,null,i(e.value))}function ar(e){return P.createElement(P.Fragment,null,c(e.value))}function or(e){const t=e.value;return t?P.createElement(P.Fragment,null,P.createElement(rr,{value:t.numerator})," / ",P.createElement(rr,{value:t.denominator})):null}function lr(e){const t=Pe(),{to:n,suffix:r,label:a,onClick:o,children:l,...i}=e;let c=function(e){if(e){if("string"==typeof e)return function(e){if(e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/"))return e;return"/"+e}(e);if("resourceType"in e)return function(e){return`/${e.resourceType}/${e.id}`}(e);if("reference"in e)return function(e){return`/${e.reference}`}(e)}return"#"}(n);return r&&(c+="/"+r),P.createElement(J,{href:c,"aria-label":a,onClick:e=>{je(e),o?o():n&&t(c)},...i},l)}function ir(e){if(!e.value)return null;const t=e.value.display||e.value.reference||s(e.value);return!1!==e.link&&e.value.reference?P.createElement(lr,{to:e.value},t):P.createElement(P.Fragment,null,t)}function cr(e){const t=e.property,n=e.values??[],r=t.type?.[0]?.code;return P.createElement(P.Fragment,null,n.map(((a,o)=>P.createElement("div",{key:`${o}-${n.length}`},P.createElement(sr,{arrayElement:!0,property:t,propertyType:r,value:a,ignoreMissingValues:e.ignoreMissingValues,link:e.link})))))}function sr(e){const{property:t,propertyType:n,value:r}=e;if("*"===t?.max&&!e.arrayElement)return"Attachment"===n?P.createElement(_e,{values:r,maxWidth:e.maxWidth}):P.createElement(cr,{property:t,values:r,ignoreMissingValues:e.ignoreMissingValues,link:e.link});switch(n){case m.boolean:return P.createElement(P.Fragment,null,void 0===r?"":Boolean(r).toString());case m.SystemString:case m.code:case m.date:case m.integer:case m.positiveInt:case m.string:case m.unsignedInt:case m.uri:case m.url:return P.createElement(P.Fragment,null,r);case m.canonical:return P.createElement(ir,{value:{reference:r},link:e.link});case m.dateTime:case m.instant:return P.createElement(P.Fragment,null,h(r));case m.markdown:return P.createElement("pre",null,r);case m.Address:return P.createElement(Ae,{value:r});case m.Annotation:return P.createElement(P.Fragment,null,r?.text);case m.Attachment:return P.createElement(Be,{value:r,maxWidth:e.maxWidth});case m.CodeableConcept:return P.createElement(Jn,{value:r});case m.Coding:return P.createElement(Yn,{value:r});case m.ContactDetail:return P.createElement(Zn,{value:r});case m.ContactPoint:return P.createElement(Xn,{value:r});case m.HumanName:return P.createElement(er,{value:r});case m.Identifier:return P.createElement(tr,{value:r});case m.Money:return P.createElement(nr,{value:r});case m.Period:return P.createElement(P.Fragment,null,p(r));case m.Quantity:case m.Duration:return P.createElement(rr,{value:r});case m.Range:return P.createElement(ar,{value:r});case m.Ratio:return P.createElement(or,{value:r});case m.Reference:return P.createElement(ir,{value:r,link:e.link});case m.Timing:return P.createElement(P.Fragment,null,d(r));case m.Dosage:case m.UsageContext:return P.createElement(mr,{value:{type:n,value:r},compact:!0,ignoreMissingValues:e.ignoreMissingValues});default:if(!t?.path)throw Error(`Displaying property of type ${e.propertyType} requires element definition path`);return P.createElement(mr,{value:{type:u(t),value:r},compact:!0,ignoreMissingValues:e.ignoreMissingValues})}}function ur(e,t){const n=g(e,t);return n?Array.isArray(n)?[n.map((e=>e.value)),n[0].type]:[n.value,n.type]:[void 0,"undefined"]}function mr(e){const t=e.value,n=t.value;if(!n)return null;const r=t.type,a=E.types[r];return a?"object"==typeof n&&"name"in n&&1===Object.keys(n).length&&"string"==typeof n.name?P.createElement("div",null,n.name):P.createElement(Qn,{compact:e.compact},Object.entries(a.properties).map((n=>{const a=n[0];if(qn.indexOf(a)>=0)return null;const o=n[1];o.path||(o.path=r+"."+a);const[l,i]=ur(t,a);return e.ignoreMissingValues&&(!l||Array.isArray(l)&&0===l.length)?null:P.createElement(Gn,{key:a,term:f(a)},P.createElement(sr,{property:o,propertyType:i,value:l,ignoreMissingValues:e.ignoreMissingValues,link:e.link}))}))):P.createElement("div",null,r," not implemented")}function dr(e){return P.createElement(_,{noWrap:!0},P.createElement("div",null,e.children),P.createElement("div",null,P.createElement(pe.Wrapper,{id:e.htmlFor,label:e.title,description:e.description},null)))}function pr(e){return P.createElement(pe.Wrapper,{id:e.htmlFor,label:e.title,description:e.description,error:zn(e.outcome,e.htmlFor)},e.children)}const hr={resourceType:"Device",id:"system",deviceName:[{name:"System"}]};function gr(e){const t=Le(),[n,r]=O(Er(t,e));return j((()=>{r(Er(t,e))}),[t,e]),j((()=>{let a=!0;return!n&&e&&"reference"in e&&e.reference&&t.readReference(e).then((e=>{a&&r(e)})).catch((()=>r(void 0))),()=>a=!1}),[t,n,e]),n}function Er(e,t){if(t)return"resourceType"in t?t:"reference"in t?"system"===t.reference?hr:e.getCachedReference(t):void 0}function fr(e){const t=Le(),n=gr(e.defaultValue),[r,a]=O(),[o,l]=O();return j((()=>{n&&(l(JSON.parse(JSON.stringify(n))),t.requestSchema(n.resourceType).then(a).catch(console.log))}),[t,n]),r&&o?P.createElement("form",{noValidate:!0,autoComplete:"off",onSubmit:t=>{t.preventDefault(),e.onSubmit&&e.onSubmit(o)}},P.createElement(oe,{mb:"xl"},P.createElement(pr,{title:"Resource Type",htmlFor:"resourceType",outcome:e.outcome},P.createElement(K,{name:"resourceType",defaultValue:o.resourceType,disabled:!0})),P.createElement(pr,{title:"ID",htmlFor:"id",outcome:e.outcome},P.createElement(K,{name:"id",defaultValue:o.id,disabled:!0}))),P.createElement(ea,{typeName:o.resourceType,defaultValue:o,outcome:e.outcome,onChange:l}),P.createElement(_,{position:"right",mt:"xl"},P.createElement(X,{type:"submit"},"OK"),e.onDelete&&P.createElement(X,{variant:"outline",color:"red",type:"button",onClick:()=>{e.onDelete(o)}},"Delete"))):P.createElement("div",null,"Loading...")}function vr(e,t,n,r,a){const o=r.type;if(o.length>1)for(const n of o){const r=t.replace("[x]",v(n.code));r in e&&delete e[r]}return e[n]=a,e}function yr(e){return e.code}function kr(e){return{value:e.code,label:(t=e,t.display||t.code||""),resource:e};var t}function Cr(e){return{code:e,display:e}}function xr(e){const t=Le(),{elementDefinition:n,...r}=e,a=U((async(e,r)=>{const a=n.binding?.valueSet,o=(await t.searchValueSet(a,e,{signal:r})).expansion?.contains,l=[];for(const e of o)e.code&&!l.some((t=>t.code===e.code))&&l.push(e);return l}),[t,n]);return P.createElement(He,{...r,creatable:!0,clearable:!0,toKey:yr,toOption:kr,loadOptions:a,getCreateLabel:e=>`+ Create ${e}`,onCreate:Cr})}function br(e){const[t,n]=O(e.defaultValue);return P.createElement(xr,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:t&&(r=t,r.coding?.map((e=>({system:e.system,code:e.code,display:e.display})))),onChange:function(t){const r=function(e){if(0===e.length)return;return{coding:e.map((e=>({system:e.system,code:e.code,display:e.display})))}}(t);n(r),e.onChange&&e.onChange(r)}});var r}function wr(e){const[t,n]=O(e.defaultValue);return P.createElement(xr,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:(r=t,r?{code:r}:void 0),onChange:function(t){const r=t[0]?.code;n(r),e.onChange&&e.onChange(r)}});var r}function Tr(e){const[t,n]=O(e.defaultValue);return P.createElement(xr,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:t&&(r=t,{system:r.system,code:r.code,display:r.display}),onChange:function(t){const r=t[0],a=r&&{system:(o=r).system,code:o.code,display:o.display};var o;n(a),e.onChange&&e.onChange(a)}});var r}function Sr(e){const[t,n]=O(e.defaultValue),r=W();function a(t){t&&0===Object.keys(t).length&&(t=void 0),n(t),e.onChange&&e.onChange(t)}return r.current=t,P.createElement(_,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(q,{"data-testid":"system",defaultValue:t?.system,onChange:e=>function(e){const t={...r.current,system:e};e||delete t.system,a(t)}(e.currentTarget.value),data:["","email","phone","fax","pager","sms","other"]}),P.createElement(q,{"data-testid":"use",defaultValue:t?.use,onChange:e=>function(e){const t={...r.current,use:e};e||delete t.use,a(t)}(e.currentTarget.value),data:["","home","work","temp","old","mobile"]}),P.createElement(K,{placeholder:"Value",defaultValue:t?.value,onChange:e=>function(e){const t={...r.current,value:e};e||delete t.value,a(t)}(e.currentTarget.value)}))}function zr(e){const[t,n]=O(e.defaultValue),r=W();function a(t){n(t),e.onChange&&e.onChange(t)}return r.current=t,P.createElement(_,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(K,{"data-testid":e.name+"-name",name:e.name+"-name",placeholder:"Name",style:{width:180},defaultValue:t?.name,onChange:e=>function(e){const t={...r.current,name:e};e||delete t.name,a(t)}(e.currentTarget.value)}),P.createElement(Sr,{name:e.name+"-telecom",defaultValue:t?.telecom?.[0],onChange:function(e){const t={...r.current,telecom:e&&[e]};e||delete t.telecom,a(t)}}))}function Ar(e){return P.createElement(K,{id:e.name,name:e.name,"data-testid":e.name,placeholder:e.placeholder,type:"datetime-local",defaultValue:Dr(e.defaultValue),error:zn(e.outcome,e.name),onChange:t=>{if(e.onChange){const n=t.currentTarget.value;e.onChange(Vr(n))}}})}function Dr(e){if(!e)return"";const t=new Date(e);return y(t)?t.toLocaleDateString("sv")+"T"+t.toLocaleTimeString("sv"):""}function Vr(e){if(!e)return"";const t=new Date(e);return y(t)?t.toISOString():""}function Nr(e){return P.createElement(he,{id:e.name,name:e.name,"data-testid":"extension-input",defaultValue:s(e.defaultValue),onChange:t=>{e.onChange&&e.onChange(JSON.parse(t))}})}function Ir(e){const[t,n]=O(e.defaultValue),r=W();function a(t){n(t),e.onChange&&e.onChange(t)}return r.current=t,P.createElement(_,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(q,{defaultValue:t?.use,"data-testid":"use",onChange:e=>{return t=e.currentTarget.value,void a({...r.current,use:t||void 0});var t},data:["","temp","old","usual","official","nickname","anonymous","maiden"]}),P.createElement(K,{placeholder:"Prefix",defaultValue:t?.prefix?.join(" "),onChange:e=>{return t=e.currentTarget.value,void a({...r.current,prefix:t?t.split(" "):void 0});var t}}),P.createElement(K,{placeholder:"Given",defaultValue:t?.given?.join(" "),onChange:e=>{return t=e.currentTarget.value,void a({...r.current,given:t?t.split(" "):void 0});var t}}),P.createElement(K,{placeholder:"Family",defaultValue:t?.family,onChange:e=>{return t=e.currentTarget.value,void a({...r.current,family:t||void 0});var t}}),P.createElement(K,{placeholder:"Suffix",defaultValue:t?.suffix?.join(" "),onChange:e=>{return t=e.currentTarget.value,void a({...r.current,suffix:t?t.split(" "):void 0});var t}}))}function Mr(e){const[t,n]=O(e.defaultValue);function r(t){n(t),e.onChange&&e.onChange(t)}return P.createElement(_,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(K,{placeholder:"System",defaultValue:t?.system,onChange:e=>r({...t,system:e.currentTarget.value})}),P.createElement(K,{placeholder:"Value",defaultValue:t?.value,onChange:e=>r({...t,value:e.currentTarget.value})}))}const Rr=["USD","EUR","CAD","GBP","AUD"];function Lr(e){const{onChange:t}=e,[n,r]=O(e.defaultValue),a=U((e=>{r(e),t&&t(e)}),[t]),o=U((e=>{a({...n,currency:e.currentTarget.value})}),[n,a]),l=U((e=>{a({...n,value:e.currentTarget.valueAsNumber})}),[n,a]),i=P.createElement(q,{defaultValue:n?.currency,data:Rr,styles:{input:{fontWeight:500,borderTopLeftRadius:0,borderBottomLeftRadius:0,width:92}},onChange:o});return P.createElement(K,{type:"number",label:e.label,placeholder:e.placeholder||"Value",defaultValue:n?.value?.toString()||"USD",icon:P.createElement(Tt,{size:14}),rightSection:i,rightSectionWidth:92,onChange:l})}function Pr(e){const[t,n]=O(e.defaultValue);function r(t){n(t),e.onChange&&e.onChange(t)}return P.createElement(_,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(Ar,{name:e.name+".start",placeholder:"Start",defaultValue:t?.start,onChange:e=>r({...t,start:e})}),P.createElement(Ar,{name:e.name+".end",placeholder:"End",defaultValue:t?.end,onChange:e=>r({...t,end:e})}))}function Or(e){const[t,n]=O(e.defaultValue);function r(t){n(t),e.onChange&&e.onChange(t)}return P.createElement(_,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(q,{style:{width:80},"data-testid":e.name+"-comparator",defaultValue:t?.comparator,data:["","<","<=",">=",">"],onChange:e=>r({...t,comparator:e.currentTarget.value})}),P.createElement(K,{id:e.name,name:e.name,"data-testid":e.name+"-value",type:"number",placeholder:"Value",defaultValue:t?.value,step:"any",onWheel:t=>{e.disableWheel&&t.currentTarget.blur()},onChange:e=>{r({...t,value:Wr(e.currentTarget.value)})}}),P.createElement(K,{placeholder:"Unit","data-testid":e.name+"-unit",defaultValue:t?.unit,onChange:e=>r({...t,unit:e.currentTarget.value})}))}function Wr(e){if(e)return parseFloat(e)}function $r(e){const[t,n]=O(e.defaultValue);function r(t){n(t),e.onChange&&e.onChange(t)}return P.createElement(_,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(Or,{name:e.name+"-low",defaultValue:t?.low,onChange:e=>r({...t,low:e})}),P.createElement(Or,{name:e.name+"-high",defaultValue:t?.high,onChange:e=>r({...t,high:e})}))}function jr(e){const[t,n]=O(e.defaultValue);function r(t){n(t),e.onChange&&e.onChange(t)}return P.createElement(_,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(Or,{name:e.name+"-numerator",defaultValue:t?.numerator,onChange:e=>r({...t,numerator:e})}),P.createElement(Or,{name:e.name+"-denominator",defaultValue:t?.denominator,onChange:e=>r({...t,denominator:e})}))}function Fr(e){const t=gr(e.value),n=t?k(t):e.alt??"",r=(t&&C(t))??e.src,a=e.radius??"xl",o={...e};return delete o.value,delete o.link,e.link?P.createElement(lr,{to:t},P.createElement(de,{src:r,alt:n,radius:a,...o})):P.createElement(de,{src:r,alt:n,radius:a,...o})}const Ur={Schedule:"_id",Task:"_id",Patient:"name",Practitioner:"name",Questionnaire:"name",ServiceRequest:"_id",DiagnosticReport:"_id",Specimen:"_id",Observation:"code",RequestGroup:"_id",ActivityDefinition:"name",User:"email:contains"};function Hr(e){const t=Le(),n=gr(e.defaultValue),[r,a]=O(n?k(n):""),[o,l]=O(!1),[i,c]=O([]);async function s(n){l(!0);const r=Ur[e.resourceType]||"name",a=new URLSearchParams({[r]:n,_count:"10"}),o=await t.searchResources(e.resourceType,a);c(o.map((e=>({value:k(e),resource:e})))),l(!1)}return j((()=>{n&&a(k(n))}),[n,a]),P.createElement(ge,{itemComponent:Br,value:r,data:i,placeholder:e.placeholder,onFocus:()=>s(r),onChange:async function(e){return a(e),s(e)},onItemSubmit:function(t){a(t.value),c([]),e.onChange&&e.onChange(t.resource)},rightSection:o?P.createElement(G,{size:16}):null})}const Br=H((({value:e,resource:t,...n},r)=>P.createElement("div",{ref:r,...n},P.createElement(_,{noWrap:!0},P.createElement(Fr,{value:t}),P.createElement("div",null,P.createElement(le,null,e),P.createElement(le,{size:"xs",color:"dimmed"},t.birthDate))))));function _r(e){const n=function(e){if(!e||0===e.length||1===e.length&&"Resource"===e[0])return;return e}(e.targetTypes),r=function(e,t){const n=e?.reference?.split("/")[0];if(n)return n;if(t&&t.length>0)return t[0];return}(e.defaultValue,n),[a,o]=O(e.defaultValue),[l,i]=O(r);W().current=a;return W().current=l,P.createElement(_,{spacing:"xs",grow:!0,noWrap:!0},n?P.createElement(q,{"data-testid":"reference-input-resource-type-select",defaultValue:l,onChange:e=>i(e.currentTarget.value),data:n}):P.createElement(K,{"data-testid":"reference-input-resource-type-input",defaultValue:l,onChange:e=>i(e.currentTarget.value)}),P.createElement(Hr,{resourceType:l,name:e.name+"-id",placeholder:e.placeholder,defaultValue:a,onChange:n=>{var r;r=n?t(n):void 0,o(r),e.onChange&&e.onChange(r)}}))}function qr(e){const[t,n]=O(e.defaultValue&&Array.isArray(e.defaultValue)?e.defaultValue:[]),r=W();function a(t){n(t),e.onChange&&e.onChange(t)}return r.current=t,P.createElement("table",{style:{width:"100%",borderCollapse:"collapse"}},P.createElement("colgroup",null,P.createElement("col",{width:"97%"}),P.createElement("col",{width:"3%"})),P.createElement("tbody",null,t.map(((n,o)=>P.createElement("tr",{key:`${o}-${t.length}`},P.createElement("td",null,P.createElement(Jr,{arrayElement:!0,property:e.property,name:e.name+"."+o,defaultValue:n,onChange:e=>{const t=[...r.current];t[o]=e,a(t)}})),P.createElement("td",{style:{textAlign:"right"}},P.createElement(Y,{title:"Remove",size:"sm",onClick:e=>{je(e);const t=[...r.current];t.splice(o,1),a(t)}},P.createElement(ft,null)))))),P.createElement("tr",null,P.createElement("td",null),P.createElement("td",{style:{textAlign:"right"}},P.createElement(Y,{title:"Add",size:"sm",color:"green",onClick:e=>{je(e);const t=[...r.current];t.push(void 0),a(t)}},P.createElement(yt,null))))))}const Kr=["sun","mon","tue","wed","thu","fri","sat"];function Qr(e){const[t,n]=O(e.defaultValue||{}),[r,a]=O(!1),o=W();return o.current=t,P.createElement(P.Fragment,null,P.createElement(_,{spacing:"xs",grow:!0,noWrap:!0},P.createElement("span",null,d(o.current)||"No repeat"),P.createElement(X,{onClick:()=>a(!0)},"Edit")),P.createElement(Gr,{visible:r,defaultValue:o.current,onOk:t=>{e.onChange&&e.onChange(t),n(t),a(!1)},onCancel:()=>a(!1)}))}function Gr(e){const[t,n]=O(e.defaultValue||{}),r=W();function a(e){n({...r.current,repeat:e})}function o(e,t){t?function(e){const t=r.current?.repeat?.dayOfWeek||[];t.includes(e)||a({...r.current?.repeat,dayOfWeek:[...t,e]})}(e):function(e){const t=r.current?.repeat?.dayOfWeek||[];t.includes(e)&&a({...r.current?.repeat,dayOfWeek:t.filter((t=>t!==e))})}(e)}return r.current=t,P.createElement(Ee,{title:"Timing",closeButtonLabel:"Close",opened:e.visible,onClose:()=>e.onCancel()},P.createElement("div",{style:{padding:"5px 20px",textAlign:"left"}},P.createElement(pr,{title:"Starts on",htmlFor:"timing-dialog-start"},P.createElement(Ar,{name:"timing-dialog-start",onChange:e=>{return t=e,void n({...r.current,event:[t]});var t}})),P.createElement(pr,{title:"Repeat every",htmlFor:"timing-dialog-period"},P.createElement(_,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(K,{type:"number",step:1,id:"timing-dialog-period",name:"timing-dialog-period",defaultValue:t?.repeat?.period,onChange:e=>{return t=parseInt(e.currentTarget.value),void a({...r.current?.repeat,period:t});var t}}),P.createElement(q,{id:"timing-dialog-periodUnit",name:"timing-dialog-periodUnit",defaultValue:t?.repeat?.periodUnit,onChange:e=>{return t=e.currentTarget.value,void a({...r.current?.repeat,periodUnit:t});var t},data:[{label:"day",value:"d"},{label:"week",value:"wk"},{label:"month",value:"mo"},{label:"year",value:"a"}]}))),P.createElement(pr,{title:"Repeat on"},P.createElement(_,{spacing:"xs",grow:!0,noWrap:!0},Kr.map((e=>P.createElement(P.Fragment,{key:e},P.createElement("label",{htmlFor:"timing-dialog-repeat-"+e},e.charAt(0).toUpperCase()),P.createElement(ue,{id:"timing-dialog-repeat-"+e,name:"timing-dialog-repeat-"+e,onChange:t=>o(e,t.currentTarget.checked)}))))))),P.createElement(X,{onClick:()=>e.onOk(t)},"OK"))}function Jr(e){const t=e.property,n=e.defaultPropertyType??t.type?.[0]?.code,r=e.name,a=e.defaultValue;if("*"===t.max&&!e.arrayElement)return"Attachment"===n?P.createElement(hn,{name:r,defaultValue:a,onChange:e.onChange}):P.createElement(qr,{property:t,name:r,defaultValue:a,onChange:e.onChange});const o=t.type;return o.length>1?P.createElement(Yr,{elementDefinitionTypes:o,...e}):P.createElement(Xr,{elementDefinitionType:o[0],...e})}function Yr(e){const t=e.elementDefinitionTypes;let n;e.defaultPropertyType&&(n=t.find((t=>t.code===e.defaultPropertyType))),n||(n=t[0]);const[r,a]=O(n);return P.createElement(_,{spacing:"xs",grow:!0,noWrap:!0},P.createElement(q,{style:{width:"200px"},defaultValue:r?.code,onChange:e=>{a(t.find((t=>t.code===e.currentTarget.value)))},data:t.map((e=>({value:e.code,label:e.code})))}),P.createElement(Xr,{...e,elementDefinitionType:r,onChange:t=>{e.onChange&&e.onChange(t,e.name.replace("[x]",v(r.code)))}}))}function Xr(e){const t=e.property,n=e.elementDefinitionType.code,r=e.name,a=e.defaultValue;switch(n){case m.SystemString:case m.canonical:case m.string:case m.time:case m.uri:case m.url:return P.createElement(K,{id:r,name:r,"data-testid":r,defaultValue:a,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.value)},error:zn(e.outcome,r)});case m.date:return P.createElement(K,{type:"date",id:r,name:r,"data-testid":r,defaultValue:a,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.value)},error:zn(e.outcome,r)});case m.dateTime:case m.instant:return P.createElement(Ar,{name:r,defaultValue:a,onChange:e.onChange,outcome:e.outcome});case m.decimal:case m.integer:case m.positiveInt:case m.unsignedInt:return P.createElement(K,{type:"number",step:n===m.decimal?"any":"1",id:r,name:r,"data-testid":r,defaultValue:a,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.valueAsNumber)}});case m.code:return P.createElement(wr,{property:t,name:r,defaultValue:a,onChange:e.onChange});case m.boolean:return P.createElement(ue,{id:r,name:r,"data-testid":r,defaultChecked:!!a,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.checked)}});case m.markdown:return P.createElement(fe,{id:r,name:r,"data-testid":r,defaultValue:a,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.value)}});case m.Address:return P.createElement(Ne,{name:r,defaultValue:a,onChange:e.onChange});case m.Annotation:return P.createElement($e,{name:r,defaultValue:a,onChange:e.onChange});case m.Attachment:return P.createElement(gn,{name:r,defaultValue:a,onChange:e.onChange});case m.CodeableConcept:return P.createElement(br,{property:t,name:r,defaultValue:a,onChange:e.onChange});case m.Coding:return P.createElement(Tr,{property:t,name:r,defaultValue:a,onChange:e.onChange});case m.ContactDetail:return P.createElement(zr,{name:r,defaultValue:a,onChange:e.onChange});case m.ContactPoint:return P.createElement(Sr,{name:r,defaultValue:a,onChange:e.onChange});case m.Extension:return P.createElement(Nr,{name:r,defaultValue:a,onChange:e.onChange});case m.HumanName:return P.createElement(Ir,{name:r,defaultValue:a,onChange:e.onChange});case m.Identifier:return P.createElement(Mr,{name:r,defaultValue:a,onChange:e.onChange});case m.Money:return P.createElement(Lr,{name:r,defaultValue:a,onChange:e.onChange});case m.Period:return P.createElement(Pr,{name:r,defaultValue:a,onChange:e.onChange});case m.Duration:case m.Quantity:return P.createElement(Or,{name:r,defaultValue:a,onChange:e.onChange});case m.Range:return P.createElement($r,{name:r,defaultValue:a,onChange:e.onChange});case m.Ratio:return P.createElement(jr,{name:r,defaultValue:a,onChange:e.onChange});case m.Reference:return P.createElement(_r,{name:r,defaultValue:a,targetTypes:Zr(t),onChange:e.onChange});case m.Timing:return P.createElement(Qr,{name:r,defaultValue:a,onChange:e.onChange});case m.Dosage:case m.UsageContext:return P.createElement(ea,{typeName:n,defaultValue:a,onChange:e.onChange,outcome:e.outcome});default:return P.createElement(ea,{typeName:u(t),defaultValue:a,onChange:e.onChange,outcome:e.outcome})}}function Zr(e){return e?.type?.[0]?.targetProfile?.map((e=>e.split("/").pop()))}function ea(e){const[t,n]=O(e.defaultValue??{});function r(t){n(t),e.onChange&&e.onChange(t)}const a=e.typeName,o=E.types[a];if(!o)return P.createElement("div",null,a," not implemented");const l={type:a,value:t};return P.createElement(oe,null,Object.entries(o.properties).map((n=>{const a=n[0];if("id"===a||qn.indexOf(a)>=0)return null;const o=n[1];if(!o.type)return null;const[i,c]=ur(l,a);return 1===o.type.length&&"boolean"===o.type[0].code?P.createElement(dr,{key:a,title:f(a),description:o.definition,htmlFor:a},P.createElement(Jr,{property:o,name:a,defaultValue:i,defaultPropertyType:c,outcome:e.outcome,onChange:(e,o)=>{r(vr(t,a,o??a,n[1],e))}})):P.createElement(pr,{key:a,title:f(a),description:o.definition,htmlFor:a,outcome:e.outcome},P.createElement(Jr,{property:o,name:a,defaultValue:i,defaultPropertyType:c,outcome:e.outcome,onChange:(e,o)=>{r(vr(t,a,o??a,n[1],e))}}))})))}const ta=Z((e=>({table:{width:350,"& th":{fontWeight:"normal",fontSize:11,padding:8,textAlign:"center"},"& td":{padding:"2px 4px"},"& td button":{width:44,height:44,color:e.colors[e.primaryColor][5],fontSize:16,fontWeight:500,textAlign:"center",padding:0,backgroundColor:e.colors[e.primaryColor][0],border:0,borderRadius:"50%",cursor:"pointer"},"& td button:hover":{backgroundColor:e.colors[e.primaryColor][1]},"& td button:disabled":{backgroundColor:"transparent",cursor:"default",color:e.colors.gray[4],fontWeight:"normal"}}})));function na(e){return e.toLocaleString("default",{month:"long"})+" "+e.getFullYear()}function ra(e){const{classes:t}=ta(),{onChangeMonth:n,onClick:r}=e,[a,o]=O(aa);function l(e){o((t=>{const r=new Date(t.getTime());return r.setMonth(t.getMonth()+e),n(r),r}))}const i=B((()=>function(e,t){const n=new Date(e.getFullYear(),e.getMonth()),r=[];let a=[];for(let e=0;e<n.getDay();e++)a.push(void 0);for(;n.getMonth()===e.getMonth();)a.push({date:new Date(n.getTime()),available:oa(n,t)}),6===n.getDay()&&(r.push(a),a=[]),n.setDate(n.getDate()+1);if(0!==n.getDay()){for(let e=n.getDay();e<7;e++)a.push(void 0);r.push(a)}return r}(a,e.slots)),[a,e.slots]);return P.createElement("div",null,P.createElement(_,{position:"apart",spacing:"xs",grow:!0,noWrap:!0},P.createElement("p",{style:{flex:1}},na(a)),P.createElement(_,{position:"right",spacing:"xs"},P.createElement(X,{variant:"outline","aria-label":"Previous month",onClick:()=>l(-1)},"<"),P.createElement(X,{variant:"outline","aria-label":"Next month",onClick:()=>l(1)},">"))),P.createElement("table",{className:t.table},P.createElement("thead",null,P.createElement("tr",null,P.createElement("th",null,"SUN"),P.createElement("th",null,"MON"),P.createElement("th",null,"TUE"),P.createElement("th",null,"WED"),P.createElement("th",null,"THU"),P.createElement("th",null,"FRI"),P.createElement("th",null,"SAT"))),P.createElement("tbody",null,i.map(((e,t)=>P.createElement("tr",{key:"week-"+t},e.map(((e,t)=>P.createElement("td",{key:"day-"+t},e&&P.createElement(X,{disabled:!e.available,onClick:()=>r(e.date)},e.date.getDate()))))))))))}function aa(){const e=new Date;return e.setDate(1),e.setHours(0,0,0,0),e}function oa(e,t){for(const n of t){const t=new Date(n.start);if(t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth()&&t.getDate()===e.getDate())return!0}return!1}const la=Z((e=>({noteBody:{fontSize:e.fontSizes.sm},noteCite:{fontSize:e.fontSizes.xs,marginBlockStart:3},noteRoot:{padding:5}})));function ia({value:e}){const{classes:t}=la();return e?P.createElement(oe,{justify:"flex-start",spacing:"xs"},e.map(((e,n)=>e.text&&P.createElement(ve,{key:`note-${n}`,classNames:{cite:t.noteCite,body:t.noteBody,root:t.noteRoot},cite:e.authorReference?.display||e.authorString,icon:null},e.text)))):null}function ca(e){const{value:t,link:n,...r}=e,a=gr(t);if(!a)return null;const o=k(a);return n?P.createElement(lr,{to:a,...r},o):P.createElement(le,{component:"span",...r},o)}function sa(e){return P.createElement(_,{spacing:"xs"},P.createElement(Fr,{size:24,radius:12,value:e.value,link:e.link}),P.createElement(ca,{value:e.value,link:e.link}))}const ua={draft:"blue",active:"blue","on-hold":"yellow",revoked:"red",completed:"green","entered-in-error":"red",unknown:"gray",retired:"gray",registered:"blue",preliminary:"blue",final:"green",amended:"yellow",corrected:"yellow",cancelled:"red",requested:"blue",received:"blue",accepted:"blue",rejected:"red",ready:"blue","in-progress":"blue",failed:"red",proposed:"blue",pending:"blue",booked:"blue",arrived:"blue",fulfilled:"green",noshow:"red","checked-in":"blue",waitlist:"gray",routine:"gray",urgent:"red",asap:"red",stat:"red"};function ma(e){return P.createElement(ye,{color:ua[e.status]},e.status)}const da=Z((e=>({table:{border:`0.1px solid ${e.colors.gray[5]}`,borderCollapse:"collapse","& td, & th":{border:`0.1px solid ${e.colors.gray[5]}`,padding:4}},criticalRow:{background:"dark"===e.colorScheme?e.colors.red[7]:e.colors.red[1],border:`0.1px solid ${e.colors.red[5]}`,color:e.colors.red[5],fontWeight:500,"& td":{border:`0.1px solid ${e.colors.red[5]}`}},noteBody:{fontSize:e.fontSizes.sm},noteCite:{fontSize:e.fontSizes.xs,marginBlockStart:3},noteRoot:{padding:5}})));function pa(e){const t=gr(e.value),n=gr(t?.specimen?.[0]);if(!t)return null;const r=n?.note||[];if(t.presentedForm&&t.presentedForm.length>0){const e=t.presentedForm[0];e.contentType?.startsWith("text/plain")&&e.data&&r.push({text:window.atob(e.data)})}return P.createElement(oe,null,P.createElement(ae,null,"Diagnostic Report"),P.createElement(_,{mt:"md",spacing:30},t.subject&&P.createElement("div",null,P.createElement(le,{size:"xs",transform:"uppercase",color:"dimmed"},"Subject"),P.createElement(le,null,P.createElement(sa,{value:t.subject,link:!0}))),t.resultsInterpreter&&t.resultsInterpreter.map((e=>P.createElement("div",{key:e.reference},P.createElement(le,{size:"xs",transform:"uppercase",color:"dimmed"},"Interpreter"),P.createElement(le,null,P.createElement(sa,{value:e,link:!0}))))),t.issued&&P.createElement("div",null,P.createElement(le,{size:"xs",transform:"uppercase",color:"dimmed"},"Issued"),P.createElement(le,null,h(t.issued))),t.status&&P.createElement("div",null,P.createElement(le,{size:"xs",transform:"uppercase",color:"dimmed"},"Status"),P.createElement(le,null,v(t.status)))),t.result&&P.createElement(ha,{hideObservationNotes:e.hideObservationNotes,value:t.result}),r.length>0&&P.createElement(ia,{value:r}))}function ha(e){const{classes:t}=da();return P.createElement("table",{className:t.table},P.createElement("thead",null,P.createElement("tr",null,P.createElement("th",null,"Test"),P.createElement("th",null,"Value"),P.createElement("th",null,"Reference Range"),P.createElement("th",null,"Interpretation"),P.createElement("th",null,"Category"),P.createElement("th",null,"Status"))),P.createElement("tbody",null,e.value?.map(((t,n)=>P.createElement(ga,{key:`obs-${n}-${t.id}`,hideObservationNotes:e.hideObservationNotes,value:t})))))}function ga(e){const{classes:t,cx:n}=da(),r=gr(e.value);if(!r)return null;const a=!e.hideObservationNotes&&r?.note,o=function(e){const t=e.interpretation?.[0]?.coding?.[0]?.code;return"AA"===t||"LL"===t||"HH"===t||"A"===t}(r);return P.createElement(P.Fragment,null,P.createElement("tr",{className:n({[t.criticalRow]:o})},P.createElement("td",{rowSpan:a?2:1},P.createElement(lr,{to:r},P.createElement(Jn,{value:r.code}))),P.createElement("td",null,P.createElement(Ea,{value:r})),P.createElement("td",null,P.createElement(fa,{value:r.referenceRange})),P.createElement("td",null,r.interpretation&&r.interpretation.length>0&&P.createElement(Jn,{value:r.interpretation[0]})),P.createElement("td",null,r.category&&r.category.length>0&&P.createElement("ul",null,r.category.map(((e,t)=>P.createElement("li",{key:`category-${t}`},P.createElement(Jn,{value:e})))))),P.createElement("td",null,r.status&&P.createElement(ma,{status:r.status}))),a&&P.createElement("tr",null,P.createElement("td",{colSpan:5},P.createElement(ia,{value:r.note}))))}function Ea(e){const t=e.value;return P.createElement(P.Fragment,null,x(t))}function fa(e){const t=e.value&&e.value.length>0&&e.value[0];return t?t.text?P.createElement(P.Fragment,null,t.text):P.createElement(ar,{value:t}):null}const va=Z((e=>({root:{borderCollapse:"collapse",width:"100%","& tr":{borderTop:`0.1px solid ${e.colors.gray[3]}`},"& th, & td":{padding:`${e.spacing.sm}px ${e.spacing.sm}px`,verticalAlign:"top"}},removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}})));function ya(e){const{classes:t}=va(),n=Le(),[r,a]=O();if(j((()=>{n.requestSchema(e.original.resourceType).then(a).catch(console.log)}),[n,e.original.resourceType]),!r)return null;const o=r.types[e.original.resourceType];return o?P.createElement("table",{className:t.root},P.createElement("colgroup",null,P.createElement("col",{style:{width:"30%"}}),P.createElement("col",{style:{width:"35%"}}),P.createElement("col",{style:{width:"35%"}})),P.createElement("thead",null,P.createElement("tr",null,P.createElement("th",null,"Property"),P.createElement("th",null,"Before"),P.createElement("th",null,"After"))),P.createElement("tbody",null,Object.entries(o.properties).map((n=>{const r=n[0];if("id"===r||"meta"===r)return null;const a=n[1],[o,l]=ur(b(e.original),r),[i,c]=ur(b(e.revised),r);return ka(o)&&ka(i)||s(o)===s(i)?null:P.createElement("tr",{key:r},P.createElement("td",null,f(r)),P.createElement("td",{className:t.removed},P.createElement(sr,{property:a,propertyType:l,value:o,ignoreMissingValues:!0})),P.createElement("td",{className:t.added},P.createElement(sr,{property:a,propertyType:c,value:i,ignoreMissingValues:!0})))})))):null}function ka(e){return!e||Array.isArray(e)&&0===e.length||"object"==typeof e&&0===Object.keys(e).length}function Ca(e){const t=Le(),n=gr(e.value),[r,a]=O();return j((()=>{n&&t.requestSchema(n.resourceType).then(a).catch(console.log)}),[t,n]),r&&n?P.createElement(mr,{value:{type:n.resourceType,value:n},ignoreMissingValues:e.ignoreMissingValues}):null}class xa extends P.Component{constructor(e){super(e),this.state={}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){console.error("Uncaught error:",e,t)}render(){return this.state.error?P.createElement(ie,{icon:P.createElement(Ye,{size:16}),title:"Something went wrong",color:"red"},n(this.state.error)):this.props.children}}function ba(e){return P.createElement(fn,null,e.children)}function wa(e){const{resource:t,profile:n,padding:r,popupMenuItems:a,...o}=e,l=n??t.meta?.author;return P.createElement(kn,{"data-testid":"timeline-item",fill:!0,...o},P.createElement(_,{position:"apart",spacing:8,mx:"xs",my:"sm"},P.createElement(Fr,{value:l,link:!0,size:"md"}),P.createElement("div",{style:{flex:1}},P.createElement(le,{size:"sm"},P.createElement(ca,{color:"dark",weight:500,value:l,link:!0})),P.createElement(le,{size:"xs"},P.createElement(lr,{color:"dimmed",to:e.resource},h(e.resource.meta?.lastUpdated)),P.createElement(le,{component:"span",color:"dimmed",mx:8},"·"),P.createElement(lr,{color:"dimmed",to:e.resource},e.resource.resourceType))),a&&P.createElement(ke,{position:"bottom-end",shadow:"md",width:200},P.createElement(ke.Target,null,P.createElement(Y,{radius:"xl","aria-label":`Actions for ${w(e.resource)}`},P.createElement(zt,null))),a)),P.createElement(xa,null,r&&P.createElement("div",{style:{padding:"0 16px 16px 16px"}},e.children),!r&&P.createElement(P.Fragment,null,e.children)))}function Ta(e){e.sort(Sa)}function Sa(e,t){const n=za(e),r=za(t);return n>r?1:n<r?-1:Aa(e)-Aa(t)}function za(e){const t=e.priority;return"string"==typeof t&&{stat:4,asap:3,urgent:2}[t]||0}function Aa(e){if("Communication"===e.resourceType&&e.sent)return new Date(e.sent).getTime();if(("DiagnosticReport"===e.resourceType||"Media"===e.resourceType||"Observation"===e.resourceType)&&e.issued)return new Date(e.issued).getTime();if("DocumentReference"===e.resourceType&&e.date)return new Date(e.date).getTime();const t=e.meta?.lastUpdated;return t?new Date(t).getTime():0}const Da=Z((e=>({pinnedComment:{backgroundColor:e.colors.blue[0]}})));function Va(e){const t=Le(),r=Pe(),a=t.getProfile(),o=W(null),l=gr(e.value),[i,c]=O(),[s,u]=O([]),m=e.loadTimelineResources,d=W(s);d.current=s;const p=U((()=>{if(!l)return u([]),void c({});m(t,l).then(h).catch(console.log)}),[t,l,m]);function h(e){const t=[];for(const n of e)if(n&&("history"===n.type&&c(n),n.entry))for(const e of n.entry)t.push(e.resource);Ta(t),t.reverse(),u(t)}function g(e){const t=[...d.current,...e];Ta(t),t.reverse(),u(t)}function E(e,n){return t.updateResource({...e,priority:n})}function f(e){E(e,"stat").then(p).catch(console.log)}function v(e){E(e,"routine").then(p).catch(console.log)}function y(e){r(`/${e.resourceType}/${e.id}`)}function k(e){r(`/${e.resourceType}/${e.id}/edit`)}function C(e){r(`/${e.resourceType}/${e.id}/delete`)}function x(e){r(`/${e.resourceType}/${e.id}/_history/${e.meta?.versionId}`)}return j((()=>{p()}),[p]),l?P.createElement(ba,null,e.createCommunication&&P.createElement(kn,null,P.createElement(Tn,{testid:"timeline-form",onSubmit:n=>{var r;r=n.text,l&&e.createCommunication&&t.createResource(e.createCommunication(l,a,r)).then((e=>{g([e])})).catch(console.log);const i=o.current;i&&(i.value="",i.focus())}},P.createElement(_,{spacing:"xs",noWrap:!0,style:{width:"100%"}},P.createElement(Fr,{value:a}),P.createElement(K,{name:"text",ref:o,placeholder:"Add comment",style:{width:"100%",maxWidth:300}}),P.createElement(Y,{type:"submit",radius:"xl",color:"blue",variant:"filled"},P.createElement(Kt,{size:16})),P.createElement(pn,{onUpload:function(r){l&&e.createMedia&&t.createResource(e.createMedia(l,a,r)).then((e=>g([e]))).then((()=>Se({id:"upload-notification",color:"teal",title:"Upload complete",message:"",icon:P.createElement(pt,{size:16}),autoClose:2e3}))).catch((e=>Se({id:"upload-notification",color:"red",title:"Upload error",message:n(e),icon:P.createElement(Lt,{size:16}),autoClose:2e3})))},onUploadStart:function(){ze({id:"upload-notification",loading:!0,title:"Initializing upload...",message:"Please wait...",autoClose:!1,disallowClose:!0})},onUploadProgress:function(e){Se({id:"upload-notification",loading:!0,title:"Uploading...",message:Oa(e),autoClose:!1,disallowClose:!0})}},(e=>P.createElement(Y,{...e,radius:"xl",color:"blue",variant:"filled"},P.createElement(Ct,{size:16}))))))),s.map((e=>{const t=`${e.resourceType}/${e.id}/${e.meta?.versionId}`;if(e.resourceType===l.resourceType&&e.id===l.id)return P.createElement(Ia,{key:t,history:i,resource:e,onDetails:x});switch(e.resourceType){case"AuditEvent":return P.createElement(La,{key:t,resource:e,onDetails:y});case"Communication":return P.createElement(Ma,{key:t,resource:e,onPin:"stat"!==e.priority?f:void 0,onUnpin:"stat"===e.priority?v:void 0,onDetails:y,onEdit:k,onDelete:C});case"DiagnosticReport":return P.createElement(Pa,{key:t,resource:e,onDetails:y,onEdit:k,onDelete:C});case"Media":return P.createElement(Ra,{key:t,resource:e,onDetails:y,onEdit:k,onDelete:C});default:return P.createElement(wa,{key:t,resource:e,padding:!0},P.createElement(Ca,{value:e,ignoreMissingValues:!0}))}}))):P.createElement(re,{style:{width:"100%",height:"100%"}},P.createElement(G,null))}function Na(e){return P.createElement(ke.Dropdown,null,P.createElement(ke.Label,null,"Resource"),e.onPin&&P.createElement(ke.Item,{icon:P.createElement(Gt,{size:14}),onClick:()=>e.onPin(e.resource),"aria-label":`Pin ${w(e.resource)}`},"Pin"),e.onUnpin&&P.createElement(ke.Item,{icon:P.createElement(Yt,{size:14}),onClick:()=>e.onUnpin(e.resource),"aria-label":`Unpin ${w(e.resource)}`},"Unpin"),e.onDetails&&P.createElement(ke.Item,{icon:P.createElement(Ft,{size:14}),onClick:()=>e.onDetails(e.resource),"aria-label":`Details ${w(e.resource)}`},"Details"),e.onEdit&&P.createElement(ke.Item,{icon:P.createElement(Dt,{size:14}),onClick:()=>e.onEdit(e.resource),"aria-label":`Edit ${w(e.resource)}`},"Edit"),e.onDelete&&P.createElement(P.Fragment,null,P.createElement(ke.Divider,null),P.createElement(ke.Label,null,"Danger zone"),P.createElement(ke.Item,{color:"red",icon:P.createElement(un,{size:14}),onClick:()=>e.onDelete(e.resource),"aria-label":`Delete ${w(e.resource)}`},"Delete")))}function Ia(e){const t=function(e,t){const n=e.entry,r=n.findIndex((e=>e.resource?.meta?.versionId===t.meta?.versionId));if(r>=n.length-1)return;return n[r+1].resource}(e.history,e.resource);return t?P.createElement(wa,{resource:e.resource,padding:!0,popupMenuItems:P.createElement(Na,{...e})},P.createElement(ya,{original:t,revised:e.resource})):P.createElement(wa,{resource:e.resource,padding:!0,popupMenuItems:P.createElement(Na,{...e})},P.createElement("h3",null,"Created"),P.createElement(Ca,{value:e.resource,ignoreMissingValues:!0}))}function Ma(e){const{classes:t}=Da(),n=!e.resource.priority||"routine"===e.resource.priority?void 0:t.pinnedComment;return P.createElement(wa,{resource:e.resource,profile:e.resource.sender,padding:!0,className:n,popupMenuItems:P.createElement(Na,{...e})},P.createElement("p",null,e.resource.payload?.[0]?.contentString))}function Ra(e){const t=e.resource.content?.contentType,n=t&&!t.startsWith("image/")&&!t.startsWith("video/")&&"application/pdf"!==t;return P.createElement(wa,{resource:e.resource,padding:!!n,popupMenuItems:P.createElement(Na,{...e})},P.createElement(Be,{value:e.resource.content}))}function La(e){return P.createElement(wa,{resource:e.resource,padding:!0,popupMenuItems:P.createElement(Na,{...e})},P.createElement(Ce,null,P.createElement("pre",null,e.resource.outcomeDesc)))}function Pa(e){return P.createElement(wa,{resource:e.resource,padding:!0,popupMenuItems:P.createElement(Na,{...e})},P.createElement(pa,{value:e.resource}))}function Oa(e){if(e.lengthComputable){const t=100*e.loaded/e.total;return`Uploaded: ${Wa(e.loaded)} / ${Wa(e.total)} ${t.toFixed(2)}%`}return`Uploaded: ${Wa(e.loaded)}`}function Wa(e){if(0==e)return"0.00 B";const t=Math.floor(Math.log(e)/Math.log(1024));return(e/Math.pow(1024,t)).toFixed(2)+" "+" KMGTP".charAt(t)+"B"}function $a(e){return P.createElement(Va,{value:e.resource,loadTimelineResources:async(e,t)=>Promise.all([e.readHistory(t.resourceType,t.id),e.search("AuditEvent","_sort=-_lastUpdated&entity="+w(t))])})}function ja(e){return P.createElement(Va,{value:e.encounter,loadTimelineResources:async(e,t)=>Promise.all([e.readHistory("Encounter",t.id),e.search("Communication","encounter="+w(t)),e.search("Media","encounter="+w(t))]),createCommunication:(e,n,r)=>({resourceType:"Communication",status:"completed",encounter:t(e),subject:e.subject,sender:t(n),sent:(new Date).toISOString(),payload:[{contentString:r}]}),createMedia:(e,n,r)=>({resourceType:"Media",status:"completed",encounter:t(e),subject:e.subject,operator:t(n),issued:(new Date).toISOString(),content:r})})}function Fa(e){let t;try{t=T(e.path,e.resource)}catch(e){return console.warn("FhirPathDisplay:",e),null}if(t.length>1)throw new Error(`Component "path" for "FhirPathDisplay" must resolve to a single element. Received ${t.length} elements [${JSON.stringify(t,null,2)}]`);return P.createElement(sr,{value:t[0]||"",propertyType:e.propertyType})}const Ua={string:[S.EQUALS,S.NOT,S.CONTAINS,S.EXACT],fulltext:[S.EQUALS,S.NOT,S.CONTAINS,S.EXACT],token:[S.EQUALS,S.NOT],reference:[S.EQUALS,S.NOT],numeric:[S.EQUALS,S.NOT_EQUALS,S.GREATER_THAN,S.LESS_THAN,S.GREATER_THAN_OR_EQUALS,S.LESS_THAN_OR_EQUALS],quantity:[S.EQUALS,S.NOT_EQUALS,S.GREATER_THAN,S.LESS_THAN,S.GREATER_THAN_OR_EQUALS,S.LESS_THAN_OR_EQUALS],date:[S.EQUALS,S.NOT_EQUALS,S.GREATER_THAN,S.LESS_THAN,S.GREATER_THAN_OR_EQUALS,S.LESS_THAN_OR_EQUALS,S.STARTS_AFTER,S.ENDS_BEFORE,S.APPROXIMATELY],datetime:[S.EQUALS,S.NOT_EQUALS,S.GREATER_THAN,S.LESS_THAN,S.GREATER_THAN_OR_EQUALS,S.LESS_THAN_OR_EQUALS,S.STARTS_AFTER,S.ENDS_BEFORE,S.APPROXIMATELY]},Ha={eq:"equals",ne:"not equals",gt:"greater than",lt:"less than",ge:"greater than or equals",le:"less than or equals",sa:"starts after",eb:"ends before",ap:"approximately",contains:"contains",exact:"exact",text:"text",not:"not",above:"above",below:"below",in:"in","not-in":"not in","of-type":"of type",missing:"missing"};function Ba(e,t){return{...e,filters:t,offset:0,name:void 0}}function _a(e){return Ba(e,[])}function qa(e,t){return Ba(e,(e.filters||[]).filter((e=>e.code!==t)))}function Ka(e,t,n,r,a){a&&(e=qa(e,t));const o=[];return e.filters&&o.push(...e.filters),o.push({code:t,operator:n,value:r||""}),Ba(e,o)}function Qa(e,t){if(e.fields&&e.fields.includes(t))return e;const n=[];return e.fields&&n.push(...e.fields),n.push(t),{...e,fields:n,name:void 0}}function Ga(e,t){if(!e.filters)return e;const n=[...e.filters];return n.splice(t,1),{...e,filters:n,name:void 0}}function Ja(e,t){return Za(e,t,-1)}function Ya(e,t){return Za(e,t,0)}function Xa(e,t){return Za(e,t,1)}function Za(e,t,n){const r=new Date;r.setDate(r.getDate()+n),r.setHours(0,0,0,0);const a=new Date(r.getTime());return a.setDate(a.getDate()+1),a.setTime(a.getTime()-1),oo(e,t,r,a)}function eo(e,t){return ro(e,t,-1)}function to(e,t){return ro(e,t,0)}function no(e,t){return ro(e,t,1)}function ro(e,t,n){const r=new Date;r.setMonth(r.getMonth()+n),r.setDate(1),r.setHours(0,0,0,0);const a=new Date(r.getTime());return a.setMonth(a.getMonth()+1),a.setDate(1),a.setHours(0,0,0,0),a.setTime(a.getTime()-1),oo(e,t,r,a)}function ao(e,t){const n=new Date;n.setMonth(0),n.setDate(1),n.setHours(0,0,0,0);return oo(e,t,n,new Date)}function oo(e,t,n,r){return e=lo(e=qa(e,t),t,S.GREATER_THAN_OR_EQUALS,n),e=lo(e,t,S.LESS_THAN_OR_EQUALS,r)}function lo(e,t,n,r){return Ka(e,t,n,r.toISOString())}function io(e,t,n=!0){return Ka(e,t,S.MISSING,n.toString())}function co(e,t){return e.offset===t?e:{...e,offset:t,name:void 0}}function so(e,t){return co(e,(t-1)*(e.count??z))}function uo(e,t,n){return t===po(e)&&void 0!==n&&n===ho(e)?e:{...e,sortRules:[{code:t,descending:!!n}],name:void 0}}function mo(e,t){let n=!1;return po(e)===t&&(n=!ho(e)),uo(e,t,n)}function po(e){const t=e.sortRules;if(!t||0===t.length)return;const n=t[0].code;return n.startsWith("-")?n.substr(1):n}function ho(e){const t=e.sortRules;return!(!t||0===t.length)&&!!t[0].descending}function go(e){return Ua[e.type]}function Eo(e){return Ha[e]??""}function fo(e){let t=e;return t.includes(".")&&(t=t.split(".").pop()),"id"===t?"ID":"versionId"===t?"Version ID":(t=t.replace("[x]",""),t=t.replace(/([A-Z])/g," $1"),t=t.replace(/[-_]/g," "),t=t.replace(/\s+/g," "),t=t.trim(),t.split(/\s/).map(v).join(" "))}function vo(e,t){const n=t.name;return"id"===n?e.id:"meta.versionId"===n?e.meta?.versionId:"_lastUpdated"===n?h(e.meta?.lastUpdated):t.elementDefinition&&`${e.resourceType}.${t.name}`===t.elementDefinition.path?function(e,t){const n=t.path?.split(".")?.pop()?.replaceAll("[x]","")||"",[r,a]=ur({type:e.resourceType,value:e},n);if(!r)return null;return P.createElement(sr,{property:t,propertyType:a,value:r,maxWidth:200,ignoreMissingValues:!0,link:!1})}(e,t.elementDefinition):t.searchParams&&1===t.searchParams.length&&t.name===t.searchParams[0].code?function(e,t,n){const r=A(t.expression,[{type:e.resourceType,value:e}]);if(!r||0===r.length)return null;if(n)return P.createElement(sr,{propertyType:r[0].type,value:r[0].value,maxWidth:200,ignoreMissingValues:!0,link:!1});return P.createElement(P.Fragment,null,r.map(((e,t)=>P.createElement("span",{key:`${t}-${r.length}`},"object"==typeof e?JSON.stringify(e):e))))}(e,t.searchParams[0],t.elementDefinition):null}function yo(e){const[t,n]=O({search:JSON.parse(s(e.search))}),r=W(null),a=W(null);function o(){const e=t.search.fields??[],a=r.current?.value;if(a){const r=[...e,a];n({search:{...t.search,fields:r}})}}function l(){const e=t.search.fields??[],r=a.current?.value;if(r){const a=[...e];a.splice(a.indexOf(r),1),n({search:{...t.search,fields:a}})}}function i(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}if(j((()=>{n({search:e.search})}),[e.search]),!e.visible)return null;const c=e.search.resourceType,u=E.types[c],m=t.search.fields??[],d=function(e){const t=[],n=new Set,r=new Set;for(const a of Object.keys(e.properties))t.push(a),n.add(a.toLowerCase()),r.add(fo(a));if(e.searchParams)for(const a of Object.keys(e.searchParams)){const e=fo(a);n.has(a)||r.has(e)||(t.push(a),n.add(a),r.add(fo(a)))}return t}(u).filter((e=>!m?.includes(e))).sort();return P.createElement(Ee,{title:"Fields",closeButtonLabel:"Close",opened:e.visible,onClose:e.onCancel},P.createElement("div",null,P.createElement("table",{style:{margin:"auto"}},P.createElement("thead",null,P.createElement("tr",null,P.createElement("th",{colSpan:2,align:"center"},"Available"),P.createElement("th",{colSpan:2,align:"center"},"Selected"))),P.createElement("tbody",null,P.createElement("tr",null,P.createElement("td",{colSpan:2,align:"center"},P.createElement("select",{ref:r,size:15,tabIndex:1,style:{width:"200px"},onKeyDown:e=>function(e){"Enter"===e.key&&o()}(e),onDoubleClick:()=>{o()},"data-testid":"available"},d.map((e=>P.createElement("option",{key:e,value:e},fo(e)))))),P.createElement("td",{colSpan:2,align:"center"},P.createElement("select",{ref:a,size:15,tabIndex:4,style:{width:"200px"},onKeyDown:e=>function(e){"Enter"===e.key&&l()}(e),onDoubleClick:()=>{l()},"data-testid":"selected"},m.map((e=>P.createElement("option",{key:e,value:e},fo(e)))))))),P.createElement("tfoot",null,P.createElement("tr",null,P.createElement("td",{align:"center"},P.createElement(X,{compact:!0,variant:"outline",onClick:o},"Add")),P.createElement("td",{align:"center"},P.createElement(X,{compact:!0,variant:"outline",onClick:l},"Remove")),P.createElement("td",{align:"center"},P.createElement(X,{compact:!0,variant:"outline",onClick:function(){const e=t.search.fields??[],r=a.current?.value;if(r){const a=[...e],o=a.indexOf(r);i(a,o,o-1),n({search:{...t.search,fields:a}})}}},"Up")),P.createElement("td",{align:"center"},P.createElement(X,{compact:!0,variant:"outline",onClick:function(){const e=t.search.fields??[],r=a.current?.value;if(r){const a=[...e],o=a.indexOf(r);i(a,o,o+1),n({search:{...t.search,fields:a}})}}},"Down")))))),P.createElement(X,{onClick:()=>e.onOk(t.search)},"OK"))}function ko(e){const{resourceType:t,filter:n}=e,r=E.types[t]?.searchParams?.[n.code];if(r){if("reference"===r.type)return P.createElement(ca,{value:{reference:n.value}});const e=D(t,r);if("_lastUpdated"===n.code||e.type===V.DATETIME)return P.createElement(P.Fragment,null,h(n.value))}return P.createElement(P.Fragment,null,n.value)}function Co(e){const t="filter-value";switch(D(e.resourceType,e.searchParam).type){case V.REFERENCE:return P.createElement(_r,{name:t,defaultValue:{reference:e.defaultValue},targetTypes:e.searchParam?.target,onChange:t=>{t?e.onChange(t.reference):e.onChange("")}});case V.BOOLEAN:return P.createElement(ue,{name:t,"data-testid":t,defaultChecked:"true"===e.defaultValue,onChange:t=>e.onChange(t.currentTarget.checked.toString())});case V.DATE:return P.createElement(K,{type:"date",name:t,"data-testid":t,defaultValue:e.defaultValue,onChange:t=>e.onChange(t.currentTarget.value)});case V.DATETIME:return P.createElement(Ar,{name:t,defaultValue:e.defaultValue,onChange:e.onChange});case V.NUMBER:return P.createElement(K,{type:"number",name:t,"data-testid":t,defaultValue:e.defaultValue,onChange:t=>e.onChange(t.currentTarget.value)});case V.QUANTITY:return P.createElement(Or,{name:t,defaultValue:xo(e.defaultValue),onChange:t=>{t?e.onChange(`${t.value}`):e.onChange("")}});default:return P.createElement(K,{name:t,"data-testid":t,defaultValue:e.defaultValue,autoFocus:e.autoFocus,onChange:t=>e.onChange(t.currentTarget.value),placeholder:"Search value"})}}function xo(e){if(e){const[t,n,r]=e.split("|");if(t)return{value:parseFloat(t),system:n,unit:r}}}function bo(e){const[t,n]=O(JSON.parse(s(e.search))),[r,a]=O(-1),o=W(t);if(o.current=t,j((()=>{n(JSON.parse(s(e.search)))}),[e.search]),!e.visible)return null;const l=e.search.resourceType,i=E.types[l].searchParams,c=t.filters||[];return P.createElement(Ee,{title:"Filters",closeButtonLabel:"Close",size:900,opened:e.visible,onClose:e.onCancel},P.createElement("div",null,P.createElement("table",null,P.createElement("colgroup",null,P.createElement("col",{style:{width:200}}),P.createElement("col",{style:{width:200}}),P.createElement("col",{style:{width:380}}),P.createElement("col",{style:{width:120}})),P.createElement("thead",null,P.createElement("tr",null,P.createElement("th",null,"Field"),P.createElement("th",null,"Operation"),P.createElement("th",null,"Value"),P.createElement("th",null,"Actions"))),P.createElement("tbody",null,c.map(((e,t)=>t===r?P.createElement(To,{key:`filter-${t}-${c.length}-input`,resourceType:l,searchParams:i,defaultValue:e,okText:"Save",onOk:e=>{const r=[...c];r[t]=e,n(Ba(o.current,r)),a(-1)},onCancel:()=>a(-1)}):P.createElement(wo,{key:`filter-${t}-${c.length}-display`,resourceType:l,searchParams:i,filter:e,onEdit:()=>a(t),onDelete:()=>n(Ga(o.current,t))}))),P.createElement(To,{resourceType:l,searchParams:i,okText:"Add",onOk:function(e){n(Ka(o.current,e.code,e.operator,e.value))}})))),P.createElement(_,{position:"right",mt:"xl"},P.createElement(X,{onClick:()=>e.onOk(o.current)},"OK")))}function wo(e){const{filter:t}=e;return P.createElement("tr",null,P.createElement("td",null,fo(t.code)),P.createElement("td",null,Eo(t.operator)),P.createElement("td",null,P.createElement(ko,{resourceType:e.resourceType,filter:t})),P.createElement("td",null,P.createElement(X,{compact:!0,variant:"outline",onClick:e.onEdit},"Edit"),P.createElement(X,{compact:!0,variant:"outline",onClick:e.onDelete},"Delete")))}function To(e){const[t,n]=O(e.defaultValue??{}),r=W(t);r.current=t;const a=e.searchParams[t.code],o=a&&go(a);return P.createElement("tr",null,P.createElement("td",null,P.createElement(q,{"data-testid":"filter-field",defaultValue:r.current.code,onChange:e=>{return t=e.currentTarget.value,void n({...r.current,code:t});var t},data:Object.keys(e.searchParams).map((e=>({value:e,label:fo(e)})))})),P.createElement("td",null,o&&P.createElement(q,{"data-testid":"filter-operation",defaultValue:t.operator,onChange:e=>{return t=e.currentTarget.value,void n({...r.current,operator:t});var t},data:["",...o.map((e=>({value:e,label:Eo(e)})))]})),P.createElement("td",null,a&&t.operator&&P.createElement(Co,{resourceType:e.resourceType,searchParam:a,defaultValue:t.value,onChange:function(e){n({...r.current,value:e})}})),P.createElement("td",null,t.code&&t.operator&&t.value&&P.createElement(X,{compact:!0,variant:"outline",onClick:()=>{e.onOk(r.current),n({})}},e.okText),e.onCancel&&P.createElement(X,{compact:!0,variant:"outline",onClick:e.onCancel},"Cancel")))}function So(e){const[t,n]=O(e.defaultValue??"");if(!e.visible||!e.searchParam||!e.filter)return null;function r(){e.onOk({...e.filter,value:t})}return P.createElement(Ee,{title:e.title,size:"xl",opened:e.visible,onClose:e.onCancel},P.createElement("div",{style:{width:500}},P.createElement(Tn,{onSubmit:r},P.createElement(Co,{resourceType:e.resourceType,searchParam:e.searchParam,defaultValue:t,autoFocus:!0,onChange:n}))),P.createElement(X,{onClick:r},"OK"))}function zo(e){if(!e.searchParams)return null;function t(t){e.onChange(t)}return 1===e.searchParams.length?P.createElement(Ao,{search:e.search,searchParam:e.searchParams[0],onSort:function(n,r){t(uo(e.search,n.code,r))},onPrompt:function(t,n){e.onPrompt(t,{code:t.code,operator:n,value:""})},onChange:t,onClear:function(n){t(qa(e.search,n.code))}}):P.createElement(ke.Dropdown,null,e.searchParams.map((e=>P.createElement(ke.Item,{key:e.code},fo(e.code)))))}function Ao(e){switch(e.searchParam.type){case"date":return P.createElement(Do,{...e});case"number":case"quantity":return P.createElement(Vo,{...e});case"reference":return P.createElement(No,{...e});case"string":case"token":case"uri":return P.createElement(Io,{...e});default:return P.createElement(P.Fragment,null,"Unknown search param type: ",e.searchParam.type)}}function Do(e){const{searchParam:t}=e,n=t.code;return P.createElement(ke.Dropdown,null,P.createElement(ke.Item,{icon:P.createElement(tn,{size:14}),onClick:()=>e.onSort(t,!1)},"Sort Oldest to Newest"),P.createElement(ke.Item,{icon:P.createElement(rn,{size:14}),onClick:()=>e.onSort(t,!0)},"Sort Newest to Oldest"),P.createElement(ke.Divider,null),P.createElement(ke.Item,{icon:P.createElement(Mt,{size:14}),onClick:()=>e.onPrompt(t,S.EQUALS)},"Equals..."),P.createElement(ke.Item,{icon:P.createElement(Nt,{size:14}),onClick:()=>e.onPrompt(t,S.NOT_EQUALS)},"Does not equal..."),P.createElement(ke.Divider,null),P.createElement(ke.Item,{icon:P.createElement(_t,{size:14}),onClick:()=>e.onPrompt(t,S.ENDS_BEFORE)},"Before..."),P.createElement(ke.Item,{icon:P.createElement(Ht,{size:14}),onClick:()=>e.onPrompt(t,S.STARTS_AFTER)},"After..."),P.createElement(ke.Item,{icon:P.createElement(ot,{size:14}),onClick:()=>e.onPrompt(t,S.EQUALS)},"Between..."),P.createElement(ke.Divider,null),P.createElement(ke.Item,{icon:P.createElement(mt,{size:14}),onClick:()=>e.onChange(Xa(e.search,n))},"Tomorrow"),P.createElement(ke.Item,{icon:P.createElement(mt,{size:14}),onClick:()=>e.onChange(Ya(e.search,n))},"Today"),P.createElement(ke.Item,{icon:P.createElement(mt,{size:14}),onClick:()=>e.onChange(Ja(e.search,n))},"Yesterday"),P.createElement(ke.Divider,null),P.createElement(ke.Item,{icon:P.createElement(mt,{size:14}),onClick:()=>e.onChange(no(e.search,n))},"Next Month"),P.createElement(ke.Item,{icon:P.createElement(mt,{size:14}),onClick:()=>e.onChange(to(e.search,n))},"This Month"),P.createElement(ke.Item,{icon:P.createElement(mt,{size:14}),onClick:()=>e.onChange(eo(e.search,n))},"Last Month"),P.createElement(ke.Divider,null),P.createElement(ke.Item,{icon:P.createElement(mt,{size:14}),onClick:()=>e.onChange(ao(e.search,n))},"Year to date"),P.createElement(Mo,{...e}))}function Vo(e){const{searchParam:t}=e;return P.createElement(ke.Dropdown,null,P.createElement(ke.Item,{icon:P.createElement(tn,{size:14}),onClick:()=>e.onSort(t,!1)},"Sort Smallest to Largest"),P.createElement(ke.Item,{icon:P.createElement(rn,{size:14}),onClick:()=>e.onSort(t,!0)},"Sort Largest to Smallest"),P.createElement(ke.Divider,null),P.createElement(ke.Item,{icon:P.createElement(Mt,{size:14}),onClick:()=>e.onPrompt(t,S.EQUALS)},"Equals..."),P.createElement(ke.Item,{icon:P.createElement(Nt,{size:14}),onClick:()=>e.onPrompt(t,S.NOT_EQUALS)},"Does not equal..."),P.createElement(ke.Divider,null),P.createElement(ke.Item,{icon:P.createElement(Ht,{size:14}),onClick:()=>e.onPrompt(t,S.GREATER_THAN)},"Greater than..."),P.createElement(ke.Item,{icon:P.createElement(Zt,{size:14}),onClick:()=>e.onPrompt(t,S.GREATER_THAN_OR_EQUALS)},"Greater than or equal to..."),P.createElement(ke.Item,{icon:P.createElement(_t,{size:14}),onClick:()=>e.onPrompt(t,S.LESS_THAN)},"Less than..."),P.createElement(ke.Item,{icon:P.createElement(Zt,{size:14}),onClick:()=>e.onPrompt(t,S.LESS_THAN_OR_EQUALS)},"Less than or equal to..."),P.createElement(Mo,{...e}))}function No(e){const{searchParam:t}=e;return P.createElement(ke.Dropdown,null,P.createElement(ke.Item,{icon:P.createElement(Mt,{size:14}),onClick:()=>e.onPrompt(t,S.EQUALS)},"Equals..."),P.createElement(ke.Item,{icon:P.createElement(Nt,{size:14}),onClick:()=>e.onPrompt(t,S.NOT)},"Does not equal..."),P.createElement(Mo,{...e}))}function Io(e){const{searchParam:t}=e;return P.createElement(ke.Dropdown,null,P.createElement(ke.Item,{icon:P.createElement(tn,{size:14}),onClick:()=>e.onSort(t,!1)},"Sort A to Z"),P.createElement(ke.Item,{icon:P.createElement(rn,{size:14}),onClick:()=>e.onSort(t,!0)},"Sort Z to A"),P.createElement(ke.Divider,null),P.createElement(ke.Item,{icon:P.createElement(Mt,{size:14}),onClick:()=>e.onPrompt(t,S.EQUALS)},"Equals..."),P.createElement(ke.Item,{icon:P.createElement(Nt,{size:14}),onClick:()=>e.onPrompt(t,S.NOT)},"Does not equal..."),P.createElement(ke.Divider,null),P.createElement(ke.Item,{icon:P.createElement(st,{size:14}),onClick:()=>e.onPrompt(t,S.CONTAINS)},"Contains..."),P.createElement(ke.Item,{icon:P.createElement(it,{size:14}),onClick:()=>e.onPrompt(t,S.EQUALS)},"Does not contain..."),P.createElement(Mo,{...e}))}function Mo(e){const{searchParam:t}=e,n=t.code;return P.createElement(P.Fragment,null,P.createElement(ke.Divider,null),P.createElement(ke.Item,{icon:P.createElement(tt,{size:14}),onClick:()=>e.onChange(io(e.search,n))},"Missing"),P.createElement(ke.Item,{icon:P.createElement(Ze,{size:14}),onClick:()=>e.onChange(io(e.search,n,!1))},"Not missing"),P.createElement(ke.Divider,null),P.createElement(ke.Item,{icon:P.createElement(dn,{size:14}),onClick:()=>e.onClear(t)},"Clear filters"))}function Ro(e,t){if("_lastUpdated"===t)return{name:"_lastUpdated",searchParams:[{resourceType:"SearchParameter",base:["Resource"],code:"_lastUpdated",name:"_lastUpdated",type:"date",expression:"Resource.meta.lastUpdated"}]};if("meta.versionId"===t)return{name:"meta.versionId",searchParams:[{resourceType:"SearchParameter",base:["Resource"],code:"_versionId",name:"_versionId",type:"token",expression:"Resource.meta.versionId"}]};const n=E.types[e],r=n.properties[t],a=n.searchParams?.[t.toLowerCase()];if(r&&a)return{name:t,elementDefinition:r,searchParams:[a]};if(r){let a;if(n.searchParams){const r=`${e}.${t.replaceAll("[x]","")}`;a=Object.values(n.searchParams).filter((e=>e.expression?.includes(r))),0===a.length&&(a=void 0)}return{name:t,elementDefinition:r,searchParams:a}}if(a){return{name:t,elementDefinition:D(e,a).elementDefinition,searchParams:[a]}}return{name:t}}class Lo extends Event{constructor(e){super("change"),this.definition=e}}class Po extends Event{constructor(e){super("load"),this.response=e}}class Oo extends Event{constructor(e,t){super("click"),this.resource=e,this.browserEvent=t}}const Wo=Z((e=>({root:{maxWidth:"100%",overflow:"auto",textAlign:"left",marginBottom:"20px"},table:{cursor:"pointer"},tr:{"&:hover":{backgroundColor:"dark"===e.colorScheme?e.colors.dark[7]:e.colors.gray[0]}},th:{padding:"0 !important"},control:{width:"100%",padding:`${e.spacing.xs}px ${e.spacing.md}px`,"&:hover":{backgroundColor:"dark"===e.colorScheme?e.colors.dark[6]:e.colors.gray[0]}},icon:{width:21,height:21,borderRadius:21}})));function $o(e){const{classes:t}=Wo(),n=Le(),[r,a]=O(!1),[o,l]=O(),{search:i,onLoad:c}=e,[s,u]=O({selected:{},fieldEditorVisible:!1,filterEditorVisible:!1,filterDialogVisible:!1}),m=W(s);function d(t){e.onChange&&e.onChange(new Lo(t))}function p(t,n){Fe(t.target)||2!==t.button&&(je(t),1!==t.button&&e.onClick&&e.onClick(new Oo(n,t)),1===t.button&&e.onAuxClick&&e.onAuxClick(new Oo(n,t)))}m.current=s,j((()=>{l(void 0),n.search(i.resourceType,N({...i,total:"accurate",fields:void 0})).then((e=>{u({...m.current,searchResponse:e}),c&&c(new Po(e))})).catch((e=>{u({...m.current,searchResponse:void 0}),l(e)}))}),[n,i,c]),j((()=>{a(!1),n.requestSchema(e.search.resourceType).then((()=>a(!0))).catch(console.log)}),[n,e.search.resourceType]);if(!(r&&E?.types?.[e.search.resourceType]))return P.createElement(re,{style:{width:"100%",height:"100%"}},P.createElement(G,null));const h=e.checkboxesEnabled,g=function(e){const t=e.resourceType,n=[];for(const r of e.fields||["id","_lastUpdated"])n.push(Ro(t,r));return n}(i),f=i.resourceType,v=s.searchResponse,y=v?.entry,k=y?.map((e=>e.resource)),C="subtle",x="gray",b=16,w=window.innerWidth<768;return P.createElement("div",{className:t.root,"data-testid":"search-control"},!e.hideToolbar&&P.createElement(_,{position:"apart",mb:"xl"},P.createElement(_,{spacing:2},P.createElement(X,{compact:!0,variant:C,color:x,leftIcon:P.createElement($t,{size:b}),onClick:()=>u({...m.current,fieldEditorVisible:!0})},"Fields"),P.createElement(X,{compact:!0,variant:C,color:x,leftIcon:P.createElement(bt,{size:b}),onClick:()=>u({...m.current,filterEditorVisible:!0})},"Filters"),e.onNew&&P.createElement(X,{compact:!0,variant:C,color:x,leftIcon:P.createElement(Ot,{size:b}),onClick:e.onNew},"New..."),!w&&e.onExport&&P.createElement(X,{compact:!0,variant:C,color:x,leftIcon:P.createElement(cn,{size:b}),onClick:e.onExport},"Export..."),!w&&e.onDelete&&P.createElement(X,{compact:!0,variant:C,color:x,leftIcon:P.createElement(un,{size:b}),onClick:()=>e.onDelete(Object.keys(s.selected))},"Delete..."),!w&&e.onBulk&&P.createElement(X,{compact:!0,variant:C,color:x,leftIcon:P.createElement(rt,{size:b}),onClick:()=>e.onBulk(Object.keys(s.selected))},"Bulk...")),v&&P.createElement(le,{size:"xs",color:"dimmed"},function(e,t){return Math.min(t,(e.offset??0)+1)}(i,v.total),"-",function(e,t){return Math.min(t,((e.offset??0)+1)*(e.count??z))}(i,v.total)," of"," ",v.total?.toLocaleString())),P.createElement(xe,{className:t.table},P.createElement("thead",null,P.createElement("tr",null,h&&P.createElement("th",null,P.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:function(){const e=m.current;if(!e.searchResponse?.entry||0===e.searchResponse.entry.length)return!1;for(const t of e.searchResponse.entry)if(t.resource?.id&&!e.selected[t.resource.id])return!1;return!0}(),onChange:e=>function(e){e.stopPropagation();const t=e.target.checked,n={},r=m.current?.searchResponse;t&&r?.entry&&r.entry.forEach((e=>{e.resource?.id&&(n[e.resource.id]=!0)})),u({...m.current,selected:n})}(e)})),g.map((n=>P.createElement("th",{key:n.name},P.createElement(ke,{shadow:"md",width:240,position:"bottom-end"},P.createElement(ke.Target,null,P.createElement(me,{className:t.control},P.createElement(_,{position:"apart",noWrap:!0},P.createElement(le,{weight:500,size:"sm"},fo(n.name)),P.createElement(re,{className:t.icon},P.createElement(Ge,{size:14,stroke:1.5}))))),P.createElement(zo,{search:e.search,searchParams:n.searchParams,onPrompt:(e,t)=>{u({...m.current,filterDialogVisible:!0,filterDialogSearchParam:e,filterDialogFilter:t})},onChange:e=>{d(e)}})))))),!e.hideFilters&&P.createElement("tr",null,h&&P.createElement("th",null),g.map((t=>P.createElement("th",{key:t.name},t.searchParams&&P.createElement(Fo,{resourceType:f,searchParams:t.searchParams,filters:e.search.filters})))))),P.createElement("tbody",null,k?.map((e=>e&&P.createElement("tr",{key:e.id,className:t.tr,"data-testid":"search-control-row",onClick:t=>p(t,e),onAuxClick:t=>p(t,e)},h&&P.createElement("td",null,P.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${e.id}`,checked:!!s.selected[e.id],onChange:t=>function(e,t){e.stopPropagation();const n=e.target.checked,r={...m.current.selected};n?r[t]=!0:delete r[t],u({...m.current,selected:r})}(t,e.id)})),g.map((t=>P.createElement("td",{key:t.name},vo(e,t))))))))),0===k?.length&&P.createElement(fn,null,P.createElement(re,null,P.createElement(le,{size:"xl",color:"dimmed"},"No results"))),void 0!==v?.total&&v.total>0&&P.createElement(re,{m:"md",p:"md"},P.createElement(be,{page:Uo(i),total:Ho(i,v.total),onChange:e=>d(so(i,e)),getItemAriaLabel:e=>{switch(e){case"prev":return"Previous page";case"next":return"Next page";default:return}}})),o&&P.createElement("div",{"data-testid":"search-error"},P.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(o,void 0,2))),P.createElement(yo,{search:e.search,visible:m.current.fieldEditorVisible,onOk:e=>{d(e),u({...m.current,fieldEditorVisible:!1})},onCancel:()=>{u({...m.current,fieldEditorVisible:!1})}}),P.createElement(bo,{search:e.search,visible:m.current.filterEditorVisible,onOk:e=>{d(e),u({...m.current,filterEditorVisible:!1})},onCancel:()=>{u({...m.current,filterEditorVisible:!1})}}),P.createElement(So,{key:s.filterDialogSearchParam?.code,visible:m.current.filterDialogVisible,title:"Input",resourceType:f,searchParam:s.filterDialogSearchParam,filter:s.filterDialogFilter,defaultValue:"",onOk:t=>{d(Ka(e.search,t.code,t.operator,t.value)),u({...m.current,filterDialogVisible:!1})},onCancel:()=>{u({...m.current,filterDialogVisible:!1})}}))}const jo=P.memo($o);function Fo(e){const t=(e.filters??[]).filter((t=>e.searchParams.find((e=>e.code===t.code))));return 0===t.length?P.createElement("span",null,"no filters"):P.createElement(P.Fragment,null,t.map(((n,r)=>P.createElement("div",{key:`filter-${r}-${t.length}`},Eo(n.operator)," ",P.createElement(ko,{resourceType:e.resourceType,filter:n})))))}function Uo(e){return Math.floor((e.offset||0)/(e.count||z))+1}function Ho(e,t){const n=e.count||z;return Math.ceil(t/n)}function Bo(e){const t=Le(),[n,r]=O(),[a,o]=O(),{query:l,fields:i}=e,[c,s]=O(),[u,m]=O({}),d=W();d.current=c;const p=W({});function h(t,n){Fe(t.target)||(je(t),1!==t.button&&e.onClick&&e.onClick(new Oo(n,t)),1===t.button&&e.onAuxClick&&e.onAuxClick(new Oo(n,t)))}p.current=u,j((()=>{o(void 0),t.graphql(l).then(s).catch(o)}),[t,l]),j((()=>{t.requestSchema(e.resourceType).then((e=>{r({...e})})).catch(console.log)}),[t,e.resourceType]);const g=n?.types?.[e.resourceType];if(!g)return P.createElement(G,null);const E=e.checkboxesEnabled;return P.createElement("div",{onContextMenu:e=>je(e),"data-testid":"search-control"},P.createElement(xe,null,P.createElement("thead",null,P.createElement("tr",null,E&&P.createElement("th",null,P.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:function(){const e=d.current?.data?.ResourceList;if(!e||0===e.length)return!1;for(const t of e)if(t?.id&&!p.current[t.id])return!1;return!0}(),onChange:e=>function(e){e.stopPropagation();const t=e.target.checked,n={},r=d.current?.data?.ResourceList;t&&r&&r.forEach((e=>{e?.id&&(n[e.id]=!0)})),m(n)}(e)})),i.map((e=>P.createElement("th",{key:e.name},e.name))))),P.createElement("tbody",null,c?.data?.ResourceList?.map((e=>e&&P.createElement("tr",{key:e.id,"data-testid":"search-control-row",onClick:t=>h(t,e),onAuxClick:t=>h(t,e)},E&&P.createElement("td",null,P.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${e.id}`,checked:!!u[e.id],onChange:t=>function(e,t){e.stopPropagation();const n=e.target.checked,r={...p.current};n?r[t]=!0:delete r[t],m(r)}(t,e.id)})),i.map((t=>P.createElement("td",{key:t.name},P.createElement(Fa,{propertyType:t.propertyType,path:t.fhirPath,resource:e}))))))))),0===c?.data?.ResourceList?.length&&P.createElement("div",{"data-testid":"empty-search"},"No results"),a&&P.createElement("div",{"data-testid":"search-error"},P.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(a,void 0,2))),e.onBulk&&P.createElement(X,{onClick:()=>e.onBulk(Object.keys(p.current))},"Bulk..."))}const _o=P.memo(Bo);function qo(e){const n=U(((e,t)=>Promise.all([e.readHistory("Patient",t.id),e.search("Communication","subject="+w(t)),e.search("Device","patient="+w(t)),e.search("DeviceRequest","patient="+w(t)),e.search("DiagnosticReport","subject="+w(t)),e.search("Media","subject="+w(t)),e.search("ServiceRequest","subject="+w(t))])),[]);return P.createElement(Va,{value:e.patient,loadTimelineResources:n,createCommunication:(e,n,r)=>({resourceType:"Communication",status:"completed",subject:t(e),sender:t(n),sent:(new Date).toISOString(),payload:[{contentString:r}]}),createMedia:(e,n,r)=>({resourceType:"Media",status:"completed",subject:t(e),operator:t(n),issued:(new Date).toISOString(),content:r})})}const Ko=Z((e=>({section:{position:"relative",margin:"4px 4px 8px 0",padding:"6px 12px 16px 6px",border:`1.5px solid ${e.colors.gray[1]}`,borderRadius:e.radius.sm,transition:"all 0.1s"},hovering:{border:`1.5px solid ${e.colors.blue[5]}`},editing:{border:`1.5px solid ${e.colors.gray[1]}`,borderLeft:`4px solid ${e.colors.blue[5]}`},bottomActions:{position:"absolute",right:4,bottom:0,fontSize:e.fontSizes.xs,"& a":{marginLeft:8}}})));function Qo(e){const t=Le(),n=gr(e.value),[r,a]=O(void 0),[o,l]=O(),[i,c]=O(),[s,u]=O();function m(){c(void 0)}function d(){l(void 0)}const p=W();if(p.current=s,j((()=>{t.requestSchema("PlanDefinition").then(a).catch(console.log)}),[t]),j((()=>{var e;return u((e=n??{resourceType:"PlanDefinition"},{...e,action:ol(e.action)})),document.addEventListener("mouseover",m),document.addEventListener("click",d),()=>{document.removeEventListener("mouseover",m),document.removeEventListener("click",d)}}),[n]),!r||!s)return null;function h(e,t){u({...p.current,[e]:t})}return P.createElement("div",null,P.createElement(Tn,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(s)},P.createElement(K,{label:"Plan Title",defaultValue:s.title,onChange:e=>h("title",e.currentTarget.value)}),P.createElement(Go,{actions:s.action||[],selectedKey:o,setSelectedKey:l,hoverKey:i,setHoverKey:c,onChange:e=>h("action",e)}),P.createElement(X,{type:"submit"},"Save")))}function Go(e){const{classes:t}=Ko(),n=W();function r(t){e.onChange(n.current.map((e=>e.id===t.id?t:e)))}return n.current=e.actions,P.createElement("div",{className:t.section},e.actions.map((t=>P.createElement("div",{key:t.id},P.createElement(Jo,{action:t,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:r,onRemove:()=>{return r=t,void e.onChange(n.current.filter((e=>e!==r)));var r}})))),P.createElement("div",{className:t.bottomActions},P.createElement(J,{href:"#",onClick:t=>{var r;je(t),r={id:al()},e.onChange([...n.current,r]),e.setSelectedKey(r.id)}},"Add action")))}function Jo(e){const{classes:t,cx:n}=Ko(),{action:r}=e,a=function(e){if(e.definitionCanonical?.startsWith("Schedule"))return"appointment";if(e.definitionCanonical?.startsWith("Questionnaire/"))return"questionnaire";if(e.definitionCanonical?.startsWith("ActivityDefinition/"))return"task";return}(r),o=e.selectedKey===e.action.id,l=e.hoverKey===e.action.id;const i=n(t.section,{[t.editing]:o,[t.hovering]:l&&!o});return P.createElement("div",{"data-testid":r.id,className:i,onClick:function(t){t.stopPropagation(),e.setSelectedKey(e.action.id)},onMouseOver:function(t){je(t),e.setHoverKey(e.action.id)}},o?P.createElement(Zo,{action:r,actionType:a,onChange:e.onChange,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onRemove:e.onRemove}):P.createElement(Xo,{action:r,actionType:a}),P.createElement("div",{className:t.bottomActions},P.createElement(J,{href:"#",onClick:t=>{t.preventDefault(),e.onRemove()}},"Remove")))}const Yo={path:"PlanDefinition.action.timing[x]",min:0,max:"1",type:[{code:"dateTime"},{code:"Period"},{code:"Range"},{code:"Timing"}]};function Xo(e){const{action:t,actionType:n}=e,[r,a]=nl(t);return P.createElement("div",null,P.createElement("div",null,t.title||"Untitled"," ",n&&`(${n})`),t.definitionCanonical&&P.createElement("div",null,P.createElement(ir,{value:{reference:t.definitionCanonical}})),r&&P.createElement("div",null,P.createElement(sr,{property:Yo,propertyType:a,value:r})))}function Zo(e){const{action:t}=e,[n,r]=O(e.actionType);function a(n,r){e.onChange({...t,[n]:r})}return P.createElement(oe,{spacing:"xl"},P.createElement(K,{name:`actionTitle-${t.id}`,label:"Title",defaultValue:t.title,onChange:e=>a("title",e.currentTarget.value)}),P.createElement(K,{name:`actionDescription-${t.id}`,label:"Description",defaultValue:t.description,onChange:e=>a("description",e.currentTarget.value)}),P.createElement(q,{label:"Type of Action",description:"The type of the action to be performed.",name:`actionType-${t.id}`,defaultValue:n,onChange:e=>r(e.currentTarget.value),data:["","appointment","lab","questionnaire","task"]}),t.action&&t.action.length>0&&P.createElement(Go,{actions:t.action,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:e=>a("action",e)}),(()=>{switch(n){case"appointment":return P.createElement(el,{title:"Appointment",description:"The subject must schedule an appointment from the schedule.",resourceType:"Schedule",action:t,onChange:e.onChange});case"lab":return P.createElement(el,{title:"Lab",description:"The subject must complete the following lab panel.",resourceType:"ActivityDefinition",action:t,onChange:e.onChange});case"questionnaire":return P.createElement(el,{title:"Questionnaire",description:"The subject must complete the selected questionnaire.",resourceType:"Questionnaire",action:t,onChange:e.onChange});case"task":return P.createElement(el,{title:"Task",description:"The subject must complete the following task.",resourceType:"ActivityDefinition",action:t,onChange:e.onChange});default:return null}})(),P.createElement(pr,{title:"Timing",description:"When the action should take place."},P.createElement(tl,{name:"timing-"+t.id,action:t,onChange:e.onChange})))}function el(e){const{id:t,definitionCanonical:n}=e.action,r=n?.startsWith(e.resourceType+"/")?{reference:n}:void 0;return P.createElement(Hr,{name:t,resourceType:e.resourceType,defaultValue:r,loadOnFocus:!0,onChange:t=>{t?e.onChange({...e.action,definitionCanonical:w(t)}):e.onChange({...e.action,definitionCanonical:void 0})}})}function tl(e){const t=e.action,n="timing",[r,a]=nl(t);return P.createElement(Jr,{property:Yo,name:"timing[x]",defaultValue:r,defaultPropertyType:a,onChange:(r,a)=>{e.onChange(vr(t,n,a??n,Yo,r))}})}function nl(e){return ur({type:"PlanDefinitionAction",value:e},"timing")}let rl=1;function al(e){if(e){if(e.startsWith("id-")){const t=parseInt(e.substring(3));isNaN(t)||(rl=Math.max(rl,t+1))}return e}return"id-"+rl++}function ol(e){if(e)return e.map((e=>({...e,id:al(e.id),action:ol(e.action)})))}var ll;function il(e){return"choice"===e.type||"open-choice"===e.type}function cl(e){const n=Le(),r=n.getProfile(),[a,o]=O(),l=gr(e.questionnaire),[i,c]=O(),[s,u]=O({});return j((()=>{n.requestSchema("Questionnaire").then((()=>n.requestSchema("QuestionnaireResponse"))).then(o).catch(console.log)}),[n]),j((()=>{c(l?function(e){const t={resourceType:"QuestionnaireResponse",questionnaire:w(e),item:hl(e.item)};return t}(l):void 0)}),[l]),a&&l?P.createElement(Tn,{testid:"questionnaire-form",onSubmit:()=>{e.onSubmit&&i&&e.onSubmit({...i,questionnaire:w(l),subject:e.subject,source:t(r),authored:(new Date).toISOString(),status:"completed"})}},l.title&&P.createElement(ae,null,l.title),l.item&&P.createElement(sl,{items:l.item,answers:s,onChange:function(e){const t={resourceType:"QuestionnaireResponse",item:e};c(t),u(M(t))}}),P.createElement(_,{position:"right",mt:"xl"},P.createElement(X,{type:"submit"},e.submitButtonText||"OK"))):null}function sl(e){const[t,n]=O(hl(e.items));function r(r,a){const o=t.slice();o[r]=a,n(o),e.onChange(o)}return P.createElement(oe,null,e.items.map(((t,n)=>{if(!fl(t,e.answers))return null;if(t.type===ll.display)return P.createElement("p",{key:t.linkId},t.text);if(t.type===ll.group)return P.createElement(ul,{key:t.linkId,item:t,answers:e.answers,onChange:e=>r(n,e)});if(t.type===ll.boolean){const e=t.initial&&t.initial.length>0?t.initial[0]:void 0;return P.createElement(dr,{key:t.linkId,title:t.text,htmlFor:t.linkId},P.createElement(ue,{id:t.linkId,name:t.linkId,defaultChecked:e?.valueBoolean,onChange:e=>r(n,{linkId:t.linkId,text:t.text,answer:[{valueBoolean:e.currentTarget.checked}]})}))}return P.createElement(pr,{key:t.linkId,htmlFor:t.linkId,title:t.text||""},P.createElement(ul,{item:t,answers:e.answers,onChange:e=>r(n,e)}))})))}function ul(e){const t=e.item,n=t.type;if(!n)return null;const r=t.linkId;if(!r)return null;const a=t.initial&&t.initial.length>0?t.initial[0]:void 0;function o(n){e.onChange({linkId:t.linkId,text:t.text,answer:[n]})}switch(n){case ll.group:return P.createElement("div",null,P.createElement("h3",null,t.text),t.item&&P.createElement(sl,{items:t.item,answers:e.answers,onChange:function(n){e.onChange({linkId:t.linkId,text:t.text,item:n})}}));case ll.boolean:return P.createElement(ue,{id:r,name:r,defaultChecked:a?.valueBoolean,onChange:e=>o({valueBoolean:e.currentTarget.checked})});case ll.decimal:return P.createElement(K,{type:"number",step:"any",id:r,name:r,defaultValue:a?.valueDecimal,onChange:e=>o({valueDecimal:e.currentTarget.valueAsNumber})});case ll.integer:return P.createElement(K,{type:"number",step:1,id:r,name:r,defaultValue:a?.valueInteger,onChange:e=>o({valueInteger:e.currentTarget.valueAsNumber})});case ll.date:return P.createElement(K,{type:"date",id:r,name:r,defaultValue:a?.valueDate,onChange:e=>o({valueDate:e.currentTarget.value})});case ll.dateTime:return P.createElement(Ar,{name:r,defaultValue:a?.valueDateTime,onChange:e=>o({valueDateTime:e})});case ll.time:return P.createElement(K,{type:"time",id:r,name:r,defaultValue:a?.valueTime,onChange:e=>o({valueTime:e.currentTarget.value})});case ll.string:case ll.url:return P.createElement(K,{id:r,name:r,defaultValue:a?.valueString,onChange:e=>o({valueString:e.currentTarget.value})});case ll.text:return P.createElement(fe,{id:r,name:r,defaultValue:a?.valueString,onChange:e=>o({valueString:e.currentTarget.value})});case ll.attachment:return P.createElement(gn,{name:r,defaultValue:a?.valueAttachment,onChange:e=>o({valueAttachment:e})});case ll.reference:return P.createElement(_r,{name:r,defaultValue:a?.valueReference,onChange:e=>o({valueReference:e})});case ll.quantity:return P.createElement(Or,{name:r,defaultValue:a?.valueQuantity,onChange:e=>o({valueQuantity:e}),disableWheel:!0});case ll.choice:case ll.openChoice:return function(e){return!!e.extension?.some((e=>"http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"===e.url&&"drop-down"===e.valueCodeableConcept?.coding?.[0]?.code))}(t)?P.createElement(ml,{name:r,item:t,initial:a,onChangeAnswer:o}):P.createElement(pl,{name:r,item:t,initial:a,onChangeAnswer:o})}return null}function ml(e){const{name:t,item:n,initial:r}=e,a=g({type:"QuestionnaireItemInitial",value:r},"value"),o=[""];if(n.answerOption)for(const e of n.answerOption){const t=g({type:"QuestionnaireItemAnswerOption",value:e},"value");o.push(dl(t))}return P.createElement(q,{id:t,name:t,onChange:t=>{const r=t.currentTarget.selectedIndex;if(0===r)return void e.onChangeAnswer({});const a=n.answerOption[r-1],o=g({type:"QuestionnaireItemAnswerOption",value:a},"value"),l="value"+v(o.type);e.onChangeAnswer({[l]:o.value})},defaultValue:dl(a),data:o})}function dl(e){if(e)return"CodeableConcept"===e.type?e.value.coding[0].display:"Coding"===e.type?e.value.display:e.value.toString()}function pl(e){const{name:t,item:n,initial:r,onChangeAnswer:a}=e,o=E.types.QuestionnaireItemAnswerOption.properties["value[x]"],l=g({type:"QuestionnaireItemInitial",value:r},"value"),i=[];let c;if(n.answerOption)for(let e=0;e<n.answerOption.length;e++){const r=n.answerOption[e],a=`${t}-option-${e}`,o=g({type:"QuestionnaireItemAnswerOption",value:r},"value");l&&s(o)===s(l)&&(c=a),i.push([a,o])}return P.createElement(we.Group,{name:t,orientation:"vertical",defaultValue:c,onChange:e=>{const t=i.find((t=>t[0]===e));if(t){const e=t[1],n="value"+v(e.type);a({[n]:e.value})}}},i.map((([e,t])=>P.createElement(we,{key:e,id:e,value:e,label:P.createElement(sr,{property:o,propertyType:t.type,value:t.value})}))))}function hl(e){return e?.map(gl)??[]}function gl(e){return{linkId:e.linkId,text:e.text,item:hl(e.item),answer:e.initial?.map(El)??[]}}function El(e){return{...e}}function fl(e,t){if(!e.enableWhen)return!0;const n=e.enableBehavior||"any";for(const r of e.enableWhen){const e=g({type:"QuestionnaireItemEnableWhen",value:r},"answer[x]"),a=g({type:"QuestionnaireResponseItemAnswer",value:t[r.question]},"value[x]"),o=I(e,a);if("any"===n&&o)return!0;if("all"===n&&!o)return!1}return"any"!==n}!function(e){e.group="group",e.display="display",e.question="question",e.boolean="boolean",e.decimal="decimal",e.integer="integer",e.date="date",e.dateTime="dateTime",e.time="time",e.string="string",e.text="text",e.url="url",e.choice="choice",e.openChoice="open-choice",e.attachment="attachment",e.reference="reference",e.quantity="quantity"}(ll||(ll={}));const vl=Z((e=>({section:{position:"relative",margin:"4px 4px 8px 0",padding:"6px 12px 16px 6px",border:`1.5px solid ${e.colors.gray[1]}`,borderRadius:e.radius.sm,transition:"all 0.1s"},hovering:{border:`1.5px solid ${e.colors.blue[5]}`},editing:{border:`1.5px solid ${e.colors.gray[1]}`,borderLeft:`4px solid ${e.colors.blue[5]}`},questionBody:{maxWidth:600},topActions:{position:"absolute",right:4,top:1,padding:4,color:e.colors.gray[5],fontSize:e.fontSizes.xs},bottomActions:{position:"absolute",right:4,bottom:0,fontSize:e.fontSizes.xs,"& a":{marginLeft:8}},linkIdInput:{width:100,marginBottom:4},typeSelect:{width:100}})));function yl(e){const t=Le(),n=gr(e.questionnaire),[r,a]=O(),[o,l]=O(),[i,c]=O(),[s,u]=O();function m(){u(void 0)}function d(){c(void 0)}return j((()=>{t.requestSchema("Questionnaire").then(a).catch(console.log)}),[t]),j((()=>{var e;return l((e=n??{resourceType:"Questionnaire"},{...e,id:e.id||Tl(),item:Sl(e.item)})),document.addEventListener("mouseover",m),document.addEventListener("click",d),()=>{document.removeEventListener("mouseover",m),document.removeEventListener("click",d)}}),[n]),r&&o?P.createElement("div",null,P.createElement(Tn,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(o)},P.createElement(kl,{item:o,selectedKey:i,setSelectedKey:c,hoverKey:s,setHoverKey:u,onChange:l}),P.createElement(X,{type:"submit"},"Save"))):null}function kl(e){const{classes:t,cx:n}=vl(),r=e.item,a=e.item,o="resourceType"in e.item,l=o||a.type===ll.group,i=a.linkId??"[untitled]",c=e.selectedKey===e.item.id,s=e.hoverKey===e.item.id,u=W();function m(t){const n=u.current;e.onChange({...n,item:n.item?.map((e=>e.id===t.id?t:e))})}function d(t){e.onChange({...e.item,item:[...e.item?.item??[],t]})}function p(t,n){e.onChange({...u.current,[t]:n})}u.current=e.item;const h=n(t.section,{[t.editing]:c,[t.hovering]:s&&!c});return P.createElement("div",{"data-testid":a.linkId,className:h,onClick:function(t){je(t),e.setSelectedKey(e.item.id)},onMouseOver:function(t){je(t),e.setHoverKey(e.item.id)}},P.createElement("div",{className:t.questionBody},c?P.createElement(P.Fragment,null,o&&P.createElement(K,{size:"xl",defaultValue:r.title,onChange:e=>p("title",e.currentTarget.value)}),!o&&P.createElement(fe,{autosize:!0,minRows:2,defaultValue:a.text,onChange:e=>p("text",e.currentTarget.value)}),il(a)&&P.createElement(Cl,{options:a.answerOption,onChange:e=>p("answerOption",e)})):P.createElement(P.Fragment,null,r.title&&P.createElement(ae,null,r.title),a.text&&P.createElement("div",null,a.text),!l&&P.createElement(ul,{item:a,answers:{},onChange:()=>{}}))),a.item&&a.item.map((t=>P.createElement("div",{key:t.id},P.createElement(kl,{item:t,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:m,onRemove:()=>{return n=t,void e.onChange({...e.item,item:e.item?.item?.filter((e=>e!==n))});var n}})))),!l&&P.createElement("div",{className:t.topActions},c?P.createElement(P.Fragment,null,P.createElement(K,{size:"xs",className:t.linkIdInput,defaultValue:a.linkId,onChange:e=>p("linkId",e.currentTarget.value)}),!l&&P.createElement(q,{size:"xs",className:t.typeSelect,defaultValue:a.type,onChange:e=>p("type",e.currentTarget.value),data:[{value:"display",label:"Display"},{value:"boolean",label:"Boolean"},{value:"decimal",label:"Decimal"},{value:"integer",label:"Integer"},{value:"date",label:"Date"},{value:"dateTime",label:"Date/Time"},{value:"time",label:"Time"},{value:"string",label:"String"},{value:"text",label:"Text"},{value:"url",label:"URL"},{value:"choice",label:"Choice"},{value:"open-choice",label:"Open Choice"},{value:"attachment",label:"Attachment"},{value:"reference",label:"Reference"},{value:"quantity",label:"Quantity"}]})):P.createElement("div",null,i)),P.createElement("div",{className:t.bottomActions},l&&P.createElement(P.Fragment,null,P.createElement(J,{href:"#",onClick:e=>{e.preventDefault(),d({id:Tl(),linkId:wl("q"),type:"string",text:"Question"})}},"Add item"),P.createElement(J,{href:"#",onClick:e=>{e.preventDefault(),d({id:Tl(),linkId:wl("g"),type:"group",text:"Group"})}},"Add group")),c&&!o&&P.createElement(J,{href:"#",onClick:t=>{t.preventDefault(),e.onRemove&&e.onRemove()}},"Remove")))}function Cl(e){const t=E.types.QuestionnaireItemAnswerOption.properties["value[x]"],n=e.options??[];return P.createElement("div",null,n.map((r=>{const[a,o]=ur({type:"QuestionnaireItemAnswerOption",value:r},"value");return P.createElement("div",{key:r.id,style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",width:"80%"}},P.createElement("div",null,P.createElement(Jr,{key:r.id,name:"value[x]",property:t,defaultPropertyType:o,defaultValue:a,onChange:(t,a)=>{const o=[...n],l=o.findIndex((e=>e.id===r.id));o[l]={id:r.id,[a]:t},e.onChange(o)}})),P.createElement("div",null,P.createElement(J,{href:"#",onClick:t=>{je(t),e.onChange(n.filter((e=>e.id!==r.id)))}},"Remove")))})),P.createElement(J,{href:"#",onClick:t=>{je(t),e.onChange([...n,{id:Tl()}])}},"Add choice"))}let xl=1,bl=1;function wl(e){return e+xl++}function Tl(){return"id-"+bl++}function Sl(e){if(e)return e.forEach((e=>{e.id?.match(/^id-\d+$/)&&(bl=Math.max(bl,parseInt(e.id.substring(3))+1)),e.linkId?.match(/^q\d+$/)&&(xl=Math.max(xl,parseInt(e.linkId.substring(1))+1))})),e.map((e=>({...e,id:e.id||Tl(),item:Sl(e.item),answerOption:zl(e.answerOption)})))}function zl(e){if(e)return e.map((e=>({...e,id:e.id||Tl()})))}const Al=Z((e=>({section:{position:"relative",margin:"4px 4px 8px 0",padding:"6px 12px 16px 6px",border:`1.5px solid ${e.colors.gray[3]}`,borderRadius:e.radius.sm,transition:"all 0.1s"}}))),Dl=["gender","age","gestationalAge","context","appliesTo"],Vl={definition:{resourceType:"ObservationDefinition"},onSubmit:()=>{}};function Nl(e){const t=(e=Object.assign(Vl,e)).definition,[n,r]=O([]),[a,o]=O(1),[l,i]=O(1);return j((()=>{const e=function(e,t){const n=e.qualifiedInterval||[];let r=Math.max(...n.map((e=>{const t=parseInt(e.id?.substring(3)||"");return isNaN(t)?Number.NEGATIVE_INFINITY:t})))+1;Number.isFinite(r)||(r=1);return e={...e,qualifiedInterval:n.map((e=>({...e,id:e.id||"id-"+r++})))},t(r),e}(t,i);r(function(e,t){let n=1;const r={};for(const t of e){const e=Rl(t);e in r||(r[e]={id:"group-id-"+n++,filters:Object.fromEntries(Dl.map((e=>[e,t[e]]))),intervals:[]}),r[e].intervals.push(t)}return t(n),Object.values(r)}(e.qualifiedInterval||[],o))}),[t]),P.createElement(Tn,{testid:"reference-range-editor",onSubmit:function(){const r=n.flatMap((e=>e.intervals)).filter((e=>!function(e){return void 0===e.range?.low?.value&&void 0===e.range?.high?.value}(e)));e.onSubmit({...t,qualifiedInterval:r})}},P.createElement(oe,null,n.map((e=>{return P.createElement(Il,{unit:(n=t.quantitativeDetails?.unit,n&&(R(n,"http://unitsofmeasure.org")||n.text)),onChange:s,onAdd:u,onRemove:m,onRemoveGroup:c,key:`group-${e.id}`,intervalGroup:e});var n}))),P.createElement(Y,{title:"Add Group",size:"sm",onClick:e=>{var t;je(e),t={id:`group-id-${a}`,filters:{},intervals:[]},r((e=>[...e,t])),o((e=>e+1))}},P.createElement(yt,null)),P.createElement(_,{position:"right"},P.createElement(X,{type:"submit"},"Save")));function c(e){r((t=>t.filter((t=>t.id!==e.id))))}function s(e,t){r((n=>{const r=(n=[...n]).find((t=>t.id===e)),a=r?.intervals?.findIndex((e=>e.id===t.id));return void 0!==a&&r?.intervals?.[a]&&(r.intervals[a]=t),n}))}function u(e,t){void 0===t.id&&(t.id=`id-${l}`,i((e=>e+1))),r((n=>{const r=(n=[...n]).findIndex((t=>t.id===e));if(-1!=r){const e={...n[r]};t={...t,...e.filters},e.intervals=[...e.intervals,t],n[r]=e}return n}))}function m(e,t){r((n=>{const r=(n=[...n]).find((t=>t.id===e));return r&&(r.intervals=r.intervals.filter((e=>e.id!==t.id))),n}))}}function Il(e){const{intervalGroup:t,unit:n}=e,{classes:r}=Al();return P.createElement(fn,{"data-testid":t.id,className:r.section},P.createElement(oe,{spacing:"lg"},P.createElement(_,{position:"right"},P.createElement(Y,{title:"Remove Group","data-testid":`remove-group-button-${t.id}`,key:`remove-group-button-${t.id}`,size:"sm",onClick:n=>{je(n),e.onRemoveGroup(t)}},P.createElement(ft,null))),P.createElement(Ml,{intervalGroup:t,onChange:e.onChange}),P.createElement(ce,null),t.intervals.map((n=>P.createElement(oe,{key:`interval-${n.id}`,spacing:"xs"},P.createElement(_,null,P.createElement(K,{key:`condition-${n.id}`,"data-testid":`condition-${n.id}`,defaultValue:n.condition,label:"Condition: ",size:"sm",onChange:r=>{je(r),e.onChange(t.id,{...n,condition:r.currentTarget.value.trim()})}}),P.createElement(Y,{title:"Remove Interval",size:"sm",key:`remove-interval-${n.id}`,"data-testid":`remove-interval-${n.id}`,onClick:r=>{je(r),e.onRemove(t.id,n)}},P.createElement(ft,null))),P.createElement($r,{onChange:r=>{e.onChange(t.id,{...n,range:r})},key:`range-${n.id}`,name:`range-${n.id}`,defaultValue:n.range})))),P.createElement(Y,{title:"Add Interval",size:"sm",onClick:r=>{je(r),e.onAdd(t.id,{range:{low:{unit:n},high:{unit:n}}})}},P.createElement(yt,null))))}function Ml(e){const{intervalGroup:t,onChange:n}=e;t.filters.age||(t.filters.age={});for(const e of["low","high"])t.filters.age[e]?.unit||(t.filters.age[e]={...t.filters.age[e],unit:"years",system:"http://unitsofmeasure.org"});return P.createElement(oe,{style:{maxWidth:"50%"}},P.createElement(_,null,P.createElement(q,{data:["","male","female"],label:"Gender:",defaultValue:t.filters.gender||"",onChange:e=>{for(const r of t.intervals){let a=e.currentTarget?.value;""===a&&(a=void 0),n(t.id,{...r,gender:a})}}})),P.createElement(_,{spacing:"xs"},P.createElement(le,{component:"label",htmlFor:`div-age-${t.id}`},"Age:"),P.createElement("div",{id:`div-age-${t.id}`},P.createElement($r,{key:`age-${t.id}`,name:`age-${t.id}`,defaultValue:t.filters.age,onChange:e=>{for(const r of t.intervals)n(t.id,{...r,age:e})}}))),P.createElement(q,{data:["","pre-puberty","follicular","midcycle","luteal","postmenopausal"],label:"Endocrine:",defaultValue:t.filters.context?.text||"",onChange:e=>{for(const r of t.intervals){let a=e.currentTarget?.value;""===a?(a=void 0,n(t.id,{...r,context:void 0})):n(t.id,{...r,context:{text:a,coding:[{code:a,system:"http://terminology.hl7.org/CodeSystem/referencerange-meaning"}]}})}}}))}function Rl(e){return[`gender=${e.gender}`,`age=${c(e.age)}`,`gestationalAge=${c(e.gestationalAge)}`,`context=${e.context?.text}`,`appliesTo=${e.appliesTo?.map((e=>e.text)).join("+")}`].join(":")}function Ll(e){const t=Le(),n=gr(e.value),[r,a]=O(!1),[o,l]=O();return j((()=>{n&&!r&&(t.executeBatch(function(e){const t=[];if(e.action)for(const n of e.action)n.resource?.reference&&t.push({request:{method:"GET",url:n.resource.reference}});return{resourceType:"Bundle",type:"batch",entry:t}}(n)).then(l).catch(console.log),a(!0))}),[t,n,r]),n&&o?P.createElement(Te,null,n.action?.map(((t,n)=>{const r=t.resource&&function(e){for(const t of o?.entry)if(t.resource&&e.reference===w(t.resource))return t.resource;return}(t.resource),a=r?.input?.[0]?.valueReference,l=r?.output?.[0]?.valueReference;return P.createElement(P.Fragment,{key:`action-${n}`},P.createElement(Te.Col,{span:1,p:"md"},"completed"===r?.status?P.createElement(gt,null):P.createElement(on,{color:"gray"})),P.createElement(Te.Col,{span:9,p:"xs"},P.createElement(le,{weight:500},t.title),t.description&&P.createElement("div",null,t.description),P.createElement("div",null,"Last edited by ",P.createElement(ca,{value:r?.meta?.author})," on ",h(r?.meta?.lastUpdated)),P.createElement("div",null,"Status: ",P.createElement(ma,{status:r?.status||"unknown"}))),P.createElement(Te.Col,{span:2,p:"md"},a&&!l&&P.createElement(X,{onClick:()=>e.onStart(r,a)},"Start"),a&&l&&P.createElement(X,{onClick:()=>e.onEdit(r,a,l)},"Edit")))}))):null}function Pl(e,t){return function(e,t,n){const r=[];let a=e;a.snake&&(a=a.prev);for(;a&&a.prev&&a.prev.j>=0;){const e=a.i,o=a.j;a=a.prev;const l=a.i,i=a.j,c={position:l,lines:t.slice(l,e)},s={position:i,lines:n.slice(i,o)};let u;u=0===c.lines.length&&s.lines.length>0?"insert":c.lines.length>0&&0===s.lines.length?"delete":"change",r.push({original:c,revised:s,type:u}),a.snake&&(a=a.prev)}return r}(function(e,t){const n=e.length,r=t.length,a=n+r+1,o=1+2*a,l=o/2|0,i=new Array(o);i[l+1]={i:0,j:-1,prev:void 0,snake:!0};for(let o=0;o<a;o++){for(let a=-o;a<=o;a+=2){const c=l+a,s=c-1,u=i[c+1],m=i[s];let d,p=0;a===-o||a!==o&&m.i<u.i?(p=u.i,d=u):(p=m.i+1,d=m),i[s]=void 0;let h=p-a,g={i:p,j:h,prev:Ol(d),snake:!1};for(;p<n&&h<r&&e[p]===t[h];)p++,h++;if(p>g.i&&(g={i:p,j:h,prev:g,snake:!0}),i[c]=g,p>=n&&h>=r)return i[c]}i[l+o-1]=void 0}return}(e,t),e,t)}function Ol(e){return e&&!e.snake&&e.prev?e.prev:e}function Wl(e){const t=e.entry.filter((e=>!!e.resource)).map((e=>({meta:e.resource?.meta,lines:s(e.resource,!0).match(/[^\r\n]+/g)}))).sort(((e,t)=>e.meta.lastUpdated.localeCompare(t.meta.lastUpdated))),n=t[0].lines.map((e=>({id:t[0].meta.versionId,meta:t[0].meta,value:e,span:1})));return function(e,t){for(let n=1;n<t.length;n++){const r=Pl(t[n-1].lines,t[n].lines);for(const a of r){const r=a.original.position,o=a.original.lines,l=a.revised.lines;if("delete"!==a.type&&"change"!==a.type||e.splice(r,o.length),"insert"===a.type||"change"===a.type)for(let o=0;o<a.revised.lines.length;o++)e.splice(r+o,0,{id:t[n].meta.versionId,meta:t[n].meta,value:l[o],span:1})}}}(n,t),function(e){let t=0;for(;t<e.length;){let n=t;for(;n<e.length&&e[n].id===e[t].id;)e[n].span=-1,n++;e[t].span=n-t,t=n}}(n),n}const $l=Z((e=>({container:{overflowX:"auto"},root:{border:`0.1px solid ${e.colors.gray[3]}`,borderCollapse:"collapse",borderRadius:e.radius.sm,borderSpacing:0,fontSize:e.fontSizes.xs,width:"100%","& td":{padding:"2px 4px 0 4px",verticalAlign:"top",whiteSpace:"nowrap"}},startRow:{borderTop:`0.1px solid ${e.colors.gray[3]}`},normalRow:{borderTop:0},author:{lineHeight:"10px"},dateTime:{borderRight:`0.1px solid ${e.colors.gray[3]}`,lineHeight:"20px"},lineNumber:{backgroundColor:e.colors.gray[1],border:0,color:e.colors.gray[5],fontFamily:e.fontFamilyMonospace,padding:`${e.spacing.xs}px ${e.spacing.sm}px`,textAlign:"right"},line:{fontFamily:e.fontFamilyMonospace,fontSize:e.fontSizes.sm,padding:`${e.spacing.xs}px ${e.spacing.sm}px`},pre:{margin:0}})));function jl(e){const{classes:t}=$l(),n=Le(),[r,a]=O(e.history);if(j((()=>{!e.history&&e.resourceType&&e.id&&n.readHistory(e.resourceType,e.id).then(a).catch(console.log)}),[n,e.history,e.resourceType,e.id]),!r)return P.createElement("div",null,"Loading...");const o=r.entry?.[0]?.resource,l=Wl(r);return P.createElement("div",{className:t.container},P.createElement("table",{className:t.root},P.createElement("tbody",null,l.map(((e,n)=>P.createElement("tr",{key:"row-"+n,className:e.span>0?t.startRow:t.normalRow},e.span>0&&P.createElement(P.Fragment,null,P.createElement("td",{className:t.author,rowSpan:e.span},P.createElement(sa,{value:e.meta.author,link:!0})),P.createElement("td",{className:t.dateTime,rowSpan:e.span},P.createElement(lr,{to:Fl(o,e.meta.versionId)},Ul(e.meta.lastUpdated)))),P.createElement("td",{className:t.lineNumber},n+1),P.createElement("td",{className:t.line},P.createElement("pre",{className:t.pre},e.value))))))))}function Fl(e,t){return`/${e.resourceType}/${e.id}/_history/${t}`}function Ul(e){const t=Math.floor((Date.now()-Date.parse(e))/1e3),n=Math.floor(t/31536e3);if(n>0)return Hl(n,"year");const r=Math.floor(t/2592e3);if(r>0)return Hl(r,"month");const a=Math.floor(t/86400);if(a>0)return Hl(a,"day");const o=Math.floor(t/3600);if(o>0)return Hl(o,"hour");const l=Math.floor(t/60);return l>0?Hl(l,"minute"):Hl(t,"second")}function Hl(e,t){return`${e} ${1===e?t:t+"s"} ago`}const Bl=Z((e=>({removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}})));function _l(e){let t=e.original,n=e.revised;e.ignoreMeta&&(t={...t,meta:void 0},n={...n,meta:void 0});const r=Pl(s(t,!0).match(/[^\r\n]+/g),s(n,!0).match(/[^\r\n]+/g));return P.createElement("pre",{style:{color:"gray"}},r.map(((e,t)=>P.createElement(ql,{key:"delta"+t,delta:e}))))}function ql(e){const{classes:t}=Bl();return P.createElement(P.Fragment,null,"...",P.createElement("br",null),e.delta.original.lines.length>0&&P.createElement("div",{className:t.removed},e.delta.original.lines.join("\n")),e.delta.revised.lines.length>0&&P.createElement("div",{className:t.added},e.delta.revised.lines.join("\n")),"...",P.createElement("br",null))}function Kl(e){const t=Le(),[n,r]=O(e.history);return j((()=>{!e.history&&e.resourceType&&e.id&&t.readHistory(e.resourceType,e.id).then(r).catch(console.log)}),[t,e.history,e.resourceType,e.id]),n?P.createElement(xe,{withBorder:!0,withColumnBorders:!0},P.createElement("thead",null,P.createElement("tr",null,P.createElement("th",null,"Author"),P.createElement("th",null,"Date"),P.createElement("th",null,"Version"))),P.createElement("tbody",null,n.entry?.map(((e,t)=>P.createElement(Ql,{key:"entry-"+t,entry:e}))))):P.createElement("div",null,"Loading...")}function Ql(e){const{response:t,resource:r}=e.entry;return r?P.createElement("tr",null,P.createElement("td",null,P.createElement(sa,{value:r.meta?.author,link:!0})),P.createElement("td",null,h(r.meta?.lastUpdated)),P.createElement("td",null,P.createElement(lr,{to:Gl(r)},r.meta?.versionId))):P.createElement("tr",null,P.createElement("td",{colSpan:3},n(t?.outcome)))}function Gl(e){return`/${e.resourceType}/${e.id}/_history/${e.meta?.versionId}`}const Jl=Z((e=>({container:{display:"flex",minHeight:400},info:{minWidth:300,padding:20,borderRight:`1px solid ${e.colors.gray[3]}`},selection:{minWidth:300,padding:20}})));function Yl(e){const{classes:t}=Jl(),n=Le(),r=gr(e.schedule),a=gr(e.questionnaire),[o,l]=O();W().current=o;const[i,c]=O(aa()),[s,u]=O(),[m,d]=O(),[p,h]=O();if(j((()=>{r?(l([]),n.searchResources("Slot",new URLSearchParams([["_count",720..toString()],["schedule",w(r)],["start","gt"+Xl(i)],["start","lt"+Zl(i)]])).then(l).catch(console.log)):l(void 0)}),[n,r,i]),!r||!o||!a)return null;const g=r.actor?.[0];return P.createElement("div",{className:t.container,"data-testid":"scheduler"},P.createElement("div",{className:t.info},g&&P.createElement(Fr,{value:g,size:"xl"}),g&&P.createElement(le,{size:"xl",weight:500},P.createElement(ca,{value:g})),P.createElement("p",null,"1 hour"),s&&P.createElement("p",null,s.toLocaleDateString()),m&&P.createElement("p",null,ti(new Date(m.start)))),P.createElement("div",{className:t.selection},!s&&P.createElement("div",null,P.createElement("h3",null,"Select date"),P.createElement(ra,{slots:o,onChangeMonth:c,onClick:u})),s&&!m&&P.createElement("div",null,P.createElement("h3",null,"Select time"),P.createElement(oe,null,o.map((e=>{const t=new Date(e.start);return t.getTime()>s.getTime()&&t.getTime()<s.getTime()+864e5&&P.createElement("div",{key:e.id},P.createElement(X,{variant:"outline",style:{width:150},onClick:()=>d(e)},ti(t)))})))),s&&m&&!p&&P.createElement(cl,{questionnaire:a,submitButtonText:"Next",onSubmit:h}),s&&m&&p&&P.createElement("div",null,P.createElement("h3",null,"You're all set!"),P.createElement("p",null,"Check your email for a calendar invite."))))}function Xl(e){return ei(e.getTime())}function Zl(e){return ei(e.getTime()+26784e5)}function ei(e){return new Date(Math.max(Date.now(),e)).toISOString()}function ti(e){return e.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}function ni(e){return P.createElement(Va,{value:e.serviceRequest,loadTimelineResources:async(e,t)=>Promise.all([e.readHistory("ServiceRequest",t.id),e.search("Communication","based-on="+w(t)),e.search("Media","_count=100&based-on="+w(t)),e.search("DiagnosticReport","based-on="+w(t))]),createCommunication:(e,n,r)=>({resourceType:"Communication",status:"completed",basedOn:[t(e)],subject:e.subject,sender:t(n),sent:(new Date).toISOString(),payload:[{contentString:r}]}),createMedia:(e,n,r)=>({resourceType:"Media",status:"completed",basedOn:[t(e)],subject:e.subject,operator:t(n),issued:(new Date).toISOString(),content:r})})}export{Ae as AddressDisplay,Ne as AddressInput,$e as AnnotationInput,He as AsyncAutocomplete,_e as AttachmentArrayDisplay,hn as AttachmentArrayInput,pn as AttachmentButton,Be as AttachmentDisplay,gn as AttachmentInput,mr as BackboneElementDisplay,ea as BackboneElementInput,ra as CalendarInput,dr as CheckboxFormSection,wr as CodeInput,Jn as CodeableConceptDisplay,br as CodeableConceptInput,Yn as CodingDisplay,Tr as CodingInput,Zn as ContactDetailDisplay,zr as ContactDetailInput,Xn as ContactPointDisplay,Sr as ContactPointInput,fn as Container,Ar as DateTimeInput,$a as DefaultResourceTimeline,Qn as DescriptionList,Gn as DescriptionListEntry,pa as DiagnosticReportDisplay,Cn as Document,Yr as ElementDefinitionInputSelector,Xr as ElementDefinitionTypeInput,ja as EncounterTimeline,xa as ErrorBoundary,Bo as FhirPathTable,Tn as Form,pr as FormSection,er as HumanNameDisplay,Ir as HumanNameInput,tr as IdentifierDisplay,Mr as IdentifierInput,Sn as Logo,lr as MedplumLink,Me as MedplumProvider,_o as MemoizedFhirPathTable,jo as MemoizedSearchControl,nr as MoneyDisplay,Lr as MoneyInput,ha as ObservationTable,kn as Panel,qo as PatientTimeline,Qo as PlanDefinitionBuilder,rr as QuantityDisplay,Or as QuantityInput,yl as QuestionnaireBuilder,cl as QuestionnaireForm,ul as QuestionnaireFormItem,ll as QuestionnaireItemType,ar as RangeDisplay,$r as RangeInput,ir as ReferenceDisplay,_r as ReferenceInput,Nl as ReferenceRangeEditor,Il as ReferenceRangeGroupEditor,Wn as RegisterForm,Ll as RequestGroupDisplay,cr as ResourceArrayDisplay,qr as ResourceArrayInput,Fr as ResourceAvatar,sa as ResourceBadge,jl as ResourceBlame,_l as ResourceDiff,fr as ResourceForm,Kl as ResourceHistoryTable,Hr as ResourceInput,ca as ResourceName,sr as ResourcePropertyDisplay,Jr as ResourcePropertyInput,Ca as ResourceTable,Va as ResourceTimeline,Yl as Scheduler,Lo as SearchChangeEvent,Oo as SearchClickEvent,$o as SearchControl,yo as SearchFieldEditor,bo as SearchFilterEditor,Po as SearchLoadEvent,ni as ServiceRequestTimeline,_n as SignInForm,ma as StatusBadge,ba as Timeline,wa as TimelineItem,Qr as TimingInput,oo as addDateFilterBetween,Qa as addField,Ka as addFilter,eo as addLastMonthFilter,io as addMissingFilter,no as addNextMonthFilter,to as addThisMonthFilter,Ya as addTodayFilter,Xa as addTomorrowFilter,ao as addYearToDateFilter,Ja as addYesterdayFilter,fo as buildFieldNameString,_a as clearFilters,qa as clearFiltersOnField,Dr as convertIsoToLocal,Vr as convertLocalToIso,Nn as createScriptTag,Ga as deleteFilter,zn as getErrorsForInput,An as getIssuesForExpression,na as getMonthString,Eo as getOpString,Pn as getRecaptcha,go as getSearchOperators,po as getSortField,aa as getStartMonth,Ul as getTimeString,ur as getValueAndType,Ln as initRecaptcha,il as isChoiceQuestion,fl as isQuestionEnabled,ho as isSortDescending,xn as parseForm,vo as renderValue,Ba as setFilters,co as setOffset,so as setPage,vr as setPropertyValue,uo as setSort,Ta as sortByDateAndPriority,mo as toggleSort,Le as useMedplum,Re as useMedplumContext,Pe as useMedplumNavigate,Oe as useMedplumProfile,gr as useResource};
|
|
1
|
+
import{formatAddress as e,createReference as t,normalizeErrorString as n,formatCodeableConcept as r,formatCoding as a,formatHumanName as l,formatMoney as o,formatQuantity as c,formatRange as i,stringify as s,getElementDefinitionTypeName as u,PropertyType as m,formatTiming as d,formatPeriod as p,formatDateTime as h,getTypedPropertyValue as g,globalSchema as f,getPropertyDisplayName as E,deepEquals as v,capitalize as y,isValidDate as C,getDisplayString as k,getImageSrc as b,formatObservationValue as x,toTypedValue as T,getReferenceString as w,evalFhirPath as S,Operator as I,DEFAULT_SEARCH_COUNT as M,evalFhirPathTyped as A,getSearchParameterDetails as D,SearchParameterType as V,formatSearchQuery as R,getQuestionnaireAnswers as P,getCodeBySystem as N}from"@medplum/core";import O,{useState as z,useRef as $,createContext as L,useEffect as F,useContext as U,useCallback as W,forwardRef as j,createElement as q,useMemo as _}from"react";import{Group as K,NativeSelect as H,TextInput as Q,MultiSelect as B,Loader as G,Anchor as J,ActionIcon as Y,Button as X,createStyles as Z,Container as ee,useComponentDefaultProps as te,Paper as ne,Center as re,Title as ae,Stack as le,Text as oe,Alert as ce,Divider as ie,PasswordInput as se,Checkbox as ue,UnstyledButton as me,Avatar as de,Input as pe,JsonInput as he,Autocomplete as ge,Modal as fe,Textarea as Ee,Blockquote as ve,Badge as ye,Menu as Ce,ScrollArea as ke,Table as be,Pagination as xe,Radio as Te,Grid as we}from"@mantine/core";import Se from"prop-types";import{updateNotification as Ie,showNotification as Me}from"@mantine/notifications";function Ae(t){const n=t.value;return n?O.createElement(O.Fragment,null,e(n)):null}function De(e,t){return e&&e.line&&e.line.length>t?e.line[t]:""}function Ve(e,t,n){const r=e.line||[];for(;r.length<=t;)r.push("");return r[t]=n,{...e,line:r}}function Re(e){const[t,n]=z(e.defaultValue||{}),r=$();function a(t){n(t),e.onChange&&e.onChange(t)}return r.current=t,O.createElement(K,{spacing:"xs",grow:!0,noWrap:!0},O.createElement(H,{"data-testid":"address-use",defaultValue:t?.use,onChange:e=>{return t=e.currentTarget.value,void a({...r.current,use:t});var t},data:["","home","work","temp","old","billing"]}),O.createElement(H,{"data-testid":"address-type",defaultValue:t?.type,onChange:e=>{return t=e.currentTarget.value,void a({...r.current,type:t});var t},data:["","postal","physical","both"]}),O.createElement(Q,{placeholder:"Line 1",defaultValue:De(t,0),onChange:e=>{return t=e.currentTarget.value,void a(Ve(r.current||{},0,t));var t}}),O.createElement(Q,{placeholder:"Line 2",defaultValue:De(t,1),onChange:e=>{return t=e.currentTarget.value,void a(Ve(r.current||{},1,t));var t}}),O.createElement(Q,{placeholder:"City",defaultValue:t.city,onChange:e=>{return t=e.currentTarget.value,void a({...r.current,city:t});var t}}),O.createElement(Q,{placeholder:"State",defaultValue:t.state,onChange:e=>{return t=e.currentTarget.value,void a({...r.current,state:t});var t}}),O.createElement(Q,{placeholder:"Postal Code",defaultValue:t.postalCode,onChange:e=>{return t=e.currentTarget.value,void a({...r.current,postalCode:t});var t}}))}const Pe=L(void 0);function Ne(e){const t=e.medplum,n=e.navigate||Fe,[r,a]=z({profile:t.getProfile(),loading:!1});F((()=>{function e(){a({...r,profile:t.getProfile()})}return t.addEventListener("change",e),()=>t.removeEventListeneer("change",e)}),[t,r]);const l={...r,medplum:t,navigate:n};return O.createElement(Pe.Provider,{value:l},e.children)}function Oe(){return U(Pe)}function ze(){return Oe().medplum}function $e(){return Oe().navigate}function Le(){return Oe().profile}function Fe(e){window.location.assign(e)}function Ue(e){const n=Le(),[r,a]=z(e.defaultValue||{});return $().current=r,O.createElement(Q,{name:e.name,placeholder:"Annotation text",defaultValue:r.text,onChange:r=>function(r){const l=r?{text:r,authorReference:n&&t(n),time:(new Date).toISOString()}:{};a(l),e.onChange&&e.onChange(l)}(r.currentTarget.value)})}function We(e){e.preventDefault(),e.stopPropagation()}function je(e){if(qe(e))return!0;if(e instanceof HTMLTableCellElement){const t=e.children;if(1===t.length&&qe(t[0]))return!0}return!1}function qe(e){return e instanceof HTMLInputElement&&"checkbox"===e.type}function _e(e){const{defaultValue:t,toKey:n,toOption:r,loadOptions:a,onChange:l,onCreate:o,...c}=e,i=function(e){if(!e)return[];if(Array.isArray(e))return e;return[e]}(t),s=$(null),[u,m]=z(void 0),[d,p]=z(),[h,g]=z(),[f,E]=z(),[v,y]=z(i?.map(r)),C=$();C.current=u;const k=$();k.current=d;const b=$();b.current=h;const x=$();x.current=f;const T=$();T.current=v;const w=W((()=>{p(void 0);const e=s.current?.value?.trim()||"";if(e===C.current)return;m(e);const t=new AbortController;g(t),a(e,t.signal).then((e=>{t.signal.aborted||(y(e.map(r)),g(void 0),x.current&&(e.length>0&&l(e.slice(0,1)),E(!1)))})).catch(console.log)}),[a,l,r]),S=W((()=>{b.current&&(b.current.abort(),g(void 0)),void 0!==k.current&&window.clearTimeout(k.current);const e=window.setTimeout((()=>w()),100);p(e)}),[w]),I=W((e=>{const t=[];for(const n of e){let e=T.current?.find((e=>e.value===n))?.resource;e||(e=o(n)),t.push(e)}l(t)}),[l,o]),M=W((e=>{"Enter"===e.key&&(k.current||b.current?E(!0):(We(e),T.current&&T.current.length>0&&(y(T.current.slice(0,1)),I([T.current[0].value]))))}),[I]),A=W((e=>{const t=r(o(e));return y([...T.current,t]),t}),[o,y,r]),D=W(((e,t)=>!t),[]);return F((()=>()=>{b.current&&b.current.abort()}),[]),O.createElement(B,{...c,ref:s,defaultValue:i.map(n),searchable:!0,onKeyDown:M,onSearchChange:S,data:v,onFocus:w,onChange:I,onCreate:A,rightSectionWidth:40,rightSection:h?O.createElement(G,{size:16}):null,filter:D})}function Ke(e){const t=e.value,{contentType:n,url:r,title:a}=t??{};return r?O.createElement("div",{"data-testid":"attachment-display"},n?.startsWith("image/")&&O.createElement("img",{"data-testid":"attachment-image",style:{maxWidth:e.maxWidth},src:r,alt:t?.title}),n?.startsWith("video/")&&O.createElement("video",{"data-testid":"attachment-video",style:{maxWidth:e.maxWidth},controls:!0},O.createElement("source",{type:n,src:r})),"application/pdf"===n&&!a?.endsWith(".pdf")&&O.createElement("div",{"data-testid":"attachment-pdf",style:{maxWidth:e.maxWidth,minHeight:400}},O.createElement("iframe",{width:"100%",height:"400",src:r+"#navpanes=0",allowFullScreen:!0,frameBorder:0,seamless:!0})),O.createElement("div",{"data-testid":"download-link",style:{padding:"2px 16px 16px 16px"}},O.createElement(J,{href:t?.url,"data-testid":"attachment-details",target:"_blank",rel:"noopener noreferrer"},t?.title||"Download"))):null}function He(e){return O.createElement("div",null,e.values&&e.values.map(((t,n)=>O.createElement("div",{key:"attatchment-"+n},O.createElement(Ke,{value:t,maxWidth:e.maxWidth})))))}var Qe={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"},Be=Object.defineProperty,Ge=Object.defineProperties,Je=Object.getOwnPropertyDescriptors,Ye=Object.getOwnPropertySymbols,Xe=Object.prototype.hasOwnProperty,Ze=Object.prototype.propertyIsEnumerable,et=(e,t,n)=>t in e?Be(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,tt=(e,t)=>{for(var n in t||(t={}))Xe.call(t,n)&&et(e,n,t[n]);if(Ye)for(var n of Ye(t))Ze.call(t,n)&&et(e,n,t[n]);return e},nt=(e,t,n)=>{const r=j(((t,r)=>{var a,l=t,{color:o="currentColor",size:c=24,stroke:i=2,children:s}=l,u=((e,t)=>{var n={};for(var r in e)Xe.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&Ye)for(var r of Ye(e))t.indexOf(r)<0&&Ze.call(e,r)&&(n[r]=e[r]);return n})(l,["color","size","stroke","children"]);return q("svg",tt((a=tt({ref:r},Qe),Ge(a,Je({width:c,height:c,stroke:o,strokeWidth:i,className:`tabler-icon tabler-icon-${e}`}))),u),[...n.map((([e,t])=>q(e,t))),...s||[]])}));return r.propTypes={color:Se.string,size:Se.oneOfType([Se.string,Se.number]),stroke:Se.oneOfType([Se.string,Se.number])},r.displayName=`${t}`,r},rt=nt("adjustments-horizontal","IconAdjustmentsHorizontal",[["path",{d:"M14 6m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-0"}],["path",{d:"M4 6l8 0",key:"svg-1"}],["path",{d:"M16 6l4 0",key:"svg-2"}],["path",{d:"M8 12m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-3"}],["path",{d:"M4 12l2 0",key:"svg-4"}],["path",{d:"M10 12l10 0",key:"svg-5"}],["path",{d:"M17 18m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-6"}],["path",{d:"M4 18l11 0",key:"svg-7"}],["path",{d:"M19 18l1 0",key:"svg-8"}]]),at=nt("alert-circle","IconAlertCircle",[["path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M12 8l0 4",key:"svg-1"}],["path",{d:"M12 16l.01 0",key:"svg-2"}]]),lt=nt("bleach-off","IconBleachOff",[["path",{d:"M5 19h14m1.986 -1.977a2 2 0 0 0 -.146 -.773l-7.1 -12.25a2 2 0 0 0 -3.5 0l-.815 1.405m-1.488 2.568l-4.797 8.277a2 2 0 0 0 1.75 2.75",key:"svg-0"}],["path",{d:"M3 3l18 18",key:"svg-1"}]]),ot=nt("bleach","IconBleach",[["path",{d:"M5 19h14a2 2 0 0 0 1.84 -2.75l-7.1 -12.25a2 2 0 0 0 -3.5 0l-7.1 12.25a2 2 0 0 0 1.75 2.75",key:"svg-0"}]]),ct=nt("box-multiple","IconBoxMultiple",[["path",{d:"M7 3m0 2a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2z",key:"svg-0"}],["path",{d:"M17 17v2a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-10a2 2 0 0 1 2 -2h2",key:"svg-1"}]]),it=nt("brackets-contain","IconBracketsContain",[["path",{d:"M7 4h-4v16h4",key:"svg-0"}],["path",{d:"M17 4h4v16h-4",key:"svg-1"}],["path",{d:"M8 16h.01",key:"svg-2"}],["path",{d:"M12 16h.01",key:"svg-3"}],["path",{d:"M16 16h.01",key:"svg-4"}]]),st=nt("bucket-off","IconBucketOff",[["path",{d:"M5.029 5.036c-.655 .58 -1.029 1.25 -1.029 1.964c0 2.033 3.033 3.712 6.96 3.967m3.788 -.21c3.064 -.559 5.252 -2.029 5.252 -3.757c0 -2.21 -3.582 -4 -8 -4c-1.605 0 -3.1 .236 -4.352 .643",key:"svg-0"}],["path",{d:"M4 7c0 .664 .088 1.324 .263 1.965l2.737 10.035c.5 1.5 2.239 2 5 2s4.5 -.5 5 -2c.1 -.3 .252 -.812 .457 -1.535m.862 -3.146c.262 -.975 .735 -2.76 1.418 -5.354a7.45 7.45 0 0 0 .263 -1.965",key:"svg-1"}],["path",{d:"M3 3l18 18",key:"svg-2"}]]),ut=nt("bucket","IconBucket",[["path",{d:"M12 7m-8 0a8 4 0 1 0 16 0a8 4 0 1 0 -16 0",key:"svg-0"}],["path",{d:"M4 7c0 .664 .088 1.324 .263 1.965l2.737 10.035c.5 1.5 2.239 2 5 2s4.5 -.5 5 -2c.333 -1 1.246 -4.345 2.737 -10.035a7.45 7.45 0 0 0 .263 -1.965",key:"svg-1"}]]),mt=nt("calendar","IconCalendar",[["path",{d:"M4 5m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z",key:"svg-0"}],["path",{d:"M16 3l0 4",key:"svg-1"}],["path",{d:"M8 3l0 4",key:"svg-2"}],["path",{d:"M4 11l16 0",key:"svg-3"}],["path",{d:"M11 15l1 0",key:"svg-4"}],["path",{d:"M12 15l0 3",key:"svg-5"}]]),dt=nt("check","IconCheck",[["path",{d:"M5 12l5 5l10 -10",key:"svg-0"}]]),pt=nt("checkbox","IconCheckbox",[["path",{d:"M9 11l3 3l8 -8",key:"svg-0"}],["path",{d:"M20 12v6a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h9",key:"svg-1"}]]),ht=nt("circle-minus","IconCircleMinus",[["path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M9 12l6 0",key:"svg-1"}]]),gt=nt("circle-plus","IconCirclePlus",[["path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M9 12l6 0",key:"svg-1"}],["path",{d:"M12 9l0 6",key:"svg-2"}]]),ft=nt("cloud-upload","IconCloudUpload",[["path",{d:"M7 18a4.6 4.4 0 0 1 0 -9a5 4.5 0 0 1 11 2h1a3.5 3.5 0 0 1 0 7h-1",key:"svg-0"}],["path",{d:"M9 15l3 -3l3 3",key:"svg-1"}],["path",{d:"M12 12l0 9",key:"svg-2"}]]),Et=nt("columns","IconColumns",[["path",{d:"M4 6l5.5 0",key:"svg-0"}],["path",{d:"M4 10l5.5 0",key:"svg-1"}],["path",{d:"M4 14l5.5 0",key:"svg-2"}],["path",{d:"M4 18l5.5 0",key:"svg-3"}],["path",{d:"M14.5 6l5.5 0",key:"svg-4"}],["path",{d:"M14.5 10l5.5 0",key:"svg-5"}],["path",{d:"M14.5 14l5.5 0",key:"svg-6"}],["path",{d:"M14.5 18l5.5 0",key:"svg-7"}]]),vt=nt("currency-dollar","IconCurrencyDollar",[["path",{d:"M16.7 8a3 3 0 0 0 -2.7 -2h-4a3 3 0 0 0 0 6h4a3 3 0 0 1 0 6h-4a3 3 0 0 1 -2.7 -2",key:"svg-0"}],["path",{d:"M12 3v3m0 12v3",key:"svg-1"}]]),yt=nt("dots","IconDots",[["path",{d:"M5 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M19 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]),Ct=nt("edit","IconEdit",[["path",{d:"M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1",key:"svg-0"}],["path",{d:"M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.415z",key:"svg-1"}],["path",{d:"M16 5l3 3",key:"svg-2"}]]),kt=nt("equal-not","IconEqualNot",[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}],["path",{d:"M5 19l14 -14",key:"svg-2"}]]),bt=nt("equal","IconEqual",[["path",{d:"M5 10h14",key:"svg-0"}],["path",{d:"M5 14h14",key:"svg-1"}]]),xt=nt("file-alert","IconFileAlert",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z",key:"svg-1"}],["path",{d:"M12 17l.01 0",key:"svg-2"}],["path",{d:"M12 11l0 3",key:"svg-3"}]]),Tt=nt("file-plus","IconFilePlus",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z",key:"svg-1"}],["path",{d:"M12 11l0 6",key:"svg-2"}],["path",{d:"M9 14l6 0",key:"svg-3"}]]),wt=nt("filter","IconFilter",[["path",{d:"M5.5 5h13a1 1 0 0 1 .5 1.5l-5 5.5l0 7l-4 -3l0 -4l-5 -5.5a1 1 0 0 1 .5 -1.5",key:"svg-0"}]]),St=nt("list-details","IconListDetails",[["path",{d:"M13 5h8",key:"svg-0"}],["path",{d:"M13 9h5",key:"svg-1"}],["path",{d:"M13 15h8",key:"svg-2"}],["path",{d:"M13 19h5",key:"svg-3"}],["path",{d:"M3 4m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z",key:"svg-4"}],["path",{d:"M3 14m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z",key:"svg-5"}]]),It=nt("math-greater","IconMathGreater",[["path",{d:"M5 18l14 -6l-14 -6",key:"svg-0"}]]),Mt=nt("math-lower","IconMathLower",[["path",{d:"M19 18l-14 -6l14 -6",key:"svg-0"}]]),At=nt("message","IconMessage",[["path",{d:"M4 21v-13a3 3 0 0 1 3 -3h10a3 3 0 0 1 3 3v6a3 3 0 0 1 -3 3h-9l-4 4",key:"svg-0"}],["path",{d:"M8 9l8 0",key:"svg-1"}],["path",{d:"M8 13l6 0",key:"svg-2"}]]),Dt=nt("pin","IconPin",[["path",{d:"M15 4.5l-4 4l-4 1.5l-1.5 1.5l7 7l1.5 -1.5l1.5 -4l4 -4",key:"svg-0"}],["path",{d:"M9 15l-4.5 4.5",key:"svg-1"}],["path",{d:"M14.5 4l5.5 5.5",key:"svg-2"}]]),Vt=nt("pinned-off","IconPinnedOff",[["path",{d:"M3 3l18 18",key:"svg-0"}],["path",{d:"M15 4.5l-3.249 3.249m-2.57 1.433l-2.181 .818l-1.5 1.5l7 7l1.5 -1.5l.82 -2.186m1.43 -2.563l3.25 -3.251",key:"svg-1"}],["path",{d:"M9 15l-4.5 4.5",key:"svg-2"}],["path",{d:"M14.5 4l5.5 5.5",key:"svg-3"}]]),Rt=nt("settings","IconSettings",[["path",{d:"M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z",key:"svg-0"}],["path",{d:"M12 12m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0",key:"svg-1"}]]),Pt=nt("sort-ascending","IconSortAscending",[["path",{d:"M4 6l7 0",key:"svg-0"}],["path",{d:"M4 12l7 0",key:"svg-1"}],["path",{d:"M4 18l9 0",key:"svg-2"}],["path",{d:"M15 9l3 -3l3 3",key:"svg-3"}],["path",{d:"M18 6l0 12",key:"svg-4"}]]),Nt=nt("sort-descending","IconSortDescending",[["path",{d:"M4 6l9 0",key:"svg-0"}],["path",{d:"M4 12l7 0",key:"svg-1"}],["path",{d:"M4 18l7 0",key:"svg-2"}],["path",{d:"M15 15l3 3l3 -3",key:"svg-3"}],["path",{d:"M18 6l0 12",key:"svg-4"}]]),Ot=nt("square","IconSquare",[["path",{d:"M4 4m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z",key:"svg-0"}]]),zt=nt("table-export","IconTableExport",[["path",{d:"M11.5 20h-5.5a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v7.5m-16 -3.5h16m-10 -6v16m4 -1h7m-3 -3l3 3l-3 3",key:"svg-0"}]]),$t=nt("trash","IconTrash",[["path",{d:"M4 7l16 0",key:"svg-0"}],["path",{d:"M10 11l0 6",key:"svg-1"}],["path",{d:"M14 11l0 6",key:"svg-2"}],["path",{d:"M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12",key:"svg-3"}],["path",{d:"M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3",key:"svg-4"}]]),Lt=nt("x","IconX",[["path",{d:"M18 6l-12 12",key:"svg-0"}],["path",{d:"M6 6l12 12",key:"svg-1"}]]);function Ft(e){const t=ze(),n=$(null);function r(n){if(!n)return;if(!n.name)return;e.onUploadStart&&e.onUploadStart();const r=n.name,a=n.type||"application/octet-stream";t.createBinary(n,r,a,e.onUploadProgress).then((t=>{e.onUpload({contentType:t.contentType,url:t.url,title:r})})).catch((e=>{alert(e?.issue?.[0]?.details?.text)}))}return O.createElement(O.Fragment,null,O.createElement("input",{type:"file","data-testid":"upload-file-input",style:{display:"none"},ref:n,onChange:e=>function(e){We(e);const t=e.target.files;t&&Array.from(t).forEach(r)}(e)}),e.children({onClick:function(e){We(e),n.current?.click()}}))}function Ut(e){const[t,n]=z(e.defaultValue??[]),r=$();function a(t){n(t),e.onChange&&e.onChange(t)}return r.current=t,O.createElement("table",{style:{width:"100%"}},O.createElement("colgroup",null,O.createElement("col",{width:"97%"}),O.createElement("col",{width:"3%"})),O.createElement("tbody",null,t.map(((e,n)=>O.createElement("tr",{key:`${n}-${t.length}`},O.createElement("td",null,O.createElement(Ke,{value:e,maxWidth:200})),O.createElement("td",null,O.createElement(Y,{title:"Remove",size:"sm",onClick:e=>{We(e);const r=t.slice();r.splice(n,1),a(r)}},O.createElement(ht,null)))))),O.createElement("tr",null,O.createElement("td",null),O.createElement("td",null,O.createElement(Ft,{onUpload:e=>{a([...r.current,e])}},(e=>O.createElement(Y,{...e,title:"Add",size:"sm",color:"green"},O.createElement(ft,{size:16}))))))))}function Wt(e){const[t,n]=z(e.defaultValue);function r(t){n(t),e.onChange&&e.onChange(t)}return t?O.createElement(O.Fragment,null,O.createElement(Ke,{value:t,maxWidth:200}),O.createElement(X,{onClick:e=>{We(e),r(void 0)}},"Remove")):O.createElement(Ft,{onUpload:r},(e=>O.createElement(X,{...e},"Upload...")))}const jt=Z((()=>({root:{"@media (max-width: 800px)":{paddingLeft:4,paddingRight:4}}})));function qt(e){const{children:t,...n}=e,{classes:r}=jt();return O.createElement(ee,{className:r.root,...n},t)}const _t=Z(((e,{width:t,fill:n})=>({paper:{maxWidth:t,margin:`${e.spacing.xl}px auto`,padding:n?0:e.spacing.md,"@media (max-width: 800px)":{padding:n?0:8},"& img":{width:"100%",maxWidth:"100%"},"& video":{width:"100%",maxWidth:"100%"}}}))),Kt={shadow:"xs",radius:"md",withBorder:!0};function Ht(e){const{className:t,children:n,width:r,fill:a,unstyled:l,...o}=te("Panel",Kt,e),{classes:c,cx:i}=_t({width:r,fill:a},{name:"Panel",unstyled:l});return O.createElement(ne,{className:i(c.paper,t),...o},n)}function Qt(e){const{children:t,...n}=e;return O.createElement(qt,null,O.createElement(Ht,{...n},t))}function Bt(e){const t={};for(const n of Array.from(e.elements))n instanceof HTMLInputElement?Gt(t,n):n instanceof HTMLTextAreaElement?t[n.name]=n.value:n instanceof HTMLSelectElement&&Jt(t,n);return t}function Gt(e,t){t.disabled||("checkbox"!==t.type&&"radio"!==t.type||t.checked)&&(e[t.name]=t.value)}function Jt(e,t){e[t.name]=t.value}function Yt(e){return O.createElement("form",{style:e.style,"data-testid":e.testid,onSubmit:t=>{t.preventDefault();const n=Bt(t.target);e.onSubmit&&e.onSubmit(n)}},e.children)}function Xt(e){return O.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 491 491",style:{width:e.size,height:e.size}},O.createElement("title",null,"Medplum Logo"),O.createElement("path",{fill:e.fill||"#ad7136",d:"M282 67c6-16 16-29 29-40L289 0c-22 17-37 41-43 68l17 23 19-24z"}),O.createElement("path",{fill:e.fill||"#946af9",d:"M311 63c-17 0-33 4-48 11-16-7-32-11-49-11-87 0-158 96-158 214s71 214 158 214c17 0 33-4 49-11 15 7 31 11 48 11 87 0 158-96 158-214S398 63 311 63z"}),O.createElement("path",{fill:e.fill||"#7857c5",d:"M231 489l-17 2c-87 0-158-96-158-214S127 63 214 63l17 1c-39 12-70 102-70 213s31 201 70 212z"}),O.createElement("path",{fill:e.fill||"#40bc26",d:"M207 220a176 176 0 01-177 43A176 176 0 01251 43l1 5c17 59 2 125-45 172z"}),O.createElement("path",{fill:e.fill||"#33961e",d:"M252 48A421 421 0 0057 270l-27-7A176 176 0 01251 43l1 5z"}))}function Zt(e,t){return e?.issue?.filter((e=>tn(e.expression?.[0],t)))?.map((e=>e.details?.text))?.join("\n")}function en(e,t){return e?.issue?.filter((e=>tn(e.expression?.[0],t)))}function tn(e,t){if(e===t)return!0;if(!e||!t)return!1;const n=e.indexOf(".");if(n>=0&&e.substring(n+1)===t)return!0;const r=t.indexOf(".");return r>=0&&t.substring(r+1)===e}function nn(e){const t=ze(),[n,r]=z();return O.createElement(Yt,{style:{maxWidth:400},onSubmit:async n=>{try{e.handleAuthResponse(await t.startNewProject({login:e.login,projectName:n.projectName}))}catch(e){r(e)}}},O.createElement(re,{sx:{flexDirection:"column"}},O.createElement(Xt,{size:32}),O.createElement(ae,null,"Create project")),O.createElement(le,{spacing:"xl"},O.createElement(Q,{name:"projectName",label:"Project Name",placeholder:"My Project",required:!0,autoFocus:!0,error:Zt(n,"firstName")}),O.createElement(oe,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",O.createElement(J,{href:"https://www.medplum.com/privacy"},"Privacy Policy")," and ",O.createElement(J,{href:"https://www.medplum.com/terms"},"Terms of Service"),".")),O.createElement(K,{position:"right",mt:"xl",noWrap:!0},O.createElement(X,{type:"submit"},"Create project")))}function rn(e,t){const n=document.getElementsByTagName("head")[0],r=document.createElement("script");r.async=!0,r.src=e,r.onload=t||null,n.appendChild(r)}function an(e){const t=ze(),{googleClientId:n,handleGoogleCredential:r}=e,a=$(null),[l,o]=z("undefined"!=typeof google),[c,i]=z(!1),[s,u]=z(!1);return F((()=>{"undefined"!=typeof google?(c||(google.accounts.id.initialize({client_id:n,callback:r}),i(!0)),a.current&&!s&&(google.accounts.id.renderButton(a.current,{}),u(!0))):rn("https://accounts.google.com/gsi/client",(()=>o(!0)))}),[t,n,c,l,a,s,r]),n?O.createElement("div",{ref:a}):null}function ln(e){if(e)return e;if("undefined"!=typeof window){const e=window.location.protocol+"//"+window.location.host;if(("http://localhost:3000,http://127.0.0.1:3000,http://localhost:6006,http://127.0.0.1:6006,https://app.medplum.com,https://docs.medplum.com,https://storybook.medplum.com,https://graphiql.medplum.com,https://www.medplum.com"?.split(",")??[]).includes(e))return"921088377005-3j1sa10vr6hj86jgmdfh2l53v3mp7lfi.apps.googleusercontent.com"}}function on(e){const t=e.outcome?.issue||e.issues;return t?O.createElement(ce,{icon:O.createElement(at,{size:16}),color:"red"},t.map((e=>O.createElement("div",{"data-testid":"text-field-error",key:e.details?.text},e.details?.text)))):null}function cn(e){"undefined"==typeof grecaptcha&&rn("https://www.google.com/recaptcha/api.js?render="+e)}function sn(e){return new Promise(((t,n)=>{grecaptcha.ready((async()=>{try{t(await grecaptcha.execute(e,{action:"submit"}))}catch(e){n(e)}}))}))}function un(e){const t=ln(e.googleClientId),n=e.recaptchaSiteKey,r=ze(),[a,l]=z(),o=en(a,void 0);return F((()=>cn(n)),[n]),O.createElement(Yt,{style:{maxWidth:400},onSubmit:async t=>{try{const a=await sn(n);e.handleAuthResponse(await r.startNewUser({projectId:e.projectId,firstName:t.firstName,lastName:t.lastName,email:t.email,password:t.password,remember:"true"===t.remember,recaptchaSiteKey:n,recaptchaToken:a}))}catch(e){l(e)}}},O.createElement(re,{sx:{flexDirection:"column"}},e.children),O.createElement(on,{issues:o}),t&&O.createElement(O.Fragment,null,O.createElement(K,{position:"center",p:"xl",style:{height:70}},O.createElement(an,{googleClientId:t,handleGoogleCredential:async t=>{try{e.handleAuthResponse(await r.startGoogleLogin({googleClientId:t.clientId,googleCredential:t.credential,createUser:!0}))}catch(e){l(e)}}})),O.createElement(ie,{label:"or",labelPosition:"center",my:"lg"})),O.createElement(le,{spacing:"xl"},O.createElement(Q,{name:"firstName",type:"text",label:"First name",placeholder:"First name",required:!0,autoFocus:!0,error:Zt(a,"firstName")}),O.createElement(Q,{name:"lastName",type:"text",label:"Last name",placeholder:"Last name",required:!0,error:Zt(a,"lastName")}),O.createElement(Q,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,error:Zt(a,"email")}),O.createElement(se,{name:"password",label:"Password",autoComplete:"off",required:!0,error:Zt(a,"password")}),O.createElement(oe,{color:"dimmed",size:"xs"},"By clicking submit you agree to the Medplum"," ",O.createElement(J,{href:"https://www.medplum.com/privacy"},"Privacy Policy")," and ",O.createElement(J,{href:"https://www.medplum.com/terms"},"Terms of Service"),"."),O.createElement(oe,{color:"dimmed",size:"xs"},"This site is protected by reCAPTCHA and the Google"," ",O.createElement(J,{href:"https://policies.google.com/privacy"},"Privacy Policy")," and ",O.createElement(J,{href:"https://policies.google.com/terms"},"Terms of Service")," apply.")),O.createElement(K,{position:"apart",mt:"xl",noWrap:!0},O.createElement(ue,{name:"remember",label:"Remember me",size:"xs"}),O.createElement(X,{type:"submit"},"Create account")))}function mn(e){const{type:t,projectId:n,googleClientId:r,recaptchaSiteKey:a,onSuccess:l}=e,o=ze(),[c,i]=z(void 0),[s,u]=z();function m(e){e.code?o.processCode(e.code).then((()=>l())).catch(console.log):e.login&&i(e.login)}return F((()=>{"patient"===t&&c&&o.startNewPatient({login:c,projectId:n}).then((e=>o.processCode(e.code))).then((()=>l())).catch((e=>u(e)))}),[o,t,n,c,l]),O.createElement(Qt,{width:450},s&&O.createElement("pre",null,JSON.stringify(s,null,2)),!c&&O.createElement(un,{projectId:n,googleClientId:r,recaptchaSiteKey:a,handleAuthResponse:m},e.children),c&&"project"===t&&O.createElement(nn,{login:c,handleAuthResponse:m}))}function dn(e){const[t,n]=z();return t?O.createElement(hn,{email:t,...e}):O.createElement(pn,{setEmail:n,...e})}function pn(e){const{setEmail:t,onRegister:n,handleAuthResponse:r,children:a,...l}=e,o=ze(),c=ln(e.googleClientId),i=W((async e=>{if(!e.authorizeUrl)return!1;const t=JSON.stringify({...await o.ensureCodeChallenge(l),domain:e.domain}),n=new URL(e.authorizeUrl);return n.searchParams.set("state",t),window.location.assign(n.toString()),!0}),[o,l]),s=W((async e=>{const n=await o.post("auth/method",{email:e.email});await i(n)||t(e.email)}),[o,i,t]),u=W((async e=>{const t=await o.startGoogleLogin({...l,googleCredential:e.credential});await i(t)||r(t)}),[o,l,i,r]);return O.createElement(Yt,{style:{maxWidth:400},onSubmit:s},O.createElement(re,{sx:{flexDirection:"column"}},a),c&&O.createElement(O.Fragment,null,O.createElement(K,{position:"center",p:"xl",style:{height:70}},O.createElement(an,{googleClientId:c,handleGoogleCredential:u})),O.createElement(ie,{label:"or",labelPosition:"center",my:"lg"})),O.createElement(Q,{name:"email",type:"email",label:"Email",placeholder:"name@domain.com",required:!0,autoFocus:!0}),O.createElement(K,{position:"apart",mt:"xl",spacing:0,noWrap:!0},n&&O.createElement(J,{component:"button",type:"button",color:"dimmed",onClick:n,size:"xs"},"Register"),O.createElement(X,{type:"submit"},"Next")))}function hn(e){const{onForgotPassword:t,handleAuthResponse:n,children:r,...a}=e,l=ze(),[o,c]=z(),i=en(o,void 0),s=W((e=>{l.startLogin({...a,password:e.password,remember:"on"===e.remember}).then(n).catch(c)}),[l,a,n]);return O.createElement(Yt,{style:{maxWidth:400},onSubmit:s},O.createElement(re,{sx:{flexDirection:"column"}},r),O.createElement(on,{issues:i}),O.createElement(le,{spacing:"xl"},O.createElement(se,{name:"password",label:"Password",autoComplete:"off",required:!0,error:Zt(o,"password")})),O.createElement(K,{position:"apart",mt:"xl",spacing:0,noWrap:!0},t&&O.createElement(J,{component:"button",type:"button",color:"dimmed",onClick:t,size:"xs"},"Forgot password"),O.createElement(ue,{id:"remember",name:"remember",label:"Remember me",size:"xs",sx:{lineHeight:1}}),O.createElement(X,{type:"submit"},"Sign in")))}function gn(e){const t=ze();return O.createElement(le,null,O.createElement(re,{sx:{flexDirection:"column"}},O.createElement(Xt,{size:32}),O.createElement(ae,null,"Choose profile")),e.memberships.map((n=>O.createElement(me,{key:n.id,onClick:()=>{t.post("auth/profile",{login:e.login,profile:n.id}).then(e.handleAuthResponse).catch(console.log)}},O.createElement(K,null,O.createElement(de,{radius:"xl"}),O.createElement("div",{style:{flex:1}},O.createElement(oe,{size:"sm",weight:500},n.profile?.display),O.createElement(oe,{color:"dimmed",size:"xs"},n.project?.display)))))))}function fn(e){const t=ze();return O.createElement(Yt,{style:{maxWidth:400},onSubmit:n=>{t.post("auth/scope",{login:e.login,scope:Object.keys(n).join(" ")}).then(e.handleAuthResponse).catch(console.log)}},O.createElement(le,null,O.createElement(re,{sx:{flexDirection:"column"}},O.createElement(Xt,{size:32}),O.createElement(ae,null,"Choose scope")),O.createElement(le,null,(e.scope||"openid").split(" ").map((e=>O.createElement(ue,{key:e,id:e,name:e,label:e,defaultChecked:!0})))),O.createElement(K,{position:"right",mt:"xl"},O.createElement(X,{type:"submit"},"Set scope"))))}function En(e){const t=ze(),[r,a]=z(void 0);return O.createElement(Yt,{style:{maxWidth:400},onSubmit:r=>{a(void 0),t.post("auth/mfa/verify",{login:e.login,token:r.token}).then(e.handleAuthResponse).catch((e=>a(n(e))))}},O.createElement(le,null,O.createElement(re,{sx:{flexDirection:"column"}},O.createElement(Xt,{size:32}),O.createElement(ae,null,"Enter MFA code")),r&&O.createElement(ce,{icon:O.createElement(at,{size:16}),title:"Error",color:"red"},r),O.createElement(le,null,O.createElement(Q,{name:"token",label:"MFA code",required:!0})),O.createElement(K,{position:"right",mt:"xl"},O.createElement(X,{type:"submit"},"Submit code"))))}function vn(e){const{chooseScopes:t,onSuccess:n,onForgotPassword:r,onRegister:a,onCode:l,...o}=e,c=ze(),[i,s]=z(void 0),[u,m]=z(!1),[d,p]=z(void 0),h=W((e=>{l?l(e):c.processCode(e).then((()=>{n&&n()})).catch(console.log)}),[c,l,n]),g=W((e=>{m(!!e.mfaRequired),e.login&&s(e.login),e.memberships&&p(e.memberships),e.code&&(t?p(void 0):h(e.code))}),[t,h]),f=W((e=>{h(e.code)}),[h]);return F((()=>{e.login&&c.get("auth/login/"+e.login).then(g).catch(console.error)}),[c,e,g]),O.createElement(Qt,{width:450},i?u?O.createElement(En,{login:i,handleAuthResponse:g}):d?O.createElement(gn,{login:i,memberships:d,handleAuthResponse:g}):"new"===e.projectId?O.createElement(nn,{login:i,handleAuthResponse:g}):e.chooseScopes?O.createElement(fn,{login:i,scope:e.scope,handleAuthResponse:f}):O.createElement("div",null,"Success"):O.createElement(dn,{onForgotPassword:r,onRegister:a,handleAuthResponse:g,...o},e.children))}const yn=["meta","implicitRules","language","text","contained","extension","modifierExtension"],Cn=Z((e=>({root:{display:"grid",gridTemplateColumns:"30% 70%",margin:0,"& > dt, & > dd":{padding:`${e.spacing.sm}px ${e.spacing.sm}px`,borderTop:`0.1px solid ${e.colors.gray[3]}`,margin:0}},compact:{gridTemplateColumns:"20% 80%","& > dt, & > dd":{padding:`0 ${e.spacing.xs}px ${e.spacing.xs}px 0`,border:0}}})));function kn(e){const{children:t,compact:n}=e,{classes:r,cx:a}=Cn();return O.createElement("dl",{className:a(r.root,{[r.compact]:n})},t)}function bn(e){return O.createElement(O.Fragment,null,O.createElement("dt",null,e.term),O.createElement("dd",null,e.children))}function xn(e){return O.createElement(O.Fragment,null,r(e.value))}function Tn(e){return O.createElement(O.Fragment,null,a(e.value))}function wn(e){const t=e.value;if(!t)return null;const n=[];return t.value&&n.push(t.value),(t.use||t.system)&&(n.push(" ["),t.use&&n.push(t.use),t.use&&t.system&&n.push(" "),t.system&&n.push(t.system),n.push("]")),O.createElement(O.Fragment,null,n.join("").trim())}function Sn(e){const t=e.value;return t?O.createElement(O.Fragment,null,t.name,t.name&&": ",t.telecom?.map(((e,t)=>O.createElement(wn,{key:"telecom-"+t,value:e})))):null}function In(e){const t=e.value;return t?O.createElement(O.Fragment,null,l(t,e.options)):null}function Mn(e){return O.createElement("div",null,e.value?.system,": ",e.value?.value)}function An(e){return O.createElement(O.Fragment,null,o(e.value))}function Dn(e){return O.createElement(O.Fragment,null,c(e.value))}function Vn(e){return O.createElement(O.Fragment,null,i(e.value))}function Rn(e){const t=e.value;return t?O.createElement(O.Fragment,null,O.createElement(Dn,{value:t.numerator})," / ",O.createElement(Dn,{value:t.denominator})):null}function Pn(e){const t=$e(),{to:n,suffix:r,label:a,onClick:l,children:o,...c}=e;let i=function(e){if(e){if("string"==typeof e)return function(e){if(e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/"))return e;return"/"+e}(e);if("resourceType"in e)return function(e){return`/${e.resourceType}/${e.id}`}(e);if("reference"in e)return function(e){return`/${e.reference}`}(e)}return"#"}(n);return r&&(i+="/"+r),O.createElement(J,{href:i,"aria-label":a,onClick:e=>{We(e),l?l():n&&t(i)},...c},o)}function Nn(e){if(!e.value)return null;const t=e.value.display||e.value.reference||s(e.value);return!1!==e.link&&e.value.reference?O.createElement(Pn,{to:e.value},t):O.createElement(O.Fragment,null,t)}function On(e){const t=e.property,n=e.values??[],r=t.type?.[0]?.code;return O.createElement(O.Fragment,null,n.map(((a,l)=>O.createElement("div",{key:`${l}-${n.length}`},O.createElement(zn,{arrayElement:!0,property:t,propertyType:r,value:a,ignoreMissingValues:e.ignoreMissingValues,link:e.link})))))}function zn(e){const{property:t,propertyType:n,value:r}=e;if("*"===t?.max&&!e.arrayElement)return"Attachment"===n?O.createElement(He,{values:r,maxWidth:e.maxWidth}):O.createElement(On,{property:t,values:r,ignoreMissingValues:e.ignoreMissingValues,link:e.link});switch(n){case m.boolean:return O.createElement(O.Fragment,null,void 0===r?"":Boolean(r).toString());case m.SystemString:case m.code:case m.date:case m.integer:case m.positiveInt:case m.string:case m.unsignedInt:case m.uri:case m.url:return O.createElement(O.Fragment,null,r);case m.canonical:return O.createElement(Nn,{value:{reference:r},link:e.link});case m.dateTime:case m.instant:return O.createElement(O.Fragment,null,h(r));case m.markdown:return O.createElement("pre",null,r);case m.Address:return O.createElement(Ae,{value:r});case m.Annotation:return O.createElement(O.Fragment,null,r?.text);case m.Attachment:return O.createElement(Ke,{value:r,maxWidth:e.maxWidth});case m.CodeableConcept:return O.createElement(xn,{value:r});case m.Coding:return O.createElement(Tn,{value:r});case m.ContactDetail:return O.createElement(Sn,{value:r});case m.ContactPoint:return O.createElement(wn,{value:r});case m.HumanName:return O.createElement(In,{value:r});case m.Identifier:return O.createElement(Mn,{value:r});case m.Money:return O.createElement(An,{value:r});case m.Period:return O.createElement(O.Fragment,null,p(r));case m.Quantity:case m.Duration:return O.createElement(Dn,{value:r});case m.Range:return O.createElement(Vn,{value:r});case m.Ratio:return O.createElement(Rn,{value:r});case m.Reference:return O.createElement(Nn,{value:r,link:e.link});case m.Timing:return O.createElement(O.Fragment,null,d(r));case m.Dosage:case m.UsageContext:return O.createElement(Ln,{value:{type:n,value:r},compact:!0,ignoreMissingValues:e.ignoreMissingValues});default:if(!t?.path)throw Error(`Displaying property of type ${e.propertyType} requires element definition path`);return O.createElement(Ln,{value:{type:u(t),value:r},compact:!0,ignoreMissingValues:e.ignoreMissingValues})}}function $n(e,t){const n=g(e,t);return n?Array.isArray(n)?[n.map((e=>e.value)),n[0].type]:[n.value,n.type]:[void 0,"undefined"]}function Ln(e){const t=e.value,n=t.value;if(!n)return null;const r=t.type,a=f.types[r];return a?"object"==typeof n&&"name"in n&&1===Object.keys(n).length&&"string"==typeof n.name?O.createElement("div",null,n.name):O.createElement(kn,{compact:e.compact},Object.entries(a.properties).map((n=>{const a=n[0];if(yn.indexOf(a)>=0)return null;const l=n[1];l.path||(l.path=r+"."+a);const[o,c]=$n(t,a);return e.ignoreMissingValues&&(!o||Array.isArray(o)&&0===o.length)?null:O.createElement(bn,{key:a,term:E(a)},O.createElement(zn,{property:l,propertyType:c,value:o,ignoreMissingValues:e.ignoreMissingValues,link:e.link}))}))):O.createElement("div",null,r," not implemented")}function Fn(e){return O.createElement(K,{noWrap:!0},O.createElement("div",null,e.children),O.createElement("div",null,O.createElement(pe.Wrapper,{id:e.htmlFor,label:e.title,description:e.description},null)))}function Un(e){return O.createElement(pe.Wrapper,{id:e.htmlFor,label:e.title,description:e.description,error:Zt(e.outcome,e.htmlFor)},e.children)}function Wn(e,t){const n=ze(),r=$(void 0),a=$(void 0);!function(e,t,n){if(t.current=void 0,n.current=void 0,!e)return;"reference"in e?t.current=e:"resourceType"in e&&(n.current=e,"id"in e&&(t.current={reference:e.resourceType+"/"+e.id}))}(e,r,a);const l=function(e,t,n){return t.current&&e.getCachedReference(t.current)||n.current}(n,r,a),[o,c]=z(l);return F((()=>{r.current&&n.readReference(r.current).then((e=>{v(e,o)||c(e)})).catch((e=>{t&&t(e)}))}),[n,o,e,t]),l}function jn(e){const t=ze(),n=Wn(e.defaultValue),[r,a]=z(),[l,o]=z();return F((()=>{n&&(o(JSON.parse(JSON.stringify(n))),t.requestSchema(n.resourceType).then(a).catch(console.log))}),[t,n]),r&&l?O.createElement("form",{noValidate:!0,autoComplete:"off",onSubmit:t=>{t.preventDefault(),e.onSubmit&&e.onSubmit(l)}},O.createElement(le,{mb:"xl"},O.createElement(Un,{title:"Resource Type",htmlFor:"resourceType",outcome:e.outcome},O.createElement(Q,{name:"resourceType",defaultValue:l.resourceType,disabled:!0})),O.createElement(Un,{title:"ID",htmlFor:"id",outcome:e.outcome},O.createElement(Q,{name:"id",defaultValue:l.id,disabled:!0}))),O.createElement(wr,{typeName:l.resourceType,defaultValue:l,outcome:e.outcome,onChange:o}),O.createElement(K,{position:"right",mt:"xl"},O.createElement(X,{type:"submit"},"OK"),e.onDelete&&O.createElement(X,{variant:"outline",color:"red",type:"button",onClick:()=>{e.onDelete(l)}},"Delete"))):O.createElement("div",null,"Loading...")}function qn(e,t,n,r,a){const l=r.type;if(l.length>1)for(const n of l){const r=t.replace("[x]",y(n.code));r in e&&delete e[r]}return e[n]=a,e}function _n(e){return e.code}function Kn(e){return{value:e.code,label:(t=e,t.display||t.code||""),resource:e};var t}function Hn(e){return{code:e,display:e}}function Qn(e){const t=ze(),{elementDefinition:n,...r}=e,a=W((async(e,r)=>{const a=n.binding?.valueSet,l=(await t.searchValueSet(a,e,{signal:r})).expansion?.contains,o=[];for(const e of l)e.code&&!o.some((t=>t.code===e.code))&&o.push(e);return o}),[t,n]);return O.createElement(_e,{...r,creatable:!0,clearable:!0,toKey:_n,toOption:Kn,loadOptions:a,getCreateLabel:e=>`+ Create ${e}`,onCreate:Hn})}function Bn(e){const[t,n]=z(e.defaultValue);return O.createElement(Qn,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:t&&(r=t,r.coding?.map((e=>({system:e.system,code:e.code,display:e.display})))),onChange:function(t){const r=function(e){if(0===e.length)return;return{coding:e.map((e=>({system:e.system,code:e.code,display:e.display})))}}(t);n(r),e.onChange&&e.onChange(r)}});var r}function Gn(e){const[t,n]=z(e.defaultValue);return O.createElement(Qn,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:(r=t,r?{code:r}:void 0),onChange:function(t){const r=t[0]?.code;n(r),e.onChange&&e.onChange(r)}});var r}function Jn(e){const[t,n]=z(e.defaultValue);return O.createElement(Qn,{elementDefinition:e.property,name:e.name,placeholder:e.placeholder,defaultValue:t&&(r=t,{system:r.system,code:r.code,display:r.display}),onChange:function(t){const r=t[0],a=r&&{system:(l=r).system,code:l.code,display:l.display};var l;n(a),e.onChange&&e.onChange(a)}});var r}function Yn(e){const[t,n]=z(e.defaultValue),r=$();function a(t){t&&0===Object.keys(t).length&&(t=void 0),n(t),e.onChange&&e.onChange(t)}return r.current=t,O.createElement(K,{spacing:"xs",grow:!0,noWrap:!0},O.createElement(H,{"data-testid":"system",defaultValue:t?.system,onChange:e=>function(e){const t={...r.current,system:e};e||delete t.system,a(t)}(e.currentTarget.value),data:["","email","phone","fax","pager","sms","other"]}),O.createElement(H,{"data-testid":"use",defaultValue:t?.use,onChange:e=>function(e){const t={...r.current,use:e};e||delete t.use,a(t)}(e.currentTarget.value),data:["","home","work","temp","old","mobile"]}),O.createElement(Q,{placeholder:"Value",defaultValue:t?.value,onChange:e=>function(e){const t={...r.current,value:e};e||delete t.value,a(t)}(e.currentTarget.value)}))}function Xn(e){const[t,n]=z(e.defaultValue),r=$();function a(t){n(t),e.onChange&&e.onChange(t)}return r.current=t,O.createElement(K,{spacing:"xs",grow:!0,noWrap:!0},O.createElement(Q,{"data-testid":e.name+"-name",name:e.name+"-name",placeholder:"Name",style:{width:180},defaultValue:t?.name,onChange:e=>function(e){const t={...r.current,name:e};e||delete t.name,a(t)}(e.currentTarget.value)}),O.createElement(Yn,{name:e.name+"-telecom",defaultValue:t?.telecom?.[0],onChange:function(e){const t={...r.current,telecom:e&&[e]};e||delete t.telecom,a(t)}}))}function Zn(e){return O.createElement(Q,{id:e.name,name:e.name,"data-testid":e.name,placeholder:e.placeholder,type:"datetime-local",defaultValue:er(e.defaultValue),error:Zt(e.outcome,e.name),onChange:t=>{if(e.onChange){const n=t.currentTarget.value;e.onChange(tr(n))}}})}function er(e){if(!e)return"";const t=new Date(e);return C(t)?t.toLocaleDateString("sv")+"T"+t.toLocaleTimeString("sv"):""}function tr(e){if(!e)return"";const t=new Date(e);return C(t)?t.toISOString():""}function nr(e){return O.createElement(he,{id:e.name,name:e.name,"data-testid":"extension-input",defaultValue:s(e.defaultValue),onChange:t=>{e.onChange&&e.onChange(JSON.parse(t))}})}function rr(e){const[t,n]=z(e.defaultValue),r=$();function a(t){n(t),e.onChange&&e.onChange(t)}return r.current=t,O.createElement(K,{spacing:"xs",grow:!0,noWrap:!0},O.createElement(H,{defaultValue:t?.use,"data-testid":"use",onChange:e=>{return t=e.currentTarget.value,void a({...r.current,use:t||void 0});var t},data:["","temp","old","usual","official","nickname","anonymous","maiden"]}),O.createElement(Q,{placeholder:"Prefix",defaultValue:t?.prefix?.join(" "),onChange:e=>{return t=e.currentTarget.value,void a({...r.current,prefix:t?t.split(" "):void 0});var t}}),O.createElement(Q,{placeholder:"Given",defaultValue:t?.given?.join(" "),onChange:e=>{return t=e.currentTarget.value,void a({...r.current,given:t?t.split(" "):void 0});var t}}),O.createElement(Q,{placeholder:"Family",defaultValue:t?.family,onChange:e=>{return t=e.currentTarget.value,void a({...r.current,family:t||void 0});var t}}),O.createElement(Q,{placeholder:"Suffix",defaultValue:t?.suffix?.join(" "),onChange:e=>{return t=e.currentTarget.value,void a({...r.current,suffix:t?t.split(" "):void 0});var t}}))}function ar(e){const[t,n]=z(e.defaultValue);function r(t){n(t),e.onChange&&e.onChange(t)}return O.createElement(K,{spacing:"xs",grow:!0,noWrap:!0},O.createElement(Q,{placeholder:"System",defaultValue:t?.system,onChange:e=>r({...t,system:e.currentTarget.value})}),O.createElement(Q,{placeholder:"Value",defaultValue:t?.value,onChange:e=>r({...t,value:e.currentTarget.value})}))}const lr=["USD","EUR","CAD","GBP","AUD"];function or(e){const{onChange:t}=e,[n,r]=z(e.defaultValue),a=W((e=>{r(e),t&&t(e)}),[t]),l=W((e=>{a({...n,currency:e.currentTarget.value})}),[n,a]),o=W((e=>{a({...n,value:e.currentTarget.valueAsNumber})}),[n,a]),c=O.createElement(H,{defaultValue:n?.currency,data:lr,styles:{input:{fontWeight:500,borderTopLeftRadius:0,borderBottomLeftRadius:0,width:92}},onChange:l});return O.createElement(Q,{type:"number",label:e.label,placeholder:e.placeholder||"Value",defaultValue:n?.value?.toString()||"USD",icon:O.createElement(vt,{size:14}),rightSection:c,rightSectionWidth:92,onChange:o})}function cr(e){const[t,n]=z(e.defaultValue);function r(t){n(t),e.onChange&&e.onChange(t)}return O.createElement(K,{spacing:"xs",grow:!0,noWrap:!0},O.createElement(Zn,{name:e.name+".start",placeholder:"Start",defaultValue:t?.start,onChange:e=>r({...t,start:e})}),O.createElement(Zn,{name:e.name+".end",placeholder:"End",defaultValue:t?.end,onChange:e=>r({...t,end:e})}))}function ir(e){const[t,n]=z(e.defaultValue);function r(t){n(t),e.onChange&&e.onChange(t)}return O.createElement(K,{spacing:"xs",grow:!0,noWrap:!0},O.createElement(H,{style:{width:80},"data-testid":e.name+"-comparator",defaultValue:t?.comparator,data:["","<","<=",">=",">"],onChange:e=>r({...t,comparator:e.currentTarget.value})}),O.createElement(Q,{id:e.name,name:e.name,"data-testid":e.name+"-value",type:"number",placeholder:"Value",defaultValue:t?.value,step:"any",onWheel:t=>{e.disableWheel&&t.currentTarget.blur()},onChange:e=>{r({...t,value:sr(e.currentTarget.value)})}}),O.createElement(Q,{placeholder:"Unit","data-testid":e.name+"-unit",defaultValue:t?.unit,onChange:e=>r({...t,unit:e.currentTarget.value})}))}function sr(e){if(e)return parseFloat(e)}function ur(e){const[t,n]=z(e.defaultValue);function r(t){n(t),e.onChange&&e.onChange(t)}return O.createElement(K,{spacing:"xs",grow:!0,noWrap:!0},O.createElement(ir,{name:e.name+"-low",defaultValue:t?.low,onChange:e=>r({...t,low:e})}),O.createElement(ir,{name:e.name+"-high",defaultValue:t?.high,onChange:e=>r({...t,high:e})}))}function mr(e){const[t,n]=z(e.defaultValue);function r(t){n(t),e.onChange&&e.onChange(t)}return O.createElement(K,{spacing:"xs",grow:!0,noWrap:!0},O.createElement(ir,{name:e.name+"-numerator",defaultValue:t?.numerator,onChange:e=>r({...t,numerator:e})}),O.createElement(ir,{name:e.name+"-denominator",defaultValue:t?.denominator,onChange:e=>r({...t,denominator:e})}))}function dr(e){const t=Wn(e.value),n=t?k(t):e.alt??"",r=(t&&b(t))??e.src,a=e.radius??"xl",l={...e};return delete l.value,delete l.link,e.link?O.createElement(Pn,{to:t},O.createElement(de,{src:r,alt:n,radius:a,...l})):O.createElement(de,{src:r,alt:n,radius:a,...l})}const pr={Schedule:"_id",Task:"_id",Patient:"name",Practitioner:"name",Questionnaire:"name",ServiceRequest:"_id",DiagnosticReport:"_id",Specimen:"_id",Observation:"code",RequestGroup:"_id",ActivityDefinition:"name",User:"email:contains"};function hr(e){const t=ze(),n=Wn(e.defaultValue),[r,a]=z(n?k(n):""),[l,o]=z(!1),[c,i]=z([]);async function s(n){o(!0);const r=pr[e.resourceType]||"name",a=new URLSearchParams({[r]:n,_count:"10"}),l=await t.searchResources(e.resourceType,a);i(l.map((e=>({value:k(e),resource:e})))),o(!1)}return F((()=>{n&&a(k(n))}),[n,a]),O.createElement(ge,{itemComponent:gr,value:r,data:c,placeholder:e.placeholder,onFocus:()=>s(r),onChange:async function(e){return a(e),s(e)},onItemSubmit:function(t){a(t.value),i([]),e.onChange&&e.onChange(t.resource)},rightSection:l?O.createElement(G,{size:16}):null})}const gr=j((({value:e,resource:t,...n},r)=>O.createElement("div",{ref:r,...n},O.createElement(K,{noWrap:!0},O.createElement(dr,{value:t}),O.createElement("div",null,O.createElement(oe,null,e),O.createElement(oe,{size:"xs",color:"dimmed"},t.birthDate))))));function fr(e){const n=function(e){if(!e||0===e.length||1===e.length&&"Resource"===e[0])return;return e}(e.targetTypes),r=function(e,t){const n=e?.reference?.split("/")[0];if(n)return n;if(t&&t.length>0)return t[0];return}(e.defaultValue,n),[a,l]=z(e.defaultValue),[o,c]=z(r);$().current=a;return $().current=o,O.createElement(K,{spacing:"xs",grow:!0,noWrap:!0},n?O.createElement(H,{"data-testid":"reference-input-resource-type-select",defaultValue:o,onChange:e=>c(e.currentTarget.value),data:n}):O.createElement(Q,{"data-testid":"reference-input-resource-type-input",defaultValue:o,onChange:e=>c(e.currentTarget.value)}),O.createElement(hr,{resourceType:o,name:e.name+"-id",placeholder:e.placeholder,defaultValue:a,onChange:n=>{var r;r=n?t(n):void 0,l(r),e.onChange&&e.onChange(r)}}))}function Er(e){const[t,n]=z(e.defaultValue&&Array.isArray(e.defaultValue)?e.defaultValue:[]),r=$();function a(t){n(t),e.onChange&&e.onChange(t)}return r.current=t,O.createElement("table",{style:{width:"100%",borderCollapse:"collapse"}},O.createElement("colgroup",null,O.createElement("col",{width:"97%"}),O.createElement("col",{width:"3%"})),O.createElement("tbody",null,t.map(((n,l)=>O.createElement("tr",{key:`${l}-${t.length}`},O.createElement("td",null,O.createElement(kr,{arrayElement:!0,property:e.property,name:e.name+"."+l,defaultValue:n,onChange:e=>{const t=[...r.current];t[l]=e,a(t)}})),O.createElement("td",{style:{textAlign:"right"}},O.createElement(Y,{title:"Remove",size:"sm",onClick:e=>{We(e);const t=[...r.current];t.splice(l,1),a(t)}},O.createElement(ht,null)))))),O.createElement("tr",null,O.createElement("td",null),O.createElement("td",{style:{textAlign:"right"}},O.createElement(Y,{title:"Add",size:"sm",color:"green",onClick:e=>{We(e);const t=[...r.current];t.push(void 0),a(t)}},O.createElement(gt,null))))))}const vr=["sun","mon","tue","wed","thu","fri","sat"];function yr(e){const[t,n]=z(e.defaultValue||{}),[r,a]=z(!1),l=$();return l.current=t,O.createElement(O.Fragment,null,O.createElement(K,{spacing:"xs",grow:!0,noWrap:!0},O.createElement("span",null,d(l.current)||"No repeat"),O.createElement(X,{onClick:()=>a(!0)},"Edit")),O.createElement(Cr,{visible:r,defaultValue:l.current,onOk:t=>{e.onChange&&e.onChange(t),n(t),a(!1)},onCancel:()=>a(!1)}))}function Cr(e){const[t,n]=z(e.defaultValue||{}),r=$();function a(e){n({...r.current,repeat:e})}function l(e,t){t?function(e){const t=r.current?.repeat?.dayOfWeek||[];t.includes(e)||a({...r.current?.repeat,dayOfWeek:[...t,e]})}(e):function(e){const t=r.current?.repeat?.dayOfWeek||[];t.includes(e)&&a({...r.current?.repeat,dayOfWeek:t.filter((t=>t!==e))})}(e)}return r.current=t,O.createElement(fe,{title:"Timing",closeButtonLabel:"Close",opened:e.visible,onClose:()=>e.onCancel()},O.createElement("div",{style:{padding:"5px 20px",textAlign:"left"}},O.createElement(Un,{title:"Starts on",htmlFor:"timing-dialog-start"},O.createElement(Zn,{name:"timing-dialog-start",onChange:e=>{return t=e,void n({...r.current,event:[t]});var t}})),O.createElement(Un,{title:"Repeat every",htmlFor:"timing-dialog-period"},O.createElement(K,{spacing:"xs",grow:!0,noWrap:!0},O.createElement(Q,{type:"number",step:1,id:"timing-dialog-period",name:"timing-dialog-period",defaultValue:t?.repeat?.period,onChange:e=>{return t=parseInt(e.currentTarget.value),void a({...r.current?.repeat,period:t});var t}}),O.createElement(H,{id:"timing-dialog-periodUnit",name:"timing-dialog-periodUnit",defaultValue:t?.repeat?.periodUnit,onChange:e=>{return t=e.currentTarget.value,void a({...r.current?.repeat,periodUnit:t});var t},data:[{label:"day",value:"d"},{label:"week",value:"wk"},{label:"month",value:"mo"},{label:"year",value:"a"}]}))),O.createElement(Un,{title:"Repeat on"},O.createElement(K,{spacing:"xs",grow:!0,noWrap:!0},vr.map((e=>O.createElement(O.Fragment,{key:e},O.createElement("label",{htmlFor:"timing-dialog-repeat-"+e},e.charAt(0).toUpperCase()),O.createElement(ue,{id:"timing-dialog-repeat-"+e,name:"timing-dialog-repeat-"+e,onChange:t=>l(e,t.currentTarget.checked)}))))))),O.createElement(X,{onClick:()=>e.onOk(t)},"OK"))}function kr(e){const t=e.property,n=e.defaultPropertyType??t.type?.[0]?.code,r=e.name,a=e.defaultValue;if("*"===t.max&&!e.arrayElement)return"Attachment"===n?O.createElement(Ut,{name:r,defaultValue:a,onChange:e.onChange}):O.createElement(Er,{property:t,name:r,defaultValue:a,onChange:e.onChange});const l=t.type;return l.length>1?O.createElement(br,{elementDefinitionTypes:l,...e}):O.createElement(xr,{elementDefinitionType:l[0],...e})}function br(e){const t=e.elementDefinitionTypes;let n;e.defaultPropertyType&&(n=t.find((t=>t.code===e.defaultPropertyType))),n||(n=t[0]);const[r,a]=z(n);return O.createElement(K,{spacing:"xs",grow:!0,noWrap:!0},O.createElement(H,{style:{width:"200px"},defaultValue:r?.code,onChange:e=>{a(t.find((t=>t.code===e.currentTarget.value)))},data:t.map((e=>({value:e.code,label:e.code})))}),O.createElement(xr,{...e,elementDefinitionType:r,onChange:t=>{e.onChange&&e.onChange(t,e.name.replace("[x]",y(r.code)))}}))}function xr(e){const t=e.property,n=e.elementDefinitionType.code,r=e.name,a=e.defaultValue;switch(n){case m.SystemString:case m.canonical:case m.string:case m.time:case m.uri:case m.url:return O.createElement(Q,{id:r,name:r,"data-testid":r,defaultValue:a,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.value)},error:Zt(e.outcome,r)});case m.date:return O.createElement(Q,{type:"date",id:r,name:r,"data-testid":r,defaultValue:a,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.value)},error:Zt(e.outcome,r)});case m.dateTime:case m.instant:return O.createElement(Zn,{name:r,defaultValue:a,onChange:e.onChange,outcome:e.outcome});case m.decimal:case m.integer:case m.positiveInt:case m.unsignedInt:return O.createElement(Q,{type:"number",step:n===m.decimal?"any":"1",id:r,name:r,"data-testid":r,defaultValue:a,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.valueAsNumber)}});case m.code:return O.createElement(Gn,{property:t,name:r,defaultValue:a,onChange:e.onChange});case m.boolean:return O.createElement(ue,{id:r,name:r,"data-testid":r,defaultChecked:!!a,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.checked)}});case m.markdown:return O.createElement(Ee,{id:r,name:r,"data-testid":r,defaultValue:a,onChange:t=>{e.onChange&&e.onChange(t.currentTarget.value)}});case m.Address:return O.createElement(Re,{name:r,defaultValue:a,onChange:e.onChange});case m.Annotation:return O.createElement(Ue,{name:r,defaultValue:a,onChange:e.onChange});case m.Attachment:return O.createElement(Wt,{name:r,defaultValue:a,onChange:e.onChange});case m.CodeableConcept:return O.createElement(Bn,{property:t,name:r,defaultValue:a,onChange:e.onChange});case m.Coding:return O.createElement(Jn,{property:t,name:r,defaultValue:a,onChange:e.onChange});case m.ContactDetail:return O.createElement(Xn,{name:r,defaultValue:a,onChange:e.onChange});case m.ContactPoint:return O.createElement(Yn,{name:r,defaultValue:a,onChange:e.onChange});case m.Extension:return O.createElement(nr,{name:r,defaultValue:a,onChange:e.onChange});case m.HumanName:return O.createElement(rr,{name:r,defaultValue:a,onChange:e.onChange});case m.Identifier:return O.createElement(ar,{name:r,defaultValue:a,onChange:e.onChange});case m.Money:return O.createElement(or,{name:r,defaultValue:a,onChange:e.onChange});case m.Period:return O.createElement(cr,{name:r,defaultValue:a,onChange:e.onChange});case m.Duration:case m.Quantity:return O.createElement(ir,{name:r,defaultValue:a,onChange:e.onChange});case m.Range:return O.createElement(ur,{name:r,defaultValue:a,onChange:e.onChange});case m.Ratio:return O.createElement(mr,{name:r,defaultValue:a,onChange:e.onChange});case m.Reference:return O.createElement(fr,{name:r,defaultValue:a,targetTypes:Tr(t),onChange:e.onChange});case m.Timing:return O.createElement(yr,{name:r,defaultValue:a,onChange:e.onChange});case m.Dosage:case m.UsageContext:return O.createElement(wr,{typeName:n,defaultValue:a,onChange:e.onChange,outcome:e.outcome});default:return O.createElement(wr,{typeName:u(t),defaultValue:a,onChange:e.onChange,outcome:e.outcome})}}function Tr(e){return e?.type?.[0]?.targetProfile?.map((e=>e.split("/").pop()))}function wr(e){const[t,n]=z(e.defaultValue??{});function r(t){n(t),e.onChange&&e.onChange(t)}const a=e.typeName,l=f.types[a];if(!l)return O.createElement("div",null,a," not implemented");const o={type:a,value:t};return O.createElement(le,null,Object.entries(l.properties).map((n=>{const a=n[0];if("id"===a||yn.indexOf(a)>=0)return null;const l=n[1];if(!l.type)return null;const[c,i]=$n(o,a);return 1===l.type.length&&"boolean"===l.type[0].code?O.createElement(Fn,{key:a,title:E(a),description:l.definition,htmlFor:a},O.createElement(kr,{property:l,name:a,defaultValue:c,defaultPropertyType:i,outcome:e.outcome,onChange:(e,l)=>{r(qn(t,a,l??a,n[1],e))}})):O.createElement(Un,{key:a,title:E(a),description:l.definition,htmlFor:a,outcome:e.outcome},O.createElement(kr,{property:l,name:a,defaultValue:c,defaultPropertyType:i,outcome:e.outcome,onChange:(e,l)=>{r(qn(t,a,l??a,n[1],e))}}))})))}const Sr=Z((e=>({table:{width:350,"& th":{fontWeight:"normal",fontSize:11,padding:8,textAlign:"center"},"& td":{padding:"2px 4px"},"& td button":{width:44,height:44,color:e.colors[e.primaryColor][5],fontSize:16,fontWeight:500,textAlign:"center",padding:0,backgroundColor:e.colors[e.primaryColor][0],border:0,borderRadius:"50%",cursor:"pointer"},"& td button:hover":{backgroundColor:e.colors[e.primaryColor][1]},"& td button:disabled":{backgroundColor:"transparent",cursor:"default",color:e.colors.gray[4],fontWeight:"normal"}}})));function Ir(e){return e.toLocaleString("default",{month:"long"})+" "+e.getFullYear()}function Mr(e){const{classes:t}=Sr(),{onChangeMonth:n,onClick:r}=e,[a,l]=z(Ar);function o(e){l((t=>{const r=new Date(t.getTime());return r.setMonth(t.getMonth()+e),n(r),r}))}const c=_((()=>function(e,t){const n=new Date(e.getFullYear(),e.getMonth()),r=[];let a=[];for(let e=0;e<n.getDay();e++)a.push(void 0);for(;n.getMonth()===e.getMonth();)a.push({date:new Date(n.getTime()),available:Dr(n,t)}),6===n.getDay()&&(r.push(a),a=[]),n.setDate(n.getDate()+1);if(0!==n.getDay()){for(let e=n.getDay();e<7;e++)a.push(void 0);r.push(a)}return r}(a,e.slots)),[a,e.slots]);return O.createElement("div",null,O.createElement(K,{position:"apart",spacing:"xs",grow:!0,noWrap:!0},O.createElement("p",{style:{flex:1}},Ir(a)),O.createElement(K,{position:"right",spacing:"xs"},O.createElement(X,{variant:"outline","aria-label":"Previous month",onClick:()=>o(-1)},"<"),O.createElement(X,{variant:"outline","aria-label":"Next month",onClick:()=>o(1)},">"))),O.createElement("table",{className:t.table},O.createElement("thead",null,O.createElement("tr",null,O.createElement("th",null,"SUN"),O.createElement("th",null,"MON"),O.createElement("th",null,"TUE"),O.createElement("th",null,"WED"),O.createElement("th",null,"THU"),O.createElement("th",null,"FRI"),O.createElement("th",null,"SAT"))),O.createElement("tbody",null,c.map(((e,t)=>O.createElement("tr",{key:"week-"+t},e.map(((e,t)=>O.createElement("td",{key:"day-"+t},e&&O.createElement(X,{disabled:!e.available,onClick:()=>r(e.date)},e.date.getDate()))))))))))}function Ar(){const e=new Date;return e.setDate(1),e.setHours(0,0,0,0),e}function Dr(e,t){for(const n of t){const t=new Date(n.start);if(t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth()&&t.getDate()===e.getDate())return!0}return!1}const Vr=Z((e=>({noteBody:{fontSize:e.fontSizes.sm},noteCite:{fontSize:e.fontSizes.xs,marginBlockStart:3},noteRoot:{padding:5}})));function Rr({value:e}){const{classes:t}=Vr();return e?O.createElement(le,{justify:"flex-start",spacing:"xs"},e.map(((e,n)=>e.text&&O.createElement(ve,{key:`note-${n}`,classNames:{cite:t.noteCite,body:t.noteBody,root:t.noteRoot},cite:e.authorReference?.display||e.authorString,icon:null},e.text)))):null}function Pr(e){const{value:t,link:n,...r}=e,a=Wn(t);if(!a)return null;const l=k(a);return n?O.createElement(Pn,{to:a,...r},l):O.createElement(oe,{component:"span",...r},l)}function Nr(e){return O.createElement(K,{spacing:"xs"},O.createElement(dr,{size:24,radius:12,value:e.value,link:e.link}),O.createElement(Pr,{value:e.value,link:e.link}))}const Or={draft:"blue",active:"blue","on-hold":"yellow",revoked:"red",completed:"green","entered-in-error":"red",unknown:"gray",retired:"gray",registered:"blue",preliminary:"blue",final:"green",amended:"yellow",corrected:"yellow",cancelled:"red",requested:"blue",received:"blue",accepted:"blue",rejected:"red",ready:"blue","in-progress":"blue",failed:"red",proposed:"blue",pending:"blue",booked:"blue",arrived:"blue",fulfilled:"green",noshow:"red","checked-in":"blue",waitlist:"gray",routine:"gray",urgent:"red",asap:"red",stat:"red"};function zr(e){return O.createElement(ye,{color:Or[e.status]},e.status)}const $r=Z((e=>({table:{border:`0.1px solid ${e.colors.gray[5]}`,borderCollapse:"collapse","& td, & th":{border:`0.1px solid ${e.colors.gray[5]}`,padding:4}},criticalRow:{background:"dark"===e.colorScheme?e.colors.red[7]:e.colors.red[1],border:`0.1px solid ${e.colors.red[5]}`,color:e.colors.red[5],fontWeight:500,"& td":{border:`0.1px solid ${e.colors.red[5]}`}},noteBody:{fontSize:e.fontSizes.sm},noteCite:{fontSize:e.fontSizes.xs,marginBlockStart:3},noteRoot:{padding:5}})));function Lr(e){const t=Wn(e.value),n=Wn(t?.specimen?.[0]);if(!t)return null;const r=n?.note||[];if(t.presentedForm&&t.presentedForm.length>0){const e=t.presentedForm[0];e.contentType?.startsWith("text/plain")&&e.data&&r.push({text:window.atob(e.data)})}return O.createElement(le,null,O.createElement(ae,null,"Diagnostic Report"),O.createElement(K,{mt:"md",spacing:30},t.subject&&O.createElement("div",null,O.createElement(oe,{size:"xs",transform:"uppercase",color:"dimmed"},"Subject"),O.createElement(oe,null,O.createElement(Nr,{value:t.subject,link:!0}))),t.resultsInterpreter&&t.resultsInterpreter.map((e=>O.createElement("div",{key:e.reference},O.createElement(oe,{size:"xs",transform:"uppercase",color:"dimmed"},"Interpreter"),O.createElement(oe,null,O.createElement(Nr,{value:e,link:!0}))))),t.issued&&O.createElement("div",null,O.createElement(oe,{size:"xs",transform:"uppercase",color:"dimmed"},"Issued"),O.createElement(oe,null,h(t.issued))),t.status&&O.createElement("div",null,O.createElement(oe,{size:"xs",transform:"uppercase",color:"dimmed"},"Status"),O.createElement(oe,null,y(t.status)))),t.result&&O.createElement(Fr,{hideObservationNotes:e.hideObservationNotes,value:t.result}),r.length>0&&O.createElement(Rr,{value:r}))}function Fr(e){const{classes:t}=$r();return O.createElement("table",{className:t.table},O.createElement("thead",null,O.createElement("tr",null,O.createElement("th",null,"Test"),O.createElement("th",null,"Value"),O.createElement("th",null,"Reference Range"),O.createElement("th",null,"Interpretation"),O.createElement("th",null,"Category"),O.createElement("th",null,"Status"))),O.createElement("tbody",null,e.value?.map(((t,n)=>O.createElement(Ur,{key:`obs-${n}-${t.id}`,hideObservationNotes:e.hideObservationNotes,value:t})))))}function Ur(e){const{classes:t,cx:n}=$r(),r=Wn(e.value);if(!r)return null;const a=!e.hideObservationNotes&&r?.note,l=function(e){const t=e.interpretation?.[0]?.coding?.[0]?.code;return"AA"===t||"LL"===t||"HH"===t||"A"===t}(r);return O.createElement(O.Fragment,null,O.createElement("tr",{className:n({[t.criticalRow]:l})},O.createElement("td",{rowSpan:a?2:1},O.createElement(Pn,{to:r},O.createElement(xn,{value:r.code}))),O.createElement("td",null,O.createElement(Wr,{value:r})),O.createElement("td",null,O.createElement(jr,{value:r.referenceRange})),O.createElement("td",null,r.interpretation&&r.interpretation.length>0&&O.createElement(xn,{value:r.interpretation[0]})),O.createElement("td",null,r.category&&r.category.length>0&&O.createElement("ul",null,r.category.map(((e,t)=>O.createElement("li",{key:`category-${t}`},O.createElement(xn,{value:e})))))),O.createElement("td",null,r.status&&O.createElement(zr,{status:r.status}))),a&&O.createElement("tr",null,O.createElement("td",{colSpan:5},O.createElement(Rr,{value:r.note}))))}function Wr(e){const t=e.value;return O.createElement(O.Fragment,null,x(t))}function jr(e){const t=e.value&&e.value.length>0&&e.value[0];return t?t.text?O.createElement(O.Fragment,null,t.text):O.createElement(Vn,{value:t}):null}const qr=Z((e=>({root:{borderCollapse:"collapse",width:"100%","& tr":{borderTop:`0.1px solid ${e.colors.gray[3]}`},"& th, & td":{padding:`${e.spacing.sm}px ${e.spacing.sm}px`,verticalAlign:"top"}},removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}})));function _r(e){const{classes:t}=qr(),n=ze(),[r,a]=z();if(F((()=>{n.requestSchema(e.original.resourceType).then(a).catch(console.log)}),[n,e.original.resourceType]),!r)return null;const l=r.types[e.original.resourceType];return l?O.createElement("table",{className:t.root},O.createElement("colgroup",null,O.createElement("col",{style:{width:"30%"}}),O.createElement("col",{style:{width:"35%"}}),O.createElement("col",{style:{width:"35%"}})),O.createElement("thead",null,O.createElement("tr",null,O.createElement("th",null,"Property"),O.createElement("th",null,"Before"),O.createElement("th",null,"After"))),O.createElement("tbody",null,Object.entries(l.properties).map((n=>{const r=n[0];if("id"===r||"meta"===r)return null;const a=n[1],[l,o]=$n(T(e.original),r),[c,i]=$n(T(e.revised),r);return Kr(l)&&Kr(c)||s(l)===s(c)?null:O.createElement("tr",{key:r},O.createElement("td",null,E(r)),O.createElement("td",{className:t.removed},O.createElement(zn,{property:a,propertyType:o,value:l,ignoreMissingValues:!0})),O.createElement("td",{className:t.added},O.createElement(zn,{property:a,propertyType:i,value:c,ignoreMissingValues:!0})))})))):null}function Kr(e){return!e||Array.isArray(e)&&0===e.length||"object"==typeof e&&0===Object.keys(e).length}function Hr(e){const t=ze(),n=Wn(e.value),[r,a]=z();return F((()=>{n&&t.requestSchema(n.resourceType).then(a).catch(console.log)}),[t,n]),r&&n?O.createElement(Ln,{value:{type:n.resourceType,value:e.forceUseInput?e.value:n},ignoreMissingValues:e.ignoreMissingValues}):null}class Qr extends O.Component{constructor(e){super(e),this.state={}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){console.error("Uncaught error:",e,t)}render(){return this.state.error?O.createElement(ce,{icon:O.createElement(at,{size:16}),title:"Something went wrong",color:"red"},n(this.state.error)):this.props.children}}function Br(e){return O.createElement(qt,null,e.children)}function Gr(e){const{resource:t,profile:n,padding:r,popupMenuItems:a,...l}=e,o=n??t.meta?.author;return O.createElement(Ht,{"data-testid":"timeline-item",fill:!0,...l},O.createElement(K,{position:"apart",spacing:8,mx:"xs",my:"sm"},O.createElement(dr,{value:o,link:!0,size:"md"}),O.createElement("div",{style:{flex:1}},O.createElement(oe,{size:"sm"},O.createElement(Pr,{color:"dark",weight:500,value:o,link:!0})),O.createElement(oe,{size:"xs"},O.createElement(Pn,{color:"dimmed",to:e.resource},h(e.resource.meta?.lastUpdated)),O.createElement(oe,{component:"span",color:"dimmed",mx:8},"·"),O.createElement(Pn,{color:"dimmed",to:e.resource},e.resource.resourceType))),a&&O.createElement(Ce,{position:"bottom-end",shadow:"md",width:200},O.createElement(Ce.Target,null,O.createElement(Y,{radius:"xl","aria-label":`Actions for ${w(e.resource)}`},O.createElement(yt,null))),a)),O.createElement(Qr,null,r&&O.createElement("div",{style:{padding:"0 16px 16px 16px"}},e.children),!r&&O.createElement(O.Fragment,null,e.children)))}function Jr(e,t){e.sort(((e,n)=>{const r=Yr(e),a=Yr(n);return r>a?1:r<a?-1:Xr(e,t)-Xr(n,t)}))}function Yr(e){const t=e.priority;return"string"==typeof t&&{stat:4,asap:3,urgent:2}[t]||0}function Xr(e,t){if(n=e,!(r=t)||n.resourceType!==r.resourceType||n.id!==r.id){if("Communication"===e.resourceType&&e.sent)return new Date(e.sent).getTime();if(("DiagnosticReport"===e.resourceType||"Media"===e.resourceType||"Observation"===e.resourceType)&&e.issued)return new Date(e.issued).getTime();if("DocumentReference"===e.resourceType&&e.date)return new Date(e.date).getTime()}var n,r;const a=e.meta?.lastUpdated;return a?new Date(a).getTime():0}const Zr=Z((e=>({pinnedComment:{backgroundColor:e.colors.blue[0]}})));function ea(e){const t=ze(),r=$e(),a=t.getProfile(),l=$(null),o=Wn(e.value),[c,i]=z(),[s,u]=z([]),m=e.loadTimelineResources,d=$(s);d.current=s;const p=W((e=>{Jr(e,o),e.reverse(),u(e)}),[o]),h=W((e=>{const t=[];for(const n of e){if("fulfilled"!==n.status)continue;const e=n.value;if("history"===e.type&&i(e),e.entry)for(const n of e.entry)t.push(n.resource)}p(t)}),[p]),g=W((e=>p([...d.current,e])),[p]),f=W((()=>{let n,r;"resourceType"in e.value?(n=e.value.resourceType,r=e.value.id):[n,r]=e.value.reference?.split("/"),m(t,n,r).then(h).catch(console.log)}),[t,e.value,m,h]);function E(e,n){return t.updateResource({...e,priority:n})}function v(e){E(e,"stat").then(f).catch(console.log)}function y(e){E(e,"routine").then(f).catch(console.log)}function C(e){r(`/${e.resourceType}/${e.id}`)}function k(e){r(`/${e.resourceType}/${e.id}/edit`)}function b(e){r(`/${e.resourceType}/${e.id}/delete`)}function x(e){r(`/${e.resourceType}/${e.id}/_history/${e.meta?.versionId}`)}return F((()=>f()),[f]),o?O.createElement(Br,null,e.createCommunication&&O.createElement(Ht,null,O.createElement(Yt,{testid:"timeline-form",onSubmit:n=>{var r;r=n.text,o&&e.createCommunication&&t.createResource(e.createCommunication(o,a,r)).then((e=>g(e))).catch(console.log);const c=l.current;c&&(c.value="",c.focus())}},O.createElement(K,{spacing:"xs",noWrap:!0,style:{width:"100%"}},O.createElement(dr,{value:a}),O.createElement(Q,{name:"text",ref:l,placeholder:"Add comment",style:{width:"100%",maxWidth:300}}),O.createElement(Y,{type:"submit",radius:"xl",color:"blue",variant:"filled"},O.createElement(At,{size:16})),O.createElement(Ft,{onUpload:function(r){o&&e.createMedia&&t.createResource(e.createMedia(o,a,r)).then((e=>g(e))).then((()=>Ie({id:"upload-notification",color:"teal",title:"Upload complete",message:"",icon:O.createElement(dt,{size:16}),autoClose:2e3}))).catch((e=>Ie({id:"upload-notification",color:"red",title:"Upload error",message:n(e),icon:O.createElement(xt,{size:16}),autoClose:2e3})))},onUploadStart:function(){Me({id:"upload-notification",loading:!0,title:"Initializing upload...",message:"Please wait...",autoClose:!1,disallowClose:!0})},onUploadProgress:function(e){Ie({id:"upload-notification",loading:!0,title:"Uploading...",message:ca(e),autoClose:!1,disallowClose:!0})}},(e=>O.createElement(Y,{...e,radius:"xl",color:"blue",variant:"filled"},O.createElement(ft,{size:16}))))))),s.map((e=>{if(!e)return null;const t=`${e.resourceType}/${e.id}/${e.meta?.versionId}`;if(e.resourceType===o.resourceType&&e.id===o.id)return O.createElement(na,{key:t,history:c,resource:e,onDetails:x});switch(e.resourceType){case"AuditEvent":return O.createElement(la,{key:t,resource:e,onDetails:C});case"Communication":return O.createElement(ra,{key:t,resource:e,onPin:"stat"!==e.priority?v:void 0,onUnpin:"stat"===e.priority?y:void 0,onDetails:C,onEdit:k,onDelete:b});case"DiagnosticReport":return O.createElement(oa,{key:t,resource:e,onDetails:C,onEdit:k,onDelete:b});case"Media":return O.createElement(aa,{key:t,resource:e,onDetails:C,onEdit:k,onDelete:b});default:return O.createElement(Gr,{key:t,resource:e,padding:!0},O.createElement(Hr,{value:e,ignoreMissingValues:!0}))}}))):O.createElement(re,{style:{width:"100%",height:"100%"}},O.createElement(G,null))}function ta(e){return O.createElement(Ce.Dropdown,null,O.createElement(Ce.Label,null,"Resource"),e.onPin&&O.createElement(Ce.Item,{icon:O.createElement(Dt,{size:14}),onClick:()=>e.onPin(e.resource),"aria-label":`Pin ${w(e.resource)}`},"Pin"),e.onUnpin&&O.createElement(Ce.Item,{icon:O.createElement(Vt,{size:14}),onClick:()=>e.onUnpin(e.resource),"aria-label":`Unpin ${w(e.resource)}`},"Unpin"),e.onDetails&&O.createElement(Ce.Item,{icon:O.createElement(St,{size:14}),onClick:()=>e.onDetails(e.resource),"aria-label":`Details ${w(e.resource)}`},"Details"),e.onEdit&&O.createElement(Ce.Item,{icon:O.createElement(Ct,{size:14}),onClick:()=>e.onEdit(e.resource),"aria-label":`Edit ${w(e.resource)}`},"Edit"),e.onDelete&&O.createElement(O.Fragment,null,O.createElement(Ce.Divider,null),O.createElement(Ce.Label,null,"Danger zone"),O.createElement(Ce.Item,{color:"red",icon:O.createElement($t,{size:14}),onClick:()=>e.onDelete(e.resource),"aria-label":`Delete ${w(e.resource)}`},"Delete")))}function na(e){const t=function(e,t){const n=e.entry,r=n.findIndex((e=>e.resource?.meta?.versionId===t.meta?.versionId));if(r>=n.length-1)return;return n[r+1].resource}(e.history,e.resource);return t?O.createElement(Gr,{resource:e.resource,padding:!0,popupMenuItems:O.createElement(ta,{...e})},O.createElement(_r,{original:t,revised:e.resource})):O.createElement(Gr,{resource:e.resource,padding:!0,popupMenuItems:O.createElement(ta,{...e})},O.createElement("h3",null,"Created"),O.createElement(Hr,{value:e.resource,ignoreMissingValues:!0,forceUseInput:!0}))}function ra(e){const{classes:t}=Zr(),n=!e.resource.priority||"routine"===e.resource.priority?void 0:t.pinnedComment;return O.createElement(Gr,{resource:e.resource,profile:e.resource.sender,padding:!0,className:n,popupMenuItems:O.createElement(ta,{...e})},O.createElement("p",null,e.resource.payload?.[0]?.contentString))}function aa(e){const t=e.resource.content?.contentType,n=t&&!t.startsWith("image/")&&!t.startsWith("video/")&&"application/pdf"!==t;return O.createElement(Gr,{resource:e.resource,padding:!!n,popupMenuItems:O.createElement(ta,{...e})},O.createElement(Ke,{value:e.resource.content}))}function la(e){return O.createElement(Gr,{resource:e.resource,padding:!0,popupMenuItems:O.createElement(ta,{...e})},O.createElement(ke,null,O.createElement("pre",null,e.resource.outcomeDesc)))}function oa(e){return O.createElement(Gr,{resource:e.resource,padding:!0,popupMenuItems:O.createElement(ta,{...e})},O.createElement(Lr,{value:e.resource}))}function ca(e){if(e.lengthComputable){const t=100*e.loaded/e.total;return`Uploaded: ${ia(e.loaded)} / ${ia(e.total)} ${t.toFixed(2)}%`}return`Uploaded: ${ia(e.loaded)}`}function ia(e){if(0==e)return"0.00 B";const t=Math.floor(Math.log(e)/Math.log(1024));return(e/Math.pow(1024,t)).toFixed(2)+" "+" KMGTP".charAt(t)+"B"}function sa(e){return O.createElement(ea,{value:e.resource,loadTimelineResources:async(e,t,n)=>Promise.allSettled([e.readHistory(t,n)])})}function ua(e){return O.createElement(ea,{value:e.encounter,loadTimelineResources:async(e,t,n)=>Promise.allSettled([e.readHistory("Encounter",n),e.search("Communication","encounter=Encounter/"+n),e.search("Media","encounter=Encounter/"+n)]),createCommunication:(e,n,r)=>({resourceType:"Communication",status:"completed",encounter:t(e),subject:e.subject,sender:t(n),sent:(new Date).toISOString(),payload:[{contentString:r}]}),createMedia:(e,n,r)=>({resourceType:"Media",status:"completed",encounter:t(e),subject:e.subject,operator:t(n),issued:(new Date).toISOString(),content:r})})}function ma(e){let t;try{t=S(e.path,e.resource)}catch(e){return console.warn("FhirPathDisplay:",e),null}if(t.length>1)throw new Error(`Component "path" for "FhirPathDisplay" must resolve to a single element. Received ${t.length} elements [${JSON.stringify(t,null,2)}]`);return O.createElement(zn,{value:t[0]||"",propertyType:e.propertyType})}const da={string:[I.EQUALS,I.NOT,I.CONTAINS,I.EXACT],fulltext:[I.EQUALS,I.NOT,I.CONTAINS,I.EXACT],token:[I.EQUALS,I.NOT],reference:[I.EQUALS,I.NOT],numeric:[I.EQUALS,I.NOT_EQUALS,I.GREATER_THAN,I.LESS_THAN,I.GREATER_THAN_OR_EQUALS,I.LESS_THAN_OR_EQUALS],quantity:[I.EQUALS,I.NOT_EQUALS,I.GREATER_THAN,I.LESS_THAN,I.GREATER_THAN_OR_EQUALS,I.LESS_THAN_OR_EQUALS],date:[I.EQUALS,I.NOT_EQUALS,I.GREATER_THAN,I.LESS_THAN,I.GREATER_THAN_OR_EQUALS,I.LESS_THAN_OR_EQUALS,I.STARTS_AFTER,I.ENDS_BEFORE,I.APPROXIMATELY],datetime:[I.EQUALS,I.NOT_EQUALS,I.GREATER_THAN,I.LESS_THAN,I.GREATER_THAN_OR_EQUALS,I.LESS_THAN_OR_EQUALS,I.STARTS_AFTER,I.ENDS_BEFORE,I.APPROXIMATELY]},pa={eq:"equals",ne:"not equals",gt:"greater than",lt:"less than",ge:"greater than or equals",le:"less than or equals",sa:"starts after",eb:"ends before",ap:"approximately",contains:"contains",exact:"exact",text:"text",not:"not",above:"above",below:"below",in:"in","not-in":"not in","of-type":"of type",missing:"missing"};function ha(e,t){return{...e,filters:t,offset:0,name:void 0}}function ga(e){return ha(e,[])}function fa(e,t){return ha(e,(e.filters||[]).filter((e=>e.code!==t)))}function Ea(e,t,n,r,a){a&&(e=fa(e,t));const l=[];return e.filters&&l.push(...e.filters),l.push({code:t,operator:n,value:r||""}),ha(e,l)}function va(e,t){if(e.fields&&e.fields.includes(t))return e;const n=[];return e.fields&&n.push(...e.fields),n.push(t),{...e,fields:n,name:void 0}}function ya(e,t){if(!e.filters)return e;const n=[...e.filters];return n.splice(t,1),{...e,filters:n,name:void 0}}function Ca(e,t){return xa(e,t,-1)}function ka(e,t){return xa(e,t,0)}function ba(e,t){return xa(e,t,1)}function xa(e,t,n){const r=new Date;r.setDate(r.getDate()+n),r.setHours(0,0,0,0);const a=new Date(r.getTime());return a.setDate(a.getDate()+1),a.setTime(a.getTime()-1),Aa(e,t,r,a)}function Ta(e,t){return Ia(e,t,-1)}function wa(e,t){return Ia(e,t,0)}function Sa(e,t){return Ia(e,t,1)}function Ia(e,t,n){const r=new Date;r.setMonth(r.getMonth()+n),r.setDate(1),r.setHours(0,0,0,0);const a=new Date(r.getTime());return a.setMonth(a.getMonth()+1),a.setDate(1),a.setHours(0,0,0,0),a.setTime(a.getTime()-1),Aa(e,t,r,a)}function Ma(e,t){const n=new Date;n.setMonth(0),n.setDate(1),n.setHours(0,0,0,0);return Aa(e,t,n,new Date)}function Aa(e,t,n,r){return e=Da(e=fa(e,t),t,I.GREATER_THAN_OR_EQUALS,n),e=Da(e,t,I.LESS_THAN_OR_EQUALS,r)}function Da(e,t,n,r){return Ea(e,t,n,r.toISOString())}function Va(e,t,n=!0){return Ea(e,t,I.MISSING,n.toString())}function Ra(e,t){return e.offset===t?e:{...e,offset:t,name:void 0}}function Pa(e,t){return Ra(e,(t-1)*(e.count??M))}function Na(e,t,n){return t===za(e)&&void 0!==n&&n===$a(e)?e:{...e,sortRules:[{code:t,descending:!!n}],name:void 0}}function Oa(e,t){let n=!1;return za(e)===t&&(n=!$a(e)),Na(e,t,n)}function za(e){const t=e.sortRules;if(!t||0===t.length)return;const n=t[0].code;return n.startsWith("-")?n.substr(1):n}function $a(e){const t=e.sortRules;return!(!t||0===t.length)&&!!t[0].descending}function La(e){return da[e.type]}function Fa(e){return pa[e]??""}function Ua(e){let t=e;return t.includes(".")&&(t=t.split(".").pop()),"id"===t?"ID":"versionId"===t?"Version ID":(t=t.replace("[x]",""),t=t.replace(/([A-Z])/g," $1"),t=t.replace(/[-_]/g," "),t=t.replace(/\s+/g," "),t=t.trim(),t.split(/\s/).map(y).join(" "))}function Wa(e,t){const n=t.name;return"id"===n?e.id:"meta.versionId"===n?e.meta?.versionId:"_lastUpdated"===n?h(e.meta?.lastUpdated):t.elementDefinition&&`${e.resourceType}.${t.name}`===t.elementDefinition.path?function(e,t){const n=t.path?.split(".")?.pop()?.replaceAll("[x]","")||"",[r,a]=$n({type:e.resourceType,value:e},n);if(!r)return null;return O.createElement(zn,{property:t,propertyType:a,value:r,maxWidth:200,ignoreMissingValues:!0,link:!1})}(e,t.elementDefinition):t.searchParams&&1===t.searchParams.length&&t.name===t.searchParams[0].code?function(e,t,n){const r=A(t.expression,[{type:e.resourceType,value:e}]);if(!r||0===r.length)return null;if(n)return O.createElement(zn,{propertyType:r[0].type,value:r[0].value,maxWidth:200,ignoreMissingValues:!0,link:!1});return O.createElement(O.Fragment,null,r.map(((e,t)=>O.createElement("span",{key:`${t}-${r.length}`},"object"==typeof e?JSON.stringify(e):e))))}(e,t.searchParams[0],t.elementDefinition):null}function ja(e){const[t,n]=z({search:JSON.parse(s(e.search))}),r=$(null),a=$(null);function l(){const e=t.search.fields??[],a=r.current?.value;if(a){const r=[...e,a];n({search:{...t.search,fields:r}})}}function o(){const e=t.search.fields??[],r=a.current?.value;if(r){const a=[...e];a.splice(a.indexOf(r),1),n({search:{...t.search,fields:a}})}}function c(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}if(F((()=>{n({search:e.search})}),[e.search]),!e.visible)return null;const i=e.search.resourceType,u=f.types[i],m=t.search.fields??[],d=function(e){const t=[],n=new Set,r=new Set;for(const a of Object.keys(e.properties))t.push(a),n.add(a.toLowerCase()),r.add(Ua(a));if(e.searchParams)for(const a of Object.keys(e.searchParams)){const e=Ua(a);n.has(a)||r.has(e)||(t.push(a),n.add(a),r.add(Ua(a)))}return t}(u).filter((e=>!m?.includes(e))).sort();return O.createElement(fe,{title:"Fields",closeButtonLabel:"Close",opened:e.visible,onClose:e.onCancel},O.createElement("div",null,O.createElement("table",{style:{margin:"auto"}},O.createElement("thead",null,O.createElement("tr",null,O.createElement("th",{colSpan:2,align:"center"},"Available"),O.createElement("th",{colSpan:2,align:"center"},"Selected"))),O.createElement("tbody",null,O.createElement("tr",null,O.createElement("td",{colSpan:2,align:"center"},O.createElement("select",{ref:r,size:15,tabIndex:1,style:{width:"200px"},onKeyDown:e=>function(e){"Enter"===e.key&&l()}(e),onDoubleClick:()=>{l()},"data-testid":"available"},d.map((e=>O.createElement("option",{key:e,value:e},Ua(e)))))),O.createElement("td",{colSpan:2,align:"center"},O.createElement("select",{ref:a,size:15,tabIndex:4,style:{width:"200px"},onKeyDown:e=>function(e){"Enter"===e.key&&o()}(e),onDoubleClick:()=>{o()},"data-testid":"selected"},m.map((e=>O.createElement("option",{key:e,value:e},Ua(e)))))))),O.createElement("tfoot",null,O.createElement("tr",null,O.createElement("td",{align:"center"},O.createElement(X,{compact:!0,variant:"outline",onClick:l},"Add")),O.createElement("td",{align:"center"},O.createElement(X,{compact:!0,variant:"outline",onClick:o},"Remove")),O.createElement("td",{align:"center"},O.createElement(X,{compact:!0,variant:"outline",onClick:function(){const e=t.search.fields??[],r=a.current?.value;if(r){const a=[...e],l=a.indexOf(r);c(a,l,l-1),n({search:{...t.search,fields:a}})}}},"Up")),O.createElement("td",{align:"center"},O.createElement(X,{compact:!0,variant:"outline",onClick:function(){const e=t.search.fields??[],r=a.current?.value;if(r){const a=[...e],l=a.indexOf(r);c(a,l,l+1),n({search:{...t.search,fields:a}})}}},"Down")))))),O.createElement(X,{onClick:()=>e.onOk(t.search)},"OK"))}function qa(e){const{resourceType:t,filter:n}=e,r=f.types[t]?.searchParams?.[n.code];if(r){if("reference"===r.type)return O.createElement(Pr,{value:{reference:n.value}});const e=D(t,r);if("_lastUpdated"===n.code||e.type===V.DATETIME)return O.createElement(O.Fragment,null,h(n.value))}return O.createElement(O.Fragment,null,n.value)}function _a(e){const t="filter-value";switch(D(e.resourceType,e.searchParam).type){case V.REFERENCE:return O.createElement(fr,{name:t,defaultValue:{reference:e.defaultValue},targetTypes:e.searchParam?.target,onChange:t=>{t?e.onChange(t.reference):e.onChange("")}});case V.BOOLEAN:return O.createElement(ue,{name:t,"data-testid":t,defaultChecked:"true"===e.defaultValue,onChange:t=>e.onChange(t.currentTarget.checked.toString())});case V.DATE:return O.createElement(Q,{type:"date",name:t,"data-testid":t,defaultValue:e.defaultValue,onChange:t=>e.onChange(t.currentTarget.value)});case V.DATETIME:return O.createElement(Zn,{name:t,defaultValue:e.defaultValue,onChange:e.onChange});case V.NUMBER:return O.createElement(Q,{type:"number",name:t,"data-testid":t,defaultValue:e.defaultValue,onChange:t=>e.onChange(t.currentTarget.value)});case V.QUANTITY:return O.createElement(ir,{name:t,defaultValue:Ka(e.defaultValue),onChange:t=>{t?e.onChange(`${t.value}`):e.onChange("")}});default:return O.createElement(Q,{name:t,"data-testid":t,defaultValue:e.defaultValue,autoFocus:e.autoFocus,onChange:t=>e.onChange(t.currentTarget.value),placeholder:"Search value"})}}function Ka(e){if(e){const[t,n,r]=e.split("|");if(t)return{value:parseFloat(t),system:n,unit:r}}}function Ha(e){const[t,n]=z(JSON.parse(s(e.search))),[r,a]=z(-1),l=$(t);if(l.current=t,F((()=>{n(JSON.parse(s(e.search)))}),[e.search]),!e.visible)return null;const o=e.search.resourceType,c=f.types[o].searchParams,i=t.filters||[];return O.createElement(fe,{title:"Filters",closeButtonLabel:"Close",size:900,opened:e.visible,onClose:e.onCancel},O.createElement("div",null,O.createElement("table",null,O.createElement("colgroup",null,O.createElement("col",{style:{width:200}}),O.createElement("col",{style:{width:200}}),O.createElement("col",{style:{width:380}}),O.createElement("col",{style:{width:120}})),O.createElement("thead",null,O.createElement("tr",null,O.createElement("th",null,"Field"),O.createElement("th",null,"Operation"),O.createElement("th",null,"Value"),O.createElement("th",null,"Actions"))),O.createElement("tbody",null,i.map(((e,t)=>t===r?O.createElement(Ba,{key:`filter-${t}-${i.length}-input`,resourceType:o,searchParams:c,defaultValue:e,okText:"Save",onOk:e=>{const r=[...i];r[t]=e,n(ha(l.current,r)),a(-1)},onCancel:()=>a(-1)}):O.createElement(Qa,{key:`filter-${t}-${i.length}-display`,resourceType:o,searchParams:c,filter:e,onEdit:()=>a(t),onDelete:()=>n(ya(l.current,t))}))),O.createElement(Ba,{resourceType:o,searchParams:c,okText:"Add",onOk:function(e){n(Ea(l.current,e.code,e.operator,e.value))}})))),O.createElement(K,{position:"right",mt:"xl"},O.createElement(X,{onClick:()=>e.onOk(l.current)},"OK")))}function Qa(e){const{filter:t}=e;return O.createElement("tr",null,O.createElement("td",null,Ua(t.code)),O.createElement("td",null,Fa(t.operator)),O.createElement("td",null,O.createElement(qa,{resourceType:e.resourceType,filter:t})),O.createElement("td",null,O.createElement(X,{compact:!0,variant:"outline",onClick:e.onEdit},"Edit"),O.createElement(X,{compact:!0,variant:"outline",onClick:e.onDelete},"Delete")))}function Ba(e){const[t,n]=z(e.defaultValue??{}),r=$(t);r.current=t;const a=e.searchParams[t.code],l=a&&La(a);return O.createElement("tr",null,O.createElement("td",null,O.createElement(H,{"data-testid":"filter-field",defaultValue:r.current.code,onChange:e=>{return t=e.currentTarget.value,void n({...r.current,code:t});var t},data:Object.keys(e.searchParams).map((e=>({value:e,label:Ua(e)})))})),O.createElement("td",null,l&&O.createElement(H,{"data-testid":"filter-operation",defaultValue:t.operator,onChange:e=>{return t=e.currentTarget.value,void n({...r.current,operator:t});var t},data:["",...l.map((e=>({value:e,label:Fa(e)})))]})),O.createElement("td",null,a&&t.operator&&O.createElement(_a,{resourceType:e.resourceType,searchParam:a,defaultValue:t.value,onChange:function(e){n({...r.current,value:e})}})),O.createElement("td",null,t.code&&t.operator&&t.value&&O.createElement(X,{compact:!0,variant:"outline",onClick:()=>{e.onOk(r.current),n({})}},e.okText),e.onCancel&&O.createElement(X,{compact:!0,variant:"outline",onClick:e.onCancel},"Cancel")))}function Ga(e){const[t,n]=z(e.defaultValue??"");if(!e.visible||!e.searchParam||!e.filter)return null;function r(){e.onOk({...e.filter,value:t})}return O.createElement(fe,{title:e.title,size:"xl",opened:e.visible,onClose:e.onCancel},O.createElement("div",{style:{width:500}},O.createElement(Yt,{onSubmit:r},O.createElement(_a,{resourceType:e.resourceType,searchParam:e.searchParam,defaultValue:t,autoFocus:!0,onChange:n}))),O.createElement(X,{onClick:r},"OK"))}function Ja(e){if(!e.searchParams)return null;function t(t){e.onChange(t)}return 1===e.searchParams.length?O.createElement(Ya,{search:e.search,searchParam:e.searchParams[0],onSort:function(n,r){t(Na(e.search,n.code,r))},onPrompt:function(t,n){e.onPrompt(t,{code:t.code,operator:n,value:""})},onChange:t,onClear:function(n){t(fa(e.search,n.code))}}):O.createElement(Ce.Dropdown,null,e.searchParams.map((e=>O.createElement(Ce.Item,{key:e.code},Ua(e.code)))))}function Ya(e){switch(e.searchParam.type){case"date":return O.createElement(Xa,{...e});case"number":case"quantity":return O.createElement(Za,{...e});case"reference":return O.createElement(el,{...e});case"string":case"token":case"uri":return O.createElement(tl,{...e});default:return O.createElement(O.Fragment,null,"Unknown search param type: ",e.searchParam.type)}}function Xa(e){const{searchParam:t}=e,n=t.code;return O.createElement(Ce.Dropdown,null,O.createElement(Ce.Item,{icon:O.createElement(Pt,{size:14}),onClick:()=>e.onSort(t,!1)},"Sort Oldest to Newest"),O.createElement(Ce.Item,{icon:O.createElement(Nt,{size:14}),onClick:()=>e.onSort(t,!0)},"Sort Newest to Oldest"),O.createElement(Ce.Divider,null),O.createElement(Ce.Item,{icon:O.createElement(bt,{size:14}),onClick:()=>e.onPrompt(t,I.EQUALS)},"Equals..."),O.createElement(Ce.Item,{icon:O.createElement(kt,{size:14}),onClick:()=>e.onPrompt(t,I.NOT_EQUALS)},"Does not equal..."),O.createElement(Ce.Divider,null),O.createElement(Ce.Item,{icon:O.createElement(Mt,{size:14}),onClick:()=>e.onPrompt(t,I.ENDS_BEFORE)},"Before..."),O.createElement(Ce.Item,{icon:O.createElement(It,{size:14}),onClick:()=>e.onPrompt(t,I.STARTS_AFTER)},"After..."),O.createElement(Ce.Item,{icon:O.createElement(it,{size:14}),onClick:()=>e.onPrompt(t,I.EQUALS)},"Between..."),O.createElement(Ce.Divider,null),O.createElement(Ce.Item,{icon:O.createElement(mt,{size:14}),onClick:()=>e.onChange(ba(e.search,n))},"Tomorrow"),O.createElement(Ce.Item,{icon:O.createElement(mt,{size:14}),onClick:()=>e.onChange(ka(e.search,n))},"Today"),O.createElement(Ce.Item,{icon:O.createElement(mt,{size:14}),onClick:()=>e.onChange(Ca(e.search,n))},"Yesterday"),O.createElement(Ce.Divider,null),O.createElement(Ce.Item,{icon:O.createElement(mt,{size:14}),onClick:()=>e.onChange(Sa(e.search,n))},"Next Month"),O.createElement(Ce.Item,{icon:O.createElement(mt,{size:14}),onClick:()=>e.onChange(wa(e.search,n))},"This Month"),O.createElement(Ce.Item,{icon:O.createElement(mt,{size:14}),onClick:()=>e.onChange(Ta(e.search,n))},"Last Month"),O.createElement(Ce.Divider,null),O.createElement(Ce.Item,{icon:O.createElement(mt,{size:14}),onClick:()=>e.onChange(Ma(e.search,n))},"Year to date"),O.createElement(nl,{...e}))}function Za(e){const{searchParam:t}=e;return O.createElement(Ce.Dropdown,null,O.createElement(Ce.Item,{icon:O.createElement(Pt,{size:14}),onClick:()=>e.onSort(t,!1)},"Sort Smallest to Largest"),O.createElement(Ce.Item,{icon:O.createElement(Nt,{size:14}),onClick:()=>e.onSort(t,!0)},"Sort Largest to Smallest"),O.createElement(Ce.Divider,null),O.createElement(Ce.Item,{icon:O.createElement(bt,{size:14}),onClick:()=>e.onPrompt(t,I.EQUALS)},"Equals..."),O.createElement(Ce.Item,{icon:O.createElement(kt,{size:14}),onClick:()=>e.onPrompt(t,I.NOT_EQUALS)},"Does not equal..."),O.createElement(Ce.Divider,null),O.createElement(Ce.Item,{icon:O.createElement(It,{size:14}),onClick:()=>e.onPrompt(t,I.GREATER_THAN)},"Greater than..."),O.createElement(Ce.Item,{icon:O.createElement(Rt,{size:14}),onClick:()=>e.onPrompt(t,I.GREATER_THAN_OR_EQUALS)},"Greater than or equal to..."),O.createElement(Ce.Item,{icon:O.createElement(Mt,{size:14}),onClick:()=>e.onPrompt(t,I.LESS_THAN)},"Less than..."),O.createElement(Ce.Item,{icon:O.createElement(Rt,{size:14}),onClick:()=>e.onPrompt(t,I.LESS_THAN_OR_EQUALS)},"Less than or equal to..."),O.createElement(nl,{...e}))}function el(e){const{searchParam:t}=e;return O.createElement(Ce.Dropdown,null,O.createElement(Ce.Item,{icon:O.createElement(bt,{size:14}),onClick:()=>e.onPrompt(t,I.EQUALS)},"Equals..."),O.createElement(Ce.Item,{icon:O.createElement(kt,{size:14}),onClick:()=>e.onPrompt(t,I.NOT)},"Does not equal..."),O.createElement(nl,{...e}))}function tl(e){const{searchParam:t}=e;return O.createElement(Ce.Dropdown,null,O.createElement(Ce.Item,{icon:O.createElement(Pt,{size:14}),onClick:()=>e.onSort(t,!1)},"Sort A to Z"),O.createElement(Ce.Item,{icon:O.createElement(Nt,{size:14}),onClick:()=>e.onSort(t,!0)},"Sort Z to A"),O.createElement(Ce.Divider,null),O.createElement(Ce.Item,{icon:O.createElement(bt,{size:14}),onClick:()=>e.onPrompt(t,I.EQUALS)},"Equals..."),O.createElement(Ce.Item,{icon:O.createElement(kt,{size:14}),onClick:()=>e.onPrompt(t,I.NOT)},"Does not equal..."),O.createElement(Ce.Divider,null),O.createElement(Ce.Item,{icon:O.createElement(ut,{size:14}),onClick:()=>e.onPrompt(t,I.CONTAINS)},"Contains..."),O.createElement(Ce.Item,{icon:O.createElement(st,{size:14}),onClick:()=>e.onPrompt(t,I.EQUALS)},"Does not contain..."),O.createElement(nl,{...e}))}function nl(e){const{searchParam:t}=e,n=t.code;return O.createElement(O.Fragment,null,O.createElement(Ce.Divider,null),O.createElement(Ce.Item,{icon:O.createElement(ot,{size:14}),onClick:()=>e.onChange(Va(e.search,n))},"Missing"),O.createElement(Ce.Item,{icon:O.createElement(lt,{size:14}),onClick:()=>e.onChange(Va(e.search,n,!1))},"Not missing"),O.createElement(Ce.Divider,null),O.createElement(Ce.Item,{icon:O.createElement(Lt,{size:14}),onClick:()=>e.onClear(t)},"Clear filters"))}function rl(e,t){if("_lastUpdated"===t)return{name:"_lastUpdated",searchParams:[{resourceType:"SearchParameter",base:["Resource"],code:"_lastUpdated",name:"_lastUpdated",type:"date",expression:"Resource.meta.lastUpdated"}]};if("meta.versionId"===t)return{name:"meta.versionId",searchParams:[{resourceType:"SearchParameter",base:["Resource"],code:"_versionId",name:"_versionId",type:"token",expression:"Resource.meta.versionId"}]};const n=f.types[e],r=n.properties[t],a=n.searchParams?.[t.toLowerCase()];if(r&&a)return{name:t,elementDefinition:r,searchParams:[a]};if(r){let a;if(n.searchParams){const r=`${e}.${t.replaceAll("[x]","")}`;a=Object.values(n.searchParams).filter((e=>e.expression?.includes(r))),0===a.length&&(a=void 0)}return{name:t,elementDefinition:r,searchParams:a}}if(a){return{name:t,elementDefinition:D(e,a).elementDefinition,searchParams:[a]}}return{name:t}}class al extends Event{constructor(e){super("change"),this.definition=e}}class ll extends Event{constructor(e){super("load"),this.response=e}}class ol extends Event{constructor(e,t){super("click"),this.resource=e,this.browserEvent=t}}const cl=Z((e=>({root:{maxWidth:"100%",overflow:"auto",textAlign:"left",marginBottom:"20px"},table:{cursor:"pointer"},tr:{"&:hover":{backgroundColor:"dark"===e.colorScheme?e.colors.dark[7]:e.colors.gray[0]}},th:{padding:"0 !important"},control:{width:"100%",padding:`${e.spacing.xs}px ${e.spacing.md}px`,"&:hover":{backgroundColor:"dark"===e.colorScheme?e.colors.dark[6]:e.colors.gray[0]}},icon:{width:21,height:21,borderRadius:21}})));function il(e){const{classes:t}=cl(),n=ze(),[r,a]=z(!1),[l,o]=z(),{search:c,onLoad:i}=e,[s,u]=z({selected:{},fieldEditorVisible:!1,filterEditorVisible:!1,filterDialogVisible:!1}),m=$(s);function d(t){e.onChange&&e.onChange(new al(t))}function p(t,n){je(t.target)||2!==t.button&&(We(t),1!==t.button&&e.onClick&&e.onClick(new ol(n,t)),1===t.button&&e.onAuxClick&&e.onAuxClick(new ol(n,t)))}m.current=s,F((()=>{o(void 0),n.search(c.resourceType,R({...c,total:"accurate",fields:void 0})).then((e=>{u({...m.current,searchResponse:e}),i&&i(new ll(e))})).catch((e=>{u({...m.current,searchResponse:void 0}),o(e)}))}),[n,c,i]),F((()=>{a(!1),n.requestSchema(e.search.resourceType).then((()=>a(!0))).catch(console.log)}),[n,e.search.resourceType]);if(!(r&&f?.types?.[e.search.resourceType]))return O.createElement(re,{style:{width:"100%",height:"100%"}},O.createElement(G,null));const h=e.checkboxesEnabled,g=function(e){const t=e.resourceType,n=[];for(const r of e.fields||["id","_lastUpdated"])n.push(rl(t,r));return n}(c),E=c.resourceType,v=s.searchResponse,y=v?.entry,C=y?.map((e=>e.resource)),k="subtle",b="gray",x=16,T=window.innerWidth<768;return O.createElement("div",{className:t.root,"data-testid":"search-control"},!e.hideToolbar&&O.createElement(K,{position:"apart",mb:"xl"},O.createElement(K,{spacing:2},O.createElement(X,{compact:!0,variant:k,color:b,leftIcon:O.createElement(wt,{size:x}),onClick:()=>u({...m.current,fieldEditorVisible:!0})},"Fields"),O.createElement(X,{compact:!0,variant:k,color:b,leftIcon:O.createElement(Et,{size:x}),onClick:()=>u({...m.current,filterEditorVisible:!0})},"Filters"),e.onNew&&O.createElement(X,{compact:!0,variant:k,color:b,leftIcon:O.createElement(Tt,{size:x}),onClick:e.onNew},"New..."),!T&&e.onExport&&O.createElement(X,{compact:!0,variant:k,color:b,leftIcon:O.createElement(zt,{size:x}),onClick:e.onExport},"Export..."),!T&&e.onDelete&&O.createElement(X,{compact:!0,variant:k,color:b,leftIcon:O.createElement($t,{size:x}),onClick:()=>e.onDelete(Object.keys(s.selected))},"Delete..."),!T&&e.onBulk&&O.createElement(X,{compact:!0,variant:k,color:b,leftIcon:O.createElement(ct,{size:x}),onClick:()=>e.onBulk(Object.keys(s.selected))},"Bulk...")),v&&O.createElement(oe,{size:"xs",color:"dimmed"},function(e,t){return Math.min(t,(e.offset??0)+1)}(c,v.total),"-",function(e,t){return Math.min(t,((e.offset??0)+1)*(e.count??M))}(c,v.total)," of"," ",v.total?.toLocaleString())),O.createElement(be,{className:t.table},O.createElement("thead",null,O.createElement("tr",null,h&&O.createElement("th",null,O.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:function(){const e=m.current;if(!e.searchResponse?.entry||0===e.searchResponse.entry.length)return!1;for(const t of e.searchResponse.entry)if(t.resource?.id&&!e.selected[t.resource.id])return!1;return!0}(),onChange:e=>function(e){e.stopPropagation();const t=e.target.checked,n={},r=m.current?.searchResponse;t&&r?.entry&&r.entry.forEach((e=>{e.resource?.id&&(n[e.resource.id]=!0)})),u({...m.current,selected:n})}(e)})),g.map((n=>O.createElement("th",{key:n.name},O.createElement(Ce,{shadow:"md",width:240,position:"bottom-end"},O.createElement(Ce.Target,null,O.createElement(me,{className:t.control},O.createElement(K,{position:"apart",noWrap:!0},O.createElement(oe,{weight:500,size:"sm"},Ua(n.name)),O.createElement(re,{className:t.icon},O.createElement(rt,{size:14,stroke:1.5}))))),O.createElement(Ja,{search:e.search,searchParams:n.searchParams,onPrompt:(e,t)=>{u({...m.current,filterDialogVisible:!0,filterDialogSearchParam:e,filterDialogFilter:t})},onChange:e=>{d(e)}})))))),!e.hideFilters&&O.createElement("tr",null,h&&O.createElement("th",null),g.map((t=>O.createElement("th",{key:t.name},t.searchParams&&O.createElement(ul,{resourceType:E,searchParams:t.searchParams,filters:e.search.filters})))))),O.createElement("tbody",null,C?.map((e=>e&&O.createElement("tr",{key:e.id,className:t.tr,"data-testid":"search-control-row",onClick:t=>p(t,e),onAuxClick:t=>p(t,e)},h&&O.createElement("td",null,O.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${e.id}`,checked:!!s.selected[e.id],onChange:t=>function(e,t){e.stopPropagation();const n=e.target.checked,r={...m.current.selected};n?r[t]=!0:delete r[t],u({...m.current,selected:r})}(t,e.id)})),g.map((t=>O.createElement("td",{key:t.name},Wa(e,t))))))))),0===C?.length&&O.createElement(qt,null,O.createElement(re,null,O.createElement(oe,{size:"xl",color:"dimmed"},"No results"))),void 0!==v?.total&&v.total>0&&O.createElement(re,{m:"md",p:"md"},O.createElement(xe,{page:ml(c),total:dl(c,v.total),onChange:e=>d(Pa(c,e)),getItemAriaLabel:e=>{switch(e){case"prev":return"Previous page";case"next":return"Next page";default:return}}})),l&&O.createElement("div",{"data-testid":"search-error"},O.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(l,void 0,2))),O.createElement(ja,{search:e.search,visible:m.current.fieldEditorVisible,onOk:e=>{d(e),u({...m.current,fieldEditorVisible:!1})},onCancel:()=>{u({...m.current,fieldEditorVisible:!1})}}),O.createElement(Ha,{search:e.search,visible:m.current.filterEditorVisible,onOk:e=>{d(e),u({...m.current,filterEditorVisible:!1})},onCancel:()=>{u({...m.current,filterEditorVisible:!1})}}),O.createElement(Ga,{key:s.filterDialogSearchParam?.code,visible:m.current.filterDialogVisible,title:"Input",resourceType:E,searchParam:s.filterDialogSearchParam,filter:s.filterDialogFilter,defaultValue:"",onOk:t=>{d(Ea(e.search,t.code,t.operator,t.value)),u({...m.current,filterDialogVisible:!1})},onCancel:()=>{u({...m.current,filterDialogVisible:!1})}}))}const sl=O.memo(il);function ul(e){const t=(e.filters??[]).filter((t=>e.searchParams.find((e=>e.code===t.code))));return 0===t.length?O.createElement("span",null,"no filters"):O.createElement(O.Fragment,null,t.map(((n,r)=>O.createElement("div",{key:`filter-${r}-${t.length}`},Fa(n.operator)," ",O.createElement(qa,{resourceType:e.resourceType,filter:n})))))}function ml(e){return Math.floor((e.offset||0)/(e.count||M))+1}function dl(e,t){const n=e.count||M;return Math.ceil(t/n)}function pl(e){const t=ze(),[n,r]=z(),[a,l]=z(),{query:o,fields:c}=e,[i,s]=z(),[u,m]=z({}),d=$();d.current=i;const p=$({});function h(t,n){je(t.target)||(We(t),1!==t.button&&e.onClick&&e.onClick(new ol(n,t)),1===t.button&&e.onAuxClick&&e.onAuxClick(new ol(n,t)))}p.current=u,F((()=>{l(void 0),t.graphql(o).then(s).catch(l)}),[t,o]),F((()=>{t.requestSchema(e.resourceType).then((e=>{r({...e})})).catch(console.log)}),[t,e.resourceType]);const g=n?.types?.[e.resourceType];if(!g)return O.createElement(G,null);const f=e.checkboxesEnabled;return O.createElement("div",{onContextMenu:e=>We(e),"data-testid":"search-control"},O.createElement(be,null,O.createElement("thead",null,O.createElement("tr",null,f&&O.createElement("th",null,O.createElement("input",{type:"checkbox",value:"checked","aria-label":"all-checkbox","data-testid":"all-checkbox",checked:function(){const e=d.current?.data?.ResourceList;if(!e||0===e.length)return!1;for(const t of e)if(t?.id&&!p.current[t.id])return!1;return!0}(),onChange:e=>function(e){e.stopPropagation();const t=e.target.checked,n={},r=d.current?.data?.ResourceList;t&&r&&r.forEach((e=>{e?.id&&(n[e.id]=!0)})),m(n)}(e)})),c.map((e=>O.createElement("th",{key:e.name},e.name))))),O.createElement("tbody",null,i?.data?.ResourceList?.map((e=>e&&O.createElement("tr",{key:e.id,"data-testid":"search-control-row",onClick:t=>h(t,e),onAuxClick:t=>h(t,e)},f&&O.createElement("td",null,O.createElement("input",{type:"checkbox",value:"checked","data-testid":"row-checkbox","aria-label":`Checkbox for ${e.id}`,checked:!!u[e.id],onChange:t=>function(e,t){e.stopPropagation();const n=e.target.checked,r={...p.current};n?r[t]=!0:delete r[t],m(r)}(t,e.id)})),c.map((t=>O.createElement("td",{key:t.name},O.createElement(ma,{propertyType:t.propertyType,path:t.fhirPath,resource:e}))))))))),0===i?.data?.ResourceList?.length&&O.createElement("div",{"data-testid":"empty-search"},"No results"),a&&O.createElement("div",{"data-testid":"search-error"},O.createElement("pre",{style:{textAlign:"left"}},JSON.stringify(a,void 0,2))),e.onBulk&&O.createElement(X,{onClick:()=>e.onBulk(Object.keys(p.current))},"Bulk..."))}const hl=O.memo(pl);function gl(e){const n=W(((e,t,n)=>Promise.allSettled([e.readHistory("Patient",n),e.search("Communication","subject=Patient/"+n),e.search("Device","patient=Patient/"+n),e.search("DeviceRequest","patient=Patient/"+n),e.search("DiagnosticReport","subject=Patient/"+n),e.search("Media","subject=Patient/"+n),e.search("ServiceRequest","subject=Patient/"+n)])),[]);return O.createElement(ea,{value:e.patient,loadTimelineResources:n,createCommunication:(e,n,r)=>({resourceType:"Communication",status:"completed",subject:t(e),sender:t(n),sent:(new Date).toISOString(),payload:[{contentString:r}]}),createMedia:(e,n,r)=>({resourceType:"Media",status:"completed",subject:t(e),operator:t(n),issued:(new Date).toISOString(),content:r})})}const fl=Z((e=>({section:{position:"relative",margin:"4px 4px 8px 0",padding:"6px 12px 16px 6px",border:`1.5px solid ${e.colors.gray[1]}`,borderRadius:e.radius.sm,transition:"all 0.1s"},hovering:{border:`1.5px solid ${e.colors.blue[5]}`},editing:{border:`1.5px solid ${e.colors.gray[1]}`,borderLeft:`4px solid ${e.colors.blue[5]}`},bottomActions:{position:"absolute",right:4,bottom:0,fontSize:e.fontSizes.xs,"& a":{marginLeft:8}}})));function El(e){const t=ze(),n=Wn(e.value),[r,a]=z(void 0),[l,o]=z(),[c,i]=z(),[s,u]=z();function m(){i(void 0)}function d(){o(void 0)}const p=$();if(p.current=s,F((()=>{t.requestSchema("PlanDefinition").then(a).catch(console.log)}),[t]),F((()=>{var e;return u((e=n??{resourceType:"PlanDefinition"},{...e,action:Ml(e.action)})),document.addEventListener("mouseover",m),document.addEventListener("click",d),()=>{document.removeEventListener("mouseover",m),document.removeEventListener("click",d)}}),[n]),!r||!s)return null;function h(e,t){u({...p.current,[e]:t})}return O.createElement("div",null,O.createElement(Yt,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(s)},O.createElement(Q,{label:"Plan Title",defaultValue:s.title,onChange:e=>h("title",e.currentTarget.value)}),O.createElement(vl,{actions:s.action||[],selectedKey:l,setSelectedKey:o,hoverKey:c,setHoverKey:i,onChange:e=>h("action",e)}),O.createElement(X,{type:"submit"},"Save")))}function vl(e){const{classes:t}=fl(),n=$();function r(t){e.onChange(n.current.map((e=>e.id===t.id?t:e)))}return n.current=e.actions,O.createElement("div",{className:t.section},e.actions.map((t=>O.createElement("div",{key:t.id},O.createElement(yl,{action:t,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:r,onRemove:()=>{return r=t,void e.onChange(n.current.filter((e=>e!==r)));var r}})))),O.createElement("div",{className:t.bottomActions},O.createElement(J,{href:"#",onClick:t=>{var r;We(t),r={id:Il()},e.onChange([...n.current,r]),e.setSelectedKey(r.id)}},"Add action")))}function yl(e){const{classes:t,cx:n}=fl(),{action:r}=e,a=function(e){if(e.definitionCanonical?.startsWith("Schedule"))return"appointment";if(e.definitionCanonical?.startsWith("Questionnaire/"))return"questionnaire";if(e.definitionCanonical?.startsWith("ActivityDefinition/"))return"task";return}(r),l=e.selectedKey===e.action.id,o=e.hoverKey===e.action.id;const c=n(t.section,{[t.editing]:l,[t.hovering]:o&&!l});return O.createElement("div",{"data-testid":r.id,className:c,onClick:function(t){t.stopPropagation(),e.setSelectedKey(e.action.id)},onMouseOver:function(t){We(t),e.setHoverKey(e.action.id)}},l?O.createElement(bl,{action:r,actionType:a,onChange:e.onChange,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onRemove:e.onRemove}):O.createElement(kl,{action:r,actionType:a}),O.createElement("div",{className:t.bottomActions},O.createElement(J,{href:"#",onClick:t=>{t.preventDefault(),e.onRemove()}},"Remove")))}const Cl={path:"PlanDefinition.action.timing[x]",min:0,max:"1",type:[{code:"dateTime"},{code:"Period"},{code:"Range"},{code:"Timing"}]};function kl(e){const{action:t,actionType:n}=e,[r,a]=wl(t);return O.createElement("div",null,O.createElement("div",null,t.title||"Untitled"," ",n&&`(${n})`),t.definitionCanonical&&O.createElement("div",null,O.createElement(Nn,{value:{reference:t.definitionCanonical}})),r&&O.createElement("div",null,O.createElement(zn,{property:Cl,propertyType:a,value:r})))}function bl(e){const{action:t}=e,[n,r]=z(e.actionType);function a(n,r){e.onChange({...t,[n]:r})}return O.createElement(le,{spacing:"xl"},O.createElement(Q,{name:`actionTitle-${t.id}`,label:"Title",defaultValue:t.title,onChange:e=>a("title",e.currentTarget.value)}),O.createElement(Q,{name:`actionDescription-${t.id}`,label:"Description",defaultValue:t.description,onChange:e=>a("description",e.currentTarget.value)}),O.createElement(H,{label:"Type of Action",description:"The type of the action to be performed.",name:`actionType-${t.id}`,defaultValue:n,onChange:e=>r(e.currentTarget.value),data:["","appointment","lab","questionnaire","task"]}),t.action&&t.action.length>0&&O.createElement(vl,{actions:t.action,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:e=>a("action",e)}),(()=>{switch(n){case"appointment":return O.createElement(xl,{title:"Appointment",description:"The subject must schedule an appointment from the schedule.",resourceType:"Schedule",action:t,onChange:e.onChange});case"lab":return O.createElement(xl,{title:"Lab",description:"The subject must complete the following lab panel.",resourceType:"ActivityDefinition",action:t,onChange:e.onChange});case"questionnaire":return O.createElement(xl,{title:"Questionnaire",description:"The subject must complete the selected questionnaire.",resourceType:"Questionnaire",action:t,onChange:e.onChange});case"task":return O.createElement(xl,{title:"Task",description:"The subject must complete the following task.",resourceType:"ActivityDefinition",action:t,onChange:e.onChange});default:return null}})(),O.createElement(Un,{title:"Timing",description:"When the action should take place."},O.createElement(Tl,{name:"timing-"+t.id,action:t,onChange:e.onChange})))}function xl(e){const{id:t,definitionCanonical:n}=e.action,r=n?.startsWith(e.resourceType+"/")?{reference:n}:void 0;return O.createElement(hr,{name:t,resourceType:e.resourceType,defaultValue:r,loadOnFocus:!0,onChange:t=>{t?e.onChange({...e.action,definitionCanonical:w(t)}):e.onChange({...e.action,definitionCanonical:void 0})}})}function Tl(e){const t=e.action,n="timing",[r,a]=wl(t);return O.createElement(kr,{property:Cl,name:"timing[x]",defaultValue:r,defaultPropertyType:a,onChange:(r,a)=>{e.onChange(qn(t,n,a??n,Cl,r))}})}function wl(e){return $n({type:"PlanDefinitionAction",value:e},"timing")}let Sl=1;function Il(e){if(e){if(e.startsWith("id-")){const t=parseInt(e.substring(3));isNaN(t)||(Sl=Math.max(Sl,t+1))}return e}return"id-"+Sl++}function Ml(e){if(e)return e.map((e=>({...e,id:Il(e.id),action:Ml(e.action)})))}var Al;function Dl(e){return"choice"===e.type||"open-choice"===e.type}function Vl(e){const n=ze(),r=n.getProfile(),[a,l]=z(),o=Wn(e.questionnaire),[c,i]=z(),[s,u]=z({});return F((()=>{n.requestSchema("Questionnaire").then((()=>n.requestSchema("QuestionnaireResponse"))).then(l).catch(console.log)}),[n]),F((()=>{i(o?function(e){const t={resourceType:"QuestionnaireResponse",questionnaire:w(e),item:$l(e.item)};return t}(o):void 0)}),[o]),a&&o?O.createElement(Yt,{testid:"questionnaire-form",onSubmit:()=>{e.onSubmit&&c&&e.onSubmit({...c,questionnaire:w(o),subject:e.subject,source:t(r),authored:(new Date).toISOString(),status:"completed"})}},o.title&&O.createElement(ae,null,o.title),o.item&&O.createElement(Rl,{items:o.item,answers:s,onChange:function(e){const t={resourceType:"QuestionnaireResponse",item:e};i(t),u(P(t))}}),O.createElement(K,{position:"right",mt:"xl"},O.createElement(X,{type:"submit"},e.submitButtonText||"OK"))):null}function Rl(e){const[t,n]=z($l(e.items));function r(r,a){const l=t.slice();l[r]=a,n(l),e.onChange(l)}return O.createElement(le,null,e.items.map(((t,n)=>{if(!Ul(t,e.answers))return null;if(t.type===Al.display)return O.createElement("p",{key:t.linkId},t.text);if(t.type===Al.group)return O.createElement(Pl,{key:t.linkId,item:t,answers:e.answers,onChange:e=>r(n,e)});if(t.type===Al.boolean){const e=t.initial&&t.initial.length>0?t.initial[0]:void 0;return O.createElement(Fn,{key:t.linkId,title:t.text,htmlFor:t.linkId},O.createElement(ue,{id:t.linkId,name:t.linkId,defaultChecked:e?.valueBoolean,onChange:e=>r(n,{linkId:t.linkId,text:t.text,answer:[{valueBoolean:e.currentTarget.checked}]})}))}return O.createElement(Un,{key:t.linkId,htmlFor:t.linkId,title:t.text||""},O.createElement(Pl,{item:t,answers:e.answers,onChange:e=>r(n,e)}))})))}function Pl(e){const t=e.item,n=t.type;if(!n)return null;const r=t.linkId;if(!r)return null;const a=t.initial&&t.initial.length>0?t.initial[0]:void 0;function l(n){e.onChange({linkId:t.linkId,text:t.text,answer:[n]})}switch(n){case Al.group:return O.createElement("div",null,O.createElement("h3",null,t.text),t.item&&O.createElement(Rl,{items:t.item,answers:e.answers,onChange:function(n){e.onChange({linkId:t.linkId,text:t.text,item:n})}}));case Al.boolean:return O.createElement(ue,{id:r,name:r,defaultChecked:a?.valueBoolean,onChange:e=>l({valueBoolean:e.currentTarget.checked})});case Al.decimal:return O.createElement(Q,{type:"number",step:"any",id:r,name:r,defaultValue:a?.valueDecimal,onChange:e=>l({valueDecimal:e.currentTarget.valueAsNumber})});case Al.integer:return O.createElement(Q,{type:"number",step:1,id:r,name:r,defaultValue:a?.valueInteger,onChange:e=>l({valueInteger:e.currentTarget.valueAsNumber})});case Al.date:return O.createElement(Q,{type:"date",id:r,name:r,defaultValue:a?.valueDate,onChange:e=>l({valueDate:e.currentTarget.value})});case Al.dateTime:return O.createElement(Zn,{name:r,defaultValue:a?.valueDateTime,onChange:e=>l({valueDateTime:e})});case Al.time:return O.createElement(Q,{type:"time",id:r,name:r,defaultValue:a?.valueTime,onChange:e=>l({valueTime:e.currentTarget.value})});case Al.string:case Al.url:return O.createElement(Q,{id:r,name:r,defaultValue:a?.valueString,onChange:e=>l({valueString:e.currentTarget.value})});case Al.text:return O.createElement(Ee,{id:r,name:r,defaultValue:a?.valueString,onChange:e=>l({valueString:e.currentTarget.value})});case Al.attachment:return O.createElement(Wt,{name:r,defaultValue:a?.valueAttachment,onChange:e=>l({valueAttachment:e})});case Al.reference:return O.createElement(fr,{name:r,defaultValue:a?.valueReference,onChange:e=>l({valueReference:e})});case Al.quantity:return O.createElement(ir,{name:r,defaultValue:a?.valueQuantity,onChange:e=>l({valueQuantity:e}),disableWheel:!0});case Al.choice:case Al.openChoice:return function(e){return!!e.extension?.some((e=>"http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl"===e.url&&"drop-down"===e.valueCodeableConcept?.coding?.[0]?.code))}(t)?O.createElement(Nl,{name:r,item:t,initial:a,onChangeAnswer:l}):O.createElement(zl,{name:r,item:t,initial:a,onChangeAnswer:l})}return null}function Nl(e){const{name:t,item:n,initial:r}=e,a=g({type:"QuestionnaireItemInitial",value:r},"value"),l=[""];if(n.answerOption)for(const e of n.answerOption){const t=g({type:"QuestionnaireItemAnswerOption",value:e},"value");l.push(Ol(t))}return O.createElement(H,{id:t,name:t,onChange:t=>{const r=t.currentTarget.selectedIndex;if(0===r)return void e.onChangeAnswer({});const a=n.answerOption[r-1],l=g({type:"QuestionnaireItemAnswerOption",value:a},"value"),o="value"+y(l.type);e.onChangeAnswer({[o]:l.value})},defaultValue:Ol(a),data:l})}function Ol(e){if(e)return"CodeableConcept"===e.type?e.value.coding[0].display:"Coding"===e.type?e.value.display:e.value.toString()}function zl(e){const{name:t,item:n,initial:r,onChangeAnswer:a}=e,l=f.types.QuestionnaireItemAnswerOption.properties["value[x]"],o=g({type:"QuestionnaireItemInitial",value:r},"value"),c=[];let i;if(n.answerOption)for(let e=0;e<n.answerOption.length;e++){const r=n.answerOption[e],a=`${t}-option-${e}`,l=g({type:"QuestionnaireItemAnswerOption",value:r},"value");o&&s(l)===s(o)&&(i=a),c.push([a,l])}return O.createElement(Te.Group,{name:t,orientation:"vertical",defaultValue:i,onChange:e=>{const t=c.find((t=>t[0]===e));if(t){const e=t[1],n="value"+y(e.type);a({[n]:e.value})}}},c.map((([e,t])=>O.createElement(Te,{key:e,id:e,value:e,label:O.createElement(zn,{property:l,propertyType:t.type,value:t.value})}))))}function $l(e){return e?.map(Ll)??[]}function Ll(e){return{linkId:e.linkId,text:e.text,item:$l(e.item),answer:e.initial?.map(Fl)??[]}}function Fl(e){return{...e}}function Ul(e,t){if(!e.enableWhen)return!0;const n=e.enableBehavior||"any";for(const r of e.enableWhen){const e=g({type:"QuestionnaireItemEnableWhen",value:r},"answer[x]"),a=g({type:"QuestionnaireResponseItemAnswer",value:t[r.question]},"value[x]"),l=v(e,a);if("any"===n&&l)return!0;if("all"===n&&!l)return!1}return"any"!==n}!function(e){e.group="group",e.display="display",e.question="question",e.boolean="boolean",e.decimal="decimal",e.integer="integer",e.date="date",e.dateTime="dateTime",e.time="time",e.string="string",e.text="text",e.url="url",e.choice="choice",e.openChoice="open-choice",e.attachment="attachment",e.reference="reference",e.quantity="quantity"}(Al||(Al={}));const Wl=Z((e=>({section:{position:"relative",margin:"4px 4px 8px 0",padding:"6px 12px 16px 6px",border:`1.5px solid ${e.colors.gray[1]}`,borderRadius:e.radius.sm,transition:"all 0.1s"},hovering:{border:`1.5px solid ${e.colors.blue[5]}`},editing:{border:`1.5px solid ${e.colors.gray[1]}`,borderLeft:`4px solid ${e.colors.blue[5]}`},questionBody:{maxWidth:600},topActions:{position:"absolute",right:4,top:1,padding:4,color:e.colors.gray[5],fontSize:e.fontSizes.xs},bottomActions:{position:"absolute",right:4,bottom:0,fontSize:e.fontSizes.xs,"& a":{marginLeft:8}},linkIdInput:{width:100,marginBottom:4},typeSelect:{width:100}})));function jl(e){const t=ze(),n=Wn(e.questionnaire),[r,a]=z(),[l,o]=z(),[c,i]=z(),[s,u]=z();function m(){u(void 0)}function d(){i(void 0)}return F((()=>{t.requestSchema("Questionnaire").then(a).catch(console.log)}),[t]),F((()=>{var e;return o((e=n??{resourceType:"Questionnaire"},{...e,id:e.id||Bl(),item:Gl(e.item)})),document.addEventListener("mouseover",m),document.addEventListener("click",d),()=>{document.removeEventListener("mouseover",m),document.removeEventListener("click",d)}}),[n]),r&&l?O.createElement("div",null,O.createElement(Yt,{testid:"questionnaire-form",onSubmit:()=>e.onSubmit(l)},O.createElement(ql,{item:l,selectedKey:c,setSelectedKey:i,hoverKey:s,setHoverKey:u,onChange:o}),O.createElement(X,{type:"submit"},"Save"))):null}function ql(e){const{classes:t,cx:n}=Wl(),r=e.item,a=e.item,l="resourceType"in e.item,o=l||a.type===Al.group,c=a.linkId??"[untitled]",i=e.selectedKey===e.item.id,s=e.hoverKey===e.item.id,u=$();function m(t){const n=u.current;e.onChange({...n,item:n.item?.map((e=>e.id===t.id?t:e))})}function d(t){e.onChange({...e.item,item:[...e.item?.item??[],t]})}function p(t,n){e.onChange({...u.current,[t]:n})}u.current=e.item;const h=n(t.section,{[t.editing]:i,[t.hovering]:s&&!i});return O.createElement("div",{"data-testid":a.linkId,className:h,onClick:function(t){We(t),e.setSelectedKey(e.item.id)},onMouseOver:function(t){We(t),e.setHoverKey(e.item.id)}},O.createElement("div",{className:t.questionBody},i?O.createElement(O.Fragment,null,l&&O.createElement(Q,{size:"xl",defaultValue:r.title,onChange:e=>p("title",e.currentTarget.value)}),!l&&O.createElement(Ee,{autosize:!0,minRows:2,defaultValue:a.text,onChange:e=>p("text",e.currentTarget.value)}),Dl(a)&&O.createElement(_l,{options:a.answerOption,onChange:e=>p("answerOption",e)})):O.createElement(O.Fragment,null,r.title&&O.createElement(ae,null,r.title),a.text&&O.createElement("div",null,a.text),!o&&O.createElement(Pl,{item:a,answers:{},onChange:()=>{}}))),a.item&&a.item.map((t=>O.createElement("div",{key:t.id},O.createElement(ql,{item:t,selectedKey:e.selectedKey,setSelectedKey:e.setSelectedKey,hoverKey:e.hoverKey,setHoverKey:e.setHoverKey,onChange:m,onRemove:()=>{return n=t,void e.onChange({...e.item,item:e.item?.item?.filter((e=>e!==n))});var n}})))),!o&&O.createElement("div",{className:t.topActions},i?O.createElement(O.Fragment,null,O.createElement(Q,{size:"xs",className:t.linkIdInput,defaultValue:a.linkId,onChange:e=>p("linkId",e.currentTarget.value)}),!o&&O.createElement(H,{size:"xs",className:t.typeSelect,defaultValue:a.type,onChange:e=>p("type",e.currentTarget.value),data:[{value:"display",label:"Display"},{value:"boolean",label:"Boolean"},{value:"decimal",label:"Decimal"},{value:"integer",label:"Integer"},{value:"date",label:"Date"},{value:"dateTime",label:"Date/Time"},{value:"time",label:"Time"},{value:"string",label:"String"},{value:"text",label:"Text"},{value:"url",label:"URL"},{value:"choice",label:"Choice"},{value:"open-choice",label:"Open Choice"},{value:"attachment",label:"Attachment"},{value:"reference",label:"Reference"},{value:"quantity",label:"Quantity"}]})):O.createElement("div",null,c)),O.createElement("div",{className:t.bottomActions},o&&O.createElement(O.Fragment,null,O.createElement(J,{href:"#",onClick:e=>{e.preventDefault(),d({id:Bl(),linkId:Ql("q"),type:"string",text:"Question"})}},"Add item"),O.createElement(J,{href:"#",onClick:e=>{e.preventDefault(),d({id:Bl(),linkId:Ql("g"),type:"group",text:"Group"})}},"Add group")),i&&!l&&O.createElement(J,{href:"#",onClick:t=>{t.preventDefault(),e.onRemove&&e.onRemove()}},"Remove")))}function _l(e){const t=f.types.QuestionnaireItemAnswerOption.properties["value[x]"],n=e.options??[];return O.createElement("div",null,n.map((r=>{const[a,l]=$n({type:"QuestionnaireItemAnswerOption",value:r},"value");return O.createElement("div",{key:r.id,style:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",width:"80%"}},O.createElement("div",null,O.createElement(kr,{key:r.id,name:"value[x]",property:t,defaultPropertyType:l,defaultValue:a,onChange:(t,a)=>{const l=[...n],o=l.findIndex((e=>e.id===r.id));l[o]={id:r.id,[a]:t},e.onChange(l)}})),O.createElement("div",null,O.createElement(J,{href:"#",onClick:t=>{We(t),e.onChange(n.filter((e=>e.id!==r.id)))}},"Remove")))})),O.createElement(J,{href:"#",onClick:t=>{We(t),e.onChange([...n,{id:Bl()}])}},"Add choice"))}let Kl=1,Hl=1;function Ql(e){return e+Kl++}function Bl(){return"id-"+Hl++}function Gl(e){if(e)return e.forEach((e=>{e.id?.match(/^id-\d+$/)&&(Hl=Math.max(Hl,parseInt(e.id.substring(3))+1)),e.linkId?.match(/^q\d+$/)&&(Kl=Math.max(Kl,parseInt(e.linkId.substring(1))+1))})),e.map((e=>({...e,id:e.id||Bl(),item:Gl(e.item),answerOption:Jl(e.answerOption)})))}function Jl(e){if(e)return e.map((e=>({...e,id:e.id||Bl()})))}const Yl=Z((e=>({section:{position:"relative",margin:"4px 4px 8px 0",padding:"6px 12px 16px 6px",border:`1.5px solid ${e.colors.gray[3]}`,borderRadius:e.radius.sm,transition:"all 0.1s"}}))),Xl=["gender","age","gestationalAge","context","appliesTo"],Zl={definition:{resourceType:"ObservationDefinition"},onSubmit:()=>{}};function eo(e){const t=(e=Object.assign(Zl,e)).definition,[n,r]=z([]),[a,l]=z(1),[o,c]=z(1);return F((()=>{const e=function(e,t){const n=e.qualifiedInterval||[];let r=Math.max(...n.map((e=>{const t=parseInt(e.id?.substring(3)||"");return isNaN(t)?Number.NEGATIVE_INFINITY:t})))+1;Number.isFinite(r)||(r=1);return e={...e,qualifiedInterval:n.map((e=>({...e,id:e.id||"id-"+r++})))},t(r),e}(t,c);r(function(e,t){let n=1;const r={};for(const t of e){const e=ro(t);e in r||(r[e]={id:"group-id-"+n++,filters:Object.fromEntries(Xl.map((e=>[e,t[e]]))),intervals:[]}),r[e].intervals.push(t)}return t(n),Object.values(r)}(e.qualifiedInterval||[],l))}),[t]),O.createElement(Yt,{testid:"reference-range-editor",onSubmit:function(){const r=n.flatMap((e=>e.intervals)).filter((e=>!function(e){return void 0===e.range?.low?.value&&void 0===e.range?.high?.value}(e)));e.onSubmit({...t,qualifiedInterval:r})}},O.createElement(le,null,n.map((e=>{return O.createElement(to,{unit:(n=t.quantitativeDetails?.unit,n&&(N(n,"http://unitsofmeasure.org")||n.text)),onChange:s,onAdd:u,onRemove:m,onRemoveGroup:i,key:`group-${e.id}`,intervalGroup:e});var n}))),O.createElement(Y,{title:"Add Group",size:"sm",onClick:e=>{var t;We(e),t={id:`group-id-${a}`,filters:{},intervals:[]},r((e=>[...e,t])),l((e=>e+1))}},O.createElement(gt,null)),O.createElement(K,{position:"right"},O.createElement(X,{type:"submit"},"Save")));function i(e){r((t=>t.filter((t=>t.id!==e.id))))}function s(e,t){r((n=>{const r=(n=[...n]).find((t=>t.id===e)),a=r?.intervals?.findIndex((e=>e.id===t.id));return void 0!==a&&r?.intervals?.[a]&&(r.intervals[a]=t),n}))}function u(e,t){void 0===t.id&&(t.id=`id-${o}`,c((e=>e+1))),r((n=>{const r=(n=[...n]).findIndex((t=>t.id===e));if(-1!=r){const e={...n[r]};t={...t,...e.filters},e.intervals=[...e.intervals,t],n[r]=e}return n}))}function m(e,t){r((n=>{const r=(n=[...n]).find((t=>t.id===e));return r&&(r.intervals=r.intervals.filter((e=>e.id!==t.id))),n}))}}function to(e){const{intervalGroup:t,unit:n}=e,{classes:r}=Yl();return O.createElement(qt,{"data-testid":t.id,className:r.section},O.createElement(le,{spacing:"lg"},O.createElement(K,{position:"right"},O.createElement(Y,{title:"Remove Group","data-testid":`remove-group-button-${t.id}`,key:`remove-group-button-${t.id}`,size:"sm",onClick:n=>{We(n),e.onRemoveGroup(t)}},O.createElement(ht,null))),O.createElement(no,{intervalGroup:t,onChange:e.onChange}),O.createElement(ie,null),t.intervals.map((n=>O.createElement(le,{key:`interval-${n.id}`,spacing:"xs"},O.createElement(K,null,O.createElement(Q,{key:`condition-${n.id}`,"data-testid":`condition-${n.id}`,defaultValue:n.condition,label:"Condition: ",size:"sm",onChange:r=>{We(r),e.onChange(t.id,{...n,condition:r.currentTarget.value.trim()})}}),O.createElement(Y,{title:"Remove Interval",size:"sm",key:`remove-interval-${n.id}`,"data-testid":`remove-interval-${n.id}`,onClick:r=>{We(r),e.onRemove(t.id,n)}},O.createElement(ht,null))),O.createElement(ur,{onChange:r=>{e.onChange(t.id,{...n,range:r})},key:`range-${n.id}`,name:`range-${n.id}`,defaultValue:n.range})))),O.createElement(Y,{title:"Add Interval",size:"sm",onClick:r=>{We(r),e.onAdd(t.id,{range:{low:{unit:n},high:{unit:n}}})}},O.createElement(gt,null))))}function no(e){const{intervalGroup:t,onChange:n}=e;t.filters.age||(t.filters.age={});for(const e of["low","high"])t.filters.age[e]?.unit||(t.filters.age[e]={...t.filters.age[e],unit:"years",system:"http://unitsofmeasure.org"});return O.createElement(le,{style:{maxWidth:"50%"}},O.createElement(K,null,O.createElement(H,{data:["","male","female"],label:"Gender:",defaultValue:t.filters.gender||"",onChange:e=>{for(const r of t.intervals){let a=e.currentTarget?.value;""===a&&(a=void 0),n(t.id,{...r,gender:a})}}})),O.createElement(K,{spacing:"xs"},O.createElement(oe,{component:"label",htmlFor:`div-age-${t.id}`},"Age:"),O.createElement("div",{id:`div-age-${t.id}`},O.createElement(ur,{key:`age-${t.id}`,name:`age-${t.id}`,defaultValue:t.filters.age,onChange:e=>{for(const r of t.intervals)n(t.id,{...r,age:e})}}))),O.createElement(H,{data:["","pre-puberty","follicular","midcycle","luteal","postmenopausal"],label:"Endocrine:",defaultValue:t.filters.context?.text||"",onChange:e=>{for(const r of t.intervals){let a=e.currentTarget?.value;""===a?(a=void 0,n(t.id,{...r,context:void 0})):n(t.id,{...r,context:{text:a,coding:[{code:a,system:"http://terminology.hl7.org/CodeSystem/referencerange-meaning"}]}})}}}))}function ro(e){return[`gender=${e.gender}`,`age=${i(e.age)}`,`gestationalAge=${i(e.gestationalAge)}`,`context=${e.context?.text}`,`appliesTo=${e.appliesTo?.map((e=>e.text)).join("+")}`].join(":")}function ao(e){const t=ze(),n=Wn(e.value),[r,a]=z(!1),[l,o]=z();return F((()=>{n&&!r&&(t.executeBatch(function(e){const t=[];if(e.action)for(const n of e.action)n.resource?.reference&&t.push({request:{method:"GET",url:n.resource.reference}});return{resourceType:"Bundle",type:"batch",entry:t}}(n)).then(o).catch(console.log),a(!0))}),[t,n,r]),n&&l?O.createElement(we,null,n.action?.map(((t,n)=>{const r=t.resource&&function(e){for(const t of l?.entry)if(t.resource&&e.reference===w(t.resource))return t.resource;return}(t.resource),a=r?.input?.[0]?.valueReference,o=r?.output?.[0]?.valueReference;return O.createElement(O.Fragment,{key:`action-${n}`},O.createElement(we.Col,{span:1,p:"md"},"completed"===r?.status?O.createElement(pt,null):O.createElement(Ot,{color:"gray"})),O.createElement(we.Col,{span:9,p:"xs"},O.createElement(oe,{weight:500},t.title),t.description&&O.createElement("div",null,t.description),O.createElement("div",null,"Last edited by ",O.createElement(Pr,{value:r?.meta?.author})," on ",h(r?.meta?.lastUpdated)),O.createElement("div",null,"Status: ",O.createElement(zr,{status:r?.status||"unknown"}))),O.createElement(we.Col,{span:2,p:"md"},a&&!o&&O.createElement(X,{onClick:()=>e.onStart(r,a)},"Start"),a&&o&&O.createElement(X,{onClick:()=>e.onEdit(r,a,o)},"Edit")))}))):null}function lo(e,t){return function(e,t,n){const r=[];let a=e;a.snake&&(a=a.prev);for(;a&&a.prev&&a.prev.j>=0;){const e=a.i,l=a.j;a=a.prev;const o=a.i,c=a.j,i={position:o,lines:t.slice(o,e)},s={position:c,lines:n.slice(c,l)};let u;u=0===i.lines.length&&s.lines.length>0?"insert":i.lines.length>0&&0===s.lines.length?"delete":"change",r.push({original:i,revised:s,type:u}),a.snake&&(a=a.prev)}return r}(function(e,t){const n=e.length,r=t.length,a=n+r+1,l=1+2*a,o=l/2|0,c=new Array(l);c[o+1]={i:0,j:-1,prev:void 0,snake:!0};for(let l=0;l<a;l++){for(let a=-l;a<=l;a+=2){const i=o+a,s=i-1,u=c[i+1],m=c[s];let d,p=0;a===-l||a!==l&&m.i<u.i?(p=u.i,d=u):(p=m.i+1,d=m),c[s]=void 0;let h=p-a,g={i:p,j:h,prev:oo(d),snake:!1};for(;p<n&&h<r&&e[p]===t[h];)p++,h++;if(p>g.i&&(g={i:p,j:h,prev:g,snake:!0}),c[i]=g,p>=n&&h>=r)return c[i]}c[o+l-1]=void 0}return}(e,t),e,t)}function oo(e){return e&&!e.snake&&e.prev?e.prev:e}function co(e){const t=e.entry.filter((e=>!!e.resource)).map((e=>({meta:e.resource?.meta,lines:s(e.resource,!0).match(/[^\r\n]+/g)}))).sort(((e,t)=>e.meta.lastUpdated.localeCompare(t.meta.lastUpdated))),n=t[0].lines.map((e=>({id:t[0].meta.versionId,meta:t[0].meta,value:e,span:1})));return function(e,t){for(let n=1;n<t.length;n++){const r=lo(t[n-1].lines,t[n].lines);for(const a of r){const r=a.original.position,l=a.original.lines,o=a.revised.lines;if("delete"!==a.type&&"change"!==a.type||e.splice(r,l.length),"insert"===a.type||"change"===a.type)for(let l=0;l<a.revised.lines.length;l++)e.splice(r+l,0,{id:t[n].meta.versionId,meta:t[n].meta,value:o[l],span:1})}}}(n,t),function(e){let t=0;for(;t<e.length;){let n=t;for(;n<e.length&&e[n].id===e[t].id;)e[n].span=-1,n++;e[t].span=n-t,t=n}}(n),n}const io=Z((e=>({container:{overflowX:"auto"},root:{border:`0.1px solid ${e.colors.gray[3]}`,borderCollapse:"collapse",borderRadius:e.radius.sm,borderSpacing:0,fontSize:e.fontSizes.xs,width:"100%","& td":{padding:"2px 4px 0 4px",verticalAlign:"top",whiteSpace:"nowrap"}},startRow:{borderTop:`0.1px solid ${e.colors.gray[3]}`},normalRow:{borderTop:0},author:{lineHeight:"10px"},dateTime:{borderRight:`0.1px solid ${e.colors.gray[3]}`,lineHeight:"20px"},lineNumber:{backgroundColor:e.colors.gray[1],border:0,color:e.colors.gray[5],fontFamily:e.fontFamilyMonospace,padding:`${e.spacing.xs}px ${e.spacing.sm}px`,textAlign:"right"},line:{fontFamily:e.fontFamilyMonospace,fontSize:e.fontSizes.sm,padding:`${e.spacing.xs}px ${e.spacing.sm}px`},pre:{margin:0}})));function so(e){const{classes:t}=io(),n=ze(),[r,a]=z(e.history);if(F((()=>{!e.history&&e.resourceType&&e.id&&n.readHistory(e.resourceType,e.id).then(a).catch(console.log)}),[n,e.history,e.resourceType,e.id]),!r)return O.createElement("div",null,"Loading...");const l=r.entry?.[0]?.resource,o=co(r);return O.createElement("div",{className:t.container},O.createElement("table",{className:t.root},O.createElement("tbody",null,o.map(((e,n)=>O.createElement("tr",{key:"row-"+n,className:e.span>0?t.startRow:t.normalRow},e.span>0&&O.createElement(O.Fragment,null,O.createElement("td",{className:t.author,rowSpan:e.span},O.createElement(Nr,{value:e.meta.author,link:!0})),O.createElement("td",{className:t.dateTime,rowSpan:e.span},O.createElement(Pn,{to:uo(l,e.meta.versionId)},mo(e.meta.lastUpdated)))),O.createElement("td",{className:t.lineNumber},n+1),O.createElement("td",{className:t.line},O.createElement("pre",{className:t.pre},e.value))))))))}function uo(e,t){return`/${e.resourceType}/${e.id}/_history/${t}`}function mo(e){const t=Math.floor((Date.now()-Date.parse(e))/1e3),n=Math.floor(t/31536e3);if(n>0)return po(n,"year");const r=Math.floor(t/2592e3);if(r>0)return po(r,"month");const a=Math.floor(t/86400);if(a>0)return po(a,"day");const l=Math.floor(t/3600);if(l>0)return po(l,"hour");const o=Math.floor(t/60);return o>0?po(o,"minute"):po(t,"second")}function po(e,t){return`${e} ${1===e?t:t+"s"} ago`}const ho=Z((e=>({removed:{color:e.colors.red[7],textDecoration:"line-through"},added:{color:e.colors.green[7]}})));function go(e){let t=e.original,n=e.revised;e.ignoreMeta&&(t={...t,meta:void 0},n={...n,meta:void 0});const r=lo(s(t,!0).match(/[^\r\n]+/g),s(n,!0).match(/[^\r\n]+/g));return O.createElement("pre",{style:{color:"gray"}},r.map(((e,t)=>O.createElement(fo,{key:"delta"+t,delta:e}))))}function fo(e){const{classes:t}=ho();return O.createElement(O.Fragment,null,"...",O.createElement("br",null),e.delta.original.lines.length>0&&O.createElement("div",{className:t.removed},e.delta.original.lines.join("\n")),e.delta.revised.lines.length>0&&O.createElement("div",{className:t.added},e.delta.revised.lines.join("\n")),"...",O.createElement("br",null))}function Eo(e){const t=ze(),[n,r]=z(e.history);return F((()=>{!e.history&&e.resourceType&&e.id&&t.readHistory(e.resourceType,e.id).then(r).catch(console.log)}),[t,e.history,e.resourceType,e.id]),n?O.createElement(be,{withBorder:!0,withColumnBorders:!0},O.createElement("thead",null,O.createElement("tr",null,O.createElement("th",null,"Author"),O.createElement("th",null,"Date"),O.createElement("th",null,"Version"))),O.createElement("tbody",null,n.entry?.map(((e,t)=>O.createElement(vo,{key:"entry-"+t,entry:e}))))):O.createElement("div",null,"Loading...")}function vo(e){const{response:t,resource:r}=e.entry;return r?O.createElement("tr",null,O.createElement("td",null,O.createElement(Nr,{value:r.meta?.author,link:!0})),O.createElement("td",null,h(r.meta?.lastUpdated)),O.createElement("td",null,O.createElement(Pn,{to:yo(r)},r.meta?.versionId))):O.createElement("tr",null,O.createElement("td",{colSpan:3},n(t?.outcome)))}function yo(e){return`/${e.resourceType}/${e.id}/_history/${e.meta?.versionId}`}const Co=Z((e=>({container:{display:"flex",minHeight:400},info:{minWidth:300,padding:20,borderRight:`1px solid ${e.colors.gray[3]}`},selection:{minWidth:300,padding:20}})));function ko(e){const{classes:t}=Co(),n=ze(),r=Wn(e.schedule),a=Wn(e.questionnaire),[l,o]=z();$().current=l;const[c,i]=z(Ar()),[s,u]=z(),[m,d]=z(),[p,h]=z();if(F((()=>{r?(o([]),n.searchResources("Slot",new URLSearchParams([["_count",720..toString()],["schedule",w(r)],["start","gt"+bo(c)],["start","lt"+xo(c)]])).then(o).catch(console.log)):o(void 0)}),[n,r,c]),!r||!l||!a)return null;const g=r.actor?.[0];return O.createElement("div",{className:t.container,"data-testid":"scheduler"},O.createElement("div",{className:t.info},g&&O.createElement(dr,{value:g,size:"xl"}),g&&O.createElement(oe,{size:"xl",weight:500},O.createElement(Pr,{value:g})),O.createElement("p",null,"1 hour"),s&&O.createElement("p",null,s.toLocaleDateString()),m&&O.createElement("p",null,wo(new Date(m.start)))),O.createElement("div",{className:t.selection},!s&&O.createElement("div",null,O.createElement("h3",null,"Select date"),O.createElement(Mr,{slots:l,onChangeMonth:i,onClick:u})),s&&!m&&O.createElement("div",null,O.createElement("h3",null,"Select time"),O.createElement(le,null,l.map((e=>{const t=new Date(e.start);return t.getTime()>s.getTime()&&t.getTime()<s.getTime()+864e5&&O.createElement("div",{key:e.id},O.createElement(X,{variant:"outline",style:{width:150},onClick:()=>d(e)},wo(t)))})))),s&&m&&!p&&O.createElement(Vl,{questionnaire:a,submitButtonText:"Next",onSubmit:h}),s&&m&&p&&O.createElement("div",null,O.createElement("h3",null,"You're all set!"),O.createElement("p",null,"Check your email for a calendar invite."))))}function bo(e){return To(e.getTime())}function xo(e){return To(e.getTime()+26784e5)}function To(e){return new Date(Math.max(Date.now(),e)).toISOString()}function wo(e){return e.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}function So(e){return O.createElement(ea,{value:e.serviceRequest,loadTimelineResources:async(e,t,n)=>Promise.allSettled([e.readHistory("ServiceRequest",n),e.search("Communication","based-on=ServiceRequest/"+n),e.search("Media","_count=100&based-on=ServiceRequest/"+n),e.search("DiagnosticReport","based-on=ServiceRequest/"+n)]),createCommunication:(e,n,r)=>({resourceType:"Communication",status:"completed",basedOn:[t(e)],subject:e.subject,sender:t(n),sent:(new Date).toISOString(),payload:[{contentString:r}]}),createMedia:(e,n,r)=>({resourceType:"Media",status:"completed",basedOn:[t(e)],subject:e.subject,operator:t(n),issued:(new Date).toISOString(),content:r})})}export{Ae as AddressDisplay,Re as AddressInput,Ue as AnnotationInput,_e as AsyncAutocomplete,He as AttachmentArrayDisplay,Ut as AttachmentArrayInput,Ft as AttachmentButton,Ke as AttachmentDisplay,Wt as AttachmentInput,Ln as BackboneElementDisplay,wr as BackboneElementInput,Mr as CalendarInput,Fn as CheckboxFormSection,Gn as CodeInput,xn as CodeableConceptDisplay,Bn as CodeableConceptInput,Tn as CodingDisplay,Jn as CodingInput,Sn as ContactDetailDisplay,Xn as ContactDetailInput,wn as ContactPointDisplay,Yn as ContactPointInput,qt as Container,Zn as DateTimeInput,sa as DefaultResourceTimeline,kn as DescriptionList,bn as DescriptionListEntry,Lr as DiagnosticReportDisplay,Qt as Document,br as ElementDefinitionInputSelector,xr as ElementDefinitionTypeInput,ua as EncounterTimeline,Qr as ErrorBoundary,pl as FhirPathTable,Yt as Form,Un as FormSection,In as HumanNameDisplay,rr as HumanNameInput,Mn as IdentifierDisplay,ar as IdentifierInput,Xt as Logo,Pn as MedplumLink,Ne as MedplumProvider,hl as MemoizedFhirPathTable,sl as MemoizedSearchControl,An as MoneyDisplay,or as MoneyInput,Fr as ObservationTable,on as OperationOutcomeAlert,Ht as Panel,gl as PatientTimeline,El as PlanDefinitionBuilder,Dn as QuantityDisplay,ir as QuantityInput,jl as QuestionnaireBuilder,Vl as QuestionnaireForm,Pl as QuestionnaireFormItem,Al as QuestionnaireItemType,Vn as RangeDisplay,ur as RangeInput,Nn as ReferenceDisplay,fr as ReferenceInput,eo as ReferenceRangeEditor,to as ReferenceRangeGroupEditor,mn as RegisterForm,ao as RequestGroupDisplay,On as ResourceArrayDisplay,Er as ResourceArrayInput,dr as ResourceAvatar,Nr as ResourceBadge,so as ResourceBlame,go as ResourceDiff,jn as ResourceForm,Eo as ResourceHistoryTable,hr as ResourceInput,Pr as ResourceName,zn as ResourcePropertyDisplay,kr as ResourcePropertyInput,Hr as ResourceTable,ea as ResourceTimeline,ko as Scheduler,al as SearchChangeEvent,ol as SearchClickEvent,il as SearchControl,ja as SearchFieldEditor,Ha as SearchFilterEditor,ll as SearchLoadEvent,So as ServiceRequestTimeline,vn as SignInForm,zr as StatusBadge,Br as Timeline,Gr as TimelineItem,yr as TimingInput,Aa as addDateFilterBetween,va as addField,Ea as addFilter,Ta as addLastMonthFilter,Va as addMissingFilter,Sa as addNextMonthFilter,wa as addThisMonthFilter,ka as addTodayFilter,ba as addTomorrowFilter,Ma as addYearToDateFilter,Ca as addYesterdayFilter,Ua as buildFieldNameString,ga as clearFilters,fa as clearFiltersOnField,er as convertIsoToLocal,tr as convertLocalToIso,rn as createScriptTag,ya as deleteFilter,Zt as getErrorsForInput,en as getIssuesForExpression,Ir as getMonthString,Fa as getOpString,sn as getRecaptcha,La as getSearchOperators,za as getSortField,Ar as getStartMonth,mo as getTimeString,$n as getValueAndType,cn as initRecaptcha,Dl as isChoiceQuestion,Ul as isQuestionEnabled,$a as isSortDescending,Bt as parseForm,Wa as renderValue,ha as setFilters,Ra as setOffset,Pa as setPage,qn as setPropertyValue,Na as setSort,Jr as sortByDateAndPriority,Oa as toggleSort,ze as useMedplum,Oe as useMedplumContext,$e as useMedplumNavigate,Le as useMedplumProfile,Wn as useResource};
|