@medplum/react 0.9.25 → 0.9.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +282 -152
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.min.js +1 -1
- package/dist/cjs/index.min.js.map +1 -1
- package/dist/cjs/styles.css +83 -79
- package/dist/{types → esm}/AddressDisplay.d.ts +0 -0
- package/dist/esm/AddressDisplay.js +13 -0
- package/dist/esm/AddressDisplay.js.map +1 -0
- package/dist/{types → esm}/AddressInput.d.ts +0 -0
- package/dist/esm/AddressInput.js +69 -0
- package/dist/esm/AddressInput.js.map +1 -0
- package/dist/{types → esm}/AnnotationInput.d.ts +0 -0
- package/dist/esm/AnnotationInput.js +28 -0
- package/dist/esm/AnnotationInput.js.map +1 -0
- package/dist/{types → esm}/AttachmentArrayDisplay.d.ts +0 -0
- package/dist/esm/AttachmentArrayDisplay.js +11 -0
- package/dist/esm/AttachmentArrayDisplay.js.map +1 -0
- package/dist/{types → esm}/AttachmentArrayInput.d.ts +0 -0
- package/dist/esm/AttachmentArrayInput.js +42 -0
- package/dist/esm/AttachmentArrayInput.js.map +1 -0
- package/dist/{types → esm}/AttachmentDisplay.d.ts +0 -0
- package/dist/esm/AttachmentDisplay.js +20 -0
- package/dist/esm/AttachmentDisplay.js.map +1 -0
- package/dist/{types → esm}/AttachmentInput.d.ts +0 -0
- package/dist/esm/AttachmentInput.js +27 -0
- package/dist/esm/AttachmentInput.js.map +1 -0
- package/dist/{types → esm}/Autocomplete.d.ts +1 -0
- package/dist/esm/Autocomplete.js +280 -0
- package/dist/esm/Autocomplete.js.map +1 -0
- package/dist/{types → esm}/Avatar.d.ts +0 -0
- package/dist/esm/Avatar.js +24 -0
- package/dist/esm/Avatar.js.map +1 -0
- package/dist/{types → esm}/BackboneElementDisplay.d.ts +0 -0
- package/dist/esm/BackboneElementDisplay.js +43 -0
- package/dist/esm/BackboneElementDisplay.js.map +1 -0
- package/dist/{types → esm}/BackboneElementInput.d.ts +0 -0
- package/dist/esm/BackboneElementInput.js +51 -0
- package/dist/esm/BackboneElementInput.js.map +1 -0
- package/dist/{types → esm}/Button.d.ts +0 -0
- package/dist/esm/Button.js +13 -0
- package/dist/esm/Button.js.map +1 -0
- package/dist/{types → esm}/CalendarInput.d.ts +0 -0
- package/dist/esm/CalendarInput.js +96 -0
- package/dist/esm/CalendarInput.js.map +1 -0
- package/dist/{types → esm}/Checkbox.d.ts +0 -0
- package/dist/esm/Checkbox.js +13 -0
- package/dist/esm/Checkbox.js.map +1 -0
- package/dist/{types → esm}/CheckboxFormSection.d.ts +0 -0
- package/dist/esm/CheckboxFormSection.js +12 -0
- package/dist/esm/CheckboxFormSection.js.map +1 -0
- package/dist/{types → esm}/CodeInput.d.ts +0 -0
- package/dist/esm/CodeInput.js +28 -0
- package/dist/esm/CodeInput.js.map +1 -0
- package/dist/{types → esm}/CodeableConceptDisplay.d.ts +0 -0
- package/dist/esm/CodeableConceptDisplay.js +21 -0
- package/dist/esm/CodeableConceptDisplay.js.map +1 -0
- package/dist/{types → esm}/CodeableConceptInput.d.ts +0 -0
- package/dist/esm/CodeableConceptInput.js +52 -0
- package/dist/esm/CodeableConceptInput.js.map +1 -0
- package/dist/{types → esm}/CodingDisplay.d.ts +0 -0
- package/dist/esm/CodingDisplay.js +9 -0
- package/dist/esm/CodingDisplay.js.map +1 -0
- package/dist/{types → esm}/CodingInput.d.ts +0 -0
- package/dist/esm/CodingInput.js +30 -0
- package/dist/esm/CodingInput.js.map +1 -0
- package/dist/{types → esm}/ContactDetailDisplay.d.ts +0 -0
- package/dist/esm/ContactDetailDisplay.js +17 -0
- package/dist/esm/ContactDetailDisplay.js.map +1 -0
- package/dist/{types → esm}/ContactDetailInput.d.ts +0 -0
- package/dist/esm/ContactDetailInput.js +37 -0
- package/dist/esm/ContactDetailInput.js.map +1 -0
- package/dist/{types → esm}/ContactPointDisplay.d.ts +0 -0
- package/dist/esm/ContactPointDisplay.js +29 -0
- package/dist/esm/ContactPointDisplay.js.map +1 -0
- package/dist/{types → esm}/ContactPointInput.d.ts +0 -0
- package/dist/esm/ContactPointInput.js +60 -0
- package/dist/esm/ContactPointInput.js.map +1 -0
- package/dist/{types → esm}/DateTimeInput.d.ts +0 -0
- package/dist/esm/DateTimeInput.js +60 -0
- package/dist/esm/DateTimeInput.js.map +1 -0
- package/dist/{types → esm}/DefaultResourceTimeline.d.ts +0 -0
- package/dist/esm/DefaultResourceTimeline.js +27 -0
- package/dist/esm/DefaultResourceTimeline.js.map +1 -0
- package/dist/{types → esm}/DescriptionList.d.ts +0 -0
- package/dist/esm/DescriptionList.js +13 -0
- package/dist/esm/DescriptionList.js.map +1 -0
- package/dist/{types → esm}/DiagnosticReportDisplay.d.ts +0 -0
- package/dist/esm/DiagnosticReportDisplay.js +101 -0
- package/dist/esm/DiagnosticReportDisplay.js.map +1 -0
- package/dist/{types → esm}/Dialog.d.ts +0 -0
- package/dist/esm/Dialog.js +43 -0
- package/dist/esm/Dialog.js.map +1 -0
- package/dist/{types → esm}/Document.d.ts +0 -0
- package/dist/esm/Document.js +9 -0
- package/dist/esm/Document.js.map +1 -0
- package/dist/{types → esm}/EncounterTimeline.d.ts +0 -0
- package/dist/esm/EncounterTimeline.js +47 -0
- package/dist/esm/EncounterTimeline.js.map +1 -0
- package/dist/{types → esm}/ErrorBoundary.d.ts +0 -0
- package/dist/esm/ErrorBoundary.js +27 -0
- package/dist/esm/ErrorBoundary.js.map +1 -0
- package/dist/{types → esm}/ExtensionInput.d.ts +0 -0
- package/dist/esm/ExtensionInput.js +14 -0
- package/dist/esm/ExtensionInput.js.map +1 -0
- package/dist/{types → esm}/FhirPathDisplay.d.ts +0 -0
- package/dist/esm/FhirPathDisplay.js +23 -0
- package/dist/esm/FhirPathDisplay.js.map +1 -0
- package/dist/{types → esm}/FhirPathTable.d.ts +0 -0
- package/dist/esm/FhirPathTable.js +117 -0
- package/dist/esm/FhirPathTable.js.map +1 -0
- package/dist/{types → esm}/FooterLinks.d.ts +0 -0
- package/dist/esm/FooterLinks.js +8 -0
- package/dist/esm/FooterLinks.js.map +1 -0
- package/dist/{types → esm}/Form.d.ts +0 -0
- package/dist/esm/Form.js +15 -0
- package/dist/esm/Form.js.map +1 -0
- package/dist/{types → esm}/FormSection.d.ts +0 -0
- package/dist/esm/FormSection.js +18 -0
- package/dist/esm/FormSection.js.map +1 -0
- package/dist/{types → esm}/FormUtils.d.ts +0 -0
- package/dist/esm/FormUtils.js +49 -0
- package/dist/esm/FormUtils.js.map +1 -0
- package/dist/{types → esm}/GoogleButton.d.ts +0 -0
- package/dist/esm/GoogleButton.js +48 -0
- package/dist/esm/GoogleButton.js.map +1 -0
- package/dist/{types → esm}/Header.d.ts +0 -0
- package/dist/esm/Header.js +95 -0
- package/dist/esm/Header.js.map +1 -0
- package/dist/{types → esm}/HeaderSearchInput.d.ts +0 -0
- package/dist/esm/HeaderSearchInput.js +181 -0
- package/dist/esm/HeaderSearchInput.js.map +1 -0
- package/dist/{types → esm}/HumanNameDisplay.d.ts +0 -0
- package/dist/esm/HumanNameDisplay.js +13 -0
- package/dist/esm/HumanNameDisplay.js.map +1 -0
- package/dist/{types → esm}/HumanNameInput.d.ts +0 -0
- package/dist/esm/HumanNameInput.js +49 -0
- package/dist/esm/HumanNameInput.js.map +1 -0
- package/dist/{types → esm}/IdentifierDisplay.d.ts +0 -0
- package/dist/esm/IdentifierDisplay.js +12 -0
- package/dist/esm/IdentifierDisplay.js.map +1 -0
- package/dist/{types → esm}/IdentifierInput.d.ts +0 -0
- package/dist/esm/IdentifierInput.js +19 -0
- package/dist/esm/IdentifierInput.js.map +1 -0
- package/dist/{types → esm}/Input.d.ts +0 -0
- package/dist/esm/Input.js +26 -0
- package/dist/esm/Input.js.map +1 -0
- package/dist/{types → esm}/InputRow.d.ts +0 -0
- package/dist/esm/InputRow.js +8 -0
- package/dist/esm/InputRow.js.map +1 -0
- package/dist/{types → esm}/Loading.d.ts +0 -0
- package/dist/esm/Loading.js +11 -0
- package/dist/esm/Loading.js.map +1 -0
- package/dist/{types → esm}/Logo.d.ts +0 -0
- package/dist/esm/Logo.js +14 -0
- package/dist/esm/Logo.js.map +1 -0
- package/dist/{types → esm}/MedplumLink.d.ts +0 -0
- package/dist/esm/MedplumLink.js +34 -0
- package/dist/esm/MedplumLink.js.map +1 -0
- package/dist/{types → esm}/MedplumProvider.d.ts +0 -0
- package/dist/esm/MedplumProvider.js +50 -0
- package/dist/esm/MedplumProvider.js.map +1 -0
- package/dist/{types → esm}/MenuItem.d.ts +0 -0
- package/dist/esm/MenuItem.js +8 -0
- package/dist/esm/MenuItem.js.map +1 -0
- package/dist/{types → esm}/MenuSeparator.d.ts +0 -0
- package/dist/esm/MenuSeparator.js +8 -0
- package/dist/esm/MenuSeparator.js.map +1 -0
- package/dist/{types → esm}/PatientTimeline.d.ts +0 -0
- package/dist/esm/PatientTimeline.js +40 -0
- package/dist/esm/PatientTimeline.js.map +1 -0
- package/dist/{types → esm}/PeriodInput.d.ts +0 -0
- package/dist/esm/PeriodInput.js +19 -0
- package/dist/esm/PeriodInput.js.map +1 -0
- package/dist/{types → esm}/PlanDefinitionBuilder.d.ts +0 -0
- package/dist/esm/PlanDefinitionBuilder.js +224 -0
- package/dist/esm/PlanDefinitionBuilder.js.map +1 -0
- package/dist/{types → esm}/Popup.d.ts +0 -0
- package/dist/esm/Popup.js +64 -0
- package/dist/esm/Popup.js.map +1 -0
- package/dist/{types → esm}/QuantityDisplay.d.ts +0 -0
- package/dist/esm/QuantityDisplay.js +28 -0
- package/dist/esm/QuantityDisplay.js.map +1 -0
- package/dist/{types → esm}/QuantityInput.d.ts +0 -0
- package/dist/esm/QuantityInput.js +33 -0
- package/dist/esm/QuantityInput.js.map +1 -0
- package/dist/{types → esm}/QuestionnaireBuilder.d.ts +0 -0
- package/dist/esm/QuestionnaireBuilder.js +217 -0
- package/dist/esm/QuestionnaireBuilder.js.map +1 -0
- package/dist/{types → esm}/QuestionnaireForm.d.ts +0 -0
- package/dist/esm/QuestionnaireForm.js +218 -0
- package/dist/esm/QuestionnaireForm.js.map +1 -0
- package/dist/{types → esm}/QuestionnaireUtils.d.ts +0 -0
- package/dist/esm/QuestionnaireUtils.js +103 -0
- package/dist/esm/QuestionnaireUtils.js.map +1 -0
- package/dist/{types → esm}/RangeDisplay.d.ts +0 -0
- package/dist/esm/RangeDisplay.js +21 -0
- package/dist/esm/RangeDisplay.js.map +1 -0
- package/dist/{types → esm}/RangeInput.d.ts +0 -0
- package/dist/esm/RangeInput.js +25 -0
- package/dist/esm/RangeInput.js.map +1 -0
- package/dist/{types → esm}/RatioDisplay.d.ts +0 -0
- package/dist/esm/RatioDisplay.js +16 -0
- package/dist/esm/RatioDisplay.js.map +1 -0
- package/dist/{types → esm}/RatioInput.d.ts +0 -0
- package/dist/esm/RatioInput.js +25 -0
- package/dist/esm/RatioInput.js.map +1 -0
- package/dist/{types → esm}/ReferenceDisplay.d.ts +0 -0
- package/dist/esm/ReferenceDisplay.js +21 -0
- package/dist/esm/ReferenceDisplay.js.map +1 -0
- package/dist/{types → esm}/ReferenceInput.d.ts +0 -0
- package/dist/esm/ReferenceInput.js +42 -0
- package/dist/esm/ReferenceInput.js.map +1 -0
- package/dist/{types → esm}/RegisterForm.d.ts +0 -0
- package/dist/esm/RegisterForm.js +121 -0
- package/dist/esm/RegisterForm.js.map +1 -0
- package/dist/{types → esm}/RequestGroupDisplay.d.ts +0 -0
- package/dist/esm/RequestGroupDisplay.js +72 -0
- package/dist/esm/RequestGroupDisplay.js.map +1 -0
- package/dist/{types → esm}/ResourceArrayDisplay.d.ts +0 -0
- package/dist/esm/ResourceArrayDisplay.js +14 -0
- package/dist/esm/ResourceArrayDisplay.js.map +1 -0
- package/dist/{types → esm}/ResourceArrayInput.d.ts +0 -0
- package/dist/esm/ResourceArrayInput.js +47 -0
- package/dist/esm/ResourceArrayInput.js.map +1 -0
- package/dist/{types → esm}/ResourceBadge.d.ts +0 -0
- package/dist/esm/ResourceBadge.js +13 -0
- package/dist/esm/ResourceBadge.js.map +1 -0
- package/dist/{types → esm}/ResourceBlame.d.ts +0 -0
- package/dist/esm/ResourceBlame.js +65 -0
- package/dist/esm/ResourceBlame.js.map +1 -0
- package/dist/{types → esm}/ResourceDiff.d.ts +0 -0
- package/dist/esm/ResourceDiff.js +28 -0
- package/dist/esm/ResourceDiff.js.map +1 -0
- package/dist/{types → esm}/ResourceDiffTable.d.ts +0 -0
- package/dist/esm/ResourceDiffTable.js +58 -0
- package/dist/esm/ResourceDiffTable.js.map +1 -0
- package/dist/{types → esm}/ResourceForm.d.ts +0 -0
- package/dist/esm/ResourceForm.js +55 -0
- package/dist/esm/ResourceForm.js.map +1 -0
- package/dist/{types → esm}/ResourceHistoryTable.d.ts +0 -0
- package/dist/esm/ResourceHistoryTable.js +45 -0
- package/dist/esm/ResourceHistoryTable.js.map +1 -0
- package/dist/{types → esm}/ResourceInput.d.ts +1 -0
- package/dist/esm/ResourceInput.js +41 -0
- package/dist/esm/ResourceInput.js.map +1 -0
- package/dist/{types → esm}/ResourceName.d.ts +0 -0
- package/dist/esm/ResourceName.js +16 -0
- package/dist/esm/ResourceName.js.map +1 -0
- package/dist/{types → esm}/ResourcePropertyDisplay.d.ts +0 -0
- package/dist/esm/ResourcePropertyDisplay.js +107 -0
- package/dist/esm/ResourcePropertyDisplay.js.map +1 -0
- package/dist/{types → esm}/ResourcePropertyInput.d.ts +0 -0
- package/dist/esm/ResourcePropertyInput.js +154 -0
- package/dist/esm/ResourcePropertyInput.js.map +1 -0
- package/dist/{types → esm}/ResourceTable.d.ts +0 -0
- package/dist/esm/ResourceTable.js +22 -0
- package/dist/esm/ResourceTable.js.map +1 -0
- package/dist/{types → esm}/ResourceTimeline.d.ts +0 -0
- package/dist/esm/ResourceTimeline.js +221 -0
- package/dist/esm/ResourceTimeline.js.map +1 -0
- package/dist/{types → esm}/Scheduler.d.ts +0 -0
- package/dist/esm/Scheduler.js +82 -0
- package/dist/esm/Scheduler.js.map +1 -0
- package/dist/{types → esm}/Scrollable.d.ts +0 -0
- package/dist/esm/Scrollable.js +12 -0
- package/dist/esm/Scrollable.js.map +1 -0
- package/dist/{types → esm}/SearchControl.d.ts +0 -0
- package/dist/esm/SearchControl.js +268 -0
- package/dist/esm/SearchControl.js.map +1 -0
- package/dist/{types → esm}/SearchControlField.d.ts +0 -0
- package/dist/esm/SearchControlField.js +98 -0
- package/dist/esm/SearchControlField.js.map +1 -0
- package/dist/{types → esm}/SearchFieldEditor.d.ts +0 -0
- package/dist/esm/SearchFieldEditor.js +192 -0
- package/dist/esm/SearchFieldEditor.js.map +1 -0
- package/dist/{types → esm}/SearchFilterEditor.d.ts +0 -0
- package/dist/esm/SearchFilterEditor.js +103 -0
- package/dist/esm/SearchFilterEditor.js.map +1 -0
- package/dist/{types → esm}/SearchFilterValueDialog.d.ts +0 -0
- package/dist/esm/SearchFilterValueDialog.js +22 -0
- package/dist/esm/SearchFilterValueDialog.js.map +1 -0
- package/dist/{types → esm}/SearchFilterValueDisplay.d.ts +0 -0
- package/dist/esm/SearchFilterValueDisplay.js +22 -0
- package/dist/esm/SearchFilterValueDisplay.js.map +1 -0
- package/dist/{types → esm}/SearchFilterValueInput.d.ts +0 -0
- package/dist/esm/SearchFilterValueInput.js +59 -0
- package/dist/esm/SearchFilterValueInput.js.map +1 -0
- package/dist/{types → esm}/SearchPopupMenu.d.ts +0 -0
- package/dist/esm/SearchPopupMenu.js +135 -0
- package/dist/esm/SearchPopupMenu.js.map +1 -0
- package/dist/{types → esm}/SearchUtils.d.ts +0 -0
- package/dist/esm/SearchUtils.js +487 -0
- package/dist/esm/SearchUtils.js.map +1 -0
- package/dist/{types → esm}/Select.d.ts +0 -0
- package/dist/esm/Select.js +16 -0
- package/dist/esm/Select.js.map +1 -0
- package/dist/{types → esm}/ServiceRequestTimeline.d.ts +0 -0
- package/dist/esm/ServiceRequestTimeline.js +53 -0
- package/dist/esm/ServiceRequestTimeline.js.map +1 -0
- package/dist/{types → esm}/SignInForm.d.ts +0 -0
- package/dist/esm/SignInForm.js +130 -0
- package/dist/esm/SignInForm.js.map +1 -0
- package/dist/{types → esm}/StatusBadge.d.ts +0 -0
- package/dist/esm/StatusBadge.js +8 -0
- package/dist/esm/StatusBadge.js.map +1 -0
- package/dist/{types → esm}/SubMenu.d.ts +0 -0
- package/dist/esm/SubMenu.js +38 -0
- package/dist/esm/SubMenu.js.map +1 -0
- package/dist/{types → esm}/Tab.d.ts +0 -0
- package/dist/esm/Tab.js +19 -0
- package/dist/esm/Tab.js.map +1 -0
- package/dist/{types → esm}/TabList.d.ts +0 -0
- package/dist/esm/TabList.js +23 -0
- package/dist/esm/TabList.js.map +1 -0
- package/dist/{types → esm}/TabPanel.d.ts +0 -0
- package/dist/esm/TabPanel.js +8 -0
- package/dist/esm/TabPanel.js.map +1 -0
- package/dist/{types → esm}/TabSwitch.d.ts +0 -0
- package/dist/esm/TabSwitch.js +16 -0
- package/dist/esm/TabSwitch.js.map +1 -0
- package/dist/{types → esm}/TextArea.d.ts +0 -0
- package/dist/esm/TextArea.js +16 -0
- package/dist/esm/TextArea.js.map +1 -0
- package/dist/{types → esm}/Timeline.d.ts +0 -0
- package/dist/esm/Timeline.js +48 -0
- package/dist/esm/Timeline.js.map +1 -0
- package/dist/esm/TimingInput.d.ts +8 -0
- package/dist/esm/TimingInput.js +90 -0
- package/dist/esm/TimingInput.js.map +1 -0
- package/dist/{types → esm}/TitleBar.d.ts +0 -0
- package/dist/esm/TitleBar.js +8 -0
- package/dist/esm/TitleBar.js.map +1 -0
- package/dist/{types → esm}/UploadButton.d.ts +0 -0
- package/dist/esm/UploadButton.js +55 -0
- package/dist/esm/UploadButton.js.map +1 -0
- package/dist/{types → esm}/constants.d.ts +0 -0
- package/dist/esm/constants.js +12 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/{types → esm}/index.d.ts +0 -1
- package/dist/esm/index.js +86 -5814
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.min.js +1 -1
- package/dist/esm/index.min.js.map +1 -1
- package/dist/esm/node_modules/tslib/tslib.es6.js +27 -0
- package/dist/esm/node_modules/tslib/tslib.es6.js.map +1 -0
- package/dist/{types → esm}/stories/AddressInput.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/AttachmentArrayInput.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/AttachmentInput.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/Autocomplete.stories.d.ts +1 -0
- package/dist/{types → esm}/stories/Avatar.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/Button.stories.d.ts +0 -0
- package/dist/esm/stories/CodeableConceptDisplay.stories.d.ts +8 -0
- package/dist/{types → esm}/stories/DiagnosticReportDisplay.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/Dialog.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/EncounterTimeline.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/FhirPathDisplay.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/FormSection.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/Header.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/Input.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/Loading.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/Logo.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/PatientTimeline.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/PlanDefinitionBuilder.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/QuestionnaireBuilder.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/QuestionnaireForm.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/ReferenceInput.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/RegisterForm.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/RequestGroupDisplay.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/ResourceBlame.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/ResourceForm.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/ResourceHistoryTable.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/ResourceTable.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/Scheduler.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/SearchControl.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/Select.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/SignInForm.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/StatusBadge.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/Tabs.stories.d.ts +0 -0
- package/dist/{types → esm}/stories/Timeline.stories.d.ts +0 -0
- package/dist/esm/stories/TimingInput.stories.d.ts +6 -0
- package/dist/{types → esm}/stories/UploadButton.stories.d.ts +0 -0
- package/dist/esm/styles.css +83 -79
- package/dist/{types → esm}/test.setup.d.ts +0 -0
- package/dist/{types → esm}/useResource.d.ts +0 -0
- package/dist/esm/useResource.js +65 -0
- package/dist/esm/useResource.js.map +1 -0
- package/dist/{types → esm}/utils/blame.d.ts +0 -0
- package/dist/esm/utils/blame.js +74 -0
- package/dist/esm/utils/blame.js.map +1 -0
- package/dist/{types → esm}/utils/date.d.ts +0 -0
- package/dist/esm/utils/date.js +48 -0
- package/dist/esm/utils/date.js.map +1 -0
- package/dist/{types → esm}/utils/diff.d.ts +0 -0
- package/dist/esm/utils/diff.js +118 -0
- package/dist/esm/utils/diff.js.map +1 -0
- package/dist/{types → esm}/utils/dom.d.ts +0 -0
- package/dist/esm/utils/dom.js +34 -0
- package/dist/esm/utils/dom.js.map +1 -0
- package/dist/{types → esm}/utils/outcomes.d.ts +0 -0
- package/dist/esm/utils/outcomes.js +7 -0
- package/dist/esm/utils/outcomes.js.map +1 -0
- package/dist/{types → esm}/utils/recaptcha.d.ts +0 -0
- package/dist/esm/utils/recaptcha.js +27 -0
- package/dist/esm/utils/recaptcha.js.map +1 -0
- package/dist/{types → esm}/utils.d.ts +0 -0
- package/dist/esm/utils.js +15 -0
- package/dist/esm/utils.js.map +1 -0
- package/package.json +7 -7
- package/stats.html +4034 -0
- package/dist/types/DateTimeDisplay.d.ts +0 -5
- package/dist/types/PeriodDisplay.d.ts +0 -6
package/dist/cjs/index.js
CHANGED
|
@@ -333,7 +333,7 @@
|
|
|
333
333
|
var _a, _b;
|
|
334
334
|
const inputRef = React.useRef(null);
|
|
335
335
|
const [focused, setFocused] = React.useState(false);
|
|
336
|
-
const [lastValue, setLastValue] = React.useState(
|
|
336
|
+
const [lastValue, setLastValue] = React.useState(undefined);
|
|
337
337
|
const [timer, setTimer] = React.useState();
|
|
338
338
|
const [dropDownVisible, setDropDownVisible] = React.useState(false);
|
|
339
339
|
const [values, setValues] = React.useState((_a = props.defaultValue) !== null && _a !== void 0 ? _a : []);
|
|
@@ -387,6 +387,9 @@
|
|
|
387
387
|
}
|
|
388
388
|
function handleFocus() {
|
|
389
389
|
setFocused(true);
|
|
390
|
+
if (props.loadOnFocus) {
|
|
391
|
+
handleInput();
|
|
392
|
+
}
|
|
390
393
|
}
|
|
391
394
|
function handleBlur() {
|
|
392
395
|
setFocused(false);
|
|
@@ -526,13 +529,6 @@
|
|
|
526
529
|
// Nothing has changed, move on
|
|
527
530
|
return;
|
|
528
531
|
}
|
|
529
|
-
if (!value) {
|
|
530
|
-
setDropDownVisible(false);
|
|
531
|
-
setLastValue('');
|
|
532
|
-
setOptions([]);
|
|
533
|
-
setSelectedIndex(-1);
|
|
534
|
-
return;
|
|
535
|
-
}
|
|
536
532
|
setLastValue(value);
|
|
537
533
|
const newAbortController = new AbortController();
|
|
538
534
|
setAbortController(newAbortController);
|
|
@@ -845,8 +841,10 @@
|
|
|
845
841
|
if (value.text) {
|
|
846
842
|
return React__default["default"].createElement(React__default["default"].Fragment, null, value.text);
|
|
847
843
|
}
|
|
848
|
-
if (value.coding
|
|
849
|
-
return React__default["default"].createElement(
|
|
844
|
+
if (value.coding) {
|
|
845
|
+
return (React__default["default"].createElement(React__default["default"].Fragment, null, value.coding.map((coding, index) => (React__default["default"].createElement(React__default["default"].Fragment, { key: 'coding-' + index },
|
|
846
|
+
index > 0 && React__default["default"].createElement(React__default["default"].Fragment, null, ', '),
|
|
847
|
+
React__default["default"].createElement(CodingDisplay, { value: coding }))))));
|
|
850
848
|
}
|
|
851
849
|
return null;
|
|
852
850
|
}
|
|
@@ -888,13 +886,6 @@
|
|
|
888
886
|
_a.map((telecom, index) => (React__default["default"].createElement(ContactPointDisplay, { key: 'telecom-' + index, value: telecom })))));
|
|
889
887
|
}
|
|
890
888
|
|
|
891
|
-
function DateTimeDisplay(props) {
|
|
892
|
-
if (!props.value) {
|
|
893
|
-
return null;
|
|
894
|
-
}
|
|
895
|
-
return React__default["default"].createElement(React__default["default"].Fragment, null, new Date(props.value).toLocaleString());
|
|
896
|
-
}
|
|
897
|
-
|
|
898
889
|
function HumanNameDisplay(props) {
|
|
899
890
|
const name = props.value;
|
|
900
891
|
if (!name) {
|
|
@@ -911,17 +902,6 @@
|
|
|
911
902
|
_b.value));
|
|
912
903
|
}
|
|
913
904
|
|
|
914
|
-
function PeriodDisplay(props) {
|
|
915
|
-
const value = props.value;
|
|
916
|
-
if (!value || (!value.start && !value.end)) {
|
|
917
|
-
return null;
|
|
918
|
-
}
|
|
919
|
-
return (React__default["default"].createElement("span", null,
|
|
920
|
-
React__default["default"].createElement(DateTimeDisplay, { value: value.start }),
|
|
921
|
-
"-",
|
|
922
|
-
React__default["default"].createElement(DateTimeDisplay, { value: value.end })));
|
|
923
|
-
}
|
|
924
|
-
|
|
925
905
|
function QuantityDisplay(props) {
|
|
926
906
|
return React__default["default"].createElement(React__default["default"].Fragment, null, formatQuantityString(props.value));
|
|
927
907
|
}
|
|
@@ -1023,7 +1003,7 @@
|
|
|
1023
1003
|
return React__default["default"].createElement(ReferenceDisplay, { value: { reference: value }, link: props.link });
|
|
1024
1004
|
case core.PropertyType.dateTime:
|
|
1025
1005
|
case core.PropertyType.instant:
|
|
1026
|
-
return React__default["default"].createElement(
|
|
1006
|
+
return React__default["default"].createElement("div", null, core.formatDateTime(value));
|
|
1027
1007
|
case core.PropertyType.markdown:
|
|
1028
1008
|
return React__default["default"].createElement("pre", null, value);
|
|
1029
1009
|
case core.PropertyType.Address:
|
|
@@ -1045,7 +1025,7 @@
|
|
|
1045
1025
|
case core.PropertyType.Identifier:
|
|
1046
1026
|
return React__default["default"].createElement(IdentifierDisplay, { value: value });
|
|
1047
1027
|
case core.PropertyType.Period:
|
|
1048
|
-
return React__default["default"].createElement(
|
|
1028
|
+
return React__default["default"].createElement("div", null, core.formatPeriod(value));
|
|
1049
1029
|
case core.PropertyType.Quantity:
|
|
1050
1030
|
return React__default["default"].createElement(QuantityDisplay, { value: value });
|
|
1051
1031
|
case core.PropertyType.Range:
|
|
@@ -1054,6 +1034,8 @@
|
|
|
1054
1034
|
return React__default["default"].createElement(RatioDisplay, { value: value });
|
|
1055
1035
|
case core.PropertyType.Reference:
|
|
1056
1036
|
return React__default["default"].createElement(ReferenceDisplay, { value: value, link: props.link });
|
|
1037
|
+
case core.PropertyType.Timing:
|
|
1038
|
+
return React__default["default"].createElement("div", null, core.formatTiming(value));
|
|
1057
1039
|
default:
|
|
1058
1040
|
if (!(property === null || property === void 0 ? void 0 : property.path)) {
|
|
1059
1041
|
throw Error(`Displaying property of type ${props.propertyType} requires element definition path`);
|
|
@@ -1313,7 +1295,7 @@
|
|
|
1313
1295
|
// See: https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#local_date_and_time_strings
|
|
1314
1296
|
// See: https://stackoverflow.com/a/60368477
|
|
1315
1297
|
const date = new Date(isoString);
|
|
1316
|
-
if (!isValidDate(date)) {
|
|
1298
|
+
if (!core.isValidDate(date)) {
|
|
1317
1299
|
// If the input string was malformed, return an empty string.
|
|
1318
1300
|
return '';
|
|
1319
1301
|
}
|
|
@@ -1332,15 +1314,12 @@
|
|
|
1332
1314
|
// JavaScript's Date() constructor defaults to the local time zone.
|
|
1333
1315
|
// The Date() constructor will throw if the value is malformed.
|
|
1334
1316
|
const date = new Date(localString);
|
|
1335
|
-
if (!isValidDate(date)) {
|
|
1317
|
+
if (!core.isValidDate(date)) {
|
|
1336
1318
|
// If the input string was malformed, return an empty string.
|
|
1337
1319
|
return '';
|
|
1338
1320
|
}
|
|
1339
1321
|
return date.toISOString();
|
|
1340
1322
|
}
|
|
1341
|
-
function isValidDate(date) {
|
|
1342
|
-
return date instanceof Date && !isNaN(date.getTime());
|
|
1343
|
-
}
|
|
1344
1323
|
|
|
1345
1324
|
function TextArea(props) {
|
|
1346
1325
|
const className = 'medplum-textarea' + (props.monospace ? ' monospace' : '');
|
|
@@ -1493,6 +1472,31 @@
|
|
|
1493
1472
|
React__default["default"].createElement(QuantityInput, { name: props.name + '-denominator', defaultValue: value === null || value === void 0 ? void 0 : value.denominator, onChange: (v) => setValueWrapper(Object.assign(Object.assign({}, value), { denominator: v })) })));
|
|
1494
1473
|
}
|
|
1495
1474
|
|
|
1475
|
+
/******************************************************************************
|
|
1476
|
+
Copyright (c) Microsoft Corporation.
|
|
1477
|
+
|
|
1478
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
1479
|
+
purpose with or without fee is hereby granted.
|
|
1480
|
+
|
|
1481
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
1482
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
1483
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
1484
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
1485
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
1486
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
1487
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
1488
|
+
***************************************************************************** */
|
|
1489
|
+
|
|
1490
|
+
function __awaiter(thisArg, _arguments, P, generator) {
|
|
1491
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
1492
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
1493
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
1494
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
1495
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
1496
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
1497
|
+
});
|
|
1498
|
+
}
|
|
1499
|
+
|
|
1496
1500
|
function ResourceName(props) {
|
|
1497
1501
|
const resource = useResource(props.value);
|
|
1498
1502
|
if (!resource) {
|
|
@@ -1517,18 +1521,18 @@
|
|
|
1517
1521
|
props.onChange(newValue);
|
|
1518
1522
|
}
|
|
1519
1523
|
}
|
|
1520
|
-
return (React__default["default"].createElement(Autocomplete, { loadOptions: (input) => {
|
|
1524
|
+
return (React__default["default"].createElement(Autocomplete, { loadOptions: (input) => __awaiter(this, void 0, void 0, function* () {
|
|
1521
1525
|
return medplum
|
|
1522
1526
|
.search(resourceTypeRef.current, 'name=' + encodeURIComponent(input) + '&_count=10')
|
|
1523
1527
|
.then((bundle) => bundle.entry.map((entry) => entry.resource));
|
|
1524
|
-
}, getId: (item) => {
|
|
1528
|
+
}), getId: (item) => {
|
|
1525
1529
|
return item.id;
|
|
1526
1530
|
}, getIcon: (item) => React__default["default"].createElement(Avatar, { value: item }), getDisplay: (item) => React__default["default"].createElement(ResourceName, { value: item }), getHelpText: (item) => {
|
|
1527
1531
|
if (item.resourceType === 'Patient' && item.birthDate) {
|
|
1528
1532
|
return 'DoB: ' + item.birthDate;
|
|
1529
1533
|
}
|
|
1530
1534
|
return undefined;
|
|
1531
|
-
}, name: props.name, defaultValue: value ? [value] : undefined, className: props.className, placeholder: props.placeholder, onChange: (items) => {
|
|
1535
|
+
}, name: props.name, defaultValue: value ? [value] : undefined, className: props.className, placeholder: props.placeholder, loadOnFocus: props.loadOnFocus, onChange: (items) => {
|
|
1532
1536
|
setValueWrapper(items.length > 0 ? items[0] : undefined);
|
|
1533
1537
|
} }));
|
|
1534
1538
|
}
|
|
@@ -1567,8 +1571,7 @@
|
|
|
1567
1571
|
}
|
|
1568
1572
|
|
|
1569
1573
|
function ResourceArrayInput(props) {
|
|
1570
|
-
|
|
1571
|
-
const [values, setValues] = React.useState((_a = props.defaultValue) !== null && _a !== void 0 ? _a : []);
|
|
1574
|
+
const [values, setValues] = React.useState(props.defaultValue && Array.isArray(props.defaultValue) ? props.defaultValue : []);
|
|
1572
1575
|
const valuesRef = React.useRef();
|
|
1573
1576
|
valuesRef.current = values;
|
|
1574
1577
|
function setValuesWrapper(newValues) {
|
|
@@ -1607,6 +1610,120 @@
|
|
|
1607
1610
|
} }, "Add"))))));
|
|
1608
1611
|
}
|
|
1609
1612
|
|
|
1613
|
+
function Dialog(props) {
|
|
1614
|
+
const [x, setX] = React.useState(100);
|
|
1615
|
+
const [y, setY] = React.useState(100);
|
|
1616
|
+
if (!props.visible) {
|
|
1617
|
+
return null;
|
|
1618
|
+
}
|
|
1619
|
+
function handleMouseDown(downEvent) {
|
|
1620
|
+
killEvent(downEvent);
|
|
1621
|
+
const dragX = downEvent.clientX - x;
|
|
1622
|
+
const dragY = downEvent.clientY - y;
|
|
1623
|
+
function handleMouseMove(moveEvent) {
|
|
1624
|
+
killEvent(moveEvent);
|
|
1625
|
+
setX(moveEvent.clientX - dragX);
|
|
1626
|
+
setY(moveEvent.clientY - dragY);
|
|
1627
|
+
}
|
|
1628
|
+
function handleMouseUp(upEvent) {
|
|
1629
|
+
killEvent(upEvent);
|
|
1630
|
+
document.removeEventListener('mouseup', handleMouseUp, true);
|
|
1631
|
+
document.removeEventListener('mousemove', handleMouseMove, true);
|
|
1632
|
+
}
|
|
1633
|
+
document.addEventListener('mouseup', handleMouseUp, true);
|
|
1634
|
+
document.addEventListener('mousemove', handleMouseMove, true);
|
|
1635
|
+
}
|
|
1636
|
+
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
1637
|
+
React__default["default"].createElement("div", { className: "modal-dialog-bg" }),
|
|
1638
|
+
React__default["default"].createElement("div", { className: "modal-dialog", "data-testid": "dialog", tabIndex: 0, style: { left: x + 'px', top: y + 'px' } },
|
|
1639
|
+
React__default["default"].createElement("div", { className: "modal-dialog-title", onMouseDown: (e) => handleMouseDown(e) },
|
|
1640
|
+
React__default["default"].createElement("span", { className: "modal-dialog-title-text" }, props.title),
|
|
1641
|
+
React__default["default"].createElement("span", { className: "modal-dialog-title-close", tabIndex: 0, onClick: props.onCancel },
|
|
1642
|
+
React__default["default"].createElement("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor" },
|
|
1643
|
+
React__default["default"].createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" })))),
|
|
1644
|
+
React__default["default"].createElement("div", { className: "modal-dialog-content" }, props.children),
|
|
1645
|
+
React__default["default"].createElement("div", { className: "modal-dialog-buttons" },
|
|
1646
|
+
React__default["default"].createElement(Button, { testid: "dialog-ok", onClick: props.onOk }, "OK"),
|
|
1647
|
+
React__default["default"].createElement(Button, { testid: "dialog-cancel", onClick: props.onCancel }, "Cancel")))));
|
|
1648
|
+
}
|
|
1649
|
+
|
|
1650
|
+
const daysOfWeek = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];
|
|
1651
|
+
function TimingInput(props) {
|
|
1652
|
+
const [value, setValue] = React.useState(props.defaultValue || {});
|
|
1653
|
+
const [open, setOpen] = React.useState(false);
|
|
1654
|
+
const valueRef = React.useRef();
|
|
1655
|
+
valueRef.current = value;
|
|
1656
|
+
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
1657
|
+
React__default["default"].createElement(InputRow, null,
|
|
1658
|
+
React__default["default"].createElement("span", null, core.formatTiming(valueRef.current) || 'No repeat'),
|
|
1659
|
+
React__default["default"].createElement(Button, { onClick: () => setOpen(true) }, "Edit")),
|
|
1660
|
+
React__default["default"].createElement(TimingEditorDialog, { visible: open, defaultValue: valueRef.current, onOk: (newValue) => {
|
|
1661
|
+
if (props.onChange) {
|
|
1662
|
+
props.onChange(newValue);
|
|
1663
|
+
}
|
|
1664
|
+
setValue(newValue);
|
|
1665
|
+
setOpen(false);
|
|
1666
|
+
}, onCancel: () => setOpen(false) })));
|
|
1667
|
+
}
|
|
1668
|
+
function TimingEditorDialog(props) {
|
|
1669
|
+
var _a, _b;
|
|
1670
|
+
const [value, setValue] = React.useState(props.defaultValue || {});
|
|
1671
|
+
const valueRef = React.useRef();
|
|
1672
|
+
valueRef.current = value;
|
|
1673
|
+
function setStart(newStart) {
|
|
1674
|
+
setValue(Object.assign(Object.assign({}, valueRef.current), { event: [newStart] }));
|
|
1675
|
+
}
|
|
1676
|
+
function setRepeat(repeat) {
|
|
1677
|
+
setValue(Object.assign(Object.assign({}, valueRef.current), { repeat }));
|
|
1678
|
+
}
|
|
1679
|
+
function setPeriod(newPeriod) {
|
|
1680
|
+
var _a;
|
|
1681
|
+
setRepeat(Object.assign(Object.assign({}, (_a = valueRef.current) === null || _a === void 0 ? void 0 : _a.repeat), { period: newPeriod }));
|
|
1682
|
+
}
|
|
1683
|
+
function setPeriodUnit(newPeriodUnit) {
|
|
1684
|
+
var _a;
|
|
1685
|
+
setRepeat(Object.assign(Object.assign({}, (_a = valueRef.current) === null || _a === void 0 ? void 0 : _a.repeat), { periodUnit: newPeriodUnit }));
|
|
1686
|
+
}
|
|
1687
|
+
function setDayOfWeek(day, enabled) {
|
|
1688
|
+
if (enabled) {
|
|
1689
|
+
addDayOfWeek(day);
|
|
1690
|
+
}
|
|
1691
|
+
else {
|
|
1692
|
+
removeDayOfWeek(day);
|
|
1693
|
+
}
|
|
1694
|
+
}
|
|
1695
|
+
function addDayOfWeek(day) {
|
|
1696
|
+
var _a, _b, _c;
|
|
1697
|
+
const existing = ((_b = (_a = valueRef.current) === null || _a === void 0 ? void 0 : _a.repeat) === null || _b === void 0 ? void 0 : _b.dayOfWeek) || [];
|
|
1698
|
+
if (!existing.includes(day)) {
|
|
1699
|
+
setRepeat(Object.assign(Object.assign({}, (_c = valueRef.current) === null || _c === void 0 ? void 0 : _c.repeat), { dayOfWeek: [...existing, day] }));
|
|
1700
|
+
}
|
|
1701
|
+
}
|
|
1702
|
+
function removeDayOfWeek(day) {
|
|
1703
|
+
var _a, _b, _c;
|
|
1704
|
+
const existing = ((_b = (_a = valueRef.current) === null || _a === void 0 ? void 0 : _a.repeat) === null || _b === void 0 ? void 0 : _b.dayOfWeek) || [];
|
|
1705
|
+
if (existing.includes(day)) {
|
|
1706
|
+
setRepeat(Object.assign(Object.assign({}, (_c = valueRef.current) === null || _c === void 0 ? void 0 : _c.repeat), { dayOfWeek: existing.filter((d) => d !== day) }));
|
|
1707
|
+
}
|
|
1708
|
+
}
|
|
1709
|
+
return (React__default["default"].createElement(Dialog, { title: "Timing", visible: props.visible, onOk: () => props.onOk(value), onCancel: () => props.onCancel() },
|
|
1710
|
+
React__default["default"].createElement("div", { style: { padding: '5px 20px', textAlign: 'left' } },
|
|
1711
|
+
React__default["default"].createElement(FormSection, { title: "Starts on", htmlFor: 'timing-dialog-start' },
|
|
1712
|
+
React__default["default"].createElement(DateTimeInput, { name: 'timing-dialog-start', onChange: (newValue) => setStart(newValue) })),
|
|
1713
|
+
React__default["default"].createElement(FormSection, { title: "Repeat every", htmlFor: 'timing-dialog-period' },
|
|
1714
|
+
React__default["default"].createElement(InputRow, null,
|
|
1715
|
+
React__default["default"].createElement(Input, { type: "number", step: 1, name: 'timing-dialog-period', defaultValue: (_a = value === null || value === void 0 ? void 0 : value.repeat) === null || _a === void 0 ? void 0 : _a.period, onChange: (newValue) => setPeriod(parseInt(newValue)) }),
|
|
1716
|
+
React__default["default"].createElement(Select, { name: 'timing-dialog-periodUnit', defaultValue: (_b = value === null || value === void 0 ? void 0 : value.repeat) === null || _b === void 0 ? void 0 : _b.periodUnit, onChange: (newValue) => setPeriodUnit(newValue) },
|
|
1717
|
+
React__default["default"].createElement("option", { value: "d" }, "day"),
|
|
1718
|
+
React__default["default"].createElement("option", { value: "wk" }, "week"),
|
|
1719
|
+
React__default["default"].createElement("option", { value: "mo" }, "month"),
|
|
1720
|
+
React__default["default"].createElement("option", { value: "a" }, "year")))),
|
|
1721
|
+
React__default["default"].createElement(FormSection, { title: "Repeat on" },
|
|
1722
|
+
React__default["default"].createElement(InputRow, null, daysOfWeek.map((day) => (React__default["default"].createElement(React__default["default"].Fragment, { key: day },
|
|
1723
|
+
React__default["default"].createElement("label", { htmlFor: 'timing-dialog-repeat-' + day }, day.charAt(0).toUpperCase()),
|
|
1724
|
+
React__default["default"].createElement(Checkbox, { name: 'timing-dialog-repeat-' + day, onChange: (newValue) => setDayOfWeek(day, newValue) })))))))));
|
|
1725
|
+
}
|
|
1726
|
+
|
|
1610
1727
|
function ResourcePropertyInput(props) {
|
|
1611
1728
|
var _a, _b, _c;
|
|
1612
1729
|
const property = props.property;
|
|
@@ -1719,6 +1836,8 @@
|
|
|
1719
1836
|
return React__default["default"].createElement(RatioInput, { name: name, defaultValue: value, onChange: props.onChange });
|
|
1720
1837
|
case core.PropertyType.Reference:
|
|
1721
1838
|
return (React__default["default"].createElement(ReferenceInput, { name: name, defaultValue: value, targetTypes: getTargetTypes(property), onChange: props.onChange }));
|
|
1839
|
+
case core.PropertyType.Timing:
|
|
1840
|
+
return React__default["default"].createElement(TimingInput, { name: name, defaultValue: value, onChange: props.onChange });
|
|
1722
1841
|
default:
|
|
1723
1842
|
return (React__default["default"].createElement(BackboneElementInput, { typeName: core.buildTypeName((_a = property.path) === null || _a === void 0 ? void 0 : _a.split('.')), defaultValue: value, onChange: props.onChange, outcome: props.outcome }));
|
|
1724
1843
|
}
|
|
@@ -1808,8 +1927,7 @@
|
|
|
1808
1927
|
React__default["default"].createElement(ResourceBadge, { value: interpreter, link: true }))))),
|
|
1809
1928
|
diagnosticReport.issued && (React__default["default"].createElement("dl", null,
|
|
1810
1929
|
React__default["default"].createElement("dt", null, "Issued"),
|
|
1811
|
-
React__default["default"].createElement("dd", null,
|
|
1812
|
-
React__default["default"].createElement(DateTimeDisplay, { value: diagnosticReport.issued })))),
|
|
1930
|
+
React__default["default"].createElement("dd", null, core.formatDateTime(diagnosticReport.issued)))),
|
|
1813
1931
|
diagnosticReport.status && (React__default["default"].createElement("dl", null,
|
|
1814
1932
|
React__default["default"].createElement("dt", null, "Status"),
|
|
1815
1933
|
React__default["default"].createElement("dd", null, core.capitalize(diagnosticReport.status))))),
|
|
@@ -2104,8 +2222,7 @@
|
|
|
2104
2222
|
React__default["default"].createElement("div", { className: "medplum-timeline-item-title" },
|
|
2105
2223
|
React__default["default"].createElement(ResourceName, { value: author, link: true }),
|
|
2106
2224
|
React__default["default"].createElement("div", { className: "medplum-timeline-item-subtitle" },
|
|
2107
|
-
React__default["default"].createElement(MedplumLink, { to: props.resource },
|
|
2108
|
-
React__default["default"].createElement(DateTimeDisplay, { value: (_c = props.resource.meta) === null || _c === void 0 ? void 0 : _c.lastUpdated })),
|
|
2225
|
+
React__default["default"].createElement(MedplumLink, { to: props.resource }, core.formatDateTime((_c = props.resource.meta) === null || _c === void 0 ? void 0 : _c.lastUpdated)),
|
|
2109
2226
|
React__default["default"].createElement("span", null, "\u00B7"),
|
|
2110
2227
|
React__default["default"].createElement(MedplumLink, { to: props.resource }, props.resource.resourceType))),
|
|
2111
2228
|
props.popupMenuItems && (React__default["default"].createElement("div", { className: "medplum-timeline-item-actions" },
|
|
@@ -2551,43 +2668,6 @@
|
|
|
2551
2668
|
return { name };
|
|
2552
2669
|
}
|
|
2553
2670
|
|
|
2554
|
-
function Dialog(props) {
|
|
2555
|
-
const [x, setX] = React.useState(100);
|
|
2556
|
-
const [y, setY] = React.useState(100);
|
|
2557
|
-
if (!props.visible) {
|
|
2558
|
-
return null;
|
|
2559
|
-
}
|
|
2560
|
-
function handleMouseDown(downEvent) {
|
|
2561
|
-
killEvent(downEvent);
|
|
2562
|
-
const dragX = downEvent.clientX - x;
|
|
2563
|
-
const dragY = downEvent.clientY - y;
|
|
2564
|
-
function handleMouseMove(moveEvent) {
|
|
2565
|
-
killEvent(moveEvent);
|
|
2566
|
-
setX(moveEvent.clientX - dragX);
|
|
2567
|
-
setY(moveEvent.clientY - dragY);
|
|
2568
|
-
}
|
|
2569
|
-
function handleMouseUp(upEvent) {
|
|
2570
|
-
killEvent(upEvent);
|
|
2571
|
-
document.removeEventListener('mouseup', handleMouseUp, true);
|
|
2572
|
-
document.removeEventListener('mousemove', handleMouseMove, true);
|
|
2573
|
-
}
|
|
2574
|
-
document.addEventListener('mouseup', handleMouseUp, true);
|
|
2575
|
-
document.addEventListener('mousemove', handleMouseMove, true);
|
|
2576
|
-
}
|
|
2577
|
-
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
2578
|
-
React__default["default"].createElement("div", { className: "modal-dialog-bg" }),
|
|
2579
|
-
React__default["default"].createElement("div", { className: "modal-dialog", "data-testid": "dialog", tabIndex: 0, style: { left: x + 'px', top: y + 'px' } },
|
|
2580
|
-
React__default["default"].createElement("div", { className: "modal-dialog-title", onMouseDown: (e) => handleMouseDown(e) },
|
|
2581
|
-
React__default["default"].createElement("span", { className: "modal-dialog-title-text" }, props.title),
|
|
2582
|
-
React__default["default"].createElement("span", { className: "modal-dialog-title-close", tabIndex: 0, onClick: props.onCancel },
|
|
2583
|
-
React__default["default"].createElement("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor" },
|
|
2584
|
-
React__default["default"].createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" })))),
|
|
2585
|
-
React__default["default"].createElement("div", { className: "modal-dialog-content" }, props.children),
|
|
2586
|
-
React__default["default"].createElement("div", { className: "modal-dialog-buttons" },
|
|
2587
|
-
React__default["default"].createElement(Button, { testid: "dialog-ok", onClick: props.onOk }, "OK"),
|
|
2588
|
-
React__default["default"].createElement(Button, { testid: "dialog-cancel", onClick: props.onCancel }, "Cancel")))));
|
|
2589
|
-
}
|
|
2590
|
-
|
|
2591
2671
|
const searchParamToOperators = {
|
|
2592
2672
|
string: [core.Operator.EQUALS, core.Operator.NOT, core.Operator.CONTAINS, core.Operator.EXACT],
|
|
2593
2673
|
fulltext: [core.Operator.EQUALS, core.Operator.NOT, core.Operator.CONTAINS, core.Operator.EXACT],
|
|
@@ -3023,7 +3103,7 @@
|
|
|
3023
3103
|
return (_a = resource.meta) === null || _a === void 0 ? void 0 : _a.versionId;
|
|
3024
3104
|
}
|
|
3025
3105
|
if (key === '_lastUpdated') {
|
|
3026
|
-
return
|
|
3106
|
+
return core.formatDateTime((_b = resource.meta) === null || _b === void 0 ? void 0 : _b.lastUpdated);
|
|
3027
3107
|
}
|
|
3028
3108
|
// Priority 1: ElementDefinition by exact match
|
|
3029
3109
|
if (field.elementDefinition && `${resource.resourceType}.${field.name}` === field.elementDefinition.path) {
|
|
@@ -3263,7 +3343,7 @@
|
|
|
3263
3343
|
return React__default["default"].createElement(ResourceName, { value: { reference: filter.value } });
|
|
3264
3344
|
}
|
|
3265
3345
|
if (props.filter.code === '_lastUpdated' || (searchParam === null || searchParam === void 0 ? void 0 : searchParam.type) === 'datetime') {
|
|
3266
|
-
return React__default["default"].createElement(
|
|
3346
|
+
return React__default["default"].createElement(React__default["default"].Fragment, null, core.formatDateTime(filter.value));
|
|
3267
3347
|
}
|
|
3268
3348
|
return React__default["default"].createElement(React__default["default"].Fragment, null, filter.value);
|
|
3269
3349
|
}
|
|
@@ -3951,31 +4031,6 @@
|
|
|
3951
4031
|
return React__default["default"].createElement("div", { className: "medplum-footer" }, props.children);
|
|
3952
4032
|
}
|
|
3953
4033
|
|
|
3954
|
-
/******************************************************************************
|
|
3955
|
-
Copyright (c) Microsoft Corporation.
|
|
3956
|
-
|
|
3957
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
3958
|
-
purpose with or without fee is hereby granted.
|
|
3959
|
-
|
|
3960
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
3961
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
3962
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
3963
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
3964
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
3965
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
3966
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
3967
|
-
***************************************************************************** */
|
|
3968
|
-
|
|
3969
|
-
function __awaiter(thisArg, _arguments, P, generator) {
|
|
3970
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3971
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
3972
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
3973
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
3974
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
3975
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
3976
|
-
});
|
|
3977
|
-
}
|
|
3978
|
-
|
|
3979
4034
|
function HeaderSearchInput(props) {
|
|
3980
4035
|
const medplum = useMedplum();
|
|
3981
4036
|
return (React__default["default"].createElement(Autocomplete, { loadOptions: (input, signal) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -4274,14 +4329,33 @@
|
|
|
4274
4329
|
}
|
|
4275
4330
|
|
|
4276
4331
|
function PlanDefinitionBuilder(props) {
|
|
4332
|
+
const medplum = useMedplum();
|
|
4277
4333
|
const defaultValue = useResource(props.value);
|
|
4334
|
+
const [schema, setSchema] = React.useState(undefined);
|
|
4335
|
+
const [selectedKey, setSelectedKey] = React.useState();
|
|
4336
|
+
const [hoverKey, setHoverKey] = React.useState();
|
|
4278
4337
|
const [value, setValue] = React.useState();
|
|
4338
|
+
function handleDocumentMouseOver() {
|
|
4339
|
+
setHoverKey(undefined);
|
|
4340
|
+
}
|
|
4341
|
+
function handleDocumentClick() {
|
|
4342
|
+
setSelectedKey(undefined);
|
|
4343
|
+
}
|
|
4279
4344
|
const valueRef = React.useRef();
|
|
4280
4345
|
valueRef.current = value;
|
|
4346
|
+
React.useEffect(() => {
|
|
4347
|
+
medplum.requestSchema('PlanDefinition').then(setSchema);
|
|
4348
|
+
}, [medplum]);
|
|
4281
4349
|
React.useEffect(() => {
|
|
4282
4350
|
setValue(ensurePlanDefinitionKeys(defaultValue !== null && defaultValue !== void 0 ? defaultValue : { resourceType: 'PlanDefinition' }));
|
|
4351
|
+
document.addEventListener('mouseover', handleDocumentMouseOver);
|
|
4352
|
+
document.addEventListener('click', handleDocumentClick);
|
|
4353
|
+
return () => {
|
|
4354
|
+
document.removeEventListener('mouseover', handleDocumentMouseOver);
|
|
4355
|
+
document.removeEventListener('click', handleDocumentClick);
|
|
4356
|
+
};
|
|
4283
4357
|
}, [defaultValue]);
|
|
4284
|
-
if (!value) {
|
|
4358
|
+
if (!schema || !value) {
|
|
4285
4359
|
return null;
|
|
4286
4360
|
}
|
|
4287
4361
|
function changeProperty(property, newValue) {
|
|
@@ -4289,9 +4363,9 @@
|
|
|
4289
4363
|
}
|
|
4290
4364
|
return (React__default["default"].createElement("div", { className: "medplum-questionnaire-builder" },
|
|
4291
4365
|
React__default["default"].createElement(Form, { testid: "questionnaire-form", onSubmit: () => props.onSubmit(value) },
|
|
4292
|
-
React__default["default"].createElement(FormSection, { title: "Plan Title",
|
|
4366
|
+
React__default["default"].createElement(FormSection, { title: "Plan Title", htmlFor: "title" },
|
|
4293
4367
|
React__default["default"].createElement(Input, { defaultValue: value.title, onChange: (newValue) => changeProperty('title', newValue) })),
|
|
4294
|
-
React__default["default"].createElement(ActionArrayBuilder, { actions: value.action || [], onChange: (x) => changeProperty('action', x) }),
|
|
4368
|
+
React__default["default"].createElement(ActionArrayBuilder, { actions: value.action || [], selectedKey: selectedKey, setSelectedKey: setSelectedKey, hoverKey: hoverKey, setHoverKey: setHoverKey, onChange: (x) => changeProperty('action', x) }),
|
|
4295
4369
|
React__default["default"].createElement(Button, { type: "submit", size: "large" }, "Save"))));
|
|
4296
4370
|
}
|
|
4297
4371
|
function ActionArrayBuilder(props) {
|
|
@@ -4302,75 +4376,102 @@
|
|
|
4302
4376
|
}
|
|
4303
4377
|
function addAction(addedAction) {
|
|
4304
4378
|
props.onChange([...actionsRef.current, addedAction]);
|
|
4379
|
+
props.setSelectedKey(addedAction.id);
|
|
4305
4380
|
}
|
|
4306
4381
|
function removeAction(removedAction) {
|
|
4307
4382
|
props.onChange(actionsRef.current.filter((i) => i !== removedAction));
|
|
4308
4383
|
}
|
|
4309
4384
|
return (React__default["default"].createElement("div", { className: "section" },
|
|
4310
|
-
props.actions.map((
|
|
4311
|
-
React__default["default"].createElement(ActionBuilder, { action:
|
|
4385
|
+
props.actions.map((action) => (React__default["default"].createElement("div", { key: action.id },
|
|
4386
|
+
React__default["default"].createElement(ActionBuilder, { action: action, selectedKey: props.selectedKey, setSelectedKey: props.setSelectedKey, hoverKey: props.hoverKey, setHoverKey: props.setHoverKey, onChange: changeAction, onRemove: () => removeAction(action) })))),
|
|
4312
4387
|
React__default["default"].createElement("div", { className: "bottom-actions" },
|
|
4313
4388
|
React__default["default"].createElement("a", { href: "#", onClick: (e) => {
|
|
4314
|
-
e
|
|
4389
|
+
killEvent(e);
|
|
4315
4390
|
addAction({ id: generateId$1() });
|
|
4316
4391
|
} }, "Add action"))));
|
|
4317
4392
|
}
|
|
4318
4393
|
function ActionBuilder(props) {
|
|
4319
4394
|
const { action } = props;
|
|
4320
|
-
const
|
|
4321
|
-
const
|
|
4322
|
-
|
|
4395
|
+
const actionType = getInitialActionType(action);
|
|
4396
|
+
const editing = props.selectedKey === props.action.id;
|
|
4397
|
+
const hovering = props.hoverKey === props.action.id;
|
|
4398
|
+
function onClick(e) {
|
|
4399
|
+
e.stopPropagation();
|
|
4400
|
+
props.setSelectedKey(props.action.id);
|
|
4401
|
+
}
|
|
4402
|
+
function onHover(e) {
|
|
4403
|
+
killEvent(e);
|
|
4404
|
+
props.setHoverKey(props.action.id);
|
|
4405
|
+
}
|
|
4406
|
+
const className = editing ? 'section editing' : hovering ? 'section hovering' : 'section';
|
|
4407
|
+
return (React__default["default"].createElement("div", { "data-testid": action.id, className: className, onClick: onClick, onMouseOver: onHover },
|
|
4408
|
+
editing ? (React__default["default"].createElement(ActionEditor, { action: action, actionType: actionType, onChange: props.onChange, selectedKey: props.selectedKey, setSelectedKey: props.setSelectedKey, hoverKey: props.hoverKey, setHoverKey: props.setHoverKey, onRemove: props.onRemove })) : (React__default["default"].createElement(ActionDisplay, { action: action, actionType: actionType })),
|
|
4409
|
+
React__default["default"].createElement("div", { className: "bottom-actions" },
|
|
4410
|
+
React__default["default"].createElement("a", { href: "#", onClick: (e) => {
|
|
4411
|
+
e.preventDefault();
|
|
4412
|
+
props.onRemove();
|
|
4413
|
+
} }, "Remove"))));
|
|
4414
|
+
}
|
|
4415
|
+
const timingProperty = {
|
|
4416
|
+
path: 'PlanDefinition.action.timing[x]',
|
|
4417
|
+
min: 0,
|
|
4418
|
+
max: '1',
|
|
4419
|
+
type: [{ code: 'dateTime' }, { code: 'Period' }, { code: 'Range' }, { code: 'Timing' }],
|
|
4420
|
+
};
|
|
4421
|
+
function ActionDisplay(props) {
|
|
4422
|
+
const { action, actionType } = props;
|
|
4423
|
+
const [propertyValue, propertyType] = getActionTiming(action);
|
|
4424
|
+
return (React__default["default"].createElement("div", null,
|
|
4425
|
+
React__default["default"].createElement("div", null,
|
|
4426
|
+
action.title || 'Untitled',
|
|
4427
|
+
" ",
|
|
4428
|
+
actionType && `(${actionType})`),
|
|
4429
|
+
action.definitionCanonical && (React__default["default"].createElement("div", null,
|
|
4430
|
+
React__default["default"].createElement(ReferenceDisplay, { value: { reference: action.definitionCanonical } }))),
|
|
4431
|
+
propertyValue && (React__default["default"].createElement("div", null,
|
|
4432
|
+
React__default["default"].createElement(ResourcePropertyDisplay, { property: timingProperty, propertyType: propertyType, value: propertyValue })))));
|
|
4433
|
+
}
|
|
4434
|
+
function ActionEditor(props) {
|
|
4435
|
+
const { action } = props;
|
|
4436
|
+
const [actionType, setActionType] = React.useState(props.actionType);
|
|
4323
4437
|
function changeProperty(property, value) {
|
|
4324
|
-
props.onChange(Object.assign(Object.assign({},
|
|
4438
|
+
props.onChange(Object.assign(Object.assign({}, action), { [property]: value }));
|
|
4325
4439
|
}
|
|
4326
|
-
return (React__default["default"].createElement("
|
|
4327
|
-
React__default["default"].createElement(FormSection, { title: "
|
|
4440
|
+
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
4441
|
+
React__default["default"].createElement(FormSection, { title: "Title", htmlFor: `actionTitle-${action.id}` },
|
|
4328
4442
|
React__default["default"].createElement(Input, { name: `actionTitle-${action.id}`, defaultValue: action.title, onChange: (newValue) => changeProperty('title', newValue) })),
|
|
4329
|
-
React__default["default"].createElement(FormSection, { title: "Action
|
|
4443
|
+
React__default["default"].createElement(FormSection, { title: "Type of Action", description: "The type of the action to be performed.", htmlFor: `actionType-${action.id}` },
|
|
4330
4444
|
React__default["default"].createElement(Select, { name: `actionType-${action.id}`, defaultValue: actionType, onChange: setActionType },
|
|
4331
4445
|
React__default["default"].createElement("option", null),
|
|
4332
4446
|
React__default["default"].createElement("option", { value: "appointment" }, "Appointment"),
|
|
4333
|
-
React__default["default"].createElement("option", { value: "documentation" }, "Documentation"),
|
|
4334
4447
|
React__default["default"].createElement("option", { value: "lab" }, "Lab"),
|
|
4335
4448
|
React__default["default"].createElement("option", { value: "questionnaire" }, "Questionnaire"),
|
|
4336
|
-
React__default["default"].createElement("option", { value: "shipping" }, "Shipping"),
|
|
4337
4449
|
React__default["default"].createElement("option", { value: "task" }, "Task"))),
|
|
4338
|
-
action.action && action.action.length > 0 && (React__default["default"].createElement(ActionArrayBuilder, { actions: action.action, onChange: (x) => changeProperty('action', x) })),
|
|
4450
|
+
action.action && action.action.length > 0 && (React__default["default"].createElement(ActionArrayBuilder, { actions: action.action, selectedKey: props.selectedKey, setSelectedKey: props.setSelectedKey, hoverKey: props.hoverKey, setHoverKey: props.setHoverKey, onChange: (x) => changeProperty('action', x) })),
|
|
4339
4451
|
(() => {
|
|
4340
4452
|
switch (actionType) {
|
|
4341
4453
|
case 'appointment':
|
|
4342
|
-
return React__default["default"].createElement("
|
|
4343
|
-
case 'documentation':
|
|
4344
|
-
return React__default["default"].createElement("div", null, "Documentation details");
|
|
4454
|
+
return (React__default["default"].createElement(ActionResourceTypeBuilder, { title: "Appointment", description: "The subject must schedule an appointment from the schedule.", resourceType: "Schedule", action: action, onChange: props.onChange }));
|
|
4345
4455
|
case 'lab':
|
|
4346
|
-
return React__default["default"].createElement(
|
|
4456
|
+
return (React__default["default"].createElement(ActionResourceTypeBuilder, { title: "Lab", description: "The subject must complete the following lab panel.", resourceType: "ActivityDefinition", action: action, onChange: props.onChange }));
|
|
4347
4457
|
case 'questionnaire':
|
|
4348
|
-
return React__default["default"].createElement(
|
|
4349
|
-
case 'shipping':
|
|
4350
|
-
return React__default["default"].createElement("div", null, "Shipping details");
|
|
4458
|
+
return (React__default["default"].createElement(ActionResourceTypeBuilder, { title: "Questionnaire", description: "The subject must complete the selected questionnaire.", resourceType: "Questionnaire", action: action, onChange: props.onChange }));
|
|
4351
4459
|
case 'task':
|
|
4352
|
-
return React__default["default"].createElement("
|
|
4460
|
+
return (React__default["default"].createElement(ActionResourceTypeBuilder, { title: "Task", description: "The subject must complete the following task.", resourceType: "ActivityDefinition", action: action, onChange: props.onChange }));
|
|
4353
4461
|
default:
|
|
4354
4462
|
return null;
|
|
4355
4463
|
}
|
|
4356
4464
|
})(),
|
|
4357
|
-
React__default["default"].createElement(
|
|
4358
|
-
React__default["default"].createElement(
|
|
4359
|
-
e.preventDefault();
|
|
4360
|
-
props.onRemove();
|
|
4361
|
-
} }, "Remove"))));
|
|
4362
|
-
}
|
|
4363
|
-
function LabActionBuilder(props) {
|
|
4364
|
-
return (React__default["default"].createElement(FormSection, { title: "Lab Details", description: "Choose observations definitions", htmlFor: props.action.id },
|
|
4365
|
-
React__default["default"].createElement("a", { href: "#", onClick: () => props.onChange(props.action) }, "Add")));
|
|
4465
|
+
React__default["default"].createElement(FormSection, { title: "Timing", description: "When the action should take place.", htmlFor: 'timing-' + action.id },
|
|
4466
|
+
React__default["default"].createElement(ActionTimingInput, { name: 'timing-' + action.id, action: action, onChange: props.onChange }))));
|
|
4366
4467
|
}
|
|
4367
|
-
function
|
|
4468
|
+
function ActionResourceTypeBuilder(props) {
|
|
4368
4469
|
const { id, definitionCanonical } = props.action;
|
|
4369
|
-
const
|
|
4470
|
+
const reference = (definitionCanonical === null || definitionCanonical === void 0 ? void 0 : definitionCanonical.startsWith(props.resourceType + '/'))
|
|
4370
4471
|
? { reference: definitionCanonical }
|
|
4371
4472
|
: undefined;
|
|
4372
|
-
return (React__default["default"].createElement(FormSection, { title:
|
|
4373
|
-
React__default["default"].createElement(ResourceInput, { name: id, resourceType:
|
|
4473
|
+
return (React__default["default"].createElement(FormSection, { title: props.title, description: props.description, htmlFor: id },
|
|
4474
|
+
React__default["default"].createElement(ResourceInput, { name: id, resourceType: props.resourceType, defaultValue: reference, loadOnFocus: true, onChange: (newValue) => {
|
|
4374
4475
|
if (newValue) {
|
|
4375
4476
|
props.onChange(Object.assign(Object.assign({}, props.action), { definitionCanonical: core.getReferenceString(newValue) }));
|
|
4376
4477
|
}
|
|
@@ -4379,13 +4480,30 @@
|
|
|
4379
4480
|
}
|
|
4380
4481
|
} })));
|
|
4381
4482
|
}
|
|
4483
|
+
function ActionTimingInput(props) {
|
|
4484
|
+
const value = props.action;
|
|
4485
|
+
const key = 'timing';
|
|
4486
|
+
const [propertyValue, propertyType] = getActionTiming(value);
|
|
4487
|
+
return (React__default["default"].createElement(ResourcePropertyInput, { property: timingProperty, name: "timing[x]", defaultValue: propertyValue, defaultPropertyType: propertyType, onChange: (newValue, propName) => {
|
|
4488
|
+
props.onChange(setPropertyValue(value, key, propName !== null && propName !== void 0 ? propName : key, timingProperty, newValue));
|
|
4489
|
+
} }));
|
|
4490
|
+
}
|
|
4382
4491
|
function getInitialActionType(action) {
|
|
4383
|
-
var _a;
|
|
4384
|
-
if ((_a = action.definitionCanonical) === null || _a === void 0 ? void 0 : _a.startsWith('
|
|
4492
|
+
var _a, _b, _c;
|
|
4493
|
+
if ((_a = action.definitionCanonical) === null || _a === void 0 ? void 0 : _a.startsWith('Schedule')) {
|
|
4494
|
+
return 'appointment';
|
|
4495
|
+
}
|
|
4496
|
+
if ((_b = action.definitionCanonical) === null || _b === void 0 ? void 0 : _b.startsWith('Questionnaire/')) {
|
|
4385
4497
|
return 'questionnaire';
|
|
4386
4498
|
}
|
|
4499
|
+
if ((_c = action.definitionCanonical) === null || _c === void 0 ? void 0 : _c.startsWith('ActivityDefinition/')) {
|
|
4500
|
+
return 'task';
|
|
4501
|
+
}
|
|
4387
4502
|
return undefined;
|
|
4388
4503
|
}
|
|
4504
|
+
function getActionTiming(action) {
|
|
4505
|
+
return getValueAndType({ type: 'PlanDefinitionAction', value: action }, 'timing');
|
|
4506
|
+
}
|
|
4389
4507
|
let nextId$1 = 1;
|
|
4390
4508
|
/**
|
|
4391
4509
|
* Generates a unique ID.
|
|
@@ -4586,12 +4704,14 @@
|
|
|
4586
4704
|
function onChangeItem(newResponseItems) {
|
|
4587
4705
|
props.onChange({
|
|
4588
4706
|
linkId: item.linkId,
|
|
4707
|
+
text: item.text,
|
|
4589
4708
|
item: newResponseItems,
|
|
4590
4709
|
});
|
|
4591
4710
|
}
|
|
4592
4711
|
function onChangeAnswer(newResponseAnswer) {
|
|
4593
4712
|
props.onChange({
|
|
4594
4713
|
linkId: item.linkId,
|
|
4714
|
+
text: item.text,
|
|
4595
4715
|
answer: [newResponseAnswer],
|
|
4596
4716
|
});
|
|
4597
4717
|
}
|
|
@@ -4692,6 +4812,7 @@
|
|
|
4692
4812
|
var _a, _b;
|
|
4693
4813
|
return {
|
|
4694
4814
|
linkId: item.linkId,
|
|
4815
|
+
text: item.text,
|
|
4695
4816
|
item: buildInitialResponseItems(item.item),
|
|
4696
4817
|
answer: (_b = (_a = item.initial) === null || _a === void 0 ? void 0 : _a.map(buildInitialResponseAnswer)) !== null && _b !== void 0 ? _b : [],
|
|
4697
4818
|
};
|
|
@@ -5017,7 +5138,17 @@
|
|
|
5017
5138
|
React__default["default"].createElement(Form, { style: { maxWidth: 400 }, onSubmit: (formData) => __awaiter(this, void 0, void 0, function* () {
|
|
5018
5139
|
try {
|
|
5019
5140
|
const recaptchaToken = yield getRecaptcha(recaptchaSiteKey);
|
|
5020
|
-
const registerRequest =
|
|
5141
|
+
const registerRequest = {
|
|
5142
|
+
projectId: props.projectId,
|
|
5143
|
+
projectName: formData.projectName,
|
|
5144
|
+
firstName: formData.firstName,
|
|
5145
|
+
lastName: formData.lastName,
|
|
5146
|
+
email: formData.email,
|
|
5147
|
+
password: formData.password,
|
|
5148
|
+
remember: formData.remember === 'true',
|
|
5149
|
+
recaptchaSiteKey,
|
|
5150
|
+
recaptchaToken,
|
|
5151
|
+
};
|
|
5021
5152
|
const userLogin = yield medplum.startNewUser(registerRequest);
|
|
5022
5153
|
handleAuthResponse(registerRequest, userLogin);
|
|
5023
5154
|
}
|
|
@@ -5041,6 +5172,7 @@
|
|
|
5041
5172
|
const userLogin = yield medplum.startGoogleLogin(loginRequest);
|
|
5042
5173
|
const googleClaims = core.parseJWTPayload(loginRequest.googleCredential);
|
|
5043
5174
|
const registerRequest = {
|
|
5175
|
+
projectId: props.projectId,
|
|
5044
5176
|
firstName: googleClaims.given_name,
|
|
5045
5177
|
lastName: googleClaims.family_name,
|
|
5046
5178
|
email: googleClaims.email,
|
|
@@ -5115,7 +5247,7 @@
|
|
|
5115
5247
|
"Last edited by\u00A0",
|
|
5116
5248
|
React__default["default"].createElement(ResourceName, { value: (_e = task === null || task === void 0 ? void 0 : task.meta) === null || _e === void 0 ? void 0 : _e.author }),
|
|
5117
5249
|
"\u00A0on\u00A0",
|
|
5118
|
-
|
|
5250
|
+
core.formatDateTime((_f = task === null || task === void 0 ? void 0 : task.meta) === null || _f === void 0 ? void 0 : _f.lastUpdated)),
|
|
5119
5251
|
React__default["default"].createElement("div", null,
|
|
5120
5252
|
"Status: ",
|
|
5121
5253
|
React__default["default"].createElement(StatusBadge, { status: (task === null || task === void 0 ? void 0 : task.status) || 'unknown' }))),
|
|
@@ -5440,8 +5572,7 @@
|
|
|
5440
5572
|
return (React__default["default"].createElement("tr", null,
|
|
5441
5573
|
React__default["default"].createElement("td", null,
|
|
5442
5574
|
React__default["default"].createElement(ResourceBadge, { value: (_a = props.version.meta) === null || _a === void 0 ? void 0 : _a.author, link: true })),
|
|
5443
|
-
React__default["default"].createElement("td", null,
|
|
5444
|
-
React__default["default"].createElement(DateTimeDisplay, { value: (_b = props.version.meta) === null || _b === void 0 ? void 0 : _b.lastUpdated })),
|
|
5575
|
+
React__default["default"].createElement("td", null, core.formatDateTime((_b = props.version.meta) === null || _b === void 0 ? void 0 : _b.lastUpdated)),
|
|
5445
5576
|
React__default["default"].createElement("td", null,
|
|
5446
5577
|
React__default["default"].createElement(MedplumLink, { to: getVersionUrl(props.version) }, (_c = props.version.meta) === null || _c === void 0 ? void 0 : _c.versionId))));
|
|
5447
5578
|
}
|
|
@@ -5835,7 +5966,6 @@
|
|
|
5835
5966
|
exports.ContactDetailInput = ContactDetailInput;
|
|
5836
5967
|
exports.ContactPointDisplay = ContactPointDisplay;
|
|
5837
5968
|
exports.ContactPointInput = ContactPointInput;
|
|
5838
|
-
exports.DateTimeDisplay = DateTimeDisplay;
|
|
5839
5969
|
exports.DateTimeInput = DateTimeInput;
|
|
5840
5970
|
exports.DefaultResourceTimeline = DefaultResourceTimeline;
|
|
5841
5971
|
exports.DiagnosticReportDisplay = DiagnosticReportDisplay;
|