@openmrs/esm-patient-registration-app 3.0.2-pre.310 → 3.0.2-pre.332
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/258.js +2 -0
- package/dist/258.js.map +1 -0
- package/dist/272.js +1 -1
- package/dist/272.js.map +1 -1
- package/dist/295.js +1 -1
- package/dist/295.js.map +1 -1
- package/dist/30.js +1 -1
- package/dist/30.js.map +1 -1
- package/dist/309.js +3 -0
- package/dist/{770.js.LICENSE.txt → 309.js.LICENSE.txt} +0 -0
- package/dist/309.js.map +1 -0
- package/dist/323.js +1 -1
- package/dist/323.js.map +1 -1
- package/dist/324.js +1 -1
- package/dist/324.js.map +1 -1
- package/dist/401.js +2 -0
- package/dist/401.js.map +1 -0
- package/dist/574.js +1 -1
- package/dist/71.js +1 -1
- package/dist/71.js.map +1 -1
- package/dist/817.js +1 -1
- package/dist/817.js.map +1 -1
- package/dist/831.js +3 -0
- package/dist/{932.js.LICENSE.txt → 831.js.LICENSE.txt} +0 -0
- package/dist/831.js.map +1 -0
- package/dist/916.js +2 -0
- package/dist/916.js.map +1 -0
- package/dist/932.js +1 -2
- package/dist/932.js.map +1 -1
- package/dist/openmrs-esm-patient-registration-app.js +1 -1
- package/dist/openmrs-esm-patient-registration-app.js.buildmanifest.json +103 -80
- package/dist/openmrs-esm-patient-registration-app.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +7 -1
- package/src/offline.resources.ts +34 -30
- package/src/offline.ts +9 -9
- package/src/patient-registration/field/id/id-field.component.tsx +15 -12
- package/src/patient-registration/{ui-components/identifier-selection-overlay/index.tsx → field/id/identifier-selection-overlay.tsx} +29 -30
- package/src/patient-registration/{ui-components/identifier-selection-overlay → field/id}/identifier-selection.scss +0 -0
- package/src/patient-registration/form-manager.test.ts +5 -14
- package/src/patient-registration/form-manager.ts +104 -72
- package/src/patient-registration/input/basic-input/input/input.component.tsx +2 -8
- package/src/patient-registration/input/custom-input/identifier/identifier-input.component.tsx +23 -34
- package/src/patient-registration/input/dummy-data/dummy-data-input.component.tsx +2 -0
- package/src/patient-registration/patient-registration-hooks.ts +71 -62
- package/src/patient-registration/patient-registration-types.tsx +30 -17
- package/src/patient-registration/patient-registration-utils.ts +4 -3
- package/src/patient-registration/patient-registration.component.tsx +17 -19
- package/src/patient-registration/patient-registration.resource.tsx +6 -5
- package/src/patient-registration/section/patient-relationships/relationships-section.component.tsx +6 -6
- package/src/root.component.tsx +2 -2
- package/src/widgets/delete-identifier-confirmation-modal.tsx +41 -0
- package/src/widgets/delete-identifier-modal.scss +32 -0
- package/src/widgets/edit-patient-details-button.component.tsx +1 -1
- package/translations/en.json +1 -2
- package/dist/373.js +0 -2
- package/dist/373.js.map +0 -1
- package/dist/764.js +0 -2
- package/dist/764.js.map +0 -1
- package/dist/770.js +0 -3
- package/dist/770.js.map +0 -1
- package/dist/94.js +0 -2
- package/dist/94.js.map +0 -1
package/dist/71.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"71.js","mappings":"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","sources":["webpack://@openmrs/esm-patient-registration-app/./src/constants.ts","webpack://@openmrs/esm-patient-registration-app/./src/patient-registration/form-manager.ts","webpack://@openmrs/esm-patient-registration-app/./src/config-schemas/openmrs-esm-patient-registration-schema.ts","webpack://@openmrs/esm-patient-registration-app/./src/offline.ts","webpack://@openmrs/esm-patient-registration-app/./src/index.ts","webpack://@openmrs/esm-patient-registration-app/./__mocks__/autogenerationoptions.mock.ts","webpack://@openmrs/esm-patient-registration-app/./src/offline.resources.ts","webpack://@openmrs/esm-patient-registration-app/./src/patient-registration/patient-registration.resource.tsx","webpack://@openmrs/esm-patient-registration-app//home/runner/work/openmrs-esm-patient-management/openmrs-esm-patient-management/packages/esm-patient-registration-app/translations|lazy|nonrecursive|/.json$/"],"sourcesContent":["import { omrsOfflineCachingStrategyHttpHeaderName, OmrsOfflineHttpHeaders } from '@openmrs/esm-framework';\n\nexport const moduleName = '@openmrs/esm-patient-registration-app';\nexport const patientRegistration = 'patient-registration';\n\nexport const cacheForOfflineHeaders: OmrsOfflineHttpHeaders = {\n [omrsOfflineCachingStrategyHttpHeaderName]: 'network-first',\n};\n","import { v4 } from 'uuid';\nimport { queueSynchronizationItem } from '@openmrs/esm-framework';\nimport { patientRegistration } from '../constants';\nimport {\n FormValues,\n PatientIdentifierType,\n AttributeValue,\n PatientUuidMapType,\n Patient,\n CapturePhotoProps,\n PatientIdentifier,\n PatientIdentifierValue,\n} from './patient-registration-types';\nimport {\n addPatientIdentifier,\n deletePatientIdentifier,\n deletePersonName,\n generateIdentifier,\n savePatient,\n savePatientPhoto,\n saveRelationship,\n updatePatientIdentifier,\n} from './patient-registration.resource';\nimport isEqual from 'lodash-es/isEqual';\n\nexport type SavePatientForm = (\n patientUuid: string | undefined,\n values: FormValues,\n patientUuidMap: PatientUuidMapType,\n initialAddressFieldValues: Record<string, any>,\n identifierTypes: Array<PatientIdentifierType>,\n capturePhotoProps: CapturePhotoProps,\n patientPhotoConceptUuid: string,\n currentLocation: string,\n personAttributeSections: any,\n abortController?: AbortController,\n) => Promise<string | null>;\n\nexport default class FormManager {\n static async savePatientFormOffline(\n patientUuid = v4(),\n values: FormValues,\n patientUuidMap: PatientUuidMapType,\n initialAddressFieldValues: Record<string, any>,\n identifierTypes: Array<PatientIdentifierType>,\n capturePhotoProps: CapturePhotoProps,\n patientPhotoConceptUuid: string,\n currentLocation: string,\n personAttributeSections: any,\n ): Promise<null> {\n await queueSynchronizationItem(\n patientRegistration,\n {\n patientUuid,\n formValues: values,\n patientUuidMap,\n initialAddressFieldValues,\n identifierTypes,\n capturePhotoProps,\n patientPhotoConceptUuid,\n currentLocation,\n personAttributeSections,\n },\n {\n id: patientUuid,\n displayName: 'Patient registration',\n dependencies: [],\n },\n );\n\n return null;\n }\n\n static async savePatientFormOnline(\n patientUuid: string | undefined,\n values: FormValues,\n patientUuidMap: PatientUuidMapType,\n initialAddressFieldValues: Record<string, any>,\n identifierTypes: Array<PatientIdentifierType>,\n capturePhotoProps: CapturePhotoProps,\n patientPhotoConceptUuid: string,\n currentLocation: string,\n personAttributeSections: any,\n abortController: AbortController,\n ): Promise<string> {\n const patientIdentifiers: PatientIdentifier[] = await FormManager.getPatientIdentifiersToCreate(\n values.identifiers,\n identifierTypes,\n currentLocation,\n abortController,\n );\n\n if (patientUuid) {\n await Promise.all(\n FormManager.savePatientIdentifiers(patientUuid, patientIdentifiers, values.identifiers, abortController),\n );\n }\n\n const createdPatient = FormManager.getPatientToCreate(\n values,\n personAttributeSections,\n patientUuidMap,\n initialAddressFieldValues,\n patientIdentifiers,\n );\n\n FormManager.getDeletedNames(patientUuidMap).forEach(async (name) => {\n await deletePersonName(name.nameUuid, name.personUuid, abortController);\n });\n\n const savePatientResponse = await savePatient(abortController, createdPatient, patientUuidMap.patientUuid);\n\n if (savePatientResponse.ok) {\n await Promise.all(\n values.relationships\n .filter((m) => m.relationship)\n .map(({ relatedPerson: relatedPersonUuid, relationship }) => {\n const relationshipType = relationship.split('/')[0];\n const direction = relationship.split('/')[1];\n const thisPatientUuid = savePatientResponse.data.uuid;\n const isAToB = direction === 'aIsToB';\n const relationshipToSave = {\n personA: isAToB ? relatedPersonUuid : thisPatientUuid,\n personB: isAToB ? thisPatientUuid : relatedPersonUuid,\n relationshipType,\n };\n\n return saveRelationship(abortController, relationshipToSave);\n }),\n );\n\n if (patientPhotoConceptUuid && capturePhotoProps?.imageData) {\n await savePatientPhoto(\n savePatientResponse.data.uuid,\n capturePhotoProps.imageData,\n '/ws/rest/v1/obs',\n capturePhotoProps.dateTime || new Date().toISOString(),\n patientPhotoConceptUuid,\n abortController,\n );\n }\n }\n\n return savePatientResponse.data.uuid;\n }\n\n static getPatientIdentifiersToCreate(\n patientIdentifiers: PatientIdentifierValue[], // values.identifiers\n identifierTypes: Array<PatientIdentifierType>,\n location: string,\n abortController: AbortController,\n ): Promise<Array<PatientIdentifier>> {\n const identifierTypeRequests: Array<Promise<PatientIdentifier>> = patientIdentifiers.map(\n async (patientIdentifier) => {\n const { identifierType: identifierTypeUuid, identifier, uuid, action, source } = patientIdentifier;\n const identifierType = identifierTypes.find((identifierType) => identifierType.uuid === identifierTypeUuid);\n if (identifier) {\n return {\n uuid,\n identifier,\n identifierType: identifierTypeUuid,\n location: location,\n preferred: identifierType?.isPrimary,\n };\n } else if (source && patientIdentifier?.autoGeneration) {\n const generateIdentifierResponse = await generateIdentifier(patientIdentifier.source.uuid, abortController);\n return {\n // is this undefined?\n uuid,\n identifier: generateIdentifierResponse.data.identifier,\n identifierType: identifierTypeUuid,\n location: location,\n preferred: identifierType?.isPrimary,\n };\n } else if (action === 'DELETE') {\n return {\n uuid,\n identifier: identifierTypeUuid,\n location,\n preferred: identifierType.isPrimary,\n };\n } else {\n // This is a case that should not occur.\n // If it did, the subsequent network request (when creating the patient) would fail with\n // BadRequest since the (returned) identifier type is undefined.\n // Better stop early.\n throw new Error('No approach for generating a patient identifier could be found.');\n }\n },\n );\n\n return Promise.all(identifierTypeRequests);\n }\n\n static getDeletedNames(patientUuidMap: PatientUuidMapType) {\n if (patientUuidMap?.additionalNameUuid) {\n return [\n {\n nameUuid: patientUuidMap.additionalNameUuid,\n personUuid: patientUuidMap.patientUuid,\n },\n ];\n }\n return [];\n }\n\n static getPatientToCreate(\n values: FormValues,\n personAttributeSections: any,\n patientUuidMap: PatientUuidMapType,\n initialAddressFieldValues: Record<string, any>,\n identifiers: Array<PatientIdentifier>,\n ): Patient {\n let address = FormManager.getPatientAddressField(values, initialAddressFieldValues);\n\n if (isEqual(initialAddressFieldValues, address)) {\n address = {};\n }\n\n return {\n uuid: patientUuidMap['patientUuid'],\n person: {\n uuid: patientUuidMap['patientUuid'],\n names: FormManager.getNames(values, patientUuidMap),\n gender: values.gender.charAt(0),\n birthdate: values.birthdate,\n birthdateEstimated: values.birthdateEstimated,\n attributes: FormManager.getPatientAttributes(values, personAttributeSections),\n addresses: [address],\n ...FormManager.getPatientDeathInfo(values),\n },\n identifiers,\n };\n }\n\n static getNames(values: FormValues, patientUuidMap: PatientUuidMapType) {\n const names = [\n {\n uuid: patientUuidMap.preferredNameUuid,\n preferred: true,\n givenName: values.givenName,\n middleName: values.middleName,\n familyName: values.familyName,\n },\n ];\n\n if (values.addNameInLocalLanguage) {\n names.push({\n uuid: patientUuidMap.additionalNameUuid,\n preferred: false,\n givenName: values.additionalGivenName,\n middleName: values.additionalMiddleName,\n familyName: values.additionalFamilyName,\n });\n }\n\n return names;\n }\n\n static getPatientAttributes(values: FormValues, personAttributeSections?: any) {\n const attributes: Array<AttributeValue> = [];\n\n if (personAttributeSections) {\n for (const section of personAttributeSections) {\n for (const attr of section.personAttributes) {\n attributes.push({\n attributeType: attr.uuid,\n value: values[attr.name],\n });\n }\n }\n }\n\n return attributes;\n }\n\n static getPatientAddressField(\n values: FormValues,\n initialAddressFieldValues: Record<string, any>,\n ): Record<string, string> {\n return Object.keys(initialAddressFieldValues).reduce(\n (memo, fieldName) => ({ ...memo, [fieldName]: values[fieldName] }),\n {},\n );\n }\n\n static getPatientDeathInfo(values: FormValues) {\n const { isDead, deathDate, deathCause } = values;\n return {\n dead: isDead,\n deathDate: isDead ? deathDate : undefined,\n causeOfDeath: isDead ? deathCause : undefined,\n };\n }\n\n static savePatientIdentifiers(\n patientUuid: string,\n patientIdentifiers: PatientIdentifier[],\n identifiers: PatientIdentifierValue[],\n abortController: AbortController,\n ) {\n return identifiers.map((identifier, index) => {\n if (identifier.action === 'ADD') {\n return addPatientIdentifier(patientUuid, patientIdentifiers[index], abortController);\n } else if (identifier.action === 'UPDATE') {\n return updatePatientIdentifier(patientUuid, patientIdentifiers[index], abortController);\n } else if (identifier.action === 'DELETE') {\n deletePatientIdentifier(patientUuid, patientIdentifiers[index]?.uuid, abortController);\n }\n });\n }\n}\n","import { Type, validators } from '@openmrs/esm-framework';\nconst builtInFields = ['name', 'gender', 'dob', 'address', 'id', 'death'];\nexport const esmPatientRegistrationSchema = {\n sections: {\n _type: Type.Array,\n _default: ['demographics', 'contact', 'relationships'],\n _description: \"An array of strings which are the keys from 'sectionDefinitions'\",\n _elements: {\n _type: Type.String,\n },\n },\n sectionDefinitions: {\n _type: Type.Object,\n _elements: {\n name: {\n _type: Type.String,\n _default: '',\n _description: 'The title to display at the top of the section.',\n },\n fields: {\n _type: Type.Array,\n _default: [],\n _description: `The parts to include in the section. Can be any of the following built-in fields: ${builtInFields.join(\n ', ',\n )}. Can also be any of the keys from the fieldDefinitions object, which you can use to define custom fields.`,\n _elements: { _type: Type.String }, // another validator at top level\n },\n },\n _default: {\n demographics: { name: 'Basic Info', fields: ['name', 'gender & dob', 'id'] },\n contact: { name: 'Contact Details', fields: ['address', 'phone & email'] },\n death: { name: 'Death Info', fields: ['death'] },\n relationships: { name: 'Relationships' },\n },\n },\n fieldDefinitions: {\n _type: Type.Object,\n _elements: {\n label: { _type: Type.String, _description: 'The label of the input' },\n uuid: {\n _type: Type.UUID,\n _description: 'Person attributetype uuid used to save the attribute',\n },\n placeholder: {\n _type: Type.String,\n _default: '',\n _description: 'Placeholder that will appear in the input.',\n },\n validation: {\n required: { _type: Type.Boolean, _default: false },\n matches: {\n _type: Type.String,\n _default: null,\n _description: 'Optional RegEx for testing the validity of the input.',\n },\n },\n },\n _default: {\n phone: {\n label: 'Telephone Number',\n uuid: '14d4f066-15f5-102d-96e4-000c29c2a5d7',\n validation: { required: true, matches: '^[0-9]*$' },\n },\n },\n _description:\n 'Definitions for custom fields that can be used in sectionDefinitions. Can also be used to override built-in fields.',\n },\n fieldConfigurations: {\n _type: Type.Object,\n _default: {\n name: {\n displayMiddleName: true,\n unidentifiedPatient: true,\n },\n },\n },\n links: {\n submitButton: {\n _type: Type.String,\n _default: '${openmrsSpaBase}/patient/${patientUuid}/chart',\n _validators: [validators.isUrlWithTemplateParameters(['patientUuid'])],\n },\n },\n concepts: {\n patientPhotoUuid: {\n _type: Type.ConceptUuid,\n _default: '736e8771-e501-4615-bfa7-570c03f4bef5',\n },\n },\n personAttributeSections: {\n _type: Type.Array,\n _default: [{ personAttributes: [{ name: 'phone', uuid: '14d4f066-15f5-102d-96e4-000c29c2a5d7' }] }],\n _elements: {\n _type: Type.Object,\n personAttributes: {\n _type: Type.Array,\n _elements: {\n _type: Type.Object,\n uuid: {\n _type: Type.UUID,\n _description: 'Person attributetype uuid used to save the attribute',\n },\n name: {\n _type: Type.String,\n _default: '',\n },\n _default: {\n phone: {\n name: 'phone',\n uuid: '14d4f066-15f5-102d-96e4-000c29c2a5d7',\n },\n },\n },\n },\n },\n },\n};\n","import {\n fetchCurrentPatient,\n OfflinePatientArgs,\n registerOfflinePatientHandler,\n setupOfflineSync,\n subscribePrecacheStaticDependencies,\n SyncProcessOptions,\n} from '@openmrs/esm-framework';\nimport { cacheForOfflineHeaders, patientRegistration } from './constants';\nimport {\n fetchAddressTemplate,\n fetchAllRelationshipTypes,\n fetchCurrentSession,\n fetchPatientIdentifierTypesWithSources,\n} from './offline.resources';\nimport FormManager from './patient-registration/form-manager';\nimport { PatientRegistration } from './patient-registration/patient-registration-types';\n\nexport function setupOffline() {\n setupOfflineSync(patientRegistration, [], syncPatientRegistration);\n subscribePrecacheStaticDependencies(precacheStaticAssets);\n registerOfflinePatientHandler('esm-patient-registration-app', {\n displayName: 'Patient registration',\n async onOfflinePatientAdded({ patientUuid }) {\n await fetchCurrentPatient(patientUuid, { headers: cacheForOfflineHeaders });\n },\n });\n}\n\nasync function precacheStaticAssets() {\n await Promise.all([\n fetchCurrentSession(),\n fetchAddressTemplate(),\n fetchAllRelationshipTypes(),\n fetchPatientIdentifierTypesWithSources(),\n ]);\n}\n\nexport async function syncPatientRegistration(\n queuedPatient: PatientRegistration,\n options: SyncProcessOptions<PatientRegistration>,\n) {\n await FormManager.savePatientFormOnline(\n undefined,\n queuedPatient.formValues,\n queuedPatient.patientUuidMap,\n queuedPatient.initialAddressFieldValues,\n queuedPatient.identifierTypes,\n queuedPatient.capturePhotoProps,\n queuedPatient.patientPhotoConceptUuid,\n queuedPatient.currentLocation,\n queuedPatient.personAttributeSections,\n options.abort,\n );\n}\n","import FormManager from './patient-registration/form-manager';\nimport { registerBreadcrumbs, defineConfigSchema, getAsyncLifecycle } from '@openmrs/esm-framework';\nimport {\n fetchCurrentSession,\n fetchAddressTemplate,\n fetchPatientIdentifierTypesWithSources,\n fetchAllRelationshipTypes,\n} from './offline.resources';\nimport { esmPatientRegistrationSchema } from './config-schemas/openmrs-esm-patient-registration-schema';\nimport { moduleName, patientRegistration } from './constants';\nimport { setupOffline } from './offline';\n\nconst importTranslation = require.context('../translations', false, /.json$/, 'lazy');\n\nconst backendDependencies = {\n 'webservices.rest': '^2.24.0',\n};\n\nconst frontendDependencies = {\n '@openmrs/esm-framework': process.env.FRAMEWORK_VERSION,\n};\n\nconst resources = {\n currentSession: fetchCurrentSession,\n addressTemplate: fetchAddressTemplate,\n relationshipTypes: fetchAllRelationshipTypes,\n patientIdentifiers: fetchPatientIdentifierTypesWithSources,\n};\n\nfunction setupOpenMRS() {\n const options = {\n featureName: 'Patient Registration',\n moduleName,\n };\n\n defineConfigSchema(moduleName, esmPatientRegistrationSchema);\n\n registerBreadcrumbs([\n {\n path: `${window.spaBase}/${patientRegistration}`,\n title: 'Patient Registration',\n parent: `${window.spaBase}/home`,\n },\n ]);\n\n setupOffline();\n\n return {\n pages: [\n {\n load: getAsyncLifecycle(() => import('./root.component'), options),\n route: /^patient-registration/,\n online: {\n savePatientForm: FormManager.savePatientFormOnline,\n },\n offline: {\n savePatientForm: FormManager.savePatientFormOffline,\n },\n resources,\n },\n {\n load: getAsyncLifecycle(() => import('./root.component'), {\n featureName: 'edit-patient-details-form',\n moduleName,\n }),\n route: /^patient\\/([a-zA-Z0-9\\-]+)\\/edit/,\n online: {\n savePatientForm: FormManager.savePatientFormOnline,\n },\n offline: {\n savePatientForm: FormManager.savePatientFormOffline,\n },\n resources,\n },\n ],\n extensions: [\n {\n id: 'add-patient-action',\n slot: 'top-nav-actions-slot',\n load: getAsyncLifecycle(() => import('./add-patient-link'), options),\n online: true,\n offline: true,\n },\n {\n id: 'cancel-patient-edit-modal',\n load: getAsyncLifecycle(() => import('./widgets/cancel-patient-edit.component'), options),\n online: true,\n offline: true,\n },\n {\n id: 'patient-photo-widget',\n slot: 'patient-photo-slot',\n load: getAsyncLifecycle(() => import('./widgets/display-photo.component'), options),\n online: true,\n offline: true,\n },\n {\n id: 'edit-patient-details-button',\n slot: 'patient-actions-slot',\n load: getAsyncLifecycle(() => import('./widgets/edit-patient-details-button.component'), options),\n online: true,\n offline: true,\n },\n ],\n };\n}\n\nexport { backendDependencies, frontendDependencies, importTranslation, setupOpenMRS };\n","export const mockAutoGenerationOptionsResult = {\n results: [\n {\n uuid: '42ae5ce0-d64b-11ea-9064-5adc43bbdd24',\n location: null,\n source: {\n uuid: '691eed12-c0f1-11e2-94be-8c13b969e334',\n },\n manualEntryEnabled: false,\n automaticGenerationEnabled: true,\n resourceVersion: '1.8',\n },\n {\n uuid: '497b8b17-54ec-4726-87ec-3c4da8cdcaeb',\n location: null,\n source: {\n uuid: '691eed12-c0f1-11e2-94be-8c13b969e334',\n },\n manualEntryEnabled: true,\n automaticGenerationEnabled: false,\n resourceVersion: '1.8',\n },\n {\n uuid: 'ed0529de-3530-4c49-921b-b4845a750b7e',\n location: null,\n source: {\n uuid: '75df804e-03c1-4964-842b-4fec585839e7',\n },\n manualEntryEnabled: true,\n automaticGenerationEnabled: false,\n resourceVersion: '1.8',\n },\n ],\n};\n","import React from 'react';\nimport find from 'lodash-es/find';\nimport camelCase from 'lodash-es/camelCase';\nimport { FetchResponse, openmrsFetch, SessionUser } from '@openmrs/esm-framework';\nimport { PatientIdentifierType, FetchedPatientIdentifierType } from './patient-registration/patient-registration-types';\nimport { mockAutoGenerationOptionsResult } from '../__mocks__/autogenerationoptions.mock';\nimport { cacheForOfflineHeaders } from './constants';\n\nexport interface Resources {\n addressTemplate: any;\n currentSession: SessionUser;\n relationshipTypes: any;\n patientIdentifiers: Array<PatientIdentifierType>;\n}\n\nexport const ResourcesContext = React.createContext<Resources>(null);\n\nexport async function fetchCurrentSession(abortController?: AbortController): Promise<FetchResponse<SessionUser>> {\n const { data } = await openmrsFetch('/ws/rest/v1/session', {\n signal: abortController?.signal,\n headers: cacheForOfflineHeaders,\n });\n return data;\n}\n\nexport async function fetchAddressTemplate(abortController?: AbortController) {\n const { data } = await openmrsFetch('/ws/rest/v1/systemsetting?q=layout.address.format&v=custom:(value)', {\n signal: abortController?.signal,\n headers: cacheForOfflineHeaders,\n });\n return data;\n}\n\nexport async function fetchAllRelationshipTypes(abortController?: AbortController) {\n const { data } = await openmrsFetch('/ws/rest/v1/relationshiptype?v=default', {\n signal: abortController?.signal,\n headers: cacheForOfflineHeaders,\n });\n return data;\n}\n\nexport async function fetchPatientIdentifierTypesWithSources(\n abortController?: AbortController,\n): Promise<Array<PatientIdentifierType>> {\n const [primaryIdentifierType, secondaryIdentifierTypes] = await Promise.all([\n fetchPrimaryIdentifierType(abortController),\n fetchSecondaryIdentifierTypes(abortController),\n ]);\n\n // @ts-ignore Reason: The required props of the type are generated below.\n const identifierTypes: Array<PatientIdentifierType> = [primaryIdentifierType, ...secondaryIdentifierTypes].filter(\n Boolean,\n );\n\n for (const identifierType of identifierTypes) {\n const [identifierSources, autoGenOptions] = await Promise.all([\n fetchIdentifierSources(identifierType.uuid, abortController),\n fetchAutoGenerationOptions(identifierType.uuid, abortController),\n ]);\n\n identifierType.identifierSources = identifierSources.data.results.map((source) => {\n const option = find(autoGenOptions.results, { source: { uuid: source.uuid } });\n source.autoGenerationOption = option;\n return source;\n });\n }\n\n return identifierTypes;\n}\n\nasync function fetchPrimaryIdentifierType(abortController: AbortController): Promise<FetchedPatientIdentifierType> {\n const primaryIdentifierTypeResponse = await openmrsFetch(\n '/ws/rest/v1/metadatamapping/termmapping?v=full&code=emr.primaryIdentifierType',\n { signal: abortController?.signal, headers: cacheForOfflineHeaders },\n );\n\n const { data: metadata } = await openmrsFetch(\n `/ws/rest/v1/patientidentifiertype/${primaryIdentifierTypeResponse.data.results[0].metadataUuid}`,\n { signal: abortController?.signal, headers: cacheForOfflineHeaders },\n );\n\n return {\n name: metadata.name,\n fieldName: camelCase(metadata.name),\n required: metadata.required,\n uuid: metadata.uuid,\n format: metadata.format,\n isPrimary: true,\n };\n}\n\nasync function fetchSecondaryIdentifierTypes(\n abortController?: AbortController,\n): Promise<Array<FetchedPatientIdentifierType>> {\n const secondaryIdentifierTypeResponse = await openmrsFetch(\n '/ws/rest/v1/metadatamapping/termmapping?v=full&code=emr.extraPatientIdentifierTypes',\n { signal: abortController?.signal, headers: cacheForOfflineHeaders },\n );\n\n if (secondaryIdentifierTypeResponse.data.results) {\n const extraIdentifierTypesSetUuid = secondaryIdentifierTypeResponse.data.results[0].metadataUuid;\n const metadataResponse = await openmrsFetch(\n `/ws/rest/v1/metadatamapping/metadataset/${extraIdentifierTypesSetUuid}/members`,\n { signal: abortController?.signal, headers: cacheForOfflineHeaders },\n );\n\n if (metadataResponse.data.results) {\n return await Promise.all(\n metadataResponse.data.results.map(async (setMember) => {\n const type = await openmrsFetch(`/ws/rest/v1/patientidentifiertype/${setMember.metadataUuid}`, {\n signal: abortController?.signal,\n headers: cacheForOfflineHeaders,\n });\n\n return {\n name: type.data.name,\n fieldName: camelCase(type.data.name),\n required: type.data.required,\n uuid: type.data.uuid,\n format: secondaryIdentifierTypeResponse.data.format,\n isPrimary: false,\n };\n }),\n );\n }\n }\n\n return [];\n}\n\nasync function fetchIdentifierSources(identifierType: string, abortController?: AbortController) {\n return await openmrsFetch(`/ws/rest/v1/idgen/identifiersource?v=full&identifierType=${identifierType}`, {\n signal: abortController?.signal,\n headers: cacheForOfflineHeaders,\n });\n}\n\nfunction fetchAutoGenerationOptions(identifierType: string, abortController?: AbortController) {\n // return openmrsFetch('/ws/rest/v1/idgen/autogenerationoption?v=full&identifierType=' + identifierType, {\n // signal: abortController.signal,\n // headers: cacheForOfflineHeaders,\n // });‚\n return Promise.resolve(mockAutoGenerationOptionsResult);\n}\n","import useSWR from 'swr';\nimport { openmrsFetch, useConfig } from '@openmrs/esm-framework';\nimport { Patient, Relationship, PatientIdentifier } from './patient-registration-types';\n\nexport const uuidIdentifier = '05a29f94-c0ed-11e2-94be-8c13b969e334';\nexport const uuidTelephoneNumber = '14d4f066-15f5-102d-96e4-000c29c2a5d7';\n\nfunction dataURItoFile(dataURI: string) {\n const byteString = atob(dataURI.split(',')[1]);\n const mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\n // write the bytes of the string to a typed array\n const buffer = new Uint8Array(byteString.length);\n\n for (let i = 0; i < byteString.length; i++) {\n buffer[i] = byteString.charCodeAt(i);\n }\n\n const blob = new Blob([buffer], { type: mimeString });\n return new File([blob], 'patient-photo.png');\n}\n\nexport function savePatient(abortController: AbortController, patient: Patient, patientUuid: string) {\n return openmrsFetch(`/ws/rest/v1/patient/${patientUuid || ''}`, {\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n body: patient,\n signal: abortController.signal,\n });\n}\n\nexport function generateIdentifier(source: string, abortController: AbortController) {\n return openmrsFetch(`/ws/rest/v1/idgen/identifiersource/${source}/identifier`, {\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n body: {},\n signal: abortController.signal,\n });\n}\n\nexport function deletePersonName(nameUuid: string, personUuid: string, abortController: AbortController) {\n return openmrsFetch(`/ws/rest/v1/person/${personUuid}/name/${nameUuid}`, {\n method: 'DELETE',\n signal: abortController.signal,\n });\n}\n\nexport function saveRelationship(abortController: AbortController, relationship: Relationship) {\n return openmrsFetch('/ws/rest/v1/relationship', {\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n body: relationship,\n signal: abortController.signal,\n });\n}\n\nexport async function savePatientPhoto(\n patientUuid: string,\n content: string,\n url: string,\n date: string,\n conceptUuid: string,\n abortController: AbortController,\n) {\n const formData = new FormData();\n formData.append('patient', patientUuid);\n formData.append('file', dataURItoFile(content));\n formData.append(\n 'json',\n JSON.stringify({\n person: patientUuid,\n concept: conceptUuid,\n groupMembers: [],\n obsDatetime: date,\n }),\n );\n\n return openmrsFetch(url, {\n method: 'POST',\n signal: abortController.signal,\n body: formData,\n });\n}\n\ninterface ObsFetchResponse {\n results: Array<PhotoObs>;\n}\n\ninterface PhotoObs {\n display: string;\n obsDatetime: string;\n uuid: string;\n value: {\n display: string;\n links: {\n rel: string;\n uri: string;\n };\n };\n}\n\ninterface UsePatientPhotoResult {\n data: { dateTime: string; imageSrc: string } | null;\n isError: Error;\n isLoading: boolean;\n}\n\nexport function usePatientPhoto(patientUuid: string): UsePatientPhotoResult {\n const {\n concepts: { patientPhotoUuid },\n } = useConfig();\n const url = `/ws/rest/v1/obs?patient=${patientUuid}&concept=${patientPhotoUuid}&v=full`;\n\n const { data, error } = useSWR<{ data: ObsFetchResponse }, Error>(patientUuid ? url : null, openmrsFetch);\n\n const item = data?.data?.results[0];\n\n return {\n data: item\n ? {\n dateTime: item?.obsDatetime,\n imageSrc: item?.value?.links?.uri,\n }\n : null,\n isError: error,\n isLoading: !data && !error,\n };\n}\n\nexport async function fetchPerson(query: string, abortController: AbortController) {\n return openmrsFetch(`/ws/rest/v1/person?q=${query}`, {\n signal: abortController.signal,\n });\n}\n\nexport async function addPatientIdentifier(\n patientUuid: string,\n patientIdentifier: PatientIdentifier,\n abortController: AbortController,\n) {\n return openmrsFetch(`/ws/rest/v1/patient/${patientUuid}/identifier/`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n signal: abortController.signal,\n body: patientIdentifier,\n });\n}\n\nexport async function updatePatientIdentifier(\n patientUuid: string,\n patientIdentifier: PatientIdentifier,\n abortController: AbortController,\n) {\n return openmrsFetch(`/ws/rest/v1/patient/${patientUuid}/identifier/${patientIdentifier.uuid}`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n signal: abortController.signal,\n body: patientIdentifier,\n });\n}\n\nexport async function deletePatientIdentifier(\n patientUuid: string,\n patientIdentifierUuid: string,\n abortController: AbortController,\n) {\n return openmrsFetch(`/ws/rest/v1/patient/${patientUuid}/identifier/${patientIdentifierUuid}?purge`, {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json',\n },\n signal: abortController.signal,\n });\n}\n","var map = {\n\t\"./en.json\": [\n\t\t3574,\n\t\t574\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 3979;\nmodule.exports = webpackAsyncContext;"],"names":["moduleName","patientRegistration","cacheForOfflineHeaders","omrsOfflineCachingStrategyHttpHeaderName","FormManager","patientUuid","v4","values","patientUuidMap","initialAddressFieldValues","identifierTypes","capturePhotoProps","patientPhotoConceptUuid","currentLocation","personAttributeSections","queueSynchronizationItem","formValues","id","displayName","dependencies","abortController","patientIdentifiers","getPatientIdentifiersToCreate","identifiers","Promise","all","savePatientIdentifiers","createdPatient","getPatientToCreate","getDeletedNames","forEach","async","deletePersonName","name","nameUuid","personUuid","savePatientResponse","savePatient","ok","relationships","filter","m","relationship","map","relatedPerson","relatedPersonUuid","relationshipType","split","direction","thisPatientUuid","data","uuid","isAToB","relationshipToSave","personA","personB","saveRelationship","imageData","savePatientPhoto","dateTime","Date","toISOString","location","identifierTypeRequests","identifierType","identifierTypeUuid","identifier","action","source","patientIdentifier","find","preferred","isPrimary","autoGeneration","generateIdentifier","Error","additionalNameUuid","address","getPatientAddressField","isEqual","person","names","getNames","gender","charAt","birthdate","birthdateEstimated","attributes","getPatientAttributes","addresses","getPatientDeathInfo","preferredNameUuid","givenName","middleName","familyName","addNameInLocalLanguage","push","additionalGivenName","additionalMiddleName","additionalFamilyName","section","attr","personAttributes","attributeType","value","Object","keys","reduce","memo","fieldName","isDead","deathDate","deathCause","dead","undefined","causeOfDeath","index","addPatientIdentifier","updatePatientIdentifier","deletePatientIdentifier","esmPatientRegistrationSchema","sections","_type","Type","_default","_description","_elements","sectionDefinitions","fields","join","demographics","contact","death","fieldDefinitions","label","placeholder","validation","required","matches","phone","fieldConfigurations","displayMiddleName","unidentifiedPatient","links","submitButton","_validators","validators","concepts","patientPhotoUuid","precacheStaticAssets","fetchCurrentSession","fetchAddressTemplate","fetchAllRelationshipTypes","fetchPatientIdentifierTypesWithSources","syncPatientRegistration","queuedPatient","options","savePatientFormOnline","abort","importTranslation","require","backendDependencies","frontendDependencies","process","resources","currentSession","addressTemplate","relationshipTypes","setupOpenMRS","featureName","defineConfigSchema","registerBreadcrumbs","path","window","spaBase","title","parent","setupOfflineSync","subscribePrecacheStaticDependencies","registerOfflinePatientHandler","fetchCurrentPatient","headers","pages","load","getAsyncLifecycle","route","online","savePatientForm","offline","savePatientFormOffline","extensions","slot","mockAutoGenerationOptionsResult","results","manualEntryEnabled","automaticGenerationEnabled","resourceVersion","ResourcesContext","React","openmrsFetch","signal","primaryIdentifierType","secondaryIdentifierTypes","fetchPrimaryIdentifierType","fetchSecondaryIdentifierTypes","Boolean","identifierSources","autoGenOptions","fetchIdentifierSources","resolve","option","autoGenerationOption","primaryIdentifierTypeResponse","metadata","metadataUuid","camelCase","format","secondaryIdentifierTypeResponse","extraIdentifierTypesSetUuid","metadataResponse","type","setMember","patient","method","body","content","url","date","conceptUuid","formData","FormData","append","dataURI","byteString","atob","mimeString","buffer","Uint8Array","length","i","charCodeAt","blob","Blob","File","dataURItoFile","JSON","stringify","concept","groupMembers","obsDatetime","usePatientPhoto","useConfig","error","useSWR","item","imageSrc","uri","isError","isLoading","fetchPerson","query","patientIdentifierUuid","webpackAsyncContext","req","__webpack_require__","o","then","e","code","ids","module","exports"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"71.js","mappings":"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","sources":["webpack://@openmrs/esm-patient-registration-app/./src/constants.ts","webpack://@openmrs/esm-patient-registration-app/./src/patient-registration/form-manager.ts","webpack://@openmrs/esm-patient-registration-app/./src/config-schemas/openmrs-esm-patient-registration-schema.ts","webpack://@openmrs/esm-patient-registration-app/./src/offline.ts","webpack://@openmrs/esm-patient-registration-app/./src/index.ts","webpack://@openmrs/esm-patient-registration-app/./__mocks__/autogenerationoptions.mock.ts","webpack://@openmrs/esm-patient-registration-app/./src/offline.resources.ts","webpack://@openmrs/esm-patient-registration-app/./src/patient-registration/patient-registration.resource.tsx","webpack://@openmrs/esm-patient-registration-app//home/runner/work/openmrs-esm-patient-management/openmrs-esm-patient-management/packages/esm-patient-registration-app/translations|lazy|nonrecursive|/.json$/"],"sourcesContent":["import { omrsOfflineCachingStrategyHttpHeaderName, OmrsOfflineHttpHeaders } from '@openmrs/esm-framework';\n\nexport const moduleName = '@openmrs/esm-patient-registration-app';\nexport const patientRegistration = 'patient-registration';\n\nexport const cacheForOfflineHeaders: OmrsOfflineHttpHeaders = {\n [omrsOfflineCachingStrategyHttpHeaderName]: 'network-first',\n};\n","import { v4 } from 'uuid';\nimport { queueSynchronizationItem } from '@openmrs/esm-framework';\nimport { patientRegistration } from '../constants';\nimport {\n FormValues,\n PatientIdentifierType,\n AttributeValue,\n PatientUuidMapType,\n Patient,\n CapturePhotoProps,\n PatientIdentifier,\n PatientIdentifierValue,\n PatientRegistration,\n} from './patient-registration-types';\nimport {\n addPatientIdentifier,\n deletePatientIdentifier,\n deletePersonName,\n generateIdentifier,\n savePatient,\n savePatientPhoto,\n saveRelationship,\n updatePatientIdentifier,\n} from './patient-registration.resource';\nimport isEqual from 'lodash-es/isEqual';\n\nexport type SavePatientForm = (\n isNewPatient: boolean,\n values: FormValues,\n patientUuidMap: PatientUuidMapType,\n initialAddressFieldValues: Record<string, any>,\n identifierTypes: Array<PatientIdentifierType>,\n capturePhotoProps: CapturePhotoProps,\n patientPhotoConceptUuid: string,\n currentLocation: string,\n personAttributeSections: any,\n abortController?: AbortController,\n) => Promise<string | null>;\n\nexport default class FormManager {\n static async savePatientFormOffline(\n isNewPatient: boolean,\n values: FormValues,\n patientUuidMap: PatientUuidMapType,\n initialAddressFieldValues: Record<string, any>,\n identifierTypes: Array<PatientIdentifierType>,\n capturePhotoProps: CapturePhotoProps,\n patientPhotoConceptUuid: string,\n currentLocation: string,\n personAttributeSections: any,\n ): Promise<null> {\n const syncItem: PatientRegistration = {\n fhirPatient: FormManager.mapPatientToFhirPatient(\n FormManager.getPatientToCreate(values, personAttributeSections, patientUuidMap, initialAddressFieldValues, []),\n ),\n _patientRegistrationData: {\n isNewPatient,\n formValues: values,\n patientUuidMap,\n initialAddressFieldValues,\n identifierTypes,\n capturePhotoProps,\n patientPhotoConceptUuid,\n currentLocation,\n personAttributeSections,\n },\n };\n\n await queueSynchronizationItem(patientRegistration, syncItem, {\n id: values.patientUuid,\n displayName: 'Patient registration',\n dependencies: [],\n });\n\n return null;\n }\n\n static async savePatientFormOnline(\n isNewPatient: boolean,\n values: FormValues,\n patientUuidMap: PatientUuidMapType,\n initialAddressFieldValues: Record<string, any>,\n identifierTypes: Array<PatientIdentifierType>,\n capturePhotoProps: CapturePhotoProps,\n patientPhotoConceptUuid: string,\n currentLocation: string,\n personAttributeSections: any,\n abortController: AbortController,\n ): Promise<string> {\n const patientIdentifiers: Array<PatientIdentifier> = await FormManager.savePatientIdentifiers(\n values.patientUuid,\n values.identifiers,\n currentLocation,\n abortController,\n );\n\n const createdPatient = FormManager.getPatientToCreate(\n values,\n personAttributeSections,\n patientUuidMap,\n initialAddressFieldValues,\n patientIdentifiers,\n );\n\n FormManager.getDeletedNames(values.patientUuid, patientUuidMap).forEach(async (name) => {\n await deletePersonName(name.nameUuid, name.personUuid, abortController);\n });\n\n const savePatientResponse = await savePatient(\n abortController,\n createdPatient,\n isNewPatient ? undefined : values.patientUuid,\n );\n\n if (savePatientResponse.ok) {\n await Promise.all(\n values.relationships\n .filter((m) => m.relationship)\n .map(({ relatedPerson: relatedPersonUuid, relationship }) => {\n const relationshipType = relationship.split('/')[0];\n const direction = relationship.split('/')[1];\n const thisPatientUuid = savePatientResponse.data.uuid;\n const isAToB = direction === 'aIsToB';\n const relationshipToSave = {\n personA: isAToB ? relatedPersonUuid : thisPatientUuid,\n personB: isAToB ? thisPatientUuid : relatedPersonUuid,\n relationshipType,\n };\n\n return saveRelationship(abortController, relationshipToSave);\n }),\n );\n\n if (patientPhotoConceptUuid && capturePhotoProps?.imageData) {\n await savePatientPhoto(\n savePatientResponse.data.uuid,\n capturePhotoProps.imageData,\n '/ws/rest/v1/obs',\n capturePhotoProps.dateTime || new Date().toISOString(),\n patientPhotoConceptUuid,\n abortController,\n );\n }\n }\n\n return savePatientResponse.data.uuid;\n }\n\n static async savePatientIdentifiers(\n patientUuid: string,\n patientIdentifiers: Array<PatientIdentifierValue>, // values.identifiers\n location: string,\n abortController: AbortController,\n ): Promise<Array<PatientIdentifier>> {\n let identifierTypeRequests = patientIdentifiers\n .filter((identifier) => identifier.action !== 'DELETE' && identifier.action !== 'NONE')\n .map(async (patientIdentifier) => {\n const { identifierTypeUuid, identifier, uuid, action, source, preferred, autoGeneration } = patientIdentifier;\n if (identifier || (source && autoGeneration)) {\n const identifierValue = identifier\n ? identifier\n : await (\n await generateIdentifier(patientIdentifier.source.uuid, abortController)\n ).data.identifier;\n const identifierToCreate = {\n uuid,\n identifier: identifierValue,\n identifierType: identifierTypeUuid,\n location,\n preferred,\n };\n\n if (patientUuid) {\n if (action === 'ADD') {\n await addPatientIdentifier(patientUuid, identifierToCreate, abortController);\n } else if (action === 'UPDATE') {\n await updatePatientIdentifier(patientUuid, uuid, identifierToCreate.identifier, abortController);\n }\n }\n\n return identifierToCreate;\n } else {\n // This is a case that should not occur.\n // If it did, the subsequent network request (when creating the patient) would fail with\n // BadRequest since the (returned) identifier type is undefined.\n // Better stop early.\n throw new Error('No approach for generating a patient identifier could be found.');\n }\n });\n\n if (patientUuid) {\n patientIdentifiers\n .filter((patientIdentifier) => patientIdentifier.action === 'DELETE')\n .forEach(\n async (patientIdentifier) =>\n await deletePatientIdentifier(patientUuid, patientIdentifier.uuid, abortController),\n );\n }\n\n return Promise.all(identifierTypeRequests);\n }\n\n static getDeletedNames(patientUuid: string, patientUuidMap: PatientUuidMapType) {\n if (patientUuidMap?.additionalNameUuid) {\n return [\n {\n nameUuid: patientUuidMap.additionalNameUuid,\n personUuid: patientUuid,\n },\n ];\n }\n return [];\n }\n\n static getPatientToCreate(\n values: FormValues,\n personAttributeSections: any,\n patientUuidMap: PatientUuidMapType,\n initialAddressFieldValues: Record<string, any>,\n identifiers: Array<PatientIdentifier>,\n ): Patient {\n let address = FormManager.getPatientAddressField(values, initialAddressFieldValues);\n\n if (isEqual(initialAddressFieldValues, address)) {\n address = {};\n }\n\n return {\n uuid: values.patientUuid,\n person: {\n uuid: values.patientUuid,\n names: FormManager.getNames(values, patientUuidMap),\n gender: values.gender.charAt(0),\n birthdate: values.birthdate,\n birthdateEstimated: values.birthdateEstimated,\n attributes: FormManager.getPatientAttributes(values, personAttributeSections),\n addresses: [address],\n ...FormManager.getPatientDeathInfo(values),\n },\n identifiers,\n };\n }\n\n static getNames(values: FormValues, patientUuidMap: PatientUuidMapType) {\n const names = [\n {\n uuid: patientUuidMap.preferredNameUuid,\n preferred: true,\n givenName: values.givenName,\n middleName: values.middleName,\n familyName: values.familyName,\n },\n ];\n\n if (values.addNameInLocalLanguage) {\n names.push({\n uuid: patientUuidMap.additionalNameUuid,\n preferred: false,\n givenName: values.additionalGivenName,\n middleName: values.additionalMiddleName,\n familyName: values.additionalFamilyName,\n });\n }\n\n return names;\n }\n\n static getPatientAttributes(values: FormValues, personAttributeSections?: any) {\n const attributes: Array<AttributeValue> = [];\n\n if (personAttributeSections) {\n for (const section of personAttributeSections) {\n for (const attr of section.personAttributes) {\n attributes.push({\n attributeType: attr.uuid,\n value: values[attr.name],\n });\n }\n }\n }\n\n return attributes;\n }\n\n static getPatientAddressField(\n values: FormValues,\n initialAddressFieldValues: Record<string, any>,\n ): Record<string, string> {\n return Object.keys(initialAddressFieldValues).reduce(\n (memo, fieldName) => ({ ...memo, [fieldName]: values[fieldName] }),\n {},\n );\n }\n\n static getPatientDeathInfo(values: FormValues) {\n const { isDead, deathDate, deathCause } = values;\n return {\n dead: isDead,\n deathDate: isDead ? deathDate : undefined,\n causeOfDeath: isDead ? deathCause : undefined,\n };\n }\n\n static mapPatientToFhirPatient(patient: Partial<Patient>): fhir.Patient {\n // Important:\n // When changing this code, ideally assume that `patient` can be missing any attribute.\n // The `fhir.Patient` provides us with the benefit that all properties are nullable and thus\n // not required (technically, at least). -> Even if we cannot map some props here, we still\n // provide a valid fhir.Patient object. The various patient chart modules should be able to handle\n // such missing props correctly (and should be updated if they don't).\n\n // Gender in the original object only uses a single letter. fhir.Patient expects a full string.\n const genderMap = {\n M: 'male',\n F: 'female',\n O: 'other',\n U: 'unknown',\n };\n\n // Mapping inspired by:\n // https://github.com/openmrs/openmrs-module-fhir/blob/669b3c52220bb9abc622f815f4dc0d8523687a57/api/src/main/java/org/openmrs/module/fhir/api/util/FHIRPatientUtil.java#L36\n // https://github.com/openmrs/openmrs-esm-patient-management/blob/94e6f637fb37cf4984163c355c5981ea6b8ca38c/packages/esm-patient-search-app/src/patient-search-result/patient-search-result.component.tsx#L21\n // Update as required.\n return {\n id: patient.uuid,\n gender: genderMap[patient.person?.gender],\n birthDate: patient.person?.birthdate,\n deceasedBoolean: patient.person.dead,\n deceasedDateTime: patient.person.deathDate,\n name: patient.person?.names?.map((name) => ({\n given: [name.givenName, name.middleName].filter(Boolean),\n family: name.familyName,\n })),\n address: patient.person?.addresses.map((address) => ({\n city: address.cityVillage,\n country: address.country,\n postalCode: address.postalCode,\n state: address.stateProvince,\n use: 'home',\n })),\n telecom: patient.person.attributes?.filter((attribute) => attribute.attributeType === 'Telephone Number'),\n };\n }\n}\n","import { Type, validators } from '@openmrs/esm-framework';\nconst builtInFields = ['name', 'gender', 'dob', 'address', 'id', 'death'];\nexport const esmPatientRegistrationSchema = {\n sections: {\n _type: Type.Array,\n _default: ['demographics', 'contact', 'relationships'],\n _description: \"An array of strings which are the keys from 'sectionDefinitions'\",\n _elements: {\n _type: Type.String,\n },\n },\n sectionDefinitions: {\n _type: Type.Object,\n _elements: {\n name: {\n _type: Type.String,\n _default: '',\n _description: 'The title to display at the top of the section.',\n },\n fields: {\n _type: Type.Array,\n _default: [],\n _description: `The parts to include in the section. Can be any of the following built-in fields: ${builtInFields.join(\n ', ',\n )}. Can also be any of the keys from the fieldDefinitions object, which you can use to define custom fields.`,\n _elements: { _type: Type.String }, // another validator at top level\n },\n },\n _default: {\n demographics: { name: 'Basic Info', fields: ['name', 'gender & dob', 'id'] },\n contact: { name: 'Contact Details', fields: ['address', 'phone & email'] },\n death: { name: 'Death Info', fields: ['death'] },\n relationships: { name: 'Relationships' },\n },\n },\n fieldDefinitions: {\n _type: Type.Object,\n _elements: {\n label: { _type: Type.String, _description: 'The label of the input' },\n uuid: {\n _type: Type.UUID,\n _description: 'Person attributetype uuid used to save the attribute',\n },\n placeholder: {\n _type: Type.String,\n _default: '',\n _description: 'Placeholder that will appear in the input.',\n },\n validation: {\n required: { _type: Type.Boolean, _default: false },\n matches: {\n _type: Type.String,\n _default: null,\n _description: 'Optional RegEx for testing the validity of the input.',\n },\n },\n },\n _default: {\n phone: {\n label: 'Telephone Number',\n uuid: '14d4f066-15f5-102d-96e4-000c29c2a5d7',\n validation: { required: true, matches: '^[0-9]*$' },\n },\n },\n _description:\n 'Definitions for custom fields that can be used in sectionDefinitions. Can also be used to override built-in fields.',\n },\n fieldConfigurations: {\n _type: Type.Object,\n _default: {\n name: {\n displayMiddleName: true,\n unidentifiedPatient: true,\n },\n },\n },\n links: {\n submitButton: {\n _type: Type.String,\n _default: '${openmrsSpaBase}/patient/${patientUuid}/chart',\n _validators: [validators.isUrlWithTemplateParameters(['patientUuid'])],\n },\n },\n concepts: {\n patientPhotoUuid: {\n _type: Type.ConceptUuid,\n _default: '736e8771-e501-4615-bfa7-570c03f4bef5',\n },\n },\n personAttributeSections: {\n _type: Type.Array,\n _default: [{ personAttributes: [{ name: 'phone', uuid: '14d4f066-15f5-102d-96e4-000c29c2a5d7' }] }],\n _elements: {\n _type: Type.Object,\n personAttributes: {\n _type: Type.Array,\n _elements: {\n _type: Type.Object,\n uuid: {\n _type: Type.UUID,\n _description: 'Person attributetype uuid used to save the attribute',\n },\n name: {\n _type: Type.String,\n _default: '',\n },\n _default: {\n phone: {\n name: 'phone',\n uuid: '14d4f066-15f5-102d-96e4-000c29c2a5d7',\n },\n },\n },\n },\n },\n },\n};\n","import {\n fetchCurrentPatient,\n OfflinePatientArgs,\n registerOfflinePatientHandler,\n setupOfflineSync,\n subscribePrecacheStaticDependencies,\n SyncProcessOptions,\n} from '@openmrs/esm-framework';\nimport { cacheForOfflineHeaders, patientRegistration } from './constants';\nimport {\n fetchAddressTemplate,\n fetchAllRelationshipTypes,\n fetchCurrentSession,\n fetchPatientIdentifierTypesWithSources,\n} from './offline.resources';\nimport FormManager from './patient-registration/form-manager';\nimport { PatientRegistration } from './patient-registration/patient-registration-types';\n\nexport function setupOffline() {\n setupOfflineSync(patientRegistration, [], syncPatientRegistration);\n subscribePrecacheStaticDependencies(precacheStaticAssets);\n registerOfflinePatientHandler('esm-patient-registration-app', {\n displayName: 'Patient registration',\n async onOfflinePatientAdded({ patientUuid }) {\n await fetchCurrentPatient(patientUuid, { headers: cacheForOfflineHeaders });\n },\n });\n}\n\nasync function precacheStaticAssets() {\n await Promise.all([\n fetchCurrentSession(),\n fetchAddressTemplate(),\n fetchAllRelationshipTypes(),\n fetchPatientIdentifierTypesWithSources(),\n ]);\n}\n\nexport async function syncPatientRegistration(\n queuedPatient: PatientRegistration,\n options: SyncProcessOptions<PatientRegistration>,\n) {\n await FormManager.savePatientFormOnline(\n queuedPatient._patientRegistrationData.isNewPatient,\n queuedPatient._patientRegistrationData.formValues,\n queuedPatient._patientRegistrationData.patientUuidMap,\n queuedPatient._patientRegistrationData.initialAddressFieldValues,\n queuedPatient._patientRegistrationData.identifierTypes,\n queuedPatient._patientRegistrationData.capturePhotoProps,\n queuedPatient._patientRegistrationData.patientPhotoConceptUuid,\n queuedPatient._patientRegistrationData.currentLocation,\n queuedPatient._patientRegistrationData.personAttributeSections,\n options.abort,\n );\n}\n","import FormManager from './patient-registration/form-manager';\nimport { registerBreadcrumbs, defineConfigSchema, getAsyncLifecycle } from '@openmrs/esm-framework';\nimport {\n fetchCurrentSession,\n fetchAddressTemplate,\n fetchPatientIdentifierTypesWithSources,\n fetchAllRelationshipTypes,\n} from './offline.resources';\nimport { esmPatientRegistrationSchema } from './config-schemas/openmrs-esm-patient-registration-schema';\nimport { moduleName, patientRegistration } from './constants';\nimport { setupOffline } from './offline';\n\nconst importTranslation = require.context('../translations', false, /.json$/, 'lazy');\n\nconst backendDependencies = {\n 'webservices.rest': '^2.24.0',\n};\n\nconst frontendDependencies = {\n '@openmrs/esm-framework': process.env.FRAMEWORK_VERSION,\n};\n\nconst resources = {\n currentSession: fetchCurrentSession,\n addressTemplate: fetchAddressTemplate,\n relationshipTypes: fetchAllRelationshipTypes,\n identifierTypes: fetchPatientIdentifierTypesWithSources,\n};\n\nfunction setupOpenMRS() {\n const options = {\n featureName: 'Patient Registration',\n moduleName,\n };\n\n defineConfigSchema(moduleName, esmPatientRegistrationSchema);\n\n registerBreadcrumbs([\n {\n path: `${window.spaBase}/${patientRegistration}`,\n title: 'Patient Registration',\n parent: `${window.spaBase}/home`,\n },\n ]);\n\n setupOffline();\n\n return {\n pages: [\n {\n load: getAsyncLifecycle(() => import('./root.component'), options),\n route: /^patient-registration/,\n online: {\n savePatientForm: FormManager.savePatientFormOnline,\n },\n offline: {\n savePatientForm: FormManager.savePatientFormOffline,\n },\n resources,\n },\n {\n load: getAsyncLifecycle(() => import('./root.component'), {\n featureName: 'edit-patient-details-form',\n moduleName,\n }),\n route: /^patient\\/([a-zA-Z0-9\\-]+)\\/edit/,\n online: {\n savePatientForm: FormManager.savePatientFormOnline,\n },\n offline: {\n savePatientForm: FormManager.savePatientFormOffline,\n },\n resources,\n },\n ],\n extensions: [\n {\n id: 'add-patient-action',\n slot: 'top-nav-actions-slot',\n load: getAsyncLifecycle(() => import('./add-patient-link'), options),\n online: true,\n offline: true,\n },\n {\n id: 'cancel-patient-edit-modal',\n load: getAsyncLifecycle(() => import('./widgets/cancel-patient-edit.component'), options),\n online: true,\n offline: true,\n },\n {\n id: 'patient-photo-widget',\n slot: 'patient-photo-slot',\n load: getAsyncLifecycle(() => import('./widgets/display-photo.component'), options),\n online: true,\n offline: true,\n },\n {\n id: 'edit-patient-details-button',\n slot: 'patient-actions-slot',\n load: getAsyncLifecycle(() => import('./widgets/edit-patient-details-button.component'), options),\n online: true,\n offline: true,\n },\n {\n id: 'delete-identifier-confirmation-modal',\n load: getAsyncLifecycle(() => import('./widgets/delete-identifier-confirmation-modal'), options),\n online: true,\n offline: true,\n },\n ],\n };\n}\n\nexport { backendDependencies, frontendDependencies, importTranslation, setupOpenMRS };\n","export const mockAutoGenerationOptionsResult = {\n results: [\n {\n uuid: '42ae5ce0-d64b-11ea-9064-5adc43bbdd24',\n location: null,\n source: {\n uuid: '691eed12-c0f1-11e2-94be-8c13b969e334',\n },\n manualEntryEnabled: false,\n automaticGenerationEnabled: true,\n resourceVersion: '1.8',\n },\n {\n uuid: '497b8b17-54ec-4726-87ec-3c4da8cdcaeb',\n location: null,\n source: {\n uuid: '691eed12-c0f1-11e2-94be-8c13b969e334',\n },\n manualEntryEnabled: true,\n automaticGenerationEnabled: false,\n resourceVersion: '1.8',\n },\n {\n uuid: 'ed0529de-3530-4c49-921b-b4845a750b7e',\n location: null,\n source: {\n uuid: '75df804e-03c1-4964-842b-4fec585839e7',\n },\n manualEntryEnabled: true,\n automaticGenerationEnabled: false,\n resourceVersion: '1.8',\n },\n ],\n};\n","import React from 'react';\nimport find from 'lodash-es/find';\nimport camelCase from 'lodash-es/camelCase';\nimport escapeRegExp from 'lodash-es/escapeRegExp';\nimport { FetchResponse, messageOmrsServiceWorker, openmrsFetch, SessionUser } from '@openmrs/esm-framework';\nimport { PatientIdentifierType, FetchedPatientIdentifierType } from './patient-registration/patient-registration-types';\nimport { mockAutoGenerationOptionsResult } from '../__mocks__/autogenerationoptions.mock';\nimport { cacheForOfflineHeaders } from './constants';\n\nexport interface Resources {\n addressTemplate: any;\n currentSession: SessionUser;\n relationshipTypes: any;\n identifierTypes: Array<PatientIdentifierType>;\n}\n\nexport const ResourcesContext = React.createContext<Resources>(null);\n\nexport async function fetchCurrentSession(abortController?: AbortController): Promise<FetchResponse<SessionUser>> {\n const { data } = await cacheAndFetch('/ws/rest/v1/session', abortController);\n return data;\n}\n\nexport async function fetchAddressTemplate(abortController?: AbortController) {\n const { data } = await cacheAndFetch(\n '/ws/rest/v1/systemsetting?q=layout.address.format&v=custom:(value)',\n abortController,\n );\n return data;\n}\n\nexport async function fetchAllRelationshipTypes(abortController?: AbortController) {\n const { data } = await cacheAndFetch('/ws/rest/v1/relationshiptype?v=default', abortController);\n return data;\n}\n\nexport async function fetchPatientIdentifierTypesWithSources(\n abortController?: AbortController,\n): Promise<Array<PatientIdentifierType>> {\n const [primaryIdentifierType, secondaryIdentifierTypes] = await Promise.all([\n fetchPrimaryIdentifierType(abortController),\n fetchSecondaryIdentifierTypes(abortController),\n ]);\n\n // @ts-ignore Reason: The required props of the type are generated below.\n const identifierTypes: Array<PatientIdentifierType> = [primaryIdentifierType, ...secondaryIdentifierTypes].filter(\n Boolean,\n );\n\n for (const identifierType of identifierTypes) {\n const [identifierSources, autoGenOptions] = await Promise.all([\n fetchIdentifierSources(identifierType.uuid, abortController),\n fetchAutoGenerationOptions(identifierType.uuid, abortController),\n ]);\n\n identifierType.identifierSources = identifierSources.data.results.map((source) => {\n const option = find(autoGenOptions.results, { source: { uuid: source.uuid } });\n source.autoGenerationOption = option;\n return source;\n });\n }\n\n return identifierTypes;\n}\n\nasync function fetchPrimaryIdentifierType(abortController: AbortController): Promise<FetchedPatientIdentifierType> {\n const primaryIdentifierTypeResponse = await cacheAndFetch(\n '/ws/rest/v1/metadatamapping/termmapping?v=full&code=emr.primaryIdentifierType',\n abortController,\n );\n\n const { data: metadata } = await cacheAndFetch(\n `/ws/rest/v1/patientidentifiertype/${primaryIdentifierTypeResponse.data.results[0].metadataUuid}`,\n abortController,\n );\n\n return {\n name: metadata.name,\n fieldName: camelCase(metadata.name),\n required: metadata.required,\n uuid: metadata.uuid,\n format: metadata.format,\n isPrimary: true,\n };\n}\n\nasync function fetchSecondaryIdentifierTypes(\n abortController?: AbortController,\n): Promise<Array<FetchedPatientIdentifierType>> {\n const secondaryIdentifierTypeResponse = await cacheAndFetch(\n '/ws/rest/v1/metadatamapping/termmapping?v=full&code=emr.extraPatientIdentifierTypes',\n abortController,\n );\n\n if (secondaryIdentifierTypeResponse.data.results) {\n const extraIdentifierTypesSetUuid = secondaryIdentifierTypeResponse.data.results[0].metadataUuid;\n const metadataResponse = await cacheAndFetch(\n `/ws/rest/v1/metadatamapping/metadataset/${extraIdentifierTypesSetUuid}/members`,\n abortController,\n );\n\n if (metadataResponse.data.results) {\n return await Promise.all(\n metadataResponse.data.results.map(async (setMember) => {\n const type = await cacheAndFetch(\n `/ws/rest/v1/patientidentifiertype/${setMember.metadataUuid}`,\n abortController,\n );\n\n return {\n name: type.data.name,\n fieldName: camelCase(type.data.name),\n required: type.data.required,\n uuid: type.data.uuid,\n format: secondaryIdentifierTypeResponse.data.format,\n isPrimary: false,\n };\n }),\n );\n }\n }\n\n return [];\n}\n\nasync function fetchIdentifierSources(identifierType: string, abortController?: AbortController) {\n return await cacheAndFetch(\n `/ws/rest/v1/idgen/identifiersource?v=full&identifierType=${identifierType}`,\n abortController,\n );\n}\n\nfunction fetchAutoGenerationOptions(identifierType: string, abortController?: AbortController) {\n // return openmrsFetch('/ws/rest/v1/idgen/autogenerationoption?v=full&identifierType=' + identifierType, {\n // signal: abortController.signal,\n // headers: cacheForOfflineHeaders,\n // });‚\n return Promise.resolve(mockAutoGenerationOptionsResult);\n}\n\nasync function cacheAndFetch(url: string, abortController?: AbortController) {\n await messageOmrsServiceWorker({\n type: 'registerDynamicRoute',\n pattern: escapeRegExp(url),\n });\n\n return await openmrsFetch(url, { headers: cacheForOfflineHeaders, signal: abortController?.signal });\n}\n","import useSWR from 'swr';\nimport { openmrsFetch, useConfig } from '@openmrs/esm-framework';\nimport { Patient, Relationship, PatientIdentifier } from './patient-registration-types';\n\nexport const uuidIdentifier = '05a29f94-c0ed-11e2-94be-8c13b969e334';\nexport const uuidTelephoneNumber = '14d4f066-15f5-102d-96e4-000c29c2a5d7';\n\nfunction dataURItoFile(dataURI: string) {\n const byteString = atob(dataURI.split(',')[1]);\n const mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\n // write the bytes of the string to a typed array\n const buffer = new Uint8Array(byteString.length);\n\n for (let i = 0; i < byteString.length; i++) {\n buffer[i] = byteString.charCodeAt(i);\n }\n\n const blob = new Blob([buffer], { type: mimeString });\n return new File([blob], 'patient-photo.png');\n}\n\nexport function savePatient(abortController: AbortController, patient: Patient, updatePatientUuid?: string) {\n return openmrsFetch(`/ws/rest/v1/patient/${updatePatientUuid || ''}`, {\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n body: patient,\n signal: abortController.signal,\n });\n}\n\nexport function generateIdentifier(source: string, abortController: AbortController) {\n return openmrsFetch(`/ws/rest/v1/idgen/identifiersource/${source}/identifier`, {\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n body: {},\n signal: abortController.signal,\n });\n}\n\nexport function deletePersonName(nameUuid: string, personUuid: string, abortController: AbortController) {\n return openmrsFetch(`/ws/rest/v1/person/${personUuid}/name/${nameUuid}`, {\n method: 'DELETE',\n signal: abortController.signal,\n });\n}\n\nexport function saveRelationship(abortController: AbortController, relationship: Relationship) {\n return openmrsFetch('/ws/rest/v1/relationship', {\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n body: relationship,\n signal: abortController.signal,\n });\n}\n\nexport async function savePatientPhoto(\n patientUuid: string,\n content: string,\n url: string,\n date: string,\n conceptUuid: string,\n abortController: AbortController,\n) {\n const formData = new FormData();\n formData.append('patient', patientUuid);\n formData.append('file', dataURItoFile(content));\n formData.append(\n 'json',\n JSON.stringify({\n person: patientUuid,\n concept: conceptUuid,\n groupMembers: [],\n obsDatetime: date,\n }),\n );\n\n return openmrsFetch(url, {\n method: 'POST',\n signal: abortController.signal,\n body: formData,\n });\n}\n\ninterface ObsFetchResponse {\n results: Array<PhotoObs>;\n}\n\ninterface PhotoObs {\n display: string;\n obsDatetime: string;\n uuid: string;\n value: {\n display: string;\n links: {\n rel: string;\n uri: string;\n };\n };\n}\n\ninterface UsePatientPhotoResult {\n data: { dateTime: string; imageSrc: string } | null;\n isError: Error;\n isLoading: boolean;\n}\n\nexport function usePatientPhoto(patientUuid: string): UsePatientPhotoResult {\n const {\n concepts: { patientPhotoUuid },\n } = useConfig();\n const url = `/ws/rest/v1/obs?patient=${patientUuid}&concept=${patientPhotoUuid}&v=full`;\n\n const { data, error } = useSWR<{ data: ObsFetchResponse }, Error>(patientUuid ? url : null, openmrsFetch);\n\n const item = data?.data?.results[0];\n\n return {\n data: item\n ? {\n dateTime: item?.obsDatetime,\n imageSrc: item?.value?.links?.uri,\n }\n : null,\n isError: error,\n isLoading: !data && !error,\n };\n}\n\nexport async function fetchPerson(query: string, abortController: AbortController) {\n return openmrsFetch(`/ws/rest/v1/person?q=${query}`, {\n signal: abortController.signal,\n });\n}\n\nexport async function addPatientIdentifier(\n patientUuid: string,\n patientIdentifier: PatientIdentifier,\n abortController: AbortController,\n) {\n return openmrsFetch(`/ws/rest/v1/patient/${patientUuid}/identifier/`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n signal: abortController.signal,\n body: patientIdentifier,\n });\n}\n\nexport async function updatePatientIdentifier(\n patientUuid: string,\n identifierUuid: string,\n identifier: string,\n abortController: AbortController,\n) {\n return openmrsFetch(`/ws/rest/v1/patient/${patientUuid}/identifier/${identifierUuid}`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n signal: abortController.signal,\n body: { identifier },\n });\n}\n\nexport async function deletePatientIdentifier(\n patientUuid: string,\n patientIdentifierUuid: string,\n abortController: AbortController,\n) {\n return openmrsFetch(`/ws/rest/v1/patient/${patientUuid}/identifier/${patientIdentifierUuid}?purge`, {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json',\n },\n signal: abortController.signal,\n });\n}\n","var map = {\n\t\"./en.json\": [\n\t\t3574,\n\t\t574\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 3979;\nmodule.exports = webpackAsyncContext;"],"names":["moduleName","patientRegistration","cacheForOfflineHeaders","omrsOfflineCachingStrategyHttpHeaderName","FormManager","isNewPatient","values","patientUuidMap","initialAddressFieldValues","identifierTypes","capturePhotoProps","patientPhotoConceptUuid","currentLocation","personAttributeSections","syncItem","fhirPatient","mapPatientToFhirPatient","getPatientToCreate","_patientRegistrationData","formValues","queueSynchronizationItem","id","patientUuid","displayName","dependencies","abortController","patientIdentifiers","savePatientIdentifiers","identifiers","createdPatient","getDeletedNames","forEach","async","deletePersonName","name","nameUuid","personUuid","savePatientResponse","savePatient","undefined","ok","Promise","all","relationships","filter","m","relationship","map","relatedPerson","relatedPersonUuid","relationshipType","split","direction","thisPatientUuid","data","uuid","isAToB","relationshipToSave","personA","personB","saveRelationship","imageData","savePatientPhoto","dateTime","Date","toISOString","location","identifierTypeRequests","identifier","action","identifierTypeUuid","source","preferred","autoGeneration","patientIdentifier","identifierToCreate","generateIdentifier","identifierType","addPatientIdentifier","updatePatientIdentifier","Error","deletePatientIdentifier","additionalNameUuid","address","getPatientAddressField","isEqual","person","names","getNames","gender","charAt","birthdate","birthdateEstimated","attributes","getPatientAttributes","addresses","getPatientDeathInfo","preferredNameUuid","givenName","middleName","familyName","addNameInLocalLanguage","push","additionalGivenName","additionalMiddleName","additionalFamilyName","section","attr","personAttributes","attributeType","value","Object","keys","reduce","memo","fieldName","isDead","deathDate","deathCause","dead","causeOfDeath","patient","M","F","O","U","birthDate","deceasedBoolean","deceasedDateTime","given","Boolean","family","city","cityVillage","country","postalCode","state","stateProvince","use","telecom","attribute","esmPatientRegistrationSchema","sections","_type","Type","_default","_description","_elements","sectionDefinitions","fields","join","demographics","contact","death","fieldDefinitions","label","placeholder","validation","required","matches","phone","fieldConfigurations","displayMiddleName","unidentifiedPatient","links","submitButton","_validators","validators","concepts","patientPhotoUuid","precacheStaticAssets","fetchCurrentSession","fetchAddressTemplate","fetchAllRelationshipTypes","fetchPatientIdentifierTypesWithSources","syncPatientRegistration","queuedPatient","options","savePatientFormOnline","abort","importTranslation","require","backendDependencies","frontendDependencies","process","resources","currentSession","addressTemplate","relationshipTypes","setupOpenMRS","featureName","defineConfigSchema","registerBreadcrumbs","path","window","spaBase","title","parent","setupOfflineSync","subscribePrecacheStaticDependencies","registerOfflinePatientHandler","fetchCurrentPatient","headers","pages","load","getAsyncLifecycle","route","online","savePatientForm","offline","savePatientFormOffline","extensions","slot","mockAutoGenerationOptionsResult","results","manualEntryEnabled","automaticGenerationEnabled","resourceVersion","ResourcesContext","React","cacheAndFetch","primaryIdentifierType","secondaryIdentifierTypes","fetchPrimaryIdentifierType","fetchSecondaryIdentifierTypes","identifierSources","autoGenOptions","fetchIdentifierSources","resolve","option","find","autoGenerationOption","primaryIdentifierTypeResponse","metadata","metadataUuid","camelCase","format","isPrimary","secondaryIdentifierTypeResponse","extraIdentifierTypesSetUuid","metadataResponse","type","setMember","url","messageOmrsServiceWorker","pattern","escapeRegExp","openmrsFetch","signal","updatePatientUuid","method","body","content","date","conceptUuid","formData","FormData","append","dataURI","byteString","atob","mimeString","buffer","Uint8Array","length","i","charCodeAt","blob","Blob","File","dataURItoFile","JSON","stringify","concept","groupMembers","obsDatetime","usePatientPhoto","useConfig","error","useSWR","item","imageSrc","uri","isError","isLoading","fetchPerson","query","identifierUuid","patientIdentifierUuid","webpackAsyncContext","req","__webpack_require__","o","then","e","code","ids","module","exports"],"sourceRoot":""}
|
package/dist/817.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(self.webpackChunk_openmrs_esm_patient_registration_app=self.webpackChunk_openmrs_esm_patient_registration_app||[]).push([[817],{2817:(n,t,e)=>{"use strict";e.r(t),e.d(t,{BrowserRouter:()=>xn,HashRouter:()=>En,Link:()=>Rn,MemoryRouter:()=>G,NavLink:()=>Ln,Prompt:()=>Q,Redirect:()=>tn,Route:()=>an,Router:()=>J,StaticRouter:()=>pn,Switch:()=>hn,generatePath:()=>nn,matchPath:()=>on,useHistory:()=>mn,useLocation:()=>yn,useParams:()=>gn,useRouteMatch:()=>wn,withRouter:()=>dn});var r=e(8960);function o(n,t){n.prototype=Object.create(t.prototype),n.prototype.constructor=n,(0,r.Z)(n,t)}var i=e(9902),a=e.n(i),c=e(3980),u=e.n(c),s=e(7896);function l(n){return"/"===n.charAt(0)}function f(n,t){for(var e=t,r=e+1,o=n.length;r<o;e+=1,r+=1)n[e]=n[r];n.pop()}function p(n){return n.valueOf?n.valueOf():Object.prototype.valueOf.call(n)}const h=function n(t,e){if(t===e)return!0;if(null==t||null==e)return!1;if(Array.isArray(t))return Array.isArray(e)&&t.length===e.length&&t.every((function(t,r){return n(t,e[r])}));if("object"==typeof t||"object"==typeof e){var r=p(t),o=p(e);return r!==t||o!==e?n(r,o):Object.keys(Object.assign({},t,e)).every((function(r){return n(t[r],e[r])}))}return!1};function d(n,t){if(!n)throw new Error("Invariant failed")}function v(n){return"/"===n.charAt(0)?n:"/"+n}function m(n){return"/"===n.charAt(0)?n.substr(1):n}function y(n,t){return function(n,t){return 0===n.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(n.charAt(t.length))}(n,t)?n.substr(t.length):n}function g(n){return"/"===n.charAt(n.length-1)?n.slice(0,-1):n}function w(n){var t=n.pathname,e=n.search,r=n.hash,o=t||"/";return e&&"?"!==e&&(o+="?"===e.charAt(0)?e:"?"+e),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function x(n,t,e,r){var o;"string"==typeof n?(o=function(n){var t=n||"/",e="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var i=t.indexOf("?");return-1!==i&&(e=t.substr(i),t=t.substr(0,i)),{pathname:t,search:"?"===e?"":e,hash:"#"===r?"":r}}(n),o.state=t):(void 0===(o=(0,s.Z)({},n)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(n){throw n instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):n}return e&&(o.key=e),r?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=function(n,t){void 0===t&&(t="");var e,r=n&&n.split("/")||[],o=t&&t.split("/")||[],i=n&&l(n),a=t&&l(t),c=i||a;if(n&&l(n)?o=r:r.length&&(o.pop(),o=o.concat(r)),!o.length)return"/";if(o.length){var u=o[o.length-1];e="."===u||".."===u||""===u}else e=!1;for(var s=0,p=o.length;p>=0;p--){var h=o[p];"."===h?f(o,p):".."===h?(f(o,p),s++):s&&(f(o,p),s--)}if(!c)for(;s--;s)o.unshift("..");!c||""===o[0]||o[0]&&l(o[0])||o.unshift("");var d=o.join("/");return e&&"/"!==d.substr(-1)&&(d+="/"),d}(o.pathname,r.pathname)):o.pathname=r.pathname:o.pathname||(o.pathname="/"),o}function E(){var n=null,t=[];return{setPrompt:function(t){return n=t,function(){n===t&&(n=null)}},confirmTransitionTo:function(t,e,r,o){if(null!=n){var i="function"==typeof n?n(t,e):n;"string"==typeof i?"function"==typeof r?r(i,o):o(!0):o(!1!==i)}else o(!0)},appendListener:function(n){var e=!0;function r(){e&&n.apply(void 0,arguments)}return t.push(r),function(){e=!1,t=t.filter((function(n){return n!==r}))}},notifyListeners:function(){for(var n=arguments.length,e=new Array(n),r=0;r<n;r++)e[r]=arguments[r];t.forEach((function(n){return n.apply(void 0,e)}))}}}var b=!("undefined"==typeof window||!window.document||!window.document.createElement);function C(n,t){t(window.confirm(n))}var P="popstate",k="hashchange";function A(){try{return window.history.state||{}}catch(n){return{}}}function R(n){void 0===n&&(n={}),b||d(!1);var t,e=window.history,r=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=n,a=i.forceRefresh,c=void 0!==a&&a,u=i.getUserConfirmation,l=void 0===u?C:u,f=i.keyLength,p=void 0===f?6:f,h=n.basename?g(v(n.basename)):"";function m(n){var t=n||{},e=t.key,r=t.state,o=window.location,i=o.pathname+o.search+o.hash;return h&&(i=y(i,h)),x(i,r,e)}function R(){return Math.random().toString(36).substr(2,p)}var O=E();function T(n){(0,s.Z)($,n),$.length=e.length,O.notifyListeners($.location,$.action)}function L(n){(function(n){return void 0===n.state&&-1===navigator.userAgent.indexOf("CriOS")})(n)||M(m(n.state))}function _(){M(m(A()))}var U=!1;function M(n){U?(U=!1,T()):O.confirmTransitionTo(n,"POP",l,(function(t){t?T({action:"POP",location:n}):function(n){var t=$.location,e=Z.indexOf(t.key);-1===e&&(e=0);var r=Z.indexOf(n.key);-1===r&&(r=0);var o=e-r;o&&(U=!0,B(o))}(n)}))}var S=m(A()),Z=[S.key];function j(n){return h+w(n)}function B(n){e.go(n)}var H=0;function I(n){1===(H+=n)&&1===n?(window.addEventListener(P,L),o&&window.addEventListener(k,_)):0===H&&(window.removeEventListener(P,L),o&&window.removeEventListener(k,_))}var N=!1,$={length:e.length,action:"POP",location:S,createHref:j,push:function(n,t){var o="PUSH",i=x(n,t,R(),$.location);O.confirmTransitionTo(i,o,l,(function(n){if(n){var t=j(i),a=i.key,u=i.state;if(r)if(e.pushState({key:a,state:u},null,t),c)window.location.href=t;else{var s=Z.indexOf($.location.key),l=Z.slice(0,s+1);l.push(i.key),Z=l,T({action:o,location:i})}else window.location.href=t}}))},replace:function(n,t){var o="REPLACE",i=x(n,t,R(),$.location);O.confirmTransitionTo(i,o,l,(function(n){if(n){var t=j(i),a=i.key,u=i.state;if(r)if(e.replaceState({key:a,state:u},null,t),c)window.location.replace(t);else{var s=Z.indexOf($.location.key);-1!==s&&(Z[s]=i.key),T({action:o,location:i})}else window.location.replace(t)}}))},go:B,goBack:function(){B(-1)},goForward:function(){B(1)},block:function(n){void 0===n&&(n=!1);var t=O.setPrompt(n);return N||(I(1),N=!0),function(){return N&&(N=!1,I(-1)),t()}},listen:function(n){var t=O.appendListener(n);return I(1),function(){I(-1),t()}}};return $}var O="hashchange",T={hashbang:{encodePath:function(n){return"!"===n.charAt(0)?n:"!/"+m(n)},decodePath:function(n){return"!"===n.charAt(0)?n.substr(1):n}},noslash:{encodePath:m,decodePath:v},slash:{encodePath:v,decodePath:v}};function L(n){var t=n.indexOf("#");return-1===t?n:n.slice(0,t)}function _(){var n=window.location.href,t=n.indexOf("#");return-1===t?"":n.substring(t+1)}function U(n){window.location.replace(L(window.location.href)+"#"+n)}function M(n){void 0===n&&(n={}),b||d(!1);var t=window.history,e=(window.navigator.userAgent.indexOf("Firefox"),n),r=e.getUserConfirmation,o=void 0===r?C:r,i=e.hashType,a=void 0===i?"slash":i,c=n.basename?g(v(n.basename)):"",u=T[a],l=u.encodePath,f=u.decodePath;function p(){var n=f(_());return c&&(n=y(n,c)),x(n)}var h=E();function m(n){(0,s.Z)(N,n),N.length=t.length,h.notifyListeners(N.location,N.action)}var P=!1,k=null;function A(){var n,t,e=_(),r=l(e);if(e!==r)U(r);else{var i=p(),a=N.location;if(!P&&(t=i,(n=a).pathname===t.pathname&&n.search===t.search&&n.hash===t.hash))return;if(k===w(i))return;k=null,function(n){if(P)P=!1,m();else{h.confirmTransitionTo(n,"POP",o,(function(t){t?m({action:"POP",location:n}):function(n){var t=N.location,e=Z.lastIndexOf(w(t));-1===e&&(e=0);var r=Z.lastIndexOf(w(n));-1===r&&(r=0);var o=e-r;o&&(P=!0,j(o))}(n)}))}}(i)}}var R=_(),M=l(R);R!==M&&U(M);var S=p(),Z=[w(S)];function j(n){t.go(n)}var B=0;function H(n){1===(B+=n)&&1===n?window.addEventListener(O,A):0===B&&window.removeEventListener(O,A)}var I=!1,N={length:t.length,action:"POP",location:S,createHref:function(n){var t=document.querySelector("base"),e="";return t&&t.getAttribute("href")&&(e=L(window.location.href)),e+"#"+l(c+w(n))},push:function(n,t){var e="PUSH",r=x(n,void 0,void 0,N.location);h.confirmTransitionTo(r,e,o,(function(n){if(n){var t=w(r),o=l(c+t);if(_()!==o){k=t,function(n){window.location.hash=n}(o);var i=Z.lastIndexOf(w(N.location)),a=Z.slice(0,i+1);a.push(t),Z=a,m({action:e,location:r})}else m()}}))},replace:function(n,t){var e="REPLACE",r=x(n,void 0,void 0,N.location);h.confirmTransitionTo(r,e,o,(function(n){if(n){var t=w(r),o=l(c+t);_()!==o&&(k=t,U(o));var i=Z.indexOf(w(N.location));-1!==i&&(Z[i]=t),m({action:e,location:r})}}))},go:j,goBack:function(){j(-1)},goForward:function(){j(1)},block:function(n){void 0===n&&(n=!1);var t=h.setPrompt(n);return I||(H(1),I=!0),function(){return I&&(I=!1,H(-1)),t()}},listen:function(n){var t=h.appendListener(n);return H(1),function(){H(-1),t()}}};return N}function S(n,t,e){return Math.min(Math.max(n,t),e)}function Z(n){void 0===n&&(n={});var t=n,e=t.getUserConfirmation,r=t.initialEntries,o=void 0===r?["/"]:r,i=t.initialIndex,a=void 0===i?0:i,c=t.keyLength,u=void 0===c?6:c,l=E();function f(n){(0,s.Z)(y,n),y.length=y.entries.length,l.notifyListeners(y.location,y.action)}function p(){return Math.random().toString(36).substr(2,u)}var h=S(a,0,o.length-1),d=o.map((function(n){return x(n,void 0,"string"==typeof n?p():n.key||p())})),v=w;function m(n){var t=S(y.index+n,0,y.entries.length-1),r=y.entries[t];l.confirmTransitionTo(r,"POP",e,(function(n){n?f({action:"POP",location:r,index:t}):f()}))}var y={length:d.length,action:"POP",location:d[h],index:h,entries:d,createHref:v,push:function(n,t){var r="PUSH",o=x(n,t,p(),y.location);l.confirmTransitionTo(o,r,e,(function(n){if(n){var t=y.index+1,e=y.entries.slice(0);e.length>t?e.splice(t,e.length-t,o):e.push(o),f({action:r,location:o,index:t,entries:e})}}))},replace:function(n,t){var r="REPLACE",o=x(n,t,p(),y.location);l.confirmTransitionTo(o,r,e,(function(n){n&&(y.entries[y.index]=o,f({action:r,location:o}))}))},go:m,goBack:function(){m(-1)},goForward:function(){m(1)},canGo:function(n){var t=y.index+n;return t>=0&&t<y.entries.length},block:function(n){return void 0===n&&(n=!1),l.setPrompt(n)},listen:function(n){return l.appendListener(n)}};return y}var j=1073741823,B="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==e.g?e.g:{};function H(n){var t=[];return{on:function(n){t.push(n)},off:function(n){t=t.filter((function(t){return t!==n}))},get:function(){return n},set:function(e,r){n=e,t.forEach((function(t){return t(n,r)}))}}}const I=a().createContext||function(n,t){var e,r,a,c="__create-react-context-"+((B[a="__global_unique_id__"]=(B[a]||0)+1)+"__"),s=function(n){function e(){var t;return(t=n.apply(this,arguments)||this).emitter=H(t.props.value),t}o(e,n);var r=e.prototype;return r.getChildContext=function(){var n;return(n={})[c]=this.emitter,n},r.componentWillReceiveProps=function(n){if(this.props.value!==n.value){var e,r=this.props.value,o=n.value;((i=r)===(a=o)?0!==i||1/i==1/a:i!=i&&a!=a)?e=0:(e="function"==typeof t?t(r,o):j,0!=(e|=0)&&this.emitter.set(n.value,e))}var i,a},r.render=function(){return this.props.children},e}(i.Component);s.childContextTypes=((e={})[c]=u().object.isRequired,e);var l=function(t){function e(){var n;return(n=t.apply(this,arguments)||this).state={value:n.getValue()},n.onUpdate=function(t,e){0!=((0|n.observedBits)&e)&&n.setState({value:n.getValue()})},n}o(e,t);var r=e.prototype;return r.componentWillReceiveProps=function(n){var t=n.observedBits;this.observedBits=null==t?j:t},r.componentDidMount=function(){this.context[c]&&this.context[c].on(this.onUpdate);var n=this.props.observedBits;this.observedBits=null==n?j:n},r.componentWillUnmount=function(){this.context[c]&&this.context[c].off(this.onUpdate)},r.getValue=function(){return this.context[c]?this.context[c].get():n},r.render=function(){return(n=this.props.children,Array.isArray(n)?n[0]:n)(this.state.value);var n},e}(i.Component);return l.contextTypes=((r={})[c]=u().object,r),{Provider:s,Consumer:l}};var N=e(9056),$=e.n(N),W=(e(8570),e(1461)),D=e(3463),F=e.n(D),K=function(n){var t=I();return t.displayName=n,t},V=K("Router-History"),q=K("Router"),J=function(n){function t(t){var e;return(e=n.call(this,t)||this).state={location:t.history.location},e._isMounted=!1,e._pendingLocation=null,t.staticContext||(e.unlisten=t.history.listen((function(n){e._isMounted?e.setState({location:n}):e._pendingLocation=n}))),e}o(t,n),t.computeRootMatch=function(n){return{path:"/",url:"/",params:{},isExact:"/"===n}};var e=t.prototype;return e.componentDidMount=function(){this._isMounted=!0,this._pendingLocation&&this.setState({location:this._pendingLocation})},e.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},e.render=function(){return a().createElement(q.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a().createElement(V.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a().Component),G=function(n){function t(){for(var t,e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];return(t=n.call.apply(n,[this].concat(r))||this).history=Z(t.props),t}return o(t,n),t.prototype.render=function(){return a().createElement(J,{history:this.history,children:this.props.children})},t}(a().Component),z=function(n){function t(){return n.apply(this,arguments)||this}o(t,n);var e=t.prototype;return e.componentDidMount=function(){this.props.onMount&&this.props.onMount.call(this,this)},e.componentDidUpdate=function(n){this.props.onUpdate&&this.props.onUpdate.call(this,this,n)},e.componentWillUnmount=function(){this.props.onUnmount&&this.props.onUnmount.call(this,this)},e.render=function(){return null},t}(a().Component);function Q(n){var t=n.message,e=n.when,r=void 0===e||e;return a().createElement(q.Consumer,null,(function(n){if(n||d(!1),!r||n.staticContext)return null;var e=n.history.block;return a().createElement(z,{onMount:function(n){n.release=e(t)},onUpdate:function(n,r){r.message!==t&&(n.release(),n.release=e(t))},onUnmount:function(n){n.release()},message:t})}))}var X={},Y=0;function nn(n,t){return void 0===n&&(n="/"),void 0===t&&(t={}),"/"===n?n:function(n){if(X[n])return X[n];var t=$().compile(n);return Y<1e4&&(X[n]=t,Y++),t}(n)(t,{pretty:!0})}function tn(n){var t=n.computedMatch,e=n.to,r=n.push,o=void 0!==r&&r;return a().createElement(q.Consumer,null,(function(n){n||d(!1);var r=n.history,i=n.staticContext,c=o?r.push:r.replace,u=x(t?"string"==typeof e?nn(e,t.params):(0,s.Z)({},e,{pathname:nn(e.pathname,t.params)}):e);return i?(c(u),null):a().createElement(z,{onMount:function(){c(u)},onUpdate:function(n,t){var e,r,o=x(t.to);e=o,r=(0,s.Z)({},u,{key:o.key}),e.pathname===r.pathname&&e.search===r.search&&e.hash===r.hash&&e.key===r.key&&h(e.state,r.state)||c(u)},to:e})}))}var en={},rn=0;function on(n,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var e=t,r=e.path,o=e.exact,i=void 0!==o&&o,a=e.strict,c=void 0!==a&&a,u=e.sensitive,s=void 0!==u&&u;return[].concat(r).reduce((function(t,e){if(!e&&""!==e)return null;if(t)return t;var r=function(n,t){var e=""+t.end+t.strict+t.sensitive,r=en[e]||(en[e]={});if(r[n])return r[n];var o=[],i={regexp:$()(n,o,t),keys:o};return rn<1e4&&(r[n]=i,rn++),i}(e,{end:i,strict:c,sensitive:s}),o=r.regexp,a=r.keys,u=o.exec(n);if(!u)return null;var l=u[0],f=u.slice(1),p=n===l;return i&&!p?null:{path:e,url:"/"===e&&""===l?"/":l,isExact:p,params:a.reduce((function(n,t,e){return n[t.name]=f[e],n}),{})}}),null)}var an=function(n){function t(){return n.apply(this,arguments)||this}return o(t,n),t.prototype.render=function(){var n=this;return a().createElement(q.Consumer,null,(function(t){t||d(!1);var e=n.props.location||t.location,r=n.props.computedMatch?n.props.computedMatch:n.props.path?on(e.pathname,n.props):t.match,o=(0,s.Z)({},t,{location:e,match:r}),i=n.props,c=i.children,u=i.component,l=i.render;return Array.isArray(c)&&function(n){return 0===a().Children.count(n)}(c)&&(c=null),a().createElement(q.Provider,{value:o},o.match?c?"function"==typeof c?c(o):c:u?a().createElement(u,o):l?l(o):null:"function"==typeof c?c(o):null)}))},t}(a().Component);function cn(n){return"/"===n.charAt(0)?n:"/"+n}function un(n,t){if(!n)return t;var e=cn(n);return 0!==t.pathname.indexOf(e)?t:(0,s.Z)({},t,{pathname:t.pathname.substr(e.length)})}function sn(n){return"string"==typeof n?n:w(n)}function ln(n){return function(){d(!1)}}function fn(){}var pn=function(n){function t(){for(var t,e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];return(t=n.call.apply(n,[this].concat(r))||this).handlePush=function(n){return t.navigateTo(n,"PUSH")},t.handleReplace=function(n){return t.navigateTo(n,"REPLACE")},t.handleListen=function(){return fn},t.handleBlock=function(){return fn},t}o(t,n);var e=t.prototype;return e.navigateTo=function(n,t){var e=this.props,r=e.basename,o=void 0===r?"":r,i=e.context,a=void 0===i?{}:i;a.action=t,a.location=function(n,t){return n?(0,s.Z)({},t,{pathname:cn(n)+t.pathname}):t}(o,x(n)),a.url=sn(a.location)},e.render=function(){var n=this.props,t=n.basename,e=void 0===t?"":t,r=n.context,o=void 0===r?{}:r,i=n.location,c=void 0===i?"/":i,u=(0,W.Z)(n,["basename","context","location"]),l={createHref:function(n){return cn(e+sn(n))},action:"POP",location:un(e,x(c)),push:this.handlePush,replace:this.handleReplace,go:ln(),goBack:ln(),goForward:ln(),listen:this.handleListen,block:this.handleBlock};return a().createElement(J,(0,s.Z)({},u,{history:l,staticContext:o}))},t}(a().Component),hn=function(n){function t(){return n.apply(this,arguments)||this}return o(t,n),t.prototype.render=function(){var n=this;return a().createElement(q.Consumer,null,(function(t){t||d(!1);var e,r,o=n.props.location||t.location;return a().Children.forEach(n.props.children,(function(n){if(null==r&&a().isValidElement(n)){e=n;var i=n.props.path||n.props.from;r=i?on(o.pathname,(0,s.Z)({},n.props,{path:i})):t.match}})),r?a().cloneElement(e,{location:o,computedMatch:r}):null}))},t}(a().Component);function dn(n){var t="withRouter("+(n.displayName||n.name)+")",e=function(t){var e=t.wrappedComponentRef,r=(0,W.Z)(t,["wrappedComponentRef"]);return a().createElement(q.Consumer,null,(function(t){return t||d(!1),a().createElement(n,(0,s.Z)({},r,t,{ref:e}))}))};return e.displayName=t,e.WrappedComponent=n,F()(e,n)}var vn=a().useContext;function mn(){return vn(V)}function yn(){return vn(q).location}function gn(){var n=vn(q).match;return n?n.params:{}}function wn(n){var t=yn(),e=vn(q).match;return n?on(t.pathname,n):e}var xn=function(n){function t(){for(var t,e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];return(t=n.call.apply(n,[this].concat(r))||this).history=R(t.props),t}return o(t,n),t.prototype.render=function(){return a().createElement(J,{history:this.history,children:this.props.children})},t}(a().Component),En=function(n){function t(){for(var t,e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];return(t=n.call.apply(n,[this].concat(r))||this).history=M(t.props),t}return o(t,n),t.prototype.render=function(){return a().createElement(J,{history:this.history,children:this.props.children})},t}(a().Component),bn=function(n,t){return"function"==typeof n?n(t):n},Cn=function(n,t){return"string"==typeof n?x(n,null,null,t):n},Pn=function(n){return n},kn=a().forwardRef;void 0===kn&&(kn=Pn);var An=kn((function(n,t){var e=n.innerRef,r=n.navigate,o=n.onClick,i=(0,W.Z)(n,["innerRef","navigate","onClick"]),c=i.target,u=(0,s.Z)({},i,{onClick:function(n){try{o&&o(n)}catch(t){throw n.preventDefault(),t}n.defaultPrevented||0!==n.button||c&&"_self"!==c||function(n){return!!(n.metaKey||n.altKey||n.ctrlKey||n.shiftKey)}(n)||(n.preventDefault(),r())}});return u.ref=Pn!==kn&&t||e,a().createElement("a",u)})),Rn=kn((function(n,t){var e=n.component,r=void 0===e?An:e,o=n.replace,i=n.to,c=n.innerRef,u=(0,W.Z)(n,["component","replace","to","innerRef"]);return a().createElement(q.Consumer,null,(function(n){n||d(!1);var e=n.history,l=Cn(bn(i,n.location),n.location),f=l?e.createHref(l):"",p=(0,s.Z)({},u,{href:f,navigate:function(){var t=bn(i,n.location),r=w(n.location)===w(Cn(t));(o||r?e.replace:e.push)(t)}});return Pn!==kn?p.ref=t||c:p.innerRef=c,a().createElement(r,p)}))})),On=function(n){return n},Tn=a().forwardRef;void 0===Tn&&(Tn=On);var Ln=Tn((function(n,t){var e=n["aria-current"],r=void 0===e?"page":e,o=n.activeClassName,i=void 0===o?"active":o,c=n.activeStyle,u=n.className,l=n.exact,f=n.isActive,p=n.location,h=n.sensitive,v=n.strict,m=n.style,y=n.to,g=n.innerRef,w=(0,W.Z)(n,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return a().createElement(q.Consumer,null,(function(n){n||d(!1);var e=p||n.location,o=Cn(bn(y,e),e),x=o.pathname,E=x&&x.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),b=E?on(e.pathname,{path:E,exact:l,sensitive:h,strict:v}):null,C=!!(f?f(b,e):b),P="function"==typeof u?u(C):u,k="function"==typeof m?m(C):m;C&&(P=function(){for(var n=arguments.length,t=new Array(n),e=0;e<n;e++)t[e]=arguments[e];return t.filter((function(n){return n})).join(" ")}(P,i),k=(0,s.Z)({},k,c));var A=(0,s.Z)({"aria-current":C&&r||null,className:P,style:k,to:o},w);return On!==Tn?A.ref=t||g:A.innerRef=g,a().createElement(Rn,A)}))}))},9613:n=>{n.exports=Array.isArray||function(n){return"[object Array]"==Object.prototype.toString.call(n)}},9056:(n,t,e)=>{var r=e(9613);n.exports=function n(t,e,o){return r(e)||(o=e||o,e=[]),o=o||{},t instanceof RegExp?function(n,t){var e=n.source.match(/\((?!\?)/g);if(e)for(var r=0;r<e.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return l(n,t)}(t,e):r(t)?function(t,e,r){for(var o=[],i=0;i<t.length;i++)o.push(n(t[i],e,r).source);return l(new RegExp("(?:"+o.join("|")+")",f(r)),e)}(t,e,o):function(n,t,e){return p(i(n,e),t,e)}(t,e,o)},n.exports.parse=i,n.exports.compile=function(n,t){return c(i(n,t),t)},n.exports.tokensToFunction=c,n.exports.tokensToRegExp=p;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function i(n,t){for(var e,r=[],i=0,a=0,c="",l=t&&t.delimiter||"/";null!=(e=o.exec(n));){var f=e[0],p=e[1],h=e.index;if(c+=n.slice(a,h),a=h+f.length,p)c+=p[1];else{var d=n[a],v=e[2],m=e[3],y=e[4],g=e[5],w=e[6],x=e[7];c&&(r.push(c),c="");var E=null!=v&&null!=d&&d!==v,b="+"===w||"*"===w,C="?"===w||"*"===w,P=e[2]||l,k=y||g;r.push({name:m||i++,prefix:v||"",delimiter:P,optional:C,repeat:b,partial:E,asterisk:!!x,pattern:k?s(k):x?".*":"[^"+u(P)+"]+?"})}}return a<n.length&&(c+=n.substr(a)),c&&r.push(c),r}function a(n){return encodeURI(n).replace(/[\/?#]/g,(function(n){return"%"+n.charCodeAt(0).toString(16).toUpperCase()}))}function c(n,t){for(var e=new Array(n.length),o=0;o<n.length;o++)"object"==typeof n[o]&&(e[o]=new RegExp("^(?:"+n[o].pattern+")$",f(t)));return function(t,o){for(var i="",c=t||{},u=(o||{}).pretty?a:encodeURIComponent,s=0;s<n.length;s++){var l=n[s];if("string"!=typeof l){var f,p=c[l.name];if(null==p){if(l.optional){l.partial&&(i+=l.prefix);continue}throw new TypeError('Expected "'+l.name+'" to be defined')}if(r(p)){if(!l.repeat)throw new TypeError('Expected "'+l.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(l.optional)continue;throw new TypeError('Expected "'+l.name+'" to not be empty')}for(var h=0;h<p.length;h++){if(f=u(p[h]),!e[s].test(f))throw new TypeError('Expected all "'+l.name+'" to match "'+l.pattern+'", but received `'+JSON.stringify(f)+"`");i+=(0===h?l.prefix:l.delimiter)+f}}else{if(f=l.asterisk?encodeURI(p).replace(/[?#]/g,(function(n){return"%"+n.charCodeAt(0).toString(16).toUpperCase()})):u(p),!e[s].test(f))throw new TypeError('Expected "'+l.name+'" to match "'+l.pattern+'", but received "'+f+'"');i+=l.prefix+f}}else i+=l}return i}}function u(n){return n.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function s(n){return n.replace(/([=!:$\/()])/g,"\\$1")}function l(n,t){return n.keys=t,n}function f(n){return n&&n.sensitive?"":"i"}function p(n,t,e){r(t)||(e=t||e,t=[]);for(var o=(e=e||{}).strict,i=!1!==e.end,a="",c=0;c<n.length;c++){var s=n[c];if("string"==typeof s)a+=u(s);else{var p=u(s.prefix),h="(?:"+s.pattern+")";t.push(s),s.repeat&&(h+="(?:"+p+h+")*"),a+=h=s.optional?s.partial?p+"("+h+")?":"(?:"+p+"("+h+"))?":p+"("+h+")"}}var d=u(e.delimiter||"/"),v=a.slice(-d.length)===d;return o||(a=(v?a.slice(0,-d.length):a)+"(?:"+d+"(?=$))?"),a+=i?"$":o&&v?"":"(?="+d+"|$)",l(new RegExp("^"+a,f(e)),t)}}}]);
|
|
1
|
+
(self.webpackChunk_openmrs_esm_patient_registration_app=self.webpackChunk_openmrs_esm_patient_registration_app||[]).push([[817],{2817:(n,t,e)=>{"use strict";e.r(t),e.d(t,{BrowserRouter:()=>xn,HashRouter:()=>En,Link:()=>Rn,MemoryRouter:()=>G,NavLink:()=>Ln,Prompt:()=>Q,Redirect:()=>tn,Route:()=>an,Router:()=>J,StaticRouter:()=>pn,Switch:()=>hn,generatePath:()=>nn,matchPath:()=>on,useHistory:()=>mn,useLocation:()=>yn,useParams:()=>gn,useRouteMatch:()=>wn,withRouter:()=>dn});var r=e(8960);function o(n,t){n.prototype=Object.create(t.prototype),n.prototype.constructor=n,(0,r.Z)(n,t)}var i=e(9902),a=e.n(i),c=e(7896);function u(n){return"/"===n.charAt(0)}function s(n,t){for(var e=t,r=e+1,o=n.length;r<o;e+=1,r+=1)n[e]=n[r];n.pop()}function l(n){return n.valueOf?n.valueOf():Object.prototype.valueOf.call(n)}const f=function n(t,e){if(t===e)return!0;if(null==t||null==e)return!1;if(Array.isArray(t))return Array.isArray(e)&&t.length===e.length&&t.every((function(t,r){return n(t,e[r])}));if("object"==typeof t||"object"==typeof e){var r=l(t),o=l(e);return r!==t||o!==e?n(r,o):Object.keys(Object.assign({},t,e)).every((function(r){return n(t[r],e[r])}))}return!1};function p(n,t){if(!n)throw new Error("Invariant failed")}function h(n){return"/"===n.charAt(0)?n:"/"+n}function d(n){return"/"===n.charAt(0)?n.substr(1):n}function v(n,t){return function(n,t){return 0===n.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(n.charAt(t.length))}(n,t)?n.substr(t.length):n}function m(n){return"/"===n.charAt(n.length-1)?n.slice(0,-1):n}function y(n){var t=n.pathname,e=n.search,r=n.hash,o=t||"/";return e&&"?"!==e&&(o+="?"===e.charAt(0)?e:"?"+e),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function g(n,t,e,r){var o;"string"==typeof n?(o=function(n){var t=n||"/",e="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var i=t.indexOf("?");return-1!==i&&(e=t.substr(i),t=t.substr(0,i)),{pathname:t,search:"?"===e?"":e,hash:"#"===r?"":r}}(n),o.state=t):(void 0===(o=(0,c.Z)({},n)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(n){throw n instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):n}return e&&(o.key=e),r?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=function(n,t){void 0===t&&(t="");var e,r=n&&n.split("/")||[],o=t&&t.split("/")||[],i=n&&u(n),a=t&&u(t),c=i||a;if(n&&u(n)?o=r:r.length&&(o.pop(),o=o.concat(r)),!o.length)return"/";if(o.length){var l=o[o.length-1];e="."===l||".."===l||""===l}else e=!1;for(var f=0,p=o.length;p>=0;p--){var h=o[p];"."===h?s(o,p):".."===h?(s(o,p),f++):f&&(s(o,p),f--)}if(!c)for(;f--;f)o.unshift("..");!c||""===o[0]||o[0]&&u(o[0])||o.unshift("");var d=o.join("/");return e&&"/"!==d.substr(-1)&&(d+="/"),d}(o.pathname,r.pathname)):o.pathname=r.pathname:o.pathname||(o.pathname="/"),o}function w(){var n=null,t=[];return{setPrompt:function(t){return n=t,function(){n===t&&(n=null)}},confirmTransitionTo:function(t,e,r,o){if(null!=n){var i="function"==typeof n?n(t,e):n;"string"==typeof i?"function"==typeof r?r(i,o):o(!0):o(!1!==i)}else o(!0)},appendListener:function(n){var e=!0;function r(){e&&n.apply(void 0,arguments)}return t.push(r),function(){e=!1,t=t.filter((function(n){return n!==r}))}},notifyListeners:function(){for(var n=arguments.length,e=new Array(n),r=0;r<n;r++)e[r]=arguments[r];t.forEach((function(n){return n.apply(void 0,e)}))}}}var x=!("undefined"==typeof window||!window.document||!window.document.createElement);function E(n,t){t(window.confirm(n))}var b="popstate",C="hashchange";function P(){try{return window.history.state||{}}catch(n){return{}}}function k(n){void 0===n&&(n={}),x||p(!1);var t,e=window.history,r=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=n,a=i.forceRefresh,u=void 0!==a&&a,s=i.getUserConfirmation,l=void 0===s?E:s,f=i.keyLength,d=void 0===f?6:f,k=n.basename?m(h(n.basename)):"";function A(n){var t=n||{},e=t.key,r=t.state,o=window.location,i=o.pathname+o.search+o.hash;return k&&(i=v(i,k)),g(i,r,e)}function R(){return Math.random().toString(36).substr(2,d)}var O=w();function T(n){(0,c.Z)($,n),$.length=e.length,O.notifyListeners($.location,$.action)}function L(n){(function(n){return void 0===n.state&&-1===navigator.userAgent.indexOf("CriOS")})(n)||M(A(n.state))}function _(){M(A(P()))}var U=!1;function M(n){U?(U=!1,T()):O.confirmTransitionTo(n,"POP",l,(function(t){t?T({action:"POP",location:n}):function(n){var t=$.location,e=Z.indexOf(t.key);-1===e&&(e=0);var r=Z.indexOf(n.key);-1===r&&(r=0);var o=e-r;o&&(U=!0,B(o))}(n)}))}var S=A(P()),Z=[S.key];function j(n){return k+y(n)}function B(n){e.go(n)}var H=0;function I(n){1===(H+=n)&&1===n?(window.addEventListener(b,L),o&&window.addEventListener(C,_)):0===H&&(window.removeEventListener(b,L),o&&window.removeEventListener(C,_))}var N=!1,$={length:e.length,action:"POP",location:S,createHref:j,push:function(n,t){var o="PUSH",i=g(n,t,R(),$.location);O.confirmTransitionTo(i,o,l,(function(n){if(n){var t=j(i),a=i.key,c=i.state;if(r)if(e.pushState({key:a,state:c},null,t),u)window.location.href=t;else{var s=Z.indexOf($.location.key),l=Z.slice(0,s+1);l.push(i.key),Z=l,T({action:o,location:i})}else window.location.href=t}}))},replace:function(n,t){var o="REPLACE",i=g(n,t,R(),$.location);O.confirmTransitionTo(i,o,l,(function(n){if(n){var t=j(i),a=i.key,c=i.state;if(r)if(e.replaceState({key:a,state:c},null,t),u)window.location.replace(t);else{var s=Z.indexOf($.location.key);-1!==s&&(Z[s]=i.key),T({action:o,location:i})}else window.location.replace(t)}}))},go:B,goBack:function(){B(-1)},goForward:function(){B(1)},block:function(n){void 0===n&&(n=!1);var t=O.setPrompt(n);return N||(I(1),N=!0),function(){return N&&(N=!1,I(-1)),t()}},listen:function(n){var t=O.appendListener(n);return I(1),function(){I(-1),t()}}};return $}var A="hashchange",R={hashbang:{encodePath:function(n){return"!"===n.charAt(0)?n:"!/"+d(n)},decodePath:function(n){return"!"===n.charAt(0)?n.substr(1):n}},noslash:{encodePath:d,decodePath:h},slash:{encodePath:h,decodePath:h}};function O(n){var t=n.indexOf("#");return-1===t?n:n.slice(0,t)}function T(){var n=window.location.href,t=n.indexOf("#");return-1===t?"":n.substring(t+1)}function L(n){window.location.replace(O(window.location.href)+"#"+n)}function _(n){void 0===n&&(n={}),x||p(!1);var t=window.history,e=(window.navigator.userAgent.indexOf("Firefox"),n),r=e.getUserConfirmation,o=void 0===r?E:r,i=e.hashType,a=void 0===i?"slash":i,u=n.basename?m(h(n.basename)):"",s=R[a],l=s.encodePath,f=s.decodePath;function d(){var n=f(T());return u&&(n=v(n,u)),g(n)}var b=w();function C(n){(0,c.Z)(N,n),N.length=t.length,b.notifyListeners(N.location,N.action)}var P=!1,k=null;function _(){var n,t,e=T(),r=l(e);if(e!==r)L(r);else{var i=d(),a=N.location;if(!P&&(t=i,(n=a).pathname===t.pathname&&n.search===t.search&&n.hash===t.hash))return;if(k===y(i))return;k=null,function(n){if(P)P=!1,C();else{b.confirmTransitionTo(n,"POP",o,(function(t){t?C({action:"POP",location:n}):function(n){var t=N.location,e=Z.lastIndexOf(y(t));-1===e&&(e=0);var r=Z.lastIndexOf(y(n));-1===r&&(r=0);var o=e-r;o&&(P=!0,j(o))}(n)}))}}(i)}}var U=T(),M=l(U);U!==M&&L(M);var S=d(),Z=[y(S)];function j(n){t.go(n)}var B=0;function H(n){1===(B+=n)&&1===n?window.addEventListener(A,_):0===B&&window.removeEventListener(A,_)}var I=!1,N={length:t.length,action:"POP",location:S,createHref:function(n){var t=document.querySelector("base"),e="";return t&&t.getAttribute("href")&&(e=O(window.location.href)),e+"#"+l(u+y(n))},push:function(n,t){var e="PUSH",r=g(n,void 0,void 0,N.location);b.confirmTransitionTo(r,e,o,(function(n){if(n){var t=y(r),o=l(u+t);if(T()!==o){k=t,function(n){window.location.hash=n}(o);var i=Z.lastIndexOf(y(N.location)),a=Z.slice(0,i+1);a.push(t),Z=a,C({action:e,location:r})}else C()}}))},replace:function(n,t){var e="REPLACE",r=g(n,void 0,void 0,N.location);b.confirmTransitionTo(r,e,o,(function(n){if(n){var t=y(r),o=l(u+t);T()!==o&&(k=t,L(o));var i=Z.indexOf(y(N.location));-1!==i&&(Z[i]=t),C({action:e,location:r})}}))},go:j,goBack:function(){j(-1)},goForward:function(){j(1)},block:function(n){void 0===n&&(n=!1);var t=b.setPrompt(n);return I||(H(1),I=!0),function(){return I&&(I=!1,H(-1)),t()}},listen:function(n){var t=b.appendListener(n);return H(1),function(){H(-1),t()}}};return N}function U(n,t,e){return Math.min(Math.max(n,t),e)}function M(n){void 0===n&&(n={});var t=n,e=t.getUserConfirmation,r=t.initialEntries,o=void 0===r?["/"]:r,i=t.initialIndex,a=void 0===i?0:i,u=t.keyLength,s=void 0===u?6:u,l=w();function f(n){(0,c.Z)(x,n),x.length=x.entries.length,l.notifyListeners(x.location,x.action)}function p(){return Math.random().toString(36).substr(2,s)}var h=U(a,0,o.length-1),d=o.map((function(n){return g(n,void 0,"string"==typeof n?p():n.key||p())})),v=y;function m(n){var t=U(x.index+n,0,x.entries.length-1),r=x.entries[t];l.confirmTransitionTo(r,"POP",e,(function(n){n?f({action:"POP",location:r,index:t}):f()}))}var x={length:d.length,action:"POP",location:d[h],index:h,entries:d,createHref:v,push:function(n,t){var r="PUSH",o=g(n,t,p(),x.location);l.confirmTransitionTo(o,r,e,(function(n){if(n){var t=x.index+1,e=x.entries.slice(0);e.length>t?e.splice(t,e.length-t,o):e.push(o),f({action:r,location:o,index:t,entries:e})}}))},replace:function(n,t){var r="REPLACE",o=g(n,t,p(),x.location);l.confirmTransitionTo(o,r,e,(function(n){n&&(x.entries[x.index]=o,f({action:r,location:o}))}))},go:m,goBack:function(){m(-1)},goForward:function(){m(1)},canGo:function(n){var t=x.index+n;return t>=0&&t<x.entries.length},block:function(n){return void 0===n&&(n=!1),l.setPrompt(n)},listen:function(n){return l.appendListener(n)}};return x}var S=e(3980),Z=e.n(S),j=1073741823,B="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==e.g?e.g:{};function H(n){var t=[];return{on:function(n){t.push(n)},off:function(n){t=t.filter((function(t){return t!==n}))},get:function(){return n},set:function(e,r){n=e,t.forEach((function(t){return t(n,r)}))}}}const I=a().createContext||function(n,t){var e,r,a,c="__create-react-context-"+((B[a="__global_unique_id__"]=(B[a]||0)+1)+"__"),u=function(n){function e(){var t;return(t=n.apply(this,arguments)||this).emitter=H(t.props.value),t}o(e,n);var r=e.prototype;return r.getChildContext=function(){var n;return(n={})[c]=this.emitter,n},r.componentWillReceiveProps=function(n){if(this.props.value!==n.value){var e,r=this.props.value,o=n.value;((i=r)===(a=o)?0!==i||1/i==1/a:i!=i&&a!=a)?e=0:(e="function"==typeof t?t(r,o):j,0!=(e|=0)&&this.emitter.set(n.value,e))}var i,a},r.render=function(){return this.props.children},e}(i.Component);u.childContextTypes=((e={})[c]=Z().object.isRequired,e);var s=function(t){function e(){var n;return(n=t.apply(this,arguments)||this).state={value:n.getValue()},n.onUpdate=function(t,e){0!=((0|n.observedBits)&e)&&n.setState({value:n.getValue()})},n}o(e,t);var r=e.prototype;return r.componentWillReceiveProps=function(n){var t=n.observedBits;this.observedBits=null==t?j:t},r.componentDidMount=function(){this.context[c]&&this.context[c].on(this.onUpdate);var n=this.props.observedBits;this.observedBits=null==n?j:n},r.componentWillUnmount=function(){this.context[c]&&this.context[c].off(this.onUpdate)},r.getValue=function(){return this.context[c]?this.context[c].get():n},r.render=function(){return(n=this.props.children,Array.isArray(n)?n[0]:n)(this.state.value);var n},e}(i.Component);return s.contextTypes=((r={})[c]=Z().object,r),{Provider:u,Consumer:s}};var N=e(9056),$=e.n(N),W=(e(8570),e(1461)),D=e(3463),F=e.n(D),K=function(n){var t=I();return t.displayName=n,t},V=K("Router-History"),q=K("Router"),J=function(n){function t(t){var e;return(e=n.call(this,t)||this).state={location:t.history.location},e._isMounted=!1,e._pendingLocation=null,t.staticContext||(e.unlisten=t.history.listen((function(n){e._isMounted?e.setState({location:n}):e._pendingLocation=n}))),e}o(t,n),t.computeRootMatch=function(n){return{path:"/",url:"/",params:{},isExact:"/"===n}};var e=t.prototype;return e.componentDidMount=function(){this._isMounted=!0,this._pendingLocation&&this.setState({location:this._pendingLocation})},e.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},e.render=function(){return a().createElement(q.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a().createElement(V.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a().Component),G=function(n){function t(){for(var t,e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];return(t=n.call.apply(n,[this].concat(r))||this).history=M(t.props),t}return o(t,n),t.prototype.render=function(){return a().createElement(J,{history:this.history,children:this.props.children})},t}(a().Component),z=function(n){function t(){return n.apply(this,arguments)||this}o(t,n);var e=t.prototype;return e.componentDidMount=function(){this.props.onMount&&this.props.onMount.call(this,this)},e.componentDidUpdate=function(n){this.props.onUpdate&&this.props.onUpdate.call(this,this,n)},e.componentWillUnmount=function(){this.props.onUnmount&&this.props.onUnmount.call(this,this)},e.render=function(){return null},t}(a().Component);function Q(n){var t=n.message,e=n.when,r=void 0===e||e;return a().createElement(q.Consumer,null,(function(n){if(n||p(!1),!r||n.staticContext)return null;var e=n.history.block;return a().createElement(z,{onMount:function(n){n.release=e(t)},onUpdate:function(n,r){r.message!==t&&(n.release(),n.release=e(t))},onUnmount:function(n){n.release()},message:t})}))}var X={},Y=0;function nn(n,t){return void 0===n&&(n="/"),void 0===t&&(t={}),"/"===n?n:function(n){if(X[n])return X[n];var t=$().compile(n);return Y<1e4&&(X[n]=t,Y++),t}(n)(t,{pretty:!0})}function tn(n){var t=n.computedMatch,e=n.to,r=n.push,o=void 0!==r&&r;return a().createElement(q.Consumer,null,(function(n){n||p(!1);var r=n.history,i=n.staticContext,u=o?r.push:r.replace,s=g(t?"string"==typeof e?nn(e,t.params):(0,c.Z)({},e,{pathname:nn(e.pathname,t.params)}):e);return i?(u(s),null):a().createElement(z,{onMount:function(){u(s)},onUpdate:function(n,t){var e,r,o=g(t.to);e=o,r=(0,c.Z)({},s,{key:o.key}),e.pathname===r.pathname&&e.search===r.search&&e.hash===r.hash&&e.key===r.key&&f(e.state,r.state)||u(s)},to:e})}))}var en={},rn=0;function on(n,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var e=t,r=e.path,o=e.exact,i=void 0!==o&&o,a=e.strict,c=void 0!==a&&a,u=e.sensitive,s=void 0!==u&&u;return[].concat(r).reduce((function(t,e){if(!e&&""!==e)return null;if(t)return t;var r=function(n,t){var e=""+t.end+t.strict+t.sensitive,r=en[e]||(en[e]={});if(r[n])return r[n];var o=[],i={regexp:$()(n,o,t),keys:o};return rn<1e4&&(r[n]=i,rn++),i}(e,{end:i,strict:c,sensitive:s}),o=r.regexp,a=r.keys,u=o.exec(n);if(!u)return null;var l=u[0],f=u.slice(1),p=n===l;return i&&!p?null:{path:e,url:"/"===e&&""===l?"/":l,isExact:p,params:a.reduce((function(n,t,e){return n[t.name]=f[e],n}),{})}}),null)}var an=function(n){function t(){return n.apply(this,arguments)||this}return o(t,n),t.prototype.render=function(){var n=this;return a().createElement(q.Consumer,null,(function(t){t||p(!1);var e=n.props.location||t.location,r=n.props.computedMatch?n.props.computedMatch:n.props.path?on(e.pathname,n.props):t.match,o=(0,c.Z)({},t,{location:e,match:r}),i=n.props,u=i.children,s=i.component,l=i.render;return Array.isArray(u)&&function(n){return 0===a().Children.count(n)}(u)&&(u=null),a().createElement(q.Provider,{value:o},o.match?u?"function"==typeof u?u(o):u:s?a().createElement(s,o):l?l(o):null:"function"==typeof u?u(o):null)}))},t}(a().Component);function cn(n){return"/"===n.charAt(0)?n:"/"+n}function un(n,t){if(!n)return t;var e=cn(n);return 0!==t.pathname.indexOf(e)?t:(0,c.Z)({},t,{pathname:t.pathname.substr(e.length)})}function sn(n){return"string"==typeof n?n:y(n)}function ln(n){return function(){p(!1)}}function fn(){}var pn=function(n){function t(){for(var t,e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];return(t=n.call.apply(n,[this].concat(r))||this).handlePush=function(n){return t.navigateTo(n,"PUSH")},t.handleReplace=function(n){return t.navigateTo(n,"REPLACE")},t.handleListen=function(){return fn},t.handleBlock=function(){return fn},t}o(t,n);var e=t.prototype;return e.navigateTo=function(n,t){var e=this.props,r=e.basename,o=void 0===r?"":r,i=e.context,a=void 0===i?{}:i;a.action=t,a.location=function(n,t){return n?(0,c.Z)({},t,{pathname:cn(n)+t.pathname}):t}(o,g(n)),a.url=sn(a.location)},e.render=function(){var n=this.props,t=n.basename,e=void 0===t?"":t,r=n.context,o=void 0===r?{}:r,i=n.location,u=void 0===i?"/":i,s=(0,W.Z)(n,["basename","context","location"]),l={createHref:function(n){return cn(e+sn(n))},action:"POP",location:un(e,g(u)),push:this.handlePush,replace:this.handleReplace,go:ln(),goBack:ln(),goForward:ln(),listen:this.handleListen,block:this.handleBlock};return a().createElement(J,(0,c.Z)({},s,{history:l,staticContext:o}))},t}(a().Component),hn=function(n){function t(){return n.apply(this,arguments)||this}return o(t,n),t.prototype.render=function(){var n=this;return a().createElement(q.Consumer,null,(function(t){t||p(!1);var e,r,o=n.props.location||t.location;return a().Children.forEach(n.props.children,(function(n){if(null==r&&a().isValidElement(n)){e=n;var i=n.props.path||n.props.from;r=i?on(o.pathname,(0,c.Z)({},n.props,{path:i})):t.match}})),r?a().cloneElement(e,{location:o,computedMatch:r}):null}))},t}(a().Component);function dn(n){var t="withRouter("+(n.displayName||n.name)+")",e=function(t){var e=t.wrappedComponentRef,r=(0,W.Z)(t,["wrappedComponentRef"]);return a().createElement(q.Consumer,null,(function(t){return t||p(!1),a().createElement(n,(0,c.Z)({},r,t,{ref:e}))}))};return e.displayName=t,e.WrappedComponent=n,F()(e,n)}var vn=a().useContext;function mn(){return vn(V)}function yn(){return vn(q).location}function gn(){var n=vn(q).match;return n?n.params:{}}function wn(n){var t=yn(),e=vn(q).match;return n?on(t.pathname,n):e}var xn=function(n){function t(){for(var t,e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];return(t=n.call.apply(n,[this].concat(r))||this).history=k(t.props),t}return o(t,n),t.prototype.render=function(){return a().createElement(J,{history:this.history,children:this.props.children})},t}(a().Component),En=function(n){function t(){for(var t,e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];return(t=n.call.apply(n,[this].concat(r))||this).history=_(t.props),t}return o(t,n),t.prototype.render=function(){return a().createElement(J,{history:this.history,children:this.props.children})},t}(a().Component),bn=function(n,t){return"function"==typeof n?n(t):n},Cn=function(n,t){return"string"==typeof n?g(n,null,null,t):n},Pn=function(n){return n},kn=a().forwardRef;void 0===kn&&(kn=Pn);var An=kn((function(n,t){var e=n.innerRef,r=n.navigate,o=n.onClick,i=(0,W.Z)(n,["innerRef","navigate","onClick"]),u=i.target,s=(0,c.Z)({},i,{onClick:function(n){try{o&&o(n)}catch(t){throw n.preventDefault(),t}n.defaultPrevented||0!==n.button||u&&"_self"!==u||function(n){return!!(n.metaKey||n.altKey||n.ctrlKey||n.shiftKey)}(n)||(n.preventDefault(),r())}});return s.ref=Pn!==kn&&t||e,a().createElement("a",s)})),Rn=kn((function(n,t){var e=n.component,r=void 0===e?An:e,o=n.replace,i=n.to,u=n.innerRef,s=(0,W.Z)(n,["component","replace","to","innerRef"]);return a().createElement(q.Consumer,null,(function(n){n||p(!1);var e=n.history,l=Cn(bn(i,n.location),n.location),f=l?e.createHref(l):"",h=(0,c.Z)({},s,{href:f,navigate:function(){var t=bn(i,n.location),r=y(n.location)===y(Cn(t));(o||r?e.replace:e.push)(t)}});return Pn!==kn?h.ref=t||u:h.innerRef=u,a().createElement(r,h)}))})),On=function(n){return n},Tn=a().forwardRef;void 0===Tn&&(Tn=On);var Ln=Tn((function(n,t){var e=n["aria-current"],r=void 0===e?"page":e,o=n.activeClassName,i=void 0===o?"active":o,u=n.activeStyle,s=n.className,l=n.exact,f=n.isActive,h=n.location,d=n.sensitive,v=n.strict,m=n.style,y=n.to,g=n.innerRef,w=(0,W.Z)(n,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return a().createElement(q.Consumer,null,(function(n){n||p(!1);var e=h||n.location,o=Cn(bn(y,e),e),x=o.pathname,E=x&&x.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),b=E?on(e.pathname,{path:E,exact:l,sensitive:d,strict:v}):null,C=!!(f?f(b,e):b),P="function"==typeof s?s(C):s,k="function"==typeof m?m(C):m;C&&(P=function(){for(var n=arguments.length,t=new Array(n),e=0;e<n;e++)t[e]=arguments[e];return t.filter((function(n){return n})).join(" ")}(P,i),k=(0,c.Z)({},k,u));var A=(0,c.Z)({"aria-current":C&&r||null,className:P,style:k,to:o},w);return On!==Tn?A.ref=t||g:A.innerRef=g,a().createElement(Rn,A)}))}))},9613:n=>{n.exports=Array.isArray||function(n){return"[object Array]"==Object.prototype.toString.call(n)}},9056:(n,t,e)=>{var r=e(9613);n.exports=function n(t,e,o){return r(e)||(o=e||o,e=[]),o=o||{},t instanceof RegExp?function(n,t){var e=n.source.match(/\((?!\?)/g);if(e)for(var r=0;r<e.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return l(n,t)}(t,e):r(t)?function(t,e,r){for(var o=[],i=0;i<t.length;i++)o.push(n(t[i],e,r).source);return l(new RegExp("(?:"+o.join("|")+")",f(r)),e)}(t,e,o):function(n,t,e){return p(i(n,e),t,e)}(t,e,o)},n.exports.parse=i,n.exports.compile=function(n,t){return c(i(n,t),t)},n.exports.tokensToFunction=c,n.exports.tokensToRegExp=p;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function i(n,t){for(var e,r=[],i=0,a=0,c="",l=t&&t.delimiter||"/";null!=(e=o.exec(n));){var f=e[0],p=e[1],h=e.index;if(c+=n.slice(a,h),a=h+f.length,p)c+=p[1];else{var d=n[a],v=e[2],m=e[3],y=e[4],g=e[5],w=e[6],x=e[7];c&&(r.push(c),c="");var E=null!=v&&null!=d&&d!==v,b="+"===w||"*"===w,C="?"===w||"*"===w,P=e[2]||l,k=y||g;r.push({name:m||i++,prefix:v||"",delimiter:P,optional:C,repeat:b,partial:E,asterisk:!!x,pattern:k?s(k):x?".*":"[^"+u(P)+"]+?"})}}return a<n.length&&(c+=n.substr(a)),c&&r.push(c),r}function a(n){return encodeURI(n).replace(/[\/?#]/g,(function(n){return"%"+n.charCodeAt(0).toString(16).toUpperCase()}))}function c(n,t){for(var e=new Array(n.length),o=0;o<n.length;o++)"object"==typeof n[o]&&(e[o]=new RegExp("^(?:"+n[o].pattern+")$",f(t)));return function(t,o){for(var i="",c=t||{},u=(o||{}).pretty?a:encodeURIComponent,s=0;s<n.length;s++){var l=n[s];if("string"!=typeof l){var f,p=c[l.name];if(null==p){if(l.optional){l.partial&&(i+=l.prefix);continue}throw new TypeError('Expected "'+l.name+'" to be defined')}if(r(p)){if(!l.repeat)throw new TypeError('Expected "'+l.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(l.optional)continue;throw new TypeError('Expected "'+l.name+'" to not be empty')}for(var h=0;h<p.length;h++){if(f=u(p[h]),!e[s].test(f))throw new TypeError('Expected all "'+l.name+'" to match "'+l.pattern+'", but received `'+JSON.stringify(f)+"`");i+=(0===h?l.prefix:l.delimiter)+f}}else{if(f=l.asterisk?encodeURI(p).replace(/[?#]/g,(function(n){return"%"+n.charCodeAt(0).toString(16).toUpperCase()})):u(p),!e[s].test(f))throw new TypeError('Expected "'+l.name+'" to match "'+l.pattern+'", but received "'+f+'"');i+=l.prefix+f}}else i+=l}return i}}function u(n){return n.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function s(n){return n.replace(/([=!:$\/()])/g,"\\$1")}function l(n,t){return n.keys=t,n}function f(n){return n&&n.sensitive?"":"i"}function p(n,t,e){r(t)||(e=t||e,t=[]);for(var o=(e=e||{}).strict,i=!1!==e.end,a="",c=0;c<n.length;c++){var s=n[c];if("string"==typeof s)a+=u(s);else{var p=u(s.prefix),h="(?:"+s.pattern+")";t.push(s),s.repeat&&(h+="(?:"+p+h+")*"),a+=h=s.optional?s.partial?p+"("+h+")?":"(?:"+p+"("+h+"))?":p+"("+h+")"}}var d=u(e.delimiter||"/"),v=a.slice(-d.length)===d;return o||(a=(v?a.slice(0,-d.length):a)+"(?:"+d+"(?=$))?"),a+=i?"$":o&&v?"":"(?="+d+"|$)",l(new RegExp("^"+a,f(e)),t)}}}]);
|
|
2
2
|
//# sourceMappingURL=817.js.map
|